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

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 (96) 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 +97 -0
  4. package/dist/chunk-2EU7DMPM.js.map +1 -0
  5. package/dist/chunk-5E2I6KH4.cjs +1071 -0
  6. package/dist/chunk-5E2I6KH4.cjs.map +1 -0
  7. package/dist/{chunk-67C6RBGQ.cjs → chunk-A6PCLWEY.cjs} +5 -5
  8. package/dist/{chunk-67C6RBGQ.cjs.map → chunk-A6PCLWEY.cjs.map} +1 -1
  9. package/dist/chunk-DID47EQD.cjs +102 -0
  10. package/dist/chunk-DID47EQD.cjs.map +1 -0
  11. package/dist/chunk-HBQM723K.js +1063 -0
  12. package/dist/chunk-HBQM723K.js.map +1 -0
  13. package/dist/chunk-L6YLVCKM.js +929 -0
  14. package/dist/chunk-L6YLVCKM.js.map +1 -0
  15. package/dist/{chunk-LM2YQC3T.cjs → chunk-M7NLNCSM.cjs} +71 -38
  16. package/dist/chunk-M7NLNCSM.cjs.map +1 -0
  17. package/dist/{chunk-3OXCZ5DJ.js → chunk-MU3CBCQT.js} +59 -35
  18. package/dist/chunk-MU3CBCQT.js.map +1 -0
  19. package/dist/chunk-NB4JMN75.cjs +1548 -0
  20. package/dist/chunk-NB4JMN75.cjs.map +1 -0
  21. package/dist/{chunk-XCPFG6DO.cjs → chunk-SEH6NUCX.cjs} +4 -28
  22. package/dist/chunk-SEH6NUCX.cjs.map +1 -0
  23. package/dist/index.cjs +496 -552
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +6 -19
  26. package/dist/index.d.ts +6 -19
  27. package/dist/index.js +438 -492
  28. package/dist/index.js.map +1 -1
  29. package/dist/{logger-DChjnJMn.d.cts → logger-DvbHXjIO.d.cts} +29 -19
  30. package/dist/{logger-DChjnJMn.d.ts → logger-DvbHXjIO.d.ts} +29 -19
  31. package/dist/logger.cjs +4 -5
  32. package/dist/logger.cjs.map +1 -1
  33. package/dist/logger.d.cts +1 -2
  34. package/dist/logger.d.ts +1 -2
  35. package/dist/logger.js +2 -4
  36. package/dist/mocks.cjs +25 -19
  37. package/dist/mocks.cjs.map +1 -1
  38. package/dist/mocks.d.cts +6 -9
  39. package/dist/mocks.d.ts +6 -9
  40. package/dist/mocks.js +21 -16
  41. package/dist/mocks.js.map +1 -1
  42. package/dist/prompt-DVQN7JTN.cjs +760 -0
  43. package/dist/prompt-DVQN7JTN.cjs.map +1 -0
  44. package/dist/prompt-WQQUN22Z.js +754 -0
  45. package/dist/prompt-WQQUN22Z.js.map +1 -0
  46. package/dist/transformers.cjs +198 -42
  47. package/dist/transformers.cjs.map +1 -1
  48. package/dist/transformers.d.cts +1 -3
  49. package/dist/transformers.d.ts +1 -3
  50. package/dist/transformers.js +155 -14
  51. package/dist/transformers.js.map +1 -1
  52. package/dist/utils.cjs +12 -4
  53. package/dist/utils.cjs.map +1 -1
  54. package/dist/utils.d.cts +31 -3
  55. package/dist/utils.d.ts +31 -3
  56. package/dist/utils.js +11 -4
  57. package/package.json +10 -10
  58. package/src/BarrelManager.ts +93 -107
  59. package/src/{Generator.ts → BaseGenerator.ts} +1 -1
  60. package/src/FileManager.ts +198 -297
  61. package/src/PackageManager.ts +1 -1
  62. package/src/PluginManager.ts +152 -101
  63. package/src/__snapshots__/barrel.json +91 -0
  64. package/src/__snapshots__/grouped.json +114 -0
  65. package/src/__snapshots__/ordered.json +62 -0
  66. package/src/build.ts +86 -171
  67. package/src/errors.ts +0 -11
  68. package/src/index.ts +1 -2
  69. package/src/logger.ts +76 -34
  70. package/src/plugin.ts +3 -3
  71. package/src/transformers/index.ts +2 -3
  72. package/src/transformers/trim.ts +0 -4
  73. package/src/types.ts +35 -35
  74. package/src/utils/TreeNode.ts +132 -50
  75. package/src/utils/executeStrategies.ts +1 -1
  76. package/src/utils/index.ts +2 -1
  77. package/src/utils/parser.ts +157 -0
  78. package/dist/chunk-3OXCZ5DJ.js.map +0 -1
  79. package/dist/chunk-5JZNFPUP.js +0 -309
  80. package/dist/chunk-5JZNFPUP.js.map +0 -1
  81. package/dist/chunk-ADC5UNZ5.cjs +0 -1227
  82. package/dist/chunk-ADC5UNZ5.cjs.map +0 -1
  83. package/dist/chunk-HMLY7DHA.js +0 -16
  84. package/dist/chunk-HMLY7DHA.js.map +0 -1
  85. package/dist/chunk-JKZG2IJR.js +0 -283
  86. package/dist/chunk-JKZG2IJR.js.map +0 -1
  87. package/dist/chunk-LM2YQC3T.cjs.map +0 -1
  88. package/dist/chunk-PZT4CTBV.cjs +0 -299
  89. package/dist/chunk-PZT4CTBV.cjs.map +0 -1
  90. package/dist/chunk-SA2GZKXS.js +0 -596
  91. package/dist/chunk-SA2GZKXS.js.map +0 -1
  92. package/dist/chunk-XCPFG6DO.cjs.map +0 -1
  93. package/dist/chunk-YTSNYMHW.cjs +0 -320
  94. package/dist/chunk-YTSNYMHW.cjs.map +0 -1
  95. package/schema.json +0 -86
  96. package/src/utils/getParser.ts +0 -17
@@ -1,299 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
-
4
-
5
-
6
- var _chunk67C6RBGQcjs = require('./chunk-67C6RBGQ.cjs');
7
-
8
-
9
- var _chunkXCPFG6DOcjs = require('./chunk-XCPFG6DO.cjs');
10
-
11
- // src/transformers/index.ts
12
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
13
- var _remeda = require('remeda');
14
-
15
- // src/transformers/combineCodes.ts
16
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
17
- function combineCodes(codes) {
18
- return codes.join("\n");
19
- }
20
-
21
- // src/transformers/createJSDocBlockText.ts
22
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
23
- function createJSDocBlockText({ comments }) {
24
- const filteredComments = comments.filter(Boolean);
25
- if (!filteredComments.length) {
26
- return "";
27
- }
28
- return `/**
29
- * ${filteredComments.join("\n * ")}
30
- */`;
31
- }
32
-
33
- // src/transformers/escape.ts
34
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
35
- function escape(text) {
36
- return text ? text.replaceAll("`", "\\`") : "";
37
- }
38
- function jsStringEscape(input) {
39
- return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
40
- switch (character) {
41
- case '"':
42
- case "'":
43
- case "\\":
44
- return `\\${character}`;
45
- case "\n":
46
- return "\\n";
47
- case "\r":
48
- return "\\r";
49
- case "\u2028":
50
- return "\\u2028";
51
- case "\u2029":
52
- return "\\u2029";
53
- default:
54
- return "";
55
- }
56
- });
57
- }
58
-
59
- // src/transformers/indent.ts
60
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
61
- function createIndent(size) {
62
- return Array.from({ length: size + 1 }).join(" ");
63
- }
64
-
65
- // src/transformers/nameSorter.ts
66
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
67
- function nameSorter(a, b) {
68
- if (a.name < b.name) {
69
- return -1;
70
- }
71
- if (a.name > b.name) {
72
- return 1;
73
- }
74
- return 0;
75
- }
76
-
77
- // src/transformers/searchAndReplace.ts
78
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
79
- function searchAndReplace(options) {
80
- const { text, replaceBy, prefix = "", key } = options;
81
- const searchValues = _optionalChain([options, 'access', _ => _.searchValues, 'optionalCall', _2 => _2(prefix, key)]) || [
82
- `${prefix}["${key}"]`,
83
- `${prefix}['${key}']`,
84
- `${prefix}[\`${key}\`]`,
85
- `${prefix}"${key}"`,
86
- `${prefix}'${key}'`,
87
- `${prefix}\`${key}\``,
88
- new RegExp(`${prefix}${key}`, "g")
89
- ];
90
- return searchValues.reduce((prev, searchValue) => {
91
- return prev.toString().replaceAll(searchValue, replaceBy);
92
- }, text);
93
- }
94
-
95
- // src/transformers/stringify.ts
96
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
97
-
98
- // src/transformers/trim.ts
99
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
100
- function trim(text) {
101
- return text.replaceAll(/\n/g, "").trim();
102
- }
103
- function trimQuotes(text) {
104
- if (text.match(/^"(.*)"$/)) {
105
- return text.replace(/^"(.*)"$/, "$1");
106
- }
107
- if (text.match(/^'(.*)'$/)) {
108
- return text.replace(/^'(.*)'$/, "$1");
109
- }
110
- if (text.match(/^`(.*)`$/)) {
111
- return text.replace(/^`(.*)`$/, "$1");
112
- }
113
- return text;
114
- }
115
- function trimExtName(text) {
116
- return text.replace(/\.[^/.]+$/, "");
117
- }
118
-
119
- // src/transformers/stringify.ts
120
- function stringify(value) {
121
- if (value === void 0 || value === null) {
122
- return '""';
123
- }
124
- return JSON.stringify(trimQuotes(value.toString()));
125
- }
126
- function stringifyObject(value) {
127
- const items = Object.entries(value).map(([key, value2]) => {
128
- if (typeof value2 === "object") {
129
- return `${key}: {
130
- ${stringifyObject(value2)}
131
- }`;
132
- }
133
- return `${key}: ${value2}`;
134
- }).filter(Boolean);
135
- return items.join(",\n");
136
- }
137
-
138
- // src/transformers/toRegExp.ts
139
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
140
- function stringToRegex(text) {
141
- const isStartWithSlash = text.startsWith("/");
142
- const isEndWithSlash = text.endsWith("/");
143
- return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0));
144
- }
145
- function toRegExp(text) {
146
- if (typeof text === "string") {
147
- const source = trimQuotes(text);
148
- return stringToRegex(source);
149
- }
150
- return stringToRegex(text.toString());
151
- }
152
- function toRegExpString(text, func = "RegExp") {
153
- const isStartWithSlash = text.startsWith("/");
154
- const isEndWithSlash = text.endsWith("/");
155
- const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0))}')`;
156
- return regexp;
157
- }
158
-
159
- // src/transformers/transformReservedWord.ts
160
- _chunkXCPFG6DOcjs.init_cjs_shims.call(void 0, );
161
- var reservedWords = [
162
- "abstract",
163
- "arguments",
164
- "boolean",
165
- "break",
166
- "byte",
167
- "case",
168
- "catch",
169
- "char",
170
- "class",
171
- "const",
172
- "continue",
173
- "debugger",
174
- "default",
175
- "delete",
176
- "do",
177
- "double",
178
- "else",
179
- "enum",
180
- "eval",
181
- "export",
182
- "extends",
183
- "false",
184
- "final",
185
- "finally",
186
- "float",
187
- "for",
188
- "function",
189
- "goto",
190
- "if",
191
- "implements",
192
- "import",
193
- "in",
194
- "instanceof",
195
- "int",
196
- "interface",
197
- "let",
198
- "long",
199
- "native",
200
- "new",
201
- "null",
202
- "package",
203
- "private",
204
- "protected",
205
- "public",
206
- "return",
207
- "short",
208
- "static",
209
- "super",
210
- "switch",
211
- "synchronized",
212
- "this",
213
- "throw",
214
- "throws",
215
- "transient",
216
- "true",
217
- "try",
218
- "typeof",
219
- "var",
220
- "void",
221
- "volatile",
222
- "while",
223
- "with",
224
- "yield",
225
- "Array",
226
- "Date",
227
- "eval",
228
- "function",
229
- "hasOwnProperty",
230
- "Infinity",
231
- "isFinite",
232
- "isNaN",
233
- "isPrototypeOf",
234
- "length",
235
- "Math",
236
- "name",
237
- "NaN",
238
- "Number",
239
- "Object",
240
- "prototype",
241
- "String",
242
- "toString",
243
- "undefined",
244
- "valueOf"
245
- ];
246
- function transformReservedWord(word) {
247
- if (word && reservedWords.includes(word) || _optionalChain([word, 'optionalAccess', _3 => _3.match, 'call', _4 => _4(/^\d/)])) {
248
- return `_${word}`;
249
- }
250
- return word;
251
- }
252
-
253
- // src/transformers/index.ts
254
-
255
- var transformers_default = {
256
- combineCodes,
257
- escape,
258
- jsStringEscape,
259
- createIndent,
260
- transformReservedWord,
261
- nameSorter,
262
- searchAndReplace,
263
- stringify,
264
- stringifyObject,
265
- toRegExp,
266
- toRegExpString,
267
- trim,
268
- trimQuotes,
269
- trimExtName,
270
- JSDoc: {
271
- createJSDocBlockText
272
- },
273
- orderBy: _chunk67C6RBGQcjs.orderBy,
274
- merge: _remeda.merge,
275
- camelCase: _chunk67C6RBGQcjs.camelCase,
276
- pascalCase: _chunk67C6RBGQcjs.pascalCase,
277
- pathCase: _chunk67C6RBGQcjs.pathCase
278
- };
279
-
280
-
281
-
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
-
292
-
293
-
294
-
295
-
296
-
297
-
298
- exports.trim = trim; exports.trimQuotes = trimQuotes; exports.trimExtName = trimExtName; exports.searchAndReplace = searchAndReplace; exports.combineCodes = combineCodes; exports.createJSDocBlockText = createJSDocBlockText; exports.escape = escape; exports.jsStringEscape = jsStringEscape; exports.createIndent = createIndent; exports.nameSorter = nameSorter; exports.stringify = stringify; exports.stringifyObject = stringifyObject; exports.toRegExp = toRegExp; exports.toRegExpString = toRegExpString; exports.transformReservedWord = transformReservedWord; exports.transformers_default = transformers_default; exports.merge = _remeda.merge;
299
- //# sourceMappingURL=chunk-PZT4CTBV.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/core/dist/chunk-PZT4CTBV.cjs","../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts","../src/transformers/searchAndReplace.ts","../src/transformers/stringify.ts","../src/transformers/trim.ts","../src/transformers/toRegExp.ts","../src/transformers/transformReservedWord.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,8CAAA,CAAA;AACA,gCAAsB;ADYtB;AACA;AEdA,8CAAA,CAAA;AAAO,SAAS,YAAA,CAAa,KAAA,EAAyB;AACpD,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACxB;AFiBA;AACA;AGpBA,8CAAA,CAAA;AAAO,SAAS,oBAAA,CAAqB,EAAE,SAAS,CAAA,EAAwC;AACtF,EAAA,MAAM,iBAAA,EAAmB,QAAA,CAAS,MAAA,CAAO,OAAO,CAAA;AAEhD,EAAA,GAAA,CAAI,CAAC,gBAAA,CAAiB,MAAA,EAAQ;AAC5B,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,OAAO,CAAA;AAAA,GAAA,EAAW,gBAAA,CAAiB,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,GAAA,CAAA;AAClD;AHuBA;AACA;AIhCA,8CAAA,CAAA;AAAO,SAAS,MAAA,CAAO,IAAA,EAAuB;AAC5C,EAAA,OAAO,KAAA,EAAO,IAAA,CAAK,UAAA,CAAW,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA;AAC9C;AAQO,SAAS,cAAA,CAAe,KAAA,EAAoB;AACjD,EAAA,OAAO,CAAA,EAAA;AACL,IAAA;AACE,MAAA;AACA,MAAA;AACA,MAAA;AACE,QAAA;AAEF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACF,MAAA;AACE,QAAA;AACJ,IAAA;AACD,EAAA;AACH;AJ2BU;AACA;AK1DV;AAAgB;AACP,EAAA;AACT;AL6DU;AACA;AMhEV;AAAgB;AACR,EAAA;AACJ,IAAA;AACF,EAAA;AACM,EAAA;AACJ,IAAA;AACF,EAAA;AACO,EAAA;AACT;ANmEU;AACA;AO5EV;AAQgB;AACN,EAAA;AAEF,EAAA;AACD,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACC,IAAA;AACN,EAAA;AAEO,EAAA;AACL,IAAA;AACK,EAAA;AACT;APqEU;AACA;AQ9FV;ARgGU;AACA;ASjGV;AAAgB;AACP,EAAA;AACT;AAEgB;AACV,EAAA;AACF,IAAA;AACF,EAAA;AACI,EAAA;AACF,IAAA;AACF,EAAA;AAEI,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACP,EAAA;AACT;ATgGU;AACA;AQpHM;AACV,EAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACR,EAAA;AAEE,IAAA;AACF,MAAA;AACE,QAAA;AAAsB,OAAA;AAE1B,IAAA;AAEA,IAAA;AAED,EAAA;AAEI,EAAA;AACT;ARgHU;AACA;AUzIV;AAGS;AACD,EAAA;AACA,EAAA;AAEC,EAAA;AACT;AAKgB;AACV,EAAA;AACI,IAAA;AAEN,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AAEgB;AACR,EAAA;AACA,EAAA;AAEA,EAAA;AAEC,EAAA;AACT;AV+HU;AACA;AW9JV;AAGM;AACJ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;AAEgB;AACT,EAAA;AACH,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AX2JU;AACA;AClOD;AAGF;AACL,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACO,EAAA;AACL,IAAA;AACF,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;ADkOU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/kubb/kubb/packages/core/dist/chunk-PZT4CTBV.cjs","sourcesContent":[null,"import { orderBy } from 'natural-orderby'\nimport { merge } from 'remeda'\n\nimport { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { stringify, stringifyObject } from './stringify.ts'\nimport { toRegExp, toRegExpString } from './toRegExp.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName, trimQuotes } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { stringify, stringifyObject } from './stringify.ts'\nexport { toRegExp, toRegExpString } from './toRegExp.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName, trimQuotes } from './trim.ts'\nexport { merge } from 'remeda'\nexport { orderBy } from 'natural-orderby'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n stringify,\n stringifyObject,\n toRegExp,\n toRegExpString,\n trim,\n trimQuotes,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n orderBy,\n merge,\n camelCase,\n pascalCase,\n pathCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return `\\\\${character}`\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n\nexport function escapeStringRegexp(string: string) {\n if (typeof string !== 'string') {\n throw new TypeError('Expected a string')\n }\n\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d')\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n","type Options = {\n text: string\n replaceBy: string\n prefix?: string\n key: string\n searchValues?: (prefix: string, key: string) => Array<RegExp | string>\n}\n\nexport function searchAndReplace(options: Options): string {\n const { text, replaceBy, prefix = '', key } = options\n\n const searchValues = options.searchValues?.(prefix, key) || [\n `${prefix}[\"${key}\"]`,\n `${prefix}['${key}']`,\n `${prefix}[\\`${key}\\`]`,\n `${prefix}\"${key}\"`,\n `${prefix}'${key}'`,\n `${prefix}\\`${key}\\``,\n new RegExp(`${prefix}${key}`, 'g'),\n ]\n\n return searchValues.reduce((prev, searchValue) => {\n return prev.toString().replaceAll(searchValue, replaceBy)\n }, text) as string\n}\n","import { trimQuotes } from './trim'\n\nexport function stringify(value: string | number | undefined): string {\n if (value === undefined || value === null) {\n return '\"\"'\n }\n\n return JSON.stringify(trimQuotes(value.toString()))\n}\n\nexport function stringifyObject(value: object): string {\n const items = Object.entries(value)\n .map(([key, value]) => {\n if (typeof value === 'object') {\n return `${key}: {\n ${stringifyObject(value)}\n }`\n }\n\n return `${key}: ${value}`\n })\n .filter(Boolean)\n\n return items.join(',\\n')\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimQuotes(text: string): string {\n if (text.match(/^\"(.*)\"$/)) {\n return text.replace(/^\"(.*)\"$/, '$1')\n }\n if (text.match(/^'(.*)'$/)) {\n return text.replace(/^'(.*)'$/, '$1')\n }\n\n if (text.match(/^`(.*)`$/)) {\n return text.replace(/^`(.*)`$/, '$1')\n }\n\n return text\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import { jsStringEscape } from './escape'\nimport { trimQuotes } from './trim'\n\nfunction stringToRegex(text: string) {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))\n}\n\n/**\n * @experimental\n */\nexport function toRegExp(text: string | RegExp): RegExp {\n if (typeof text === 'string') {\n const source = trimQuotes(text)\n\n return stringToRegex(source)\n }\n\n return stringToRegex(text.toString())\n}\n\nexport function toRegExpString(text: string, func = 'RegExp'): string {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))}')`\n\n return regexp\n}\n","/**\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n 'abstract',\n 'arguments',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'let',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n 'yield',\n\n 'Array',\n 'Date',\n 'eval',\n 'function',\n 'hasOwnProperty',\n 'Infinity',\n 'isFinite',\n 'isNaN',\n 'isPrototypeOf',\n 'length',\n 'Math',\n 'name',\n 'NaN',\n 'Number',\n 'Object',\n 'prototype',\n 'String',\n 'toString',\n 'undefined',\n 'valueOf',\n]\n\nexport function transformReservedWord(word: string): string {\n if ((word && reservedWords.includes(word)) || word?.match(/^\\d/)) {\n return `_${word}`\n }\n\n return word\n}\n"]}