@kubb/core 2.26.4 → 2.26.5

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.
@@ -297,4 +297,4 @@ var transformers_default = {
297
297
 
298
298
 
299
299
  exports.trim = trim; exports.trimQuotes = trimQuotes; exports.trimExtName = trimExtName; exports.searchAndReplace = searchAndReplace; exports.combineCodes = combineCodes; exports.createJSDocBlockText = createJSDocBlockText; exports.escape = escape; exports.jsStringEscape = jsStringEscape; exports.createIndent = createIndent; exports.nameSorter = nameSorter; exports.stringify = stringify; exports.stringifyObject = stringifyObject; exports.toRegExp = toRegExp; exports.toRegExpString = toRegExpString; exports.transformReservedWord = transformReservedWord; exports.transformers_default = transformers_default; exports.merge = _remeda.merge;
300
- //# sourceMappingURL=chunk-G6LBJXYS.cjs.map
300
+ //# sourceMappingURL=chunk-3WAFCJTY.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/core/dist/chunk-G6LBJXYS.cjs","../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/stringify.ts","../src/transformers/trim.ts","../src/transformers/toRegExp.ts","../src/transformers/transformReservedWord.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,8CAAA,CAAA;AACA,gCAAsB;ADYtB;AACA;AEdA,8CAAA,CAAA;AAAO,SAAS,YAAA,CAAa,KAAA,EAAyB;AACpD,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACxB;AFiBA;AACA;AGpBA,8CAAA,CAAA;AAAO,SAAS,oBAAA,CAAqB,EAAE,SAAS,CAAA,EAAwC;AACtF,EAAA,MAAM,iBAAA,EAAmB,QAAA,CAAS,MAAA,CAAO,OAAO,CAAA;AAEhD,EAAA,GAAA,CAAI,CAAC,gBAAA,CAAiB,MAAA,EAAQ;AAC5B,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,OAAO,CAAA;AAAA,GAAA,EAAW,gBAAA,CAAiB,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,GAAA,CAAA;AAClD;AHuBA;AACA;AIhCA,8CAAA,CAAA;AAAO,SAAS,MAAA,CAAO,IAAA,EAAuB;AAC5C,EAAA,OAAO,KAAA,EAAO,IAAA,CAAK,UAAA,CAAW,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA;AAC9C;AAQO,SAAS,cAAA,CAAe,KAAA,EAAoB;AACjD,EAAA,OAAO,CAAA,EAAA;AACL,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AAAqB;AAEvB,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACJ,IAAA;AACD,EAAA;AACH;AJ4BU;AACA;AK3DV;AAAgB;AACP,EAAA;AACT;AL8DU;AACA;AMjEV;AAAgB;AACR,EAAA;AACJ,IAAA;AACF,EAAA;AACM,EAAA;AACJ,IAAA;AACF,EAAA;AACO,EAAA;AACT;ANoEU;AACA;AO7EV;AAQgB;AACN,EAAA;AAEF,EAAA;AACD,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,IAAA;AACN,EAAA;AAEO,EAAA;AACL,IAAA;AACK,EAAA;AACT;APsEU;AACA;AQ/FV;ARiGU;AACA;ASlGV;AAAgB;AACP,EAAA;AACT;AAEgB;AACV,EAAA;AACF,IAAA;AACF,EAAA;AACI,EAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACP,EAAA;AACT;ATiGU;AACA;AQrHM;AACV,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACR,EAAA;AAEE,IAAA;AACF,MAAA;AACE,QAAA;AAAsB,OAAA;AAE1B,IAAA;AAEA,IAAA;AAED,EAAA;AAEI,EAAA;AACT;ARiHU;AACA;AU1IV;AAGS;AACD,EAAA;AACA,EAAA;AAEC,EAAA;AACT;AAKgB;AACV,EAAA;AACI,IAAA;AAEN,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACR,EAAA;AACA,EAAA;AAEA,EAAA;AAEC,EAAA;AACT;AVgIU;AACA;AW/JV;AAGM;AACJ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;AAEgB;AACT,EAAA;AACH,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AX4JU;AACA;ACnOD;AAGF;AACL,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACO,EAAA;AACL,IAAA;AACF,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;ADmOU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/kubb/kubb/packages/core/dist/chunk-G6LBJXYS.cjs","sourcesContent":[null,"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","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","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 { 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"]}
1
+ {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/core/dist/chunk-3WAFCJTY.cjs","../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/stringify.ts","../src/transformers/trim.ts","../src/transformers/toRegExp.ts","../src/transformers/transformReservedWord.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,8CAAA,CAAA;AACA,gCAAsB;ADYtB;AACA;AEdA,8CAAA,CAAA;AAAO,SAAS,YAAA,CAAa,KAAA,EAAyB;AACpD,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACxB;AFiBA;AACA;AGpBA,8CAAA,CAAA;AAAO,SAAS,oBAAA,CAAqB,EAAE,SAAS,CAAA,EAAwC;AACtF,EAAA,MAAM,iBAAA,EAAmB,QAAA,CAAS,MAAA,CAAO,OAAO,CAAA;AAEhD,EAAA,GAAA,CAAI,CAAC,gBAAA,CAAiB,MAAA,EAAQ;AAC5B,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,OAAO,CAAA;AAAA,GAAA,EAAW,gBAAA,CAAiB,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,GAAA,CAAA;AAClD;AHuBA;AACA;AIhCA,8CAAA,CAAA;AAAO,SAAS,MAAA,CAAO,IAAA,EAAuB;AAC5C,EAAA,OAAO,KAAA,EAAO,IAAA,CAAK,UAAA,CAAW,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA;AAC9C;AAQO,SAAS,cAAA,CAAe,KAAA,EAAoB;AACjD,EAAA,OAAO,CAAA,EAAA;AACL,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AAAqB;AAEvB,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACJ,IAAA;AACD,EAAA;AACH;AJ4BU;AACA;AK3DV;AAAgB;AACP,EAAA;AACT;AL8DU;AACA;AMjEV;AAAgB;AACR,EAAA;AACJ,IAAA;AACF,EAAA;AACM,EAAA;AACJ,IAAA;AACF,EAAA;AACO,EAAA;AACT;ANoEU;AACA;AO7EV;AAQgB;AACN,EAAA;AAEF,EAAA;AACD,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,IAAA;AACN,EAAA;AAEO,EAAA;AACL,IAAA;AACK,EAAA;AACT;APsEU;AACA;AQ/FV;ARiGU;AACA;ASlGV;AAAgB;AACP,EAAA;AACT;AAEgB;AACV,EAAA;AACF,IAAA;AACF,EAAA;AACI,EAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACP,EAAA;AACT;ATiGU;AACA;AQrHM;AACV,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACR,EAAA;AAEE,IAAA;AACF,MAAA;AACE,QAAA;AAAsB,OAAA;AAE1B,IAAA;AAEA,IAAA;AAED,EAAA;AAEI,EAAA;AACT;ARiHU;AACA;AU1IV;AAGS;AACD,EAAA;AACA,EAAA;AAEC,EAAA;AACT;AAKgB;AACV,EAAA;AACI,IAAA;AAEN,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACR,EAAA;AACA,EAAA;AAEA,EAAA;AAEC,EAAA;AACT;AVgIU;AACA;AW/JV;AAGM;AACJ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;AAEgB;AACT,EAAA;AACH,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AX4JU;AACA;ACnOD;AAGF;AACL,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACO,EAAA;AACL,IAAA;AACF,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;ADmOU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/kubb/kubb/packages/core/dist/chunk-3WAFCJTY.cjs","sourcesContent":[null,"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","import { trimQuotes } from './trim'\n\nexport function stringify(value: string | number | boolean | 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","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 { 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"]}
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkG6LBJXYScjs = require('./chunk-G6LBJXYS.cjs');
5
+ var _chunk3WAFCJTYcjs = require('./chunk-3WAFCJTY.cjs');
6
6
 
7
7
 
8
8
  var _chunkCITJQACTcjs = require('./chunk-CITJQACT.cjs');
@@ -813,7 +813,7 @@ var BarrelManager = class {
813
813
  if (treeNode2.children.length > 1) {
814
814
  const indexPath = _path2.default.resolve(treeNode2.data.path, "index.ts");
815
815
  const exports = treeNode2.children.filter(Boolean).map((file) => {
816
- const importPath = file.data.type === "split" ? `./${file.data.name}/index` : `./${_chunkG6LBJXYScjs.trimExtName.call(void 0, file.data.name)}`;
816
+ const importPath = file.data.type === "split" ? `./${file.data.name}/index` : `./${_chunk3WAFCJTYcjs.trimExtName.call(void 0, file.data.name)}`;
817
817
  if (importPath.endsWith("index") && file.data.type === "single") {
818
818
  return void 0;
819
819
  }
@@ -832,7 +832,7 @@ var BarrelManager = class {
832
832
  } else if (treeNode2.children.length === 1) {
833
833
  const [treeNodeChild] = treeNode2.children;
834
834
  const indexPath = _path2.default.resolve(treeNode2.data.path, "index.ts");
835
- const importPath = treeNodeChild.data.type === "split" ? `./${treeNodeChild.data.name}/index` : `./${_chunkG6LBJXYScjs.trimExtName.call(void 0, treeNodeChild.data.name)}`;
835
+ const importPath = treeNodeChild.data.type === "split" ? `./${treeNodeChild.data.name}/index` : `./${_chunk3WAFCJTYcjs.trimExtName.call(void 0, treeNodeChild.data.name)}`;
836
836
  const exports = [
837
837
  {
838
838
  path: extName ? `${importPath}${extName}` : importPath,
@@ -898,11 +898,11 @@ var _FileManager = class _FileManager {
898
898
  return void 0;
899
899
  }
900
900
  const pathToBuildFrom = _path.resolve.call(void 0, root, output.path);
901
- if (_chunkG6LBJXYScjs.transformers_default.trimExtName(pathToBuildFrom).endsWith("index")) {
901
+ if (_chunk3WAFCJTYcjs.transformers_default.trimExtName(pathToBuildFrom).endsWith("index")) {
902
902
  logger.emit("warning", "Output has the same fileName as the barrelFiles, please disable barrel generation");
903
903
  return;
904
904
  }
905
- const exportPath = output.path.startsWith("./") ? _chunkG6LBJXYScjs.trimExtName.call(void 0, output.path) : `./${_chunkG6LBJXYScjs.trimExtName.call(void 0, output.path)}`;
905
+ const exportPath = output.path.startsWith("./") ? _chunk3WAFCJTYcjs.trimExtName.call(void 0, output.path) : `./${_chunk3WAFCJTYcjs.trimExtName.call(void 0, output.path)}`;
906
906
  const mode = _FileManager.getMode(output.path);
907
907
  const barrelManager = new BarrelManager({
908
908
  extName: output.extName,
@@ -1008,7 +1008,7 @@ add_fn = async function(file) {
1008
1008
  const controller = new AbortController();
1009
1009
  const resolvedFile = {
1010
1010
  id: _crypto2.default.randomUUID(),
1011
- name: _chunkG6LBJXYScjs.trimExtName.call(void 0, file.baseName),
1011
+ name: _chunk3WAFCJTYcjs.trimExtName.call(void 0, file.baseName),
1012
1012
  ...file
1013
1013
  };
1014
1014
  if (_optionalChain([resolvedFile, 'access', _34 => _34.exports, 'optionalAccess', _35 => _35.length])) {
@@ -1087,7 +1087,7 @@ async function getSource(file) {
1087
1087
  const imports = file.imports && file.source ? combineImports(file.imports, exports, file.source) : [];
1088
1088
  const importNodes = imports.filter((item) => {
1089
1089
  const path2 = item.root ? _fs.getRelativePath.call(void 0, item.root, item.path) : item.path;
1090
- return path2 !== _chunkG6LBJXYScjs.trimExtName.call(void 0, file.path);
1090
+ return path2 !== _chunk3WAFCJTYcjs.trimExtName.call(void 0, file.path);
1091
1091
  }).map((item) => {
1092
1092
  const path2 = item.root ? _fs.getRelativePath.call(void 0, item.root, item.path) : item.path;
1093
1093
  return parser.factory.createImportDeclaration({
@@ -1204,13 +1204,13 @@ function getEnvSource(source, env) {
1204
1204
  throw new TypeError(`Environment should be in upperCase for ${key}`);
1205
1205
  }
1206
1206
  if (typeof replaceBy === "string") {
1207
- prev = _chunkG6LBJXYScjs.searchAndReplace.call(void 0, {
1207
+ prev = _chunk3WAFCJTYcjs.searchAndReplace.call(void 0, {
1208
1208
  text: prev.replaceAll(`process.env.${key}`, replaceBy),
1209
1209
  replaceBy,
1210
1210
  prefix: "process.env",
1211
1211
  key
1212
1212
  });
1213
- prev = _chunkG6LBJXYScjs.searchAndReplace.call(void 0, {
1213
+ prev = _chunk3WAFCJTYcjs.searchAndReplace.call(void 0, {
1214
1214
  text: prev.replaceAll(/(declare const).*\n/gi, ""),
1215
1215
  replaceBy,
1216
1216
  key
@@ -1224,4 +1224,4 @@ function getEnvSource(source, env) {
1224
1224
 
1225
1225
 
1226
1226
  exports.PQueue = PQueue; exports.FileManager = FileManager;
1227
- //# sourceMappingURL=chunk-DPB7WCV5.cjs.map
1227
+ //# sourceMappingURL=chunk-CO2U7476.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/core/dist/chunk-DPB7WCV5.cjs","../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js","../src/FileManager.ts","../../../node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.js","../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs","../../../node_modules/.pnpm/p-timeout@6.1.2/node_modules/p-timeout/index.js","../../../node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.js","../../../node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.js","../src/BarrelManager.ts","../src/utils/TreeNode.ts"],"names":["EventEmitter","resolve","_queue","path","treeNode"],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/core/dist/chunk-DPB7WCV5.cjs","sourcesContent":[null,"'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import crypto from 'node:crypto'\nimport { extname, resolve } from 'node:path'\n\nimport { orderBy } from 'natural-orderby'\nimport PQueue from 'p-queue'\nimport { isDeepEqual } from 'remeda'\n\nimport { getRelativePath, read, write } from '@kubb/fs'\nimport { BarrelManager } from './BarrelManager.ts'\nimport { searchAndReplace } from './transformers/searchAndReplace.ts'\nimport { trimExtName } from './transformers/trim.ts'\n\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport type { BaseName, File, UUID } from '@kubb/fs/src/types.ts'\nimport type { GreaterThan } from '@kubb/types'\nimport type { BarrelManagerOptions } from './BarrelManager.ts'\nimport type { Logger } from './logger.ts'\nimport transformers from './transformers/index.ts'\nimport type { Plugin } from './types.ts'\nimport { getParser } from './utils'\n\nexport type ResolvedFile<TMeta extends FileMetaBase = FileMetaBase, TBaseName extends BaseName = BaseName> = File<TMeta, TBaseName> & {\n /**\n * @default crypto.randomUUID()\n */\n id: UUID\n /**\n * Contains the first part of the baseName, generated based on baseName\n * @link https://nodejs.org/api/path.html#pathformatpathobject\n */\n\n name: string\n}\n\nexport type FileMetaBase = {\n pluginKey?: Plugin['key']\n}\n\ntype FileWithMeta<TMeta extends FileMetaBase = FileMetaBase> = KubbFile.File<TMeta>\n\ntype CacheItem = ResolvedFile & {\n cancel?: () => void\n}\n\ntype AddResult<T extends Array<FileWithMeta>> = Promise<Awaited<GreaterThan<T['length'], 1> extends true ? Promise<ResolvedFile[]> : Promise<ResolvedFile>>>\n\ntype AddIndexesProps = {\n /**\n * Root based on root and output.path specified in the config\n */\n root: string\n /**\n * Output for plugin\n */\n output: {\n path: string\n exportAs?: string\n extName?: KubbFile.Extname\n exportType?: 'barrel' | 'barrelNamed' | false\n }\n logger: Logger\n options?: BarrelManagerOptions\n meta?: FileWithMeta['meta']\n}\n\ntype Options = {\n queue?: PQueue\n task?: (file: ResolvedFile) => Promise<ResolvedFile>\n}\n\nexport class FileManager {\n #cache: Map<KubbFile.Path, CacheItem[]> = new Map()\n\n #task: Options['task']\n #queue: PQueue\n\n constructor({ task = async (file) => file, queue = new PQueue() }: Options = {}) {\n this.#task = task\n this.#queue = queue\n\n return this\n }\n\n get files(): Array<FileWithMeta> {\n const files: Array<FileWithMeta> = []\n this.#cache.forEach((item) => {\n files.push(...item.flat(1))\n })\n\n return files\n }\n get isExecuting(): boolean {\n return this.#queue.size !== 0 && this.#queue.pending !== 0\n }\n\n async add<T extends Array<FileWithMeta> = Array<FileWithMeta>>(...files: T): AddResult<T> {\n const promises = combineFiles(files).map((file) => {\n if (file.override) {\n return this.#add(file)\n }\n\n return this.#addOrAppend(file)\n })\n\n const resolvedFiles = await Promise.all(promises)\n\n if (files.length > 1) {\n return resolvedFiles as unknown as AddResult<T>\n }\n\n return resolvedFiles[0] as unknown as AddResult<T>\n }\n\n async #add(file: FileWithMeta): Promise<ResolvedFile> {\n const controller = new AbortController()\n const resolvedFile: ResolvedFile = {\n id: crypto.randomUUID(),\n name: trimExtName(file.baseName),\n ...file,\n }\n\n if (resolvedFile.exports?.length) {\n const folder = resolvedFile.path.replace(resolvedFile.baseName, '')\n\n resolvedFile.exports = resolvedFile.exports.filter((exportItem) => {\n const exportedFile = this.files.find((file) => file.path.includes(resolve(folder, exportItem.path)))\n\n if (exportedFile) {\n return exportedFile.exportable\n }\n\n return true\n })\n }\n\n this.#cache.set(resolvedFile.path, [{ cancel: () => controller.abort(), ...resolvedFile }])\n\n return this.#queue.add(\n async () => {\n return this.#task?.(resolvedFile)\n },\n { signal: controller.signal },\n ) as Promise<ResolvedFile>\n }\n\n async #addOrAppend(file: FileWithMeta): Promise<ResolvedFile> {\n const previousCaches = this.#cache.get(file.path)\n const previousCache = previousCaches ? previousCaches.at(previousCaches.length - 1) : undefined\n\n if (previousCache) {\n this.#cache.delete(previousCache.path)\n\n return this.#add({\n ...file,\n source: previousCache.source && file.source ? `${previousCache.source}\\n${file.source}` : '',\n imports: [...(previousCache.imports || []), ...(file.imports || [])],\n exports: [...(previousCache.exports || []), ...(file.exports || [])],\n env: { ...(previousCache.env || {}), ...(file.env || {}) },\n })\n }\n return this.#add(file)\n }\n\n async addIndexes({ root, output, meta, logger, options = {} }: AddIndexesProps): Promise<void> {\n const { exportType = 'barrel' } = output\n // ^?\n if (exportType === false) {\n return undefined\n }\n\n const pathToBuildFrom = resolve(root, output.path)\n\n if (transformers.trimExtName(pathToBuildFrom).endsWith('index')) {\n logger.emit('warning', 'Output has the same fileName as the barrelFiles, please disable barrel generation')\n return\n }\n\n const exportPath = output.path.startsWith('./') ? trimExtName(output.path) : `./${trimExtName(output.path)}`\n const mode = FileManager.getMode(output.path)\n const barrelManager = new BarrelManager({\n extName: output.extName,\n ...options,\n })\n let files = barrelManager.getIndexes(pathToBuildFrom)\n\n if (!files) {\n return undefined\n }\n\n if (exportType === 'barrelNamed') {\n files = files.map((file) => {\n if (file.exports) {\n return {\n ...file,\n exports: barrelManager.getNamedExports(pathToBuildFrom, file.exports),\n }\n }\n return file\n })\n }\n\n await Promise.all(\n files.map((file) => {\n return this.#addOrAppend({\n ...file,\n meta: meta ? meta : file.meta,\n })\n }),\n )\n\n const rootPath = mode === 'split' ? `${exportPath}/index${output.extName || ''}` : `${exportPath}${output.extName || ''}`\n const rootFile: FileWithMeta = {\n path: resolve(root, 'index.ts'),\n baseName: 'index.ts',\n source: '',\n exports: [\n output.exportAs\n ? {\n name: output.exportAs,\n asAlias: true,\n path: rootPath,\n isTypeOnly: options.isTypeOnly,\n }\n : {\n path: rootPath,\n isTypeOnly: options.isTypeOnly,\n },\n ],\n exportable: true,\n }\n\n if (exportType === 'barrelNamed' && !output.exportAs && rootFile.exports?.[0]) {\n rootFile.exports = barrelManager.getNamedExport(root, rootFile.exports[0])\n }\n\n await this.#addOrAppend({\n ...rootFile,\n meta: meta ? meta : rootFile.meta,\n })\n }\n\n getCacheByUUID(UUID: KubbFile.UUID): FileWithMeta | undefined {\n let cache: FileWithMeta | undefined\n\n this.#cache.forEach((files) => {\n cache = files.find((item) => item.id === UUID)\n })\n return cache\n }\n\n get(path: KubbFile.Path): Array<FileWithMeta> | undefined {\n return this.#cache.get(path)\n }\n\n remove(path: KubbFile.Path): void {\n const cacheItem = this.get(path)\n if (!cacheItem) {\n return\n }\n\n this.#cache.delete(path)\n }\n\n async write(...params: Parameters<typeof write>): Promise<string | undefined> {\n return write(...params)\n }\n\n async read(...params: Parameters<typeof read>): Promise<string> {\n return read(...params)\n }\n\n // statics\n\n static async getSource<TMeta extends FileMetaBase = FileMetaBase>(file: FileWithMeta<TMeta>): Promise<string> {\n return getSource<TMeta>(file)\n }\n\n static combineFiles<TMeta extends FileMetaBase = FileMetaBase>(files: Array<FileWithMeta<TMeta> | null>): Array<FileWithMeta<TMeta>> {\n return combineFiles<TMeta>(files)\n }\n static getMode(path: string | undefined | null): KubbFile.Mode {\n if (!path) {\n return 'split'\n }\n return extname(path) ? 'single' : 'split'\n }\n\n static get extensions(): Array<KubbFile.Extname> {\n return ['.js', '.ts', '.tsx']\n }\n\n static isJavascript(baseName: string): boolean {\n return FileManager.extensions.some((extension) => baseName.endsWith(extension))\n }\n}\n\nfunction combineFiles<TMeta extends FileMetaBase = FileMetaBase>(files: Array<FileWithMeta<TMeta> | null>): Array<FileWithMeta<TMeta>> {\n return files.filter(Boolean).reduce(\n (acc, file: FileWithMeta<TMeta>) => {\n const prevIndex = acc.findIndex((item) => item.path === file.path)\n\n if (prevIndex === -1) {\n return [...acc, file]\n }\n\n const prev = acc[prevIndex]\n\n if (prev && file.override) {\n acc[prevIndex] = {\n imports: [],\n exports: [],\n ...file,\n }\n return acc\n }\n\n if (prev) {\n acc[prevIndex] = {\n ...file,\n source: prev.source && file.source ? `${prev.source}\\n${file.source}` : '',\n imports: [...(prev.imports || []), ...(file.imports || [])],\n exports: [...(prev.exports || []), ...(file.exports || [])],\n env: { ...(prev.env || {}), ...(file.env || {}) },\n }\n }\n\n return acc\n },\n [] as Array<FileWithMeta<TMeta>>,\n )\n}\n\nexport async function getSource<TMeta extends FileMetaBase = FileMetaBase>(file: FileWithMeta<TMeta>): Promise<string> {\n // only use .js, .ts or .tsx files for ESM imports\n\n if (file.language ? !['typescript', 'javascript'].includes(file.language) : !FileManager.isJavascript(file.baseName)) {\n return file.source\n }\n\n const parser = await getParser(file.language)\n\n const exports = file.exports ? combineExports(file.exports) : []\n // imports should be defined and source should contain code or we have imports without them being used\n const imports = file.imports && file.source ? combineImports(file.imports, exports, file.source) : []\n\n const importNodes = imports\n .filter((item) => {\n const path = item.root ? getRelativePath(item.root, item.path) : item.path\n // trim extName\n return path !== trimExtName(file.path)\n })\n .map((item) => {\n const path = item.root ? getRelativePath(item.root, item.path) : item.path\n\n return parser.factory.createImportDeclaration({\n name: item.name,\n path: item.extName ? `${path}${item.extName}` : path,\n isTypeOnly: item.isTypeOnly,\n })\n })\n const exportNodes = exports.map((item) =>\n parser.factory.createExportDeclaration({\n name: item.name,\n path: item.extName ? `${item.path}${item.extName}` : item.path,\n isTypeOnly: item.isTypeOnly,\n asAlias: item.asAlias,\n }),\n )\n\n const source = [parser.print([...importNodes, ...exportNodes]), getEnvSource(file.source, file.env)].join('\\n')\n\n // do some basic linting with the ts compiler\n return parser.print([], { source, noEmitHelpers: false })\n}\n\nexport function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {\n const combinedExports = orderBy(exports, [(v) => !v.isTypeOnly], ['asc']).reduce(\n (prev, curr) => {\n const name = curr.name\n const prevByPath = prev.findLast((imp) => imp.path === curr.path)\n const prevByPathAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (export type ...)\n return prev\n }\n\n const uniquePrev = prev.findLast(\n (imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias,\n )\n\n if (uniquePrev || (Array.isArray(name) && !name.length) || (prevByPath?.asAlias && !curr.asAlias)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name: Array.isArray(name) ? [...new Set(name)] : name,\n },\n ]\n }\n\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])]\n\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Export>,\n )\n\n return orderBy(combinedExports, [(v) => !v.isTypeOnly, (v) => v.asAlias], ['desc', 'desc'])\n}\n\nexport function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {\n const combinedImports = orderBy(imports, [(v) => !v.isTypeOnly], ['asc']).reduce(\n (prev, curr) => {\n let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name\n\n const hasImportInSource = (importName: string) => {\n if (!source) {\n return true\n }\n\n const checker = (name?: string) => name && !!source.includes(name)\n\n return checker(importName) || exports.some(({ name }) => (Array.isArray(name) ? name.some(checker) : checker(name)))\n }\n\n if (curr.path === curr.root) {\n // root and path are the same file, remove the \"./\" import\n return prev\n }\n\n if (Array.isArray(name)) {\n name = name.filter((item) => (typeof item === 'string' ? hasImportInSource(item) : hasImportInSource(item.propertyName)))\n }\n\n const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly)\n const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly)\n const prevByPathNameAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathNameAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (import type ...)\n return prev\n }\n\n if (uniquePrev || (Array.isArray(name) && !name.length)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name,\n },\n ]\n }\n\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...name])]\n\n return prev\n }\n\n if (!Array.isArray(name) && name && !hasImportInSource(name)) {\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Import>,\n )\n\n return orderBy(combinedImports, [(v) => !v.isTypeOnly], ['desc'])\n}\n\nfunction getEnvSource(source: string, env: NodeJS.ProcessEnv | undefined): string {\n if (!env) {\n return source\n }\n\n const keys = Object.keys(env)\n\n if (!keys.length) {\n return source\n }\n\n return keys.reduce((prev, key: string) => {\n const environmentValue = env[key]\n const replaceBy = environmentValue ? `'${environmentValue.replaceAll('\"', '')?.replaceAll(\"'\", '')}'` : 'undefined'\n\n if (key.toUpperCase() !== key) {\n throw new TypeError(`Environment should be in upperCase for ${key}`)\n }\n\n if (typeof replaceBy === 'string') {\n prev = searchAndReplace({\n text: prev.replaceAll(`process.env.${key}`, replaceBy),\n replaceBy,\n prefix: 'process.env',\n key,\n })\n // removes `declare const ...`\n prev = searchAndReplace({\n text: prev.replaceAll(/(declare const).*\\n/gi, ''),\n replaceBy,\n key,\n })\n }\n\n return prev\n }, source)\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverConcurrencyCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #interval;\n #intervalEnd = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n #throwOnTimeout;\n /**\n Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n Applies to each future operation.\n */\n timeout;\n // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverConcurrencyCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this.timeout = options.timeout;\n this.#throwOnTimeout = options.throwOnTimeout === true;\n this.#isPaused = options.autoStart === false;\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n if (this.#timeoutId === undefined) {\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n }\n this.#intervalId = undefined;\n this.emit('empty');\n if (this.#pending === 0) {\n this.emit('idle');\n }\n return false;\n }\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n this.#processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n async #throwOnAbort(signal) {\n return new Promise((_resolve, reject) => {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n }, { once: true });\n });\n }\n async add(function_, options = {}) {\n options = {\n timeout: this.timeout,\n throwOnTimeout: this.#throwOnTimeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n this.#queue.enqueue(async () => {\n this.#pending++;\n this.#intervalCount++;\n try {\n options.signal?.throwIfAborted();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n }\n if (options.signal) {\n operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n if (error instanceof TimeoutError && !options.throwOnTimeout) {\n resolve();\n return;\n }\n reject(error);\n this.emit('error', error);\n }\n finally {\n this.#next();\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n}\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n options = {\n priority: 0,\n ...options,\n };\n const element = {\n priority: options.priority,\n run,\n };\n if (this.size && this.#queue[this.size - 1].priority >= options.priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import { getExports } from '@kubb/parser-ts'\n\nimport path from 'node:path'\n\nimport { trimExtName } from './transformers/trim.ts'\nimport { TreeNode } from './utils/TreeNode.ts'\n\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { DirectoryTreeOptions } from 'directory-tree'\n\nexport type BarrelManagerOptions = {\n treeNode?: DirectoryTreeOptions\n isTypeOnly?: boolean\n /**\n * Add .ts or .js\n */\n extName?: KubbFile.Extname\n}\n\nexport class BarrelManager {\n #options: BarrelManagerOptions\n\n constructor(options: BarrelManagerOptions = {}) {\n this.#options = options\n\n return this\n }\n\n getNamedExport(root: string, item: KubbFile.Export): KubbFile.Export[] {\n const exportedNames = getExports(path.resolve(root, item.path))\n\n if (!exportedNames) {\n return [item]\n }\n\n return exportedNames.reduce(\n (prev, curr) => {\n if (!prev[0]?.name || !prev[1]?.name) {\n return prev\n }\n\n if (curr.isTypeOnly) {\n prev[1] = { ...prev[1], name: [...prev[1].name, curr.name] }\n } else {\n prev[0] = { ...prev[0], name: [...prev[0].name, curr.name] }\n }\n\n return prev\n },\n [\n {\n ...item,\n name: [],\n isTypeOnly: false,\n },\n {\n ...item,\n name: [],\n isTypeOnly: true,\n },\n ] as KubbFile.Export[],\n )\n }\n\n getNamedExports(root: string, exports: KubbFile.Export[]): KubbFile.Export[] {\n return exports?.flatMap((item) => {\n return this.getNamedExport(root, item)\n })\n }\n\n getIndexes(root: string): Array<KubbFile.File> | null {\n const { treeNode = {}, isTypeOnly, extName } = this.#options\n const tree = TreeNode.build(root, treeNode)\n\n if (!tree) {\n return null\n }\n\n const fileReducer = (files: Array<KubbFile.File>, treeNode: TreeNode) => {\n if (!treeNode.children) {\n return []\n }\n\n if (treeNode.children.length > 1) {\n const indexPath: KubbFile.Path = path.resolve(treeNode.data.path, 'index.ts')\n\n const exports: Array<KubbFile.Export> = treeNode.children\n .filter(Boolean)\n .map((file) => {\n const importPath: string = file.data.type === 'split' ? `./${file.data.name}/index` : `./${trimExtName(file.data.name)}`\n\n if (importPath.endsWith('index') && file.data.type === 'single') {\n return undefined\n }\n\n return {\n path: extName ? `${importPath}${extName}` : importPath,\n isTypeOnly,\n } as KubbFile.Export\n })\n .filter(Boolean)\n\n files.push({\n path: indexPath,\n baseName: 'index.ts',\n source: '',\n exports,\n exportable: true,\n })\n } else if (treeNode.children.length === 1) {\n const [treeNodeChild] = treeNode.children as [TreeNode]\n\n const indexPath = path.resolve(treeNode.data.path, 'index.ts')\n const importPath = treeNodeChild.data.type === 'split' ? `./${treeNodeChild.data.name}/index` : `./${trimExtName(treeNodeChild.data.name)}`\n\n const exports = [\n {\n path: extName ? `${importPath}${extName}` : importPath,\n isTypeOnly,\n },\n ]\n\n files.push({\n path: indexPath,\n baseName: 'index.ts',\n source: '',\n exports,\n exportable: true,\n })\n }\n\n treeNode.children.forEach((childItem) => {\n fileReducer(files, childItem)\n })\n\n return files\n }\n\n return fileReducer([], tree).reverse()\n }\n}\n","import dirTree from 'directory-tree'\n\nimport { FileManager } from '../FileManager.ts'\n\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { DirectoryTree, DirectoryTreeOptions } from 'directory-tree'\n\nexport type TreeNodeOptions = DirectoryTreeOptions\n\ntype BarrelData = { type: KubbFile.Mode; path: KubbFile.Path; name: string }\n\nexport class TreeNode<T = BarrelData> {\n public data: T\n\n public parent?: TreeNode<T>\n\n public children: Array<TreeNode<T>> = []\n\n constructor(data: T, parent?: TreeNode<T>) {\n this.data = data\n this.parent = parent\n return this\n }\n\n addChild(data: T): TreeNode<T> {\n const child = new TreeNode(data, this)\n if (!this.children) {\n this.children = []\n }\n this.children.push(child)\n return child\n }\n\n find(data?: T): TreeNode<T> | null {\n if (!data) {\n return null\n }\n\n if (data === this.data) {\n return this\n }\n\n if (this.children?.length) {\n for (let i = 0, { length } = this.children, target: TreeNode<T> | null = null; i < length; i++) {\n target = this.children[i]!.find(data)\n if (target) {\n return target\n }\n }\n }\n\n return null\n }\n\n get leaves(): TreeNode<T>[] {\n if (!this.children || this.children.length === 0) {\n // this is a leaf\n return [this]\n }\n\n // if not a leaf, return all children's leaves recursively\n const leaves: TreeNode<T>[] = []\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n leaves.push.apply(leaves, this.children[i]!.leaves)\n }\n }\n return leaves\n }\n\n get root(): TreeNode<T> {\n if (!this.parent) {\n return this\n }\n return this.parent.root\n }\n\n forEach(callback: (treeNode: TreeNode<T>) => void): this {\n if (typeof callback !== 'function') {\n throw new TypeError('forEach() callback must be a function')\n }\n\n // run this node through function\n callback(this)\n\n // do the same for all children\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n this.children[i]?.forEach(callback)\n }\n }\n\n return this\n }\n\n public static build(path: string, options: TreeNodeOptions = {}): TreeNode | null {\n try {\n const exclude = Array.isArray(options.exclude) ? options.exclude : [options.exclude].filter(Boolean)\n const filteredTree = dirTree(path, {\n extensions: options.extensions,\n exclude: [/node_modules/, ...exclude],\n })\n\n if (!filteredTree) {\n return null\n }\n\n const treeNode = new TreeNode({\n name: filteredTree.name,\n path: filteredTree.path,\n type: FileManager.getMode(filteredTree.path),\n })\n\n const recurse = (node: typeof treeNode, item: DirectoryTree) => {\n const subNode = node.addChild({\n name: item.name,\n path: item.path,\n type: FileManager.getMode(item.path),\n })\n\n if (item.children?.length) {\n item.children?.forEach((child) => {\n recurse(subNode, child)\n })\n }\n }\n\n filteredTree.children?.forEach((child) => recurse(treeNode, child))\n\n return treeNode\n } catch (e) {\n throw new Error('Something went wrong with creating index files with the TreehNode class', { cause: e })\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/core/dist/chunk-CO2U7476.cjs","../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js","../src/FileManager.ts","../../../node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.js","../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs","../../../node_modules/.pnpm/p-timeout@6.1.2/node_modules/p-timeout/index.js","../../../node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.js","../../../node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.js","../src/BarrelManager.ts","../src/utils/TreeNode.ts"],"names":["EventEmitter","resolve","_queue","path","treeNode"],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/core/dist/chunk-CO2U7476.cjs","sourcesContent":[null,"'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import crypto from 'node:crypto'\nimport { extname, resolve } from 'node:path'\n\nimport { orderBy } from 'natural-orderby'\nimport PQueue from 'p-queue'\nimport { isDeepEqual } from 'remeda'\n\nimport { getRelativePath, read, write } from '@kubb/fs'\nimport { BarrelManager } from './BarrelManager.ts'\nimport { searchAndReplace } from './transformers/searchAndReplace.ts'\nimport { trimExtName } from './transformers/trim.ts'\n\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport type { BaseName, File, UUID } from '@kubb/fs/src/types.ts'\nimport type { GreaterThan } from '@kubb/types'\nimport type { BarrelManagerOptions } from './BarrelManager.ts'\nimport type { Logger } from './logger.ts'\nimport transformers from './transformers/index.ts'\nimport type { Plugin } from './types.ts'\nimport { getParser } from './utils'\n\nexport type ResolvedFile<TMeta extends FileMetaBase = FileMetaBase, TBaseName extends BaseName = BaseName> = File<TMeta, TBaseName> & {\n /**\n * @default crypto.randomUUID()\n */\n id: UUID\n /**\n * Contains the first part of the baseName, generated based on baseName\n * @link https://nodejs.org/api/path.html#pathformatpathobject\n */\n\n name: string\n}\n\nexport type FileMetaBase = {\n pluginKey?: Plugin['key']\n}\n\ntype FileWithMeta<TMeta extends FileMetaBase = FileMetaBase> = KubbFile.File<TMeta>\n\ntype CacheItem = ResolvedFile & {\n cancel?: () => void\n}\n\ntype AddResult<T extends Array<FileWithMeta>> = Promise<Awaited<GreaterThan<T['length'], 1> extends true ? Promise<ResolvedFile[]> : Promise<ResolvedFile>>>\n\ntype AddIndexesProps = {\n /**\n * Root based on root and output.path specified in the config\n */\n root: string\n /**\n * Output for plugin\n */\n output: {\n path: string\n exportAs?: string\n extName?: KubbFile.Extname\n exportType?: 'barrel' | 'barrelNamed' | false\n }\n logger: Logger\n options?: BarrelManagerOptions\n meta?: FileWithMeta['meta']\n}\n\ntype Options = {\n queue?: PQueue\n task?: (file: ResolvedFile) => Promise<ResolvedFile>\n}\n\nexport class FileManager {\n #cache: Map<KubbFile.Path, CacheItem[]> = new Map()\n\n #task: Options['task']\n #queue: PQueue\n\n constructor({ task = async (file) => file, queue = new PQueue() }: Options = {}) {\n this.#task = task\n this.#queue = queue\n\n return this\n }\n\n get files(): Array<FileWithMeta> {\n const files: Array<FileWithMeta> = []\n this.#cache.forEach((item) => {\n files.push(...item.flat(1))\n })\n\n return files\n }\n get isExecuting(): boolean {\n return this.#queue.size !== 0 && this.#queue.pending !== 0\n }\n\n async add<T extends Array<FileWithMeta> = Array<FileWithMeta>>(...files: T): AddResult<T> {\n const promises = combineFiles(files).map((file) => {\n if (file.override) {\n return this.#add(file)\n }\n\n return this.#addOrAppend(file)\n })\n\n const resolvedFiles = await Promise.all(promises)\n\n if (files.length > 1) {\n return resolvedFiles as unknown as AddResult<T>\n }\n\n return resolvedFiles[0] as unknown as AddResult<T>\n }\n\n async #add(file: FileWithMeta): Promise<ResolvedFile> {\n const controller = new AbortController()\n const resolvedFile: ResolvedFile = {\n id: crypto.randomUUID(),\n name: trimExtName(file.baseName),\n ...file,\n }\n\n if (resolvedFile.exports?.length) {\n const folder = resolvedFile.path.replace(resolvedFile.baseName, '')\n\n resolvedFile.exports = resolvedFile.exports.filter((exportItem) => {\n const exportedFile = this.files.find((file) => file.path.includes(resolve(folder, exportItem.path)))\n\n if (exportedFile) {\n return exportedFile.exportable\n }\n\n return true\n })\n }\n\n this.#cache.set(resolvedFile.path, [{ cancel: () => controller.abort(), ...resolvedFile }])\n\n return this.#queue.add(\n async () => {\n return this.#task?.(resolvedFile)\n },\n { signal: controller.signal },\n ) as Promise<ResolvedFile>\n }\n\n async #addOrAppend(file: FileWithMeta): Promise<ResolvedFile> {\n const previousCaches = this.#cache.get(file.path)\n const previousCache = previousCaches ? previousCaches.at(previousCaches.length - 1) : undefined\n\n if (previousCache) {\n this.#cache.delete(previousCache.path)\n\n return this.#add({\n ...file,\n source: previousCache.source && file.source ? `${previousCache.source}\\n${file.source}` : '',\n imports: [...(previousCache.imports || []), ...(file.imports || [])],\n exports: [...(previousCache.exports || []), ...(file.exports || [])],\n env: { ...(previousCache.env || {}), ...(file.env || {}) },\n })\n }\n return this.#add(file)\n }\n\n async addIndexes({ root, output, meta, logger, options = {} }: AddIndexesProps): Promise<void> {\n const { exportType = 'barrel' } = output\n // ^?\n if (exportType === false) {\n return undefined\n }\n\n const pathToBuildFrom = resolve(root, output.path)\n\n if (transformers.trimExtName(pathToBuildFrom).endsWith('index')) {\n logger.emit('warning', 'Output has the same fileName as the barrelFiles, please disable barrel generation')\n return\n }\n\n const exportPath = output.path.startsWith('./') ? trimExtName(output.path) : `./${trimExtName(output.path)}`\n const mode = FileManager.getMode(output.path)\n const barrelManager = new BarrelManager({\n extName: output.extName,\n ...options,\n })\n let files = barrelManager.getIndexes(pathToBuildFrom)\n\n if (!files) {\n return undefined\n }\n\n if (exportType === 'barrelNamed') {\n files = files.map((file) => {\n if (file.exports) {\n return {\n ...file,\n exports: barrelManager.getNamedExports(pathToBuildFrom, file.exports),\n }\n }\n return file\n })\n }\n\n await Promise.all(\n files.map((file) => {\n return this.#addOrAppend({\n ...file,\n meta: meta ? meta : file.meta,\n })\n }),\n )\n\n const rootPath = mode === 'split' ? `${exportPath}/index${output.extName || ''}` : `${exportPath}${output.extName || ''}`\n const rootFile: FileWithMeta = {\n path: resolve(root, 'index.ts'),\n baseName: 'index.ts',\n source: '',\n exports: [\n output.exportAs\n ? {\n name: output.exportAs,\n asAlias: true,\n path: rootPath,\n isTypeOnly: options.isTypeOnly,\n }\n : {\n path: rootPath,\n isTypeOnly: options.isTypeOnly,\n },\n ],\n exportable: true,\n }\n\n if (exportType === 'barrelNamed' && !output.exportAs && rootFile.exports?.[0]) {\n rootFile.exports = barrelManager.getNamedExport(root, rootFile.exports[0])\n }\n\n await this.#addOrAppend({\n ...rootFile,\n meta: meta ? meta : rootFile.meta,\n })\n }\n\n getCacheByUUID(UUID: KubbFile.UUID): FileWithMeta | undefined {\n let cache: FileWithMeta | undefined\n\n this.#cache.forEach((files) => {\n cache = files.find((item) => item.id === UUID)\n })\n return cache\n }\n\n get(path: KubbFile.Path): Array<FileWithMeta> | undefined {\n return this.#cache.get(path)\n }\n\n remove(path: KubbFile.Path): void {\n const cacheItem = this.get(path)\n if (!cacheItem) {\n return\n }\n\n this.#cache.delete(path)\n }\n\n async write(...params: Parameters<typeof write>): Promise<string | undefined> {\n return write(...params)\n }\n\n async read(...params: Parameters<typeof read>): Promise<string> {\n return read(...params)\n }\n\n // statics\n\n static async getSource<TMeta extends FileMetaBase = FileMetaBase>(file: FileWithMeta<TMeta>): Promise<string> {\n return getSource<TMeta>(file)\n }\n\n static combineFiles<TMeta extends FileMetaBase = FileMetaBase>(files: Array<FileWithMeta<TMeta> | null>): Array<FileWithMeta<TMeta>> {\n return combineFiles<TMeta>(files)\n }\n static getMode(path: string | undefined | null): KubbFile.Mode {\n if (!path) {\n return 'split'\n }\n return extname(path) ? 'single' : 'split'\n }\n\n static get extensions(): Array<KubbFile.Extname> {\n return ['.js', '.ts', '.tsx']\n }\n\n static isJavascript(baseName: string): boolean {\n return FileManager.extensions.some((extension) => baseName.endsWith(extension))\n }\n}\n\nfunction combineFiles<TMeta extends FileMetaBase = FileMetaBase>(files: Array<FileWithMeta<TMeta> | null>): Array<FileWithMeta<TMeta>> {\n return files.filter(Boolean).reduce(\n (acc, file: FileWithMeta<TMeta>) => {\n const prevIndex = acc.findIndex((item) => item.path === file.path)\n\n if (prevIndex === -1) {\n return [...acc, file]\n }\n\n const prev = acc[prevIndex]\n\n if (prev && file.override) {\n acc[prevIndex] = {\n imports: [],\n exports: [],\n ...file,\n }\n return acc\n }\n\n if (prev) {\n acc[prevIndex] = {\n ...file,\n source: prev.source && file.source ? `${prev.source}\\n${file.source}` : '',\n imports: [...(prev.imports || []), ...(file.imports || [])],\n exports: [...(prev.exports || []), ...(file.exports || [])],\n env: { ...(prev.env || {}), ...(file.env || {}) },\n }\n }\n\n return acc\n },\n [] as Array<FileWithMeta<TMeta>>,\n )\n}\n\nexport async function getSource<TMeta extends FileMetaBase = FileMetaBase>(file: FileWithMeta<TMeta>): Promise<string> {\n // only use .js, .ts or .tsx files for ESM imports\n\n if (file.language ? !['typescript', 'javascript'].includes(file.language) : !FileManager.isJavascript(file.baseName)) {\n return file.source\n }\n\n const parser = await getParser(file.language)\n\n const exports = file.exports ? combineExports(file.exports) : []\n // imports should be defined and source should contain code or we have imports without them being used\n const imports = file.imports && file.source ? combineImports(file.imports, exports, file.source) : []\n\n const importNodes = imports\n .filter((item) => {\n const path = item.root ? getRelativePath(item.root, item.path) : item.path\n // trim extName\n return path !== trimExtName(file.path)\n })\n .map((item) => {\n const path = item.root ? getRelativePath(item.root, item.path) : item.path\n\n return parser.factory.createImportDeclaration({\n name: item.name,\n path: item.extName ? `${path}${item.extName}` : path,\n isTypeOnly: item.isTypeOnly,\n })\n })\n const exportNodes = exports.map((item) =>\n parser.factory.createExportDeclaration({\n name: item.name,\n path: item.extName ? `${item.path}${item.extName}` : item.path,\n isTypeOnly: item.isTypeOnly,\n asAlias: item.asAlias,\n }),\n )\n\n const source = [parser.print([...importNodes, ...exportNodes]), getEnvSource(file.source, file.env)].join('\\n')\n\n // do some basic linting with the ts compiler\n return parser.print([], { source, noEmitHelpers: false })\n}\n\nexport function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {\n const combinedExports = orderBy(exports, [(v) => !v.isTypeOnly], ['asc']).reduce(\n (prev, curr) => {\n const name = curr.name\n const prevByPath = prev.findLast((imp) => imp.path === curr.path)\n const prevByPathAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (export type ...)\n return prev\n }\n\n const uniquePrev = prev.findLast(\n (imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias,\n )\n\n if (uniquePrev || (Array.isArray(name) && !name.length) || (prevByPath?.asAlias && !curr.asAlias)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name: Array.isArray(name) ? [...new Set(name)] : name,\n },\n ]\n }\n\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])]\n\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Export>,\n )\n\n return orderBy(combinedExports, [(v) => !v.isTypeOnly, (v) => v.asAlias], ['desc', 'desc'])\n}\n\nexport function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {\n const combinedImports = orderBy(imports, [(v) => !v.isTypeOnly], ['asc']).reduce(\n (prev, curr) => {\n let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name\n\n const hasImportInSource = (importName: string) => {\n if (!source) {\n return true\n }\n\n const checker = (name?: string) => name && !!source.includes(name)\n\n return checker(importName) || exports.some(({ name }) => (Array.isArray(name) ? name.some(checker) : checker(name)))\n }\n\n if (curr.path === curr.root) {\n // root and path are the same file, remove the \"./\" import\n return prev\n }\n\n if (Array.isArray(name)) {\n name = name.filter((item) => (typeof item === 'string' ? hasImportInSource(item) : hasImportInSource(item.propertyName)))\n }\n\n const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly)\n const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly)\n const prevByPathNameAndIsTypeOnly = prev.findLast((imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly)\n\n if (prevByPathNameAndIsTypeOnly) {\n // we already have an export that has the same path but uses `isTypeOnly` (import type ...)\n return prev\n }\n\n if (uniquePrev || (Array.isArray(name) && !name.length)) {\n return prev\n }\n\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name,\n },\n ]\n }\n\n if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {\n prevByPath.name = [...new Set([...prevByPath.name, ...name])]\n\n return prev\n }\n\n if (!Array.isArray(name) && name && !hasImportInSource(name)) {\n return prev\n }\n\n return [...prev, curr]\n },\n [] as Array<KubbFile.Import>,\n )\n\n return orderBy(combinedImports, [(v) => !v.isTypeOnly], ['desc'])\n}\n\nfunction getEnvSource(source: string, env: NodeJS.ProcessEnv | undefined): string {\n if (!env) {\n return source\n }\n\n const keys = Object.keys(env)\n\n if (!keys.length) {\n return source\n }\n\n return keys.reduce((prev, key: string) => {\n const environmentValue = env[key]\n const replaceBy = environmentValue ? `'${environmentValue.replaceAll('\"', '')?.replaceAll(\"'\", '')}'` : 'undefined'\n\n if (key.toUpperCase() !== key) {\n throw new TypeError(`Environment should be in upperCase for ${key}`)\n }\n\n if (typeof replaceBy === 'string') {\n prev = searchAndReplace({\n text: prev.replaceAll(`process.env.${key}`, replaceBy),\n replaceBy,\n prefix: 'process.env',\n key,\n })\n // removes `declare const ...`\n prev = searchAndReplace({\n text: prev.replaceAll(/(declare const).*\\n/gi, ''),\n replaceBy,\n key,\n })\n }\n\n return prev\n }, source)\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverConcurrencyCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #interval;\n #intervalEnd = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n #throwOnTimeout;\n /**\n Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n Applies to each future operation.\n */\n timeout;\n // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverConcurrencyCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this.timeout = options.timeout;\n this.#throwOnTimeout = options.throwOnTimeout === true;\n this.#isPaused = options.autoStart === false;\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n if (this.#timeoutId === undefined) {\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n }\n this.#intervalId = undefined;\n this.emit('empty');\n if (this.#pending === 0) {\n this.emit('idle');\n }\n return false;\n }\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n this.#processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n async #throwOnAbort(signal) {\n return new Promise((_resolve, reject) => {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n }, { once: true });\n });\n }\n async add(function_, options = {}) {\n options = {\n timeout: this.timeout,\n throwOnTimeout: this.#throwOnTimeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n this.#queue.enqueue(async () => {\n this.#pending++;\n this.#intervalCount++;\n try {\n options.signal?.throwIfAborted();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n }\n if (options.signal) {\n operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n if (error instanceof TimeoutError && !options.throwOnTimeout) {\n resolve();\n return;\n }\n reject(error);\n this.emit('error', error);\n }\n finally {\n this.#next();\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n}\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n options = {\n priority: 0,\n ...options,\n };\n const element = {\n priority: options.priority,\n run,\n };\n if (this.size && this.#queue[this.size - 1].priority >= options.priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import { getExports } from '@kubb/parser-ts'\n\nimport path from 'node:path'\n\nimport { trimExtName } from './transformers/trim.ts'\nimport { TreeNode } from './utils/TreeNode.ts'\n\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { DirectoryTreeOptions } from 'directory-tree'\n\nexport type BarrelManagerOptions = {\n treeNode?: DirectoryTreeOptions\n isTypeOnly?: boolean\n /**\n * Add .ts or .js\n */\n extName?: KubbFile.Extname\n}\n\nexport class BarrelManager {\n #options: BarrelManagerOptions\n\n constructor(options: BarrelManagerOptions = {}) {\n this.#options = options\n\n return this\n }\n\n getNamedExport(root: string, item: KubbFile.Export): KubbFile.Export[] {\n const exportedNames = getExports(path.resolve(root, item.path))\n\n if (!exportedNames) {\n return [item]\n }\n\n return exportedNames.reduce(\n (prev, curr) => {\n if (!prev[0]?.name || !prev[1]?.name) {\n return prev\n }\n\n if (curr.isTypeOnly) {\n prev[1] = { ...prev[1], name: [...prev[1].name, curr.name] }\n } else {\n prev[0] = { ...prev[0], name: [...prev[0].name, curr.name] }\n }\n\n return prev\n },\n [\n {\n ...item,\n name: [],\n isTypeOnly: false,\n },\n {\n ...item,\n name: [],\n isTypeOnly: true,\n },\n ] as KubbFile.Export[],\n )\n }\n\n getNamedExports(root: string, exports: KubbFile.Export[]): KubbFile.Export[] {\n return exports?.flatMap((item) => {\n return this.getNamedExport(root, item)\n })\n }\n\n getIndexes(root: string): Array<KubbFile.File> | null {\n const { treeNode = {}, isTypeOnly, extName } = this.#options\n const tree = TreeNode.build(root, treeNode)\n\n if (!tree) {\n return null\n }\n\n const fileReducer = (files: Array<KubbFile.File>, treeNode: TreeNode) => {\n if (!treeNode.children) {\n return []\n }\n\n if (treeNode.children.length > 1) {\n const indexPath: KubbFile.Path = path.resolve(treeNode.data.path, 'index.ts')\n\n const exports: Array<KubbFile.Export> = treeNode.children\n .filter(Boolean)\n .map((file) => {\n const importPath: string = file.data.type === 'split' ? `./${file.data.name}/index` : `./${trimExtName(file.data.name)}`\n\n if (importPath.endsWith('index') && file.data.type === 'single') {\n return undefined\n }\n\n return {\n path: extName ? `${importPath}${extName}` : importPath,\n isTypeOnly,\n } as KubbFile.Export\n })\n .filter(Boolean)\n\n files.push({\n path: indexPath,\n baseName: 'index.ts',\n source: '',\n exports,\n exportable: true,\n })\n } else if (treeNode.children.length === 1) {\n const [treeNodeChild] = treeNode.children as [TreeNode]\n\n const indexPath = path.resolve(treeNode.data.path, 'index.ts')\n const importPath = treeNodeChild.data.type === 'split' ? `./${treeNodeChild.data.name}/index` : `./${trimExtName(treeNodeChild.data.name)}`\n\n const exports = [\n {\n path: extName ? `${importPath}${extName}` : importPath,\n isTypeOnly,\n },\n ]\n\n files.push({\n path: indexPath,\n baseName: 'index.ts',\n source: '',\n exports,\n exportable: true,\n })\n }\n\n treeNode.children.forEach((childItem) => {\n fileReducer(files, childItem)\n })\n\n return files\n }\n\n return fileReducer([], tree).reverse()\n }\n}\n","import dirTree from 'directory-tree'\n\nimport { FileManager } from '../FileManager.ts'\n\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { DirectoryTree, DirectoryTreeOptions } from 'directory-tree'\n\nexport type TreeNodeOptions = DirectoryTreeOptions\n\ntype BarrelData = { type: KubbFile.Mode; path: KubbFile.Path; name: string }\n\nexport class TreeNode<T = BarrelData> {\n public data: T\n\n public parent?: TreeNode<T>\n\n public children: Array<TreeNode<T>> = []\n\n constructor(data: T, parent?: TreeNode<T>) {\n this.data = data\n this.parent = parent\n return this\n }\n\n addChild(data: T): TreeNode<T> {\n const child = new TreeNode(data, this)\n if (!this.children) {\n this.children = []\n }\n this.children.push(child)\n return child\n }\n\n find(data?: T): TreeNode<T> | null {\n if (!data) {\n return null\n }\n\n if (data === this.data) {\n return this\n }\n\n if (this.children?.length) {\n for (let i = 0, { length } = this.children, target: TreeNode<T> | null = null; i < length; i++) {\n target = this.children[i]!.find(data)\n if (target) {\n return target\n }\n }\n }\n\n return null\n }\n\n get leaves(): TreeNode<T>[] {\n if (!this.children || this.children.length === 0) {\n // this is a leaf\n return [this]\n }\n\n // if not a leaf, return all children's leaves recursively\n const leaves: TreeNode<T>[] = []\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n leaves.push.apply(leaves, this.children[i]!.leaves)\n }\n }\n return leaves\n }\n\n get root(): TreeNode<T> {\n if (!this.parent) {\n return this\n }\n return this.parent.root\n }\n\n forEach(callback: (treeNode: TreeNode<T>) => void): this {\n if (typeof callback !== 'function') {\n throw new TypeError('forEach() callback must be a function')\n }\n\n // run this node through function\n callback(this)\n\n // do the same for all children\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n this.children[i]?.forEach(callback)\n }\n }\n\n return this\n }\n\n public static build(path: string, options: TreeNodeOptions = {}): TreeNode | null {\n try {\n const exclude = Array.isArray(options.exclude) ? options.exclude : [options.exclude].filter(Boolean)\n const filteredTree = dirTree(path, {\n extensions: options.extensions,\n exclude: [/node_modules/, ...exclude],\n })\n\n if (!filteredTree) {\n return null\n }\n\n const treeNode = new TreeNode({\n name: filteredTree.name,\n path: filteredTree.path,\n type: FileManager.getMode(filteredTree.path),\n })\n\n const recurse = (node: typeof treeNode, item: DirectoryTree) => {\n const subNode = node.addChild({\n name: item.name,\n path: item.path,\n type: FileManager.getMode(item.path),\n })\n\n if (item.children?.length) {\n item.children?.forEach((child) => {\n recurse(subNode, child)\n })\n }\n }\n\n filteredTree.children?.forEach((child) => recurse(treeNode, child))\n\n return treeNode\n } catch (e) {\n throw new Error('Something went wrong with creating index files with the TreehNode class', { cause: e })\n }\n }\n}\n"]}
@@ -281,4 +281,4 @@ export {
281
281
  transformers_default,
282
282
  merge2 as merge
283
283
  };
284
- //# sourceMappingURL=chunk-VRGE7DRN.js.map
284
+ //# sourceMappingURL=chunk-OZKPV7RD.js.map
@@ -1 +1 @@
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":";;;;;;;;AACA,SAAS,aAAa;;;ACDf,SAAS,aAAa,OAAyB;AACpD,SAAO,MAAM,KAAK,IAAI;AACxB;;;ACFO,SAAS,qBAAqB,EAAE,SAAS,GAAwC;AACtF,QAAM,mBAAmB,SAAS,OAAO,OAAO;AAEhD,MAAI,CAAC,iBAAiB,QAAQ;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,KAAW,iBAAiB,KAAK,OAAO,CAAC;AAAA;AAClD;;;ACRO,SAAS,OAAO,MAAuB;AAC5C,SAAO,OAAO,KAAK,WAAW,KAAK,KAAK,IAAI;AAC9C;AAQO,SAAS,eAAe,OAAoB;AACjD,SAAO,GAAG,KAAK,GAAG,QAAQ,2BAA2B,CAAC,cAAc;AAClE,YAAQ,WAAW;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO,KAAK,SAAS;AAAA;AAAA,MAEvB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC;AACH;;;AC9BO,SAAS,aAAa,MAAsB;AACjD,SAAO,MAAM,KAAK,EAAE,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG;AAClD;;;ACFO,SAAS,WAAuC,GAAM,GAAkB;AAC7E,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ACAO,SAAS,iBAAiB,SAA0B;AACzD,QAAM,EAAE,MAAM,WAAW,SAAS,IAAI,IAAI,IAAI;AAE9C,QAAM,eAAe,QAAQ,eAAe,QAAQ,GAAG,KAAK;AAAA,IAC1D,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,GAAG,MAAM,MAAM,GAAG;AAAA,IAClB,GAAG,MAAM,IAAI,GAAG;AAAA,IAChB,GAAG,MAAM,IAAI,GAAG;AAAA,IAChB,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,IAAI,OAAO,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG;AAAA,EACnC;AAEA,SAAO,aAAa,OAAO,CAAC,MAAM,gBAAgB;AAChD,WAAO,KAAK,SAAS,EAAE,WAAW,aAAa,SAAS;AAAA,EAC1D,GAAG,IAAI;AACT;;;ACxBO,SAAS,KAAK,MAAsB;AACzC,SAAO,KAAK,WAAW,OAAO,EAAE,EAAE,KAAK;AACzC;AAEO,SAAS,WAAW,MAAsB;AAC/C,MAAI,KAAK,MAAM,UAAU,GAAG;AAC1B,WAAO,KAAK,QAAQ,YAAY,IAAI;AAAA,EACtC;AACA,MAAI,KAAK,MAAM,UAAU,GAAG;AAC1B,WAAO,KAAK,QAAQ,YAAY,IAAI;AAAA,EACtC;AAEA,MAAI,KAAK,MAAM,UAAU,GAAG;AAC1B,WAAO,KAAK,QAAQ,YAAY,IAAI;AAAA,EACtC;AAEA,SAAO;AACT;AAEO,SAAS,YAAY,MAAsB;AAChD,SAAO,KAAK,QAAQ,aAAa,EAAE;AACrC;;;ACnBO,SAAS,UAAU,OAA4C;AACpE,MAAI,UAAU,UAAa,UAAU,MAAM;AACzC,WAAO;AAAA,EACT;AAEA,SAAO,KAAK,UAAU,WAAW,MAAM,SAAS,CAAC,CAAC;AACpD;AAEO,SAAS,gBAAgB,OAAuB;AACrD,QAAM,QAAQ,OAAO,QAAQ,KAAK,EAC/B,IAAI,CAAC,CAAC,KAAKA,MAAK,MAAM;AACrB,QAAI,OAAOA,WAAU,UAAU;AAC7B,aAAO,GAAG,GAAG;AAAA,UACX,gBAAgBA,MAAK,CAAC;AAAA;AAAA,IAE1B;AAEA,WAAO,GAAG,GAAG,KAAKA,MAAK;AAAA,EACzB,CAAC,EACA,OAAO,OAAO;AAEjB,SAAO,MAAM,KAAK,KAAK;AACzB;;;ACrBA,SAAS,cAAc,MAAc;AACnC,QAAM,mBAAmB,KAAK,WAAW,GAAG;AAC5C,QAAM,iBAAiB,KAAK,SAAS,GAAG;AAExC,SAAO,IAAI,OAAO,KAAK,MAAM,mBAAmB,IAAI,GAAG,iBAAiB,KAAK,MAAS,CAAC;AACzF;AAKO,SAAS,SAAS,MAA+B;AACtD,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,SAAS,WAAW,IAAI;AAE9B,WAAO,cAAc,MAAM;AAAA,EAC7B;AAEA,SAAO,cAAc,KAAK,SAAS,CAAC;AACtC;AAEO,SAAS,eAAe,MAAc,OAAO,UAAkB;AACpE,QAAM,mBAAmB,KAAK,WAAW,GAAG;AAC5C,QAAM,iBAAiB,KAAK,SAAS,GAAG;AAExC,QAAM,SAAS,OAAO,IAAI,KAAK,eAAe,KAAK,MAAM,mBAAmB,IAAI,GAAG,iBAAiB,KAAK,MAAS,CAAC,CAAC;AAEpH,SAAO;AACT;;;AC3BA,IAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,sBAAsB,MAAsB;AAC1D,MAAK,QAAQ,cAAc,SAAS,IAAI,KAAM,MAAM,MAAM,KAAK,GAAG;AAChE,WAAO,IAAI,IAAI;AAAA,EACjB;AAEA,SAAO;AACT;;;AVtEA,SAAS,SAAAC,cAAa;AAGtB,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":["value","merge"]}
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 | boolean | 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"]}
@@ -2,7 +2,7 @@ import {
2
2
  searchAndReplace,
3
3
  transformers_default,
4
4
  trimExtName
5
- } from "./chunk-VRGE7DRN.js";
5
+ } from "./chunk-OZKPV7RD.js";
6
6
  import {
7
7
  getParser
8
8
  } from "./chunk-5JZNFPUP.js";
@@ -593,4 +593,4 @@ function getEnvSource(source, env) {
593
593
  export {
594
594
  FileManager
595
595
  };
596
- //# sourceMappingURL=chunk-CCXHZ6JL.js.map
596
+ //# sourceMappingURL=chunk-WURRAECF.js.map
package/dist/index.cjs CHANGED
@@ -8,10 +8,10 @@ var _chunkG3IAGKIWcjs = require('./chunk-G3IAGKIW.cjs');
8
8
 
9
9
 
10
10
 
11
- var _chunkDPB7WCV5cjs = require('./chunk-DPB7WCV5.cjs');
11
+ var _chunkCO2U7476cjs = require('./chunk-CO2U7476.cjs');
12
12
 
13
13
 
14
- var _chunkG6LBJXYScjs = require('./chunk-G6LBJXYS.cjs');
14
+ var _chunk3WAFCJTYcjs = require('./chunk-3WAFCJTY.cjs');
15
15
 
16
16
 
17
17
 
@@ -248,18 +248,18 @@ Falling back on the first item.
248
248
  `
249
249
  ]);
250
250
  }
251
- return _chunkG6LBJXYScjs.transformReservedWord.call(void 0, _optionalChain([names, 'optionalAccess', _8 => _8.at, 'call', _9 => _9(0)]) || params.name);
251
+ return _chunk3WAFCJTYcjs.transformReservedWord.call(void 0, _optionalChain([names, 'optionalAccess', _8 => _8.at, 'call', _9 => _9(0)]) || params.name);
252
252
  }
253
253
  const name = this.hookFirstSync({
254
254
  hookName: "resolveName",
255
255
  parameters: [params.name, params.type]
256
256
  }).result;
257
- return _chunkG6LBJXYScjs.transformReservedWord.call(void 0, name);
257
+ return _chunk3WAFCJTYcjs.transformReservedWord.call(void 0, name);
258
258
  };
259
259
  this.config = config;
260
260
  this.logger = options.logger;
261
- this.queue = new (0, _chunkDPB7WCV5cjs.PQueue)({ concurrency: 1 });
262
- this.fileManager = new (0, _chunkDPB7WCV5cjs.FileManager)({
261
+ this.queue = new (0, _chunkCO2U7476cjs.PQueue)({ concurrency: 1 });
262
+ this.fileManager = new (0, _chunkCO2U7476cjs.FileManager)({
263
263
  task: options.task,
264
264
  queue: this.queue
265
265
  });
@@ -687,7 +687,7 @@ async function setup(options) {
687
687
  }
688
688
  const task = async (file) => {
689
689
  const { path: path4 } = file;
690
- let source = await _chunkDPB7WCV5cjs.FileManager.getSource(file);
690
+ let source = await _chunkCO2U7476cjs.FileManager.getSource(file);
691
691
  const { result: loadedResult } = await pluginManager.hookFirst({
692
692
  hookName: "load",
693
693
  parameters: [path4]
@@ -788,7 +788,7 @@ async function build(options) {
788
788
  const files = await Promise.all(
789
789
  fileManager.files.map(async (file) => ({
790
790
  ...file,
791
- source: await _chunkDPB7WCV5cjs.FileManager.getSource(file)
791
+ source: await _chunkCO2U7476cjs.FileManager.getSource(file)
792
792
  }))
793
793
  );
794
794
  return {
@@ -812,7 +812,7 @@ async function safeBuild(options) {
812
812
  const files2 = await Promise.all(
813
813
  fileManager.files.map(async (file) => ({
814
814
  ...file,
815
- source: await _chunkDPB7WCV5cjs.FileManager.getSource(file)
815
+ source: await _chunkCO2U7476cjs.FileManager.getSource(file)
816
816
  }))
817
817
  );
818
818
  return {
@@ -824,7 +824,7 @@ async function safeBuild(options) {
824
824
  const files = await Promise.all(
825
825
  fileManager.files.map(async (file) => ({
826
826
  ...file,
827
- source: await _chunkDPB7WCV5cjs.FileManager.getSource(file)
827
+ source: await _chunkCO2U7476cjs.FileManager.getSource(file)
828
828
  }))
829
829
  );
830
830
  return {
@@ -1312,5 +1312,5 @@ var PackageManager = _PackageManager;
1312
1312
 
1313
1313
 
1314
1314
 
1315
- exports.FileManager = _chunkDPB7WCV5cjs.FileManager; exports.Generator = Generator; exports.PackageManager = PackageManager; exports.PluginManager = PluginManager; exports.PromiseManager = PromiseManager; exports.Warning = Warning; exports.build = build; exports.createPlugin = createPlugin; exports.default = build; exports.defineConfig = defineConfig; exports.isInputPath = isInputPath; exports.safeBuild = safeBuild;
1315
+ exports.FileManager = _chunkCO2U7476cjs.FileManager; exports.Generator = Generator; exports.PackageManager = PackageManager; exports.PluginManager = PluginManager; exports.PromiseManager = PromiseManager; exports.Warning = Warning; exports.build = build; exports.createPlugin = createPlugin; exports.default = build; exports.defineConfig = defineConfig; exports.isInputPath = isInputPath; exports.safeBuild = safeBuild;
1316
1316
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -7,10 +7,10 @@ import {
7
7
  } from "./chunk-Q2IVZO4X.js";
8
8
  import {
9
9
  FileManager
10
- } from "./chunk-CCXHZ6JL.js";
10
+ } from "./chunk-WURRAECF.js";
11
11
  import {
12
12
  transformReservedWord
13
- } from "./chunk-VRGE7DRN.js";
13
+ } from "./chunk-OZKPV7RD.js";
14
14
  import {
15
15
  URLPath,
16
16
  setUniqueName
package/dist/mocks.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkDPB7WCV5cjs = require('./chunk-DPB7WCV5.cjs');
4
- require('./chunk-G6LBJXYS.cjs');
3
+ var _chunkCO2U7476cjs = require('./chunk-CO2U7476.cjs');
4
+ require('./chunk-3WAFCJTY.cjs');
5
5
  require('./chunk-CITJQACT.cjs');
6
6
 
7
7
 
@@ -53,7 +53,7 @@ var mockedPluginManager = {
53
53
  };
54
54
  async function matchFiles(files) {
55
55
  for (const file of files) {
56
- const source = await _chunkDPB7WCV5cjs.FileManager.getSource(file);
56
+ const source = await _chunkCO2U7476cjs.FileManager.getSource(file);
57
57
  expect(source).toMatchSnapshot();
58
58
  }
59
59
  }
package/dist/mocks.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  FileManager
3
- } from "./chunk-CCXHZ6JL.js";
4
- import "./chunk-VRGE7DRN.js";
3
+ } from "./chunk-WURRAECF.js";
4
+ import "./chunk-OZKPV7RD.js";
5
5
  import "./chunk-5JZNFPUP.js";
6
6
  import {
7
7
  pascalCase
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- var _chunkG6LBJXYScjs = require('./chunk-G6LBJXYS.cjs');
19
+ var _chunk3WAFCJTYcjs = require('./chunk-3WAFCJTY.cjs');
20
20
 
21
21
 
22
22
 
@@ -46,5 +46,5 @@ require('./chunk-ASAQKYU5.cjs');
46
46
 
47
47
 
48
48
 
49
- exports.camelCase = _chunk72CJQUQEcjs.camelCase; exports.combineCodes = _chunkG6LBJXYScjs.combineCodes; exports.createIndent = _chunkG6LBJXYScjs.createIndent; exports.createJSDocBlockText = _chunkG6LBJXYScjs.createJSDocBlockText; exports.default = _chunkG6LBJXYScjs.transformers_default; exports.escape = _chunkG6LBJXYScjs.escape; exports.jsStringEscape = _chunkG6LBJXYScjs.jsStringEscape; exports.merge = _chunkG6LBJXYScjs.merge; exports.nameSorter = _chunkG6LBJXYScjs.nameSorter; exports.orderBy = _chunk72CJQUQEcjs.orderBy; exports.pascalCase = _chunk72CJQUQEcjs.pascalCase; exports.pathCase = _chunk72CJQUQEcjs.pathCase; exports.searchAndReplace = _chunkG6LBJXYScjs.searchAndReplace; exports.stringify = _chunkG6LBJXYScjs.stringify; exports.stringifyObject = _chunkG6LBJXYScjs.stringifyObject; exports.toRegExp = _chunkG6LBJXYScjs.toRegExp; exports.toRegExpString = _chunkG6LBJXYScjs.toRegExpString; exports.transformReservedWord = _chunkG6LBJXYScjs.transformReservedWord; exports.trim = _chunkG6LBJXYScjs.trim; exports.trimExtName = _chunkG6LBJXYScjs.trimExtName; exports.trimQuotes = _chunkG6LBJXYScjs.trimQuotes;
49
+ exports.camelCase = _chunk72CJQUQEcjs.camelCase; exports.combineCodes = _chunk3WAFCJTYcjs.combineCodes; exports.createIndent = _chunk3WAFCJTYcjs.createIndent; exports.createJSDocBlockText = _chunk3WAFCJTYcjs.createJSDocBlockText; exports.default = _chunk3WAFCJTYcjs.transformers_default; exports.escape = _chunk3WAFCJTYcjs.escape; exports.jsStringEscape = _chunk3WAFCJTYcjs.jsStringEscape; exports.merge = _chunk3WAFCJTYcjs.merge; exports.nameSorter = _chunk3WAFCJTYcjs.nameSorter; exports.orderBy = _chunk72CJQUQEcjs.orderBy; exports.pascalCase = _chunk72CJQUQEcjs.pascalCase; exports.pathCase = _chunk72CJQUQEcjs.pathCase; exports.searchAndReplace = _chunk3WAFCJTYcjs.searchAndReplace; exports.stringify = _chunk3WAFCJTYcjs.stringify; exports.stringifyObject = _chunk3WAFCJTYcjs.stringifyObject; exports.toRegExp = _chunk3WAFCJTYcjs.toRegExp; exports.toRegExpString = _chunk3WAFCJTYcjs.toRegExpString; exports.transformReservedWord = _chunk3WAFCJTYcjs.transformReservedWord; exports.trim = _chunk3WAFCJTYcjs.trim; exports.trimExtName = _chunk3WAFCJTYcjs.trimExtName; exports.trimQuotes = _chunk3WAFCJTYcjs.trimQuotes;
50
50
  //# sourceMappingURL=transformers.cjs.map
@@ -44,7 +44,7 @@ type Options = {
44
44
  };
45
45
  declare function searchAndReplace(options: Options): string;
46
46
 
47
- declare function stringify(value: string | number | undefined): string;
47
+ declare function stringify(value: string | number | boolean | undefined): string;
48
48
  declare function stringifyObject(value: object): string;
49
49
 
50
50
  /**
@@ -44,7 +44,7 @@ type Options = {
44
44
  };
45
45
  declare function searchAndReplace(options: Options): string;
46
46
 
47
- declare function stringify(value: string | number | undefined): string;
47
+ declare function stringify(value: string | number | boolean | undefined): string;
48
48
  declare function stringifyObject(value: object): string;
49
49
 
50
50
  /**
@@ -16,7 +16,7 @@ import {
16
16
  trim,
17
17
  trimExtName,
18
18
  trimQuotes
19
- } from "./chunk-VRGE7DRN.js";
19
+ } from "./chunk-OZKPV7RD.js";
20
20
  import {
21
21
  camelCase,
22
22
  orderBy,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/core",
3
- "version": "2.26.4",
3
+ "version": "2.26.5",
4
4
  "description": "Generator core",
5
5
  "keywords": [
6
6
  "typescript",
@@ -87,9 +87,9 @@
87
87
  "seedrandom": "^3.0.5",
88
88
  "semver": "^7.6.3",
89
89
  "unraw": "^3.0.0",
90
- "@kubb/fs": "2.26.4",
91
- "@kubb/parser-ts": "2.26.4",
92
- "@kubb/types": "2.26.4"
90
+ "@kubb/fs": "2.26.5",
91
+ "@kubb/parser-ts": "2.26.5",
92
+ "@kubb/types": "2.26.5"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/react": "^18.3.8",
@@ -101,9 +101,9 @@
101
101
  "tinyrainbow": "^1.2.0",
102
102
  "tsup": "^8.3.0",
103
103
  "typescript": "^5.6.2",
104
- "@kubb/config-biome": "2.26.4",
105
- "@kubb/config-ts": "2.26.4",
106
- "@kubb/config-tsup": "2.26.4"
104
+ "@kubb/config-biome": "2.26.5",
105
+ "@kubb/config-ts": "2.26.5",
106
+ "@kubb/config-tsup": "2.26.5"
107
107
  },
108
108
  "engines": {
109
109
  "node": ">=18"
@@ -1,6 +1,6 @@
1
1
  import { trimQuotes } from './trim'
2
2
 
3
- export function stringify(value: string | number | undefined): string {
3
+ export function stringify(value: string | number | boolean | undefined): string {
4
4
  if (value === undefined || value === null) {
5
5
  return '""'
6
6
  }