@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.
- package/dist/auth-server.cjs +1130 -1067
- package/dist/auth-server.cjs.map +1 -1
- package/dist/auth-server.mjs +1130 -1067
- package/dist/auth-server.mjs.map +1 -1
- package/dist/auth.cjs +1229 -1166
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.mjs +1229 -1166
- package/dist/auth.mjs.map +1 -1
- package/dist/clients.cjs +210 -974
- package/dist/clients.cjs.map +1 -1
- package/dist/clients.d.cts +24 -49
- package/dist/clients.d.ts +24 -49
- package/dist/clients.mjs +210 -974
- package/dist/clients.mjs.map +1 -1
- package/dist/index.cjs +1199 -1099
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +673 -657
- package/dist/index.d.ts +673 -657
- package/dist/index.mjs +1199 -1099
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/_api/generated/_cfg_accounts/api.ts +29 -82
- package/src/_api/generated/_cfg_accounts/index.ts +4 -4
- package/src/_api/generated/_cfg_centrifugo/api.ts +29 -82
- package/src/_api/generated/_cfg_centrifugo/index.ts +4 -4
- package/src/_api/generated/_cfg_totp/api.ts +29 -82
- package/src/_api/generated/_cfg_totp/index.ts +4 -4
- package/src/_api/generated/client.gen.ts +4 -0
- package/src/_api/generated/helpers/auth.ts +240 -0
- package/src/_api/generated/helpers/index.ts +1 -0
- package/src/_api/generated/index.ts +17 -13
package/dist/auth-server.mjs
CHANGED
|
@@ -21,840 +21,207 @@ var proxyMiddlewareConfig = {
|
|
|
21
21
|
matcher: ["/media/:path*", "/api/:path*"]
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
// src/_api/generated/
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
837
|
-
if (
|
|
37
|
+
},
|
|
38
|
+
set(key, value) {
|
|
39
|
+
if (!isBrowser) return;
|
|
838
40
|
try {
|
|
839
|
-
window.localStorage.
|
|
41
|
+
if (value === null) window.localStorage.removeItem(key);
|
|
42
|
+
else window.localStorage.setItem(key, value);
|
|
840
43
|
} catch {
|
|
841
44
|
}
|
|
842
45
|
}
|
|
843
|
-
|
|
844
|
-
|
|
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
|
-
|
|
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
|
-
|
|
851
|
-
if (
|
|
58
|
+
},
|
|
59
|
+
set(key, value) {
|
|
60
|
+
if (!isBrowser) return;
|
|
852
61
|
try {
|
|
853
|
-
|
|
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
|
-
|
|
948
|
-
|
|
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
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
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
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
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
|
-
|
|
997
|
-
|
|
998
|
-
|
|
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
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
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
|
-
|
|
1024
|
-
|
|
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
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
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
|
-
|
|
1031
|
-
|
|
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
|
-
|
|
1034
|
-
|
|
825
|
+
let search = query ? querySerializer(query) : "";
|
|
826
|
+
if (search.startsWith("?")) {
|
|
827
|
+
search = search.substring(1);
|
|
1035
828
|
}
|
|
1036
|
-
|
|
1037
|
-
|
|
829
|
+
if (search) {
|
|
830
|
+
url += `?${search}`;
|
|
1038
831
|
}
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
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
|
-
|
|
842
|
+
return options.body !== "" ? options.body : null;
|
|
1054
843
|
}
|
|
1055
|
-
|
|
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
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
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
|
-
|
|
1085
|
-
|
|
1086
|
-
return this.baseUrl;
|
|
857
|
+
if (auth2.scheme === "bearer") {
|
|
858
|
+
return `Bearer ${token}`;
|
|
1087
859
|
}
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
860
|
+
if (auth2.scheme === "basic") {
|
|
861
|
+
return `Basic ${btoa(token)}`;
|
|
1091
862
|
}
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
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
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
918
|
+
const cleanContent = contentType.split(";")[0]?.trim();
|
|
919
|
+
if (!cleanContent) {
|
|
920
|
+
return;
|
|
1099
921
|
}
|
|
1100
|
-
|
|
1101
|
-
return
|
|
922
|
+
if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
|
|
923
|
+
return "json";
|
|
1102
924
|
}
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
else this.storage.removeItem(REFRESH_KEY2);
|
|
925
|
+
if (cleanContent === "multipart/form-data") {
|
|
926
|
+
return "formData";
|
|
1106
927
|
}
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
this.storage.removeItem(REFRESH_KEY2);
|
|
928
|
+
if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
|
|
929
|
+
return "blob";
|
|
1110
930
|
}
|
|
1111
|
-
|
|
1112
|
-
return
|
|
931
|
+
if (cleanContent.startsWith("text/")) {
|
|
932
|
+
return "text";
|
|
1113
933
|
}
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
934
|
+
return;
|
|
935
|
+
}, "getParseAs");
|
|
936
|
+
var checkForExistence = /* @__PURE__ */ __name((options, name) => {
|
|
937
|
+
if (!name) {
|
|
938
|
+
return false;
|
|
1117
939
|
}
|
|
1118
|
-
|
|
1119
|
-
|
|
940
|
+
if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
|
|
941
|
+
return true;
|
|
1120
942
|
}
|
|
1121
|
-
|
|
1122
|
-
|
|
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
|
-
|
|
1125
|
-
|
|
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
|
-
|
|
1130
|
-
var
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
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
|
-
|
|
1139
|
-
|
|
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
|
|
1144
|
-
}
|
|
1145
|
-
|
|
1146
|
-
var API3 = class {
|
|
1019
|
+
return mergedHeaders;
|
|
1020
|
+
}, "mergeHeaders");
|
|
1021
|
+
var Interceptors = class {
|
|
1147
1022
|
static {
|
|
1148
|
-
__name(this, "
|
|
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
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1025
|
+
fns = [];
|
|
1026
|
+
clear() {
|
|
1027
|
+
this.fns = [];
|
|
1194
1028
|
}
|
|
1195
|
-
|
|
1196
|
-
this.
|
|
1197
|
-
this.
|
|
1029
|
+
eject(id) {
|
|
1030
|
+
const index = this.getInterceptorIndex(id);
|
|
1031
|
+
if (this.fns[index]) {
|
|
1032
|
+
this.fns[index] = null;
|
|
1033
|
+
}
|
|
1198
1034
|
}
|
|
1199
|
-
|
|
1200
|
-
|
|
1035
|
+
exists(id) {
|
|
1036
|
+
const index = this.getInterceptorIndex(id);
|
|
1037
|
+
return Boolean(this.fns[index]);
|
|
1201
1038
|
}
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
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
|
-
|
|
1207
|
-
|
|
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
|
-
|
|
1210
|
-
|
|
1053
|
+
use(fn) {
|
|
1054
|
+
this.fns.push(fn);
|
|
1055
|
+
return this.fns.length - 1;
|
|
1211
1056
|
}
|
|
1212
|
-
|
|
1213
|
-
|
|
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/
|
|
1218
|
-
var
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
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
|
|
1252
|
-
var showLogs = isDev ||
|
|
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
|