@kubb/core 3.0.0-alpha.1 → 3.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/{FileManager-EVJig-LT.d.ts → FileManager-BbUCeEyv.d.cts} +108 -94
  2. package/dist/{FileManager-DSLZ6ps7.d.cts → FileManager-CpuFz6eH.d.ts} +108 -94
  3. package/dist/chunk-2EU7DMPM.js +96 -0
  4. package/dist/chunk-2EU7DMPM.js.map +1 -0
  5. package/dist/chunk-4X5FFJPJ.js +8 -13
  6. package/dist/chunk-4X5FFJPJ.js.map +1 -1
  7. package/dist/chunk-52WA2JF5.cjs +1536 -0
  8. package/dist/chunk-52WA2JF5.cjs.map +1 -0
  9. package/dist/chunk-ADFKVVPE.cjs +42 -0
  10. package/dist/chunk-ADFKVVPE.cjs.map +1 -0
  11. package/dist/{chunk-3OXCZ5DJ.js → chunk-E6CN2CZC.js} +63 -54
  12. package/dist/chunk-E6CN2CZC.js.map +1 -0
  13. package/dist/chunk-HBQM723K.js +1049 -0
  14. package/dist/chunk-HBQM723K.js.map +1 -0
  15. package/dist/{chunk-67C6RBGQ.cjs → chunk-HMCSWG5L.cjs} +25 -26
  16. package/dist/chunk-HMCSWG5L.cjs.map +1 -0
  17. package/dist/chunk-L6YLVCKM.js +894 -0
  18. package/dist/chunk-L6YLVCKM.js.map +1 -0
  19. package/dist/chunk-PJLUPV3P.cjs +1088 -0
  20. package/dist/chunk-PJLUPV3P.cjs.map +1 -0
  21. package/dist/chunk-TTDCUWK7.cjs +101 -0
  22. package/dist/chunk-TTDCUWK7.cjs.map +1 -0
  23. package/dist/{chunk-LM2YQC3T.cjs → chunk-YEVCYV36.cjs} +81 -51
  24. package/dist/chunk-YEVCYV36.cjs.map +1 -0
  25. package/dist/index.cjs +545 -610
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +6 -19
  28. package/dist/index.d.ts +6 -19
  29. package/dist/index.js +438 -522
  30. package/dist/index.js.map +1 -1
  31. package/dist/{logger-DChjnJMn.d.cts → logger-DvbHXjIO.d.cts} +29 -19
  32. package/dist/{logger-DChjnJMn.d.ts → logger-DvbHXjIO.d.ts} +29 -19
  33. package/dist/logger.cjs +25 -15
  34. package/dist/logger.cjs.map +1 -1
  35. package/dist/logger.d.cts +1 -2
  36. package/dist/logger.d.ts +1 -2
  37. package/dist/logger.js +3 -15
  38. package/dist/logger.js.map +1 -1
  39. package/dist/mocks.cjs +27 -26
  40. package/dist/mocks.cjs.map +1 -1
  41. package/dist/mocks.d.cts +6 -9
  42. package/dist/mocks.d.ts +6 -9
  43. package/dist/mocks.js +22 -24
  44. package/dist/mocks.js.map +1 -1
  45. package/dist/prompt-L5KFKY73.cjs +760 -0
  46. package/dist/prompt-L5KFKY73.cjs.map +1 -0
  47. package/dist/prompt-WQQUN22Z.js +749 -0
  48. package/dist/prompt-WQQUN22Z.js.map +1 -0
  49. package/dist/transformers.cjs +215 -49
  50. package/dist/transformers.cjs.map +1 -1
  51. package/dist/transformers.d.cts +1 -3
  52. package/dist/transformers.d.ts +1 -3
  53. package/dist/transformers.js +148 -35
  54. package/dist/transformers.js.map +1 -1
  55. package/dist/utils.cjs +65 -26
  56. package/dist/utils.cjs.map +1 -1
  57. package/dist/utils.d.cts +31 -3
  58. package/dist/utils.d.ts +31 -3
  59. package/dist/utils.js +3 -26
  60. package/dist/utils.js.map +1 -1
  61. package/package.json +10 -10
  62. package/src/BarrelManager.ts +93 -107
  63. package/src/{Generator.ts → BaseGenerator.ts} +1 -1
  64. package/src/FileManager.ts +198 -297
  65. package/src/PackageManager.ts +1 -1
  66. package/src/PluginManager.ts +152 -101
  67. package/src/__snapshots__/barrel.json +91 -0
  68. package/src/__snapshots__/grouped.json +114 -0
  69. package/src/__snapshots__/ordered.json +62 -0
  70. package/src/build.ts +86 -171
  71. package/src/errors.ts +0 -11
  72. package/src/index.ts +1 -2
  73. package/src/logger.ts +76 -34
  74. package/src/plugin.ts +3 -3
  75. package/src/transformers/index.ts +2 -3
  76. package/src/transformers/trim.ts +0 -4
  77. package/src/types.ts +35 -35
  78. package/src/utils/TreeNode.ts +132 -50
  79. package/src/utils/executeStrategies.ts +1 -1
  80. package/src/utils/index.ts +2 -1
  81. package/src/utils/parser.ts +157 -0
  82. package/dist/chunk-3OXCZ5DJ.js.map +0 -1
  83. package/dist/chunk-5JZNFPUP.js +0 -309
  84. package/dist/chunk-5JZNFPUP.js.map +0 -1
  85. package/dist/chunk-67C6RBGQ.cjs.map +0 -1
  86. package/dist/chunk-ADC5UNZ5.cjs +0 -1227
  87. package/dist/chunk-ADC5UNZ5.cjs.map +0 -1
  88. package/dist/chunk-HMLY7DHA.js +0 -16
  89. package/dist/chunk-HMLY7DHA.js.map +0 -1
  90. package/dist/chunk-JKZG2IJR.js +0 -283
  91. package/dist/chunk-JKZG2IJR.js.map +0 -1
  92. package/dist/chunk-LM2YQC3T.cjs.map +0 -1
  93. package/dist/chunk-PZT4CTBV.cjs +0 -299
  94. package/dist/chunk-PZT4CTBV.cjs.map +0 -1
  95. package/dist/chunk-SA2GZKXS.js +0 -596
  96. package/dist/chunk-SA2GZKXS.js.map +0 -1
  97. package/dist/chunk-XCPFG6DO.cjs +0 -66
  98. package/dist/chunk-XCPFG6DO.cjs.map +0 -1
  99. package/dist/chunk-YTSNYMHW.cjs +0 -320
  100. package/dist/chunk-YTSNYMHW.cjs.map +0 -1
  101. package/schema.json +0 -86
  102. package/src/utils/getParser.ts +0 -17
@@ -1,50 +1,163 @@
1
- import {
1
+ import { transformReservedWord } from './chunk-2EU7DMPM.js';
2
+ export { transformReservedWord } from './chunk-2EU7DMPM.js';
3
+ import { orderBy, camelCase, pascalCase, pathCase } from './chunk-4X5FFJPJ.js';
4
+ export { camelCase, orderBy, pascalCase, pathCase } from './chunk-4X5FFJPJ.js';
5
+ import { merge } from 'remeda';
6
+ export { merge } from 'remeda';
7
+
8
+ // src/transformers/combineCodes.ts
9
+ function combineCodes(codes) {
10
+ return codes.join("\n");
11
+ }
12
+
13
+ // src/transformers/createJSDocBlockText.ts
14
+ function createJSDocBlockText({ comments }) {
15
+ const filteredComments = comments.filter(Boolean);
16
+ if (!filteredComments.length) {
17
+ return "";
18
+ }
19
+ return `/**
20
+ * ${filteredComments.join("\n * ")}
21
+ */`;
22
+ }
23
+
24
+ // src/transformers/escape.ts
25
+ function escape(text) {
26
+ return text ? text.replaceAll("`", "\\`") : "";
27
+ }
28
+ function jsStringEscape(input) {
29
+ return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
30
+ switch (character) {
31
+ case '"':
32
+ case "'":
33
+ case "\\":
34
+ return `\\${character}`;
35
+ case "\n":
36
+ return "\\n";
37
+ case "\r":
38
+ return "\\r";
39
+ case "\u2028":
40
+ return "\\u2028";
41
+ case "\u2029":
42
+ return "\\u2029";
43
+ default:
44
+ return "";
45
+ }
46
+ });
47
+ }
48
+
49
+ // src/transformers/indent.ts
50
+ function createIndent(size) {
51
+ return Array.from({ length: size + 1 }).join(" ");
52
+ }
53
+
54
+ // src/transformers/nameSorter.ts
55
+ function nameSorter(a, b) {
56
+ if (a.name < b.name) {
57
+ return -1;
58
+ }
59
+ if (a.name > b.name) {
60
+ return 1;
61
+ }
62
+ return 0;
63
+ }
64
+
65
+ // src/transformers/searchAndReplace.ts
66
+ function searchAndReplace(options) {
67
+ const { text, replaceBy, prefix = "", key } = options;
68
+ const searchValues = options.searchValues?.(prefix, key) || [
69
+ `${prefix}["${key}"]`,
70
+ `${prefix}['${key}']`,
71
+ `${prefix}[\`${key}\`]`,
72
+ `${prefix}"${key}"`,
73
+ `${prefix}'${key}'`,
74
+ `${prefix}\`${key}\``,
75
+ new RegExp(`${prefix}${key}`, "g")
76
+ ];
77
+ return searchValues.reduce((prev, searchValue) => {
78
+ return prev.toString().replaceAll(searchValue, replaceBy);
79
+ }, text);
80
+ }
81
+
82
+ // src/transformers/trim.ts
83
+ function trim(text) {
84
+ return text.replaceAll(/\n/g, "").trim();
85
+ }
86
+ function trimQuotes(text) {
87
+ if (text.match(/^"(.*)"$/)) {
88
+ return text.replace(/^"(.*)"$/, "$1");
89
+ }
90
+ if (text.match(/^'(.*)'$/)) {
91
+ return text.replace(/^'(.*)'$/, "$1");
92
+ }
93
+ if (text.match(/^`(.*)`$/)) {
94
+ return text.replace(/^`(.*)`$/, "$1");
95
+ }
96
+ return text;
97
+ }
98
+
99
+ // src/transformers/stringify.ts
100
+ function stringify(value) {
101
+ if (value === void 0 || value === null) {
102
+ return '""';
103
+ }
104
+ return JSON.stringify(trimQuotes(value.toString()));
105
+ }
106
+ function stringifyObject(value) {
107
+ const items = Object.entries(value).map(([key, value2]) => {
108
+ if (typeof value2 === "object") {
109
+ return `${key}: {
110
+ ${stringifyObject(value2)}
111
+ }`;
112
+ }
113
+ return `${key}: ${value2}`;
114
+ }).filter(Boolean);
115
+ return items.join(",\n");
116
+ }
117
+
118
+ // src/transformers/toRegExp.ts
119
+ function stringToRegex(text) {
120
+ const isStartWithSlash = text.startsWith("/");
121
+ const isEndWithSlash = text.endsWith("/");
122
+ return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0));
123
+ }
124
+ function toRegExp(text) {
125
+ if (typeof text === "string") {
126
+ const source = trimQuotes(text);
127
+ return stringToRegex(source);
128
+ }
129
+ return stringToRegex(text.toString());
130
+ }
131
+ function toRegExpString(text, func = "RegExp") {
132
+ const isStartWithSlash = text.startsWith("/");
133
+ const isEndWithSlash = text.endsWith("/");
134
+ const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0))}')`;
135
+ return regexp;
136
+ }
137
+ var transformers_default = {
2
138
  combineCodes,
3
- createIndent,
4
- createJSDocBlockText,
5
139
  escape,
6
140
  jsStringEscape,
7
- merge,
141
+ createIndent,
142
+ transformReservedWord,
8
143
  nameSorter,
9
144
  searchAndReplace,
10
145
  stringify,
11
146
  stringifyObject,
12
147
  toRegExp,
13
148
  toRegExpString,
14
- transformReservedWord,
15
- transformers_default,
16
149
  trim,
17
- trimExtName,
18
- trimQuotes
19
- } from "./chunk-JKZG2IJR.js";
20
- import {
21
- camelCase,
150
+ trimQuotes,
151
+ JSDoc: {
152
+ createJSDocBlockText
153
+ },
22
154
  orderBy,
23
- pascalCase,
24
- pathCase
25
- } from "./chunk-4X5FFJPJ.js";
26
- import "./chunk-HMLY7DHA.js";
27
- export {
28
- camelCase,
29
- combineCodes,
30
- createIndent,
31
- createJSDocBlockText,
32
- transformers_default as default,
33
- escape,
34
- jsStringEscape,
35
155
  merge,
36
- nameSorter,
37
- orderBy,
156
+ camelCase,
38
157
  pascalCase,
39
- pathCase,
40
- searchAndReplace,
41
- stringify,
42
- stringifyObject,
43
- toRegExp,
44
- toRegExpString,
45
- transformReservedWord,
46
- trim,
47
- trimExtName,
48
- trimQuotes
158
+ pathCase
49
159
  };
160
+
161
+ export { combineCodes, createIndent, createJSDocBlockText, transformers_default as default, escape, jsStringEscape, nameSorter, searchAndReplace, stringify, stringifyObject, toRegExp, toRegExpString, trim, trimQuotes };
162
+ //# sourceMappingURL=transformers.js.map
50
163
  //# sourceMappingURL=transformers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../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/index.ts"],"names":["value"],"mappings":"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","file":"transformers.js","sourcesContent":["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","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","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, 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, 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 JSDoc: {\n createJSDocBlockText,\n },\n orderBy,\n merge,\n camelCase,\n pascalCase,\n pathCase,\n} as const\n"]}
package/dist/utils.cjs CHANGED
@@ -1,27 +1,66 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
- var _chunkYTSNYMHWcjs = require('./chunk-YTSNYMHW.cjs');
13
- require('./chunk-67C6RBGQ.cjs');
14
- require('./chunk-XCPFG6DO.cjs');
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
- exports.FunctionParams = _chunkYTSNYMHWcjs.FunctionParams; exports.URLPath = _chunkYTSNYMHWcjs.URLPath; exports.getParser = _chunkYTSNYMHWcjs.getParser; exports.getUniqueName = _chunkYTSNYMHWcjs.getUniqueName; exports.isPromise = _chunkYTSNYMHWcjs.isPromise; exports.isPromiseFulfilledResult = _chunkYTSNYMHWcjs.isPromiseFulfilledResult; exports.isPromiseRejectedResult = _chunkYTSNYMHWcjs.isPromiseRejectedResult; exports.renderTemplate = _chunkYTSNYMHWcjs.renderTemplate; exports.setUniqueName = _chunkYTSNYMHWcjs.setUniqueName; exports.timeout = _chunkYTSNYMHWcjs.timeout;
1
+ 'use strict';
2
+
3
+ var chunk52WA2JF5_cjs = require('./chunk-52WA2JF5.cjs');
4
+ require('./chunk-HMCSWG5L.cjs');
5
+ require('./chunk-ADFKVVPE.cjs');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "FunctionParams", {
10
+ enumerable: true,
11
+ get: function () { return chunk52WA2JF5_cjs.FunctionParams; }
12
+ });
13
+ Object.defineProperty(exports, "URLPath", {
14
+ enumerable: true,
15
+ get: function () { return chunk52WA2JF5_cjs.URLPath; }
16
+ });
17
+ Object.defineProperty(exports, "createFile", {
18
+ enumerable: true,
19
+ get: function () { return chunk52WA2JF5_cjs.createFile; }
20
+ });
21
+ Object.defineProperty(exports, "createFileExport", {
22
+ enumerable: true,
23
+ get: function () { return chunk52WA2JF5_cjs.createFileExport; }
24
+ });
25
+ Object.defineProperty(exports, "createFileImport", {
26
+ enumerable: true,
27
+ get: function () { return chunk52WA2JF5_cjs.createFileImport; }
28
+ });
29
+ Object.defineProperty(exports, "createFileParser", {
30
+ enumerable: true,
31
+ get: function () { return chunk52WA2JF5_cjs.createFileParser; }
32
+ });
33
+ Object.defineProperty(exports, "getFileParser", {
34
+ enumerable: true,
35
+ get: function () { return chunk52WA2JF5_cjs.getFileParser; }
36
+ });
37
+ Object.defineProperty(exports, "getUniqueName", {
38
+ enumerable: true,
39
+ get: function () { return chunk52WA2JF5_cjs.getUniqueName; }
40
+ });
41
+ Object.defineProperty(exports, "isPromise", {
42
+ enumerable: true,
43
+ get: function () { return chunk52WA2JF5_cjs.isPromise; }
44
+ });
45
+ Object.defineProperty(exports, "isPromiseFulfilledResult", {
46
+ enumerable: true,
47
+ get: function () { return chunk52WA2JF5_cjs.isPromiseFulfilledResult; }
48
+ });
49
+ Object.defineProperty(exports, "isPromiseRejectedResult", {
50
+ enumerable: true,
51
+ get: function () { return chunk52WA2JF5_cjs.isPromiseRejectedResult; }
52
+ });
53
+ Object.defineProperty(exports, "renderTemplate", {
54
+ enumerable: true,
55
+ get: function () { return chunk52WA2JF5_cjs.renderTemplate; }
56
+ });
57
+ Object.defineProperty(exports, "setUniqueName", {
58
+ enumerable: true,
59
+ get: function () { return chunk52WA2JF5_cjs.setUniqueName; }
60
+ });
61
+ Object.defineProperty(exports, "timeout", {
62
+ enumerable: true,
63
+ get: function () { return chunk52WA2JF5_cjs.timeout; }
64
+ });
65
+ //# sourceMappingURL=utils.cjs.map
27
66
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/core/dist/utils.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,+jBAAC","file":"/home/runner/work/kubb/kubb/packages/core/dist/utils.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"utils.cjs"}
package/dist/utils.d.cts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { PossiblePromise } from '@kubb/types';
2
- import * as _kubb_parser_ts from '@kubb/parser-ts';
2
+ import * as KubbFile from '@kubb/fs/types';
3
+ import { L as Logger } from './logger-DvbHXjIO.cjs';
4
+ import 'consola';
3
5
 
4
6
  type FunctionParamsASTWithoutType = {
5
7
  name?: string;
@@ -101,6 +103,32 @@ declare class URLPath {
101
103
  toURLPath(): string;
102
104
  }
103
105
 
104
- declare function getParser(language: string | undefined): Promise<typeof _kubb_parser_ts>;
106
+ /**
107
+ * Helper to create a file with name and id set
108
+ */
109
+ declare function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta>;
110
+ /**
111
+ * Helper to create a fileImport with extName set
112
+ */
113
+ declare function createFileImport(imp: KubbFile.Import): KubbFile.ResolvedImport;
114
+ /**
115
+ * Helper to create a fileExport with extName set
116
+ */
117
+ declare function createFileExport(exp: KubbFile.Export): KubbFile.ResolvedExport;
118
+ type ParserModule<TMeta extends object = object> = {
119
+ /**
120
+ * By default @kubb/react is used
121
+ */
122
+ render: (item: any) => any;
123
+ /**
124
+ * Convert a file to string
125
+ */
126
+ print: (file: KubbFile.ResolvedFile<TMeta>, options: PrintOptions) => Promise<string>;
127
+ };
128
+ declare function createFileParser<TMeta extends object = object>(parser: ParserModule<TMeta>): ParserModule<TMeta>;
129
+ type PrintOptions = {
130
+ logger?: Logger;
131
+ };
132
+ declare function getFileParser<TMeta extends object = object>(extName: KubbFile.Extname | undefined): Promise<ParserModule<TMeta>>;
105
133
 
106
- export { FunctionParams, type FunctionParamsAST, type URLObject, URLPath, getParser, getUniqueName, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, setUniqueName, timeout };
134
+ export { FunctionParams, type FunctionParamsAST, type ParserModule, type URLObject, URLPath, createFile, createFileExport, createFileImport, createFileParser, getFileParser, getUniqueName, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, setUniqueName, timeout };
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { PossiblePromise } from '@kubb/types';
2
- import * as _kubb_parser_ts from '@kubb/parser-ts';
2
+ import * as KubbFile from '@kubb/fs/types';
3
+ import { L as Logger } from './logger-DvbHXjIO.js';
4
+ import 'consola';
3
5
 
4
6
  type FunctionParamsASTWithoutType = {
5
7
  name?: string;
@@ -101,6 +103,32 @@ declare class URLPath {
101
103
  toURLPath(): string;
102
104
  }
103
105
 
104
- declare function getParser(language: string | undefined): Promise<typeof _kubb_parser_ts>;
106
+ /**
107
+ * Helper to create a file with name and id set
108
+ */
109
+ declare function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta>;
110
+ /**
111
+ * Helper to create a fileImport with extName set
112
+ */
113
+ declare function createFileImport(imp: KubbFile.Import): KubbFile.ResolvedImport;
114
+ /**
115
+ * Helper to create a fileExport with extName set
116
+ */
117
+ declare function createFileExport(exp: KubbFile.Export): KubbFile.ResolvedExport;
118
+ type ParserModule<TMeta extends object = object> = {
119
+ /**
120
+ * By default @kubb/react is used
121
+ */
122
+ render: (item: any) => any;
123
+ /**
124
+ * Convert a file to string
125
+ */
126
+ print: (file: KubbFile.ResolvedFile<TMeta>, options: PrintOptions) => Promise<string>;
127
+ };
128
+ declare function createFileParser<TMeta extends object = object>(parser: ParserModule<TMeta>): ParserModule<TMeta>;
129
+ type PrintOptions = {
130
+ logger?: Logger;
131
+ };
132
+ declare function getFileParser<TMeta extends object = object>(extName: KubbFile.Extname | undefined): Promise<ParserModule<TMeta>>;
105
133
 
106
- export { FunctionParams, type FunctionParamsAST, type URLObject, URLPath, getParser, getUniqueName, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, setUniqueName, timeout };
134
+ export { FunctionParams, type FunctionParamsAST, type ParserModule, type URLObject, URLPath, createFile, createFileExport, createFileImport, createFileParser, getFileParser, getUniqueName, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, setUniqueName, timeout };
package/dist/utils.js CHANGED
@@ -1,27 +1,4 @@
1
- import {
2
- FunctionParams,
3
- URLPath,
4
- getParser,
5
- getUniqueName,
6
- isPromise,
7
- isPromiseFulfilledResult,
8
- isPromiseRejectedResult,
9
- renderTemplate,
10
- setUniqueName,
11
- timeout
12
- } from "./chunk-5JZNFPUP.js";
13
- import "./chunk-4X5FFJPJ.js";
14
- import "./chunk-HMLY7DHA.js";
15
- export {
16
- FunctionParams,
17
- URLPath,
18
- getParser,
19
- getUniqueName,
20
- isPromise,
21
- isPromiseFulfilledResult,
22
- isPromiseRejectedResult,
23
- renderTemplate,
24
- setUniqueName,
25
- timeout
26
- };
1
+ export { FunctionParams, URLPath, createFile, createFileExport, createFileImport, createFileParser, getFileParser, getUniqueName, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, setUniqueName, timeout } from './chunk-L6YLVCKM.js';
2
+ import './chunk-4X5FFJPJ.js';
3
+ //# sourceMappingURL=utils.js.map
27
4
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"utils.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/core",
3
- "version": "3.0.0-alpha.1",
3
+ "version": "3.0.0-alpha.11",
4
4
  "description": "Generator core",
5
5
  "keywords": [
6
6
  "typescript",
@@ -76,31 +76,31 @@
76
76
  ],
77
77
  "dependencies": {
78
78
  "change-case": "^5.4.4",
79
- "directory-tree": "^3.5.2",
80
79
  "find-up": "^7.0.0",
81
80
  "natural-orderby": "^3.0.2",
81
+ "object-hash": "^3.0.0",
82
82
  "p-queue": "^8.0.1",
83
83
  "remeda": "^2.11.0",
84
84
  "seedrandom": "^3.0.5",
85
85
  "semver": "^7.6.3",
86
86
  "unraw": "^3.0.0",
87
- "@kubb/fs": "3.0.0-alpha.1",
88
- "@kubb/parser-ts": "3.0.0-alpha.1",
89
- "@kubb/types": "3.0.0-alpha.1"
87
+ "@kubb/fs": "3.0.0-alpha.11",
88
+ "@kubb/parser-ts": "3.0.0-alpha.11",
89
+ "@kubb/types": "3.0.0-alpha.11"
90
90
  },
91
91
  "devDependencies": {
92
- "@types/react": "^18.3.4",
92
+ "@types/object-hash": "^3.0.6",
93
+ "@types/react": "^18.3.5",
93
94
  "@types/seedrandom": "^3.0.8",
94
95
  "@types/semver": "^7.5.8",
95
96
  "consola": "^3.2.3",
96
- "ora": "^8.0.1",
97
97
  "prettier": "^3.3.3",
98
98
  "tinyrainbow": "^1.2.0",
99
99
  "tsup": "^8.2.4",
100
100
  "typescript": "^5.5.4",
101
- "@kubb/config-biome": "3.0.0-alpha.1",
102
- "@kubb/config-ts": "3.0.0-alpha.1",
103
- "@kubb/config-tsup": "3.0.0-alpha.1"
101
+ "@kubb/config-biome": "3.0.0-alpha.11",
102
+ "@kubb/config-ts": "3.0.0-alpha.11",
103
+ "@kubb/config-tsup": "3.0.0-alpha.11"
104
104
  },
105
105
  "engines": {
106
106
  "node": ">=20"