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