@kubb/core 3.0.0-alpha.4 → 3.0.0-alpha.6

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 (73) hide show
  1. package/dist/{FileManager-CaejIVBd.d.ts → FileManager-Ceski1W9.d.ts} +47 -47
  2. package/dist/{FileManager--scIq4y4.d.cts → FileManager-wyXRkgIk.d.cts} +47 -47
  3. package/dist/chunk-2EU7DMPM.js +97 -0
  4. package/dist/chunk-2EU7DMPM.js.map +1 -0
  5. package/dist/chunk-5HN4LW3R.cjs +102 -0
  6. package/dist/chunk-5HN4LW3R.cjs.map +1 -0
  7. package/dist/{chunk-EFQPHF4E.js → chunk-76UEJFFE.js} +1 -4
  8. package/dist/chunk-76UEJFFE.js.map +1 -0
  9. package/dist/{chunk-5JZNFPUP.js → chunk-AWAZR3D5.js} +61 -10
  10. package/dist/chunk-AWAZR3D5.js.map +1 -0
  11. package/dist/{chunk-V5THHXXQ.cjs → chunk-DCZQYCCO.cjs} +218 -299
  12. package/dist/chunk-DCZQYCCO.cjs.map +1 -0
  13. package/dist/{chunk-YTSNYMHW.cjs → chunk-L3JJLZ5Q.cjs} +62 -11
  14. package/dist/chunk-L3JJLZ5Q.cjs.map +1 -0
  15. package/dist/{chunk-QRIDQ4RG.cjs → chunk-LOLEBOMW.cjs} +1 -4
  16. package/dist/chunk-LOLEBOMW.cjs.map +1 -0
  17. package/dist/chunk-RIEGCND2.js +525 -0
  18. package/dist/chunk-RIEGCND2.js.map +1 -0
  19. package/dist/index.cjs +81 -75
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +4 -6
  22. package/dist/index.d.ts +4 -6
  23. package/dist/index.js +68 -64
  24. package/dist/index.js.map +1 -1
  25. package/dist/{logger-dzAcLeAA.d.cts → logger-BWFeedRk.d.cts} +17 -2
  26. package/dist/{logger-dzAcLeAA.d.ts → logger-BWFeedRk.d.ts} +17 -2
  27. package/dist/logger.cjs +2 -2
  28. package/dist/logger.d.cts +1 -1
  29. package/dist/logger.d.ts +1 -1
  30. package/dist/logger.js +1 -1
  31. package/dist/mocks.cjs +4 -6
  32. package/dist/mocks.cjs.map +1 -1
  33. package/dist/mocks.d.cts +3 -5
  34. package/dist/mocks.d.ts +3 -5
  35. package/dist/mocks.js +5 -7
  36. package/dist/mocks.js.map +1 -1
  37. package/dist/transformers.cjs +189 -33
  38. package/dist/transformers.cjs.map +1 -1
  39. package/dist/transformers.d.cts +1 -3
  40. package/dist/transformers.d.ts +1 -3
  41. package/dist/transformers.js +156 -14
  42. package/dist/transformers.js.map +1 -1
  43. package/dist/utils.cjs +6 -2
  44. package/dist/utils.cjs.map +1 -1
  45. package/dist/utils.d.cts +30 -3
  46. package/dist/utils.d.ts +30 -3
  47. package/dist/utils.js +7 -3
  48. package/package.json +9 -8
  49. package/src/BarrelManager.ts +27 -93
  50. package/src/FileManager.ts +165 -266
  51. package/src/PackageManager.ts +1 -1
  52. package/src/PluginManager.ts +89 -57
  53. package/src/build.ts +7 -26
  54. package/src/logger.ts +6 -7
  55. package/src/transformers/index.ts +2 -3
  56. package/src/transformers/trim.ts +0 -4
  57. package/src/types.ts +1 -1
  58. package/src/utils/TreeNode.ts +91 -26
  59. package/src/utils/executeStrategies.ts +1 -1
  60. package/src/utils/index.ts +2 -1
  61. package/src/utils/parser.ts +96 -0
  62. package/dist/chunk-5JZNFPUP.js.map +0 -1
  63. package/dist/chunk-EFQPHF4E.js.map +0 -1
  64. package/dist/chunk-JKZG2IJR.js +0 -283
  65. package/dist/chunk-JKZG2IJR.js.map +0 -1
  66. package/dist/chunk-PZT4CTBV.cjs +0 -299
  67. package/dist/chunk-PZT4CTBV.cjs.map +0 -1
  68. package/dist/chunk-QRIDQ4RG.cjs.map +0 -1
  69. package/dist/chunk-UUBPTMRW.js +0 -608
  70. package/dist/chunk-UUBPTMRW.js.map +0 -1
  71. package/dist/chunk-V5THHXXQ.cjs.map +0 -1
  72. package/dist/chunk-YTSNYMHW.cjs.map +0 -1
  73. package/src/utils/getParser.ts +0 -17
@@ -0,0 +1,96 @@
1
+ import type * as KubbFile from '@kubb/fs/types'
2
+
3
+ import hash from 'object-hash'
4
+
5
+ /**
6
+ * Helper to create a file with name and id set
7
+ */
8
+ export function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta> {
9
+ return {
10
+ id: hash({ path: file.path }),
11
+ name: trimExtName(file.baseName),
12
+ extName: file.baseName.split('.').pop() || '',
13
+ ...file,
14
+ }
15
+ }
16
+
17
+ export type ParserModule<TImport = unknown, TExport = unknown> = {
18
+ createImport: (props: {
19
+ name:
20
+ | string
21
+ | Array<
22
+ | string
23
+ | {
24
+ propertyName: string
25
+ name?: string
26
+ }
27
+ >
28
+ path: string
29
+ isTypeOnly?: boolean
30
+ isNameSpace?: boolean
31
+ }) => TImport | undefined
32
+ createExport: (props: {
33
+ path: string
34
+ asAlias?: boolean
35
+ isTypeOnly?: boolean
36
+ name?: string | Array<string>
37
+ }) => TExport | undefined
38
+ print: (props: { imports: Array<TImport>; exports: Array<TExport>; source: string }) => string
39
+ }
40
+
41
+ export function createFileParser<TImport = unknown, TExport = unknown>(parser: ParserModule<TImport, TExport>): ParserModule<TImport, TExport> {
42
+ return parser
43
+ }
44
+
45
+ export async function getFileParser(extName: string | undefined): Promise<ParserModule<any, any>> {
46
+ switch (extName) {
47
+ case 'ts':
48
+ case 'js':
49
+ case 'tsx':
50
+ case 'jsx': {
51
+ const module = await import('@kubb/parser-ts')
52
+
53
+ return createFileParser({
54
+ createExport({ name, path, isTypeOnly, asAlias }) {
55
+ return module.factory.createExportDeclaration({
56
+ path,
57
+ asAlias,
58
+ isTypeOnly,
59
+ name,
60
+ })
61
+ },
62
+ createImport({ name, path, isTypeOnly }) {
63
+ return module.factory.createImportDeclaration({
64
+ name: name as any,
65
+ path,
66
+ isTypeOnly,
67
+ })
68
+ },
69
+ print(props) {
70
+ const source = [module.print([...props.imports, ...props.exports]), props.source].join('\n')
71
+
72
+ // do some basic linting with the ts compiler
73
+ return module.print([], { source, noEmitHelpers: false })
74
+ },
75
+ })
76
+ }
77
+ default:
78
+ return createFileParser<string>({
79
+ createExport() {
80
+ return undefined
81
+ },
82
+ createImport() {
83
+ return undefined
84
+ },
85
+ print(props) {
86
+ return props.source
87
+ },
88
+ })
89
+ }
90
+ }
91
+
92
+ export function trimExtName(text: string): string {
93
+ const extName = text.split('.').pop()
94
+
95
+ return text.replace(`.${extName}`, '')
96
+ }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts","../src/utils/uniqueName.ts","../src/utils/URLPath.ts","../src/utils/getParser.ts"],"sourcesContent":["import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n/**\n * @deprecated\n */\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\n\n/**\n * @deprecated\n */\nexport class FunctionParams {\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor() {\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.#items.push(it))\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(\n items.filter(Boolean),\n [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ],\n ['desc', 'desc'],\n )\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every((item) => item.required) ?? true\n\n items.forEach((item) => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some((item) => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join('; ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = FunctionParams.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n if (item.length <= 0) {\n return acc\n }\n const subItems = FunctionParams.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from '@kubb/types'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n","export function getUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n originalName += used\n }\n data[originalName] = 1\n return originalName\n}\n\nexport function setUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n\n return originalName\n }\n data[originalName] = 1\n return originalName\n}\n","import { camelCase } from '../transformers/casing.ts'\n\nexport type URLObject = {\n url: string\n params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n type?: 'path' | 'template'\n replacer?: (pathParam: string) => string\n stringify?: boolean\n}\n\nexport class URLPath {\n path: string\n\n constructor(path: string) {\n this.path = path\n\n return this\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n get URL(): string {\n return this.toURLPath()\n }\n get isURL(): boolean {\n try {\n const url = new URL(this.path)\n if (url?.href) {\n return true\n }\n } catch (error) {\n return false\n }\n return false\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n get template(): string {\n return this.toTemplateString()\n }\n get object(): URLObject | string {\n return this.toObject()\n }\n get params(): Record<string, string> | undefined {\n return this.getParams()\n }\n\n toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n const object = {\n url: type === 'path' ? this.toURLPath() : this.toTemplateString(replacer),\n params: this.getParams(),\n }\n\n if (stringify) {\n if (type === 'template') {\n return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n }\n\n if (object.params) {\n return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n }\n\n return `{ url: '${object.url}' }`\n }\n\n return object\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n toTemplateString(replacer?: (pathParam: string) => string): string {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n let newPath = this.path.replaceAll('{', '${')\n\n if (found) {\n newPath = found.reduce((prev, curr) => {\n const pathParam = replacer ? replacer(camelCase(curr)) : camelCase(curr)\n const replacement = `\\${${pathParam}}`\n\n return prev.replace(curr, replacement)\n }, this.path)\n }\n\n return `\\`${newPath}\\``\n }\n\n getParams(replacer?: (pathParam: string) => string): Record<string, string> | undefined {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n\n if (!found) {\n return undefined\n }\n\n const params: Record<string, string> = {}\n found.forEach((item) => {\n item = item.replaceAll('{', '').replaceAll('}', '')\n\n const pathParam = replacer ? replacer(camelCase(item)) : camelCase(item)\n\n params[pathParam] = pathParam\n }, this.path)\n\n return params\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n toURLPath(): string {\n return this.path.replaceAll('{', ':').replaceAll('}', '')\n }\n}\n","type ParserModuleTs = typeof import('@kubb/parser-ts')\n\nexport type ParserModule = ParserModuleTs\n\nexport async function getParser(language: string | undefined) {\n let modulePromise: Promise<ParserModule>\n\n switch (language) {\n default:\n modulePromise = import('@kubb/parser-ts')\n break\n }\n\n const module = await modulePromise\n\n return module\n}\n"],"mappings":"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","names":["item","_a"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/logger.ts","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/node.js","../src/utils/EventEmitter.ts"],"sourcesContent":["import seedrandom from 'seedrandom'\nimport c, { createColors } from 'tinyrainbow'\n\nimport { EventEmitter } from './utils/EventEmitter.ts'\n\nimport { type ConsolaInstance, createConsola, type LogLevel } from 'consola'\nimport type { Formatter } from 'tinyrainbow'\n\ntype Events = {\n start: [message: string]\n success: [message: string]\n error: [message: string, cause: Error]\n warning: [message: string]\n debug: [logs: string[]]\n info: [message: string]\n progress: [count: number, size: number]\n}\n\nexport const LogMapper = {\n silent: Number.NEGATIVE_INFINITY,\n info: 3,\n debug: 4,\n} as const\n\nexport type Logger = {\n /**\n * Optional config name to show in CLI output\n */\n name?: string\n logLevel: LogLevel\n consola?: ConsolaInstance\n on: EventEmitter<Events>['on']\n emit: EventEmitter<Events>['emit']\n}\n\ntype Props = {\n name?: string\n logLevel?: LogLevel\n consola?: ConsolaInstance\n}\n\nexport function createLogger({ logLevel = 3, name, consola: _consola }: Props = {}): Logger {\n const events = new EventEmitter<Events>()\n\n const consola =\n _consola ||\n createConsola({\n level: logLevel,\n formatOptions: {\n colors: true,\n date: true,\n columns: 120,\n compact: logLevel !== LogMapper.debug,\n },\n }).withTag(name ? randomCliColour(name) : '')\n\n consola?.wrapConsole()\n\n events.on('start', (message) => {\n consola.start(message)\n })\n\n events.on('success', (message) => {\n consola.success(message)\n })\n\n events.on('warning', (message) => {\n consola.warn(c.yellow(message))\n })\n\n events.on('info', (message) => {\n consola.info(c.yellow(message))\n })\n\n events.on('debug', (message) => {\n consola.debug(c.yellow(message))\n })\n\n events.on('error', (message, cause) => {\n const error = new Error(message || 'Something went wrong')\n error.cause = cause\n\n throw error\n })\n\n if (consola) {\n consola.level = logLevel\n }\n\n const logger: Logger = {\n name,\n logLevel,\n consola,\n on: (...args) => {\n return events.on(...args)\n },\n emit: (...args) => {\n return events.emit(...args)\n },\n }\n\n return logger\n}\n\nconst defaultColours = ['black', 'blue', 'darkBlue', 'cyan', 'gray', 'green', 'darkGreen', 'magenta', 'red', 'darkRed', 'yellow', 'darkYellow'] as const\n\nexport function randomColour(text?: string, colours = defaultColours): string {\n if (!text) {\n return 'white'\n }\n\n const random = seedrandom(text)\n const colour = colours.at(Math.floor(random() * colours.length)) || 'white'\n\n return colour\n}\n\nexport function randomCliColour(text?: string, colors = defaultColours): string {\n const colours = createColors(true)\n\n if (!text) {\n return colours.white(text)\n }\n\n const colour = randomColour(text, colors)\n const isDark = colour.includes('dark')\n const key = colour.replace('dark', '').toLowerCase() as keyof typeof colours\n const formatter: Formatter = colours[key] as Formatter\n\n if (isDark) {\n return c.bold(formatter(text))\n }\n\n if (typeof formatter !== 'function') {\n throw new Error('Formatter for picoColor is not of type function/Formatter')\n }\n return formatter(text)\n}\n","// src/index.ts\nvar f = {\n reset: [0, 0],\n bold: [1, 22, \"\\x1B[22m\\x1B[1m\"],\n dim: [2, 22, \"\\x1B[22m\\x1B[2m\"],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n blackBright: [90, 39],\n redBright: [91, 39],\n greenBright: [92, 39],\n yellowBright: [93, 39],\n blueBright: [94, 39],\n magentaBright: [95, 39],\n cyanBright: [96, 39],\n whiteBright: [97, 39],\n bgBlackBright: [100, 49],\n bgRedBright: [101, 49],\n bgGreenBright: [102, 49],\n bgYellowBright: [103, 49],\n bgBlueBright: [104, 49],\n bgMagentaBright: [105, 49],\n bgCyanBright: [106, 49],\n bgWhiteBright: [107, 49]\n}, h = Object.entries(f);\nfunction a(n) {\n return String(n);\n}\na.open = \"\";\na.close = \"\";\nvar B = /* @__PURE__ */ h.reduce(\n (n, [e]) => (n[e] = a, n),\n { isColorSupported: !1 }\n);\nfunction m() {\n return { ...B };\n}\nfunction C(n = !1) {\n let e = typeof process != \"undefined\" ? process : void 0, i = (e == null ? void 0 : e.env) || {}, g = (e == null ? void 0 : e.argv) || [];\n return !(\"NO_COLOR\" in i || g.includes(\"--no-color\")) && (\"FORCE_COLOR\" in i || g.includes(\"--color\") || (e == null ? void 0 : e.platform) === \"win32\" || n && i.TERM !== \"dumb\" || \"CI\" in i) || typeof window != \"undefined\" && !!window.chrome;\n}\nfunction p(n = !1) {\n let e = C(n), i = (r, t, c, o) => {\n let l = \"\", s = 0;\n do\n l += r.substring(s, o) + c, s = o + t.length, o = r.indexOf(t, s);\n while (~o);\n return l + r.substring(s);\n }, g = (r, t, c = r) => {\n let o = (l) => {\n let s = String(l), b = s.indexOf(t, r.length);\n return ~b ? r + i(s, t, c, b) + t : r + s + t;\n };\n return o.open = r, o.close = t, o;\n }, u = {\n isColorSupported: e\n }, d = (r) => `\\x1B[${r}m`;\n for (let [r, t] of h)\n u[r] = e ? g(\n d(t[0]),\n d(t[1]),\n t[2]\n ) : a;\n return u;\n}\n\nexport {\n m as a,\n C as b,\n p as c\n};\n","import {\n a as t,\n b as e,\n c as o\n} from \"./chunk-BVHSVHOK.js\";\n\n// src/node.ts\nimport { isatty as r } from \"tty\";\nvar p = o(r(1));\nexport {\n o as createColors,\n p as default,\n t as getDefaultColors,\n e as isSupported\n};\n","import { EventEmitter as NodeEventEmitter } from 'node:events'\n\nexport class EventEmitter<TEvents extends Record<string, any>> {\n constructor() {\n this.#emitter.setMaxListeners(100)\n }\n #emitter = new NodeEventEmitter()\n\n emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void {\n this.#emitter.emit(eventName, ...(eventArg as []))\n }\n\n on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.on(eventName, handler as any)\n }\n\n off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.off(eventName, handler as any)\n }\n removeAll(): void {\n this.#emitter.removeAllListeners()\n }\n}\n"],"mappings":"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","names":["r","p","consola","p"]}
@@ -1,283 +0,0 @@
1
- import {
2
- camelCase,
3
- orderBy,
4
- pascalCase,
5
- pathCase
6
- } from "./chunk-4X5FFJPJ.js";
7
-
8
- // src/transformers/index.ts
9
- import { merge } from "remeda";
10
-
11
- // src/transformers/combineCodes.ts
12
- function combineCodes(codes) {
13
- return codes.join("\n");
14
- }
15
-
16
- // src/transformers/createJSDocBlockText.ts
17
- function createJSDocBlockText({ comments }) {
18
- const filteredComments = comments.filter(Boolean);
19
- if (!filteredComments.length) {
20
- return "";
21
- }
22
- return `/**
23
- * ${filteredComments.join("\n * ")}
24
- */`;
25
- }
26
-
27
- // src/transformers/escape.ts
28
- function escape(text) {
29
- return text ? text.replaceAll("`", "\\`") : "";
30
- }
31
- function jsStringEscape(input) {
32
- return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
33
- switch (character) {
34
- case '"':
35
- case "'":
36
- case "\\":
37
- return `\\${character}`;
38
- case "\n":
39
- return "\\n";
40
- case "\r":
41
- return "\\r";
42
- case "\u2028":
43
- return "\\u2028";
44
- case "\u2029":
45
- return "\\u2029";
46
- default:
47
- return "";
48
- }
49
- });
50
- }
51
-
52
- // src/transformers/indent.ts
53
- function createIndent(size) {
54
- return Array.from({ length: size + 1 }).join(" ");
55
- }
56
-
57
- // src/transformers/nameSorter.ts
58
- function nameSorter(a, b) {
59
- if (a.name < b.name) {
60
- return -1;
61
- }
62
- if (a.name > b.name) {
63
- return 1;
64
- }
65
- return 0;
66
- }
67
-
68
- // src/transformers/searchAndReplace.ts
69
- function searchAndReplace(options) {
70
- const { text, replaceBy, prefix = "", key } = options;
71
- const searchValues = options.searchValues?.(prefix, key) || [
72
- `${prefix}["${key}"]`,
73
- `${prefix}['${key}']`,
74
- `${prefix}[\`${key}\`]`,
75
- `${prefix}"${key}"`,
76
- `${prefix}'${key}'`,
77
- `${prefix}\`${key}\``,
78
- new RegExp(`${prefix}${key}`, "g")
79
- ];
80
- return searchValues.reduce((prev, searchValue) => {
81
- return prev.toString().replaceAll(searchValue, replaceBy);
82
- }, text);
83
- }
84
-
85
- // src/transformers/trim.ts
86
- function trim(text) {
87
- return text.replaceAll(/\n/g, "").trim();
88
- }
89
- function trimQuotes(text) {
90
- if (text.match(/^"(.*)"$/)) {
91
- return text.replace(/^"(.*)"$/, "$1");
92
- }
93
- if (text.match(/^'(.*)'$/)) {
94
- return text.replace(/^'(.*)'$/, "$1");
95
- }
96
- if (text.match(/^`(.*)`$/)) {
97
- return text.replace(/^`(.*)`$/, "$1");
98
- }
99
- return text;
100
- }
101
- function trimExtName(text) {
102
- return text.replace(/\.[^/.]+$/, "");
103
- }
104
-
105
- // src/transformers/stringify.ts
106
- function stringify(value) {
107
- if (value === void 0 || value === null) {
108
- return '""';
109
- }
110
- return JSON.stringify(trimQuotes(value.toString()));
111
- }
112
- function stringifyObject(value) {
113
- const items = Object.entries(value).map(([key, value2]) => {
114
- if (typeof value2 === "object") {
115
- return `${key}: {
116
- ${stringifyObject(value2)}
117
- }`;
118
- }
119
- return `${key}: ${value2}`;
120
- }).filter(Boolean);
121
- return items.join(",\n");
122
- }
123
-
124
- // src/transformers/toRegExp.ts
125
- function stringToRegex(text) {
126
- const isStartWithSlash = text.startsWith("/");
127
- const isEndWithSlash = text.endsWith("/");
128
- return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0));
129
- }
130
- function toRegExp(text) {
131
- if (typeof text === "string") {
132
- const source = trimQuotes(text);
133
- return stringToRegex(source);
134
- }
135
- return stringToRegex(text.toString());
136
- }
137
- function toRegExpString(text, func = "RegExp") {
138
- const isStartWithSlash = text.startsWith("/");
139
- const isEndWithSlash = text.endsWith("/");
140
- const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0))}')`;
141
- return regexp;
142
- }
143
-
144
- // src/transformers/transformReservedWord.ts
145
- var reservedWords = [
146
- "abstract",
147
- "arguments",
148
- "boolean",
149
- "break",
150
- "byte",
151
- "case",
152
- "catch",
153
- "char",
154
- "class",
155
- "const",
156
- "continue",
157
- "debugger",
158
- "default",
159
- "delete",
160
- "do",
161
- "double",
162
- "else",
163
- "enum",
164
- "eval",
165
- "export",
166
- "extends",
167
- "false",
168
- "final",
169
- "finally",
170
- "float",
171
- "for",
172
- "function",
173
- "goto",
174
- "if",
175
- "implements",
176
- "import",
177
- "in",
178
- "instanceof",
179
- "int",
180
- "interface",
181
- "let",
182
- "long",
183
- "native",
184
- "new",
185
- "null",
186
- "package",
187
- "private",
188
- "protected",
189
- "public",
190
- "return",
191
- "short",
192
- "static",
193
- "super",
194
- "switch",
195
- "synchronized",
196
- "this",
197
- "throw",
198
- "throws",
199
- "transient",
200
- "true",
201
- "try",
202
- "typeof",
203
- "var",
204
- "void",
205
- "volatile",
206
- "while",
207
- "with",
208
- "yield",
209
- "Array",
210
- "Date",
211
- "eval",
212
- "function",
213
- "hasOwnProperty",
214
- "Infinity",
215
- "isFinite",
216
- "isNaN",
217
- "isPrototypeOf",
218
- "length",
219
- "Math",
220
- "name",
221
- "NaN",
222
- "Number",
223
- "Object",
224
- "prototype",
225
- "String",
226
- "toString",
227
- "undefined",
228
- "valueOf"
229
- ];
230
- function transformReservedWord(word) {
231
- if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
232
- return `_${word}`;
233
- }
234
- return word;
235
- }
236
-
237
- // src/transformers/index.ts
238
- import { merge as merge2 } from "remeda";
239
- var transformers_default = {
240
- combineCodes,
241
- escape,
242
- jsStringEscape,
243
- createIndent,
244
- transformReservedWord,
245
- nameSorter,
246
- searchAndReplace,
247
- stringify,
248
- stringifyObject,
249
- toRegExp,
250
- toRegExpString,
251
- trim,
252
- trimQuotes,
253
- trimExtName,
254
- JSDoc: {
255
- createJSDocBlockText
256
- },
257
- orderBy,
258
- merge,
259
- camelCase,
260
- pascalCase,
261
- pathCase
262
- };
263
-
264
- export {
265
- trim,
266
- trimQuotes,
267
- trimExtName,
268
- searchAndReplace,
269
- combineCodes,
270
- createJSDocBlockText,
271
- escape,
272
- jsStringEscape,
273
- createIndent,
274
- nameSorter,
275
- stringify,
276
- stringifyObject,
277
- toRegExp,
278
- toRegExpString,
279
- transformReservedWord,
280
- transformers_default,
281
- merge2 as merge
282
- };
283
- //# sourceMappingURL=chunk-JKZG2IJR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts","../src/transformers/searchAndReplace.ts","../src/transformers/trim.ts","../src/transformers/stringify.ts","../src/transformers/toRegExp.ts","../src/transformers/transformReservedWord.ts"],"sourcesContent":["import { orderBy } from 'natural-orderby'\nimport { merge } from 'remeda'\n\nimport { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { stringify, stringifyObject } from './stringify.ts'\nimport { toRegExp, toRegExpString } from './toRegExp.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName, trimQuotes } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { stringify, stringifyObject } from './stringify.ts'\nexport { toRegExp, toRegExpString } from './toRegExp.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName, trimQuotes } from './trim.ts'\nexport { merge } from 'remeda'\nexport { orderBy } from 'natural-orderby'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n stringify,\n stringifyObject,\n toRegExp,\n toRegExpString,\n trim,\n trimQuotes,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n orderBy,\n merge,\n camelCase,\n pascalCase,\n pathCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return `\\\\${character}`\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n\nexport function escapeStringRegexp(string: string) {\n if (typeof string !== 'string') {\n throw new TypeError('Expected a string')\n }\n\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d')\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n","type Options = {\n text: string\n replaceBy: string\n prefix?: string\n key: string\n searchValues?: (prefix: string, key: string) => Array<RegExp | string>\n}\n\nexport function searchAndReplace(options: Options): string {\n const { text, replaceBy, prefix = '', key } = options\n\n const searchValues = options.searchValues?.(prefix, key) || [\n `${prefix}[\"${key}\"]`,\n `${prefix}['${key}']`,\n `${prefix}[\\`${key}\\`]`,\n `${prefix}\"${key}\"`,\n `${prefix}'${key}'`,\n `${prefix}\\`${key}\\``,\n new RegExp(`${prefix}${key}`, 'g'),\n ]\n\n return searchValues.reduce((prev, searchValue) => {\n return prev.toString().replaceAll(searchValue, replaceBy)\n }, text) as string\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimQuotes(text: string): string {\n if (text.match(/^\"(.*)\"$/)) {\n return text.replace(/^\"(.*)\"$/, '$1')\n }\n if (text.match(/^'(.*)'$/)) {\n return text.replace(/^'(.*)'$/, '$1')\n }\n\n if (text.match(/^`(.*)`$/)) {\n return text.replace(/^`(.*)`$/, '$1')\n }\n\n return text\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import { trimQuotes } from './trim'\n\nexport function stringify(value: string | number | undefined): string {\n if (value === undefined || value === null) {\n return '\"\"'\n }\n\n return JSON.stringify(trimQuotes(value.toString()))\n}\n\nexport function stringifyObject(value: object): string {\n const items = Object.entries(value)\n .map(([key, value]) => {\n if (typeof value === 'object') {\n return `${key}: {\n ${stringifyObject(value)}\n }`\n }\n\n return `${key}: ${value}`\n })\n .filter(Boolean)\n\n return items.join(',\\n')\n}\n","import { jsStringEscape } from './escape'\nimport { trimQuotes } from './trim'\n\nfunction stringToRegex(text: string) {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))\n}\n\n/**\n * @experimental\n */\nexport function toRegExp(text: string | RegExp): RegExp {\n if (typeof text === 'string') {\n const source = trimQuotes(text)\n\n return stringToRegex(source)\n }\n\n return stringToRegex(text.toString())\n}\n\nexport function toRegExpString(text: string, func = 'RegExp'): string {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))}')`\n\n return regexp\n}\n","/**\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n 'abstract',\n 'arguments',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'let',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n 'yield',\n\n 'Array',\n 'Date',\n 'eval',\n 'function',\n 'hasOwnProperty',\n 'Infinity',\n 'isFinite',\n 'isNaN',\n 'isPrototypeOf',\n 'length',\n 'Math',\n 'name',\n 'NaN',\n 'Number',\n 'Object',\n 'prototype',\n 'String',\n 'toString',\n 'undefined',\n 'valueOf',\n]\n\nexport function transformReservedWord(word: string): string {\n if ((word && reservedWords.includes(word)) || word?.match(/^\\d/)) {\n return `_${word}`\n }\n\n return word\n}\n"],"mappings":"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","names":["value","merge"]}