@kubb/core 2.6.6 → 2.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/{chunk-NGM34FB2.cjs → chunk-2JNTDAI2.cjs} +3 -3
  2. package/dist/{chunk-NGM34FB2.cjs.map → chunk-2JNTDAI2.cjs.map} +1 -1
  3. package/dist/{chunk-DZ63TRO3.js → chunk-6453B5D6.js} +3 -3
  4. package/dist/{chunk-DZ63TRO3.js.map → chunk-6453B5D6.js.map} +1 -1
  5. package/dist/{chunk-DDBPI6U7.js → chunk-7LKI2367.js} +2 -2
  6. package/dist/{chunk-FEAY5FTX.cjs → chunk-AMVMOCJ4.cjs} +4 -4
  7. package/dist/{chunk-QUL3TACU.js → chunk-DUZFWQUE.js} +2 -2
  8. package/dist/{chunk-RVIZ52LV.js → chunk-E4QOZYOP.js} +3 -3
  9. package/dist/chunk-EFAVSUDO.cjs +15 -0
  10. package/dist/{chunk-XMJY6AMI.js → chunk-HTCJOTLL.js} +2 -2
  11. package/dist/{chunk-DNFR6EDG.cjs → chunk-JWYPCGK5.cjs} +5 -5
  12. package/dist/{chunk-DZZXW555.cjs → chunk-KRX65PCH.cjs} +14 -14
  13. package/dist/{chunk-O6KGDMGN.cjs → chunk-LVTR4JV4.cjs} +214 -214
  14. package/dist/{chunk-B3FP7HMI.cjs → chunk-M5H5RXTY.cjs} +6 -6
  15. package/dist/{chunk-JQBPOWRF.cjs → chunk-PHI4BK5K.cjs} +90 -90
  16. package/dist/{chunk-IAM2TSOD.js → chunk-Q5OJPP57.js} +7 -7
  17. package/dist/{chunk-7QEHTZ4T.js → chunk-QDUQWRFO.js} +2 -2
  18. package/dist/{chunk-MCUCYURB.js → chunk-VCS7BATE.js} +3 -3
  19. package/dist/{chunk-CPVVYFYJ.cjs → chunk-WCUXF325.cjs} +3 -3
  20. package/dist/{chunk-P5VTO36N.cjs → chunk-WDKUUZXN.cjs} +5 -5
  21. package/dist/{chunk-YETB7TYW.js → chunk-YFNYSIDY.js} +2 -2
  22. package/dist/{chunk-5TWA5OHW.js → chunk-YNFGR7GL.js} +2 -2
  23. package/dist/fs.cjs +10 -10
  24. package/dist/fs.js +4 -4
  25. package/dist/index.cjs +103 -103
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +3 -1
  28. package/dist/index.d.ts +3 -1
  29. package/dist/index.js +11 -11
  30. package/dist/index.js.map +1 -1
  31. package/dist/logger.cjs +7 -7
  32. package/dist/logger.js +3 -3
  33. package/dist/mocks.cjs +10 -10
  34. package/dist/mocks.js +8 -8
  35. package/dist/transformers.cjs +23 -23
  36. package/dist/transformers.js +5 -5
  37. package/dist/utils.cjs +13 -13
  38. package/dist/utils.js +4 -4
  39. package/package.json +4 -4
  40. package/src/index.ts +1 -1
  41. package/dist/chunk-33K7PH2K.cjs +0 -15
  42. /package/dist/{chunk-DDBPI6U7.js.map → chunk-7LKI2367.js.map} +0 -0
  43. /package/dist/{chunk-FEAY5FTX.cjs.map → chunk-AMVMOCJ4.cjs.map} +0 -0
  44. /package/dist/{chunk-QUL3TACU.js.map → chunk-DUZFWQUE.js.map} +0 -0
  45. /package/dist/{chunk-DZZXW555.cjs.map → chunk-E4QOZYOP.js.map} +0 -0
  46. /package/dist/{chunk-33K7PH2K.cjs.map → chunk-EFAVSUDO.cjs.map} +0 -0
  47. /package/dist/{chunk-XMJY6AMI.js.map → chunk-HTCJOTLL.js.map} +0 -0
  48. /package/dist/{chunk-5TWA5OHW.js.map → chunk-JWYPCGK5.cjs.map} +0 -0
  49. /package/dist/{chunk-RVIZ52LV.js.map → chunk-KRX65PCH.cjs.map} +0 -0
  50. /package/dist/{chunk-O6KGDMGN.cjs.map → chunk-LVTR4JV4.cjs.map} +0 -0
  51. /package/dist/{chunk-B3FP7HMI.cjs.map → chunk-M5H5RXTY.cjs.map} +0 -0
  52. /package/dist/{chunk-JQBPOWRF.cjs.map → chunk-PHI4BK5K.cjs.map} +0 -0
  53. /package/dist/{chunk-IAM2TSOD.js.map → chunk-Q5OJPP57.js.map} +0 -0
  54. /package/dist/{chunk-7QEHTZ4T.js.map → chunk-QDUQWRFO.js.map} +0 -0
  55. /package/dist/{chunk-MCUCYURB.js.map → chunk-VCS7BATE.js.map} +0 -0
  56. /package/dist/{chunk-CPVVYFYJ.cjs.map → chunk-WCUXF325.cjs.map} +0 -0
  57. /package/dist/{chunk-P5VTO36N.cjs.map → chunk-WDKUUZXN.cjs.map} +0 -0
  58. /package/dist/{chunk-YETB7TYW.js.map → chunk-YFNYSIDY.js.map} +0 -0
  59. /package/dist/{chunk-DNFR6EDG.cjs.map → chunk-YNFGR7GL.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/build.ts","../src/config.ts","../src/Generator.ts","../src/PackageManager.ts","../../../node_modules/.pnpm/find-up@7.0.0/node_modules/find-up/index.js","../../../node_modules/.pnpm/locate-path@7.2.0/node_modules/locate-path/index.js","../../../node_modules/.pnpm/p-locate@6.0.0/node_modules/p-locate/index.js","../../../node_modules/.pnpm/p-limit@4.0.0/node_modules/p-limit/index.js","../../../node_modules/.pnpm/yocto-queue@1.0.0/node_modules/yocto-queue/index.js","../../../node_modules/.pnpm/unicorn-magic@0.1.0/node_modules/unicorn-magic/node.js","../../../node_modules/.pnpm/path-exists@5.0.0/node_modules/path-exists/index.js","../src/kubb.ts"],"names":["path","fileURLToPath","toPath","fs","fsPromises","require"],"mappings":"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","sourcesContent":["export { build, build as default, safeBuild } from './build.ts'\nexport { defineConfig, isInputPath } from './config.ts'\nexport { Warning } from './errors.ts'\nexport { FileManager, KubbFile } from './FileManager.ts'\nexport { Generator } from './Generator.ts'\nexport { PackageManager } from './PackageManager.ts'\n// dprint-ignore\nexport { createPlugin, pluginName as name, pluginName } from './plugin.ts'\nexport { PluginManager } from './PluginManager.ts'\nexport { PromiseManager } from './PromiseManager.ts'\nexport type { CLIOptions, Config, Plugin, PluginFactoryOptions, ResolveNameParams, ResolvePathParams, UserConfig } from './types.ts'\n\nexport interface _Register {}\n\nexport * as Kubb from './kubb.ts'\n","import c from 'tinyrainbow'\n\nimport { clean } from './fs/clean.ts'\nimport { read } from './fs/read.ts'\nimport { URLPath } from './utils/URLPath.ts'\nimport { isInputPath } from './config.ts'\nimport { FileManager } from './FileManager.ts'\nimport { createLogger, LogLevel, randomCliColour } from './logger.ts'\nimport { PluginManager } from './PluginManager.ts'\nimport { isPromise } from './PromiseManager.ts'\n\nimport type { KubbFile } from './FileManager.ts'\nimport type { Logger } from './logger.ts'\nimport type { Plugin, PluginContext, PluginParameter, TransformResult } from './types.ts'\n\ntype BuildOptions = {\n config: PluginContext['config']\n /**\n * @default Logger without the spinner\n */\n logger?: Logger\n}\n\ntype BuildOutput = {\n files: FileManager['files']\n pluginManager: PluginManager\n /**\n * Only for safeBuild\n */\n error?: Error\n}\n\nasync function transformReducer(\n this: PluginContext,\n _previousCode: string,\n result: TransformResult | Promise<TransformResult>,\n _plugin: Plugin,\n): Promise<string | null> {\n return result\n}\n\nasync function setup(options: BuildOptions): Promise<PluginManager> {\n const { config, logger = createLogger({ logLevel: LogLevel.silent }) } = options\n let count = 0\n\n try {\n if (isInputPath(config) && !new URLPath(config.input.path).isURL) {\n await read(config.input.path)\n }\n } catch (e) {\n if (isInputPath(config)) {\n throw new Error(\n 'Cannot read file/URL defined in `input.path` or set with `kubb generate PATH` in the CLI of your Kubb config ' + c.dim(config.input.path),\n {\n cause: e,\n },\n )\n }\n }\n\n if (config.output.clean) {\n await clean(config.output.path)\n }\n\n const task = async (file: KubbFile.ResolvedFile): Promise<KubbFile.ResolvedFile> => {\n const { path } = file\n\n let source: string | null = FileManager.getSource(file)\n\n const { result: loadedResult } = await pluginManager.hookFirst({\n hookName: 'load',\n parameters: [path],\n })\n if (loadedResult && isPromise(loadedResult)) {\n source = await loadedResult\n }\n if (loadedResult && !isPromise(loadedResult)) {\n source = loadedResult\n }\n\n if (source) {\n source = await pluginManager.hookReduceArg0({\n hookName: 'transform',\n parameters: [source, path],\n reduce: transformReducer,\n })\n\n if (config.output.write || config.output.write === undefined) {\n if (file.meta?.pluginKey) {\n // run only for pluginKey defined in the meta of the file\n await pluginManager.hookForPlugin({\n pluginKey: file.meta?.pluginKey,\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n\n await pluginManager.hookFirst({\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n }\n\n return {\n ...file,\n source: source || '',\n }\n }\n\n const pluginManager = new PluginManager(config, { logger, task })\n\n pluginManager.on('execute', (executer) => {\n const { hookName, parameters, plugin } = executer\n\n if (hookName === 'writeFile') {\n const [code] = parameters as PluginParameter<'writeFile'>\n\n if (logger.logLevel === LogLevel.debug) {\n logger.emit('debug', [`PluginKey ${c.dim(JSON.stringify(plugin.key))} \\nwith source\\n\\n${code}`])\n }\n }\n })\n\n pluginManager.queue.on('add', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (count === 0) {\n logger.emit('start', `💾 Writing`)\n }\n })\n\n pluginManager.queue.on('active', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner && pluginManager.queue.size > 0) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n ;++count\n })\n\n pluginManager.queue.on('completed', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n })\n\n pluginManager.on('executed', (executer) => {\n const { hookName, plugin, output, parameters } = executer\n\n if (logger.logLevel === LogLevel.debug) {\n const logs = [\n `${randomCliColour(plugin.name)} Executing ${hookName}`,\n parameters && `${c.bgWhite(`Parameters`)} ${randomCliColour(plugin.name)} ${hookName}`,\n JSON.stringify(parameters, undefined, 2),\n output && `${c.bgWhite('Output')} ${randomCliColour(plugin.name)} ${hookName}`,\n output,\n ].filter(Boolean)\n\n logger.emit('debug', logs as string[])\n }\n })\n\n return pluginManager\n}\n\nexport async function build(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n\nexport async function safeBuild(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n try {\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n } catch (e) {\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager, error: e as Error }\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n","import type { PossiblePromise } from '@kubb/types'\nimport type { CLIOptions, Config, InputPath, UserConfig } from './types.ts'\n\n/**\n * Type helper to make it easier to use kubb.config.js\n * accepts a direct {@link Config} object, or a function that returns it.\n * The function receives a {@link ConfigEnv} object that exposes two properties:\n */\nexport function defineConfig(\n options:\n | PossiblePromise<UserConfig | Array<UserConfig>>\n | ((\n /** The options derived from the CLI flags */\n cliOptions: CLIOptions,\n ) => PossiblePromise<UserConfig | Array<UserConfig>>),\n): typeof options {\n return options\n}\n\nexport function isInputPath(result: Config | undefined): result is Config<InputPath> {\n return !!result && 'path' in (result as any)\n}\n","/**\n * Abstract class that contains the building blocks for plugins to create their own Generator\n * @link idea based on https://github.com/colinhacks/zod/blob/master/src/types.ts#L137\n */\nexport abstract class Generator<TOptions = unknown, TContext = unknown> {\n #options: TOptions = {} as TOptions\n #context: TContext = {} as TContext\n\n constructor(options?: TOptions, context?: TContext) {\n if (context) {\n this.#context = context\n }\n\n if (options) {\n this.#options = options\n }\n\n return this\n }\n\n get options(): TOptions {\n return this.#options\n }\n\n get context(): TContext {\n return this.#context\n }\n\n set options(options: TOptions) {\n this.#options = { ...this.#options, ...options }\n }\n\n abstract build(...params: unknown[]): unknown\n}\n","import mod from 'node:module'\nimport os from 'node:os'\nimport { pathToFileURL } from 'node:url'\n\nimport { findUp, findUpSync } from 'find-up'\nimport { coerce, satisfies } from 'semver'\n\nimport { read, readSync } from './fs/read'\n\ntype PackageJSON = {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n}\n\ntype DependencyName = string\n\ntype DependencyVersion = string\n\nexport class PackageManager {\n static #cache: Record<DependencyName, DependencyVersion> = {}\n\n #cwd?: string\n #SLASHES = new Set(['/', '\\\\'])\n constructor(workspace?: string) {\n if (workspace) {\n this.#cwd = workspace\n }\n\n return this\n }\n\n set workspace(workspace: string) {\n this.#cwd = workspace\n }\n\n get workspace(): string | undefined {\n return this.#cwd\n }\n\n normalizeDirectory(directory: string): string {\n if (!this.#SLASHES.has(directory[directory.length - 1]!)) {\n return `${directory}/`\n }\n\n return directory\n }\n\n getLocation(path: string): string {\n let location = path\n\n if (this.#cwd) {\n const require = mod.createRequire(this.normalizeDirectory(this.#cwd))\n location = require.resolve(path)\n }\n\n return location\n }\n\n async import(path: string): Promise<any | undefined> {\n try {\n let location = this.getLocation(path)\n\n if (os.platform() == 'win32') {\n location = pathToFileURL(location).href\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const module = await import(location)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n return module?.default ?? module\n } catch (e) {\n console.log(e)\n return undefined\n }\n }\n\n async getPackageJSON(): Promise<PackageJSON | undefined> {\n const pkgPath = await findUp(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = await read(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n getPackageJSONSync(): PackageJSON | undefined {\n const pkgPath = findUpSync(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = readSync(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n static setVersion(dependency: DependencyName, version: DependencyVersion): void {\n PackageManager.#cache[dependency] = version\n }\n\n #match(packageJSON: PackageJSON, dependency: DependencyName | RegExp): string | undefined {\n const dependencies = {\n ...packageJSON['dependencies'] || {},\n ...packageJSON['devDependencies'] || {},\n }\n\n if (typeof dependency === 'string' && dependencies[dependency]) {\n return dependencies[dependency]\n }\n\n const matchedDependency = Object.keys(dependencies).find(dep => dep.match(dependency))\n\n return matchedDependency ? dependencies[matchedDependency] : undefined\n }\n\n async getVersion(dependency: DependencyName | RegExp): Promise<DependencyVersion | undefined> {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = await this.getPackageJSON()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n getVersionSync(dependency: DependencyName | RegExp): DependencyVersion | undefined {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = this.getPackageJSONSync()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n async isValid(dependency: DependencyName | RegExp, version: DependencyVersion): Promise<boolean> {\n const packageVersion = await this.getVersion(dependency)\n\n if (!packageVersion) {\n return false\n }\n\n if (packageVersion === version) {\n return true\n }\n\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n isValidSync(dependency: DependencyName | RegExp, version: DependencyVersion): boolean {\n const packageVersion = this.getVersionSync(dependency)\n\n if (!packageVersion) {\n return false\n }\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n}\n","import path from 'node:path';\nimport {locatePath, locatePathSync} from 'locate-path';\nimport {toPath} from 'unicorn-magic';\n\nexport const findUpStop = Symbol('findUpStop');\n\nexport async function findUpMultiple(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) ?? '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, toPath(options.stopAt ?? root));\n\tconst limit = options.limit ?? Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport function findUpMultipleSync(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) ?? '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, toPath(options.stopAt) ?? root);\n\tconst limit = options.limit ?? Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePathSync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePathSync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport async function findUp(name, options = {}) {\n\tconst matches = await findUpMultiple(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport function findUpSync(name, options = {}) {\n\tconst matches = findUpMultipleSync(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport {\n\tpathExists,\n\tpathExistsSync,\n} from 'path-exists';\n","import process from 'node:process';\nimport path from 'node:path';\nimport fs, {promises as fsPromises} from 'node:fs';\nimport {fileURLToPath} from 'node:url';\nimport pLocate from 'p-locate';\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile',\n};\n\nfunction checkType(type) {\n\tif (Object.hasOwnProperty.call(typeMappings, type)) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => stat[typeMappings[type]]();\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport async function locatePath(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t\tconcurrency,\n\t\tpreserveOrder,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fsPromises.stat : fsPromises.lstat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFunction(path.resolve(cwd, path_));\n\t\t\treturn matchType(type, stat);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, {concurrency, preserveOrder});\n}\n\nexport function locatePathSync(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFunction(path.resolve(cwd, path_), {\n\t\t\t\tthrowIfNoEntry: false,\n\t\t\t});\n\n\t\t\tif (!stat) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (matchType(type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch {}\n\t}\n}\n","import pLimit from 'p-limit';\n\nclass EndError extends Error {\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t}\n}\n\n// The input can also be a promise, so we await it.\nconst testElement = async (element, tester) => tester(await element);\n\n// The input can also be a promise, so we `Promise.all()` them both.\nconst finder = async element => {\n\tconst values = await Promise.all(element);\n\tif (values[1] === true) {\n\t\tthrow new EndError(values[0]);\n\t}\n\n\treturn false;\n};\n\nexport default async function pLocate(\n\titerable,\n\ttester,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tpreserveOrder = true,\n\t} = {},\n) {\n\tconst limit = pLimit(concurrency);\n\n\t// Start all the promises concurrently with optional limit.\n\tconst items = [...iterable].map(element => [element, limit(testElement, element, tester)]);\n\n\t// Check the promises either serially or concurrently.\n\tconst checkLimit = pLimit(preserveOrder ? 1 : Number.POSITIVE_INFINITY);\n\n\ttry {\n\t\tawait Promise.all(items.map(element => checkLimit(finder, element)));\n\t} catch (error) {\n\t\tif (error instanceof EndError) {\n\t\t\treturn error.value;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import {fileURLToPath} from 'node:url';\n\nexport function toPath(urlOrPath) {\n\treturn urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n}\n\nexport * from './default.js';\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n","import type { ObjValueTuple, TupleToUnion } from '@kubb/types'\nimport type { _Register } from './index.ts'\n\nexport type Plugins = _Register\nexport type OptionsPlugins = { [K in keyof Plugins]: Plugins[K]['options'] }\n\nexport type OptionsOfPlugin<K extends keyof Plugins> = Plugins[K]['options']\n\nexport type PluginUnion = TupleToUnion<ObjValueTuple<OptionsPlugins>>\n\nexport type Plugin = keyof Plugins\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/build.ts","../src/config.ts","../src/Generator.ts","../src/PackageManager.ts","../../../node_modules/.pnpm/find-up@7.0.0/node_modules/find-up/index.js","../../../node_modules/.pnpm/locate-path@7.2.0/node_modules/locate-path/index.js","../../../node_modules/.pnpm/p-locate@6.0.0/node_modules/p-locate/index.js","../../../node_modules/.pnpm/p-limit@4.0.0/node_modules/p-limit/index.js","../../../node_modules/.pnpm/yocto-queue@1.0.0/node_modules/yocto-queue/index.js","../../../node_modules/.pnpm/unicorn-magic@0.1.0/node_modules/unicorn-magic/node.js","../../../node_modules/.pnpm/path-exists@5.0.0/node_modules/path-exists/index.js","../src/kubb.ts"],"names":["path","fileURLToPath","toPath","fs","fsPromises","require"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;;;ACAA;AAQO,SAAS,aACd,SAMgB;AAChB,SAAO;AACT;AAEO,SAAS,YAAY,QAAyD;AACnF,SAAO,CAAC,CAAC,UAAU,UAAW;AAChC;;;ADWA,eAAe,iBAEb,eACA,QACA,SACwB;AACxB,SAAO;AACT;AAEA,eAAe,MAAM,SAA+C;AAClE,QAAM,EAAE,QAAQ,SAAS,aAAa,EAAE,UAAU,SAAS,OAAO,CAAC,EAAE,IAAI;AACzE,MAAI,QAAQ;AAEZ,MAAI;AACF,QAAI,YAAY,MAAM,KAAK,CAAC,IAAI,QAAQ,OAAO,MAAM,IAAI,EAAE,OAAO;AAChE,YAAM,KAAK,OAAO,MAAM,IAAI;AAAA,IAC9B;AAAA,EACF,SAAS,GAAG;AACV,QAAI,YAAY,MAAM,GAAG;AACvB,YAAM,IAAI;AAAA,QACR,kHAAkH,EAAE,IAAI,OAAO,MAAM,IAAI;AAAA,QACzI;AAAA,UACE,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,OAAO,OAAO;AACvB,UAAM,MAAM,OAAO,OAAO,IAAI;AAAA,EAChC;AAEA,QAAM,OAAO,OAAO,SAAgE;AAClF,UAAM,EAAE,MAAAA,MAAK,IAAI;AAEjB,QAAI,SAAwB,YAAY,UAAU,IAAI;AAEtD,UAAM,EAAE,QAAQ,aAAa,IAAI,MAAM,cAAc,UAAU;AAAA,MAC7D,UAAU;AAAA,MACV,YAAY,CAACA,KAAI;AAAA,IACnB,CAAC;AACD,QAAI,gBAAgB,UAAU,YAAY,GAAG;AAC3C,eAAS,MAAM;AAAA,IACjB;AACA,QAAI,gBAAgB,CAAC,UAAU,YAAY,GAAG;AAC5C,eAAS;AAAA,IACX;AAEA,QAAI,QAAQ;AACV,eAAS,MAAM,cAAc,eAAe;AAAA,QAC1C,UAAU;AAAA,QACV,YAAY,CAAC,QAAQA,KAAI;AAAA,QACzB,QAAQ;AAAA,MACV,CAAC;AAED,UAAI,OAAO,OAAO,SAAS,OAAO,OAAO,UAAU,QAAW;AAC5D,YAAI,KAAK,MAAM,WAAW;AAExB,gBAAM,cAAc,cAAc;AAAA,YAChC,WAAW,KAAK,MAAM;AAAA,YACtB,UAAU;AAAA,YACV,YAAY,CAAC,QAAQA,KAAI;AAAA,UAC3B,CAAC;AAAA,QACH;AAEA,cAAM,cAAc,UAAU;AAAA,UAC5B,UAAU;AAAA,UACV,YAAY,CAAC,QAAQA,KAAI;AAAA,QAC3B,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH,QAAQ,UAAU;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,gBAAgB,IAAI,cAAc,QAAQ,EAAE,QAAQ,KAAK,CAAC;AAEhE,gBAAc,GAAG,WAAW,CAAC,aAAa;AACxC,UAAM,EAAE,UAAU,YAAY,OAAO,IAAI;AAEzC,QAAI,aAAa,aAAa;AAC5B,YAAM,CAAC,IAAI,IAAI;AAEf,UAAI,OAAO,aAAa,SAAS,OAAO;AACtC,eAAO,KAAK,SAAS,CAAC,aAAa,EAAE,IAAI,KAAK,UAAU,OAAO,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA,EAAqB,IAAI,EAAE,CAAC;AAAA,MAClG;AAAA,IACF;AAAA,EACF,CAAC;AAED,gBAAc,MAAM,GAAG,OAAO,MAAM;AAClC,QAAI,OAAO,aAAa,SAAS,MAAM;AACrC;AAAA,IACF;AAEA,QAAI,UAAU,GAAG;AACf,aAAO,KAAK,SAAS,mBAAY;AAAA,IACnC;AAAA,EACF,CAAC;AAED,gBAAc,MAAM,GAAG,UAAU,MAAM;AACrC,QAAI,OAAO,aAAa,SAAS,MAAM;AACrC;AAAA,IACF;AAEA,QAAI,OAAO,WAAW,cAAc,MAAM,OAAO,GAAG;AAClD,YAAM,OAAO,SAAS,KAAK,UAAU,cAAc,MAAM,IAAI,cAAc,cAAc,MAAM,OAAO;AAEtG,aAAO,QAAQ,aAAa,EAAE,IAAI,IAAI;AAAA,IACxC;AACA;AAAC,MAAE;AAAA,EACL,CAAC;AAED,gBAAc,MAAM,GAAG,aAAa,MAAM;AACxC,QAAI,OAAO,aAAa,SAAS,MAAM;AACrC;AAAA,IACF;AAEA,QAAI,OAAO,SAAS;AAClB,YAAM,OAAO,SAAS,KAAK,UAAU,cAAc,MAAM,IAAI,cAAc,cAAc,MAAM,OAAO;AAEtG,aAAO,QAAQ,aAAa,EAAE,IAAI,IAAI;AAAA,IACxC;AAAA,EACF,CAAC;AAED,gBAAc,GAAG,YAAY,CAAC,aAAa;AACzC,UAAM,EAAE,UAAU,QAAQ,QAAQ,WAAW,IAAI;AAEjD,QAAI,OAAO,aAAa,SAAS,OAAO;AACtC,YAAM,OAAO;AAAA,QACX,GAAG,gBAAgB,OAAO,IAAI,CAAC,cAAc,QAAQ;AAAA,QACrD,cAAc,GAAG,EAAE,QAAQ,YAAY,CAAC,IAAI,gBAAgB,OAAO,IAAI,CAAC,IAAI,QAAQ;AAAA,QACpF,KAAK,UAAU,YAAY,QAAW,CAAC;AAAA,QACvC,UAAU,GAAG,EAAE,QAAQ,QAAQ,CAAC,IAAI,gBAAgB,OAAO,IAAI,CAAC,IAAI,QAAQ;AAAA,QAC5E;AAAA,MACF,EAAE,OAAO,OAAO;AAEhB,aAAO,KAAK,SAAS,IAAgB;AAAA,IACvC;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,eAAsB,MAAM,SAA6C;AACvE,QAAM,gBAAgB,MAAM,MAAM,OAAO;AAEzC,QAAM,EAAE,aAAa,OAAO,IAAI;AAEhC,QAAM,cAAc,aAAa;AAAA,IAC/B,UAAU;AAAA,IACV,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC7B,CAAC;AAED,QAAM,cAAc,aAAa,EAAE,UAAU,WAAW,CAAC;AAEzD,MAAI,OAAO,aAAa,SAAS,MAAM;AACrC,WAAO,KAAK,OAAO,6BAAsB;AAAA,EAC3C;AAEA,SAAO,EAAE,OAAO,YAAY,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ,YAAY,UAAU,IAAI,EAAE,EAAE,GAAG,cAAc;AACrH;AAEA,eAAsB,UAAU,SAA6C;AAC3E,QAAM,gBAAgB,MAAM,MAAM,OAAO;AAEzC,QAAM,EAAE,aAAa,OAAO,IAAI;AAEhC,MAAI;AACF,UAAM,cAAc,aAAa;AAAA,MAC/B,UAAU;AAAA,MACV,YAAY,CAAC,QAAQ,MAAM;AAAA,IAC7B,CAAC;AAED,UAAM,cAAc,aAAa,EAAE,UAAU,WAAW,CAAC;AAEzD,QAAI,OAAO,aAAa,SAAS,MAAM;AACrC,aAAO,KAAK,OAAO,6BAAsB;AAAA,IAC3C;AAAA,EACF,SAAS,GAAG;AACV,WAAO,EAAE,OAAO,YAAY,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ,YAAY,UAAU,IAAI,EAAE,EAAE,GAAG,eAAe,OAAO,EAAW;AAAA,EACxI;AAEA,SAAO,EAAE,OAAO,YAAY,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ,YAAY,UAAU,IAAI,EAAE,EAAE,GAAG,cAAc;AACrH;;;AE1NA;AAAA;AAIO,IAAe,YAAf,MAAiE;AAAA,EAItE,YAAY,SAAoB,SAAoB;AAHpD,iCAAqB,CAAC;AACtB,iCAAqB,CAAC;AAGpB,QAAI,SAAS;AACX,yBAAK,UAAW;AAAA,IAClB;AAEA,QAAI,SAAS;AACX,yBAAK,UAAW;AAAA,IAClB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAAoB;AACtB,WAAO,mBAAK;AAAA,EACd;AAAA,EAEA,IAAI,UAAoB;AACtB,WAAO,mBAAK;AAAA,EACd;AAAA,EAEA,IAAI,QAAQ,SAAmB;AAC7B,uBAAK,UAAW,EAAE,GAAG,mBAAK,WAAU,GAAG,QAAQ;AAAA,EACjD;AAGF;AA5BE;AACA;;;ACNF;AAAA,OAAO,SAAS;AAChB,OAAO,QAAQ;AACf,SAAS,qBAAqB;;;ACF9B;AAAA,OAAOA,WAAU;;;ACAjB;AAAA,OAAO,aAAa;AACpB,OAAO,UAAU;AACjB,OAAO,MAAK,YAAY,kBAAiB;AACzC,SAAQ,qBAAoB;;;ACH5B;;;ACAA;;;ACAA;AAKA,IAAM,OAAN,MAAW;AAAA,EAIV,YAAY,OAAO;AAHnB;AACA;AAGC,SAAK,QAAQ;AAAA,EACd;AACD;AAZA;AAcA,IAAqB,QAArB,MAA2B;AAAA,EAK1B,cAAc;AAJd;AACA;AACA;AAGC,SAAK,MAAM;AAAA,EACZ;AAAA,EAEA,QAAQ,OAAO;AACd,UAAM,OAAO,IAAI,KAAK,KAAK;AAE3B,QAAI,mBAAK,QAAO;AACf,yBAAK,OAAM,OAAO;AAClB,yBAAK,OAAQ;AAAA,IACd,OAAO;AACN,yBAAK,OAAQ;AACb,yBAAK,OAAQ;AAAA,IACd;AAEA,2BAAK,OAAL;AAAA,EACD;AAAA,EAEA,UAAU;AACT,UAAM,UAAU,mBAAK;AACrB,QAAI,CAAC,SAAS;AACb;AAAA,IACD;AAEA,uBAAK,OAAQ,mBAAK,OAAM;AACxB,2BAAK,OAAL;AACA,WAAO,QAAQ;AAAA,EAChB;AAAA,EAEA,QAAQ;AACP,uBAAK,OAAQ;AACb,uBAAK,OAAQ;AACb,uBAAK,OAAQ;AAAA,EACd;AAAA,EAEA,IAAI,OAAO;AACV,WAAO,mBAAK;AAAA,EACb;AAAA,EAEA,EAAG,OAAO,QAAQ,IAAI;AACrB,QAAI,UAAU,mBAAK;AAEnB,WAAO,SAAS;AACf,YAAM,QAAQ;AACd,gBAAU,QAAQ;AAAA,IACnB;AAAA,EACD;AACD;AAnDC;AACA;AACA;;;ADfc,SAAR,OAAwB,aAAa;AAC3C,MAAI,GAAG,OAAO,UAAU,WAAW,KAAK,gBAAgB,OAAO,sBAAsB,cAAc,IAAI;AACtG,UAAM,IAAI,UAAU,qDAAqD;AAAA,EAC1E;AAEA,QAAM,QAAQ,IAAI,MAAM;AACxB,MAAI,cAAc;AAElB,QAAM,OAAO,MAAM;AAClB;AAEA,QAAI,MAAM,OAAO,GAAG;AACnB,YAAM,QAAQ,EAAE;AAAA,IACjB;AAAA,EACD;AAEA,QAAM,MAAM,OAAO,IAAI,SAAS,SAAS;AACxC;AAEA,UAAM,UAAU,YAAY,GAAG,GAAG,IAAI,GAAG;AAEzC,YAAQ,MAAM;AAEd,QAAI;AACH,YAAM;AAAA,IACP,QAAQ;AAAA,IAAC;AAET,SAAK;AAAA,EACN;AAEA,QAAM,UAAU,CAAC,IAAI,SAAS,SAAS;AACtC,UAAM,QAAQ,IAAI,KAAK,QAAW,IAAI,SAAS,IAAI,CAAC;AAEpD,KAAC,YAAY;AAKZ,YAAM,QAAQ,QAAQ;AAEtB,UAAI,cAAc,eAAe,MAAM,OAAO,GAAG;AAChD,cAAM,QAAQ,EAAE;AAAA,MACjB;AAAA,IACD,GAAG;AAAA,EACJ;AAEA,QAAM,YAAY,CAAC,OAAO,SAAS,IAAI,QAAQ,aAAW;AACzD,YAAQ,IAAI,SAAS,IAAI;AAAA,EAC1B,CAAC;AAED,SAAO,iBAAiB,WAAW;AAAA,IAClC,aAAa;AAAA,MACZ,KAAK,MAAM;AAAA,IACZ;AAAA,IACA,cAAc;AAAA,MACb,KAAK,MAAM,MAAM;AAAA,IAClB;AAAA,IACA,YAAY;AAAA,MACX,OAAO,MAAM;AACZ,cAAM,MAAM;AAAA,MACb;AAAA,IACD;AAAA,EACD,CAAC;AAED,SAAO;AACR;;;ADjEA,IAAM,WAAN,cAAuB,MAAM;AAAA,EAC5B,YAAY,OAAO;AAClB,UAAM;AACN,SAAK,QAAQ;AAAA,EACd;AACD;AAGA,IAAM,cAAc,OAAO,SAAS,WAAW,OAAO,MAAM,OAAO;AAGnE,IAAM,SAAS,OAAM,YAAW;AAC/B,QAAM,SAAS,MAAM,QAAQ,IAAI,OAAO;AACxC,MAAI,OAAO,CAAC,MAAM,MAAM;AACvB,UAAM,IAAI,SAAS,OAAO,CAAC,CAAC;AAAA,EAC7B;AAEA,SAAO;AACR;AAEA,eAAO,QACN,UACA,QACA;AAAA,EACC,cAAc,OAAO;AAAA,EACrB,gBAAgB;AACjB,IAAI,CAAC,GACJ;AACD,QAAM,QAAQ,OAAO,WAAW;AAGhC,QAAM,QAAQ,CAAC,GAAG,QAAQ,EAAE,IAAI,aAAW,CAAC,SAAS,MAAM,aAAa,SAAS,MAAM,CAAC,CAAC;AAGzF,QAAM,aAAa,OAAO,gBAAgB,IAAI,OAAO,iBAAiB;AAEtE,MAAI;AACH,UAAM,QAAQ,IAAI,MAAM,IAAI,aAAW,WAAW,QAAQ,OAAO,CAAC,CAAC;AAAA,EACpE,SAAS,OAAO;AACf,QAAI,iBAAiB,UAAU;AAC9B,aAAO,MAAM;AAAA,IACd;AAEA,UAAM;AAAA,EACP;AACD;;;ADzCA,IAAM,eAAe;AAAA,EACpB,WAAW;AAAA,EACX,MAAM;AACP;AAEA,SAAS,UAAU,MAAM;AACxB,MAAI,OAAO,eAAe,KAAK,cAAc,IAAI,GAAG;AACnD;AAAA,EACD;AAEA,QAAM,IAAI,MAAM,2BAA2B,IAAI,EAAE;AAClD;AAEA,IAAM,YAAY,CAAC,MAAM,SAAS,KAAK,aAAa,IAAI,CAAC,EAAE;AAE3D,IAAM,SAAS,eAAa,qBAAqB,MAAM,cAAc,SAAS,IAAI;AAElF,eAAsB,WACrB,OACA;AAAA,EACC,MAAM,QAAQ,IAAI;AAAA,EAClB,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB;AAAA,EACA;AACD,IAAI,CAAC,GACJ;AACD,YAAU,IAAI;AACd,QAAM,OAAO,GAAG;AAEhB,QAAM,eAAe,gBAAgB,WAAW,OAAO,WAAW;AAElE,SAAO,QAAQ,OAAO,OAAM,UAAS;AACpC,QAAI;AACH,YAAM,OAAO,MAAM,aAAa,KAAK,QAAQ,KAAK,KAAK,CAAC;AACxD,aAAO,UAAU,MAAM,IAAI;AAAA,IAC5B,QAAQ;AACP,aAAO;AAAA,IACR;AAAA,EACD,GAAG,EAAC,aAAa,cAAa,CAAC;AAChC;AAEO,SAAS,eACf,OACA;AAAA,EACC,MAAM,QAAQ,IAAI;AAAA,EAClB,OAAO;AAAA,EACP,gBAAgB;AACjB,IAAI,CAAC,GACJ;AACD,YAAU,IAAI;AACd,QAAM,OAAO,GAAG;AAEhB,QAAM,eAAe,gBAAgB,GAAG,WAAW,GAAG;AAEtD,aAAW,SAAS,OAAO;AAC1B,QAAI;AACH,YAAM,OAAO,aAAa,KAAK,QAAQ,KAAK,KAAK,GAAG;AAAA,QACnD,gBAAgB;AAAA,MACjB,CAAC;AAED,UAAI,CAAC,MAAM;AACV;AAAA,MACD;AAEA,UAAI,UAAU,MAAM,IAAI,GAAG;AAC1B,eAAO;AAAA,MACR;AAAA,IACD,QAAQ;AAAA,IAAC;AAAA,EACV;AACD;;;AI5EA;AAAA,SAAQ,iBAAAC,sBAAoB;AAErB,SAASC,QAAO,WAAW;AACjC,SAAO,qBAAqB,MAAMD,eAAc,SAAS,IAAI;AAC9D;;;ACJA;AAAA,OAAOE,OAAK,YAAYC,mBAAiB;;;ANIlC,IAAM,aAAa,OAAO,YAAY;AAE7C,eAAsB,eAAe,MAAM,UAAU,CAAC,GAAG;AACxD,MAAI,YAAYJ,MAAK,QAAQE,QAAO,QAAQ,GAAG,KAAK,EAAE;AACtD,QAAM,EAAC,KAAI,IAAIF,MAAK,MAAM,SAAS;AACnC,QAAM,SAASA,MAAK,QAAQ,WAAWE,QAAO,QAAQ,UAAU,IAAI,CAAC;AACrE,QAAM,QAAQ,QAAQ,SAAS,OAAO;AACtC,QAAM,QAAQ,CAAC,IAAI,EAAE,KAAK;AAE1B,QAAM,aAAa,OAAM,kBAAiB;AACzC,QAAI,OAAO,SAAS,YAAY;AAC/B,aAAO,WAAW,OAAO,aAAa;AAAA,IACvC;AAEA,UAAM,YAAY,MAAM,KAAK,cAAc,GAAG;AAC9C,QAAI,OAAO,cAAc,UAAU;AAClC,aAAO,WAAW,CAAC,SAAS,GAAG,aAAa;AAAA,IAC7C;AAEA,WAAO;AAAA,EACR;AAEA,QAAM,UAAU,CAAC;AAEjB,SAAO,MAAM;AAEZ,UAAM,YAAY,MAAM,WAAW,EAAC,GAAG,SAAS,KAAK,UAAS,CAAC;AAE/D,QAAI,cAAc,YAAY;AAC7B;AAAA,IACD;AAEA,QAAI,WAAW;AACd,cAAQ,KAAKF,MAAK,QAAQ,WAAW,SAAS,CAAC;AAAA,IAChD;AAEA,QAAI,cAAc,UAAU,QAAQ,UAAU,OAAO;AACpD;AAAA,IACD;AAEA,gBAAYA,MAAK,QAAQ,SAAS;AAAA,EACnC;AAEA,SAAO;AACR;AAEO,SAAS,mBAAmB,MAAM,UAAU,CAAC,GAAG;AACtD,MAAI,YAAYA,MAAK,QAAQE,QAAO,QAAQ,GAAG,KAAK,EAAE;AACtD,QAAM,EAAC,KAAI,IAAIF,MAAK,MAAM,SAAS;AACnC,QAAM,SAASA,MAAK,QAAQ,WAAWE,QAAO,QAAQ,MAAM,KAAK,IAAI;AACrE,QAAM,QAAQ,QAAQ,SAAS,OAAO;AACtC,QAAM,QAAQ,CAAC,IAAI,EAAE,KAAK;AAE1B,QAAM,aAAa,mBAAiB;AACnC,QAAI,OAAO,SAAS,YAAY;AAC/B,aAAO,eAAe,OAAO,aAAa;AAAA,IAC3C;AAEA,UAAM,YAAY,KAAK,cAAc,GAAG;AACxC,QAAI,OAAO,cAAc,UAAU;AAClC,aAAO,eAAe,CAAC,SAAS,GAAG,aAAa;AAAA,IACjD;AAEA,WAAO;AAAA,EACR;AAEA,QAAM,UAAU,CAAC;AAEjB,SAAO,MAAM;AACZ,UAAM,YAAY,WAAW,EAAC,GAAG,SAAS,KAAK,UAAS,CAAC;AAEzD,QAAI,cAAc,YAAY;AAC7B;AAAA,IACD;AAEA,QAAI,WAAW;AACd,cAAQ,KAAKF,MAAK,QAAQ,WAAW,SAAS,CAAC;AAAA,IAChD;AAEA,QAAI,cAAc,UAAU,QAAQ,UAAU,OAAO;AACpD;AAAA,IACD;AAEA,gBAAYA,MAAK,QAAQ,SAAS;AAAA,EACnC;AAEA,SAAO;AACR;AAEA,eAAsB,OAAO,MAAM,UAAU,CAAC,GAAG;AAChD,QAAM,UAAU,MAAM,eAAe,MAAM,EAAC,GAAG,SAAS,OAAO,EAAC,CAAC;AACjE,SAAO,QAAQ,CAAC;AACjB;AAEO,SAAS,WAAW,MAAM,UAAU,CAAC,GAAG;AAC9C,QAAM,UAAU,mBAAmB,MAAM,EAAC,GAAG,SAAS,OAAO,EAAC,CAAC;AAC/D,SAAO,QAAQ,CAAC;AACjB;;;ADhGA,SAAS,QAAQ,iBAAiB;AALlC;AAkBO,IAAM,kBAAN,MAAM,gBAAe;AAAA,EAK1B,YAAY,WAAoB;AAoFhC;AAtFA;AACA,iCAAW,oBAAI,IAAI,CAAC,KAAK,IAAI,CAAC;AAE5B,QAAI,WAAW;AACb,yBAAK,MAAO;AAAA,IACd;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAAU,WAAmB;AAC/B,uBAAK,MAAO;AAAA,EACd;AAAA,EAEA,IAAI,YAAgC;AAClC,WAAO,mBAAK;AAAA,EACd;AAAA,EAEA,mBAAmB,WAA2B;AAC5C,QAAI,CAAC,mBAAK,UAAS,IAAI,UAAU,UAAU,SAAS,CAAC,CAAE,GAAG;AACxD,aAAO,GAAG,SAAS;AAAA,IACrB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,YAAYA,OAAsB;AAChC,QAAI,WAAWA;AAEf,QAAI,mBAAK,OAAM;AACb,YAAMK,WAAU,IAAI,cAAc,KAAK,mBAAmB,mBAAK,KAAI,CAAC;AACpE,iBAAWA,SAAQ,QAAQL,KAAI;AAAA,IACjC;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAOA,OAAwC;AACnD,QAAI;AACF,UAAI,WAAW,KAAK,YAAYA,KAAI;AAEpC,UAAI,GAAG,SAAS,KAAK,SAAS;AAC5B,mBAAW,cAAc,QAAQ,EAAE;AAAA,MACrC;AAGA,YAAM,SAAS,MAAM,OAAO;AAG5B,aAAO,QAAQ,WAAW;AAAA,IAC5B,SAAS,GAAG;AACV,cAAQ,IAAI,CAAC;AACb,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,iBAAmD;AACvD,UAAM,UAAU,MAAM,OAAO,CAAC,cAAc,GAAG;AAAA,MAC7C,KAAK,mBAAK;AAAA,IACZ,CAAC;AACD,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AAEA,UAAM,OAAO,MAAM,KAAK,OAAO;AAE/B,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB;AAAA,EAEA,qBAA8C;AAC5C,UAAM,UAAU,WAAW,CAAC,cAAc,GAAG;AAAA,MAC3C,KAAK,mBAAK;AAAA,IACZ,CAAC;AACD,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AAEA,UAAM,OAAO,SAAS,OAAO;AAE7B,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB;AAAA,EAEA,OAAO,WAAW,YAA4B,SAAkC;AAC9E,kCAAe,QAAO,UAAU,IAAI;AAAA,EACtC;AAAA,EAiBA,MAAM,WAAW,YAA6E;AAC5F,QAAI,OAAO,eAAe,YAAY,8BAAe,QAAO,UAAU,GAAG;AACvE,aAAO,8BAAe,QAAO,UAAU;AAAA,IACzC;AAEA,UAAM,cAAc,MAAM,KAAK,eAAe;AAE9C,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AAEA,WAAO,sBAAK,kBAAL,WAAY,aAAa;AAAA,EAClC;AAAA,EAEA,eAAe,YAAoE;AACjF,QAAI,OAAO,eAAe,YAAY,8BAAe,QAAO,UAAU,GAAG;AACvE,aAAO,8BAAe,QAAO,UAAU;AAAA,IACzC;AAEA,UAAM,cAAc,KAAK,mBAAmB;AAE5C,QAAI,CAAC,aAAa;AAChB,aAAO;AAAA,IACT;AAEA,WAAO,sBAAK,kBAAL,WAAY,aAAa;AAAA,EAClC;AAAA,EAEA,MAAM,QAAQ,YAAqC,SAA8C;AAC/F,UAAM,iBAAiB,MAAM,KAAK,WAAW,UAAU;AAEvD,QAAI,CAAC,gBAAgB;AACnB,aAAO;AAAA,IACT;AAEA,QAAI,mBAAmB,SAAS;AAC9B,aAAO;AAAA,IACT;AAEA,UAAM,SAAS,OAAO,cAAc;AAEpC,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,GAAG,cAAc,eAAe;AAAA,IAClD;AAEA,WAAO,UAAU,QAAQ,OAAO;AAAA,EAClC;AAAA,EACA,YAAY,YAAqC,SAAqC;AACpF,UAAM,iBAAiB,KAAK,eAAe,UAAU;AAErD,QAAI,CAAC,gBAAgB;AACnB,aAAO;AAAA,IACT;AACA,UAAM,SAAS,OAAO,cAAc;AAEpC,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,GAAG,cAAc,eAAe;AAAA,IAClD;AAEA,WAAO,UAAU,QAAQ,OAAO;AAAA,EAClC;AACF;AApKS;AAEP;AACA;AAqFA;AAAA,WAAM,SAAC,aAA0B,YAAyD;AACxF,QAAM,eAAe;AAAA,IACnB,GAAG,YAAY,cAAc,KAAK,CAAC;AAAA,IACnC,GAAG,YAAY,iBAAiB,KAAK,CAAC;AAAA,EACxC;AAEA,MAAI,OAAO,eAAe,YAAY,aAAa,UAAU,GAAG;AAC9D,WAAO,aAAa,UAAU;AAAA,EAChC;AAEA,QAAM,oBAAoB,OAAO,KAAK,YAAY,EAAE,KAAK,SAAO,IAAI,MAAM,UAAU,CAAC;AAErF,SAAO,oBAAoB,aAAa,iBAAiB,IAAI;AAC/D;AArGA,aADW,iBACJ,QAAoD,CAAC;AADvD,IAAM,iBAAN;;;AQlBP;AAAA","sourcesContent":["export { build, build as default, safeBuild } from './build.ts'\nexport { defineConfig, isInputPath } from './config.ts'\nexport { Warning } from './errors.ts'\nexport { FileManager, KubbFile } from './FileManager.ts'\nexport { Generator } from './Generator.ts'\nexport { PackageManager } from './PackageManager.ts'\n// dprint-ignore\nexport { createPlugin, pluginName as name, pluginName } from './plugin.ts'\nexport { PluginManager } from './PluginManager.ts'\nexport { PromiseManager } from './PromiseManager.ts'\nexport type * from './types.ts'\n\nexport interface _Register {}\n\nexport * as Kubb from './kubb.ts'\n","import c from 'tinyrainbow'\n\nimport { clean } from './fs/clean.ts'\nimport { read } from './fs/read.ts'\nimport { URLPath } from './utils/URLPath.ts'\nimport { isInputPath } from './config.ts'\nimport { FileManager } from './FileManager.ts'\nimport { createLogger, LogLevel, randomCliColour } from './logger.ts'\nimport { PluginManager } from './PluginManager.ts'\nimport { isPromise } from './PromiseManager.ts'\n\nimport type { KubbFile } from './FileManager.ts'\nimport type { Logger } from './logger.ts'\nimport type { Plugin, PluginContext, PluginParameter, TransformResult } from './types.ts'\n\ntype BuildOptions = {\n config: PluginContext['config']\n /**\n * @default Logger without the spinner\n */\n logger?: Logger\n}\n\ntype BuildOutput = {\n files: FileManager['files']\n pluginManager: PluginManager\n /**\n * Only for safeBuild\n */\n error?: Error\n}\n\nasync function transformReducer(\n this: PluginContext,\n _previousCode: string,\n result: TransformResult | Promise<TransformResult>,\n _plugin: Plugin,\n): Promise<string | null> {\n return result\n}\n\nasync function setup(options: BuildOptions): Promise<PluginManager> {\n const { config, logger = createLogger({ logLevel: LogLevel.silent }) } = options\n let count = 0\n\n try {\n if (isInputPath(config) && !new URLPath(config.input.path).isURL) {\n await read(config.input.path)\n }\n } catch (e) {\n if (isInputPath(config)) {\n throw new Error(\n 'Cannot read file/URL defined in `input.path` or set with `kubb generate PATH` in the CLI of your Kubb config ' + c.dim(config.input.path),\n {\n cause: e,\n },\n )\n }\n }\n\n if (config.output.clean) {\n await clean(config.output.path)\n }\n\n const task = async (file: KubbFile.ResolvedFile): Promise<KubbFile.ResolvedFile> => {\n const { path } = file\n\n let source: string | null = FileManager.getSource(file)\n\n const { result: loadedResult } = await pluginManager.hookFirst({\n hookName: 'load',\n parameters: [path],\n })\n if (loadedResult && isPromise(loadedResult)) {\n source = await loadedResult\n }\n if (loadedResult && !isPromise(loadedResult)) {\n source = loadedResult\n }\n\n if (source) {\n source = await pluginManager.hookReduceArg0({\n hookName: 'transform',\n parameters: [source, path],\n reduce: transformReducer,\n })\n\n if (config.output.write || config.output.write === undefined) {\n if (file.meta?.pluginKey) {\n // run only for pluginKey defined in the meta of the file\n await pluginManager.hookForPlugin({\n pluginKey: file.meta?.pluginKey,\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n\n await pluginManager.hookFirst({\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n }\n\n return {\n ...file,\n source: source || '',\n }\n }\n\n const pluginManager = new PluginManager(config, { logger, task })\n\n pluginManager.on('execute', (executer) => {\n const { hookName, parameters, plugin } = executer\n\n if (hookName === 'writeFile') {\n const [code] = parameters as PluginParameter<'writeFile'>\n\n if (logger.logLevel === LogLevel.debug) {\n logger.emit('debug', [`PluginKey ${c.dim(JSON.stringify(plugin.key))} \\nwith source\\n\\n${code}`])\n }\n }\n })\n\n pluginManager.queue.on('add', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (count === 0) {\n logger.emit('start', `💾 Writing`)\n }\n })\n\n pluginManager.queue.on('active', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner && pluginManager.queue.size > 0) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n ;++count\n })\n\n pluginManager.queue.on('completed', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n })\n\n pluginManager.on('executed', (executer) => {\n const { hookName, plugin, output, parameters } = executer\n\n if (logger.logLevel === LogLevel.debug) {\n const logs = [\n `${randomCliColour(plugin.name)} Executing ${hookName}`,\n parameters && `${c.bgWhite(`Parameters`)} ${randomCliColour(plugin.name)} ${hookName}`,\n JSON.stringify(parameters, undefined, 2),\n output && `${c.bgWhite('Output')} ${randomCliColour(plugin.name)} ${hookName}`,\n output,\n ].filter(Boolean)\n\n logger.emit('debug', logs as string[])\n }\n })\n\n return pluginManager\n}\n\nexport async function build(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n\nexport async function safeBuild(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n try {\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n } catch (e) {\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager, error: e as Error }\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n","import type { PossiblePromise } from '@kubb/types'\nimport type { CLIOptions, Config, InputPath, UserConfig } from './types.ts'\n\n/**\n * Type helper to make it easier to use kubb.config.js\n * accepts a direct {@link Config} object, or a function that returns it.\n * The function receives a {@link ConfigEnv} object that exposes two properties:\n */\nexport function defineConfig(\n options:\n | PossiblePromise<UserConfig | Array<UserConfig>>\n | ((\n /** The options derived from the CLI flags */\n cliOptions: CLIOptions,\n ) => PossiblePromise<UserConfig | Array<UserConfig>>),\n): typeof options {\n return options\n}\n\nexport function isInputPath(result: Config | undefined): result is Config<InputPath> {\n return !!result && 'path' in (result as any)\n}\n","/**\n * Abstract class that contains the building blocks for plugins to create their own Generator\n * @link idea based on https://github.com/colinhacks/zod/blob/master/src/types.ts#L137\n */\nexport abstract class Generator<TOptions = unknown, TContext = unknown> {\n #options: TOptions = {} as TOptions\n #context: TContext = {} as TContext\n\n constructor(options?: TOptions, context?: TContext) {\n if (context) {\n this.#context = context\n }\n\n if (options) {\n this.#options = options\n }\n\n return this\n }\n\n get options(): TOptions {\n return this.#options\n }\n\n get context(): TContext {\n return this.#context\n }\n\n set options(options: TOptions) {\n this.#options = { ...this.#options, ...options }\n }\n\n abstract build(...params: unknown[]): unknown\n}\n","import mod from 'node:module'\nimport os from 'node:os'\nimport { pathToFileURL } from 'node:url'\n\nimport { findUp, findUpSync } from 'find-up'\nimport { coerce, satisfies } from 'semver'\n\nimport { read, readSync } from './fs/read'\n\ntype PackageJSON = {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n}\n\ntype DependencyName = string\n\ntype DependencyVersion = string\n\nexport class PackageManager {\n static #cache: Record<DependencyName, DependencyVersion> = {}\n\n #cwd?: string\n #SLASHES = new Set(['/', '\\\\'])\n constructor(workspace?: string) {\n if (workspace) {\n this.#cwd = workspace\n }\n\n return this\n }\n\n set workspace(workspace: string) {\n this.#cwd = workspace\n }\n\n get workspace(): string | undefined {\n return this.#cwd\n }\n\n normalizeDirectory(directory: string): string {\n if (!this.#SLASHES.has(directory[directory.length - 1]!)) {\n return `${directory}/`\n }\n\n return directory\n }\n\n getLocation(path: string): string {\n let location = path\n\n if (this.#cwd) {\n const require = mod.createRequire(this.normalizeDirectory(this.#cwd))\n location = require.resolve(path)\n }\n\n return location\n }\n\n async import(path: string): Promise<any | undefined> {\n try {\n let location = this.getLocation(path)\n\n if (os.platform() == 'win32') {\n location = pathToFileURL(location).href\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const module = await import(location)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n return module?.default ?? module\n } catch (e) {\n console.log(e)\n return undefined\n }\n }\n\n async getPackageJSON(): Promise<PackageJSON | undefined> {\n const pkgPath = await findUp(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = await read(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n getPackageJSONSync(): PackageJSON | undefined {\n const pkgPath = findUpSync(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = readSync(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n static setVersion(dependency: DependencyName, version: DependencyVersion): void {\n PackageManager.#cache[dependency] = version\n }\n\n #match(packageJSON: PackageJSON, dependency: DependencyName | RegExp): string | undefined {\n const dependencies = {\n ...packageJSON['dependencies'] || {},\n ...packageJSON['devDependencies'] || {},\n }\n\n if (typeof dependency === 'string' && dependencies[dependency]) {\n return dependencies[dependency]\n }\n\n const matchedDependency = Object.keys(dependencies).find(dep => dep.match(dependency))\n\n return matchedDependency ? dependencies[matchedDependency] : undefined\n }\n\n async getVersion(dependency: DependencyName | RegExp): Promise<DependencyVersion | undefined> {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = await this.getPackageJSON()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n getVersionSync(dependency: DependencyName | RegExp): DependencyVersion | undefined {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = this.getPackageJSONSync()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n async isValid(dependency: DependencyName | RegExp, version: DependencyVersion): Promise<boolean> {\n const packageVersion = await this.getVersion(dependency)\n\n if (!packageVersion) {\n return false\n }\n\n if (packageVersion === version) {\n return true\n }\n\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n isValidSync(dependency: DependencyName | RegExp, version: DependencyVersion): boolean {\n const packageVersion = this.getVersionSync(dependency)\n\n if (!packageVersion) {\n return false\n }\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n}\n","import path from 'node:path';\nimport {locatePath, locatePathSync} from 'locate-path';\nimport {toPath} from 'unicorn-magic';\n\nexport const findUpStop = Symbol('findUpStop');\n\nexport async function findUpMultiple(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) ?? '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, toPath(options.stopAt ?? root));\n\tconst limit = options.limit ?? Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport function findUpMultipleSync(name, options = {}) {\n\tlet directory = path.resolve(toPath(options.cwd) ?? '');\n\tconst {root} = path.parse(directory);\n\tconst stopAt = path.resolve(directory, toPath(options.stopAt) ?? root);\n\tconst limit = options.limit ?? Number.POSITIVE_INFINITY;\n\tconst paths = [name].flat();\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePathSync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePathSync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\tconst matches = [];\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === findUpStop) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\tmatches.push(path.resolve(directory, foundPath));\n\t\t}\n\n\t\tif (directory === stopAt || matches.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n\n\treturn matches;\n}\n\nexport async function findUp(name, options = {}) {\n\tconst matches = await findUpMultiple(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport function findUpSync(name, options = {}) {\n\tconst matches = findUpMultipleSync(name, {...options, limit: 1});\n\treturn matches[0];\n}\n\nexport {\n\tpathExists,\n\tpathExistsSync,\n} from 'path-exists';\n","import process from 'node:process';\nimport path from 'node:path';\nimport fs, {promises as fsPromises} from 'node:fs';\nimport {fileURLToPath} from 'node:url';\nimport pLocate from 'p-locate';\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile',\n};\n\nfunction checkType(type) {\n\tif (Object.hasOwnProperty.call(typeMappings, type)) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => stat[typeMappings[type]]();\n\nconst toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport async function locatePath(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t\tconcurrency,\n\t\tpreserveOrder,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fsPromises.stat : fsPromises.lstat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFunction(path.resolve(cwd, path_));\n\t\t\treturn matchType(type, stat);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, {concurrency, preserveOrder});\n}\n\nexport function locatePathSync(\n\tpaths,\n\t{\n\t\tcwd = process.cwd(),\n\t\ttype = 'file',\n\t\tallowSymlinks = true,\n\t} = {},\n) {\n\tcheckType(type);\n\tcwd = toPath(cwd);\n\n\tconst statFunction = allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFunction(path.resolve(cwd, path_), {\n\t\t\t\tthrowIfNoEntry: false,\n\t\t\t});\n\n\t\t\tif (!stat) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (matchType(type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch {}\n\t}\n}\n","import pLimit from 'p-limit';\n\nclass EndError extends Error {\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t}\n}\n\n// The input can also be a promise, so we await it.\nconst testElement = async (element, tester) => tester(await element);\n\n// The input can also be a promise, so we `Promise.all()` them both.\nconst finder = async element => {\n\tconst values = await Promise.all(element);\n\tif (values[1] === true) {\n\t\tthrow new EndError(values[0]);\n\t}\n\n\treturn false;\n};\n\nexport default async function pLocate(\n\titerable,\n\ttester,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tpreserveOrder = true,\n\t} = {},\n) {\n\tconst limit = pLimit(concurrency);\n\n\t// Start all the promises concurrently with optional limit.\n\tconst items = [...iterable].map(element => [element, limit(testElement, element, tester)]);\n\n\t// Check the promises either serially or concurrently.\n\tconst checkLimit = pLimit(preserveOrder ? 1 : Number.POSITIVE_INFINITY);\n\n\ttry {\n\t\tawait Promise.all(items.map(element => checkLimit(finder, element)));\n\t} catch (error) {\n\t\tif (error instanceof EndError) {\n\t\t\treturn error.value;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import {fileURLToPath} from 'node:url';\n\nexport function toPath(urlOrPath) {\n\treturn urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n}\n\nexport * from './default.js';\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n","import type { ObjValueTuple, TupleToUnion } from '@kubb/types'\nimport type { _Register } from './index.ts'\n\nexport type Plugins = _Register\nexport type OptionsPlugins = { [K in keyof Plugins]: Plugins[K]['options'] }\n\nexport type OptionsOfPlugin<K extends keyof Plugins> = Plugins[K]['options']\n\nexport type PluginUnion = TupleToUnion<ObjValueTuple<OptionsPlugins>>\n\nexport type Plugin = keyof Plugins\n"]}
package/dist/index.d.cts CHANGED
@@ -249,6 +249,7 @@ type CLIOptions = {
249
249
  logLevel?: LogLevel;
250
250
  };
251
251
  type UnionPlugins = PluginUnion;
252
+ type ObjectPlugin = keyof OptionsPlugins;
252
253
  type PluginFactoryOptions<
253
254
  /**
254
255
  * Name to be used for the plugin, this will also be used for they key.
@@ -289,6 +290,7 @@ TAppMeta = unknown> = {
289
290
  plugin: Plugin<PluginFactoryOptions<TName, TOptions, TResolvedOptions, TAPI, TResolvePathOptions, TAppMeta>>;
290
291
  } & TAppMeta;
291
292
  };
293
+ type GetPluginFactoryOptions<TPlugin extends UserPlugin> = TPlugin extends UserPlugin<infer X> ? X : never;
292
294
  type UserPlugin<TOptions extends PluginFactoryOptions = PluginFactoryOptions> = {
293
295
  /**
294
296
  * Unique name used for the plugin
@@ -688,4 +690,4 @@ declare class PromiseManager<TState = any> {
688
690
  interface _Register {
689
691
  }
690
692
 
691
- export { type CLIOptions, type Config, FileManager, Generator, kubb as Kubb, KubbFile, PackageManager, type Plugin, type PluginFactoryOptions, PluginManager, PromiseManager, type ResolveNameParams, type ResolvePathParams, type UserConfig, Warning, type _Register, build, createPlugin, build as default, defineConfig, isInputPath, pluginName as name, pluginName, safeBuild };
693
+ export { type CLIOptions, type Config, FileManager, Generator, type GetPluginFactoryOptions, type InputData, type InputPath, kubb as Kubb, KubbFile, type ObjectPlugin, PackageManager, type Plugin, type PluginCache, type PluginContext, type PluginFactoryOptions, type PluginLifecycle, type PluginLifecycleHooks, PluginManager, type PluginParameter, type PluginWithLifeCycle, PromiseManager, type ResolveNameParams, type ResolvePathParams, type TransformResult, type UnionPlugins, type UserConfig, type UserPlugin, type UserPluginWithLifeCycle, Warning, type _Register, build, createPlugin, build as default, defineConfig, isInputPath, pluginName as name, pluginName, safeBuild };
package/dist/index.d.ts CHANGED
@@ -249,6 +249,7 @@ type CLIOptions = {
249
249
  logLevel?: LogLevel;
250
250
  };
251
251
  type UnionPlugins = PluginUnion;
252
+ type ObjectPlugin = keyof OptionsPlugins;
252
253
  type PluginFactoryOptions<
253
254
  /**
254
255
  * Name to be used for the plugin, this will also be used for they key.
@@ -289,6 +290,7 @@ TAppMeta = unknown> = {
289
290
  plugin: Plugin<PluginFactoryOptions<TName, TOptions, TResolvedOptions, TAPI, TResolvePathOptions, TAppMeta>>;
290
291
  } & TAppMeta;
291
292
  };
293
+ type GetPluginFactoryOptions<TPlugin extends UserPlugin> = TPlugin extends UserPlugin<infer X> ? X : never;
292
294
  type UserPlugin<TOptions extends PluginFactoryOptions = PluginFactoryOptions> = {
293
295
  /**
294
296
  * Unique name used for the plugin
@@ -688,4 +690,4 @@ declare class PromiseManager<TState = any> {
688
690
  interface _Register {
689
691
  }
690
692
 
691
- export { type CLIOptions, type Config, FileManager, Generator, kubb as Kubb, KubbFile, PackageManager, type Plugin, type PluginFactoryOptions, PluginManager, PromiseManager, type ResolveNameParams, type ResolvePathParams, type UserConfig, Warning, type _Register, build, createPlugin, build as default, defineConfig, isInputPath, pluginName as name, pluginName, safeBuild };
693
+ export { type CLIOptions, type Config, FileManager, Generator, type GetPluginFactoryOptions, type InputData, type InputPath, kubb as Kubb, KubbFile, type ObjectPlugin, PackageManager, type Plugin, type PluginCache, type PluginContext, type PluginFactoryOptions, type PluginLifecycle, type PluginLifecycleHooks, PluginManager, type PluginParameter, type PluginWithLifeCycle, PromiseManager, type ResolveNameParams, type ResolvePathParams, type TransformResult, type UnionPlugins, type UserConfig, type UserPlugin, type UserPluginWithLifeCycle, Warning, type _Register, build, createPlugin, build as default, defineConfig, isInputPath, pluginName as name, pluginName, safeBuild };
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
- import { URLPath } from './chunk-MCUCYURB.js';
2
- import { clean } from './chunk-YETB7TYW.js';
3
- import { FileManager, PluginManager, isPromise } from './chunk-IAM2TSOD.js';
4
- export { FileManager, KubbFile, PluginManager, PromiseManager, Warning, createPlugin, pluginName as name, pluginName } from './chunk-IAM2TSOD.js';
5
- import './chunk-5TWA5OHW.js';
6
- import './chunk-7QEHTZ4T.js';
7
- import './chunk-QUL3TACU.js';
8
- import { LogLevel, createLogger, p, randomCliColour } from './chunk-RVIZ52LV.js';
9
- import { read, readSync } from './chunk-DDBPI6U7.js';
10
- import './chunk-XMJY6AMI.js';
11
- import { init_esm_shims, __privateAdd, __privateSet, __privateGet, __privateMethod } from './chunk-DZ63TRO3.js';
1
+ import { URLPath } from './chunk-VCS7BATE.js';
2
+ import { clean } from './chunk-YFNYSIDY.js';
3
+ import { FileManager, PluginManager, isPromise } from './chunk-Q5OJPP57.js';
4
+ export { FileManager, KubbFile, PluginManager, PromiseManager, Warning, createPlugin, pluginName as name, pluginName } from './chunk-Q5OJPP57.js';
5
+ import './chunk-YNFGR7GL.js';
6
+ import './chunk-QDUQWRFO.js';
7
+ import './chunk-DUZFWQUE.js';
8
+ import { LogLevel, createLogger, p, randomCliColour } from './chunk-E4QOZYOP.js';
9
+ import { read, readSync } from './chunk-7LKI2367.js';
10
+ import './chunk-HTCJOTLL.js';
11
+ import { init_esm_shims, __privateAdd, __privateSet, __privateGet, __privateMethod } from './chunk-6453B5D6.js';
12
12
  import mod from 'module';
13
13
  import os from 'os';
14
14
  import { pathToFileURL } from 'url';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/build.ts","../src/config.ts","../src/Generator.ts","../src/PackageManager.ts","../src/kubb.ts"],"names":["require"],"mappings":"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","sourcesContent":["export { build, build as default, safeBuild } from './build.ts'\nexport { defineConfig, isInputPath } from './config.ts'\nexport { Warning } from './errors.ts'\nexport { FileManager, KubbFile } from './FileManager.ts'\nexport { Generator } from './Generator.ts'\nexport { PackageManager } from './PackageManager.ts'\n// dprint-ignore\nexport { createPlugin, pluginName as name, pluginName } from './plugin.ts'\nexport { PluginManager } from './PluginManager.ts'\nexport { PromiseManager } from './PromiseManager.ts'\nexport type { CLIOptions, Config, Plugin, PluginFactoryOptions, ResolveNameParams, ResolvePathParams, UserConfig } from './types.ts'\n\nexport interface _Register {}\n\nexport * as Kubb from './kubb.ts'\n","import c from 'tinyrainbow'\n\nimport { clean } from './fs/clean.ts'\nimport { read } from './fs/read.ts'\nimport { URLPath } from './utils/URLPath.ts'\nimport { isInputPath } from './config.ts'\nimport { FileManager } from './FileManager.ts'\nimport { createLogger, LogLevel, randomCliColour } from './logger.ts'\nimport { PluginManager } from './PluginManager.ts'\nimport { isPromise } from './PromiseManager.ts'\n\nimport type { KubbFile } from './FileManager.ts'\nimport type { Logger } from './logger.ts'\nimport type { Plugin, PluginContext, PluginParameter, TransformResult } from './types.ts'\n\ntype BuildOptions = {\n config: PluginContext['config']\n /**\n * @default Logger without the spinner\n */\n logger?: Logger\n}\n\ntype BuildOutput = {\n files: FileManager['files']\n pluginManager: PluginManager\n /**\n * Only for safeBuild\n */\n error?: Error\n}\n\nasync function transformReducer(\n this: PluginContext,\n _previousCode: string,\n result: TransformResult | Promise<TransformResult>,\n _plugin: Plugin,\n): Promise<string | null> {\n return result\n}\n\nasync function setup(options: BuildOptions): Promise<PluginManager> {\n const { config, logger = createLogger({ logLevel: LogLevel.silent }) } = options\n let count = 0\n\n try {\n if (isInputPath(config) && !new URLPath(config.input.path).isURL) {\n await read(config.input.path)\n }\n } catch (e) {\n if (isInputPath(config)) {\n throw new Error(\n 'Cannot read file/URL defined in `input.path` or set with `kubb generate PATH` in the CLI of your Kubb config ' + c.dim(config.input.path),\n {\n cause: e,\n },\n )\n }\n }\n\n if (config.output.clean) {\n await clean(config.output.path)\n }\n\n const task = async (file: KubbFile.ResolvedFile): Promise<KubbFile.ResolvedFile> => {\n const { path } = file\n\n let source: string | null = FileManager.getSource(file)\n\n const { result: loadedResult } = await pluginManager.hookFirst({\n hookName: 'load',\n parameters: [path],\n })\n if (loadedResult && isPromise(loadedResult)) {\n source = await loadedResult\n }\n if (loadedResult && !isPromise(loadedResult)) {\n source = loadedResult\n }\n\n if (source) {\n source = await pluginManager.hookReduceArg0({\n hookName: 'transform',\n parameters: [source, path],\n reduce: transformReducer,\n })\n\n if (config.output.write || config.output.write === undefined) {\n if (file.meta?.pluginKey) {\n // run only for pluginKey defined in the meta of the file\n await pluginManager.hookForPlugin({\n pluginKey: file.meta?.pluginKey,\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n\n await pluginManager.hookFirst({\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n }\n\n return {\n ...file,\n source: source || '',\n }\n }\n\n const pluginManager = new PluginManager(config, { logger, task })\n\n pluginManager.on('execute', (executer) => {\n const { hookName, parameters, plugin } = executer\n\n if (hookName === 'writeFile') {\n const [code] = parameters as PluginParameter<'writeFile'>\n\n if (logger.logLevel === LogLevel.debug) {\n logger.emit('debug', [`PluginKey ${c.dim(JSON.stringify(plugin.key))} \\nwith source\\n\\n${code}`])\n }\n }\n })\n\n pluginManager.queue.on('add', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (count === 0) {\n logger.emit('start', `💾 Writing`)\n }\n })\n\n pluginManager.queue.on('active', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner && pluginManager.queue.size > 0) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n ;++count\n })\n\n pluginManager.queue.on('completed', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n })\n\n pluginManager.on('executed', (executer) => {\n const { hookName, plugin, output, parameters } = executer\n\n if (logger.logLevel === LogLevel.debug) {\n const logs = [\n `${randomCliColour(plugin.name)} Executing ${hookName}`,\n parameters && `${c.bgWhite(`Parameters`)} ${randomCliColour(plugin.name)} ${hookName}`,\n JSON.stringify(parameters, undefined, 2),\n output && `${c.bgWhite('Output')} ${randomCliColour(plugin.name)} ${hookName}`,\n output,\n ].filter(Boolean)\n\n logger.emit('debug', logs as string[])\n }\n })\n\n return pluginManager\n}\n\nexport async function build(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n\nexport async function safeBuild(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n try {\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n } catch (e) {\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager, error: e as Error }\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n","import type { PossiblePromise } from '@kubb/types'\nimport type { CLIOptions, Config, InputPath, UserConfig } from './types.ts'\n\n/**\n * Type helper to make it easier to use kubb.config.js\n * accepts a direct {@link Config} object, or a function that returns it.\n * The function receives a {@link ConfigEnv} object that exposes two properties:\n */\nexport function defineConfig(\n options:\n | PossiblePromise<UserConfig | Array<UserConfig>>\n | ((\n /** The options derived from the CLI flags */\n cliOptions: CLIOptions,\n ) => PossiblePromise<UserConfig | Array<UserConfig>>),\n): typeof options {\n return options\n}\n\nexport function isInputPath(result: Config | undefined): result is Config<InputPath> {\n return !!result && 'path' in (result as any)\n}\n","/**\n * Abstract class that contains the building blocks for plugins to create their own Generator\n * @link idea based on https://github.com/colinhacks/zod/blob/master/src/types.ts#L137\n */\nexport abstract class Generator<TOptions = unknown, TContext = unknown> {\n #options: TOptions = {} as TOptions\n #context: TContext = {} as TContext\n\n constructor(options?: TOptions, context?: TContext) {\n if (context) {\n this.#context = context\n }\n\n if (options) {\n this.#options = options\n }\n\n return this\n }\n\n get options(): TOptions {\n return this.#options\n }\n\n get context(): TContext {\n return this.#context\n }\n\n set options(options: TOptions) {\n this.#options = { ...this.#options, ...options }\n }\n\n abstract build(...params: unknown[]): unknown\n}\n","import mod from 'node:module'\nimport os from 'node:os'\nimport { pathToFileURL } from 'node:url'\n\nimport { findUp, findUpSync } from 'find-up'\nimport { coerce, satisfies } from 'semver'\n\nimport { read, readSync } from './fs/read'\n\ntype PackageJSON = {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n}\n\ntype DependencyName = string\n\ntype DependencyVersion = string\n\nexport class PackageManager {\n static #cache: Record<DependencyName, DependencyVersion> = {}\n\n #cwd?: string\n #SLASHES = new Set(['/', '\\\\'])\n constructor(workspace?: string) {\n if (workspace) {\n this.#cwd = workspace\n }\n\n return this\n }\n\n set workspace(workspace: string) {\n this.#cwd = workspace\n }\n\n get workspace(): string | undefined {\n return this.#cwd\n }\n\n normalizeDirectory(directory: string): string {\n if (!this.#SLASHES.has(directory[directory.length - 1]!)) {\n return `${directory}/`\n }\n\n return directory\n }\n\n getLocation(path: string): string {\n let location = path\n\n if (this.#cwd) {\n const require = mod.createRequire(this.normalizeDirectory(this.#cwd))\n location = require.resolve(path)\n }\n\n return location\n }\n\n async import(path: string): Promise<any | undefined> {\n try {\n let location = this.getLocation(path)\n\n if (os.platform() == 'win32') {\n location = pathToFileURL(location).href\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const module = await import(location)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n return module?.default ?? module\n } catch (e) {\n console.log(e)\n return undefined\n }\n }\n\n async getPackageJSON(): Promise<PackageJSON | undefined> {\n const pkgPath = await findUp(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = await read(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n getPackageJSONSync(): PackageJSON | undefined {\n const pkgPath = findUpSync(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = readSync(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n static setVersion(dependency: DependencyName, version: DependencyVersion): void {\n PackageManager.#cache[dependency] = version\n }\n\n #match(packageJSON: PackageJSON, dependency: DependencyName | RegExp): string | undefined {\n const dependencies = {\n ...packageJSON['dependencies'] || {},\n ...packageJSON['devDependencies'] || {},\n }\n\n if (typeof dependency === 'string' && dependencies[dependency]) {\n return dependencies[dependency]\n }\n\n const matchedDependency = Object.keys(dependencies).find(dep => dep.match(dependency))\n\n return matchedDependency ? dependencies[matchedDependency] : undefined\n }\n\n async getVersion(dependency: DependencyName | RegExp): Promise<DependencyVersion | undefined> {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = await this.getPackageJSON()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n getVersionSync(dependency: DependencyName | RegExp): DependencyVersion | undefined {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = this.getPackageJSONSync()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n async isValid(dependency: DependencyName | RegExp, version: DependencyVersion): Promise<boolean> {\n const packageVersion = await this.getVersion(dependency)\n\n if (!packageVersion) {\n return false\n }\n\n if (packageVersion === version) {\n return true\n }\n\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n isValidSync(dependency: DependencyName | RegExp, version: DependencyVersion): boolean {\n const packageVersion = this.getVersionSync(dependency)\n\n if (!packageVersion) {\n return false\n }\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n}\n","import type { ObjValueTuple, TupleToUnion } from '@kubb/types'\nimport type { _Register } from './index.ts'\n\nexport type Plugins = _Register\nexport type OptionsPlugins = { [K in keyof Plugins]: Plugins[K]['options'] }\n\nexport type OptionsOfPlugin<K extends keyof Plugins> = Plugins[K]['options']\n\nexport type PluginUnion = TupleToUnion<ObjValueTuple<OptionsPlugins>>\n\nexport type Plugin = keyof Plugins\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/build.ts","../src/config.ts","../src/Generator.ts","../src/PackageManager.ts","../src/kubb.ts"],"names":["require"],"mappings":"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","sourcesContent":["export { build, build as default, safeBuild } from './build.ts'\nexport { defineConfig, isInputPath } from './config.ts'\nexport { Warning } from './errors.ts'\nexport { FileManager, KubbFile } from './FileManager.ts'\nexport { Generator } from './Generator.ts'\nexport { PackageManager } from './PackageManager.ts'\n// dprint-ignore\nexport { createPlugin, pluginName as name, pluginName } from './plugin.ts'\nexport { PluginManager } from './PluginManager.ts'\nexport { PromiseManager } from './PromiseManager.ts'\nexport type * from './types.ts'\n\nexport interface _Register {}\n\nexport * as Kubb from './kubb.ts'\n","import c from 'tinyrainbow'\n\nimport { clean } from './fs/clean.ts'\nimport { read } from './fs/read.ts'\nimport { URLPath } from './utils/URLPath.ts'\nimport { isInputPath } from './config.ts'\nimport { FileManager } from './FileManager.ts'\nimport { createLogger, LogLevel, randomCliColour } from './logger.ts'\nimport { PluginManager } from './PluginManager.ts'\nimport { isPromise } from './PromiseManager.ts'\n\nimport type { KubbFile } from './FileManager.ts'\nimport type { Logger } from './logger.ts'\nimport type { Plugin, PluginContext, PluginParameter, TransformResult } from './types.ts'\n\ntype BuildOptions = {\n config: PluginContext['config']\n /**\n * @default Logger without the spinner\n */\n logger?: Logger\n}\n\ntype BuildOutput = {\n files: FileManager['files']\n pluginManager: PluginManager\n /**\n * Only for safeBuild\n */\n error?: Error\n}\n\nasync function transformReducer(\n this: PluginContext,\n _previousCode: string,\n result: TransformResult | Promise<TransformResult>,\n _plugin: Plugin,\n): Promise<string | null> {\n return result\n}\n\nasync function setup(options: BuildOptions): Promise<PluginManager> {\n const { config, logger = createLogger({ logLevel: LogLevel.silent }) } = options\n let count = 0\n\n try {\n if (isInputPath(config) && !new URLPath(config.input.path).isURL) {\n await read(config.input.path)\n }\n } catch (e) {\n if (isInputPath(config)) {\n throw new Error(\n 'Cannot read file/URL defined in `input.path` or set with `kubb generate PATH` in the CLI of your Kubb config ' + c.dim(config.input.path),\n {\n cause: e,\n },\n )\n }\n }\n\n if (config.output.clean) {\n await clean(config.output.path)\n }\n\n const task = async (file: KubbFile.ResolvedFile): Promise<KubbFile.ResolvedFile> => {\n const { path } = file\n\n let source: string | null = FileManager.getSource(file)\n\n const { result: loadedResult } = await pluginManager.hookFirst({\n hookName: 'load',\n parameters: [path],\n })\n if (loadedResult && isPromise(loadedResult)) {\n source = await loadedResult\n }\n if (loadedResult && !isPromise(loadedResult)) {\n source = loadedResult\n }\n\n if (source) {\n source = await pluginManager.hookReduceArg0({\n hookName: 'transform',\n parameters: [source, path],\n reduce: transformReducer,\n })\n\n if (config.output.write || config.output.write === undefined) {\n if (file.meta?.pluginKey) {\n // run only for pluginKey defined in the meta of the file\n await pluginManager.hookForPlugin({\n pluginKey: file.meta?.pluginKey,\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n\n await pluginManager.hookFirst({\n hookName: 'writeFile',\n parameters: [source, path],\n })\n }\n }\n\n return {\n ...file,\n source: source || '',\n }\n }\n\n const pluginManager = new PluginManager(config, { logger, task })\n\n pluginManager.on('execute', (executer) => {\n const { hookName, parameters, plugin } = executer\n\n if (hookName === 'writeFile') {\n const [code] = parameters as PluginParameter<'writeFile'>\n\n if (logger.logLevel === LogLevel.debug) {\n logger.emit('debug', [`PluginKey ${c.dim(JSON.stringify(plugin.key))} \\nwith source\\n\\n${code}`])\n }\n }\n })\n\n pluginManager.queue.on('add', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (count === 0) {\n logger.emit('start', `💾 Writing`)\n }\n })\n\n pluginManager.queue.on('active', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner && pluginManager.queue.size > 0) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n ;++count\n })\n\n pluginManager.queue.on('completed', () => {\n if (logger.logLevel !== LogLevel.info) {\n return\n }\n\n if (logger.spinner) {\n const text = `Item: ${count} Size: ${pluginManager.queue.size} Pending: ${pluginManager.queue.pending}`\n\n logger.spinner.suffixText = c.dim(text)\n }\n })\n\n pluginManager.on('executed', (executer) => {\n const { hookName, plugin, output, parameters } = executer\n\n if (logger.logLevel === LogLevel.debug) {\n const logs = [\n `${randomCliColour(plugin.name)} Executing ${hookName}`,\n parameters && `${c.bgWhite(`Parameters`)} ${randomCliColour(plugin.name)} ${hookName}`,\n JSON.stringify(parameters, undefined, 2),\n output && `${c.bgWhite('Output')} ${randomCliColour(plugin.name)} ${hookName}`,\n output,\n ].filter(Boolean)\n\n logger.emit('debug', logs as string[])\n }\n })\n\n return pluginManager\n}\n\nexport async function build(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n\nexport async function safeBuild(options: BuildOptions): Promise<BuildOutput> {\n const pluginManager = await setup(options)\n\n const { fileManager, logger } = pluginManager\n\n try {\n await pluginManager.hookParallel({\n hookName: 'buildStart',\n parameters: [options.config],\n })\n\n await pluginManager.hookParallel({ hookName: 'buildEnd' })\n\n if (logger.logLevel === LogLevel.info) {\n logger.emit('end', `💾 Writing completed`)\n }\n } catch (e) {\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager, error: e as Error }\n }\n\n return { files: fileManager.files.map((file) => ({ ...file, source: FileManager.getSource(file) })), pluginManager }\n}\n","import type { PossiblePromise } from '@kubb/types'\nimport type { CLIOptions, Config, InputPath, UserConfig } from './types.ts'\n\n/**\n * Type helper to make it easier to use kubb.config.js\n * accepts a direct {@link Config} object, or a function that returns it.\n * The function receives a {@link ConfigEnv} object that exposes two properties:\n */\nexport function defineConfig(\n options:\n | PossiblePromise<UserConfig | Array<UserConfig>>\n | ((\n /** The options derived from the CLI flags */\n cliOptions: CLIOptions,\n ) => PossiblePromise<UserConfig | Array<UserConfig>>),\n): typeof options {\n return options\n}\n\nexport function isInputPath(result: Config | undefined): result is Config<InputPath> {\n return !!result && 'path' in (result as any)\n}\n","/**\n * Abstract class that contains the building blocks for plugins to create their own Generator\n * @link idea based on https://github.com/colinhacks/zod/blob/master/src/types.ts#L137\n */\nexport abstract class Generator<TOptions = unknown, TContext = unknown> {\n #options: TOptions = {} as TOptions\n #context: TContext = {} as TContext\n\n constructor(options?: TOptions, context?: TContext) {\n if (context) {\n this.#context = context\n }\n\n if (options) {\n this.#options = options\n }\n\n return this\n }\n\n get options(): TOptions {\n return this.#options\n }\n\n get context(): TContext {\n return this.#context\n }\n\n set options(options: TOptions) {\n this.#options = { ...this.#options, ...options }\n }\n\n abstract build(...params: unknown[]): unknown\n}\n","import mod from 'node:module'\nimport os from 'node:os'\nimport { pathToFileURL } from 'node:url'\n\nimport { findUp, findUpSync } from 'find-up'\nimport { coerce, satisfies } from 'semver'\n\nimport { read, readSync } from './fs/read'\n\ntype PackageJSON = {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n}\n\ntype DependencyName = string\n\ntype DependencyVersion = string\n\nexport class PackageManager {\n static #cache: Record<DependencyName, DependencyVersion> = {}\n\n #cwd?: string\n #SLASHES = new Set(['/', '\\\\'])\n constructor(workspace?: string) {\n if (workspace) {\n this.#cwd = workspace\n }\n\n return this\n }\n\n set workspace(workspace: string) {\n this.#cwd = workspace\n }\n\n get workspace(): string | undefined {\n return this.#cwd\n }\n\n normalizeDirectory(directory: string): string {\n if (!this.#SLASHES.has(directory[directory.length - 1]!)) {\n return `${directory}/`\n }\n\n return directory\n }\n\n getLocation(path: string): string {\n let location = path\n\n if (this.#cwd) {\n const require = mod.createRequire(this.normalizeDirectory(this.#cwd))\n location = require.resolve(path)\n }\n\n return location\n }\n\n async import(path: string): Promise<any | undefined> {\n try {\n let location = this.getLocation(path)\n\n if (os.platform() == 'win32') {\n location = pathToFileURL(location).href\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const module = await import(location)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n return module?.default ?? module\n } catch (e) {\n console.log(e)\n return undefined\n }\n }\n\n async getPackageJSON(): Promise<PackageJSON | undefined> {\n const pkgPath = await findUp(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = await read(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n getPackageJSONSync(): PackageJSON | undefined {\n const pkgPath = findUpSync(['package.json'], {\n cwd: this.#cwd,\n })\n if (!pkgPath) {\n return undefined\n }\n\n const json = readSync(pkgPath)\n\n return JSON.parse(json) as PackageJSON\n }\n\n static setVersion(dependency: DependencyName, version: DependencyVersion): void {\n PackageManager.#cache[dependency] = version\n }\n\n #match(packageJSON: PackageJSON, dependency: DependencyName | RegExp): string | undefined {\n const dependencies = {\n ...packageJSON['dependencies'] || {},\n ...packageJSON['devDependencies'] || {},\n }\n\n if (typeof dependency === 'string' && dependencies[dependency]) {\n return dependencies[dependency]\n }\n\n const matchedDependency = Object.keys(dependencies).find(dep => dep.match(dependency))\n\n return matchedDependency ? dependencies[matchedDependency] : undefined\n }\n\n async getVersion(dependency: DependencyName | RegExp): Promise<DependencyVersion | undefined> {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = await this.getPackageJSON()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n getVersionSync(dependency: DependencyName | RegExp): DependencyVersion | undefined {\n if (typeof dependency === 'string' && PackageManager.#cache[dependency]) {\n return PackageManager.#cache[dependency]\n }\n\n const packageJSON = this.getPackageJSONSync()\n\n if (!packageJSON) {\n return undefined\n }\n\n return this.#match(packageJSON, dependency)\n }\n\n async isValid(dependency: DependencyName | RegExp, version: DependencyVersion): Promise<boolean> {\n const packageVersion = await this.getVersion(dependency)\n\n if (!packageVersion) {\n return false\n }\n\n if (packageVersion === version) {\n return true\n }\n\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n isValidSync(dependency: DependencyName | RegExp, version: DependencyVersion): boolean {\n const packageVersion = this.getVersionSync(dependency)\n\n if (!packageVersion) {\n return false\n }\n const semVer = coerce(packageVersion)\n\n if (!semVer) {\n throw new Error(`${packageVersion} is not valid`)\n }\n\n return satisfies(semVer, version)\n }\n}\n","import type { ObjValueTuple, TupleToUnion } from '@kubb/types'\nimport type { _Register } from './index.ts'\n\nexport type Plugins = _Register\nexport type OptionsPlugins = { [K in keyof Plugins]: Plugins[K]['options'] }\n\nexport type OptionsOfPlugin<K extends keyof Plugins> = Plugins[K]['options']\n\nexport type PluginUnion = TupleToUnion<ObjValueTuple<OptionsPlugins>>\n\nexport type Plugin = keyof Plugins\n"]}
package/dist/logger.cjs CHANGED
@@ -1,26 +1,26 @@
1
1
  'use strict';
2
2
 
3
- var chunkDZZXW555_cjs = require('./chunk-DZZXW555.cjs');
4
- require('./chunk-JQBPOWRF.cjs');
5
- require('./chunk-NGM34FB2.cjs');
3
+ var chunkKRX65PCH_cjs = require('./chunk-KRX65PCH.cjs');
4
+ require('./chunk-PHI4BK5K.cjs');
5
+ require('./chunk-2JNTDAI2.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "LogLevel", {
10
10
  enumerable: true,
11
- get: function () { return chunkDZZXW555_cjs.LogLevel; }
11
+ get: function () { return chunkKRX65PCH_cjs.LogLevel; }
12
12
  });
13
13
  Object.defineProperty(exports, "createLogger", {
14
14
  enumerable: true,
15
- get: function () { return chunkDZZXW555_cjs.createLogger; }
15
+ get: function () { return chunkKRX65PCH_cjs.createLogger; }
16
16
  });
17
17
  Object.defineProperty(exports, "randomCliColour", {
18
18
  enumerable: true,
19
- get: function () { return chunkDZZXW555_cjs.randomCliColour; }
19
+ get: function () { return chunkKRX65PCH_cjs.randomCliColour; }
20
20
  });
21
21
  Object.defineProperty(exports, "randomColour", {
22
22
  enumerable: true,
23
- get: function () { return chunkDZZXW555_cjs.randomColour; }
23
+ get: function () { return chunkKRX65PCH_cjs.randomColour; }
24
24
  });
25
25
  //# sourceMappingURL=out.js.map
26
26
  //# sourceMappingURL=logger.cjs.map
package/dist/logger.js CHANGED
@@ -1,5 +1,5 @@
1
- export { LogLevel, createLogger, randomCliColour, randomColour } from './chunk-RVIZ52LV.js';
2
- import './chunk-XMJY6AMI.js';
3
- import './chunk-DZ63TRO3.js';
1
+ export { LogLevel, createLogger, randomCliColour, randomColour } from './chunk-E4QOZYOP.js';
2
+ import './chunk-HTCJOTLL.js';
3
+ import './chunk-6453B5D6.js';
4
4
  //# sourceMappingURL=out.js.map
5
5
  //# sourceMappingURL=logger.js.map
package/dist/mocks.cjs CHANGED
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- require('./chunk-O6KGDMGN.cjs');
4
- require('./chunk-DNFR6EDG.cjs');
5
- require('./chunk-CPVVYFYJ.cjs');
6
- var chunkFEAY5FTX_cjs = require('./chunk-FEAY5FTX.cjs');
7
- require('./chunk-DZZXW555.cjs');
8
- require('./chunk-P5VTO36N.cjs');
9
- require('./chunk-JQBPOWRF.cjs');
10
- var chunkNGM34FB2_cjs = require('./chunk-NGM34FB2.cjs');
3
+ require('./chunk-LVTR4JV4.cjs');
4
+ require('./chunk-JWYPCGK5.cjs');
5
+ require('./chunk-WCUXF325.cjs');
6
+ var chunkAMVMOCJ4_cjs = require('./chunk-AMVMOCJ4.cjs');
7
+ require('./chunk-KRX65PCH.cjs');
8
+ require('./chunk-WDKUUZXN.cjs');
9
+ require('./chunk-PHI4BK5K.cjs');
10
+ var chunk2JNTDAI2_cjs = require('./chunk-2JNTDAI2.cjs');
11
11
 
12
12
  // mocks/index.ts
13
- chunkNGM34FB2_cjs.init_cjs_shims();
13
+ chunk2JNTDAI2_cjs.init_cjs_shims();
14
14
  var mockedPluginManager = {
15
15
  resolveName: ({ name, type }) => {
16
16
  if (type === "type") {
17
- return chunkFEAY5FTX_cjs.pascalCase(name);
17
+ return chunkAMVMOCJ4_cjs.pascalCase(name);
18
18
  }
19
19
  return name;
20
20
  },
package/dist/mocks.js CHANGED
@@ -1,11 +1,11 @@
1
- import './chunk-IAM2TSOD.js';
2
- import './chunk-5TWA5OHW.js';
3
- import './chunk-7QEHTZ4T.js';
4
- import { pascalCase } from './chunk-QUL3TACU.js';
5
- import './chunk-RVIZ52LV.js';
6
- import './chunk-DDBPI6U7.js';
7
- import './chunk-XMJY6AMI.js';
8
- import { init_esm_shims } from './chunk-DZ63TRO3.js';
1
+ import './chunk-Q5OJPP57.js';
2
+ import './chunk-YNFGR7GL.js';
3
+ import './chunk-QDUQWRFO.js';
4
+ import { pascalCase } from './chunk-DUZFWQUE.js';
5
+ import './chunk-E4QOZYOP.js';
6
+ import './chunk-7LKI2367.js';
7
+ import './chunk-HTCJOTLL.js';
8
+ import { init_esm_shims } from './chunk-6453B5D6.js';
9
9
 
10
10
  // mocks/index.ts
11
11
  init_esm_shims();
@@ -2,21 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var chunkDNFR6EDG_cjs = require('./chunk-DNFR6EDG.cjs');
6
- var chunkFEAY5FTX_cjs = require('./chunk-FEAY5FTX.cjs');
7
- var chunkNGM34FB2_cjs = require('./chunk-NGM34FB2.cjs');
5
+ var chunkJWYPCGK5_cjs = require('./chunk-JWYPCGK5.cjs');
6
+ var chunkAMVMOCJ4_cjs = require('./chunk-AMVMOCJ4.cjs');
7
+ var chunk2JNTDAI2_cjs = require('./chunk-2JNTDAI2.cjs');
8
8
 
9
9
  // src/transformers/index.ts
10
- chunkNGM34FB2_cjs.init_cjs_shims();
10
+ chunk2JNTDAI2_cjs.init_cjs_shims();
11
11
 
12
12
  // src/transformers/combineCodes.ts
13
- chunkNGM34FB2_cjs.init_cjs_shims();
13
+ chunk2JNTDAI2_cjs.init_cjs_shims();
14
14
  function combineCodes(codes) {
15
15
  return codes.join("\n");
16
16
  }
17
17
 
18
18
  // src/transformers/createJSDocBlockText.ts
19
- chunkNGM34FB2_cjs.init_cjs_shims();
19
+ chunk2JNTDAI2_cjs.init_cjs_shims();
20
20
  function createJSDocBlockText({ comments }) {
21
21
  const filteredComments = comments.filter(Boolean);
22
22
  if (!filteredComments.length) {
@@ -28,7 +28,7 @@ function createJSDocBlockText({ comments }) {
28
28
  }
29
29
 
30
30
  // src/transformers/escape.ts
31
- chunkNGM34FB2_cjs.init_cjs_shims();
31
+ chunk2JNTDAI2_cjs.init_cjs_shims();
32
32
  function escape(text) {
33
33
  return text ? text.replaceAll("`", "\\`") : "";
34
34
  }
@@ -54,13 +54,13 @@ function jsStringEscape(input) {
54
54
  }
55
55
 
56
56
  // src/transformers/indent.ts
57
- chunkNGM34FB2_cjs.init_cjs_shims();
57
+ chunk2JNTDAI2_cjs.init_cjs_shims();
58
58
  function createIndent(size) {
59
59
  return Array.from({ length: size + 1 }).join(" ");
60
60
  }
61
61
 
62
62
  // src/transformers/nameSorter.ts
63
- chunkNGM34FB2_cjs.init_cjs_shims();
63
+ chunk2JNTDAI2_cjs.init_cjs_shims();
64
64
  function nameSorter(a, b) {
65
65
  if (a.name < b.name) {
66
66
  return -1;
@@ -77,46 +77,46 @@ var transformers_default = {
77
77
  escape,
78
78
  jsStringEscape,
79
79
  createIndent,
80
- transformReservedWord: chunkDNFR6EDG_cjs.transformReservedWord,
80
+ transformReservedWord: chunkJWYPCGK5_cjs.transformReservedWord,
81
81
  nameSorter,
82
- searchAndReplace: chunkDNFR6EDG_cjs.searchAndReplace,
83
- trim: chunkDNFR6EDG_cjs.trim,
84
- trimExtName: chunkDNFR6EDG_cjs.trimExtName,
82
+ searchAndReplace: chunkJWYPCGK5_cjs.searchAndReplace,
83
+ trim: chunkJWYPCGK5_cjs.trim,
84
+ trimExtName: chunkJWYPCGK5_cjs.trimExtName,
85
85
  JSDoc: {
86
86
  createJSDocBlockText
87
87
  },
88
- camelCase: chunkFEAY5FTX_cjs.camelCase,
89
- pascalCase: chunkFEAY5FTX_cjs.pascalCase,
90
- pathCase: chunkFEAY5FTX_cjs.pathCase
88
+ camelCase: chunkAMVMOCJ4_cjs.camelCase,
89
+ pascalCase: chunkAMVMOCJ4_cjs.pascalCase,
90
+ pathCase: chunkAMVMOCJ4_cjs.pathCase
91
91
  };
92
92
 
93
93
  Object.defineProperty(exports, "searchAndReplace", {
94
94
  enumerable: true,
95
- get: function () { return chunkDNFR6EDG_cjs.searchAndReplace; }
95
+ get: function () { return chunkJWYPCGK5_cjs.searchAndReplace; }
96
96
  });
97
97
  Object.defineProperty(exports, "transformReservedWord", {
98
98
  enumerable: true,
99
- get: function () { return chunkDNFR6EDG_cjs.transformReservedWord; }
99
+ get: function () { return chunkJWYPCGK5_cjs.transformReservedWord; }
100
100
  });
101
101
  Object.defineProperty(exports, "trim", {
102
102
  enumerable: true,
103
- get: function () { return chunkDNFR6EDG_cjs.trim; }
103
+ get: function () { return chunkJWYPCGK5_cjs.trim; }
104
104
  });
105
105
  Object.defineProperty(exports, "trimExtName", {
106
106
  enumerable: true,
107
- get: function () { return chunkDNFR6EDG_cjs.trimExtName; }
107
+ get: function () { return chunkJWYPCGK5_cjs.trimExtName; }
108
108
  });
109
109
  Object.defineProperty(exports, "camelCase", {
110
110
  enumerable: true,
111
- get: function () { return chunkFEAY5FTX_cjs.camelCase; }
111
+ get: function () { return chunkAMVMOCJ4_cjs.camelCase; }
112
112
  });
113
113
  Object.defineProperty(exports, "pascalCase", {
114
114
  enumerable: true,
115
- get: function () { return chunkFEAY5FTX_cjs.pascalCase; }
115
+ get: function () { return chunkAMVMOCJ4_cjs.pascalCase; }
116
116
  });
117
117
  Object.defineProperty(exports, "pathCase", {
118
118
  enumerable: true,
119
- get: function () { return chunkFEAY5FTX_cjs.pathCase; }
119
+ get: function () { return chunkAMVMOCJ4_cjs.pathCase; }
120
120
  });
121
121
  exports.combineCodes = combineCodes;
122
122
  exports.createIndent = createIndent;
@@ -1,8 +1,8 @@
1
- import { transformReservedWord, searchAndReplace, trim, trimExtName } from './chunk-5TWA5OHW.js';
2
- export { searchAndReplace, transformReservedWord, trim, trimExtName } from './chunk-5TWA5OHW.js';
3
- import { camelCase, pascalCase, pathCase } from './chunk-QUL3TACU.js';
4
- export { camelCase, pascalCase, pathCase } from './chunk-QUL3TACU.js';
5
- import { init_esm_shims } from './chunk-DZ63TRO3.js';
1
+ import { transformReservedWord, searchAndReplace, trim, trimExtName } from './chunk-YNFGR7GL.js';
2
+ export { searchAndReplace, transformReservedWord, trim, trimExtName } from './chunk-YNFGR7GL.js';
3
+ import { camelCase, pascalCase, pathCase } from './chunk-DUZFWQUE.js';
4
+ export { camelCase, pascalCase, pathCase } from './chunk-DUZFWQUE.js';
5
+ import { init_esm_shims } from './chunk-6453B5D6.js';
6
6
 
7
7
  // src/transformers/index.ts
8
8
  init_esm_shims();