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