@djangocfg/api 2.1.331 → 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,840 +50,207 @@ 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: baseUrl2,
381
- path,
382
- query,
383
- querySerializer,
384
- url: _url
385
- }) => {
386
- const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
387
- let url = (baseUrl2 ?? "") + 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 (auth, callback) => {
419
- const token = typeof callback === "function" ? await callback(auth) : callback;
420
- if (!token) {
421
- return;
422
- }
423
- if (auth.scheme === "bearer") {
424
- return `Bearer ${token}`;
425
- }
426
- if (auth.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 auth of security) {
516
- if (checkForExistence(options, auth.name)) {
517
- continue;
518
- }
519
- const token = await getAuthToken(auth, options.auth);
520
- if (!token) {
521
- continue;
522
- }
523
- const name = auth.name ?? "Authorization";
524
- switch (auth.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
- // src/_api/generated/helpers/storage.ts
853
- var LocalStorageAdapter = class {
854
- static {
855
- __name(this, "LocalStorageAdapter");
856
- }
857
- getItem(key) {
858
- if (typeof window === "undefined") return null;
53
+ // src/_api/generated/helpers/auth.ts
54
+ var ACCESS_KEY = "cfg.access_token";
55
+ var REFRESH_KEY = "cfg.refresh_token";
56
+ var API_KEY_KEY = "cfg.api_key";
57
+ var isBrowser = typeof window !== "undefined";
58
+ var localStorageBackend = {
59
+ get(key) {
60
+ if (!isBrowser) return null;
859
61
  try {
860
62
  return window.localStorage.getItem(key);
861
63
  } catch {
862
64
  return null;
863
65
  }
864
- }
865
- setItem(key, value) {
866
- if (typeof window === "undefined") return;
66
+ },
67
+ set(key, value) {
68
+ if (!isBrowser) return;
867
69
  try {
868
- window.localStorage.setItem(key, value);
70
+ if (value === null) window.localStorage.removeItem(key);
71
+ else window.localStorage.setItem(key, value);
869
72
  } catch {
870
73
  }
871
74
  }
872
- removeItem(key) {
873
- if (typeof window === "undefined") return;
75
+ };
76
+ var COOKIE_MAX_AGE = 60 * 60 * 24 * 30;
77
+ var cookieBackend = {
78
+ get(key) {
79
+ if (!isBrowser) return null;
874
80
  try {
875
- window.localStorage.removeItem(key);
81
+ const re = new RegExp(`(?:^|;\\s*)${encodeURIComponent(key)}=([^;]*)`);
82
+ const m = document.cookie.match(re);
83
+ return m ? decodeURIComponent(m[1]) : null;
876
84
  } catch {
85
+ return null;
877
86
  }
878
- }
879
- clear() {
880
- if (typeof window === "undefined") return;
87
+ },
88
+ set(key, value) {
89
+ if (!isBrowser) return;
881
90
  try {
882
- window.localStorage.clear();
91
+ const k = encodeURIComponent(key);
92
+ const secure = window.location.protocol === "https:" ? "; Secure" : "";
93
+ if (value === null) {
94
+ document.cookie = `${k}=; Path=/; Max-Age=0; SameSite=Lax${secure}`;
95
+ } else {
96
+ const v = encodeURIComponent(value);
97
+ document.cookie = `${k}=${v}; Path=/; Max-Age=${COOKIE_MAX_AGE}; SameSite=Lax${secure}`;
98
+ }
883
99
  } catch {
884
100
  }
885
101
  }
886
102
  };
103
+ var _storage = localStorageBackend;
104
+ var _storageMode = "localStorage";
105
+ function detectLocale() {
106
+ try {
107
+ if (typeof document !== "undefined") {
108
+ const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
109
+ if (m) return decodeURIComponent(m[1]);
110
+ }
111
+ if (typeof navigator !== "undefined" && navigator.language) {
112
+ return navigator.language;
113
+ }
114
+ } catch {
115
+ }
116
+ return null;
117
+ }
118
+ __name(detectLocale, "detectLocale");
119
+ function defaultBaseUrl() {
120
+ try {
121
+ if (typeof process !== "undefined" && process.env) {
122
+ if (process.env.NEXT_PUBLIC_STATIC_BUILD === "true") return "";
123
+ return process.env.NEXT_PUBLIC_API_URL || "";
124
+ }
125
+ } catch {
126
+ }
127
+ return "";
128
+ }
129
+ __name(defaultBaseUrl, "defaultBaseUrl");
130
+ function defaultApiKey() {
131
+ try {
132
+ if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_KEY) {
133
+ return process.env.NEXT_PUBLIC_API_KEY;
134
+ }
135
+ } catch {
136
+ }
137
+ return null;
138
+ }
139
+ __name(defaultApiKey, "defaultApiKey");
140
+ var _localeOverride = null;
141
+ var _apiKeyOverride = null;
142
+ var _baseUrlOverride = null;
143
+ var _withCredentials = true;
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");
154
+ var auth = {
155
+ // ── Storage mode ──────────────────────────────────────────────────
156
+ getStorageMode() {
157
+ return _storageMode;
158
+ },
159
+ setStorageMode(mode) {
160
+ _storageMode = mode;
161
+ _storage = mode === "cookie" ? cookieBackend : localStorageBackend;
162
+ },
163
+ // ── Bearer token ──────────────────────────────────────────────────
164
+ getToken() {
165
+ return _storage.get(ACCESS_KEY);
166
+ },
167
+ setToken(token) {
168
+ _storage.set(ACCESS_KEY, token);
169
+ },
170
+ getRefreshToken() {
171
+ return _storage.get(REFRESH_KEY);
172
+ },
173
+ setRefreshToken(token) {
174
+ _storage.set(REFRESH_KEY, token);
175
+ },
176
+ clearTokens() {
177
+ _storage.set(ACCESS_KEY, null);
178
+ _storage.set(REFRESH_KEY, null);
179
+ },
180
+ isAuthenticated() {
181
+ return _storage.get(ACCESS_KEY) !== null;
182
+ },
183
+ // ── API key ───────────────────────────────────────────────────────
184
+ getApiKey() {
185
+ return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
186
+ },
187
+ setApiKey(key) {
188
+ _apiKeyOverride = key;
189
+ },
190
+ setApiKeyPersist(key) {
191
+ _apiKeyOverride = key;
192
+ _storage.set(API_KEY_KEY, key);
193
+ },
194
+ clearApiKey() {
195
+ _apiKeyOverride = null;
196
+ _storage.set(API_KEY_KEY, null);
197
+ },
198
+ // ── Locale ────────────────────────────────────────────────────────
199
+ getLocale() {
200
+ return _localeOverride ?? detectLocale();
201
+ },
202
+ setLocale(locale) {
203
+ _localeOverride = locale;
204
+ },
205
+ // ── Base URL ──────────────────────────────────────────────────────
206
+ getBaseUrl() {
207
+ const url = _baseUrlOverride ?? defaultBaseUrl();
208
+ return url.replace(/\/$/, "");
209
+ },
210
+ setBaseUrl(url) {
211
+ _baseUrlOverride = url ? url.replace(/\/$/, "") : null;
212
+ pushClientConfig();
213
+ },
214
+ // ── Credentials toggle ────────────────────────────────────────────
215
+ getWithCredentials() {
216
+ return _withCredentials;
217
+ },
218
+ setWithCredentials(value) {
219
+ _withCredentials = value;
220
+ pushClientConfig();
221
+ },
222
+ // ── 401 handler ───────────────────────────────────────────────────
223
+ onUnauthorized(cb) {
224
+ _onUnauthorized = cb;
225
+ }
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");
887
254
 
888
255
  // src/_api/generated/helpers/logger.ts
889
256
  var import_consola = require("consola");
@@ -958,297 +325,993 @@ var APILogger = class {
958
325
  });
959
326
  }
960
327
  }
961
- info(message, ...args) {
962
- if (this.config.enabled) this.consola.info(message, ...args);
963
- }
964
- warn(message, ...args) {
965
- if (this.config.enabled) this.consola.warn(message, ...args);
966
- }
967
- error(message, ...args) {
968
- if (this.config.enabled) this.consola.error(message, ...args);
969
- }
970
- debug(message, ...args) {
971
- if (this.config.enabled) this.consola.debug(message, ...args);
972
- }
973
- success(message, ...args) {
974
- if (this.config.enabled) this.consola.success(message, ...args);
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);
454
+ }
455
+ };
456
+
457
+ // src/_api/generated/_cfg_totp/api.ts
458
+ var API3 = class {
459
+ static {
460
+ __name(this, "API");
461
+ }
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);
469
+ }
470
+ // ── Base URL ────────────────────────────────────────────────────────────
471
+ getBaseUrl() {
472
+ return auth.getBaseUrl();
473
+ }
474
+ setBaseUrl(url) {
475
+ auth.setBaseUrl(url);
476
+ }
477
+ // ── Tokens ──────────────────────────────────────────────────────────────
478
+ getToken() {
479
+ return auth.getToken();
480
+ }
481
+ setToken(token) {
482
+ auth.setToken(token);
483
+ }
484
+ getRefreshToken() {
485
+ return auth.getRefreshToken();
486
+ }
487
+ setRefreshToken(token) {
488
+ auth.setRefreshToken(token);
489
+ }
490
+ clearToken() {
491
+ auth.clearTokens();
492
+ }
493
+ isAuthenticated() {
494
+ return auth.isAuthenticated();
495
+ }
496
+ // ── Locale / API key ────────────────────────────────────────────────────
497
+ getLocale() {
498
+ return auth.getLocale();
499
+ }
500
+ setLocale(locale) {
501
+ auth.setLocale(locale);
502
+ }
503
+ getApiKey() {
504
+ return auth.getApiKey();
505
+ }
506
+ setApiKey(key) {
507
+ auth.setApiKey(key);
508
+ }
509
+ };
510
+
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 "&";
669
+ }
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 ",";
975
681
  }
976
- withTag(tag) {
977
- return this.consola.withTag(tag);
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 "&";
978
693
  }
979
- };
980
- var defaultLogger = new APILogger();
981
-
982
- // src/_api/generated/_cfg_accounts/api.ts
983
- var ACCESS_KEY = "cfg.access_token";
984
- var REFRESH_KEY = "cfg.refresh_token";
985
- function detectLocale() {
986
- try {
987
- if (typeof document !== "undefined") {
988
- const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
989
- if (m) return decodeURIComponent(m[1]);
990
- }
991
- if (typeof navigator !== "undefined" && navigator.language) {
992
- return navigator.language;
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}`;
993
713
  }
994
- } catch {
995
- }
996
- return null;
997
- }
998
- __name(detectLocale, "detectLocale");
999
- var API = class {
1000
- static {
1001
- __name(this, "API");
1002
714
  }
1003
- baseUrl;
1004
- storage;
1005
- locale;
1006
- apiKey;
1007
- logger;
1008
- constructor(baseUrl2, opts = {}) {
1009
- this.baseUrl = baseUrl2.replace(/\/$/, "");
1010
- this.storage = opts.storage ?? new LocalStorageAdapter();
1011
- this.logger = new APILogger(opts.logger);
1012
- this.locale = opts.locale ?? null;
1013
- this.apiKey = opts.apiKey ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_KEY ?? null : null);
1014
- const credentials = opts.withCredentials ?? true ? "include" : "same-origin";
1015
- client.setConfig({ baseUrl: this.baseUrl, credentials });
1016
- client.interceptors.request.use((request) => {
1017
- const access = this.getToken();
1018
- if (access) request.headers.set("Authorization", `Bearer ${access}`);
1019
- const locale = this.locale ?? detectLocale();
1020
- if (locale) request.headers.set("Accept-Language", locale);
1021
- if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
1022
- return request;
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
1023
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 "";
1024
735
  }
1025
- // ── Base URL ────────────────────────────────────────────────────────────
1026
- getBaseUrl() {
1027
- return this.baseUrl;
1028
- }
1029
- setBaseUrl(url) {
1030
- this.baseUrl = url.replace(/\/$/, "");
1031
- client.setConfig({ baseUrl: this.baseUrl });
1032
- }
1033
- // ── Tokens ──────────────────────────────────────────────────────────────
1034
- getToken() {
1035
- return this.storage.getItem(ACCESS_KEY);
1036
- }
1037
- setToken(token) {
1038
- if (token) this.storage.setItem(ACCESS_KEY, token);
1039
- else this.storage.removeItem(ACCESS_KEY);
1040
- }
1041
- getRefreshToken() {
1042
- return this.storage.getItem(REFRESH_KEY);
1043
- }
1044
- setRefreshToken(token) {
1045
- if (token) this.storage.setItem(REFRESH_KEY, token);
1046
- else this.storage.removeItem(REFRESH_KEY);
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
+ );
1047
740
  }
1048
- clearToken() {
1049
- this.storage.removeItem(ACCESS_KEY);
1050
- this.storage.removeItem(REFRESH_KEY);
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()}`;
1051
753
  }
1052
- isAuthenticated() {
1053
- return this.getToken() !== null;
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
+ }
1054
770
  }
1055
- // ── Locale / API key ────────────────────────────────────────────────────
1056
- getLocale() {
1057
- return this.locale ?? detectLocale();
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");
781
+
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
+ }
1058
839
  }
1059
- setLocale(locale) {
1060
- this.locale = locale;
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 });
1061
853
  }
1062
- getApiKey() {
1063
- return this.apiKey;
854
+ let search = query ? querySerializer(query) : "";
855
+ if (search.startsWith("?")) {
856
+ search = search.substring(1);
1064
857
  }
1065
- setApiKey(key) {
1066
- this.apiKey = key;
858
+ if (search) {
859
+ url += `?${search}`;
1067
860
  }
1068
- };
1069
-
1070
- // src/_api/generated/_cfg_centrifugo/api.ts
1071
- var ACCESS_KEY2 = "cfg.access_token";
1072
- var REFRESH_KEY2 = "cfg.refresh_token";
1073
- function detectLocale2() {
1074
- try {
1075
- if (typeof document !== "undefined") {
1076
- const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
1077
- if (m) return decodeURIComponent(m[1]);
1078
- }
1079
- if (typeof navigator !== "undefined" && navigator.language) {
1080
- return navigator.language;
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;
1081
870
  }
1082
- } catch {
871
+ return options.body !== "" ? options.body : null;
1083
872
  }
1084
- return null;
1085
- }
1086
- __name(detectLocale2, "detectLocale");
1087
- var API2 = class {
1088
- static {
1089
- __name(this, "API");
873
+ if (hasBody) {
874
+ return options.body;
1090
875
  }
1091
- baseUrl;
1092
- storage;
1093
- locale;
1094
- apiKey;
1095
- logger;
1096
- constructor(baseUrl2, opts = {}) {
1097
- this.baseUrl = baseUrl2.replace(/\/$/, "");
1098
- this.storage = opts.storage ?? new LocalStorageAdapter();
1099
- this.logger = new APILogger(opts.logger);
1100
- this.locale = opts.locale ?? null;
1101
- this.apiKey = opts.apiKey ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_KEY ?? null : null);
1102
- const credentials = opts.withCredentials ?? true ? "include" : "same-origin";
1103
- client.setConfig({ baseUrl: this.baseUrl, credentials });
1104
- client.interceptors.request.use((request) => {
1105
- const access = this.getToken();
1106
- if (access) request.headers.set("Authorization", `Bearer ${access}`);
1107
- const locale = this.locale ?? detectLocale2();
1108
- if (locale) request.headers.set("Accept-Language", locale);
1109
- if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
1110
- return request;
1111
- });
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;
1112
885
  }
1113
- // ── Base URL ────────────────────────────────────────────────────────────
1114
- getBaseUrl() {
1115
- return this.baseUrl;
886
+ if (auth2.scheme === "bearer") {
887
+ return `Bearer ${token}`;
1116
888
  }
1117
- setBaseUrl(url) {
1118
- this.baseUrl = url.replace(/\/$/, "");
1119
- client.setConfig({ baseUrl: this.baseUrl });
889
+ if (auth2.scheme === "basic") {
890
+ return `Basic ${btoa(token)}`;
1120
891
  }
1121
- // ── Tokens ──────────────────────────────────────────────────────────────
1122
- getToken() {
1123
- return this.storage.getItem(ACCESS_KEY2);
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";
1124
946
  }
1125
- setToken(token) {
1126
- if (token) this.storage.setItem(ACCESS_KEY2, token);
1127
- else this.storage.removeItem(ACCESS_KEY2);
947
+ const cleanContent = contentType.split(";")[0]?.trim();
948
+ if (!cleanContent) {
949
+ return;
1128
950
  }
1129
- getRefreshToken() {
1130
- return this.storage.getItem(REFRESH_KEY2);
951
+ if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
952
+ return "json";
1131
953
  }
1132
- setRefreshToken(token) {
1133
- if (token) this.storage.setItem(REFRESH_KEY2, token);
1134
- else this.storage.removeItem(REFRESH_KEY2);
954
+ if (cleanContent === "multipart/form-data") {
955
+ return "formData";
1135
956
  }
1136
- clearToken() {
1137
- this.storage.removeItem(ACCESS_KEY2);
1138
- this.storage.removeItem(REFRESH_KEY2);
957
+ if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
958
+ return "blob";
1139
959
  }
1140
- isAuthenticated() {
1141
- return this.getToken() !== null;
960
+ if (cleanContent.startsWith("text/")) {
961
+ return "text";
1142
962
  }
1143
- // ── Locale / API key ────────────────────────────────────────────────────
1144
- getLocale() {
1145
- return this.locale ?? detectLocale2();
963
+ return;
964
+ }, "getParseAs");
965
+ var checkForExistence = /* @__PURE__ */ __name((options, name) => {
966
+ if (!name) {
967
+ return false;
1146
968
  }
1147
- setLocale(locale) {
1148
- this.locale = locale;
969
+ if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
970
+ return true;
1149
971
  }
1150
- getApiKey() {
1151
- return this.apiKey;
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
+ }
1152
1002
  }
1153
- setApiKey(key) {
1154
- this.apiKey = key;
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);
1155
1015
  }
1156
- };
1157
-
1158
- // src/_api/generated/_cfg_totp/api.ts
1159
- var ACCESS_KEY3 = "cfg.access_token";
1160
- var REFRESH_KEY3 = "cfg.refresh_token";
1161
- function detectLocale3() {
1162
- try {
1163
- if (typeof document !== "undefined") {
1164
- const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
1165
- if (m) return decodeURIComponent(m[1]);
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;
1166
1031
  }
1167
- if (typeof navigator !== "undefined" && navigator.language) {
1168
- return navigator.language;
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
+ }
1169
1046
  }
1170
- } catch {
1171
1047
  }
1172
- return null;
1173
- }
1174
- __name(detectLocale3, "detectLocale");
1175
- var API3 = class {
1048
+ return mergedHeaders;
1049
+ }, "mergeHeaders");
1050
+ var Interceptors = class {
1176
1051
  static {
1177
- __name(this, "API");
1178
- }
1179
- baseUrl;
1180
- storage;
1181
- locale;
1182
- apiKey;
1183
- logger;
1184
- constructor(baseUrl2, opts = {}) {
1185
- this.baseUrl = baseUrl2.replace(/\/$/, "");
1186
- this.storage = opts.storage ?? new LocalStorageAdapter();
1187
- this.logger = new APILogger(opts.logger);
1188
- this.locale = opts.locale ?? null;
1189
- this.apiKey = opts.apiKey ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_KEY ?? null : null);
1190
- const credentials = opts.withCredentials ?? true ? "include" : "same-origin";
1191
- client.setConfig({ baseUrl: this.baseUrl, credentials });
1192
- client.interceptors.request.use((request) => {
1193
- const access = this.getToken();
1194
- if (access) request.headers.set("Authorization", `Bearer ${access}`);
1195
- const locale = this.locale ?? detectLocale3();
1196
- if (locale) request.headers.set("Accept-Language", locale);
1197
- if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
1198
- return request;
1199
- });
1200
- }
1201
- // ── Base URL ────────────────────────────────────────────────────────────
1202
- getBaseUrl() {
1203
- return this.baseUrl;
1204
- }
1205
- setBaseUrl(url) {
1206
- this.baseUrl = url.replace(/\/$/, "");
1207
- client.setConfig({ baseUrl: this.baseUrl });
1208
- }
1209
- // ── Tokens ──────────────────────────────────────────────────────────────
1210
- getToken() {
1211
- return this.storage.getItem(ACCESS_KEY3);
1212
- }
1213
- setToken(token) {
1214
- if (token) this.storage.setItem(ACCESS_KEY3, token);
1215
- else this.storage.removeItem(ACCESS_KEY3);
1216
- }
1217
- getRefreshToken() {
1218
- return this.storage.getItem(REFRESH_KEY3);
1052
+ __name(this, "Interceptors");
1219
1053
  }
1220
- setRefreshToken(token) {
1221
- if (token) this.storage.setItem(REFRESH_KEY3, token);
1222
- else this.storage.removeItem(REFRESH_KEY3);
1054
+ fns = [];
1055
+ clear() {
1056
+ this.fns = [];
1223
1057
  }
1224
- clearToken() {
1225
- this.storage.removeItem(ACCESS_KEY3);
1226
- this.storage.removeItem(REFRESH_KEY3);
1058
+ eject(id) {
1059
+ const index = this.getInterceptorIndex(id);
1060
+ if (this.fns[index]) {
1061
+ this.fns[index] = null;
1062
+ }
1227
1063
  }
1228
- isAuthenticated() {
1229
- return this.getToken() !== null;
1064
+ exists(id) {
1065
+ const index = this.getInterceptorIndex(id);
1066
+ return Boolean(this.fns[index]);
1230
1067
  }
1231
- // ── Locale / API key ────────────────────────────────────────────────────
1232
- getLocale() {
1233
- return this.locale ?? detectLocale3();
1068
+ getInterceptorIndex(id) {
1069
+ if (typeof id === "number") {
1070
+ return this.fns[id] ? id : -1;
1071
+ }
1072
+ return this.fns.indexOf(id);
1234
1073
  }
1235
- setLocale(locale) {
1236
- this.locale = 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;
1237
1081
  }
1238
- getApiKey() {
1239
- return this.apiKey;
1082
+ use(fn) {
1083
+ this.fns.push(fn);
1084
+ return this.fns.length - 1;
1240
1085
  }
1241
- setApiKey(key) {
1242
- this.apiKey = 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"
1243
1101
  }
1102
+ });
1103
+ var defaultHeaders = {
1104
+ "Content-Type": "application/json"
1244
1105
  };
1106
+ var createConfig = /* @__PURE__ */ __name((override = {}) => ({
1107
+ ...jsonBodySerializer,
1108
+ headers: defaultHeaders,
1109
+ parseAs: "auto",
1110
+ querySerializer: defaultQuerySerializer,
1111
+ ...override
1112
+ }), "createConfig");
1245
1113
 
1246
- // src/_api/generated/index.ts
1247
- var isStaticBuild = process.env.NEXT_PUBLIC_STATIC_BUILD === "true";
1248
- var baseUrl = isStaticBuild ? "" : process.env.NEXT_PUBLIC_API_URL || "";
1249
- var CfgAccountsApi = new API(baseUrl, { storage: new LocalStorageAdapter() });
1250
- var CfgCentrifugoApi = new API2(baseUrl, { storage: new LocalStorageAdapter() });
1251
- var CfgTotpApi = new API3(baseUrl, { storage: new LocalStorageAdapter() });
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);
1252
1315
 
1253
1316
  // src/_api/generated/sdk.gen.ts
1254
1317
  var Auth = class {
@@ -1277,8 +1340,8 @@ var import_consola2 = require("consola");
1277
1340
  var isDev = process.env.NODE_ENV === "development";
1278
1341
 
1279
1342
  // src/auth/utils/logger.ts
1280
- var isStaticBuild2 = process.env.NEXT_PUBLIC_STATIC_BUILD === "true";
1281
- var showLogs = isDev || isStaticBuild2;
1343
+ var isStaticBuild = process.env.NEXT_PUBLIC_STATIC_BUILD === "true";
1344
+ var showLogs = isDev || isStaticBuild;
1282
1345
  var logger = (0, import_consola2.createConsola)({
1283
1346
  level: showLogs ? 4 : 1
1284
1347
  // dev: debug, production: errors only