@kubb/core 2.0.0-beta.1 → 2.0.0-beta.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 (67) hide show
  1. package/dist/Queue-2-6pMcCx.d.cts +32 -0
  2. package/dist/Queue-2-6pMcCx.d.ts +32 -0
  3. package/dist/fs.cjs +2383 -0
  4. package/dist/fs.cjs.map +1 -0
  5. package/dist/fs.d.cts +5 -0
  6. package/dist/fs.d.ts +5 -0
  7. package/dist/fs.js +2380 -0
  8. package/dist/fs.js.map +1 -0
  9. package/dist/index.cjs +3448 -394
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +77 -127
  12. package/dist/index.d.ts +77 -127
  13. package/dist/index.js +3761 -423
  14. package/dist/index.js.map +1 -1
  15. package/dist/logger.cjs +90 -0
  16. package/dist/logger.cjs.map +1 -0
  17. package/dist/logger.d.cts +32 -0
  18. package/dist/logger.d.ts +32 -0
  19. package/dist/logger.js +78 -0
  20. package/dist/logger.js.map +1 -0
  21. package/dist/transformers.cjs +222 -0
  22. package/dist/transformers.cjs.map +1 -0
  23. package/dist/transformers.d.cts +55 -0
  24. package/dist/transformers.d.ts +55 -0
  25. package/dist/transformers.js +207 -0
  26. package/dist/transformers.js.map +1 -0
  27. package/dist/utils.cjs +174 -899
  28. package/dist/utils.cjs.map +1 -1
  29. package/dist/utils.d.cts +2 -146
  30. package/dist/utils.d.ts +2 -146
  31. package/dist/utils.js +175 -859
  32. package/dist/utils.js.map +1 -1
  33. package/dist/write-46ytbnu9.d.cts +7 -0
  34. package/dist/write-46ytbnu9.d.ts +7 -0
  35. package/package.json +27 -12
  36. package/src/BarrelManager.ts +55 -65
  37. package/src/FileManager.ts +109 -68
  38. package/src/PluginManager.ts +55 -32
  39. package/src/build.ts +5 -16
  40. package/src/fs/index.ts +3 -0
  41. package/src/index.ts +4 -5
  42. package/src/{utils/logger.ts → logger.ts} +37 -0
  43. package/src/plugin.ts +4 -4
  44. package/src/transformers/casing.ts +9 -0
  45. package/src/transformers/createJSDocBlockText.ts +9 -0
  46. package/src/transformers/index.ts +36 -0
  47. package/src/transformers/trim.ts +7 -0
  48. package/src/types.ts +23 -42
  49. package/src/utils/FunctionParams.ts +3 -2
  50. package/src/utils/TreeNode.ts +6 -3
  51. package/src/utils/URLPath.ts +5 -5
  52. package/src/utils/index.ts +10 -19
  53. package/src/SchemaGenerator.ts +0 -8
  54. package/src/utils/randomColour.ts +0 -39
  55. package/src/utils/throttle.ts +0 -30
  56. package/src/utils/transformers/createJSDocBlockText.ts +0 -15
  57. package/src/utils/transformers/index.ts +0 -22
  58. package/src/utils/transformers/trim.ts +0 -3
  59. /package/src/{utils → fs}/clean.ts +0 -0
  60. /package/src/{utils → fs}/read.ts +0 -0
  61. /package/src/{utils → fs}/write.ts +0 -0
  62. /package/src/{utils/transformers → transformers}/combineCodes.ts +0 -0
  63. /package/src/{utils/transformers → transformers}/escape.ts +0 -0
  64. /package/src/{utils/transformers → transformers}/indent.ts +0 -0
  65. /package/src/{utils/transformers → transformers}/nameSorter.ts +0 -0
  66. /package/src/{utils/transformers → transformers}/searchAndReplace.ts +0 -0
  67. /package/src/{utils/transformers → transformers}/transformReservedWord.ts +0 -0
@@ -0,0 +1,207 @@
1
+ import { createRequire } from 'module';
2
+ import { camelCase as camelCase$1, camelCaseTransformMerge, pascalCase as pascalCase$1, pascalCaseTransformMerge } from 'change-case';
3
+
4
+ createRequire(import.meta.url);
5
+ function camelCase(text) {
6
+ return camelCase$1(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge });
7
+ }
8
+ function pascalCase(text) {
9
+ return pascalCase$1(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge });
10
+ }
11
+
12
+ // src/transformers/combineCodes.ts
13
+ function combineCodes(codes) {
14
+ return codes.join("\n");
15
+ }
16
+
17
+ // src/transformers/createJSDocBlockText.ts
18
+ function createJSDocBlockText({ comments }) {
19
+ const filteredComments = comments.filter(Boolean);
20
+ if (!filteredComments.length) {
21
+ return "";
22
+ }
23
+ return `/**
24
+ * ${filteredComments.join("\n * ")}
25
+ */`;
26
+ }
27
+
28
+ // src/transformers/escape.ts
29
+ function escape(text) {
30
+ return text ? text.replaceAll("`", "\\`") : "";
31
+ }
32
+ function jsStringEscape(input) {
33
+ return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
34
+ switch (character) {
35
+ case '"':
36
+ case "'":
37
+ case "\\":
38
+ return "\\" + character;
39
+ case "\n":
40
+ return "\\n";
41
+ case "\r":
42
+ return "\\r";
43
+ case "\u2028":
44
+ return "\\u2028";
45
+ case "\u2029":
46
+ return "\\u2029";
47
+ default:
48
+ return "";
49
+ }
50
+ });
51
+ }
52
+
53
+ // src/transformers/indent.ts
54
+ function createIndent(size) {
55
+ return Array.from({ length: size + 1 }).join(" ");
56
+ }
57
+
58
+ // src/transformers/nameSorter.ts
59
+ function nameSorter(a, b) {
60
+ if (a.name < b.name) {
61
+ return -1;
62
+ }
63
+ if (a.name > b.name) {
64
+ return 1;
65
+ }
66
+ return 0;
67
+ }
68
+
69
+ // src/transformers/searchAndReplace.ts
70
+ function searchAndReplace(options) {
71
+ const { text, replaceBy, prefix = "", key } = options;
72
+ const searchValues = options.searchValues?.(prefix, key) || [
73
+ `${prefix}["${key}"]`,
74
+ `${prefix}['${key}']`,
75
+ `${prefix}[\`${key}\`]`,
76
+ `${prefix}"${key}"`,
77
+ `${prefix}'${key}'`,
78
+ `${prefix}\`${key}\``,
79
+ new RegExp(`${prefix}${key}`, "g")
80
+ ];
81
+ return searchValues.reduce((prev, searchValue) => {
82
+ return prev.toString().replaceAll(searchValue, replaceBy);
83
+ }, text);
84
+ }
85
+
86
+ // src/transformers/transformReservedWord.ts
87
+ var reservedWords = [
88
+ "abstract",
89
+ "arguments",
90
+ "boolean",
91
+ "break",
92
+ "byte",
93
+ "case",
94
+ "catch",
95
+ "char",
96
+ "class",
97
+ "const",
98
+ "continue",
99
+ "debugger",
100
+ "default",
101
+ "delete",
102
+ "do",
103
+ "double",
104
+ "else",
105
+ "enum",
106
+ "eval",
107
+ "export",
108
+ "extends",
109
+ "false",
110
+ "final",
111
+ "finally",
112
+ "float",
113
+ "for",
114
+ "function",
115
+ "goto",
116
+ "if",
117
+ "implements",
118
+ "import",
119
+ "in",
120
+ "instanceof",
121
+ "int",
122
+ "interface",
123
+ "let",
124
+ "long",
125
+ "native",
126
+ "new",
127
+ "null",
128
+ "package",
129
+ "private",
130
+ "protected",
131
+ "public",
132
+ "return",
133
+ "short",
134
+ "static",
135
+ "super",
136
+ "switch",
137
+ "synchronized",
138
+ "this",
139
+ "throw",
140
+ "throws",
141
+ "transient",
142
+ "true",
143
+ "try",
144
+ "typeof",
145
+ "var",
146
+ "void",
147
+ "volatile",
148
+ "while",
149
+ "with",
150
+ "yield",
151
+ "Array",
152
+ "Date",
153
+ "eval",
154
+ "function",
155
+ "hasOwnProperty",
156
+ "Infinity",
157
+ "isFinite",
158
+ "isNaN",
159
+ "isPrototypeOf",
160
+ "length",
161
+ "Math",
162
+ "name",
163
+ "NaN",
164
+ "Number",
165
+ "Object",
166
+ "prototype",
167
+ "String",
168
+ "toString",
169
+ "undefined",
170
+ "valueOf"
171
+ ];
172
+ function transformReservedWord(word) {
173
+ if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
174
+ return `_${word}`;
175
+ }
176
+ return word;
177
+ }
178
+
179
+ // src/transformers/trim.ts
180
+ function trim(text) {
181
+ return text.replaceAll(/\n/g, "").trim();
182
+ }
183
+ function trimExtName(text) {
184
+ return text.replace(/\.[^/.]+$/, "");
185
+ }
186
+
187
+ // src/transformers/index.ts
188
+ var transformers_default = {
189
+ combineCodes,
190
+ escape,
191
+ jsStringEscape,
192
+ createIndent,
193
+ transformReservedWord,
194
+ nameSorter,
195
+ searchAndReplace,
196
+ trim,
197
+ trimExtName,
198
+ JSDoc: {
199
+ createJSDocBlockText
200
+ },
201
+ camelCase,
202
+ pascalCase
203
+ };
204
+
205
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, transformers_default as default, escape, jsStringEscape, nameSorter, pascalCase, searchAndReplace, transformReservedWord, trim, trimExtName };
206
+ //# sourceMappingURL=out.js.map
207
+ //# sourceMappingURL=transformers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/transformers/casing.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/transformReservedWord.ts","../src/transformers/trim.ts","../src/transformers/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase as changeCaseCamel, camelCaseTransformMerge, pascalCase as changePascalCase, pascalCaseTransformMerge } from 'change-case'\n\nexport function camelCase(text: string): string {\n return changeCaseCamel(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge })\n}\n\nexport function pascalCase(text: string): string {\n return changePascalCase(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge })\n}\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// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\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","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","/**\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","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import { camelCase, pascalCase } 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 { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase } 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 { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n} as const\n"]}