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