@kubb/core 3.10.14 → 3.11.1

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.
@@ -29,14 +29,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  mod
30
30
  ));
31
31
 
32
- // ../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.8_@types+node@20.19.0__jiti@2.4.2_postcss@8.5.3_typescript@5.8.3_yaml@2.7.1/node_modules/tsup/assets/cjs_shims.js
32
+ // ../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.8_@types+node@20.19.1__jiti@2.4.2_postcss@8.5.6_typescript@5.8.3_yaml@2.7.1/node_modules/tsup/assets/cjs_shims.js
33
33
  var init_cjs_shims = __esm({
34
- "../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.8_@types+node@20.19.0__jiti@2.4.2_postcss@8.5.3_typescript@5.8.3_yaml@2.7.1/node_modules/tsup/assets/cjs_shims.js"() {
34
+ "../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.8_@types+node@20.19.1__jiti@2.4.2_postcss@8.5.6_typescript@5.8.3_yaml@2.7.1/node_modules/tsup/assets/cjs_shims.js"() {
35
35
  }
36
36
  });
37
37
 
38
38
  exports.__commonJS = __commonJS;
39
39
  exports.__toESM = __toESM;
40
40
  exports.init_cjs_shims = init_cjs_shims;
41
- //# sourceMappingURL=chunk-H7GP5BQJ.cjs.map
42
- //# sourceMappingURL=chunk-H7GP5BQJ.cjs.map
41
+ //# sourceMappingURL=chunk-ABJWI4LI.cjs.map
42
+ //# sourceMappingURL=chunk-ABJWI4LI.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.8_@types+node@20.19.0__jiti@2.4.2_postcss@8.5.3_typescript@5.8.3_yaml@2.7.1/node_modules/tsup/assets/cjs_shims.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA,KAAA,CAAA;AAAA,EAAA,qLAAA,GAAA;AAAA;AAAA,CAAA","file":"chunk-H7GP5BQJ.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.8_@types+node@20.19.1__jiti@2.4.2_postcss@8.5.6_typescript@5.8.3_yaml@2.7.1/node_modules/tsup/assets/cjs_shims.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA,KAAA,CAAA;AAAA,EAAA,qLAAA,GAAA;AAAA;AAAA,CAAA","file":"chunk-ABJWI4LI.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"]}
@@ -474,7 +474,9 @@ File: ${JSON.stringify(item.data.file, void 0, 2)}`
474
474
  if (!item.data.file?.path || !source.isIndexable || !source.name) {
475
475
  return void 0;
476
476
  }
477
- const alreadyContainInPreviousBarrelFile = previousBarrelFile?.sources.some((item2) => item2.name === source.name);
477
+ const alreadyContainInPreviousBarrelFile = previousBarrelFile?.sources.some(
478
+ (item2) => item2.name === source.name && item2.isTypeOnly === source.isTypeOnly
479
+ );
478
480
  if (alreadyContainInPreviousBarrelFile) {
479
481
  return void 0;
480
482
  }
@@ -928,5 +930,5 @@ function trimExtName2(text) {
928
930
  }
929
931
 
930
932
  export { FileManager, FunctionParams, URLPath, createFile, createFileExport, createFileImport, createFileParser, getDefaultBanner, getFileParser, getSource, getUniqueName, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, processFiles, renderTemplate, setUniqueName, timeout };
931
- //# sourceMappingURL=chunk-PNGIYL5L.js.map
932
- //# sourceMappingURL=chunk-PNGIYL5L.js.map
933
+ //# sourceMappingURL=chunk-GIPLMC64.js.map
934
+ //# sourceMappingURL=chunk-GIPLMC64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts","../src/utils/uniqueName.ts","../src/utils/URLPath.ts","../src/utils/TreeNode.ts","../src/BarrelManager.ts","../src/FileManager.ts","../src/utils/parser.ts"],"names":["item","path","join","extname","name","trimExtName"],"mappings":"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","file":"chunk-GIPLMC64.js","sourcesContent":["import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n/**\n * @deprecated\n */\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\n\n/**\n * @deprecated\n */\nexport class FunctionParams {\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor() {\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.#items.push(it))\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(\n items.filter(Boolean),\n [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ],\n ['desc', 'desc'],\n )\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every((item) => item.required) ?? true\n\n items.forEach((item) => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some((item) => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join('; ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = FunctionParams.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n if (item.length <= 0) {\n return acc\n }\n const subItems = FunctionParams.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from './types.ts'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n","export function getUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n originalName += used\n }\n data[originalName] = 1\n return originalName\n}\n\nexport function setUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n\n return originalName\n }\n data[originalName] = 1\n return originalName\n}\n","import { camelCase, isValidVarName } from '../transformers'\n\nexport type URLObject = {\n url: string\n params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n type?: 'path' | 'template'\n replacer?: (pathParam: string) => string\n stringify?: boolean\n}\n\ntype Options = {\n casing?: 'camelcase'\n}\n\nexport class URLPath {\n path: string\n #options: Options\n\n constructor(path: string, options: Options = {}) {\n this.path = path\n this.#options = options\n\n return this\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n get URL(): string {\n return this.toURLPath()\n }\n get isURL(): boolean {\n try {\n const url = new URL(this.path)\n if (url?.href) {\n return true\n }\n } catch (_error) {\n return false\n }\n return false\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n get template(): string {\n return this.toTemplateString()\n }\n get object(): URLObject | string {\n return this.toObject()\n }\n get params(): Record<string, string> | undefined {\n return this.getParams()\n }\n\n toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n const object = {\n url: type === 'path' ? this.toURLPath() : this.toTemplateString({ replacer }),\n params: this.getParams(),\n }\n\n if (stringify) {\n if (type === 'template') {\n return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n }\n\n if (object.params) {\n return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n }\n\n return `{ url: '${object.url}' }`\n }\n\n return object\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n toTemplateString({ prefix = '', replacer }: { prefix?: string; replacer?: (pathParam: string) => string } = {}): string {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n let newPath = this.path.replaceAll('{', '${')\n\n if (found) {\n newPath = found.reduce((prev, path) => {\n const pathWithoutBrackets = path.replaceAll('{', '').replaceAll('}', '')\n\n let param = isValidVarName(pathWithoutBrackets) ? pathWithoutBrackets : camelCase(pathWithoutBrackets)\n\n if (this.#options.casing === 'camelcase') {\n param = camelCase(param)\n }\n\n return prev.replace(path, `\\${${replacer ? replacer(param) : param}}`)\n }, this.path)\n }\n\n return `\\`${prefix}${newPath}\\``\n }\n\n getParams(replacer?: (pathParam: string) => string): Record<string, string> | undefined {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n\n if (!found) {\n return undefined\n }\n\n const params: Record<string, string> = {}\n found.forEach((item) => {\n item = item.replaceAll('{', '').replaceAll('}', '')\n\n let param = isValidVarName(item) ? item : camelCase(item)\n\n if (this.#options.casing === 'camelcase') {\n param = camelCase(param)\n }\n\n const key = replacer ? replacer(param) : param\n\n params[key] = key\n }, this.path)\n\n return params\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n toURLPath(): string {\n return this.path.replaceAll('{', ':').replaceAll('}', '')\n }\n}\n","import type { KubbFile } from '../fs/index.ts'\nimport { FileManager } from '../FileManager.ts'\n\ntype BarrelData = {\n file?: KubbFile.File\n /**\n * @deprecated use file instead\n */\n type: KubbFile.Mode\n path: string\n name: string\n}\n\nexport class TreeNode {\n data: BarrelData\n parent?: TreeNode\n children: Array<TreeNode> = []\n #cachedLeaves?: Array<TreeNode> = undefined\n\n constructor(data: BarrelData, parent?: TreeNode) {\n this.data = data\n this.parent = parent\n return this\n }\n\n addChild(data: BarrelData): TreeNode {\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 get root(): TreeNode {\n if (!this.parent) {\n return this\n }\n return this.parent.root\n }\n\n get leaves(): Array<TreeNode> {\n if (!this.children || this.children.length === 0) {\n // this is a leaf\n return [this]\n }\n\n if (this.#cachedLeaves) {\n return this.#cachedLeaves\n }\n\n // if not a leaf, return all children's leaves recursively\n const leaves: TreeNode[] = []\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\n this.#cachedLeaves = leaves\n\n return leaves\n }\n\n forEach(callback: (treeNode: TreeNode) => 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 findDeep(predicate?: (value: TreeNode, index: number, obj: TreeNode[]) => boolean): TreeNode | undefined {\n if (typeof predicate !== 'function') {\n throw new TypeError('find() predicate must be a function')\n }\n\n return this.leaves.find(predicate)\n }\n\n forEachDeep(callback: (treeNode: TreeNode) => void): void {\n if (typeof callback !== 'function') {\n throw new TypeError('forEach() callback must be a function')\n }\n\n this.leaves.forEach(callback)\n }\n\n filterDeep(callback: (treeNode: TreeNode) => boolean): Array<TreeNode> {\n if (typeof callback !== 'function') {\n throw new TypeError('filter() callback must be a function')\n }\n\n return this.leaves.filter(callback)\n }\n\n mapDeep<T>(callback: (treeNode: TreeNode) => T): Array<T> {\n if (typeof callback !== 'function') {\n throw new TypeError('map() callback must be a function')\n }\n\n return this.leaves.map(callback)\n }\n\n public static build(files: KubbFile.File[], root?: string): TreeNode | null {\n try {\n const filteredTree = buildDirectoryTree(files, root)\n\n if (!filteredTree) {\n return null\n }\n\n const treeNode = new TreeNode({\n name: filteredTree.name,\n path: filteredTree.path,\n file: filteredTree.file,\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 file: item.file,\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 barrel files with the TreeNode class', { cause: e })\n }\n }\n}\n\nexport type DirectoryTree = {\n name: string\n path: string\n file?: KubbFile.File\n children: Array<DirectoryTree>\n}\n\nexport function buildDirectoryTree(files: Array<KubbFile.File>, rootFolder = ''): DirectoryTree | null {\n const rootPrefix = rootFolder.endsWith('/') ? rootFolder : `${rootFolder}/`\n const filteredFiles = files.filter((file) => (rootFolder ? file.path.startsWith(rootPrefix) && !file.path.endsWith('.json') : !file.path.endsWith('.json')))\n\n if (filteredFiles.length === 0) {\n return null // No files match the root folder\n }\n\n const root: DirectoryTree = {\n name: rootFolder || '',\n path: rootFolder || '',\n children: [],\n }\n\n filteredFiles.forEach((file) => {\n const path = file.path.slice(rootFolder.length)\n const parts = path.split('/')\n let currentLevel: DirectoryTree[] = root.children\n let currentPath = rootFolder\n\n parts.forEach((part, index) => {\n if (index !== 0) {\n currentPath += `/${part}`\n } else {\n currentPath += `${part}`\n }\n\n let existingNode = currentLevel.find((node) => node.name === part)\n\n if (!existingNode) {\n if (index === parts.length - 1) {\n // If it's the last part, it's a file\n existingNode = {\n name: part,\n file,\n path: currentPath,\n } as DirectoryTree\n } else {\n // Otherwise, it's a folder\n existingNode = {\n name: part,\n path: currentPath,\n children: [],\n } as DirectoryTree\n }\n currentLevel.push(existingNode)\n }\n\n // Move to the next level if it's a folder\n if (!existingNode.file) {\n currentLevel = existingNode.children\n }\n })\n })\n\n return root\n}\n","import { join } from 'node:path'\nimport type { FileMetaBase } from './FileManager.ts'\nimport type { KubbFile } from './fs/index.ts'\nimport { getRelativePath } from './fs/index.ts'\nimport type { Logger } from './logger.ts'\nimport { TreeNode } from './utils/TreeNode.ts'\n\ntype BarrelManagerOptions = {\n logger?: Logger\n}\n\nexport class BarrelManager {\n #options: BarrelManagerOptions\n\n constructor(options: BarrelManagerOptions = {}) {\n this.#options = options\n\n return this\n }\n\n getFiles({ files: generatedFiles, root, meta }: { files: KubbFile.File[]; root?: string; meta?: FileMetaBase | undefined }): Array<KubbFile.File> {\n const { logger } = this.#options\n\n const cachedFiles = new Map<KubbFile.Path, KubbFile.File>()\n\n logger?.emit('debug', { date: new Date(), logs: [`Start barrel generation for pluginKey ${meta?.pluginKey?.join('.')} and root '${root}'`] })\n\n TreeNode.build(generatedFiles, root)?.forEach((treeNode) => {\n if (!treeNode || !treeNode.children || !treeNode.parent?.data.path) {\n return undefined\n }\n\n const barrelFile: KubbFile.File = {\n path: join(treeNode.parent?.data.path, 'index.ts') as KubbFile.Path,\n baseName: 'index.ts',\n exports: [],\n sources: [],\n }\n const previousBarrelFile = cachedFiles.get(barrelFile.path)\n const leaves = treeNode.leaves\n\n leaves.forEach((item) => {\n if (!item.data.name) {\n return undefined\n }\n\n const sources = item.data.file?.sources || []\n\n if (!sources.some((source) => source.isIndexable)) {\n logger?.emit(\n 'warning',\n `No isIndexable source found(source should have a name and isIndexable):\\nFile: ${JSON.stringify(item.data.file, undefined, 2)}`,\n )\n }\n\n sources.forEach((source) => {\n if (!item.data.file?.path || !source.isIndexable || !source.name) {\n return undefined\n }\n const alreadyContainInPreviousBarrelFile = previousBarrelFile?.sources.some(\n (item) => item.name === source.name && item.isTypeOnly === source.isTypeOnly,\n )\n\n if (alreadyContainInPreviousBarrelFile) {\n return undefined\n }\n\n if (!barrelFile.exports) {\n barrelFile.exports = []\n }\n\n // true when we have a subdirectory that also contains barrel files\n const isSubExport = !!treeNode.parent?.data.path?.split?.('/')?.length\n\n if (isSubExport) {\n barrelFile.exports.push({\n name: [source.name],\n path: getRelativePath(treeNode.parent?.data.path, item.data.path),\n isTypeOnly: source.isTypeOnly,\n })\n } else {\n barrelFile.exports.push({\n name: [source.name],\n path: `./${item.data.file.baseName}`,\n isTypeOnly: source.isTypeOnly,\n })\n }\n\n barrelFile.sources.push({\n name: source.name,\n isTypeOnly: source.isTypeOnly,\n //TODO use parser to generate import\n value: '',\n isExportable: false,\n isIndexable: false,\n })\n })\n })\n\n logger?.emit('debug', {\n date: new Date(),\n logs: [\n `Generating barrelFile '${getRelativePath(root, barrelFile.path)}' for '${getRelativePath(root, treeNode.data?.path)}' with ${barrelFile.sources.length} indexable exports: '${barrelFile.sources?.map((source) => source.name).join(', ')}'`,\n ],\n })\n\n logger?.emit('debug', {\n date: new Date(),\n logs: [\n `Generated barrelFile '${getRelativePath(root, barrelFile.path)}' for '${getRelativePath(root, treeNode.data?.path)}' with exports: '${cachedFiles\n .get(barrelFile.path)\n ?.sources?.map((source) => source.name)\n .join(', ')}'`,\n ],\n })\n\n if (previousBarrelFile) {\n previousBarrelFile.sources.push(...barrelFile.sources)\n previousBarrelFile.exports?.push(...(barrelFile.exports || []))\n } else {\n cachedFiles.set(barrelFile.path, barrelFile)\n }\n })\n\n return [...cachedFiles.values()]\n }\n}\n","import { extname, join, relative } from 'node:path'\n\nimport { orderBy } from 'natural-orderby'\nimport PQueue from 'p-queue'\nimport { isDeepEqual, uniqueBy } from 'remeda'\nimport { BarrelManager } from './BarrelManager.ts'\n\nimport type { KubbFile } from './fs/index.ts'\nimport { read, trimExtName, write } from './fs/index.ts'\nimport type { ResolvedFile } from './fs/types.ts'\nimport type { Logger } from './logger.ts'\nimport type { BarrelType, Config, Plugin } from './types.ts'\nimport { createFile, getFileParser } from './utils'\nimport { buildDirectoryTree, type DirectoryTree, TreeNode } from './utils/TreeNode.ts'\nimport type { GreaterThan } from './utils/types.ts'\n\nexport type FileMetaBase = {\n pluginKey?: Plugin['key']\n}\n\ntype AddResult<T extends Array<KubbFile.File>> = Promise<Awaited<GreaterThan<T['length'], 1> extends true ? Promise<ResolvedFile[]> : Promise<ResolvedFile>>>\n\ntype AddIndexesProps = {\n type: BarrelType | false | undefined\n /**\n * Root based on root and output.path specified in the config\n */\n root: string\n files: KubbFile.File[]\n /**\n * Output for plugin\n */\n output: {\n path: string\n }\n group?: {\n output: string\n exportAs: string\n }\n logger?: Logger\n\n meta?: FileMetaBase\n}\n\nexport class FileManager {\n #filesByPath: Map<KubbFile.Path, KubbFile.ResolvedFile> = new Map()\n constructor() {\n return this\n }\n\n get files(): Array<KubbFile.ResolvedFile> {\n return [...this.#filesByPath.values()]\n }\n\n get orderedFiles(): Array<KubbFile.ResolvedFile> {\n return orderBy(\n [...this.#filesByPath.values()],\n [\n (v) => v?.meta && 'pluginKey' in v.meta && !v.meta.pluginKey,\n (v) => v.path.length,\n (v) => trimExtName(v.path).endsWith('index'),\n (v) => trimExtName(v.baseName),\n (v) => v.path.split('.').pop(),\n ],\n )\n }\n\n get groupedFiles(): DirectoryTree | null {\n return buildDirectoryTree([...this.#filesByPath.values()])\n }\n\n get treeNode(): TreeNode | null {\n return TreeNode.build([...this.#filesByPath.values()])\n }\n\n async add<T extends Array<KubbFile.File> = Array<KubbFile.File>>(...files: T): AddResult<T> {\n const promises = 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: KubbFile.File): Promise<ResolvedFile> {\n const resolvedFile = createFile(file)\n\n this.#filesByPath.set(resolvedFile.path, resolvedFile)\n\n return resolvedFile\n }\n\n clear() {\n this.#filesByPath.clear()\n }\n\n async #addOrAppend(file: KubbFile.File): Promise<ResolvedFile> {\n const previousFile = this.#filesByPath.get(file.path)\n\n if (previousFile) {\n this.#filesByPath.delete(previousFile.path)\n\n return this.#add(mergeFile(previousFile, file))\n }\n return this.#add(file)\n }\n\n getCacheById(id: string): KubbFile.File | undefined {\n return [...this.#filesByPath.values()].find((file) => file.id === id)\n }\n\n getByPath(path: KubbFile.Path): KubbFile.ResolvedFile | undefined {\n return this.#filesByPath.get(path)\n }\n\n deleteByPath(path: KubbFile.Path): void {\n const cacheItem = this.getByPath(path)\n if (!cacheItem) {\n return\n }\n\n this.#filesByPath.delete(path)\n }\n\n async getBarrelFiles({ type, files, meta = {}, root, output, logger }: AddIndexesProps): Promise<KubbFile.File[]> {\n if (!type || type === 'propagate') {\n return []\n }\n\n const barrelManager = new BarrelManager({ logger })\n\n const pathToBuildFrom = join(root, output.path)\n\n if (trimExtName(pathToBuildFrom).endsWith('index')) {\n logger?.emit('warning', 'Output has the same fileName as the barrelFiles, please disable barrel generation')\n\n return []\n }\n\n const barrelFiles = barrelManager.getFiles({ files, root: pathToBuildFrom, meta })\n\n if (type === 'all') {\n return barrelFiles.map((file) => {\n return {\n ...file,\n exports: file.exports?.map((exportItem) => {\n return {\n ...exportItem,\n name: undefined,\n }\n }),\n }\n })\n }\n\n return barrelFiles.map((indexFile) => {\n return {\n ...indexFile,\n meta,\n }\n })\n }\n\n async write(...params: Parameters<typeof write>): ReturnType<typeof write> {\n return write(...params)\n }\n\n async read(...params: Parameters<typeof read>): ReturnType<typeof read> {\n return read(...params)\n }\n\n // statics\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\ntype GetSourceOptions = {\n extname?: KubbFile.Extname\n logger?: Logger\n}\n\nexport async function getSource<TMeta extends FileMetaBase = FileMetaBase>(\n file: ResolvedFile<TMeta>,\n { logger, extname }: GetSourceOptions = {},\n): Promise<string> {\n const parser = await getFileParser(file.extname)\n const source = await parser.print(file, { logger, extname })\n\n return parser.format(source).catch((err) => {\n console.warn(err)\n return source\n })\n}\n\nfunction mergeFile<TMeta extends FileMetaBase = FileMetaBase>(a: KubbFile.File<TMeta>, b: KubbFile.File<TMeta>): KubbFile.File<TMeta> {\n return {\n ...a,\n sources: [...(a.sources || []), ...(b.sources || [])],\n imports: [...(a.imports || []), ...(b.imports || [])],\n exports: [...(a.exports || []), ...(b.exports || [])],\n }\n}\n\nexport function combineSources(sources: Array<KubbFile.Source>): Array<KubbFile.Source> {\n return uniqueBy(sources, (obj) => [obj.name, obj.isExportable, obj.isTypeOnly] as const)\n}\n\nexport function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {\n return orderBy(exports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).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 // we already have an item that was unique enough or name field is empty or prev asAlias is set but current has no changes\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 // merge all names when prev and current both have the same isTypeOnly set\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\nexport function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {\n return orderBy(imports, [\n (v) => !!Array.isArray(v.name),\n (v) => !v.isTypeOnly,\n (v) => v.path,\n (v) => !!v.name,\n (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),\n ]).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) => {\n return name && !!source.includes(name)\n }\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 // merge all names and check if the importName is being used in the generated source and if not filter those imports out\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 // already unique enough or name is empty\n if (uniquePrev || (Array.isArray(name) && !name.length)) {\n return prev\n }\n\n // new item, append name\n if (!prevByPath) {\n return [\n ...prev,\n {\n ...curr,\n name,\n },\n ]\n }\n\n // merge all names when prev and current both have the same isTypeOnly set\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 // no import was found in the source, ignore import\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\ntype WriteFilesProps = {\n root: Config['root']\n files: Array<KubbFile.ResolvedFile>\n extension?: Record<KubbFile.Extname, KubbFile.Extname | ''>\n logger?: Logger\n dryRun?: boolean\n}\n/**\n * Global queue\n */\nconst queue = new PQueue({ concurrency: 100 })\n\nexport async function processFiles({ dryRun, root, extension, logger, files }: WriteFilesProps) {\n const orderedFiles = orderBy(files, [\n (v) => v?.meta && 'pluginKey' in v.meta && !v.meta.pluginKey,\n (v) => v.path.length,\n (v) => trimExtName(v.path).endsWith('index'),\n ])\n\n logger?.emit('debug', {\n date: new Date(),\n logs: [JSON.stringify({ files: orderedFiles }, null, 2)],\n fileName: 'kubb-files.log',\n })\n\n if (!dryRun) {\n const size = orderedFiles.length\n\n logger?.emit('progress_start', { id: 'files', size, message: 'Writing files ...' })\n const promises = orderedFiles.map(async (file) => {\n await queue.add(async () => {\n const message = file ? `Writing ${relative(root, file.path)}` : ''\n const extname = extension?.[file.extname] || undefined\n\n const source = await getSource(file, { logger, extname })\n\n await write(file.path, source, { sanity: false })\n\n logger?.emit('progressed', { id: 'files', message })\n })\n })\n\n await Promise.all(promises)\n\n logger?.emit('progress_stop', { id: 'files' })\n }\n\n return files\n}\n","import path from 'node:path'\nimport type { KubbFile } from '../fs/index.ts'\n\nimport { getRelativePath } from '../fs/index.ts'\nimport hash from 'object-hash'\nimport { combineExports, combineImports, combineSources } from '../FileManager.ts'\nimport type { Logger } from '../logger.ts'\nimport type { Config } from '../types.ts'\n\n/**\n * Generate a default banner for files created by Kubb\n * @returns A string with the default banner\n */\nexport function getDefaultBanner({ title, description, version, config }: { title?: string; description?: string; version?: string; config: Config }): string {\n try {\n let source = ''\n if ('path' in config.input) {\n source = path.basename(config.input.path)\n } else if ('data' in config.input) {\n source = 'text content'\n }\n\n let banner = '/**\\n* Generated by Kubb (https://kubb.dev/).\\n* Do not edit manually.\\n'\n\n if (config.output.defaultBanner === 'simple') {\n banner += '*/\\n'\n return banner\n }\n\n if (source) {\n banner += `* Source: ${source}\\n`\n }\n\n if (title) {\n banner += `* Title: ${title}\\n`\n }\n\n if (description) {\n const formattedDescription = description.replace(/\\n/gm, '\\n* ')\n banner += `* Description: ${formattedDescription}\\n`\n }\n\n if (version) {\n banner += `* OpenAPI spec version: ${version}\\n`\n }\n\n banner += '*/\\n'\n return banner\n } catch (_error) {\n // If there's any error in parsing the Oas data, return a simpler banner\n return '/**\\n* Generated by Kubb (https://kubb.dev/).\\n* Do not edit manually.\\n*/'\n }\n}\n\n/**\n * Helper to create a file with name and id set\n */\nexport function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta> {\n const extname = path.extname(file.baseName) as KubbFile.Extname\n\n if (!extname) {\n throw new Error(`No extname found for ${file.baseName}`)\n }\n\n const source = file.sources.map((item) => item.value).join('\\n\\n')\n const exports = file.exports ? combineExports(file.exports) : []\n const imports = file.imports && source ? combineImports(file.imports, exports, source) : []\n const sources = file.sources ? combineSources(file.sources) : []\n\n return {\n ...file,\n id: hash({ path: file.path }),\n name: trimExtName(file.baseName),\n extname,\n imports: imports.map((item) => createFileImport(item)),\n exports: exports.map((item) => createFileExport(item)),\n sources: sources.map((item) => createFileSource(item)),\n meta: file.meta || ({} as TMeta),\n }\n}\n\n/**\n * Helper to create a fileImport with extname set\n */\nfunction createFileSource(source: KubbFile.Source): KubbFile.Source {\n return source\n}\n\n/**\n * Helper to create a fileImport with extname set\n */\nexport function createFileImport(imp: KubbFile.Import): KubbFile.ResolvedImport {\n return {\n ...imp,\n }\n}\n\n/**\n * Helper to create a fileExport with extname set\n */\nexport function createFileExport(exp: KubbFile.Export): KubbFile.ResolvedExport {\n return {\n ...exp,\n }\n}\n\nexport type ParserModule<TMeta extends object = object> = {\n format: (source: string) => Promise<string>\n /**\n * Convert a file to string\n */\n print: (file: KubbFile.ResolvedFile<TMeta>, options: PrintOptions) => Promise<string>\n}\n\nexport function createFileParser<TMeta extends object = object>(parser: ParserModule<TMeta>): ParserModule<TMeta> {\n return parser\n}\n\ntype PrintOptions = {\n extname?: KubbFile.Extname\n logger?: Logger\n}\n\nconst typeScriptParser = createFileParser({\n async format(source) {\n const module = await import('@kubb/parser-ts')\n\n return module.format(source)\n },\n async print(file, options = { extname: '.ts' }) {\n const module = await import('@kubb/parser-ts')\n\n const source = file.sources.map((item) => item.value).join('\\n\\n')\n\n const importNodes = file.imports\n .map((item) => {\n const importPath = item.root ? getRelativePath(item.root, item.path) : item.path\n const hasExtname = !!path.extname(importPath)\n\n return module.factory.createImportDeclaration({\n name: item.name,\n path: options.extname && hasExtname ? `${trimExtName(importPath)}${options.extname}` : item.root ? trimExtName(importPath) : importPath,\n isTypeOnly: item.isTypeOnly,\n })\n })\n .filter(Boolean)\n\n const exportNodes = file.exports\n .map((item) => {\n const exportPath = item.path\n\n const hasExtname = !!path.extname(exportPath)\n\n return module.factory.createExportDeclaration({\n name: item.name,\n path: options.extname && hasExtname ? `${trimExtName(item.path)}${options.extname}` : trimExtName(item.path),\n isTypeOnly: item.isTypeOnly,\n asAlias: item.asAlias,\n })\n })\n .filter(Boolean)\n\n return [file.banner, module.print([...importNodes, ...exportNodes]), source, file.footer].join('\\n')\n },\n})\n\nconst tsxParser = createFileParser({\n async format(source) {\n const module = await import('@kubb/parser-ts')\n //4 = tsx\n return module.format(source)\n },\n async print(file, options = { extname: '.tsx' }) {\n return typeScriptParser.print(file, options)\n },\n})\n\nconst defaultParser = createFileParser({\n async format(source) {\n return source\n },\n async print(file) {\n return file.sources.map((item) => item.value).join('\\n\\n')\n },\n})\n\nconst parsers: Record<KubbFile.Extname, ParserModule<any>> = {\n '.ts': typeScriptParser,\n '.js': typeScriptParser,\n '.jsx': tsxParser,\n '.tsx': tsxParser,\n '.json': defaultParser,\n}\n\nexport async function getFileParser<TMeta extends object = object>(extname: KubbFile.Extname | undefined): Promise<ParserModule<TMeta>> {\n if (!extname) {\n return defaultParser\n }\n\n const parser = parsers[extname]\n\n if (!parser) {\n console.warn(`[parser] No parser found for ${extname}, default parser will be used`)\n }\n\n return parser || defaultParser\n}\n\nfunction trimExtName(text: string): string {\n const extname = text.split('.').pop()\n\n return text.replace(`.${extname}`, '')\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkZZEKLURQ_cjs = require('./chunk-ZZEKLURQ.cjs');
4
- var chunkDYN65P3T_cjs = require('./chunk-DYN65P3T.cjs');
5
- var chunkH7GP5BQJ_cjs = require('./chunk-H7GP5BQJ.cjs');
3
+ var chunkPMVWFTDC_cjs = require('./chunk-PMVWFTDC.cjs');
4
+ var chunkZD6YJ7FU_cjs = require('./chunk-ZD6YJ7FU.cjs');
5
+ var chunkABJWI4LI_cjs = require('./chunk-ABJWI4LI.cjs');
6
6
  var path = require('path');
7
7
  var hash = require('object-hash');
8
8
  var remeda = require('remeda');
@@ -13,9 +13,9 @@ var path__default = /*#__PURE__*/_interopDefault(path);
13
13
  var hash__default = /*#__PURE__*/_interopDefault(hash);
14
14
 
15
15
  // ../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js
16
- var require_eventemitter3 = chunkH7GP5BQJ_cjs.__commonJS({
16
+ var require_eventemitter3 = chunkABJWI4LI_cjs.__commonJS({
17
17
  "../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js"(exports, module) {
18
- chunkH7GP5BQJ_cjs.init_cjs_shims();
18
+ chunkABJWI4LI_cjs.init_cjs_shims();
19
19
  var has = Object.prototype.hasOwnProperty;
20
20
  var prefix = "~";
21
21
  function Events() {
@@ -175,10 +175,10 @@ var require_eventemitter3 = chunkH7GP5BQJ_cjs.__commonJS({
175
175
  });
176
176
 
177
177
  // src/utils/index.ts
178
- chunkH7GP5BQJ_cjs.init_cjs_shims();
178
+ chunkABJWI4LI_cjs.init_cjs_shims();
179
179
 
180
180
  // src/utils/FunctionParams.ts
181
- chunkH7GP5BQJ_cjs.init_cjs_shims();
181
+ chunkABJWI4LI_cjs.init_cjs_shims();
182
182
  var FunctionParams = class _FunctionParams {
183
183
  #items = [];
184
184
  constructor() {
@@ -199,7 +199,7 @@ var FunctionParams = class _FunctionParams {
199
199
  return this;
200
200
  }
201
201
  static #orderItems(items) {
202
- return chunkZZEKLURQ_cjs.orderBy(
202
+ return chunkPMVWFTDC_cjs.orderBy(
203
203
  items.filter(Boolean),
204
204
  [
205
205
  (v) => {
@@ -227,7 +227,7 @@ var FunctionParams = class _FunctionParams {
227
227
  acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
228
228
  return acc;
229
229
  }
230
- const parameterName = name.startsWith("{") ? name : chunkZZEKLURQ_cjs.camelCase(name);
230
+ const parameterName = name.startsWith("{") ? name : chunkPMVWFTDC_cjs.camelCase(name);
231
231
  if (type) {
232
232
  if (required) {
233
233
  acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
@@ -282,7 +282,7 @@ var FunctionParams = class _FunctionParams {
282
282
  };
283
283
 
284
284
  // src/utils/promise.ts
285
- chunkH7GP5BQJ_cjs.init_cjs_shims();
285
+ chunkABJWI4LI_cjs.init_cjs_shims();
286
286
  function isPromise(result) {
287
287
  return !!result && typeof result?.then === "function";
288
288
  }
@@ -294,7 +294,7 @@ function isPromiseRejectedResult(result) {
294
294
  }
295
295
 
296
296
  // src/utils/renderTemplate.ts
297
- chunkH7GP5BQJ_cjs.init_cjs_shims();
297
+ chunkABJWI4LI_cjs.init_cjs_shims();
298
298
  function renderTemplate(template, data = void 0) {
299
299
  if (!data || !Object.keys(data).length) {
300
300
  return template.replace(/{{(.*?)}}/g, "");
@@ -319,7 +319,7 @@ function renderTemplate(template, data = void 0) {
319
319
  }
320
320
 
321
321
  // src/utils/timeout.ts
322
- chunkH7GP5BQJ_cjs.init_cjs_shims();
322
+ chunkABJWI4LI_cjs.init_cjs_shims();
323
323
  async function timeout(ms) {
324
324
  return new Promise((resolve) => {
325
325
  setTimeout(() => {
@@ -329,7 +329,7 @@ async function timeout(ms) {
329
329
  }
330
330
 
331
331
  // src/utils/uniqueName.ts
332
- chunkH7GP5BQJ_cjs.init_cjs_shims();
332
+ chunkABJWI4LI_cjs.init_cjs_shims();
333
333
  function getUniqueName(originalName, data) {
334
334
  let used = data[originalName] || 0;
335
335
  if (used) {
@@ -350,7 +350,7 @@ function setUniqueName(originalName, data) {
350
350
  }
351
351
 
352
352
  // src/utils/URLPath.ts
353
- chunkH7GP5BQJ_cjs.init_cjs_shims();
353
+ chunkABJWI4LI_cjs.init_cjs_shims();
354
354
  var URLPath = class {
355
355
  path;
356
356
  #options;
@@ -421,9 +421,9 @@ var URLPath = class {
421
421
  if (found) {
422
422
  newPath = found.reduce((prev, path2) => {
423
423
  const pathWithoutBrackets = path2.replaceAll("{", "").replaceAll("}", "");
424
- let param = chunkZZEKLURQ_cjs.isValidVarName(pathWithoutBrackets) ? pathWithoutBrackets : chunkZZEKLURQ_cjs.camelCase(pathWithoutBrackets);
424
+ let param = chunkPMVWFTDC_cjs.isValidVarName(pathWithoutBrackets) ? pathWithoutBrackets : chunkPMVWFTDC_cjs.camelCase(pathWithoutBrackets);
425
425
  if (this.#options.casing === "camelcase") {
426
- param = chunkZZEKLURQ_cjs.camelCase(param);
426
+ param = chunkPMVWFTDC_cjs.camelCase(param);
427
427
  }
428
428
  return prev.replace(path2, `\${${replacer ? replacer(param) : param}}`);
429
429
  }, this.path);
@@ -439,9 +439,9 @@ var URLPath = class {
439
439
  const params = {};
440
440
  found.forEach((item) => {
441
441
  item = item.replaceAll("{", "").replaceAll("}", "");
442
- let param = chunkZZEKLURQ_cjs.isValidVarName(item) ? item : chunkZZEKLURQ_cjs.camelCase(item);
442
+ let param = chunkPMVWFTDC_cjs.isValidVarName(item) ? item : chunkPMVWFTDC_cjs.camelCase(item);
443
443
  if (this.#options.casing === "camelcase") {
444
- param = chunkZZEKLURQ_cjs.camelCase(param);
444
+ param = chunkPMVWFTDC_cjs.camelCase(param);
445
445
  }
446
446
  const key = replacer ? replacer(param) : param;
447
447
  params[key] = key;
@@ -458,20 +458,20 @@ var URLPath = class {
458
458
  };
459
459
 
460
460
  // src/utils/parser.ts
461
- chunkH7GP5BQJ_cjs.init_cjs_shims();
461
+ chunkABJWI4LI_cjs.init_cjs_shims();
462
462
 
463
463
  // src/FileManager.ts
464
- chunkH7GP5BQJ_cjs.init_cjs_shims();
464
+ chunkABJWI4LI_cjs.init_cjs_shims();
465
465
 
466
466
  // ../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/index.js
467
- chunkH7GP5BQJ_cjs.init_cjs_shims();
467
+ chunkABJWI4LI_cjs.init_cjs_shims();
468
468
 
469
469
  // ../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs
470
- chunkH7GP5BQJ_cjs.init_cjs_shims();
471
- var import_index = chunkH7GP5BQJ_cjs.__toESM(require_eventemitter3(), 1);
470
+ chunkABJWI4LI_cjs.init_cjs_shims();
471
+ var import_index = chunkABJWI4LI_cjs.__toESM(require_eventemitter3(), 1);
472
472
 
473
473
  // ../../node_modules/.pnpm/p-timeout@6.1.3/node_modules/p-timeout/index.js
474
- chunkH7GP5BQJ_cjs.init_cjs_shims();
474
+ chunkABJWI4LI_cjs.init_cjs_shims();
475
475
  var TimeoutError = class extends Error {
476
476
  constructor(message) {
477
477
  super(message);
@@ -560,10 +560,10 @@ function pTimeout(promise, options) {
560
560
  }
561
561
 
562
562
  // ../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/priority-queue.js
563
- chunkH7GP5BQJ_cjs.init_cjs_shims();
563
+ chunkABJWI4LI_cjs.init_cjs_shims();
564
564
 
565
565
  // ../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/lower-bound.js
566
- chunkH7GP5BQJ_cjs.init_cjs_shims();
566
+ chunkABJWI4LI_cjs.init_cjs_shims();
567
567
  function lowerBound(array, value, comparator) {
568
568
  let first = 0;
569
569
  let count = array.length;
@@ -956,10 +956,10 @@ var PQueue = class extends import_index.default {
956
956
  };
957
957
 
958
958
  // src/BarrelManager.ts
959
- chunkH7GP5BQJ_cjs.init_cjs_shims();
959
+ chunkABJWI4LI_cjs.init_cjs_shims();
960
960
 
961
961
  // src/utils/TreeNode.ts
962
- chunkH7GP5BQJ_cjs.init_cjs_shims();
962
+ chunkABJWI4LI_cjs.init_cjs_shims();
963
963
  var TreeNode = class _TreeNode {
964
964
  data;
965
965
  parent;
@@ -1154,7 +1154,9 @@ File: ${JSON.stringify(item.data.file, void 0, 2)}`
1154
1154
  if (!item.data.file?.path || !source.isIndexable || !source.name) {
1155
1155
  return void 0;
1156
1156
  }
1157
- const alreadyContainInPreviousBarrelFile = previousBarrelFile?.sources.some((item2) => item2.name === source.name);
1157
+ const alreadyContainInPreviousBarrelFile = previousBarrelFile?.sources.some(
1158
+ (item2) => item2.name === source.name && item2.isTypeOnly === source.isTypeOnly
1159
+ );
1158
1160
  if (alreadyContainInPreviousBarrelFile) {
1159
1161
  return void 0;
1160
1162
  }
@@ -1165,7 +1167,7 @@ File: ${JSON.stringify(item.data.file, void 0, 2)}`
1165
1167
  if (isSubExport) {
1166
1168
  barrelFile.exports.push({
1167
1169
  name: [source.name],
1168
- path: chunkDYN65P3T_cjs.getRelativePath(treeNode.parent?.data.path, item.data.path),
1170
+ path: chunkZD6YJ7FU_cjs.getRelativePath(treeNode.parent?.data.path, item.data.path),
1169
1171
  isTypeOnly: source.isTypeOnly
1170
1172
  });
1171
1173
  } else {
@@ -1188,13 +1190,13 @@ File: ${JSON.stringify(item.data.file, void 0, 2)}`
1188
1190
  logger?.emit("debug", {
1189
1191
  date: /* @__PURE__ */ new Date(),
1190
1192
  logs: [
1191
- `Generating barrelFile '${chunkDYN65P3T_cjs.getRelativePath(root, barrelFile.path)}' for '${chunkDYN65P3T_cjs.getRelativePath(root, treeNode.data?.path)}' with ${barrelFile.sources.length} indexable exports: '${barrelFile.sources?.map((source) => source.name).join(", ")}'`
1193
+ `Generating barrelFile '${chunkZD6YJ7FU_cjs.getRelativePath(root, barrelFile.path)}' for '${chunkZD6YJ7FU_cjs.getRelativePath(root, treeNode.data?.path)}' with ${barrelFile.sources.length} indexable exports: '${barrelFile.sources?.map((source) => source.name).join(", ")}'`
1192
1194
  ]
1193
1195
  });
1194
1196
  logger?.emit("debug", {
1195
1197
  date: /* @__PURE__ */ new Date(),
1196
1198
  logs: [
1197
- `Generated barrelFile '${chunkDYN65P3T_cjs.getRelativePath(root, barrelFile.path)}' for '${chunkDYN65P3T_cjs.getRelativePath(root, treeNode.data?.path)}' with exports: '${cachedFiles.get(barrelFile.path)?.sources?.map((source) => source.name).join(", ")}'`
1199
+ `Generated barrelFile '${chunkZD6YJ7FU_cjs.getRelativePath(root, barrelFile.path)}' for '${chunkZD6YJ7FU_cjs.getRelativePath(root, treeNode.data?.path)}' with exports: '${cachedFiles.get(barrelFile.path)?.sources?.map((source) => source.name).join(", ")}'`
1198
1200
  ]
1199
1201
  });
1200
1202
  if (previousBarrelFile) {
@@ -1218,13 +1220,13 @@ var FileManager = class {
1218
1220
  return [...this.#filesByPath.values()];
1219
1221
  }
1220
1222
  get orderedFiles() {
1221
- return chunkZZEKLURQ_cjs.orderBy(
1223
+ return chunkPMVWFTDC_cjs.orderBy(
1222
1224
  [...this.#filesByPath.values()],
1223
1225
  [
1224
1226
  (v) => v?.meta && "pluginKey" in v.meta && !v.meta.pluginKey,
1225
1227
  (v) => v.path.length,
1226
- (v) => chunkDYN65P3T_cjs.trimExtName(v.path).endsWith("index"),
1227
- (v) => chunkDYN65P3T_cjs.trimExtName(v.baseName),
1228
+ (v) => chunkZD6YJ7FU_cjs.trimExtName(v.path).endsWith("index"),
1229
+ (v) => chunkZD6YJ7FU_cjs.trimExtName(v.baseName),
1228
1230
  (v) => v.path.split(".").pop()
1229
1231
  ]
1230
1232
  );
@@ -1283,7 +1285,7 @@ var FileManager = class {
1283
1285
  }
1284
1286
  const barrelManager = new BarrelManager({ logger });
1285
1287
  const pathToBuildFrom = path.join(root, output.path);
1286
- if (chunkDYN65P3T_cjs.trimExtName(pathToBuildFrom).endsWith("index")) {
1288
+ if (chunkZD6YJ7FU_cjs.trimExtName(pathToBuildFrom).endsWith("index")) {
1287
1289
  logger?.emit("warning", "Output has the same fileName as the barrelFiles, please disable barrel generation");
1288
1290
  return [];
1289
1291
  }
@@ -1309,10 +1311,10 @@ var FileManager = class {
1309
1311
  });
1310
1312
  }
1311
1313
  async write(...params) {
1312
- return chunkDYN65P3T_cjs.write(...params);
1314
+ return chunkZD6YJ7FU_cjs.write(...params);
1313
1315
  }
1314
1316
  async read(...params) {
1315
- return chunkDYN65P3T_cjs.read(...params);
1317
+ return chunkZD6YJ7FU_cjs.read(...params);
1316
1318
  }
1317
1319
  // statics
1318
1320
  static getMode(path2) {
@@ -1342,12 +1344,12 @@ function combineSources(sources) {
1342
1344
  return remeda.uniqueBy(sources, (obj) => [obj.name, obj.isExportable, obj.isTypeOnly]);
1343
1345
  }
1344
1346
  function combineExports(exports) {
1345
- return chunkZZEKLURQ_cjs.orderBy(exports, [
1347
+ return chunkPMVWFTDC_cjs.orderBy(exports, [
1346
1348
  (v) => !!Array.isArray(v.name),
1347
1349
  (v) => !v.isTypeOnly,
1348
1350
  (v) => v.path,
1349
1351
  (v) => !!v.name,
1350
- (v) => Array.isArray(v.name) ? chunkZZEKLURQ_cjs.orderBy(v.name) : v.name
1352
+ (v) => Array.isArray(v.name) ? chunkPMVWFTDC_cjs.orderBy(v.name) : v.name
1351
1353
  ]).reduce(
1352
1354
  (prev, curr) => {
1353
1355
  const name = curr.name;
@@ -1381,12 +1383,12 @@ function combineExports(exports) {
1381
1383
  );
1382
1384
  }
1383
1385
  function combineImports(imports, exports, source) {
1384
- return chunkZZEKLURQ_cjs.orderBy(imports, [
1386
+ return chunkPMVWFTDC_cjs.orderBy(imports, [
1385
1387
  (v) => !!Array.isArray(v.name),
1386
1388
  (v) => !v.isTypeOnly,
1387
1389
  (v) => v.path,
1388
1390
  (v) => !!v.name,
1389
- (v) => Array.isArray(v.name) ? chunkZZEKLURQ_cjs.orderBy(v.name) : v.name
1391
+ (v) => Array.isArray(v.name) ? chunkPMVWFTDC_cjs.orderBy(v.name) : v.name
1390
1392
  ]).reduce(
1391
1393
  (prev, curr) => {
1392
1394
  let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name;
@@ -1437,10 +1439,10 @@ function combineImports(imports, exports, source) {
1437
1439
  }
1438
1440
  var queue = new PQueue({ concurrency: 100 });
1439
1441
  async function processFiles({ dryRun, root, extension, logger, files }) {
1440
- const orderedFiles = chunkZZEKLURQ_cjs.orderBy(files, [
1442
+ const orderedFiles = chunkPMVWFTDC_cjs.orderBy(files, [
1441
1443
  (v) => v?.meta && "pluginKey" in v.meta && !v.meta.pluginKey,
1442
1444
  (v) => v.path.length,
1443
- (v) => chunkDYN65P3T_cjs.trimExtName(v.path).endsWith("index")
1445
+ (v) => chunkZD6YJ7FU_cjs.trimExtName(v.path).endsWith("index")
1444
1446
  ]);
1445
1447
  logger?.emit("debug", {
1446
1448
  date: /* @__PURE__ */ new Date(),
@@ -1455,7 +1457,7 @@ async function processFiles({ dryRun, root, extension, logger, files }) {
1455
1457
  const message = file ? `Writing ${path.relative(root, file.path)}` : "";
1456
1458
  const extname2 = extension?.[file.extname] || void 0;
1457
1459
  const source = await getSource(file, { logger, extname: extname2 });
1458
- await chunkDYN65P3T_cjs.write(file.path, source, { sanity: false });
1460
+ await chunkZD6YJ7FU_cjs.write(file.path, source, { sanity: false });
1459
1461
  logger?.emit("progressed", { id: "files", message });
1460
1462
  });
1461
1463
  });
@@ -1547,7 +1549,7 @@ var typeScriptParser = createFileParser({
1547
1549
  const module = await import('@kubb/parser-ts');
1548
1550
  const source = file.sources.map((item) => item.value).join("\n\n");
1549
1551
  const importNodes = file.imports.map((item) => {
1550
- const importPath = item.root ? chunkDYN65P3T_cjs.getRelativePath(item.root, item.path) : item.path;
1552
+ const importPath = item.root ? chunkZD6YJ7FU_cjs.getRelativePath(item.root, item.path) : item.path;
1551
1553
  const hasExtname = !!path__default.default.extname(importPath);
1552
1554
  return module.factory.createImportDeclaration({
1553
1555
  name: item.name,
@@ -1625,5 +1627,5 @@ exports.processFiles = processFiles;
1625
1627
  exports.renderTemplate = renderTemplate;
1626
1628
  exports.setUniqueName = setUniqueName;
1627
1629
  exports.timeout = timeout;
1628
- //# sourceMappingURL=chunk-4Y54TK73.cjs.map
1629
- //# sourceMappingURL=chunk-4Y54TK73.cjs.map
1630
+ //# sourceMappingURL=chunk-GZVOHBZS.cjs.map
1631
+ //# sourceMappingURL=chunk-GZVOHBZS.cjs.map