@kubb/core 2.0.0-beta.13 → 2.0.0-beta.14

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 (77) hide show
  1. package/dist/chunk-35FDNG5F.cjs +71 -0
  2. package/dist/chunk-35FDNG5F.cjs.map +1 -0
  3. package/dist/chunk-7CNPSL5M.js +85 -0
  4. package/dist/chunk-7CNPSL5M.js.map +1 -0
  5. package/dist/{chunk-SX2AYX5F.js → chunk-DKYWBKNH.js} +2 -2
  6. package/dist/chunk-EZSRGYAY.js +128 -0
  7. package/dist/chunk-EZSRGYAY.js.map +1 -0
  8. package/dist/{chunk-77QZQ377.cjs → chunk-GBX7KRCX.cjs} +12 -5
  9. package/dist/chunk-GBX7KRCX.cjs.map +1 -0
  10. package/dist/{chunk-FOQFLMOC.js → chunk-ICRPOCV4.cjs} +400 -446
  11. package/dist/chunk-ICRPOCV4.cjs.map +1 -0
  12. package/dist/chunk-LAS7UYTK.cjs +129 -0
  13. package/dist/chunk-LAS7UYTK.cjs.map +1 -0
  14. package/dist/chunk-LJHT3DNH.js +67 -0
  15. package/dist/chunk-LJHT3DNH.js.map +1 -0
  16. package/dist/{chunk-I7UUR5MZ.cjs → chunk-MM42A6GN.cjs} +3 -3
  17. package/dist/{chunk-I7UUR5MZ.cjs.map → chunk-MM42A6GN.cjs.map} +1 -1
  18. package/dist/{chunk-L6F5QUH2.js → chunk-SRGTC4FJ.js} +2 -2
  19. package/dist/{chunk-PY7I7OEN.cjs → chunk-ST7GHHSU.cjs} +34 -22
  20. package/dist/chunk-ST7GHHSU.cjs.map +1 -0
  21. package/dist/{chunk-ABFPJZJL.cjs → chunk-U4C2WTCI.cjs} +5 -5
  22. package/dist/{chunk-WFDR7OMY.js → chunk-UIQUKFF4.js} +9 -2
  23. package/dist/chunk-UIQUKFF4.js.map +1 -0
  24. package/dist/{chunk-6N4JBFFS.js → chunk-WTSDXEWD.js} +4 -12
  25. package/dist/chunk-WTSDXEWD.js.map +1 -0
  26. package/dist/fs.cjs +9 -8
  27. package/dist/fs.cjs.map +1 -1
  28. package/dist/fs.d.cts +1 -1
  29. package/dist/fs.d.ts +1 -1
  30. package/dist/fs.js +3 -2
  31. package/dist/fs.js.map +1 -1
  32. package/dist/index.cjs +955 -244
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +17 -15
  35. package/dist/index.d.ts +17 -15
  36. package/dist/index.js +135 -83
  37. package/dist/index.js.map +1 -1
  38. package/dist/logger.cjs +7 -6
  39. package/dist/logger.d.cts +1 -0
  40. package/dist/logger.d.ts +1 -0
  41. package/dist/logger.js +3 -2
  42. package/dist/transformers.cjs +21 -21
  43. package/dist/transformers.js +5 -5
  44. package/dist/utils.cjs +22 -19
  45. package/dist/utils.cjs.map +1 -1
  46. package/dist/utils.d.cts +0 -1
  47. package/dist/utils.d.ts +0 -1
  48. package/dist/utils.js +14 -4
  49. package/dist/utils.js.map +1 -1
  50. package/dist/{write-46ytbnu9.d.cts → write-A6VgHkYA.d.cts} +4 -1
  51. package/dist/{write-46ytbnu9.d.ts → write-A6VgHkYA.d.ts} +4 -1
  52. package/package.json +9 -8
  53. package/src/FileManager.ts +60 -57
  54. package/src/PluginManager.ts +11 -18
  55. package/src/build.ts +57 -32
  56. package/src/fs/clean.ts +2 -2
  57. package/src/fs/read.ts +1 -0
  58. package/src/fs/write.ts +40 -24
  59. package/src/logger.ts +10 -0
  60. package/src/utils/index.ts +0 -2
  61. package/dist/Queue-2-6pMcCx.d.cts +0 -32
  62. package/dist/Queue-2-6pMcCx.d.ts +0 -32
  63. package/dist/chunk-56YH3VX6.js +0 -239
  64. package/dist/chunk-56YH3VX6.js.map +0 -1
  65. package/dist/chunk-6N4JBFFS.js.map +0 -1
  66. package/dist/chunk-72O327DC.cjs +0 -247
  67. package/dist/chunk-72O327DC.cjs.map +0 -1
  68. package/dist/chunk-77QZQ377.cjs.map +0 -1
  69. package/dist/chunk-FOQFLMOC.js.map +0 -1
  70. package/dist/chunk-PY7I7OEN.cjs.map +0 -1
  71. package/dist/chunk-WFDR7OMY.js.map +0 -1
  72. package/dist/chunk-Z7XZQBAK.cjs +0 -2339
  73. package/dist/chunk-Z7XZQBAK.cjs.map +0 -1
  74. package/src/utils/Queue.ts +0 -110
  75. /package/dist/{chunk-SX2AYX5F.js.map → chunk-DKYWBKNH.js.map} +0 -0
  76. /package/dist/{chunk-L6F5QUH2.js.map → chunk-SRGTC4FJ.js.map} +0 -0
  77. /package/dist/{chunk-ABFPJZJL.cjs.map → chunk-U4C2WTCI.cjs.map} +0 -0
@@ -1,239 +0,0 @@
1
- import { createRequire } from 'module';
2
- import { camelCase } from './chunk-SX2AYX5F.js';
3
- import { init_esm_shims, __privateAdd, __privateGet, __privateSet, __privateMethod, __privateWrapper } from './chunk-6N4JBFFS.js';
4
- import crypto from 'crypto';
5
- import { performance } from 'perf_hooks';
6
- import { EventEmitter as EventEmitter$1 } from 'events';
7
-
8
- createRequire(import.meta.url);
9
-
10
- // src/utils/URLPath.ts
11
- init_esm_shims();
12
- var URLPath = class {
13
- constructor(path) {
14
- this.path = path;
15
- return this;
16
- }
17
- /**
18
- * Convert Swagger path to URLPath(syntax of Express)
19
- * @example /pet/{petId} => /pet/:petId
20
- */
21
- get URL() {
22
- return this.toURLPath();
23
- }
24
- get isURL() {
25
- try {
26
- const url = new URL(this.path);
27
- if (url?.href) {
28
- return true;
29
- }
30
- } catch (error) {
31
- return false;
32
- }
33
- return false;
34
- }
35
- /**
36
- * Convert Swagger path to template literals/ template strings(camelcase)
37
- * @example /pet/{petId} => `/pet/${petId}`
38
- * @example /account/monetary-accountID => `/account/${monetaryAccountId}`
39
- * @example /account/userID => `/account/${userId}`
40
- */
41
- get template() {
42
- return this.toTemplateString();
43
- }
44
- get object() {
45
- return this.toObject();
46
- }
47
- get params() {
48
- return this.getParams();
49
- }
50
- toObject({ type = "path", replacer, stringify } = {}) {
51
- const object = {
52
- url: type === "path" ? this.toURLPath() : this.toTemplateString(replacer),
53
- params: this.getParams()
54
- };
55
- if (stringify) {
56
- if (type === "template") {
57
- return JSON.stringify(object).replaceAll("'", "").replaceAll(`"`, "");
58
- }
59
- if (object.params) {
60
- return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll("'", "").replaceAll(`"`, "")} }`;
61
- }
62
- return `{ url: '${object.url}' }`;
63
- }
64
- return object;
65
- }
66
- /**
67
- * Convert Swagger path to template literals/ template strings(camelcase)
68
- * @example /pet/{petId} => `/pet/${petId}`
69
- * @example /account/monetary-accountID => `/account/${monetaryAccountId}`
70
- * @example /account/userID => `/account/${userId}`
71
- */
72
- toTemplateString(replacer) {
73
- const regex = /{(\w|-)*}/g;
74
- const found = this.path.match(regex);
75
- let newPath = this.path.replaceAll("{", "${");
76
- if (found) {
77
- newPath = found.reduce((prev, curr) => {
78
- const pathParam = replacer ? replacer(camelCase(curr)) : camelCase(curr);
79
- const replacement = `\${${pathParam}}`;
80
- return prev.replace(curr, replacement);
81
- }, this.path);
82
- }
83
- return `\`${newPath}\``;
84
- }
85
- getParams(replacer) {
86
- const regex = /{(\w|-)*}/g;
87
- const found = this.path.match(regex);
88
- if (!found) {
89
- return void 0;
90
- }
91
- const params = {};
92
- found.forEach((item) => {
93
- item = item.replaceAll("{", "").replaceAll("}", "");
94
- const pathParam = replacer ? replacer(camelCase(item)) : camelCase(item);
95
- params[pathParam] = pathParam;
96
- }, this.path);
97
- return params;
98
- }
99
- /**
100
- * Convert Swagger path to URLPath(syntax of Express)
101
- * @example /pet/{petId} => /pet/:petId
102
- */
103
- toURLPath() {
104
- return this.path.replaceAll("{", ":").replaceAll("}", "");
105
- }
106
- };
107
-
108
- // src/utils/timeout.ts
109
- init_esm_shims();
110
- async function timeout(ms) {
111
- return new Promise((resolve) => {
112
- setTimeout(() => {
113
- resolve(true);
114
- }, ms);
115
- });
116
- }
117
-
118
- // src/utils/Queue.ts
119
- init_esm_shims();
120
-
121
- // src/utils/EventEmitter.ts
122
- init_esm_shims();
123
- var _emitter;
124
- var EventEmitter = class {
125
- constructor() {
126
- __privateAdd(this, _emitter, new EventEmitter$1());
127
- __privateGet(this, _emitter).setMaxListeners(100);
128
- }
129
- emit(eventName, ...eventArg) {
130
- __privateGet(this, _emitter).emit(eventName, ...eventArg);
131
- }
132
- on(eventName, handler) {
133
- __privateGet(this, _emitter).on(eventName, handler);
134
- }
135
- off(eventName, handler) {
136
- __privateGet(this, _emitter).off(eventName, handler);
137
- }
138
- removeAll() {
139
- __privateGet(this, _emitter).removeAllListeners();
140
- }
141
- };
142
- _emitter = new WeakMap();
143
-
144
- // src/utils/Queue.ts
145
- var _queue, _workerCount, _maxParallel, _debug, _work, work_fn;
146
- var Queue = class {
147
- constructor(maxParallel, debug = false) {
148
- __privateAdd(this, _work);
149
- __privateAdd(this, _queue, []);
150
- this.eventEmitter = new EventEmitter();
151
- __privateAdd(this, _workerCount, 0);
152
- __privateAdd(this, _maxParallel, void 0);
153
- __privateAdd(this, _debug, false);
154
- __privateSet(this, _maxParallel, maxParallel);
155
- __privateSet(this, _debug, debug);
156
- }
157
- run(job, options = { controller: new AbortController(), name: crypto.randomUUID(), description: "" }) {
158
- return new Promise((resolve, reject) => {
159
- const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
160
- options.controller?.signal.addEventListener("abort", () => {
161
- __privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
162
- reject("Aborted");
163
- });
164
- __privateGet(this, _queue).push(item);
165
- __privateMethod(this, _work, work_fn).call(this);
166
- });
167
- }
168
- runSync(job, options = { controller: new AbortController(), name: crypto.randomUUID(), description: "" }) {
169
- new Promise((resolve, reject) => {
170
- const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
171
- options.controller?.signal.addEventListener("abort", () => {
172
- __privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
173
- });
174
- __privateGet(this, _queue).push(item);
175
- __privateMethod(this, _work, work_fn).call(this);
176
- });
177
- }
178
- get hasJobs() {
179
- return __privateGet(this, _workerCount) > 0 || __privateGet(this, _queue).length > 0;
180
- }
181
- get count() {
182
- return __privateGet(this, _workerCount);
183
- }
184
- };
185
- _queue = new WeakMap();
186
- _workerCount = new WeakMap();
187
- _maxParallel = new WeakMap();
188
- _debug = new WeakMap();
189
- _work = new WeakSet();
190
- work_fn = function() {
191
- if (__privateGet(this, _workerCount) >= __privateGet(this, _maxParallel)) {
192
- return;
193
- }
194
- __privateWrapper(this, _workerCount)._++;
195
- let entry;
196
- while (entry = __privateGet(this, _queue).shift()) {
197
- const { reject, resolve, job, name, description } = entry;
198
- if (__privateGet(this, _debug)) {
199
- performance.mark(name + "_start");
200
- }
201
- job().then((result) => {
202
- this.eventEmitter.emit("jobDone", result);
203
- resolve(result);
204
- if (__privateGet(this, _debug)) {
205
- performance.mark(name + "_stop");
206
- performance.measure(description, name + "_start", name + "_stop");
207
- }
208
- }).catch((err) => {
209
- this.eventEmitter.emit("jobFailed", err);
210
- reject(err);
211
- });
212
- }
213
- __privateWrapper(this, _workerCount)._--;
214
- };
215
-
216
- // src/utils/uniqueName.ts
217
- init_esm_shims();
218
- function getUniqueName(originalName, data) {
219
- let used = data[originalName] || 0;
220
- if (used) {
221
- data[originalName] = ++used;
222
- originalName += used;
223
- }
224
- data[originalName] = 1;
225
- return originalName;
226
- }
227
- function setUniqueName(originalName, data) {
228
- let used = data[originalName] || 0;
229
- if (used) {
230
- data[originalName] = ++used;
231
- return originalName;
232
- }
233
- data[originalName] = 1;
234
- return originalName;
235
- }
236
-
237
- export { EventEmitter, Queue, URLPath, getUniqueName, setUniqueName, timeout };
238
- //# sourceMappingURL=out.js.map
239
- //# sourceMappingURL=chunk-56YH3VX6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/URLPath.ts","../src/utils/timeout.ts","../src/utils/Queue.ts","../src/utils/EventEmitter.ts","../src/utils/uniqueName.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase } from '../transformers/casing.ts'\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\nexport class URLPath {\n path: string\n\n constructor(path: string) {\n this.path = path\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(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, curr) => {\n const pathParam = replacer\n ? replacer(camelCase(curr))\n : camelCase(curr)\n const replacement = `\\${${pathParam}}`\n\n return prev.replace(curr, replacement)\n }, this.path)\n }\n\n return `\\`${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 const pathParam = replacer\n ? replacer(camelCase(item))\n : camelCase(item)\n\n params[pathParam] = pathParam\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","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n","import crypto from 'node:crypto'\nimport { performance } from 'node:perf_hooks'\n\nimport { EventEmitter } from './EventEmitter.ts'\n\nexport type QueueJob<T = unknown> = {\n (...args: unknown[]): Promise<T | void>\n}\n\ntype RunOptions = {\n controller?: AbortController\n name?: string\n description?: string\n}\n\ntype QueueItem = {\n reject: <T>(reason?: T) => void\n resolve: <T>(value: T | PromiseLike<T>) => void\n job: QueueJob<unknown>\n} & Required<RunOptions>\n\ntype Events = {\n jobDone: [result: unknown]\n jobFailed: [error: Error]\n}\n\nexport class Queue {\n #queue: QueueItem[] = []\n readonly eventEmitter: EventEmitter<Events> = new EventEmitter()\n\n #workerCount = 0\n\n #maxParallel: number\n #debug = false\n\n constructor(maxParallel: number, debug = false) {\n this.#maxParallel = maxParallel\n this.#debug = debug\n }\n\n run<T>(job: QueueJob<T>, options: RunOptions = { controller: new AbortController(), name: crypto.randomUUID(), description: '' }): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const item = { reject, resolve, job, name: options.name, description: options.description || options.name } as QueueItem\n\n options.controller?.signal.addEventListener('abort', () => {\n this.#queue = this.#queue.filter((queueItem) => queueItem.name === item.name)\n\n reject('Aborted')\n })\n\n this.#queue.push(item)\n this.#work()\n })\n }\n\n runSync<T>(job: QueueJob<T>, options: RunOptions = { controller: new AbortController(), name: crypto.randomUUID(), description: '' }): void {\n new Promise<T>((resolve, reject) => {\n const item = { reject, resolve, job, name: options.name, description: options.description || options.name } as QueueItem\n\n options.controller?.signal.addEventListener('abort', () => {\n this.#queue = this.#queue.filter((queueItem) => queueItem.name === item.name)\n })\n\n this.#queue.push(item)\n this.#work()\n })\n }\n\n get hasJobs(): boolean {\n return this.#workerCount > 0 || this.#queue.length > 0\n }\n\n get count(): number {\n return this.#workerCount\n }\n\n #work(): void {\n if (this.#workerCount >= this.#maxParallel) {\n return\n }\n\n this.#workerCount++\n\n let entry: QueueItem | undefined\n while ((entry = this.#queue.shift())) {\n const { reject, resolve, job, name, description } = entry\n\n if (this.#debug) {\n performance.mark(name + '_start')\n }\n\n job()\n .then((result) => {\n this.eventEmitter.emit('jobDone', result)\n\n resolve(result)\n\n if (this.#debug) {\n performance.mark(name + '_stop')\n performance.measure(description, name + '_start', name + '_stop')\n }\n })\n .catch((err) => {\n this.eventEmitter.emit('jobFailed', err as Error)\n reject(err)\n })\n }\n this.#workerCount--\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { EventEmitter as NodeEventEmitter } from 'node:events'\n\nexport class EventEmitter<TEvents extends Record<string, any>> {\n constructor() {\n this.#emitter.setMaxListeners(100)\n }\n #emitter = new NodeEventEmitter()\n\n emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void {\n this.#emitter.emit(eventName, ...(eventArg as []))\n }\n\n on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.on(eventName, handler as any)\n }\n\n off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.off(eventName, handler as any)\n }\n removeAll(): void {\n this.#emitter.removeAllListeners()\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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.0.1_@microsoft+api-extractor@7.38.3_ts-node@10.9.1_typescript@5.3.2/node_modules/tsup/assets/esm_shims.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n"]}
@@ -1,247 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkPY7I7OEN_cjs = require('./chunk-PY7I7OEN.cjs');
4
- var chunkI7UUR5MZ_cjs = require('./chunk-I7UUR5MZ.cjs');
5
- var crypto = require('crypto');
6
- var perf_hooks = require('perf_hooks');
7
- var events = require('events');
8
-
9
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
-
11
- var crypto__default = /*#__PURE__*/_interopDefault(crypto);
12
-
13
- // src/utils/URLPath.ts
14
- chunkI7UUR5MZ_cjs.init_cjs_shims();
15
- var URLPath = class {
16
- constructor(path) {
17
- this.path = path;
18
- return this;
19
- }
20
- /**
21
- * Convert Swagger path to URLPath(syntax of Express)
22
- * @example /pet/{petId} => /pet/:petId
23
- */
24
- get URL() {
25
- return this.toURLPath();
26
- }
27
- get isURL() {
28
- try {
29
- const url = new URL(this.path);
30
- if (url?.href) {
31
- return true;
32
- }
33
- } catch (error) {
34
- return false;
35
- }
36
- return false;
37
- }
38
- /**
39
- * Convert Swagger path to template literals/ template strings(camelcase)
40
- * @example /pet/{petId} => `/pet/${petId}`
41
- * @example /account/monetary-accountID => `/account/${monetaryAccountId}`
42
- * @example /account/userID => `/account/${userId}`
43
- */
44
- get template() {
45
- return this.toTemplateString();
46
- }
47
- get object() {
48
- return this.toObject();
49
- }
50
- get params() {
51
- return this.getParams();
52
- }
53
- toObject({ type = "path", replacer, stringify } = {}) {
54
- const object = {
55
- url: type === "path" ? this.toURLPath() : this.toTemplateString(replacer),
56
- params: this.getParams()
57
- };
58
- if (stringify) {
59
- if (type === "template") {
60
- return JSON.stringify(object).replaceAll("'", "").replaceAll(`"`, "");
61
- }
62
- if (object.params) {
63
- return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll("'", "").replaceAll(`"`, "")} }`;
64
- }
65
- return `{ url: '${object.url}' }`;
66
- }
67
- return object;
68
- }
69
- /**
70
- * Convert Swagger path to template literals/ template strings(camelcase)
71
- * @example /pet/{petId} => `/pet/${petId}`
72
- * @example /account/monetary-accountID => `/account/${monetaryAccountId}`
73
- * @example /account/userID => `/account/${userId}`
74
- */
75
- toTemplateString(replacer) {
76
- const regex = /{(\w|-)*}/g;
77
- const found = this.path.match(regex);
78
- let newPath = this.path.replaceAll("{", "${");
79
- if (found) {
80
- newPath = found.reduce((prev, curr) => {
81
- const pathParam = replacer ? replacer(chunkPY7I7OEN_cjs.camelCase(curr)) : chunkPY7I7OEN_cjs.camelCase(curr);
82
- const replacement = `\${${pathParam}}`;
83
- return prev.replace(curr, replacement);
84
- }, this.path);
85
- }
86
- return `\`${newPath}\``;
87
- }
88
- getParams(replacer) {
89
- const regex = /{(\w|-)*}/g;
90
- const found = this.path.match(regex);
91
- if (!found) {
92
- return void 0;
93
- }
94
- const params = {};
95
- found.forEach((item) => {
96
- item = item.replaceAll("{", "").replaceAll("}", "");
97
- const pathParam = replacer ? replacer(chunkPY7I7OEN_cjs.camelCase(item)) : chunkPY7I7OEN_cjs.camelCase(item);
98
- params[pathParam] = pathParam;
99
- }, this.path);
100
- return params;
101
- }
102
- /**
103
- * Convert Swagger path to URLPath(syntax of Express)
104
- * @example /pet/{petId} => /pet/:petId
105
- */
106
- toURLPath() {
107
- return this.path.replaceAll("{", ":").replaceAll("}", "");
108
- }
109
- };
110
-
111
- // src/utils/timeout.ts
112
- chunkI7UUR5MZ_cjs.init_cjs_shims();
113
- async function timeout(ms) {
114
- return new Promise((resolve) => {
115
- setTimeout(() => {
116
- resolve(true);
117
- }, ms);
118
- });
119
- }
120
-
121
- // src/utils/Queue.ts
122
- chunkI7UUR5MZ_cjs.init_cjs_shims();
123
-
124
- // src/utils/EventEmitter.ts
125
- chunkI7UUR5MZ_cjs.init_cjs_shims();
126
- var _emitter;
127
- var EventEmitter = class {
128
- constructor() {
129
- chunkI7UUR5MZ_cjs.__privateAdd(this, _emitter, new events.EventEmitter());
130
- chunkI7UUR5MZ_cjs.__privateGet(this, _emitter).setMaxListeners(100);
131
- }
132
- emit(eventName, ...eventArg) {
133
- chunkI7UUR5MZ_cjs.__privateGet(this, _emitter).emit(eventName, ...eventArg);
134
- }
135
- on(eventName, handler) {
136
- chunkI7UUR5MZ_cjs.__privateGet(this, _emitter).on(eventName, handler);
137
- }
138
- off(eventName, handler) {
139
- chunkI7UUR5MZ_cjs.__privateGet(this, _emitter).off(eventName, handler);
140
- }
141
- removeAll() {
142
- chunkI7UUR5MZ_cjs.__privateGet(this, _emitter).removeAllListeners();
143
- }
144
- };
145
- _emitter = new WeakMap();
146
-
147
- // src/utils/Queue.ts
148
- var _queue, _workerCount, _maxParallel, _debug, _work, work_fn;
149
- var Queue = class {
150
- constructor(maxParallel, debug = false) {
151
- chunkI7UUR5MZ_cjs.__privateAdd(this, _work);
152
- chunkI7UUR5MZ_cjs.__privateAdd(this, _queue, []);
153
- this.eventEmitter = new EventEmitter();
154
- chunkI7UUR5MZ_cjs.__privateAdd(this, _workerCount, 0);
155
- chunkI7UUR5MZ_cjs.__privateAdd(this, _maxParallel, void 0);
156
- chunkI7UUR5MZ_cjs.__privateAdd(this, _debug, false);
157
- chunkI7UUR5MZ_cjs.__privateSet(this, _maxParallel, maxParallel);
158
- chunkI7UUR5MZ_cjs.__privateSet(this, _debug, debug);
159
- }
160
- run(job, options = { controller: new AbortController(), name: crypto__default.default.randomUUID(), description: "" }) {
161
- return new Promise((resolve, reject) => {
162
- const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
163
- options.controller?.signal.addEventListener("abort", () => {
164
- chunkI7UUR5MZ_cjs.__privateSet(this, _queue, chunkI7UUR5MZ_cjs.__privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
165
- reject("Aborted");
166
- });
167
- chunkI7UUR5MZ_cjs.__privateGet(this, _queue).push(item);
168
- chunkI7UUR5MZ_cjs.__privateMethod(this, _work, work_fn).call(this);
169
- });
170
- }
171
- runSync(job, options = { controller: new AbortController(), name: crypto__default.default.randomUUID(), description: "" }) {
172
- new Promise((resolve, reject) => {
173
- const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
174
- options.controller?.signal.addEventListener("abort", () => {
175
- chunkI7UUR5MZ_cjs.__privateSet(this, _queue, chunkI7UUR5MZ_cjs.__privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
176
- });
177
- chunkI7UUR5MZ_cjs.__privateGet(this, _queue).push(item);
178
- chunkI7UUR5MZ_cjs.__privateMethod(this, _work, work_fn).call(this);
179
- });
180
- }
181
- get hasJobs() {
182
- return chunkI7UUR5MZ_cjs.__privateGet(this, _workerCount) > 0 || chunkI7UUR5MZ_cjs.__privateGet(this, _queue).length > 0;
183
- }
184
- get count() {
185
- return chunkI7UUR5MZ_cjs.__privateGet(this, _workerCount);
186
- }
187
- };
188
- _queue = new WeakMap();
189
- _workerCount = new WeakMap();
190
- _maxParallel = new WeakMap();
191
- _debug = new WeakMap();
192
- _work = new WeakSet();
193
- work_fn = function() {
194
- if (chunkI7UUR5MZ_cjs.__privateGet(this, _workerCount) >= chunkI7UUR5MZ_cjs.__privateGet(this, _maxParallel)) {
195
- return;
196
- }
197
- chunkI7UUR5MZ_cjs.__privateWrapper(this, _workerCount)._++;
198
- let entry;
199
- while (entry = chunkI7UUR5MZ_cjs.__privateGet(this, _queue).shift()) {
200
- const { reject, resolve, job, name, description } = entry;
201
- if (chunkI7UUR5MZ_cjs.__privateGet(this, _debug)) {
202
- perf_hooks.performance.mark(name + "_start");
203
- }
204
- job().then((result) => {
205
- this.eventEmitter.emit("jobDone", result);
206
- resolve(result);
207
- if (chunkI7UUR5MZ_cjs.__privateGet(this, _debug)) {
208
- perf_hooks.performance.mark(name + "_stop");
209
- perf_hooks.performance.measure(description, name + "_start", name + "_stop");
210
- }
211
- }).catch((err) => {
212
- this.eventEmitter.emit("jobFailed", err);
213
- reject(err);
214
- });
215
- }
216
- chunkI7UUR5MZ_cjs.__privateWrapper(this, _workerCount)._--;
217
- };
218
-
219
- // src/utils/uniqueName.ts
220
- chunkI7UUR5MZ_cjs.init_cjs_shims();
221
- function getUniqueName(originalName, data) {
222
- let used = data[originalName] || 0;
223
- if (used) {
224
- data[originalName] = ++used;
225
- originalName += used;
226
- }
227
- data[originalName] = 1;
228
- return originalName;
229
- }
230
- function setUniqueName(originalName, data) {
231
- let used = data[originalName] || 0;
232
- if (used) {
233
- data[originalName] = ++used;
234
- return originalName;
235
- }
236
- data[originalName] = 1;
237
- return originalName;
238
- }
239
-
240
- exports.EventEmitter = EventEmitter;
241
- exports.Queue = Queue;
242
- exports.URLPath = URLPath;
243
- exports.getUniqueName = getUniqueName;
244
- exports.setUniqueName = setUniqueName;
245
- exports.timeout = timeout;
246
- //# sourceMappingURL=out.js.map
247
- //# sourceMappingURL=chunk-72O327DC.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/URLPath.ts","../src/utils/timeout.ts","../src/utils/Queue.ts","../src/utils/EventEmitter.ts","../src/utils/uniqueName.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase } from '../transformers/casing.ts'\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\nexport class URLPath {\n path: string\n\n constructor(path: string) {\n this.path = path\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(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, curr) => {\n const pathParam = replacer\n ? replacer(camelCase(curr))\n : camelCase(curr)\n const replacement = `\\${${pathParam}}`\n\n return prev.replace(curr, replacement)\n }, this.path)\n }\n\n return `\\`${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 const pathParam = replacer\n ? replacer(camelCase(item))\n : camelCase(item)\n\n params[pathParam] = pathParam\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","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n","import crypto from 'node:crypto'\nimport { performance } from 'node:perf_hooks'\n\nimport { EventEmitter } from './EventEmitter.ts'\n\nexport type QueueJob<T = unknown> = {\n (...args: unknown[]): Promise<T | void>\n}\n\ntype RunOptions = {\n controller?: AbortController\n name?: string\n description?: string\n}\n\ntype QueueItem = {\n reject: <T>(reason?: T) => void\n resolve: <T>(value: T | PromiseLike<T>) => void\n job: QueueJob<unknown>\n} & Required<RunOptions>\n\ntype Events = {\n jobDone: [result: unknown]\n jobFailed: [error: Error]\n}\n\nexport class Queue {\n #queue: QueueItem[] = []\n readonly eventEmitter: EventEmitter<Events> = new EventEmitter()\n\n #workerCount = 0\n\n #maxParallel: number\n #debug = false\n\n constructor(maxParallel: number, debug = false) {\n this.#maxParallel = maxParallel\n this.#debug = debug\n }\n\n run<T>(job: QueueJob<T>, options: RunOptions = { controller: new AbortController(), name: crypto.randomUUID(), description: '' }): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const item = { reject, resolve, job, name: options.name, description: options.description || options.name } as QueueItem\n\n options.controller?.signal.addEventListener('abort', () => {\n this.#queue = this.#queue.filter((queueItem) => queueItem.name === item.name)\n\n reject('Aborted')\n })\n\n this.#queue.push(item)\n this.#work()\n })\n }\n\n runSync<T>(job: QueueJob<T>, options: RunOptions = { controller: new AbortController(), name: crypto.randomUUID(), description: '' }): void {\n new Promise<T>((resolve, reject) => {\n const item = { reject, resolve, job, name: options.name, description: options.description || options.name } as QueueItem\n\n options.controller?.signal.addEventListener('abort', () => {\n this.#queue = this.#queue.filter((queueItem) => queueItem.name === item.name)\n })\n\n this.#queue.push(item)\n this.#work()\n })\n }\n\n get hasJobs(): boolean {\n return this.#workerCount > 0 || this.#queue.length > 0\n }\n\n get count(): number {\n return this.#workerCount\n }\n\n #work(): void {\n if (this.#workerCount >= this.#maxParallel) {\n return\n }\n\n this.#workerCount++\n\n let entry: QueueItem | undefined\n while ((entry = this.#queue.shift())) {\n const { reject, resolve, job, name, description } = entry\n\n if (this.#debug) {\n performance.mark(name + '_start')\n }\n\n job()\n .then((result) => {\n this.eventEmitter.emit('jobDone', result)\n\n resolve(result)\n\n if (this.#debug) {\n performance.mark(name + '_stop')\n performance.measure(description, name + '_start', name + '_stop')\n }\n })\n .catch((err) => {\n this.eventEmitter.emit('jobFailed', err as Error)\n reject(err)\n })\n }\n this.#workerCount--\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { EventEmitter as NodeEventEmitter } from 'node:events'\n\nexport class EventEmitter<TEvents extends Record<string, any>> {\n constructor() {\n this.#emitter.setMaxListeners(100)\n }\n #emitter = new NodeEventEmitter()\n\n emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void {\n this.#emitter.emit(eventName, ...(eventArg as []))\n }\n\n on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.on(eventName, handler as any)\n }\n\n off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.off(eventName, handler as any)\n }\n removeAll(): void {\n this.#emitter.removeAllListeners()\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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/logger.ts","../../../node_modules/.pnpm/tinyrainbow@1.1.1/node_modules/tinyrainbow/dist/node.js","../../../node_modules/.pnpm/tinyrainbow@1.1.1/node_modules/tinyrainbow/dist/chunk-5WCZOS7T.js"],"names":["r","p"],"mappings":"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","sourcesContent":["import seedrandom from 'seedrandom'\nimport c, { createColors } from 'tinyrainbow'\n\nimport type { Ora } from 'ora'\nimport type { Formatter } from 'tinyrainbow'\n\nexport const LogLevel = {\n silent: 'silent',\n info: 'info',\n debug: 'debug',\n} as const\n\nexport type LogLevel = keyof typeof LogLevel\n\nexport type Logger = {\n /**\n * Optional config name to show in CLI output\n */\n name?: string\n logLevel: LogLevel\n log: (message: string | null) => void\n error: (message: string | null) => void\n info: (message: string | null) => void\n warn: (message: string | null) => void\n spinner?: Ora\n logs: string[]\n}\n\ntype Props = {\n name?: string\n logLevel: LogLevel\n spinner?: Ora\n}\n\nexport function createLogger({ logLevel, name, spinner }: Props): Logger {\n const logs: string[] = []\n const log: Logger['log'] = (message) => {\n if (message && spinner) {\n spinner.text = message\n logs.push(message)\n }\n }\n\n const error: Logger['error'] = (message) => {\n if (message) {\n throw new Error(message || 'Something went wrong')\n }\n }\n\n const warn: Logger['warn'] = (message) => {\n if (message && spinner) {\n spinner.warn(c.yellow(message))\n logs.push(message)\n }\n }\n\n const info: Logger['warn'] = (message) => {\n if (message && spinner && logLevel !== LogLevel.silent) {\n spinner.info(message)\n logs.push(message)\n }\n }\n\n const logger: Logger = {\n name,\n logLevel,\n log,\n error,\n warn,\n info,\n spinner,\n logs,\n }\n\n return logger\n}\n\nconst defaultColours = ['black', 'blue', 'darkBlue', 'cyan', 'gray', 'green', 'darkGreen', 'magenta', 'red', 'darkRed', 'yellow', 'darkYellow'] as const\n\nexport function randomColour(text?: string, colours = defaultColours): string {\n if (!text) {\n return 'white'\n }\n\n const random = seedrandom(text)\n const colour = colours.at(Math.floor(random() * colours.length)) || 'white'\n\n return colour\n}\n\nexport function randomCliColour(text?: string, colors = defaultColours): string {\n const colours = createColors(true)\n\n if (!text) {\n return colours.white(text)\n }\n\n const colour = randomColour(text, colors)\n const isDark = colour.includes('dark')\n const key = colour.replace('dark', '').toLowerCase() as keyof typeof colours\n const formatter: Formatter = colours[key] as Formatter\n\n if (isDark) {\n return c.bold(formatter(text))\n }\n\n if (typeof formatter !== 'function') {\n throw new Error('Formatter for picoColor is not of type function/Formatter')\n }\n return formatter(text)\n}\n","import {\n a as t,\n b as e,\n c as o\n} from \"./chunk-5WCZOS7T.js\";\n\n// src/node.ts\nimport { isatty as r } from \"tty\";\nvar p = o(r(1));\nexport {\n o as createColors,\n p as default,\n t as getDefaultColors,\n e as isSupported\n};\n","// src/index.ts\nvar b = {\n reset: [0, 0],\n bold: [1, 22, \"\\x1B[22m\\x1B[1m\"],\n dim: [2, 22, \"\\x1B[22m\\x1B[2m\"],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49]\n}, C = Object.entries(b);\nfunction d(r) {\n return String(r);\n}\nd.open = \"\";\nd.close = \"\";\nvar m = /* @__PURE__ */ C.reduce(\n (r, [n]) => (r[n] = d, r),\n { isColorSupported: !1 }\n);\nfunction x() {\n return { ...m };\n}\nfunction p(r = !1) {\n let n = typeof process != \"undefined\" ? process : void 0, t = (n == null ? void 0 : n.env) || {}, a = (n == null ? void 0 : n.argv) || [];\n return !(\"NO_COLOR\" in t || a.includes(\"--no-color\")) && !(\"GITHUB_ACTIONS\" in t) && (\"FORCE_COLOR\" in t || a.includes(\"--color\") || (n == null ? void 0 : n.platform) === \"win32\" || r && t.TERM !== \"dumb\" || \"CI\" in t) || typeof window != \"undefined\" && !!window.chrome;\n}\nfunction w(r = !1) {\n let n = p(r), t = (e, o, c, i) => {\n let u = e.substring(0, i) + c, s = e.substring(i + o.length), l = s.indexOf(o);\n return ~l ? u + t(s, o, c, l) : u + s;\n }, a = (e, o, c = e) => {\n let i = (u) => {\n let s = String(u), l = s.indexOf(o, e.length);\n return ~l ? e + t(s, o, c, l) + o : e + s + o;\n };\n return i.open = e, i.close = o, i;\n }, g = {\n isColorSupported: n\n }, f = (e) => `\\x1B[${e}m`;\n for (let [e, o] of C)\n g[e] = n ? a(\n f(o[0]),\n f(o[1]),\n o[2]\n ) : d;\n return g;\n}\n\nexport {\n x as a,\n p as b,\n w as c\n};\n"]}