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