@djangocfg/monitor 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/client.mjs CHANGED
@@ -66,6 +66,383 @@ __name(ensureSessionCookie, "ensureSessionCookie");
66
66
  // src/client/store/index.ts
67
67
  import { createStore } from "zustand/vanilla";
68
68
 
69
+ // src/_api/generated/helpers/auth.ts
70
+ var ACCESS_KEY = "cfg.access_token";
71
+ var REFRESH_KEY = "cfg.refresh_token";
72
+ var API_KEY_KEY = "cfg.api_key";
73
+ var isBrowser = typeof window !== "undefined";
74
+ var localStorageBackend = {
75
+ get(key) {
76
+ if (!isBrowser) return null;
77
+ try {
78
+ return window.localStorage.getItem(key);
79
+ } catch {
80
+ return null;
81
+ }
82
+ },
83
+ set(key, value) {
84
+ if (!isBrowser) return;
85
+ try {
86
+ if (value === null) window.localStorage.removeItem(key);
87
+ else window.localStorage.setItem(key, value);
88
+ } catch {
89
+ }
90
+ }
91
+ };
92
+ var COOKIE_MAX_AGE2 = 60 * 60 * 24 * 30;
93
+ var cookieBackend = {
94
+ get(key) {
95
+ if (!isBrowser) return null;
96
+ try {
97
+ const re = new RegExp(`(?:^|;\\s*)${encodeURIComponent(key)}=([^;]*)`);
98
+ const m = document.cookie.match(re);
99
+ return m ? decodeURIComponent(m[1]) : null;
100
+ } catch {
101
+ return null;
102
+ }
103
+ },
104
+ set(key, value) {
105
+ if (!isBrowser) return;
106
+ try {
107
+ const k = encodeURIComponent(key);
108
+ const secure = window.location.protocol === "https:" ? "; Secure" : "";
109
+ if (value === null) {
110
+ document.cookie = `${k}=; Path=/; Max-Age=0; SameSite=Lax${secure}`;
111
+ } else {
112
+ const v = encodeURIComponent(value);
113
+ document.cookie = `${k}=${v}; Path=/; Max-Age=${COOKIE_MAX_AGE2}; SameSite=Lax${secure}`;
114
+ }
115
+ } catch {
116
+ }
117
+ }
118
+ };
119
+ var _storage = localStorageBackend;
120
+ var _storageMode = "localStorage";
121
+ function detectLocale() {
122
+ try {
123
+ if (typeof document !== "undefined") {
124
+ const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
125
+ if (m) return decodeURIComponent(m[1]);
126
+ }
127
+ if (typeof navigator !== "undefined" && navigator.language) {
128
+ return navigator.language;
129
+ }
130
+ } catch {
131
+ }
132
+ return null;
133
+ }
134
+ __name(detectLocale, "detectLocale");
135
+ function defaultBaseUrl() {
136
+ try {
137
+ if (typeof process !== "undefined" && process.env) {
138
+ if (process.env.NEXT_PUBLIC_STATIC_BUILD === "true") return "";
139
+ return process.env.NEXT_PUBLIC_API_URL || "";
140
+ }
141
+ } catch {
142
+ }
143
+ return "";
144
+ }
145
+ __name(defaultBaseUrl, "defaultBaseUrl");
146
+ function defaultApiKey() {
147
+ try {
148
+ if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_KEY) {
149
+ return process.env.NEXT_PUBLIC_API_KEY;
150
+ }
151
+ } catch {
152
+ }
153
+ return null;
154
+ }
155
+ __name(defaultApiKey, "defaultApiKey");
156
+ var _localeOverride = null;
157
+ var _apiKeyOverride = null;
158
+ var _baseUrlOverride = null;
159
+ var _withCredentials = true;
160
+ var _onUnauthorized = null;
161
+ var _client = null;
162
+ function pushClientConfig() {
163
+ if (!_client) return;
164
+ _client.setConfig({
165
+ baseUrl: auth.getBaseUrl(),
166
+ credentials: _withCredentials ? "include" : "same-origin"
167
+ });
168
+ }
169
+ __name(pushClientConfig, "pushClientConfig");
170
+ var auth = {
171
+ // ── Storage mode ──────────────────────────────────────────────────
172
+ getStorageMode() {
173
+ return _storageMode;
174
+ },
175
+ setStorageMode(mode) {
176
+ _storageMode = mode;
177
+ _storage = mode === "cookie" ? cookieBackend : localStorageBackend;
178
+ },
179
+ // ── Bearer token ──────────────────────────────────────────────────
180
+ getToken() {
181
+ return _storage.get(ACCESS_KEY);
182
+ },
183
+ setToken(token) {
184
+ _storage.set(ACCESS_KEY, token);
185
+ },
186
+ getRefreshToken() {
187
+ return _storage.get(REFRESH_KEY);
188
+ },
189
+ setRefreshToken(token) {
190
+ _storage.set(REFRESH_KEY, token);
191
+ },
192
+ clearTokens() {
193
+ _storage.set(ACCESS_KEY, null);
194
+ _storage.set(REFRESH_KEY, null);
195
+ },
196
+ isAuthenticated() {
197
+ return _storage.get(ACCESS_KEY) !== null;
198
+ },
199
+ // ── API key ───────────────────────────────────────────────────────
200
+ getApiKey() {
201
+ return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
202
+ },
203
+ setApiKey(key) {
204
+ _apiKeyOverride = key;
205
+ },
206
+ setApiKeyPersist(key) {
207
+ _apiKeyOverride = key;
208
+ _storage.set(API_KEY_KEY, key);
209
+ },
210
+ clearApiKey() {
211
+ _apiKeyOverride = null;
212
+ _storage.set(API_KEY_KEY, null);
213
+ },
214
+ // ── Locale ────────────────────────────────────────────────────────
215
+ getLocale() {
216
+ return _localeOverride ?? detectLocale();
217
+ },
218
+ setLocale(locale) {
219
+ _localeOverride = locale;
220
+ },
221
+ // ── Base URL ──────────────────────────────────────────────────────
222
+ getBaseUrl() {
223
+ const url = _baseUrlOverride ?? defaultBaseUrl();
224
+ return url.replace(/\/$/, "");
225
+ },
226
+ setBaseUrl(url) {
227
+ _baseUrlOverride = url ? url.replace(/\/$/, "") : null;
228
+ pushClientConfig();
229
+ },
230
+ // ── Credentials toggle ────────────────────────────────────────────
231
+ getWithCredentials() {
232
+ return _withCredentials;
233
+ },
234
+ setWithCredentials(value) {
235
+ _withCredentials = value;
236
+ pushClientConfig();
237
+ },
238
+ // ── 401 handler ───────────────────────────────────────────────────
239
+ onUnauthorized(cb) {
240
+ _onUnauthorized = cb;
241
+ }
242
+ };
243
+ function installAuthOnClient(client2) {
244
+ if (_client) return;
245
+ _client = client2;
246
+ client2.setConfig({
247
+ baseUrl: auth.getBaseUrl(),
248
+ credentials: _withCredentials ? "include" : "same-origin"
249
+ });
250
+ client2.interceptors.request.use((request) => {
251
+ const token = auth.getToken();
252
+ if (token) request.headers.set("Authorization", `Bearer ${token}`);
253
+ const locale = auth.getLocale();
254
+ if (locale) request.headers.set("Accept-Language", locale);
255
+ const apiKey = auth.getApiKey();
256
+ if (apiKey) request.headers.set("X-API-Key", apiKey);
257
+ return request;
258
+ });
259
+ client2.interceptors.response.use((response) => {
260
+ if (response.status === 401 && _onUnauthorized) {
261
+ try {
262
+ _onUnauthorized(response);
263
+ } catch {
264
+ }
265
+ }
266
+ return response;
267
+ });
268
+ }
269
+ __name(installAuthOnClient, "installAuthOnClient");
270
+
271
+ // src/_api/generated/helpers/logger.ts
272
+ import { createConsola } from "consola";
273
+ var DEFAULT_CONFIG = {
274
+ enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
275
+ logRequests: true,
276
+ logResponses: true,
277
+ logErrors: true,
278
+ logBodies: true,
279
+ logHeaders: false
280
+ };
281
+ var SENSITIVE_HEADERS = [
282
+ "authorization",
283
+ "cookie",
284
+ "set-cookie",
285
+ "x-api-key",
286
+ "x-csrf-token"
287
+ ];
288
+ var _APILogger = class _APILogger {
289
+ constructor(config = {}) {
290
+ __publicField(this, "config");
291
+ __publicField(this, "consola");
292
+ this.config = { ...DEFAULT_CONFIG, ...config };
293
+ this.consola = config.consola || createConsola({
294
+ level: this.config.enabled ? 4 : 0
295
+ });
296
+ }
297
+ enable() {
298
+ this.config.enabled = true;
299
+ }
300
+ disable() {
301
+ this.config.enabled = false;
302
+ }
303
+ setConfig(config) {
304
+ this.config = { ...this.config, ...config };
305
+ }
306
+ filterHeaders(headers) {
307
+ if (!headers) return {};
308
+ const filtered = {};
309
+ Object.keys(headers).forEach((key) => {
310
+ filtered[key] = SENSITIVE_HEADERS.includes(key.toLowerCase()) ? "***" : headers[key] || "";
311
+ });
312
+ return filtered;
313
+ }
314
+ logRequest(request) {
315
+ if (!this.config.enabled || !this.config.logRequests) return;
316
+ const { method, url, headers, body } = request;
317
+ this.consola.start(`${method} ${url}`);
318
+ if (this.config.logHeaders && headers) this.consola.debug("Headers:", this.filterHeaders(headers));
319
+ if (this.config.logBodies && body) this.consola.debug("Body:", body);
320
+ }
321
+ logResponse(request, response) {
322
+ if (!this.config.enabled || !this.config.logResponses) return;
323
+ const { method, url } = request;
324
+ const { status, statusText, data, duration } = response;
325
+ this.consola.success(`${method} ${url} ${status} ${statusText} (${duration}ms)`);
326
+ if (this.config.logBodies && data) this.consola.debug("Response:", data);
327
+ }
328
+ logError(request, error) {
329
+ if (!this.config.enabled || !this.config.logErrors) return;
330
+ const { method, url } = request;
331
+ const { message, statusCode, fieldErrors, duration } = error;
332
+ this.consola.error(`${method} ${url} ${statusCode || "Network"} Error (${duration}ms)`);
333
+ this.consola.error("Message:", message);
334
+ if (fieldErrors && Object.keys(fieldErrors).length > 0) {
335
+ this.consola.error("Field Errors:");
336
+ Object.entries(fieldErrors).forEach(([field, errors]) => {
337
+ errors.forEach((err) => this.consola.error(` \u2022 ${field}: ${err}`));
338
+ });
339
+ }
340
+ }
341
+ info(message, ...args) {
342
+ if (this.config.enabled) this.consola.info(message, ...args);
343
+ }
344
+ warn(message, ...args) {
345
+ if (this.config.enabled) this.consola.warn(message, ...args);
346
+ }
347
+ error(message, ...args) {
348
+ if (this.config.enabled) this.consola.error(message, ...args);
349
+ }
350
+ debug(message, ...args) {
351
+ if (this.config.enabled) this.consola.debug(message, ...args);
352
+ }
353
+ success(message, ...args) {
354
+ if (this.config.enabled) this.consola.success(message, ...args);
355
+ }
356
+ withTag(tag) {
357
+ return this.consola.withTag(tag);
358
+ }
359
+ };
360
+ __name(_APILogger, "APILogger");
361
+ var APILogger = _APILogger;
362
+ var defaultLogger = new APILogger();
363
+
364
+ // src/_api/generated/_cfg_monitor/api.ts
365
+ var _API = class _API {
366
+ constructor(_baseUrl, opts = {}) {
367
+ __publicField(this, "logger");
368
+ this.logger = new APILogger(opts.logger);
369
+ if (_baseUrl) auth.setBaseUrl(_baseUrl);
370
+ if (opts.locale !== void 0) auth.setLocale(opts.locale);
371
+ if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
372
+ if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
373
+ }
374
+ // ── Base URL ────────────────────────────────────────────────────────────
375
+ getBaseUrl() {
376
+ return auth.getBaseUrl();
377
+ }
378
+ setBaseUrl(url) {
379
+ auth.setBaseUrl(url);
380
+ }
381
+ // ── Tokens ──────────────────────────────────────────────────────────────
382
+ getToken() {
383
+ return auth.getToken();
384
+ }
385
+ setToken(token) {
386
+ auth.setToken(token);
387
+ }
388
+ getRefreshToken() {
389
+ return auth.getRefreshToken();
390
+ }
391
+ setRefreshToken(token) {
392
+ auth.setRefreshToken(token);
393
+ }
394
+ clearToken() {
395
+ auth.clearTokens();
396
+ }
397
+ isAuthenticated() {
398
+ return auth.isAuthenticated();
399
+ }
400
+ // ── Locale / API key ────────────────────────────────────────────────────
401
+ getLocale() {
402
+ return auth.getLocale();
403
+ }
404
+ setLocale(locale) {
405
+ auth.setLocale(locale);
406
+ }
407
+ getApiKey() {
408
+ return auth.getApiKey();
409
+ }
410
+ setApiKey(key) {
411
+ auth.setApiKey(key);
412
+ }
413
+ };
414
+ __name(_API, "API");
415
+ var API = _API;
416
+
417
+ // src/_api/BaseClient.ts
418
+ var monitorApi = new API("");
419
+ function configureMonitorApi(baseUrl) {
420
+ monitorApi.setBaseUrl(baseUrl);
421
+ }
422
+ __name(configureMonitorApi, "configureMonitorApi");
423
+
424
+ // src/_api/generated/types.gen.ts
425
+ var EventTypeEnum = /* @__PURE__ */ ((EventTypeEnum2) => {
426
+ EventTypeEnum2["JS_ERROR"] = "JS_ERROR";
427
+ EventTypeEnum2["NETWORK_ERROR"] = "NETWORK_ERROR";
428
+ EventTypeEnum2["ERROR"] = "ERROR";
429
+ EventTypeEnum2["WARNING"] = "WARNING";
430
+ EventTypeEnum2["PAGE_VIEW"] = "PAGE_VIEW";
431
+ EventTypeEnum2["PERFORMANCE"] = "PERFORMANCE";
432
+ EventTypeEnum2["CONSOLE"] = "CONSOLE";
433
+ return EventTypeEnum2;
434
+ })(EventTypeEnum || {});
435
+ var LevelEnum = /* @__PURE__ */ ((LevelEnum2) => {
436
+ LevelEnum2["ERROR"] = "error";
437
+ LevelEnum2["WARNING"] = "warning";
438
+ LevelEnum2["INFO"] = "info";
439
+ LevelEnum2["DEBUG"] = "debug";
440
+ return LevelEnum2;
441
+ })(LevelEnum || {});
442
+
443
+ // src/_api/index.ts
444
+ var INGEST_PATH = "/cfg/monitor/ingest/";
445
+
69
446
  // src/_api/generated/core/bodySerializer.gen.ts
70
447
  var jsonBodySerializer = {
71
448
  bodySerializer: /* @__PURE__ */ __name((body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value), "bodySerializer")
@@ -431,15 +808,15 @@ function getValidRequestBody(options) {
431
808
  __name(getValidRequestBody, "getValidRequestBody");
432
809
 
433
810
  // src/_api/generated/core/auth.gen.ts
434
- var getAuthToken = /* @__PURE__ */ __name(async (auth, callback) => {
435
- const token = typeof callback === "function" ? await callback(auth) : callback;
811
+ var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
812
+ const token = typeof callback === "function" ? await callback(auth2) : callback;
436
813
  if (!token) {
437
814
  return;
438
815
  }
439
- if (auth.scheme === "bearer") {
816
+ if (auth2.scheme === "bearer") {
440
817
  return `Bearer ${token}`;
441
818
  }
442
- if (auth.scheme === "basic") {
819
+ if (auth2.scheme === "basic") {
443
820
  return `Basic ${btoa(token)}`;
444
821
  }
445
822
  return token;
@@ -528,16 +905,16 @@ var setAuthParams = /* @__PURE__ */ __name(async ({
528
905
  security,
529
906
  ...options
530
907
  }) => {
531
- for (const auth of security) {
532
- if (checkForExistence(options, auth.name)) {
908
+ for (const auth2 of security) {
909
+ if (checkForExistence(options, auth2.name)) {
533
910
  continue;
534
911
  }
535
- const token = await getAuthToken(auth, options.auth);
912
+ const token = await getAuthToken(auth2, options.auth);
536
913
  if (!token) {
537
914
  continue;
538
915
  }
539
- const name = auth.name ?? "Authorization";
540
- switch (auth.in) {
916
+ const name = auth2.name ?? "Authorization";
917
+ switch (auth2.in) {
541
918
  case "query":
542
919
  if (!options.query) {
543
920
  options.query = {};
@@ -865,269 +1242,7 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
865
1242
 
866
1243
  // src/_api/generated/client.gen.ts
867
1244
  var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
868
-
869
- // src/_api/generated/helpers/storage.ts
870
- var _LocalStorageAdapter = class _LocalStorageAdapter {
871
- getItem(key) {
872
- if (typeof window === "undefined") return null;
873
- try {
874
- return window.localStorage.getItem(key);
875
- } catch {
876
- return null;
877
- }
878
- }
879
- setItem(key, value) {
880
- if (typeof window === "undefined") return;
881
- try {
882
- window.localStorage.setItem(key, value);
883
- } catch {
884
- }
885
- }
886
- removeItem(key) {
887
- if (typeof window === "undefined") return;
888
- try {
889
- window.localStorage.removeItem(key);
890
- } catch {
891
- }
892
- }
893
- clear() {
894
- if (typeof window === "undefined") return;
895
- try {
896
- window.localStorage.clear();
897
- } catch {
898
- }
899
- }
900
- };
901
- __name(_LocalStorageAdapter, "LocalStorageAdapter");
902
- var LocalStorageAdapter = _LocalStorageAdapter;
903
- var _MemoryStorageAdapter = class _MemoryStorageAdapter {
904
- constructor() {
905
- __publicField(this, "store", /* @__PURE__ */ new Map());
906
- }
907
- getItem(key) {
908
- return this.store.get(key) ?? null;
909
- }
910
- setItem(key, value) {
911
- this.store.set(key, value);
912
- }
913
- removeItem(key) {
914
- this.store.delete(key);
915
- }
916
- clear() {
917
- this.store.clear();
918
- }
919
- };
920
- __name(_MemoryStorageAdapter, "MemoryStorageAdapter");
921
- var MemoryStorageAdapter = _MemoryStorageAdapter;
922
-
923
- // src/_api/generated/helpers/logger.ts
924
- import { createConsola } from "consola";
925
- var DEFAULT_CONFIG = {
926
- enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
927
- logRequests: true,
928
- logResponses: true,
929
- logErrors: true,
930
- logBodies: true,
931
- logHeaders: false
932
- };
933
- var SENSITIVE_HEADERS = [
934
- "authorization",
935
- "cookie",
936
- "set-cookie",
937
- "x-api-key",
938
- "x-csrf-token"
939
- ];
940
- var _APILogger = class _APILogger {
941
- constructor(config = {}) {
942
- __publicField(this, "config");
943
- __publicField(this, "consola");
944
- this.config = { ...DEFAULT_CONFIG, ...config };
945
- this.consola = config.consola || createConsola({
946
- level: this.config.enabled ? 4 : 0
947
- });
948
- }
949
- enable() {
950
- this.config.enabled = true;
951
- }
952
- disable() {
953
- this.config.enabled = false;
954
- }
955
- setConfig(config) {
956
- this.config = { ...this.config, ...config };
957
- }
958
- filterHeaders(headers) {
959
- if (!headers) return {};
960
- const filtered = {};
961
- Object.keys(headers).forEach((key) => {
962
- filtered[key] = SENSITIVE_HEADERS.includes(key.toLowerCase()) ? "***" : headers[key] || "";
963
- });
964
- return filtered;
965
- }
966
- logRequest(request) {
967
- if (!this.config.enabled || !this.config.logRequests) return;
968
- const { method, url, headers, body } = request;
969
- this.consola.start(`${method} ${url}`);
970
- if (this.config.logHeaders && headers) this.consola.debug("Headers:", this.filterHeaders(headers));
971
- if (this.config.logBodies && body) this.consola.debug("Body:", body);
972
- }
973
- logResponse(request, response) {
974
- if (!this.config.enabled || !this.config.logResponses) return;
975
- const { method, url } = request;
976
- const { status, statusText, data, duration } = response;
977
- this.consola.success(`${method} ${url} ${status} ${statusText} (${duration}ms)`);
978
- if (this.config.logBodies && data) this.consola.debug("Response:", data);
979
- }
980
- logError(request, error) {
981
- if (!this.config.enabled || !this.config.logErrors) return;
982
- const { method, url } = request;
983
- const { message, statusCode, fieldErrors, duration } = error;
984
- this.consola.error(`${method} ${url} ${statusCode || "Network"} Error (${duration}ms)`);
985
- this.consola.error("Message:", message);
986
- if (fieldErrors && Object.keys(fieldErrors).length > 0) {
987
- this.consola.error("Field Errors:");
988
- Object.entries(fieldErrors).forEach(([field, errors]) => {
989
- errors.forEach((err) => this.consola.error(` \u2022 ${field}: ${err}`));
990
- });
991
- }
992
- }
993
- info(message, ...args) {
994
- if (this.config.enabled) this.consola.info(message, ...args);
995
- }
996
- warn(message, ...args) {
997
- if (this.config.enabled) this.consola.warn(message, ...args);
998
- }
999
- error(message, ...args) {
1000
- if (this.config.enabled) this.consola.error(message, ...args);
1001
- }
1002
- debug(message, ...args) {
1003
- if (this.config.enabled) this.consola.debug(message, ...args);
1004
- }
1005
- success(message, ...args) {
1006
- if (this.config.enabled) this.consola.success(message, ...args);
1007
- }
1008
- withTag(tag) {
1009
- return this.consola.withTag(tag);
1010
- }
1011
- };
1012
- __name(_APILogger, "APILogger");
1013
- var APILogger = _APILogger;
1014
- var defaultLogger = new APILogger();
1015
-
1016
- // src/_api/generated/_cfg_monitor/api.ts
1017
- var ACCESS_KEY = "cfg.access_token";
1018
- var REFRESH_KEY = "cfg.refresh_token";
1019
- function detectLocale() {
1020
- try {
1021
- if (typeof document !== "undefined") {
1022
- const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
1023
- if (m) return decodeURIComponent(m[1]);
1024
- }
1025
- if (typeof navigator !== "undefined" && navigator.language) {
1026
- return navigator.language;
1027
- }
1028
- } catch {
1029
- }
1030
- return null;
1031
- }
1032
- __name(detectLocale, "detectLocale");
1033
- var _API = class _API {
1034
- constructor(baseUrl, opts = {}) {
1035
- __publicField(this, "baseUrl");
1036
- __publicField(this, "storage");
1037
- __publicField(this, "locale");
1038
- __publicField(this, "apiKey");
1039
- __publicField(this, "logger");
1040
- this.baseUrl = baseUrl.replace(/\/$/, "");
1041
- this.storage = opts.storage ?? new LocalStorageAdapter();
1042
- this.logger = new APILogger(opts.logger);
1043
- this.locale = opts.locale ?? null;
1044
- this.apiKey = opts.apiKey ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_KEY ?? null : null);
1045
- const credentials = opts.withCredentials ?? true ? "include" : "same-origin";
1046
- client.setConfig({ baseUrl: this.baseUrl, credentials });
1047
- client.interceptors.request.use((request) => {
1048
- const access = this.getToken();
1049
- if (access) request.headers.set("Authorization", `Bearer ${access}`);
1050
- const locale = this.locale ?? detectLocale();
1051
- if (locale) request.headers.set("Accept-Language", locale);
1052
- if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
1053
- return request;
1054
- });
1055
- }
1056
- // ── Base URL ────────────────────────────────────────────────────────────
1057
- getBaseUrl() {
1058
- return this.baseUrl;
1059
- }
1060
- setBaseUrl(url) {
1061
- this.baseUrl = url.replace(/\/$/, "");
1062
- client.setConfig({ baseUrl: this.baseUrl });
1063
- }
1064
- // ── Tokens ──────────────────────────────────────────────────────────────
1065
- getToken() {
1066
- return this.storage.getItem(ACCESS_KEY);
1067
- }
1068
- setToken(token) {
1069
- if (token) this.storage.setItem(ACCESS_KEY, token);
1070
- else this.storage.removeItem(ACCESS_KEY);
1071
- }
1072
- getRefreshToken() {
1073
- return this.storage.getItem(REFRESH_KEY);
1074
- }
1075
- setRefreshToken(token) {
1076
- if (token) this.storage.setItem(REFRESH_KEY, token);
1077
- else this.storage.removeItem(REFRESH_KEY);
1078
- }
1079
- clearToken() {
1080
- this.storage.removeItem(ACCESS_KEY);
1081
- this.storage.removeItem(REFRESH_KEY);
1082
- }
1083
- isAuthenticated() {
1084
- return this.getToken() !== null;
1085
- }
1086
- // ── Locale / API key ────────────────────────────────────────────────────
1087
- getLocale() {
1088
- return this.locale ?? detectLocale();
1089
- }
1090
- setLocale(locale) {
1091
- this.locale = locale;
1092
- }
1093
- getApiKey() {
1094
- return this.apiKey;
1095
- }
1096
- setApiKey(key) {
1097
- this.apiKey = key;
1098
- }
1099
- };
1100
- __name(_API, "API");
1101
- var API = _API;
1102
-
1103
- // src/_api/BaseClient.ts
1104
- var monitorApi = new API("", { storage: new MemoryStorageAdapter() });
1105
- function configureMonitorApi(baseUrl) {
1106
- monitorApi.setBaseUrl(baseUrl);
1107
- }
1108
- __name(configureMonitorApi, "configureMonitorApi");
1109
-
1110
- // src/_api/generated/types.gen.ts
1111
- var EventTypeEnum = /* @__PURE__ */ ((EventTypeEnum2) => {
1112
- EventTypeEnum2["JS_ERROR"] = "JS_ERROR";
1113
- EventTypeEnum2["NETWORK_ERROR"] = "NETWORK_ERROR";
1114
- EventTypeEnum2["ERROR"] = "ERROR";
1115
- EventTypeEnum2["WARNING"] = "WARNING";
1116
- EventTypeEnum2["PAGE_VIEW"] = "PAGE_VIEW";
1117
- EventTypeEnum2["PERFORMANCE"] = "PERFORMANCE";
1118
- EventTypeEnum2["CONSOLE"] = "CONSOLE";
1119
- return EventTypeEnum2;
1120
- })(EventTypeEnum || {});
1121
- var LevelEnum = /* @__PURE__ */ ((LevelEnum2) => {
1122
- LevelEnum2["ERROR"] = "error";
1123
- LevelEnum2["WARNING"] = "warning";
1124
- LevelEnum2["INFO"] = "info";
1125
- LevelEnum2["DEBUG"] = "debug";
1126
- return LevelEnum2;
1127
- })(LevelEnum || {});
1128
-
1129
- // src/_api/index.ts
1130
- var INGEST_PATH = "/cfg/monitor/ingest/";
1245
+ installAuthOnClient(client);
1131
1246
 
1132
1247
  // src/_api/generated/sdk.gen.ts
1133
1248
  var _Monitor = class _Monitor {
@@ -1171,7 +1286,7 @@ __name(sendBatch, "sendBatch");
1171
1286
  // src/client/utils/env.ts
1172
1287
  var isDevelopment = process.env.NODE_ENV === "development";
1173
1288
  var isProduction = !isDevelopment;
1174
- var MONITOR_VERSION = "2.1.331";
1289
+ var MONITOR_VERSION = "2.1.333";
1175
1290
 
1176
1291
  // src/client/constants.ts
1177
1292
  var MONITOR_INGEST_PATTERN = /cfg\/monitor\/ingest/;