@mesadev/rest 0.4.0 → 0.5.0

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 (72) hide show
  1. package/dist/index.d.mts +3361 -0
  2. package/dist/index.d.mts.map +1 -0
  3. package/dist/index.mjs +944 -0
  4. package/dist/index.mjs.map +1 -0
  5. package/package.json +8 -6
  6. package/src/index.ts +18 -18
  7. package/src/sdk.gen.ts +13 -13
  8. package/src/types.gen.ts +32 -32
  9. package/dist/client/client.gen.d.ts +0 -3
  10. package/dist/client/client.gen.d.ts.map +0 -1
  11. package/dist/client/client.gen.js +0 -235
  12. package/dist/client/client.gen.js.map +0 -1
  13. package/dist/client/index.d.ts +0 -9
  14. package/dist/client/index.d.ts.map +0 -1
  15. package/dist/client/index.js +0 -7
  16. package/dist/client/index.js.map +0 -1
  17. package/dist/client/types.gen.d.ts +0 -118
  18. package/dist/client/types.gen.d.ts.map +0 -1
  19. package/dist/client/types.gen.js +0 -3
  20. package/dist/client/types.gen.js.map +0 -1
  21. package/dist/client/utils.gen.d.ts +0 -34
  22. package/dist/client/utils.gen.d.ts.map +0 -1
  23. package/dist/client/utils.gen.js +0 -229
  24. package/dist/client/utils.gen.js.map +0 -1
  25. package/dist/client.gen.d.ts +0 -13
  26. package/dist/client.gen.d.ts.map +0 -1
  27. package/dist/client.gen.js +0 -4
  28. package/dist/client.gen.js.map +0 -1
  29. package/dist/core/auth.gen.d.ts +0 -19
  30. package/dist/core/auth.gen.d.ts.map +0 -1
  31. package/dist/core/auth.gen.js +0 -15
  32. package/dist/core/auth.gen.js.map +0 -1
  33. package/dist/core/bodySerializer.gen.d.ts +0 -26
  34. package/dist/core/bodySerializer.gen.d.ts.map +0 -1
  35. package/dist/core/bodySerializer.gen.js +0 -58
  36. package/dist/core/bodySerializer.gen.js.map +0 -1
  37. package/dist/core/params.gen.d.ts +0 -44
  38. package/dist/core/params.gen.d.ts.map +0 -1
  39. package/dist/core/params.gen.js +0 -101
  40. package/dist/core/params.gen.js.map +0 -1
  41. package/dist/core/pathSerializer.gen.d.ts +0 -34
  42. package/dist/core/pathSerializer.gen.d.ts.map +0 -1
  43. package/dist/core/pathSerializer.gen.js +0 -107
  44. package/dist/core/pathSerializer.gen.js.map +0 -1
  45. package/dist/core/queryKeySerializer.gen.d.ts +0 -19
  46. package/dist/core/queryKeySerializer.gen.d.ts.map +0 -1
  47. package/dist/core/queryKeySerializer.gen.js +0 -93
  48. package/dist/core/queryKeySerializer.gen.js.map +0 -1
  49. package/dist/core/serverSentEvents.gen.d.ts +0 -72
  50. package/dist/core/serverSentEvents.gen.d.ts.map +0 -1
  51. package/dist/core/serverSentEvents.gen.js +0 -134
  52. package/dist/core/serverSentEvents.gen.js.map +0 -1
  53. package/dist/core/types.gen.d.ts +0 -79
  54. package/dist/core/types.gen.d.ts.map +0 -1
  55. package/dist/core/types.gen.js +0 -3
  56. package/dist/core/types.gen.js.map +0 -1
  57. package/dist/core/utils.gen.d.ts +0 -20
  58. package/dist/core/utils.gen.d.ts.map +0 -1
  59. package/dist/core/utils.gen.js +0 -88
  60. package/dist/core/utils.gen.js.map +0 -1
  61. package/dist/index.d.ts +0 -3
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/index.js +0 -3
  64. package/dist/index.js.map +0 -1
  65. package/dist/sdk.gen.d.ts +0 -154
  66. package/dist/sdk.gen.d.ts.map +0 -1
  67. package/dist/sdk.gen.js +0 -261
  68. package/dist/sdk.gen.js.map +0 -1
  69. package/dist/types.gen.d.ts +0 -2895
  70. package/dist/types.gen.d.ts.map +0 -1
  71. package/dist/types.gen.js +0 -3
  72. package/dist/types.gen.js.map +0 -1
package/dist/index.mjs ADDED
@@ -0,0 +1,944 @@
1
+ //#region src/core/bodySerializer.gen.ts
2
+ const jsonBodySerializer = { bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value) };
3
+ Object.entries({
4
+ $body_: "body",
5
+ $headers_: "headers",
6
+ $path_: "path",
7
+ $query_: "query"
8
+ });
9
+ //#endregion
10
+ //#region src/core/serverSentEvents.gen.ts
11
+ const createSseClient = ({ onRequest, onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) => {
12
+ let lastEventId;
13
+ const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
14
+ const createStream = async function* () {
15
+ let retryDelay = sseDefaultRetryDelay ?? 3e3;
16
+ let attempt = 0;
17
+ const signal = options.signal ?? new AbortController().signal;
18
+ while (true) {
19
+ if (signal.aborted) break;
20
+ attempt++;
21
+ const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
22
+ if (lastEventId !== void 0) headers.set("Last-Event-ID", lastEventId);
23
+ try {
24
+ const requestInit = {
25
+ redirect: "follow",
26
+ ...options,
27
+ body: options.serializedBody,
28
+ headers,
29
+ signal
30
+ };
31
+ let request = new Request(url, requestInit);
32
+ if (onRequest) request = await onRequest(url, requestInit);
33
+ const response = await (options.fetch ?? globalThis.fetch)(request);
34
+ if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
35
+ if (!response.body) throw new Error("No body in SSE response");
36
+ const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
37
+ let buffer = "";
38
+ const abortHandler = () => {
39
+ try {
40
+ reader.cancel();
41
+ } catch {}
42
+ };
43
+ signal.addEventListener("abort", abortHandler);
44
+ try {
45
+ while (true) {
46
+ const { done, value } = await reader.read();
47
+ if (done) break;
48
+ buffer += value;
49
+ buffer = buffer.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
50
+ const chunks = buffer.split("\n\n");
51
+ buffer = chunks.pop() ?? "";
52
+ for (const chunk of chunks) {
53
+ const lines = chunk.split("\n");
54
+ const dataLines = [];
55
+ let eventName;
56
+ for (const line of lines) if (line.startsWith("data:")) dataLines.push(line.replace(/^data:\s*/, ""));
57
+ else if (line.startsWith("event:")) eventName = line.replace(/^event:\s*/, "");
58
+ else if (line.startsWith("id:")) lastEventId = line.replace(/^id:\s*/, "");
59
+ else if (line.startsWith("retry:")) {
60
+ const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
61
+ if (!Number.isNaN(parsed)) retryDelay = parsed;
62
+ }
63
+ let data;
64
+ let parsedJson = false;
65
+ if (dataLines.length) {
66
+ const rawData = dataLines.join("\n");
67
+ try {
68
+ data = JSON.parse(rawData);
69
+ parsedJson = true;
70
+ } catch {
71
+ data = rawData;
72
+ }
73
+ }
74
+ if (parsedJson) {
75
+ if (responseValidator) await responseValidator(data);
76
+ if (responseTransformer) data = await responseTransformer(data);
77
+ }
78
+ onSseEvent?.({
79
+ data,
80
+ event: eventName,
81
+ id: lastEventId,
82
+ retry: retryDelay
83
+ });
84
+ if (dataLines.length) yield data;
85
+ }
86
+ }
87
+ } finally {
88
+ signal.removeEventListener("abort", abortHandler);
89
+ reader.releaseLock();
90
+ }
91
+ break;
92
+ } catch (error) {
93
+ onSseError?.(error);
94
+ if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) break;
95
+ await sleep(Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4));
96
+ }
97
+ }
98
+ };
99
+ return { stream: createStream() };
100
+ };
101
+ //#endregion
102
+ //#region src/core/pathSerializer.gen.ts
103
+ const separatorArrayExplode = (style) => {
104
+ switch (style) {
105
+ case "label": return ".";
106
+ case "matrix": return ";";
107
+ case "simple": return ",";
108
+ default: return "&";
109
+ }
110
+ };
111
+ const separatorArrayNoExplode = (style) => {
112
+ switch (style) {
113
+ case "form": return ",";
114
+ case "pipeDelimited": return "|";
115
+ case "spaceDelimited": return "%20";
116
+ default: return ",";
117
+ }
118
+ };
119
+ const separatorObjectExplode = (style) => {
120
+ switch (style) {
121
+ case "label": return ".";
122
+ case "matrix": return ";";
123
+ case "simple": return ",";
124
+ default: return "&";
125
+ }
126
+ };
127
+ const serializeArrayParam = ({ allowReserved, explode, name, style, value }) => {
128
+ if (!explode) {
129
+ const joinedValues = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
130
+ switch (style) {
131
+ case "label": return `.${joinedValues}`;
132
+ case "matrix": return `;${name}=${joinedValues}`;
133
+ case "simple": return joinedValues;
134
+ default: return `${name}=${joinedValues}`;
135
+ }
136
+ }
137
+ const separator = separatorArrayExplode(style);
138
+ const joinedValues = value.map((v) => {
139
+ if (style === "label" || style === "simple") return allowReserved ? v : encodeURIComponent(v);
140
+ return serializePrimitiveParam({
141
+ allowReserved,
142
+ name,
143
+ value: v
144
+ });
145
+ }).join(separator);
146
+ return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
147
+ };
148
+ const serializePrimitiveParam = ({ allowReserved, name, value }) => {
149
+ if (value === void 0 || value === null) return "";
150
+ if (typeof value === "object") throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");
151
+ return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
152
+ };
153
+ const serializeObjectParam = ({ allowReserved, explode, name, style, value, valueOnly }) => {
154
+ if (value instanceof Date) return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
155
+ if (style !== "deepObject" && !explode) {
156
+ let values = [];
157
+ Object.entries(value).forEach(([key, v]) => {
158
+ values = [
159
+ ...values,
160
+ key,
161
+ allowReserved ? v : encodeURIComponent(v)
162
+ ];
163
+ });
164
+ const joinedValues = values.join(",");
165
+ switch (style) {
166
+ case "form": return `${name}=${joinedValues}`;
167
+ case "label": return `.${joinedValues}`;
168
+ case "matrix": return `;${name}=${joinedValues}`;
169
+ default: return joinedValues;
170
+ }
171
+ }
172
+ const separator = separatorObjectExplode(style);
173
+ const joinedValues = Object.entries(value).map(([key, v]) => serializePrimitiveParam({
174
+ allowReserved,
175
+ name: style === "deepObject" ? `${name}[${key}]` : key,
176
+ value: v
177
+ })).join(separator);
178
+ return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
179
+ };
180
+ //#endregion
181
+ //#region src/core/utils.gen.ts
182
+ const PATH_PARAM_RE = /\{[^{}]+\}/g;
183
+ const defaultPathSerializer = ({ path, url: _url }) => {
184
+ let url = _url;
185
+ const matches = _url.match(PATH_PARAM_RE);
186
+ if (matches) for (const match of matches) {
187
+ let explode = false;
188
+ let name = match.substring(1, match.length - 1);
189
+ let style = "simple";
190
+ if (name.endsWith("*")) {
191
+ explode = true;
192
+ name = name.substring(0, name.length - 1);
193
+ }
194
+ if (name.startsWith(".")) {
195
+ name = name.substring(1);
196
+ style = "label";
197
+ } else if (name.startsWith(";")) {
198
+ name = name.substring(1);
199
+ style = "matrix";
200
+ }
201
+ const value = path[name];
202
+ if (value === void 0 || value === null) continue;
203
+ if (Array.isArray(value)) {
204
+ url = url.replace(match, serializeArrayParam({
205
+ explode,
206
+ name,
207
+ style,
208
+ value
209
+ }));
210
+ continue;
211
+ }
212
+ if (typeof value === "object") {
213
+ url = url.replace(match, serializeObjectParam({
214
+ explode,
215
+ name,
216
+ style,
217
+ value,
218
+ valueOnly: true
219
+ }));
220
+ continue;
221
+ }
222
+ if (style === "matrix") {
223
+ url = url.replace(match, `;${serializePrimitiveParam({
224
+ name,
225
+ value
226
+ })}`);
227
+ continue;
228
+ }
229
+ const replaceValue = encodeURIComponent(style === "label" ? `.${value}` : value);
230
+ url = url.replace(match, replaceValue);
231
+ }
232
+ return url;
233
+ };
234
+ const getUrl = ({ baseUrl, path, query, querySerializer, url: _url }) => {
235
+ const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
236
+ let url = (baseUrl ?? "") + pathUrl;
237
+ if (path) url = defaultPathSerializer({
238
+ path,
239
+ url
240
+ });
241
+ let search = query ? querySerializer(query) : "";
242
+ if (search.startsWith("?")) search = search.substring(1);
243
+ if (search) url += `?${search}`;
244
+ return url;
245
+ };
246
+ function getValidRequestBody(options) {
247
+ const hasBody = options.body !== void 0;
248
+ if (hasBody && options.bodySerializer) {
249
+ if ("serializedBody" in options) return options.serializedBody !== void 0 && options.serializedBody !== "" ? options.serializedBody : null;
250
+ return options.body !== "" ? options.body : null;
251
+ }
252
+ if (hasBody) return options.body;
253
+ }
254
+ //#endregion
255
+ //#region src/core/auth.gen.ts
256
+ const getAuthToken = async (auth, callback) => {
257
+ const token = typeof callback === "function" ? await callback(auth) : callback;
258
+ if (!token) return;
259
+ if (auth.scheme === "bearer") return `Bearer ${token}`;
260
+ if (auth.scheme === "basic") return `Basic ${btoa(token)}`;
261
+ return token;
262
+ };
263
+ //#endregion
264
+ //#region src/client/utils.gen.ts
265
+ const createQuerySerializer = ({ parameters = {}, ...args } = {}) => {
266
+ const querySerializer = (queryParams) => {
267
+ const search = [];
268
+ if (queryParams && typeof queryParams === "object") for (const name in queryParams) {
269
+ const value = queryParams[name];
270
+ if (value === void 0 || value === null) continue;
271
+ const options = parameters[name] || args;
272
+ if (Array.isArray(value)) {
273
+ const serializedArray = serializeArrayParam({
274
+ allowReserved: options.allowReserved,
275
+ explode: true,
276
+ name,
277
+ style: "form",
278
+ value,
279
+ ...options.array
280
+ });
281
+ if (serializedArray) search.push(serializedArray);
282
+ } else if (typeof value === "object") {
283
+ const serializedObject = serializeObjectParam({
284
+ allowReserved: options.allowReserved,
285
+ explode: true,
286
+ name,
287
+ style: "deepObject",
288
+ value,
289
+ ...options.object
290
+ });
291
+ if (serializedObject) search.push(serializedObject);
292
+ } else {
293
+ const serializedPrimitive = serializePrimitiveParam({
294
+ allowReserved: options.allowReserved,
295
+ name,
296
+ value
297
+ });
298
+ if (serializedPrimitive) search.push(serializedPrimitive);
299
+ }
300
+ }
301
+ return search.join("&");
302
+ };
303
+ return querySerializer;
304
+ };
305
+ /**
306
+ * Infers parseAs value from provided Content-Type header.
307
+ */
308
+ const getParseAs = (contentType) => {
309
+ if (!contentType) return "stream";
310
+ const cleanContent = contentType.split(";")[0]?.trim();
311
+ if (!cleanContent) return;
312
+ if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) return "json";
313
+ if (cleanContent === "multipart/form-data") return "formData";
314
+ if ([
315
+ "application/",
316
+ "audio/",
317
+ "image/",
318
+ "video/"
319
+ ].some((type) => cleanContent.startsWith(type))) return "blob";
320
+ if (cleanContent.startsWith("text/")) return "text";
321
+ };
322
+ const checkForExistence = (options, name) => {
323
+ if (!name) return false;
324
+ if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) return true;
325
+ return false;
326
+ };
327
+ const setAuthParams = async ({ security, ...options }) => {
328
+ for (const auth of security) {
329
+ if (checkForExistence(options, auth.name)) continue;
330
+ const token = await getAuthToken(auth, options.auth);
331
+ if (!token) continue;
332
+ const name = auth.name ?? "Authorization";
333
+ switch (auth.in) {
334
+ case "query":
335
+ if (!options.query) options.query = {};
336
+ options.query[name] = token;
337
+ break;
338
+ case "cookie":
339
+ options.headers.append("Cookie", `${name}=${token}`);
340
+ break;
341
+ default:
342
+ options.headers.set(name, token);
343
+ break;
344
+ }
345
+ }
346
+ };
347
+ const buildUrl = (options) => getUrl({
348
+ baseUrl: options.baseUrl,
349
+ path: options.path,
350
+ query: options.query,
351
+ querySerializer: typeof options.querySerializer === "function" ? options.querySerializer : createQuerySerializer(options.querySerializer),
352
+ url: options.url
353
+ });
354
+ const mergeConfigs = (a, b) => {
355
+ const config = {
356
+ ...a,
357
+ ...b
358
+ };
359
+ if (config.baseUrl?.endsWith("/")) config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);
360
+ config.headers = mergeHeaders(a.headers, b.headers);
361
+ return config;
362
+ };
363
+ const headersEntries = (headers) => {
364
+ const entries = [];
365
+ headers.forEach((value, key) => {
366
+ entries.push([key, value]);
367
+ });
368
+ return entries;
369
+ };
370
+ const mergeHeaders = (...headers) => {
371
+ const mergedHeaders = new Headers();
372
+ for (const header of headers) {
373
+ if (!header) continue;
374
+ const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);
375
+ for (const [key, value] of iterator) if (value === null) mergedHeaders.delete(key);
376
+ else if (Array.isArray(value)) for (const v of value) mergedHeaders.append(key, v);
377
+ else if (value !== void 0) mergedHeaders.set(key, typeof value === "object" ? JSON.stringify(value) : value);
378
+ }
379
+ return mergedHeaders;
380
+ };
381
+ var Interceptors = class {
382
+ fns = [];
383
+ clear() {
384
+ this.fns = [];
385
+ }
386
+ eject(id) {
387
+ const index = this.getInterceptorIndex(id);
388
+ if (this.fns[index]) this.fns[index] = null;
389
+ }
390
+ exists(id) {
391
+ const index = this.getInterceptorIndex(id);
392
+ return Boolean(this.fns[index]);
393
+ }
394
+ getInterceptorIndex(id) {
395
+ if (typeof id === "number") return this.fns[id] ? id : -1;
396
+ return this.fns.indexOf(id);
397
+ }
398
+ update(id, fn) {
399
+ const index = this.getInterceptorIndex(id);
400
+ if (this.fns[index]) {
401
+ this.fns[index] = fn;
402
+ return id;
403
+ }
404
+ return false;
405
+ }
406
+ use(fn) {
407
+ this.fns.push(fn);
408
+ return this.fns.length - 1;
409
+ }
410
+ };
411
+ const createInterceptors = () => ({
412
+ error: new Interceptors(),
413
+ request: new Interceptors(),
414
+ response: new Interceptors()
415
+ });
416
+ const defaultQuerySerializer = createQuerySerializer({
417
+ allowReserved: false,
418
+ array: {
419
+ explode: true,
420
+ style: "form"
421
+ },
422
+ object: {
423
+ explode: true,
424
+ style: "deepObject"
425
+ }
426
+ });
427
+ const defaultHeaders = { "Content-Type": "application/json" };
428
+ const createConfig = (override = {}) => ({
429
+ ...jsonBodySerializer,
430
+ headers: defaultHeaders,
431
+ parseAs: "auto",
432
+ querySerializer: defaultQuerySerializer,
433
+ ...override
434
+ });
435
+ //#endregion
436
+ //#region src/client/client.gen.ts
437
+ const createClient = (config = {}) => {
438
+ let _config = mergeConfigs(createConfig(), config);
439
+ const getConfig = () => ({ ..._config });
440
+ const setConfig = (config) => {
441
+ _config = mergeConfigs(_config, config);
442
+ return getConfig();
443
+ };
444
+ const interceptors = createInterceptors();
445
+ const beforeRequest = async (options) => {
446
+ const opts = {
447
+ ..._config,
448
+ ...options,
449
+ fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
450
+ headers: mergeHeaders(_config.headers, options.headers),
451
+ serializedBody: void 0
452
+ };
453
+ if (opts.security) await setAuthParams({
454
+ ...opts,
455
+ security: opts.security
456
+ });
457
+ if (opts.requestValidator) await opts.requestValidator(opts);
458
+ if (opts.body !== void 0 && opts.bodySerializer) opts.serializedBody = opts.bodySerializer(opts.body);
459
+ if (opts.body === void 0 || opts.serializedBody === "") opts.headers.delete("Content-Type");
460
+ return {
461
+ opts,
462
+ url: buildUrl(opts)
463
+ };
464
+ };
465
+ const request = async (options) => {
466
+ const { opts, url } = await beforeRequest(options);
467
+ const requestInit = {
468
+ redirect: "follow",
469
+ ...opts,
470
+ body: getValidRequestBody(opts)
471
+ };
472
+ let request = new Request(url, requestInit);
473
+ for (const fn of interceptors.request.fns) if (fn) request = await fn(request, opts);
474
+ const _fetch = opts.fetch;
475
+ let response;
476
+ try {
477
+ response = await _fetch(request);
478
+ } catch (error) {
479
+ let finalError = error;
480
+ for (const fn of interceptors.error.fns) if (fn) finalError = await fn(error, void 0, request, opts);
481
+ finalError = finalError || {};
482
+ if (opts.throwOnError) throw finalError;
483
+ return opts.responseStyle === "data" ? void 0 : {
484
+ error: finalError,
485
+ request,
486
+ response: void 0
487
+ };
488
+ }
489
+ for (const fn of interceptors.response.fns) if (fn) response = await fn(response, request, opts);
490
+ const result = {
491
+ request,
492
+ response
493
+ };
494
+ if (response.ok) {
495
+ const parseAs = (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json";
496
+ if (response.status === 204 || response.headers.get("Content-Length") === "0") {
497
+ let emptyData;
498
+ switch (parseAs) {
499
+ case "arrayBuffer":
500
+ case "blob":
501
+ case "text":
502
+ emptyData = await response[parseAs]();
503
+ break;
504
+ case "formData":
505
+ emptyData = new FormData();
506
+ break;
507
+ case "stream":
508
+ emptyData = response.body;
509
+ break;
510
+ default:
511
+ emptyData = {};
512
+ break;
513
+ }
514
+ return opts.responseStyle === "data" ? emptyData : {
515
+ data: emptyData,
516
+ ...result
517
+ };
518
+ }
519
+ let data;
520
+ switch (parseAs) {
521
+ case "arrayBuffer":
522
+ case "blob":
523
+ case "formData":
524
+ case "text":
525
+ data = await response[parseAs]();
526
+ break;
527
+ case "json": {
528
+ const text = await response.text();
529
+ data = text ? JSON.parse(text) : {};
530
+ break;
531
+ }
532
+ case "stream": return opts.responseStyle === "data" ? response.body : {
533
+ data: response.body,
534
+ ...result
535
+ };
536
+ }
537
+ if (parseAs === "json") {
538
+ if (opts.responseValidator) await opts.responseValidator(data);
539
+ if (opts.responseTransformer) data = await opts.responseTransformer(data);
540
+ }
541
+ return opts.responseStyle === "data" ? data : {
542
+ data,
543
+ ...result
544
+ };
545
+ }
546
+ const textError = await response.text();
547
+ let jsonError;
548
+ try {
549
+ jsonError = JSON.parse(textError);
550
+ } catch {}
551
+ const error = jsonError ?? textError;
552
+ let finalError = error;
553
+ for (const fn of interceptors.error.fns) if (fn) finalError = await fn(error, response, request, opts);
554
+ finalError = finalError || {};
555
+ if (opts.throwOnError) throw finalError;
556
+ return opts.responseStyle === "data" ? void 0 : {
557
+ error: finalError,
558
+ ...result
559
+ };
560
+ };
561
+ const makeMethodFn = (method) => (options) => request({
562
+ ...options,
563
+ method
564
+ });
565
+ const makeSseFn = (method) => async (options) => {
566
+ const { opts, url } = await beforeRequest(options);
567
+ return createSseClient({
568
+ ...opts,
569
+ body: opts.body,
570
+ headers: opts.headers,
571
+ method,
572
+ onRequest: async (url, init) => {
573
+ let request = new Request(url, init);
574
+ for (const fn of interceptors.request.fns) if (fn) request = await fn(request, opts);
575
+ return request;
576
+ },
577
+ serializedBody: getValidRequestBody(opts),
578
+ url
579
+ });
580
+ };
581
+ return {
582
+ buildUrl,
583
+ connect: makeMethodFn("CONNECT"),
584
+ delete: makeMethodFn("DELETE"),
585
+ get: makeMethodFn("GET"),
586
+ getConfig,
587
+ head: makeMethodFn("HEAD"),
588
+ interceptors,
589
+ options: makeMethodFn("OPTIONS"),
590
+ patch: makeMethodFn("PATCH"),
591
+ post: makeMethodFn("POST"),
592
+ put: makeMethodFn("PUT"),
593
+ request,
594
+ setConfig,
595
+ sse: {
596
+ connect: makeSseFn("CONNECT"),
597
+ delete: makeSseFn("DELETE"),
598
+ get: makeSseFn("GET"),
599
+ head: makeSseFn("HEAD"),
600
+ options: makeSseFn("OPTIONS"),
601
+ patch: makeSseFn("PATCH"),
602
+ post: makeSseFn("POST"),
603
+ put: makeSseFn("PUT"),
604
+ trace: makeSseFn("TRACE")
605
+ },
606
+ trace: makeMethodFn("TRACE")
607
+ };
608
+ };
609
+ //#endregion
610
+ //#region src/client.gen.ts
611
+ const client = createClient(createConfig({ baseUrl: "https://api.mesa.dev/v1" }));
612
+ //#endregion
613
+ //#region src/sdk.gen.ts
614
+ /**
615
+ * Get caller identity
616
+ *
617
+ * Get the authenticated organization, effective scopes, and API key metadata
618
+ */
619
+ const getWhoami = (options) => (options?.client ?? client).get({
620
+ security: [{
621
+ scheme: "bearer",
622
+ type: "http"
623
+ }],
624
+ url: "/whoami",
625
+ ...options
626
+ });
627
+ /**
628
+ * List API keys
629
+ *
630
+ * List all API keys for the organization (key values are not returned)
631
+ */
632
+ const getByOrgApiKey = (options) => (options.client ?? client).get({
633
+ security: [{
634
+ scheme: "bearer",
635
+ type: "http"
636
+ }],
637
+ url: "/{org}/api-key",
638
+ ...options
639
+ });
640
+ /**
641
+ * Create API key
642
+ *
643
+ * Create a new API key for programmatic access
644
+ */
645
+ const postByOrgApiKey = (options) => (options.client ?? client).post({
646
+ security: [{
647
+ scheme: "bearer",
648
+ type: "http"
649
+ }],
650
+ url: "/{org}/api-key",
651
+ ...options,
652
+ headers: {
653
+ "Content-Type": "application/json",
654
+ ...options.headers
655
+ }
656
+ });
657
+ /**
658
+ * Revoke API key
659
+ *
660
+ * Revoke an API key by its ID
661
+ */
662
+ const deleteByOrgApiKeyById = (options) => (options.client ?? client).delete({
663
+ security: [{
664
+ scheme: "bearer",
665
+ type: "http"
666
+ }],
667
+ url: "/{org}/api-key/{id}",
668
+ ...options
669
+ });
670
+ /**
671
+ * List repositories
672
+ *
673
+ * List repositories in the organization using cursor pagination
674
+ */
675
+ const getByOrgRepo = (options) => (options.client ?? client).get({
676
+ security: [{
677
+ scheme: "bearer",
678
+ type: "http"
679
+ }],
680
+ url: "/{org}/repo",
681
+ ...options
682
+ });
683
+ /**
684
+ * Create repository
685
+ *
686
+ * Create a new repository in the organization
687
+ */
688
+ const postByOrgRepo = (options) => (options.client ?? client).post({
689
+ security: [{
690
+ scheme: "bearer",
691
+ type: "http"
692
+ }],
693
+ url: "/{org}/repo",
694
+ ...options,
695
+ headers: {
696
+ "Content-Type": "application/json",
697
+ ...options.headers
698
+ }
699
+ });
700
+ /**
701
+ * Delete repository
702
+ *
703
+ * Permanently delete a repository and all its data
704
+ */
705
+ const deleteByOrgByRepo = (options) => (options.client ?? client).delete({
706
+ security: [{
707
+ scheme: "bearer",
708
+ type: "http"
709
+ }],
710
+ url: "/{org}/{repo}",
711
+ ...options
712
+ });
713
+ /**
714
+ * Get repository
715
+ *
716
+ * Get metadata for a specific repository
717
+ */
718
+ const getByOrgByRepo = (options) => (options.client ?? client).get({
719
+ security: [{
720
+ scheme: "bearer",
721
+ type: "http"
722
+ }],
723
+ url: "/{org}/{repo}",
724
+ ...options
725
+ });
726
+ /**
727
+ * Update repository
728
+ *
729
+ * Update repository name, default branch, tags, or upstream configuration. Tags are patched: set values to add/update and null values to remove.
730
+ */
731
+ const patchByOrgByRepo = (options) => (options.client ?? client).patch({
732
+ security: [{
733
+ scheme: "bearer",
734
+ type: "http"
735
+ }],
736
+ url: "/{org}/{repo}",
737
+ ...options,
738
+ headers: {
739
+ "Content-Type": "application/json",
740
+ ...options.headers
741
+ }
742
+ });
743
+ /**
744
+ * Get repo Tags
745
+ *
746
+ * Get repository tag values and counts
747
+ */
748
+ const getByOrgRepoTags = (options) => (options.client ?? client).get({
749
+ security: [{
750
+ scheme: "bearer",
751
+ type: "http"
752
+ }],
753
+ url: "/{org}/repo/tags",
754
+ ...options
755
+ });
756
+ /**
757
+ * Bulk update Tags
758
+ *
759
+ * Bulk set or remove repo tags
760
+ */
761
+ const postByOrgRepoBulkTags = (options) => (options.client ?? client).post({
762
+ security: [{
763
+ scheme: "bearer",
764
+ type: "http"
765
+ }],
766
+ url: "/{org}/repo/bulk/tags",
767
+ ...options,
768
+ headers: {
769
+ "Content-Type": "application/json",
770
+ ...options.headers
771
+ }
772
+ });
773
+ /**
774
+ * Get content
775
+ *
776
+ * Get file content or directory listing at a path. Use Accept: application/json for the JSON union response, or Accept: application/octet-stream for raw file bytes. Directory + octet-stream requests return 406 Not Acceptable.
777
+ */
778
+ const getByOrgByRepoContent = (options) => (options.client ?? client).get({
779
+ security: [{
780
+ scheme: "bearer",
781
+ type: "http"
782
+ }],
783
+ url: "/{org}/{repo}/content",
784
+ ...options
785
+ });
786
+ /**
787
+ * List bookmarks
788
+ *
789
+ * List all bookmarks in a repository
790
+ */
791
+ const getByOrgByRepoBookmark = (options) => (options.client ?? client).get({
792
+ security: [{
793
+ scheme: "bearer",
794
+ type: "http"
795
+ }],
796
+ url: "/{org}/{repo}/bookmark",
797
+ ...options
798
+ });
799
+ /**
800
+ * Create bookmark
801
+ *
802
+ * Create a new bookmark from an existing commit
803
+ */
804
+ const postByOrgByRepoBookmark = (options) => (options.client ?? client).post({
805
+ security: [{
806
+ scheme: "bearer",
807
+ type: "http"
808
+ }],
809
+ url: "/{org}/{repo}/bookmark",
810
+ ...options,
811
+ headers: {
812
+ "Content-Type": "application/json",
813
+ ...options.headers
814
+ }
815
+ });
816
+ /**
817
+ * Delete bookmark
818
+ *
819
+ * Delete a bookmark from a repository
820
+ */
821
+ const deleteByOrgByRepoBookmarkByBookmark = (options) => (options.client ?? client).delete({
822
+ security: [{
823
+ scheme: "bearer",
824
+ type: "http"
825
+ }],
826
+ url: "/{org}/{repo}/bookmark/{bookmark}",
827
+ ...options
828
+ });
829
+ /**
830
+ * List commits
831
+ *
832
+ * List commits for a repository from a specific ref
833
+ */
834
+ const getByOrgByRepoCommit = (options) => (options.client ?? client).get({
835
+ security: [{
836
+ scheme: "bearer",
837
+ type: "http"
838
+ }],
839
+ url: "/{org}/{repo}/commit",
840
+ ...options
841
+ });
842
+ /**
843
+ * Create commit
844
+ *
845
+ * Create a new commit on a branch with file changes
846
+ */
847
+ const postByOrgByRepoCommit = (options) => (options.client ?? client).post({
848
+ security: [{
849
+ scheme: "bearer",
850
+ type: "http"
851
+ }],
852
+ url: "/{org}/{repo}/commit",
853
+ ...options,
854
+ headers: {
855
+ "Content-Type": "application/json",
856
+ ...options.headers
857
+ }
858
+ });
859
+ /**
860
+ * Get commit
861
+ *
862
+ * Retrieve a specific commit by its SHA
863
+ */
864
+ const getByOrgByRepoCommitBySha = (options) => (options.client ?? client).get({
865
+ security: [{
866
+ scheme: "bearer",
867
+ type: "http"
868
+ }],
869
+ url: "/{org}/{repo}/commit/{sha}",
870
+ ...options
871
+ });
872
+ /**
873
+ * Get diff
874
+ *
875
+ * Retrieve the diff between two commit OIDs
876
+ */
877
+ const getByOrgByRepoDiff = (options) => (options.client ?? client).get({
878
+ security: [{
879
+ scheme: "bearer",
880
+ type: "http"
881
+ }],
882
+ url: "/{org}/{repo}/diff",
883
+ ...options
884
+ });
885
+ /**
886
+ * List webhooks
887
+ *
888
+ * List webhooks for a repository
889
+ */
890
+ const getByOrgByRepoWebhook = (options) => (options.client ?? client).get({
891
+ security: [{
892
+ scheme: "bearer",
893
+ type: "http"
894
+ }],
895
+ url: "/{org}/{repo}/webhook",
896
+ ...options
897
+ });
898
+ /**
899
+ * Create webhook
900
+ *
901
+ * Create a webhook for a repository
902
+ */
903
+ const postByOrgByRepoWebhook = (options) => (options.client ?? client).post({
904
+ security: [{
905
+ scheme: "bearer",
906
+ type: "http"
907
+ }],
908
+ url: "/{org}/{repo}/webhook",
909
+ ...options,
910
+ headers: {
911
+ "Content-Type": "application/json",
912
+ ...options.headers
913
+ }
914
+ });
915
+ /**
916
+ * Delete webhook
917
+ *
918
+ * Delete a webhook from a repository
919
+ */
920
+ const deleteByOrgByRepoWebhookByWebhookId = (options) => (options.client ?? client).delete({
921
+ security: [{
922
+ scheme: "bearer",
923
+ type: "http"
924
+ }],
925
+ url: "/{org}/{repo}/webhook/{webhookId}",
926
+ ...options
927
+ });
928
+ /**
929
+ * Get organization
930
+ *
931
+ * Get organization metadata and repository counts
932
+ */
933
+ const getByOrg = (options) => (options.client ?? client).get({
934
+ security: [{
935
+ scheme: "bearer",
936
+ type: "http"
937
+ }],
938
+ url: "/{org}",
939
+ ...options
940
+ });
941
+ //#endregion
942
+ export { deleteByOrgApiKeyById, deleteByOrgByRepo, deleteByOrgByRepoBookmarkByBookmark, deleteByOrgByRepoWebhookByWebhookId, getByOrg, getByOrgApiKey, getByOrgByRepo, getByOrgByRepoBookmark, getByOrgByRepoCommit, getByOrgByRepoCommitBySha, getByOrgByRepoContent, getByOrgByRepoDiff, getByOrgByRepoWebhook, getByOrgRepo, getByOrgRepoTags, getWhoami, patchByOrgByRepo, postByOrgApiKey, postByOrgByRepoBookmark, postByOrgByRepoCommit, postByOrgByRepoWebhook, postByOrgRepo, postByOrgRepoBulkTags };
943
+
944
+ //# sourceMappingURL=index.mjs.map