@djangocfg/api 2.1.332 → 2.1.333

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.
@@ -21,805 +21,6 @@ var proxyMiddlewareConfig = {
21
21
  matcher: ["/media/:path*", "/api/:path*"]
22
22
  };
23
23
 
24
- // src/_api/generated/core/bodySerializer.gen.ts
25
- var jsonBodySerializer = {
26
- bodySerializer: /* @__PURE__ */ __name((body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value), "bodySerializer")
27
- };
28
-
29
- // src/_api/generated/core/params.gen.ts
30
- var extraPrefixesMap = {
31
- $body_: "body",
32
- $headers_: "headers",
33
- $path_: "path",
34
- $query_: "query"
35
- };
36
- var extraPrefixes = Object.entries(extraPrefixesMap);
37
-
38
- // src/_api/generated/core/serverSentEvents.gen.ts
39
- function createSseClient({
40
- onRequest,
41
- onSseError,
42
- onSseEvent,
43
- responseTransformer,
44
- responseValidator,
45
- sseDefaultRetryDelay,
46
- sseMaxRetryAttempts,
47
- sseMaxRetryDelay,
48
- sseSleepFn,
49
- url,
50
- ...options
51
- }) {
52
- let lastEventId;
53
- const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
54
- const createStream = /* @__PURE__ */ __name(async function* () {
55
- let retryDelay = sseDefaultRetryDelay ?? 3e3;
56
- let attempt = 0;
57
- const signal = options.signal ?? new AbortController().signal;
58
- while (true) {
59
- if (signal.aborted) break;
60
- attempt++;
61
- const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
62
- if (lastEventId !== void 0) {
63
- headers.set("Last-Event-ID", lastEventId);
64
- }
65
- try {
66
- const requestInit = {
67
- redirect: "follow",
68
- ...options,
69
- body: options.serializedBody,
70
- headers,
71
- signal
72
- };
73
- let request = new Request(url, requestInit);
74
- if (onRequest) {
75
- request = await onRequest(url, requestInit);
76
- }
77
- const _fetch = options.fetch ?? globalThis.fetch;
78
- const response = await _fetch(request);
79
- if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
80
- if (!response.body) throw new Error("No body in SSE response");
81
- const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
82
- let buffer = "";
83
- const abortHandler = /* @__PURE__ */ __name(() => {
84
- try {
85
- reader.cancel();
86
- } catch {
87
- }
88
- }, "abortHandler");
89
- signal.addEventListener("abort", abortHandler);
90
- try {
91
- while (true) {
92
- const { done, value } = await reader.read();
93
- if (done) break;
94
- buffer += value;
95
- buffer = buffer.replace(/\r\n?/g, "\n");
96
- const chunks = buffer.split("\n\n");
97
- buffer = chunks.pop() ?? "";
98
- for (const chunk of chunks) {
99
- const lines = chunk.split("\n");
100
- const dataLines = [];
101
- let eventName;
102
- for (const line of lines) {
103
- if (line.startsWith("data:")) {
104
- dataLines.push(line.replace(/^data:\s*/, ""));
105
- } else if (line.startsWith("event:")) {
106
- eventName = line.replace(/^event:\s*/, "");
107
- } else if (line.startsWith("id:")) {
108
- lastEventId = line.replace(/^id:\s*/, "");
109
- } else if (line.startsWith("retry:")) {
110
- const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
111
- if (!Number.isNaN(parsed)) {
112
- retryDelay = parsed;
113
- }
114
- }
115
- }
116
- let data;
117
- let parsedJson = false;
118
- if (dataLines.length) {
119
- const rawData = dataLines.join("\n");
120
- try {
121
- data = JSON.parse(rawData);
122
- parsedJson = true;
123
- } catch {
124
- data = rawData;
125
- }
126
- }
127
- if (parsedJson) {
128
- if (responseValidator) {
129
- await responseValidator(data);
130
- }
131
- if (responseTransformer) {
132
- data = await responseTransformer(data);
133
- }
134
- }
135
- onSseEvent?.({
136
- data,
137
- event: eventName,
138
- id: lastEventId,
139
- retry: retryDelay
140
- });
141
- if (dataLines.length) {
142
- yield data;
143
- }
144
- }
145
- }
146
- } finally {
147
- signal.removeEventListener("abort", abortHandler);
148
- reader.releaseLock();
149
- }
150
- break;
151
- } catch (error) {
152
- onSseError?.(error);
153
- if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) {
154
- break;
155
- }
156
- const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4);
157
- await sleep(backoff);
158
- }
159
- }
160
- }, "createStream");
161
- const stream = createStream();
162
- return { stream };
163
- }
164
- __name(createSseClient, "createSseClient");
165
-
166
- // src/_api/generated/core/pathSerializer.gen.ts
167
- var separatorArrayExplode = /* @__PURE__ */ __name((style) => {
168
- switch (style) {
169
- case "label":
170
- return ".";
171
- case "matrix":
172
- return ";";
173
- case "simple":
174
- return ",";
175
- default:
176
- return "&";
177
- }
178
- }, "separatorArrayExplode");
179
- var separatorArrayNoExplode = /* @__PURE__ */ __name((style) => {
180
- switch (style) {
181
- case "form":
182
- return ",";
183
- case "pipeDelimited":
184
- return "|";
185
- case "spaceDelimited":
186
- return "%20";
187
- default:
188
- return ",";
189
- }
190
- }, "separatorArrayNoExplode");
191
- var separatorObjectExplode = /* @__PURE__ */ __name((style) => {
192
- switch (style) {
193
- case "label":
194
- return ".";
195
- case "matrix":
196
- return ";";
197
- case "simple":
198
- return ",";
199
- default:
200
- return "&";
201
- }
202
- }, "separatorObjectExplode");
203
- var serializeArrayParam = /* @__PURE__ */ __name(({
204
- allowReserved,
205
- explode,
206
- name,
207
- style,
208
- value
209
- }) => {
210
- if (!explode) {
211
- const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
212
- switch (style) {
213
- case "label":
214
- return `.${joinedValues2}`;
215
- case "matrix":
216
- return `;${name}=${joinedValues2}`;
217
- case "simple":
218
- return joinedValues2;
219
- default:
220
- return `${name}=${joinedValues2}`;
221
- }
222
- }
223
- const separator = separatorArrayExplode(style);
224
- const joinedValues = value.map((v) => {
225
- if (style === "label" || style === "simple") {
226
- return allowReserved ? v : encodeURIComponent(v);
227
- }
228
- return serializePrimitiveParam({
229
- allowReserved,
230
- name,
231
- value: v
232
- });
233
- }).join(separator);
234
- return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
235
- }, "serializeArrayParam");
236
- var serializePrimitiveParam = /* @__PURE__ */ __name(({
237
- allowReserved,
238
- name,
239
- value
240
- }) => {
241
- if (value === void 0 || value === null) {
242
- return "";
243
- }
244
- if (typeof value === "object") {
245
- throw new Error(
246
- "Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these."
247
- );
248
- }
249
- return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
250
- }, "serializePrimitiveParam");
251
- var serializeObjectParam = /* @__PURE__ */ __name(({
252
- allowReserved,
253
- explode,
254
- name,
255
- style,
256
- value,
257
- valueOnly
258
- }) => {
259
- if (value instanceof Date) {
260
- return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
261
- }
262
- if (style !== "deepObject" && !explode) {
263
- let values = [];
264
- Object.entries(value).forEach(([key, v]) => {
265
- values = [...values, key, allowReserved ? v : encodeURIComponent(v)];
266
- });
267
- const joinedValues2 = values.join(",");
268
- switch (style) {
269
- case "form":
270
- return `${name}=${joinedValues2}`;
271
- case "label":
272
- return `.${joinedValues2}`;
273
- case "matrix":
274
- return `;${name}=${joinedValues2}`;
275
- default:
276
- return joinedValues2;
277
- }
278
- }
279
- const separator = separatorObjectExplode(style);
280
- const joinedValues = Object.entries(value).map(
281
- ([key, v]) => serializePrimitiveParam({
282
- allowReserved,
283
- name: style === "deepObject" ? `${name}[${key}]` : key,
284
- value: v
285
- })
286
- ).join(separator);
287
- return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
288
- }, "serializeObjectParam");
289
-
290
- // src/_api/generated/core/utils.gen.ts
291
- var PATH_PARAM_RE = /\{[^{}]+\}/g;
292
- var defaultPathSerializer = /* @__PURE__ */ __name(({ path, url: _url }) => {
293
- let url = _url;
294
- const matches = _url.match(PATH_PARAM_RE);
295
- if (matches) {
296
- for (const match of matches) {
297
- let explode = false;
298
- let name = match.substring(1, match.length - 1);
299
- let style = "simple";
300
- if (name.endsWith("*")) {
301
- explode = true;
302
- name = name.substring(0, name.length - 1);
303
- }
304
- if (name.startsWith(".")) {
305
- name = name.substring(1);
306
- style = "label";
307
- } else if (name.startsWith(";")) {
308
- name = name.substring(1);
309
- style = "matrix";
310
- }
311
- const value = path[name];
312
- if (value === void 0 || value === null) {
313
- continue;
314
- }
315
- if (Array.isArray(value)) {
316
- url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
317
- continue;
318
- }
319
- if (typeof value === "object") {
320
- url = url.replace(
321
- match,
322
- serializeObjectParam({
323
- explode,
324
- name,
325
- style,
326
- value,
327
- valueOnly: true
328
- })
329
- );
330
- continue;
331
- }
332
- if (style === "matrix") {
333
- url = url.replace(
334
- match,
335
- `;${serializePrimitiveParam({
336
- name,
337
- value
338
- })}`
339
- );
340
- continue;
341
- }
342
- const replaceValue = encodeURIComponent(
343
- style === "label" ? `.${value}` : value
344
- );
345
- url = url.replace(match, replaceValue);
346
- }
347
- }
348
- return url;
349
- }, "defaultPathSerializer");
350
- var getUrl = /* @__PURE__ */ __name(({
351
- baseUrl,
352
- path,
353
- query,
354
- querySerializer,
355
- url: _url
356
- }) => {
357
- const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
358
- let url = (baseUrl ?? "") + pathUrl;
359
- if (path) {
360
- url = defaultPathSerializer({ path, url });
361
- }
362
- let search = query ? querySerializer(query) : "";
363
- if (search.startsWith("?")) {
364
- search = search.substring(1);
365
- }
366
- if (search) {
367
- url += `?${search}`;
368
- }
369
- return url;
370
- }, "getUrl");
371
- function getValidRequestBody(options) {
372
- const hasBody = options.body !== void 0;
373
- const isSerializedBody = hasBody && options.bodySerializer;
374
- if (isSerializedBody) {
375
- if ("serializedBody" in options) {
376
- const hasSerializedBody = options.serializedBody !== void 0 && options.serializedBody !== "";
377
- return hasSerializedBody ? options.serializedBody : null;
378
- }
379
- return options.body !== "" ? options.body : null;
380
- }
381
- if (hasBody) {
382
- return options.body;
383
- }
384
- return void 0;
385
- }
386
- __name(getValidRequestBody, "getValidRequestBody");
387
-
388
- // src/_api/generated/core/auth.gen.ts
389
- var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
390
- const token = typeof callback === "function" ? await callback(auth2) : callback;
391
- if (!token) {
392
- return;
393
- }
394
- if (auth2.scheme === "bearer") {
395
- return `Bearer ${token}`;
396
- }
397
- if (auth2.scheme === "basic") {
398
- return `Basic ${btoa(token)}`;
399
- }
400
- return token;
401
- }, "getAuthToken");
402
-
403
- // src/_api/generated/client/utils.gen.ts
404
- var createQuerySerializer = /* @__PURE__ */ __name(({
405
- parameters = {},
406
- ...args
407
- } = {}) => {
408
- const querySerializer = /* @__PURE__ */ __name((queryParams) => {
409
- const search = [];
410
- if (queryParams && typeof queryParams === "object") {
411
- for (const name in queryParams) {
412
- const value = queryParams[name];
413
- if (value === void 0 || value === null) {
414
- continue;
415
- }
416
- const options = parameters[name] || args;
417
- if (Array.isArray(value)) {
418
- const serializedArray = serializeArrayParam({
419
- allowReserved: options.allowReserved,
420
- explode: true,
421
- name,
422
- style: "form",
423
- value,
424
- ...options.array
425
- });
426
- if (serializedArray) search.push(serializedArray);
427
- } else if (typeof value === "object") {
428
- const serializedObject = serializeObjectParam({
429
- allowReserved: options.allowReserved,
430
- explode: true,
431
- name,
432
- style: "deepObject",
433
- value,
434
- ...options.object
435
- });
436
- if (serializedObject) search.push(serializedObject);
437
- } else {
438
- const serializedPrimitive = serializePrimitiveParam({
439
- allowReserved: options.allowReserved,
440
- name,
441
- value
442
- });
443
- if (serializedPrimitive) search.push(serializedPrimitive);
444
- }
445
- }
446
- }
447
- return search.join("&");
448
- }, "querySerializer");
449
- return querySerializer;
450
- }, "createQuerySerializer");
451
- var getParseAs = /* @__PURE__ */ __name((contentType) => {
452
- if (!contentType) {
453
- return "stream";
454
- }
455
- const cleanContent = contentType.split(";")[0]?.trim();
456
- if (!cleanContent) {
457
- return;
458
- }
459
- if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
460
- return "json";
461
- }
462
- if (cleanContent === "multipart/form-data") {
463
- return "formData";
464
- }
465
- if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
466
- return "blob";
467
- }
468
- if (cleanContent.startsWith("text/")) {
469
- return "text";
470
- }
471
- return;
472
- }, "getParseAs");
473
- var checkForExistence = /* @__PURE__ */ __name((options, name) => {
474
- if (!name) {
475
- return false;
476
- }
477
- if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
478
- return true;
479
- }
480
- return false;
481
- }, "checkForExistence");
482
- var setAuthParams = /* @__PURE__ */ __name(async ({
483
- security,
484
- ...options
485
- }) => {
486
- for (const auth2 of security) {
487
- if (checkForExistence(options, auth2.name)) {
488
- continue;
489
- }
490
- const token = await getAuthToken(auth2, options.auth);
491
- if (!token) {
492
- continue;
493
- }
494
- const name = auth2.name ?? "Authorization";
495
- switch (auth2.in) {
496
- case "query":
497
- if (!options.query) {
498
- options.query = {};
499
- }
500
- options.query[name] = token;
501
- break;
502
- case "cookie":
503
- options.headers.append("Cookie", `${name}=${token}`);
504
- break;
505
- case "header":
506
- default:
507
- options.headers.set(name, token);
508
- break;
509
- }
510
- }
511
- }, "setAuthParams");
512
- var buildUrl = /* @__PURE__ */ __name((options) => getUrl({
513
- baseUrl: options.baseUrl,
514
- path: options.path,
515
- query: options.query,
516
- querySerializer: typeof options.querySerializer === "function" ? options.querySerializer : createQuerySerializer(options.querySerializer),
517
- url: options.url
518
- }), "buildUrl");
519
- var mergeConfigs = /* @__PURE__ */ __name((a, b) => {
520
- const config = { ...a, ...b };
521
- if (config.baseUrl?.endsWith("/")) {
522
- config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);
523
- }
524
- config.headers = mergeHeaders(a.headers, b.headers);
525
- return config;
526
- }, "mergeConfigs");
527
- var headersEntries = /* @__PURE__ */ __name((headers) => {
528
- const entries = [];
529
- headers.forEach((value, key) => {
530
- entries.push([key, value]);
531
- });
532
- return entries;
533
- }, "headersEntries");
534
- var mergeHeaders = /* @__PURE__ */ __name((...headers) => {
535
- const mergedHeaders = new Headers();
536
- for (const header of headers) {
537
- if (!header) {
538
- continue;
539
- }
540
- const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);
541
- for (const [key, value] of iterator) {
542
- if (value === null) {
543
- mergedHeaders.delete(key);
544
- } else if (Array.isArray(value)) {
545
- for (const v of value) {
546
- mergedHeaders.append(key, v);
547
- }
548
- } else if (value !== void 0) {
549
- mergedHeaders.set(
550
- key,
551
- typeof value === "object" ? JSON.stringify(value) : value
552
- );
553
- }
554
- }
555
- }
556
- return mergedHeaders;
557
- }, "mergeHeaders");
558
- var Interceptors = class {
559
- static {
560
- __name(this, "Interceptors");
561
- }
562
- fns = [];
563
- clear() {
564
- this.fns = [];
565
- }
566
- eject(id) {
567
- const index = this.getInterceptorIndex(id);
568
- if (this.fns[index]) {
569
- this.fns[index] = null;
570
- }
571
- }
572
- exists(id) {
573
- const index = this.getInterceptorIndex(id);
574
- return Boolean(this.fns[index]);
575
- }
576
- getInterceptorIndex(id) {
577
- if (typeof id === "number") {
578
- return this.fns[id] ? id : -1;
579
- }
580
- return this.fns.indexOf(id);
581
- }
582
- update(id, fn) {
583
- const index = this.getInterceptorIndex(id);
584
- if (this.fns[index]) {
585
- this.fns[index] = fn;
586
- return id;
587
- }
588
- return false;
589
- }
590
- use(fn) {
591
- this.fns.push(fn);
592
- return this.fns.length - 1;
593
- }
594
- };
595
- var createInterceptors = /* @__PURE__ */ __name(() => ({
596
- error: new Interceptors(),
597
- request: new Interceptors(),
598
- response: new Interceptors()
599
- }), "createInterceptors");
600
- var defaultQuerySerializer = createQuerySerializer({
601
- allowReserved: false,
602
- array: {
603
- explode: true,
604
- style: "form"
605
- },
606
- object: {
607
- explode: true,
608
- style: "deepObject"
609
- }
610
- });
611
- var defaultHeaders = {
612
- "Content-Type": "application/json"
613
- };
614
- var createConfig = /* @__PURE__ */ __name((override = {}) => ({
615
- ...jsonBodySerializer,
616
- headers: defaultHeaders,
617
- parseAs: "auto",
618
- querySerializer: defaultQuerySerializer,
619
- ...override
620
- }), "createConfig");
621
-
622
- // src/_api/generated/client/client.gen.ts
623
- var createClient = /* @__PURE__ */ __name((config = {}) => {
624
- let _config = mergeConfigs(createConfig(), config);
625
- const getConfig = /* @__PURE__ */ __name(() => ({ ..._config }), "getConfig");
626
- const setConfig = /* @__PURE__ */ __name((config2) => {
627
- _config = mergeConfigs(_config, config2);
628
- return getConfig();
629
- }, "setConfig");
630
- const interceptors = createInterceptors();
631
- const beforeRequest = /* @__PURE__ */ __name(async (options) => {
632
- const opts = {
633
- ..._config,
634
- ...options,
635
- fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
636
- headers: mergeHeaders(_config.headers, options.headers),
637
- serializedBody: void 0
638
- };
639
- if (opts.security) {
640
- await setAuthParams({
641
- ...opts,
642
- security: opts.security
643
- });
644
- }
645
- if (opts.requestValidator) {
646
- await opts.requestValidator(opts);
647
- }
648
- if (opts.body !== void 0 && opts.bodySerializer) {
649
- opts.serializedBody = opts.bodySerializer(opts.body);
650
- }
651
- if (opts.body === void 0 || opts.serializedBody === "") {
652
- opts.headers.delete("Content-Type");
653
- }
654
- const resolvedOpts = opts;
655
- const url = buildUrl(resolvedOpts);
656
- return { opts: resolvedOpts, url };
657
- }, "beforeRequest");
658
- const request = /* @__PURE__ */ __name(async (options) => {
659
- const throwOnError = options.throwOnError ?? _config.throwOnError;
660
- const responseStyle = options.responseStyle ?? _config.responseStyle;
661
- let request2;
662
- let response;
663
- try {
664
- const { opts, url } = await beforeRequest(options);
665
- const requestInit = {
666
- redirect: "follow",
667
- ...opts,
668
- body: getValidRequestBody(opts)
669
- };
670
- request2 = new Request(url, requestInit);
671
- for (const fn of interceptors.request.fns) {
672
- if (fn) {
673
- request2 = await fn(request2, opts);
674
- }
675
- }
676
- const _fetch = opts.fetch;
677
- response = await _fetch(request2);
678
- for (const fn of interceptors.response.fns) {
679
- if (fn) {
680
- response = await fn(response, request2, opts);
681
- }
682
- }
683
- const result = {
684
- request: request2,
685
- response
686
- };
687
- if (response.ok) {
688
- const parseAs = (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json";
689
- if (response.status === 204 || response.headers.get("Content-Length") === "0") {
690
- let emptyData;
691
- switch (parseAs) {
692
- case "arrayBuffer":
693
- case "blob":
694
- case "text":
695
- emptyData = await response[parseAs]();
696
- break;
697
- case "formData":
698
- emptyData = new FormData();
699
- break;
700
- case "stream":
701
- emptyData = response.body;
702
- break;
703
- case "json":
704
- default:
705
- emptyData = {};
706
- break;
707
- }
708
- return opts.responseStyle === "data" ? emptyData : {
709
- data: emptyData,
710
- ...result
711
- };
712
- }
713
- let data;
714
- switch (parseAs) {
715
- case "arrayBuffer":
716
- case "blob":
717
- case "formData":
718
- case "text":
719
- data = await response[parseAs]();
720
- break;
721
- case "json": {
722
- const text = await response.text();
723
- data = text ? JSON.parse(text) : {};
724
- break;
725
- }
726
- case "stream":
727
- return opts.responseStyle === "data" ? response.body : {
728
- data: response.body,
729
- ...result
730
- };
731
- }
732
- if (parseAs === "json") {
733
- if (opts.responseValidator) {
734
- await opts.responseValidator(data);
735
- }
736
- if (opts.responseTransformer) {
737
- data = await opts.responseTransformer(data);
738
- }
739
- }
740
- return opts.responseStyle === "data" ? data : {
741
- data,
742
- ...result
743
- };
744
- }
745
- const textError = await response.text();
746
- let jsonError;
747
- try {
748
- jsonError = JSON.parse(textError);
749
- } catch {
750
- }
751
- throw jsonError ?? textError;
752
- } catch (error) {
753
- let finalError = error;
754
- for (const fn of interceptors.error.fns) {
755
- if (fn) {
756
- finalError = await fn(finalError, response, request2, options);
757
- }
758
- }
759
- finalError = finalError || {};
760
- if (throwOnError) {
761
- throw finalError;
762
- }
763
- return responseStyle === "data" ? void 0 : {
764
- error: finalError,
765
- request: request2,
766
- response
767
- };
768
- }
769
- }, "request");
770
- const makeMethodFn = /* @__PURE__ */ __name((method) => (options) => request({ ...options, method }), "makeMethodFn");
771
- const makeSseFn = /* @__PURE__ */ __name((method) => async (options) => {
772
- const { opts, url } = await beforeRequest(options);
773
- return createSseClient({
774
- ...opts,
775
- body: opts.body,
776
- method,
777
- onRequest: /* @__PURE__ */ __name(async (url2, init) => {
778
- let request2 = new Request(url2, init);
779
- for (const fn of interceptors.request.fns) {
780
- if (fn) {
781
- request2 = await fn(request2, opts);
782
- }
783
- }
784
- return request2;
785
- }, "onRequest"),
786
- serializedBody: getValidRequestBody(opts),
787
- url
788
- });
789
- }, "makeSseFn");
790
- const _buildUrl = /* @__PURE__ */ __name((options) => buildUrl({ ..._config, ...options }), "_buildUrl");
791
- return {
792
- buildUrl: _buildUrl,
793
- connect: makeMethodFn("CONNECT"),
794
- delete: makeMethodFn("DELETE"),
795
- get: makeMethodFn("GET"),
796
- getConfig,
797
- head: makeMethodFn("HEAD"),
798
- interceptors,
799
- options: makeMethodFn("OPTIONS"),
800
- patch: makeMethodFn("PATCH"),
801
- post: makeMethodFn("POST"),
802
- put: makeMethodFn("PUT"),
803
- request,
804
- setConfig,
805
- sse: {
806
- connect: makeSseFn("CONNECT"),
807
- delete: makeSseFn("DELETE"),
808
- get: makeSseFn("GET"),
809
- head: makeSseFn("HEAD"),
810
- options: makeSseFn("OPTIONS"),
811
- patch: makeSseFn("PATCH"),
812
- post: makeSseFn("POST"),
813
- put: makeSseFn("PUT"),
814
- trace: makeSseFn("TRACE")
815
- },
816
- trace: makeMethodFn("TRACE")
817
- };
818
- }, "createClient");
819
-
820
- // src/_api/generated/client.gen.ts
821
- var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
822
-
823
24
  // src/_api/generated/helpers/auth.ts
824
25
  var ACCESS_KEY = "cfg.access_token";
825
26
  var REFRESH_KEY = "cfg.refresh_token";
@@ -912,15 +113,20 @@ var _apiKeyOverride = null;
912
113
  var _baseUrlOverride = null;
913
114
  var _withCredentials = true;
914
115
  var _onUnauthorized = null;
116
+ var _client = null;
117
+ function pushClientConfig() {
118
+ if (!_client) return;
119
+ _client.setConfig({
120
+ baseUrl: auth.getBaseUrl(),
121
+ credentials: _withCredentials ? "include" : "same-origin"
122
+ });
123
+ }
124
+ __name(pushClientConfig, "pushClientConfig");
915
125
  var auth = {
916
126
  // ── Storage mode ──────────────────────────────────────────────────
917
127
  getStorageMode() {
918
128
  return _storageMode;
919
129
  },
920
- /**
921
- * Switch the storage backend. Existing values in the *previous*
922
- * backend are NOT migrated — set fresh values after switching.
923
- */
924
130
  setStorageMode(mode) {
925
131
  _storageMode = mode;
926
132
  _storage = mode === "cookie" ? cookieBackend : localStorageBackend;
@@ -946,15 +152,12 @@ var auth = {
946
152
  return _storage.get(ACCESS_KEY) !== null;
947
153
  },
948
154
  // ── API key ───────────────────────────────────────────────────────
949
- /** In-memory API key. Falls back to storage, then NEXT_PUBLIC_API_KEY. */
950
155
  getApiKey() {
951
156
  return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
952
157
  },
953
- /** In-memory only (cleared on reload). */
954
158
  setApiKey(key) {
955
159
  _apiKeyOverride = key;
956
160
  },
957
- /** Persist to active storage backend (localStorage or cookie). */
958
161
  setApiKeyPersist(key) {
959
162
  _apiKeyOverride = key;
960
163
  _storage.set(API_KEY_KEY, key);
@@ -964,7 +167,6 @@ var auth = {
964
167
  _storage.set(API_KEY_KEY, null);
965
168
  },
966
169
  // ── Locale ────────────────────────────────────────────────────────
967
- /** Override locale → falls back to NEXT_LOCALE cookie / navigator.language. */
968
170
  getLocale() {
969
171
  return _localeOverride ?? detectLocale();
970
172
  },
@@ -978,309 +180,1109 @@ var auth = {
978
180
  },
979
181
  setBaseUrl(url) {
980
182
  _baseUrlOverride = url ? url.replace(/\/$/, "") : null;
981
- client.setConfig({ baseUrl: this.getBaseUrl() });
183
+ pushClientConfig();
982
184
  },
983
- // ── Credentials toggle (Django session/CSRF cross-origin) ─────────
185
+ // ── Credentials toggle ────────────────────────────────────────────
984
186
  getWithCredentials() {
985
187
  return _withCredentials;
986
188
  },
987
189
  setWithCredentials(value) {
988
190
  _withCredentials = value;
989
- client.setConfig({ credentials: value ? "include" : "same-origin" });
191
+ pushClientConfig();
990
192
  },
991
193
  // ── 401 handler ───────────────────────────────────────────────────
992
- /**
993
- * Register a callback fired on every 401 response. Use this to wire
994
- * a token-refresh flow or a forced logout. Setting `null` removes
995
- * the handler.
996
- */
997
194
  onUnauthorized(cb) {
998
195
  _onUnauthorized = cb;
999
196
  }
1000
- };
1001
- client.setConfig({
1002
- baseUrl: auth.getBaseUrl(),
1003
- credentials: _withCredentials ? "include" : "same-origin"
1004
- });
1005
- client.interceptors.request.use((request) => {
1006
- const token = auth.getToken();
1007
- if (token) request.headers.set("Authorization", `Bearer ${token}`);
1008
- const locale = auth.getLocale();
1009
- if (locale) request.headers.set("Accept-Language", locale);
1010
- const apiKey = auth.getApiKey();
1011
- if (apiKey) request.headers.set("X-API-Key", apiKey);
1012
- return request;
1013
- });
1014
- client.interceptors.response.use((response) => {
1015
- if (response.status === 401 && _onUnauthorized) {
1016
- try {
1017
- _onUnauthorized(response);
1018
- } catch {
1019
- }
197
+ };
198
+ function installAuthOnClient(client2) {
199
+ if (_client) return;
200
+ _client = client2;
201
+ client2.setConfig({
202
+ baseUrl: auth.getBaseUrl(),
203
+ credentials: _withCredentials ? "include" : "same-origin"
204
+ });
205
+ client2.interceptors.request.use((request) => {
206
+ const token = auth.getToken();
207
+ if (token) request.headers.set("Authorization", `Bearer ${token}`);
208
+ const locale = auth.getLocale();
209
+ if (locale) request.headers.set("Accept-Language", locale);
210
+ const apiKey = auth.getApiKey();
211
+ if (apiKey) request.headers.set("X-API-Key", apiKey);
212
+ return request;
213
+ });
214
+ client2.interceptors.response.use((response) => {
215
+ if (response.status === 401 && _onUnauthorized) {
216
+ try {
217
+ _onUnauthorized(response);
218
+ } catch {
219
+ }
220
+ }
221
+ return response;
222
+ });
223
+ }
224
+ __name(installAuthOnClient, "installAuthOnClient");
225
+
226
+ // src/_api/generated/helpers/logger.ts
227
+ import { createConsola } from "consola";
228
+ var DEFAULT_CONFIG = {
229
+ enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
230
+ logRequests: true,
231
+ logResponses: true,
232
+ logErrors: true,
233
+ logBodies: true,
234
+ logHeaders: false
235
+ };
236
+ var SENSITIVE_HEADERS = [
237
+ "authorization",
238
+ "cookie",
239
+ "set-cookie",
240
+ "x-api-key",
241
+ "x-csrf-token"
242
+ ];
243
+ var APILogger = class {
244
+ static {
245
+ __name(this, "APILogger");
246
+ }
247
+ config;
248
+ consola;
249
+ constructor(config = {}) {
250
+ this.config = { ...DEFAULT_CONFIG, ...config };
251
+ this.consola = config.consola || createConsola({
252
+ level: this.config.enabled ? 4 : 0
253
+ });
254
+ }
255
+ enable() {
256
+ this.config.enabled = true;
257
+ }
258
+ disable() {
259
+ this.config.enabled = false;
260
+ }
261
+ setConfig(config) {
262
+ this.config = { ...this.config, ...config };
263
+ }
264
+ filterHeaders(headers) {
265
+ if (!headers) return {};
266
+ const filtered = {};
267
+ Object.keys(headers).forEach((key) => {
268
+ filtered[key] = SENSITIVE_HEADERS.includes(key.toLowerCase()) ? "***" : headers[key] || "";
269
+ });
270
+ return filtered;
271
+ }
272
+ logRequest(request) {
273
+ if (!this.config.enabled || !this.config.logRequests) return;
274
+ const { method, url, headers, body } = request;
275
+ this.consola.start(`${method} ${url}`);
276
+ if (this.config.logHeaders && headers) this.consola.debug("Headers:", this.filterHeaders(headers));
277
+ if (this.config.logBodies && body) this.consola.debug("Body:", body);
278
+ }
279
+ logResponse(request, response) {
280
+ if (!this.config.enabled || !this.config.logResponses) return;
281
+ const { method, url } = request;
282
+ const { status, statusText, data, duration } = response;
283
+ this.consola.success(`${method} ${url} ${status} ${statusText} (${duration}ms)`);
284
+ if (this.config.logBodies && data) this.consola.debug("Response:", data);
285
+ }
286
+ logError(request, error) {
287
+ if (!this.config.enabled || !this.config.logErrors) return;
288
+ const { method, url } = request;
289
+ const { message, statusCode, fieldErrors, duration } = error;
290
+ this.consola.error(`${method} ${url} ${statusCode || "Network"} Error (${duration}ms)`);
291
+ this.consola.error("Message:", message);
292
+ if (fieldErrors && Object.keys(fieldErrors).length > 0) {
293
+ this.consola.error("Field Errors:");
294
+ Object.entries(fieldErrors).forEach(([field, errors]) => {
295
+ errors.forEach((err) => this.consola.error(` \u2022 ${field}: ${err}`));
296
+ });
297
+ }
298
+ }
299
+ info(message, ...args) {
300
+ if (this.config.enabled) this.consola.info(message, ...args);
301
+ }
302
+ warn(message, ...args) {
303
+ if (this.config.enabled) this.consola.warn(message, ...args);
304
+ }
305
+ error(message, ...args) {
306
+ if (this.config.enabled) this.consola.error(message, ...args);
307
+ }
308
+ debug(message, ...args) {
309
+ if (this.config.enabled) this.consola.debug(message, ...args);
310
+ }
311
+ success(message, ...args) {
312
+ if (this.config.enabled) this.consola.success(message, ...args);
313
+ }
314
+ withTag(tag) {
315
+ return this.consola.withTag(tag);
316
+ }
317
+ };
318
+ var defaultLogger = new APILogger();
319
+
320
+ // src/_api/generated/_cfg_accounts/api.ts
321
+ var API = class {
322
+ static {
323
+ __name(this, "API");
324
+ }
325
+ logger;
326
+ constructor(_baseUrl, opts = {}) {
327
+ this.logger = new APILogger(opts.logger);
328
+ if (_baseUrl) auth.setBaseUrl(_baseUrl);
329
+ if (opts.locale !== void 0) auth.setLocale(opts.locale);
330
+ if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
331
+ if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
332
+ }
333
+ // ── Base URL ────────────────────────────────────────────────────────────
334
+ getBaseUrl() {
335
+ return auth.getBaseUrl();
336
+ }
337
+ setBaseUrl(url) {
338
+ auth.setBaseUrl(url);
339
+ }
340
+ // ── Tokens ──────────────────────────────────────────────────────────────
341
+ getToken() {
342
+ return auth.getToken();
343
+ }
344
+ setToken(token) {
345
+ auth.setToken(token);
346
+ }
347
+ getRefreshToken() {
348
+ return auth.getRefreshToken();
349
+ }
350
+ setRefreshToken(token) {
351
+ auth.setRefreshToken(token);
352
+ }
353
+ clearToken() {
354
+ auth.clearTokens();
355
+ }
356
+ isAuthenticated() {
357
+ return auth.isAuthenticated();
358
+ }
359
+ // ── Locale / API key ────────────────────────────────────────────────────
360
+ getLocale() {
361
+ return auth.getLocale();
362
+ }
363
+ setLocale(locale) {
364
+ auth.setLocale(locale);
365
+ }
366
+ getApiKey() {
367
+ return auth.getApiKey();
368
+ }
369
+ setApiKey(key) {
370
+ auth.setApiKey(key);
371
+ }
372
+ };
373
+
374
+ // src/_api/generated/_cfg_centrifugo/api.ts
375
+ var API2 = class {
376
+ static {
377
+ __name(this, "API");
378
+ }
379
+ logger;
380
+ constructor(_baseUrl, opts = {}) {
381
+ this.logger = new APILogger(opts.logger);
382
+ if (_baseUrl) auth.setBaseUrl(_baseUrl);
383
+ if (opts.locale !== void 0) auth.setLocale(opts.locale);
384
+ if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
385
+ if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
386
+ }
387
+ // ── Base URL ────────────────────────────────────────────────────────────
388
+ getBaseUrl() {
389
+ return auth.getBaseUrl();
390
+ }
391
+ setBaseUrl(url) {
392
+ auth.setBaseUrl(url);
393
+ }
394
+ // ── Tokens ──────────────────────────────────────────────────────────────
395
+ getToken() {
396
+ return auth.getToken();
397
+ }
398
+ setToken(token) {
399
+ auth.setToken(token);
400
+ }
401
+ getRefreshToken() {
402
+ return auth.getRefreshToken();
403
+ }
404
+ setRefreshToken(token) {
405
+ auth.setRefreshToken(token);
406
+ }
407
+ clearToken() {
408
+ auth.clearTokens();
409
+ }
410
+ isAuthenticated() {
411
+ return auth.isAuthenticated();
412
+ }
413
+ // ── Locale / API key ────────────────────────────────────────────────────
414
+ getLocale() {
415
+ return auth.getLocale();
416
+ }
417
+ setLocale(locale) {
418
+ auth.setLocale(locale);
419
+ }
420
+ getApiKey() {
421
+ return auth.getApiKey();
422
+ }
423
+ setApiKey(key) {
424
+ auth.setApiKey(key);
1020
425
  }
1021
- return response;
1022
- });
1023
-
1024
- // src/_api/generated/helpers/logger.ts
1025
- import { createConsola } from "consola";
1026
- var DEFAULT_CONFIG = {
1027
- enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
1028
- logRequests: true,
1029
- logResponses: true,
1030
- logErrors: true,
1031
- logBodies: true,
1032
- logHeaders: false
1033
426
  };
1034
- var SENSITIVE_HEADERS = [
1035
- "authorization",
1036
- "cookie",
1037
- "set-cookie",
1038
- "x-api-key",
1039
- "x-csrf-token"
1040
- ];
1041
- var APILogger = class {
427
+
428
+ // src/_api/generated/_cfg_totp/api.ts
429
+ var API3 = class {
1042
430
  static {
1043
- __name(this, "APILogger");
1044
- }
1045
- config;
1046
- consola;
1047
- constructor(config = {}) {
1048
- this.config = { ...DEFAULT_CONFIG, ...config };
1049
- this.consola = config.consola || createConsola({
1050
- level: this.config.enabled ? 4 : 0
1051
- });
431
+ __name(this, "API");
1052
432
  }
1053
- enable() {
1054
- this.config.enabled = true;
433
+ logger;
434
+ constructor(_baseUrl, opts = {}) {
435
+ this.logger = new APILogger(opts.logger);
436
+ if (_baseUrl) auth.setBaseUrl(_baseUrl);
437
+ if (opts.locale !== void 0) auth.setLocale(opts.locale);
438
+ if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
439
+ if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
1055
440
  }
1056
- disable() {
1057
- this.config.enabled = false;
441
+ // ── Base URL ────────────────────────────────────────────────────────────
442
+ getBaseUrl() {
443
+ return auth.getBaseUrl();
1058
444
  }
1059
- setConfig(config) {
1060
- this.config = { ...this.config, ...config };
445
+ setBaseUrl(url) {
446
+ auth.setBaseUrl(url);
1061
447
  }
1062
- filterHeaders(headers) {
1063
- if (!headers) return {};
1064
- const filtered = {};
1065
- Object.keys(headers).forEach((key) => {
1066
- filtered[key] = SENSITIVE_HEADERS.includes(key.toLowerCase()) ? "***" : headers[key] || "";
1067
- });
1068
- return filtered;
448
+ // ── Tokens ──────────────────────────────────────────────────────────────
449
+ getToken() {
450
+ return auth.getToken();
1069
451
  }
1070
- logRequest(request) {
1071
- if (!this.config.enabled || !this.config.logRequests) return;
1072
- const { method, url, headers, body } = request;
1073
- this.consola.start(`${method} ${url}`);
1074
- if (this.config.logHeaders && headers) this.consola.debug("Headers:", this.filterHeaders(headers));
1075
- if (this.config.logBodies && body) this.consola.debug("Body:", body);
452
+ setToken(token) {
453
+ auth.setToken(token);
1076
454
  }
1077
- logResponse(request, response) {
1078
- if (!this.config.enabled || !this.config.logResponses) return;
1079
- const { method, url } = request;
1080
- const { status, statusText, data, duration } = response;
1081
- this.consola.success(`${method} ${url} ${status} ${statusText} (${duration}ms)`);
1082
- if (this.config.logBodies && data) this.consola.debug("Response:", data);
455
+ getRefreshToken() {
456
+ return auth.getRefreshToken();
1083
457
  }
1084
- logError(request, error) {
1085
- if (!this.config.enabled || !this.config.logErrors) return;
1086
- const { method, url } = request;
1087
- const { message, statusCode, fieldErrors, duration } = error;
1088
- this.consola.error(`${method} ${url} ${statusCode || "Network"} Error (${duration}ms)`);
1089
- this.consola.error("Message:", message);
1090
- if (fieldErrors && Object.keys(fieldErrors).length > 0) {
1091
- this.consola.error("Field Errors:");
1092
- Object.entries(fieldErrors).forEach(([field, errors]) => {
1093
- errors.forEach((err) => this.consola.error(` \u2022 ${field}: ${err}`));
1094
- });
1095
- }
458
+ setRefreshToken(token) {
459
+ auth.setRefreshToken(token);
1096
460
  }
1097
- info(message, ...args) {
1098
- if (this.config.enabled) this.consola.info(message, ...args);
461
+ clearToken() {
462
+ auth.clearTokens();
1099
463
  }
1100
- warn(message, ...args) {
1101
- if (this.config.enabled) this.consola.warn(message, ...args);
464
+ isAuthenticated() {
465
+ return auth.isAuthenticated();
1102
466
  }
1103
- error(message, ...args) {
1104
- if (this.config.enabled) this.consola.error(message, ...args);
467
+ // ── Locale / API key ────────────────────────────────────────────────────
468
+ getLocale() {
469
+ return auth.getLocale();
1105
470
  }
1106
- debug(message, ...args) {
1107
- if (this.config.enabled) this.consola.debug(message, ...args);
471
+ setLocale(locale) {
472
+ auth.setLocale(locale);
1108
473
  }
1109
- success(message, ...args) {
1110
- if (this.config.enabled) this.consola.success(message, ...args);
474
+ getApiKey() {
475
+ return auth.getApiKey();
1111
476
  }
1112
- withTag(tag) {
1113
- return this.consola.withTag(tag);
477
+ setApiKey(key) {
478
+ auth.setApiKey(key);
1114
479
  }
1115
480
  };
1116
- var defaultLogger = new APILogger();
1117
481
 
1118
- // src/_api/generated/_cfg_accounts/api.ts
1119
- var API = class {
1120
- static {
1121
- __name(this, "API");
1122
- }
1123
- logger;
1124
- constructor(_baseUrl, opts = {}) {
1125
- this.logger = new APILogger(opts.logger);
1126
- if (_baseUrl) auth.setBaseUrl(_baseUrl);
1127
- if (opts.locale !== void 0) auth.setLocale(opts.locale);
1128
- if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
1129
- if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
1130
- }
1131
- // ── Base URL ────────────────────────────────────────────────────────────
1132
- getBaseUrl() {
1133
- return auth.getBaseUrl();
1134
- }
1135
- setBaseUrl(url) {
1136
- auth.setBaseUrl(url);
1137
- }
1138
- // ── Tokens ──────────────────────────────────────────────────────────────
1139
- getToken() {
1140
- return auth.getToken();
1141
- }
1142
- setToken(token) {
1143
- auth.setToken(token);
1144
- }
1145
- getRefreshToken() {
1146
- return auth.getRefreshToken();
482
+ // src/_api/generated/index.ts
483
+ var CfgAccountsApi = new API();
484
+ var CfgCentrifugoApi = new API2();
485
+ var CfgTotpApi = new API3();
486
+
487
+ // src/_api/generated/core/bodySerializer.gen.ts
488
+ var jsonBodySerializer = {
489
+ bodySerializer: /* @__PURE__ */ __name((body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value), "bodySerializer")
490
+ };
491
+
492
+ // src/_api/generated/core/params.gen.ts
493
+ var extraPrefixesMap = {
494
+ $body_: "body",
495
+ $headers_: "headers",
496
+ $path_: "path",
497
+ $query_: "query"
498
+ };
499
+ var extraPrefixes = Object.entries(extraPrefixesMap);
500
+
501
+ // src/_api/generated/core/serverSentEvents.gen.ts
502
+ function createSseClient({
503
+ onRequest,
504
+ onSseError,
505
+ onSseEvent,
506
+ responseTransformer,
507
+ responseValidator,
508
+ sseDefaultRetryDelay,
509
+ sseMaxRetryAttempts,
510
+ sseMaxRetryDelay,
511
+ sseSleepFn,
512
+ url,
513
+ ...options
514
+ }) {
515
+ let lastEventId;
516
+ const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
517
+ const createStream = /* @__PURE__ */ __name(async function* () {
518
+ let retryDelay = sseDefaultRetryDelay ?? 3e3;
519
+ let attempt = 0;
520
+ const signal = options.signal ?? new AbortController().signal;
521
+ while (true) {
522
+ if (signal.aborted) break;
523
+ attempt++;
524
+ const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
525
+ if (lastEventId !== void 0) {
526
+ headers.set("Last-Event-ID", lastEventId);
527
+ }
528
+ try {
529
+ const requestInit = {
530
+ redirect: "follow",
531
+ ...options,
532
+ body: options.serializedBody,
533
+ headers,
534
+ signal
535
+ };
536
+ let request = new Request(url, requestInit);
537
+ if (onRequest) {
538
+ request = await onRequest(url, requestInit);
539
+ }
540
+ const _fetch = options.fetch ?? globalThis.fetch;
541
+ const response = await _fetch(request);
542
+ if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
543
+ if (!response.body) throw new Error("No body in SSE response");
544
+ const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
545
+ let buffer = "";
546
+ const abortHandler = /* @__PURE__ */ __name(() => {
547
+ try {
548
+ reader.cancel();
549
+ } catch {
550
+ }
551
+ }, "abortHandler");
552
+ signal.addEventListener("abort", abortHandler);
553
+ try {
554
+ while (true) {
555
+ const { done, value } = await reader.read();
556
+ if (done) break;
557
+ buffer += value;
558
+ buffer = buffer.replace(/\r\n?/g, "\n");
559
+ const chunks = buffer.split("\n\n");
560
+ buffer = chunks.pop() ?? "";
561
+ for (const chunk of chunks) {
562
+ const lines = chunk.split("\n");
563
+ const dataLines = [];
564
+ let eventName;
565
+ for (const line of lines) {
566
+ if (line.startsWith("data:")) {
567
+ dataLines.push(line.replace(/^data:\s*/, ""));
568
+ } else if (line.startsWith("event:")) {
569
+ eventName = line.replace(/^event:\s*/, "");
570
+ } else if (line.startsWith("id:")) {
571
+ lastEventId = line.replace(/^id:\s*/, "");
572
+ } else if (line.startsWith("retry:")) {
573
+ const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
574
+ if (!Number.isNaN(parsed)) {
575
+ retryDelay = parsed;
576
+ }
577
+ }
578
+ }
579
+ let data;
580
+ let parsedJson = false;
581
+ if (dataLines.length) {
582
+ const rawData = dataLines.join("\n");
583
+ try {
584
+ data = JSON.parse(rawData);
585
+ parsedJson = true;
586
+ } catch {
587
+ data = rawData;
588
+ }
589
+ }
590
+ if (parsedJson) {
591
+ if (responseValidator) {
592
+ await responseValidator(data);
593
+ }
594
+ if (responseTransformer) {
595
+ data = await responseTransformer(data);
596
+ }
597
+ }
598
+ onSseEvent?.({
599
+ data,
600
+ event: eventName,
601
+ id: lastEventId,
602
+ retry: retryDelay
603
+ });
604
+ if (dataLines.length) {
605
+ yield data;
606
+ }
607
+ }
608
+ }
609
+ } finally {
610
+ signal.removeEventListener("abort", abortHandler);
611
+ reader.releaseLock();
612
+ }
613
+ break;
614
+ } catch (error) {
615
+ onSseError?.(error);
616
+ if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) {
617
+ break;
618
+ }
619
+ const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4);
620
+ await sleep(backoff);
621
+ }
622
+ }
623
+ }, "createStream");
624
+ const stream = createStream();
625
+ return { stream };
626
+ }
627
+ __name(createSseClient, "createSseClient");
628
+
629
+ // src/_api/generated/core/pathSerializer.gen.ts
630
+ var separatorArrayExplode = /* @__PURE__ */ __name((style) => {
631
+ switch (style) {
632
+ case "label":
633
+ return ".";
634
+ case "matrix":
635
+ return ";";
636
+ case "simple":
637
+ return ",";
638
+ default:
639
+ return "&";
1147
640
  }
1148
- setRefreshToken(token) {
1149
- auth.setRefreshToken(token);
641
+ }, "separatorArrayExplode");
642
+ var separatorArrayNoExplode = /* @__PURE__ */ __name((style) => {
643
+ switch (style) {
644
+ case "form":
645
+ return ",";
646
+ case "pipeDelimited":
647
+ return "|";
648
+ case "spaceDelimited":
649
+ return "%20";
650
+ default:
651
+ return ",";
1150
652
  }
1151
- clearToken() {
1152
- auth.clearTokens();
653
+ }, "separatorArrayNoExplode");
654
+ var separatorObjectExplode = /* @__PURE__ */ __name((style) => {
655
+ switch (style) {
656
+ case "label":
657
+ return ".";
658
+ case "matrix":
659
+ return ";";
660
+ case "simple":
661
+ return ",";
662
+ default:
663
+ return "&";
1153
664
  }
1154
- isAuthenticated() {
1155
- return auth.isAuthenticated();
665
+ }, "separatorObjectExplode");
666
+ var serializeArrayParam = /* @__PURE__ */ __name(({
667
+ allowReserved,
668
+ explode,
669
+ name,
670
+ style,
671
+ value
672
+ }) => {
673
+ if (!explode) {
674
+ const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
675
+ switch (style) {
676
+ case "label":
677
+ return `.${joinedValues2}`;
678
+ case "matrix":
679
+ return `;${name}=${joinedValues2}`;
680
+ case "simple":
681
+ return joinedValues2;
682
+ default:
683
+ return `${name}=${joinedValues2}`;
684
+ }
1156
685
  }
1157
- // ── Locale / API key ────────────────────────────────────────────────────
1158
- getLocale() {
1159
- return auth.getLocale();
686
+ const separator = separatorArrayExplode(style);
687
+ const joinedValues = value.map((v) => {
688
+ if (style === "label" || style === "simple") {
689
+ return allowReserved ? v : encodeURIComponent(v);
690
+ }
691
+ return serializePrimitiveParam({
692
+ allowReserved,
693
+ name,
694
+ value: v
695
+ });
696
+ }).join(separator);
697
+ return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
698
+ }, "serializeArrayParam");
699
+ var serializePrimitiveParam = /* @__PURE__ */ __name(({
700
+ allowReserved,
701
+ name,
702
+ value
703
+ }) => {
704
+ if (value === void 0 || value === null) {
705
+ return "";
1160
706
  }
1161
- setLocale(locale) {
1162
- auth.setLocale(locale);
707
+ if (typeof value === "object") {
708
+ throw new Error(
709
+ "Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these."
710
+ );
1163
711
  }
1164
- getApiKey() {
1165
- return auth.getApiKey();
712
+ return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
713
+ }, "serializePrimitiveParam");
714
+ var serializeObjectParam = /* @__PURE__ */ __name(({
715
+ allowReserved,
716
+ explode,
717
+ name,
718
+ style,
719
+ value,
720
+ valueOnly
721
+ }) => {
722
+ if (value instanceof Date) {
723
+ return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
1166
724
  }
1167
- setApiKey(key) {
1168
- auth.setApiKey(key);
725
+ if (style !== "deepObject" && !explode) {
726
+ let values = [];
727
+ Object.entries(value).forEach(([key, v]) => {
728
+ values = [...values, key, allowReserved ? v : encodeURIComponent(v)];
729
+ });
730
+ const joinedValues2 = values.join(",");
731
+ switch (style) {
732
+ case "form":
733
+ return `${name}=${joinedValues2}`;
734
+ case "label":
735
+ return `.${joinedValues2}`;
736
+ case "matrix":
737
+ return `;${name}=${joinedValues2}`;
738
+ default:
739
+ return joinedValues2;
740
+ }
1169
741
  }
1170
- };
742
+ const separator = separatorObjectExplode(style);
743
+ const joinedValues = Object.entries(value).map(
744
+ ([key, v]) => serializePrimitiveParam({
745
+ allowReserved,
746
+ name: style === "deepObject" ? `${name}[${key}]` : key,
747
+ value: v
748
+ })
749
+ ).join(separator);
750
+ return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
751
+ }, "serializeObjectParam");
1171
752
 
1172
- // src/_api/generated/_cfg_centrifugo/api.ts
1173
- var API2 = class {
1174
- static {
1175
- __name(this, "API");
753
+ // src/_api/generated/core/utils.gen.ts
754
+ var PATH_PARAM_RE = /\{[^{}]+\}/g;
755
+ var defaultPathSerializer = /* @__PURE__ */ __name(({ path, url: _url }) => {
756
+ let url = _url;
757
+ const matches = _url.match(PATH_PARAM_RE);
758
+ if (matches) {
759
+ for (const match of matches) {
760
+ let explode = false;
761
+ let name = match.substring(1, match.length - 1);
762
+ let style = "simple";
763
+ if (name.endsWith("*")) {
764
+ explode = true;
765
+ name = name.substring(0, name.length - 1);
766
+ }
767
+ if (name.startsWith(".")) {
768
+ name = name.substring(1);
769
+ style = "label";
770
+ } else if (name.startsWith(";")) {
771
+ name = name.substring(1);
772
+ style = "matrix";
773
+ }
774
+ const value = path[name];
775
+ if (value === void 0 || value === null) {
776
+ continue;
777
+ }
778
+ if (Array.isArray(value)) {
779
+ url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
780
+ continue;
781
+ }
782
+ if (typeof value === "object") {
783
+ url = url.replace(
784
+ match,
785
+ serializeObjectParam({
786
+ explode,
787
+ name,
788
+ style,
789
+ value,
790
+ valueOnly: true
791
+ })
792
+ );
793
+ continue;
794
+ }
795
+ if (style === "matrix") {
796
+ url = url.replace(
797
+ match,
798
+ `;${serializePrimitiveParam({
799
+ name,
800
+ value
801
+ })}`
802
+ );
803
+ continue;
804
+ }
805
+ const replaceValue = encodeURIComponent(
806
+ style === "label" ? `.${value}` : value
807
+ );
808
+ url = url.replace(match, replaceValue);
809
+ }
1176
810
  }
1177
- logger;
1178
- constructor(_baseUrl, opts = {}) {
1179
- this.logger = new APILogger(opts.logger);
1180
- if (_baseUrl) auth.setBaseUrl(_baseUrl);
1181
- if (opts.locale !== void 0) auth.setLocale(opts.locale);
1182
- if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
1183
- if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
811
+ return url;
812
+ }, "defaultPathSerializer");
813
+ var getUrl = /* @__PURE__ */ __name(({
814
+ baseUrl,
815
+ path,
816
+ query,
817
+ querySerializer,
818
+ url: _url
819
+ }) => {
820
+ const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
821
+ let url = (baseUrl ?? "") + pathUrl;
822
+ if (path) {
823
+ url = defaultPathSerializer({ path, url });
1184
824
  }
1185
- // ── Base URL ────────────────────────────────────────────────────────────
1186
- getBaseUrl() {
1187
- return auth.getBaseUrl();
825
+ let search = query ? querySerializer(query) : "";
826
+ if (search.startsWith("?")) {
827
+ search = search.substring(1);
1188
828
  }
1189
- setBaseUrl(url) {
1190
- auth.setBaseUrl(url);
829
+ if (search) {
830
+ url += `?${search}`;
1191
831
  }
1192
- // ── Tokens ──────────────────────────────────────────────────────────────
1193
- getToken() {
1194
- return auth.getToken();
832
+ return url;
833
+ }, "getUrl");
834
+ function getValidRequestBody(options) {
835
+ const hasBody = options.body !== void 0;
836
+ const isSerializedBody = hasBody && options.bodySerializer;
837
+ if (isSerializedBody) {
838
+ if ("serializedBody" in options) {
839
+ const hasSerializedBody = options.serializedBody !== void 0 && options.serializedBody !== "";
840
+ return hasSerializedBody ? options.serializedBody : null;
841
+ }
842
+ return options.body !== "" ? options.body : null;
1195
843
  }
1196
- setToken(token) {
1197
- auth.setToken(token);
844
+ if (hasBody) {
845
+ return options.body;
1198
846
  }
1199
- getRefreshToken() {
1200
- return auth.getRefreshToken();
847
+ return void 0;
848
+ }
849
+ __name(getValidRequestBody, "getValidRequestBody");
850
+
851
+ // src/_api/generated/core/auth.gen.ts
852
+ var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
853
+ const token = typeof callback === "function" ? await callback(auth2) : callback;
854
+ if (!token) {
855
+ return;
1201
856
  }
1202
- setRefreshToken(token) {
1203
- auth.setRefreshToken(token);
857
+ if (auth2.scheme === "bearer") {
858
+ return `Bearer ${token}`;
1204
859
  }
1205
- clearToken() {
1206
- auth.clearTokens();
860
+ if (auth2.scheme === "basic") {
861
+ return `Basic ${btoa(token)}`;
1207
862
  }
1208
- isAuthenticated() {
1209
- return auth.isAuthenticated();
863
+ return token;
864
+ }, "getAuthToken");
865
+
866
+ // src/_api/generated/client/utils.gen.ts
867
+ var createQuerySerializer = /* @__PURE__ */ __name(({
868
+ parameters = {},
869
+ ...args
870
+ } = {}) => {
871
+ const querySerializer = /* @__PURE__ */ __name((queryParams) => {
872
+ const search = [];
873
+ if (queryParams && typeof queryParams === "object") {
874
+ for (const name in queryParams) {
875
+ const value = queryParams[name];
876
+ if (value === void 0 || value === null) {
877
+ continue;
878
+ }
879
+ const options = parameters[name] || args;
880
+ if (Array.isArray(value)) {
881
+ const serializedArray = serializeArrayParam({
882
+ allowReserved: options.allowReserved,
883
+ explode: true,
884
+ name,
885
+ style: "form",
886
+ value,
887
+ ...options.array
888
+ });
889
+ if (serializedArray) search.push(serializedArray);
890
+ } else if (typeof value === "object") {
891
+ const serializedObject = serializeObjectParam({
892
+ allowReserved: options.allowReserved,
893
+ explode: true,
894
+ name,
895
+ style: "deepObject",
896
+ value,
897
+ ...options.object
898
+ });
899
+ if (serializedObject) search.push(serializedObject);
900
+ } else {
901
+ const serializedPrimitive = serializePrimitiveParam({
902
+ allowReserved: options.allowReserved,
903
+ name,
904
+ value
905
+ });
906
+ if (serializedPrimitive) search.push(serializedPrimitive);
907
+ }
908
+ }
909
+ }
910
+ return search.join("&");
911
+ }, "querySerializer");
912
+ return querySerializer;
913
+ }, "createQuerySerializer");
914
+ var getParseAs = /* @__PURE__ */ __name((contentType) => {
915
+ if (!contentType) {
916
+ return "stream";
1210
917
  }
1211
- // ── Locale / API key ────────────────────────────────────────────────────
1212
- getLocale() {
1213
- return auth.getLocale();
918
+ const cleanContent = contentType.split(";")[0]?.trim();
919
+ if (!cleanContent) {
920
+ return;
1214
921
  }
1215
- setLocale(locale) {
1216
- auth.setLocale(locale);
922
+ if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
923
+ return "json";
1217
924
  }
1218
- getApiKey() {
1219
- return auth.getApiKey();
925
+ if (cleanContent === "multipart/form-data") {
926
+ return "formData";
1220
927
  }
1221
- setApiKey(key) {
1222
- auth.setApiKey(key);
928
+ if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
929
+ return "blob";
1223
930
  }
1224
- };
1225
-
1226
- // src/_api/generated/_cfg_totp/api.ts
1227
- var API3 = class {
1228
- static {
1229
- __name(this, "API");
931
+ if (cleanContent.startsWith("text/")) {
932
+ return "text";
1230
933
  }
1231
- logger;
1232
- constructor(_baseUrl, opts = {}) {
1233
- this.logger = new APILogger(opts.logger);
1234
- if (_baseUrl) auth.setBaseUrl(_baseUrl);
1235
- if (opts.locale !== void 0) auth.setLocale(opts.locale);
1236
- if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
1237
- if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
934
+ return;
935
+ }, "getParseAs");
936
+ var checkForExistence = /* @__PURE__ */ __name((options, name) => {
937
+ if (!name) {
938
+ return false;
1238
939
  }
1239
- // ── Base URL ────────────────────────────────────────────────────────────
1240
- getBaseUrl() {
1241
- return auth.getBaseUrl();
940
+ if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
941
+ return true;
1242
942
  }
1243
- setBaseUrl(url) {
1244
- auth.setBaseUrl(url);
943
+ return false;
944
+ }, "checkForExistence");
945
+ var setAuthParams = /* @__PURE__ */ __name(async ({
946
+ security,
947
+ ...options
948
+ }) => {
949
+ for (const auth2 of security) {
950
+ if (checkForExistence(options, auth2.name)) {
951
+ continue;
952
+ }
953
+ const token = await getAuthToken(auth2, options.auth);
954
+ if (!token) {
955
+ continue;
956
+ }
957
+ const name = auth2.name ?? "Authorization";
958
+ switch (auth2.in) {
959
+ case "query":
960
+ if (!options.query) {
961
+ options.query = {};
962
+ }
963
+ options.query[name] = token;
964
+ break;
965
+ case "cookie":
966
+ options.headers.append("Cookie", `${name}=${token}`);
967
+ break;
968
+ case "header":
969
+ default:
970
+ options.headers.set(name, token);
971
+ break;
972
+ }
1245
973
  }
1246
- // ── Tokens ──────────────────────────────────────────────────────────────
1247
- getToken() {
1248
- return auth.getToken();
974
+ }, "setAuthParams");
975
+ var buildUrl = /* @__PURE__ */ __name((options) => getUrl({
976
+ baseUrl: options.baseUrl,
977
+ path: options.path,
978
+ query: options.query,
979
+ querySerializer: typeof options.querySerializer === "function" ? options.querySerializer : createQuerySerializer(options.querySerializer),
980
+ url: options.url
981
+ }), "buildUrl");
982
+ var mergeConfigs = /* @__PURE__ */ __name((a, b) => {
983
+ const config = { ...a, ...b };
984
+ if (config.baseUrl?.endsWith("/")) {
985
+ config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);
1249
986
  }
1250
- setToken(token) {
1251
- auth.setToken(token);
987
+ config.headers = mergeHeaders(a.headers, b.headers);
988
+ return config;
989
+ }, "mergeConfigs");
990
+ var headersEntries = /* @__PURE__ */ __name((headers) => {
991
+ const entries = [];
992
+ headers.forEach((value, key) => {
993
+ entries.push([key, value]);
994
+ });
995
+ return entries;
996
+ }, "headersEntries");
997
+ var mergeHeaders = /* @__PURE__ */ __name((...headers) => {
998
+ const mergedHeaders = new Headers();
999
+ for (const header of headers) {
1000
+ if (!header) {
1001
+ continue;
1002
+ }
1003
+ const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);
1004
+ for (const [key, value] of iterator) {
1005
+ if (value === null) {
1006
+ mergedHeaders.delete(key);
1007
+ } else if (Array.isArray(value)) {
1008
+ for (const v of value) {
1009
+ mergedHeaders.append(key, v);
1010
+ }
1011
+ } else if (value !== void 0) {
1012
+ mergedHeaders.set(
1013
+ key,
1014
+ typeof value === "object" ? JSON.stringify(value) : value
1015
+ );
1016
+ }
1017
+ }
1252
1018
  }
1253
- getRefreshToken() {
1254
- return auth.getRefreshToken();
1019
+ return mergedHeaders;
1020
+ }, "mergeHeaders");
1021
+ var Interceptors = class {
1022
+ static {
1023
+ __name(this, "Interceptors");
1255
1024
  }
1256
- setRefreshToken(token) {
1257
- auth.setRefreshToken(token);
1025
+ fns = [];
1026
+ clear() {
1027
+ this.fns = [];
1258
1028
  }
1259
- clearToken() {
1260
- auth.clearTokens();
1029
+ eject(id) {
1030
+ const index = this.getInterceptorIndex(id);
1031
+ if (this.fns[index]) {
1032
+ this.fns[index] = null;
1033
+ }
1261
1034
  }
1262
- isAuthenticated() {
1263
- return auth.isAuthenticated();
1035
+ exists(id) {
1036
+ const index = this.getInterceptorIndex(id);
1037
+ return Boolean(this.fns[index]);
1264
1038
  }
1265
- // ── Locale / API key ────────────────────────────────────────────────────
1266
- getLocale() {
1267
- return auth.getLocale();
1039
+ getInterceptorIndex(id) {
1040
+ if (typeof id === "number") {
1041
+ return this.fns[id] ? id : -1;
1042
+ }
1043
+ return this.fns.indexOf(id);
1268
1044
  }
1269
- setLocale(locale) {
1270
- auth.setLocale(locale);
1045
+ update(id, fn) {
1046
+ const index = this.getInterceptorIndex(id);
1047
+ if (this.fns[index]) {
1048
+ this.fns[index] = fn;
1049
+ return id;
1050
+ }
1051
+ return false;
1271
1052
  }
1272
- getApiKey() {
1273
- return auth.getApiKey();
1053
+ use(fn) {
1054
+ this.fns.push(fn);
1055
+ return this.fns.length - 1;
1274
1056
  }
1275
- setApiKey(key) {
1276
- auth.setApiKey(key);
1057
+ };
1058
+ var createInterceptors = /* @__PURE__ */ __name(() => ({
1059
+ error: new Interceptors(),
1060
+ request: new Interceptors(),
1061
+ response: new Interceptors()
1062
+ }), "createInterceptors");
1063
+ var defaultQuerySerializer = createQuerySerializer({
1064
+ allowReserved: false,
1065
+ array: {
1066
+ explode: true,
1067
+ style: "form"
1068
+ },
1069
+ object: {
1070
+ explode: true,
1071
+ style: "deepObject"
1277
1072
  }
1073
+ });
1074
+ var defaultHeaders = {
1075
+ "Content-Type": "application/json"
1278
1076
  };
1077
+ var createConfig = /* @__PURE__ */ __name((override = {}) => ({
1078
+ ...jsonBodySerializer,
1079
+ headers: defaultHeaders,
1080
+ parseAs: "auto",
1081
+ querySerializer: defaultQuerySerializer,
1082
+ ...override
1083
+ }), "createConfig");
1279
1084
 
1280
- // src/_api/generated/index.ts
1281
- var CfgAccountsApi = new API();
1282
- var CfgCentrifugoApi = new API2();
1283
- var CfgTotpApi = new API3();
1085
+ // src/_api/generated/client/client.gen.ts
1086
+ var createClient = /* @__PURE__ */ __name((config = {}) => {
1087
+ let _config = mergeConfigs(createConfig(), config);
1088
+ const getConfig = /* @__PURE__ */ __name(() => ({ ..._config }), "getConfig");
1089
+ const setConfig = /* @__PURE__ */ __name((config2) => {
1090
+ _config = mergeConfigs(_config, config2);
1091
+ return getConfig();
1092
+ }, "setConfig");
1093
+ const interceptors = createInterceptors();
1094
+ const beforeRequest = /* @__PURE__ */ __name(async (options) => {
1095
+ const opts = {
1096
+ ..._config,
1097
+ ...options,
1098
+ fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
1099
+ headers: mergeHeaders(_config.headers, options.headers),
1100
+ serializedBody: void 0
1101
+ };
1102
+ if (opts.security) {
1103
+ await setAuthParams({
1104
+ ...opts,
1105
+ security: opts.security
1106
+ });
1107
+ }
1108
+ if (opts.requestValidator) {
1109
+ await opts.requestValidator(opts);
1110
+ }
1111
+ if (opts.body !== void 0 && opts.bodySerializer) {
1112
+ opts.serializedBody = opts.bodySerializer(opts.body);
1113
+ }
1114
+ if (opts.body === void 0 || opts.serializedBody === "") {
1115
+ opts.headers.delete("Content-Type");
1116
+ }
1117
+ const resolvedOpts = opts;
1118
+ const url = buildUrl(resolvedOpts);
1119
+ return { opts: resolvedOpts, url };
1120
+ }, "beforeRequest");
1121
+ const request = /* @__PURE__ */ __name(async (options) => {
1122
+ const throwOnError = options.throwOnError ?? _config.throwOnError;
1123
+ const responseStyle = options.responseStyle ?? _config.responseStyle;
1124
+ let request2;
1125
+ let response;
1126
+ try {
1127
+ const { opts, url } = await beforeRequest(options);
1128
+ const requestInit = {
1129
+ redirect: "follow",
1130
+ ...opts,
1131
+ body: getValidRequestBody(opts)
1132
+ };
1133
+ request2 = new Request(url, requestInit);
1134
+ for (const fn of interceptors.request.fns) {
1135
+ if (fn) {
1136
+ request2 = await fn(request2, opts);
1137
+ }
1138
+ }
1139
+ const _fetch = opts.fetch;
1140
+ response = await _fetch(request2);
1141
+ for (const fn of interceptors.response.fns) {
1142
+ if (fn) {
1143
+ response = await fn(response, request2, opts);
1144
+ }
1145
+ }
1146
+ const result = {
1147
+ request: request2,
1148
+ response
1149
+ };
1150
+ if (response.ok) {
1151
+ const parseAs = (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json";
1152
+ if (response.status === 204 || response.headers.get("Content-Length") === "0") {
1153
+ let emptyData;
1154
+ switch (parseAs) {
1155
+ case "arrayBuffer":
1156
+ case "blob":
1157
+ case "text":
1158
+ emptyData = await response[parseAs]();
1159
+ break;
1160
+ case "formData":
1161
+ emptyData = new FormData();
1162
+ break;
1163
+ case "stream":
1164
+ emptyData = response.body;
1165
+ break;
1166
+ case "json":
1167
+ default:
1168
+ emptyData = {};
1169
+ break;
1170
+ }
1171
+ return opts.responseStyle === "data" ? emptyData : {
1172
+ data: emptyData,
1173
+ ...result
1174
+ };
1175
+ }
1176
+ let data;
1177
+ switch (parseAs) {
1178
+ case "arrayBuffer":
1179
+ case "blob":
1180
+ case "formData":
1181
+ case "text":
1182
+ data = await response[parseAs]();
1183
+ break;
1184
+ case "json": {
1185
+ const text = await response.text();
1186
+ data = text ? JSON.parse(text) : {};
1187
+ break;
1188
+ }
1189
+ case "stream":
1190
+ return opts.responseStyle === "data" ? response.body : {
1191
+ data: response.body,
1192
+ ...result
1193
+ };
1194
+ }
1195
+ if (parseAs === "json") {
1196
+ if (opts.responseValidator) {
1197
+ await opts.responseValidator(data);
1198
+ }
1199
+ if (opts.responseTransformer) {
1200
+ data = await opts.responseTransformer(data);
1201
+ }
1202
+ }
1203
+ return opts.responseStyle === "data" ? data : {
1204
+ data,
1205
+ ...result
1206
+ };
1207
+ }
1208
+ const textError = await response.text();
1209
+ let jsonError;
1210
+ try {
1211
+ jsonError = JSON.parse(textError);
1212
+ } catch {
1213
+ }
1214
+ throw jsonError ?? textError;
1215
+ } catch (error) {
1216
+ let finalError = error;
1217
+ for (const fn of interceptors.error.fns) {
1218
+ if (fn) {
1219
+ finalError = await fn(finalError, response, request2, options);
1220
+ }
1221
+ }
1222
+ finalError = finalError || {};
1223
+ if (throwOnError) {
1224
+ throw finalError;
1225
+ }
1226
+ return responseStyle === "data" ? void 0 : {
1227
+ error: finalError,
1228
+ request: request2,
1229
+ response
1230
+ };
1231
+ }
1232
+ }, "request");
1233
+ const makeMethodFn = /* @__PURE__ */ __name((method) => (options) => request({ ...options, method }), "makeMethodFn");
1234
+ const makeSseFn = /* @__PURE__ */ __name((method) => async (options) => {
1235
+ const { opts, url } = await beforeRequest(options);
1236
+ return createSseClient({
1237
+ ...opts,
1238
+ body: opts.body,
1239
+ method,
1240
+ onRequest: /* @__PURE__ */ __name(async (url2, init) => {
1241
+ let request2 = new Request(url2, init);
1242
+ for (const fn of interceptors.request.fns) {
1243
+ if (fn) {
1244
+ request2 = await fn(request2, opts);
1245
+ }
1246
+ }
1247
+ return request2;
1248
+ }, "onRequest"),
1249
+ serializedBody: getValidRequestBody(opts),
1250
+ url
1251
+ });
1252
+ }, "makeSseFn");
1253
+ const _buildUrl = /* @__PURE__ */ __name((options) => buildUrl({ ..._config, ...options }), "_buildUrl");
1254
+ return {
1255
+ buildUrl: _buildUrl,
1256
+ connect: makeMethodFn("CONNECT"),
1257
+ delete: makeMethodFn("DELETE"),
1258
+ get: makeMethodFn("GET"),
1259
+ getConfig,
1260
+ head: makeMethodFn("HEAD"),
1261
+ interceptors,
1262
+ options: makeMethodFn("OPTIONS"),
1263
+ patch: makeMethodFn("PATCH"),
1264
+ post: makeMethodFn("POST"),
1265
+ put: makeMethodFn("PUT"),
1266
+ request,
1267
+ setConfig,
1268
+ sse: {
1269
+ connect: makeSseFn("CONNECT"),
1270
+ delete: makeSseFn("DELETE"),
1271
+ get: makeSseFn("GET"),
1272
+ head: makeSseFn("HEAD"),
1273
+ options: makeSseFn("OPTIONS"),
1274
+ patch: makeSseFn("PATCH"),
1275
+ post: makeSseFn("POST"),
1276
+ put: makeSseFn("PUT"),
1277
+ trace: makeSseFn("TRACE")
1278
+ },
1279
+ trace: makeMethodFn("TRACE")
1280
+ };
1281
+ }, "createClient");
1282
+
1283
+ // src/_api/generated/client.gen.ts
1284
+ var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
1285
+ installAuthOnClient(client);
1284
1286
 
1285
1287
  // src/_api/generated/sdk.gen.ts
1286
1288
  var Auth = class {