@djangocfg/monitor 2.1.327 → 2.1.332

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.
Files changed (59) hide show
  1. package/dist/client.cjs +239 -147
  2. package/dist/client.cjs.map +1 -1
  3. package/dist/client.d.cts +9 -9
  4. package/dist/client.d.ts +9 -9
  5. package/dist/client.mjs +239 -147
  6. package/dist/client.mjs.map +1 -1
  7. package/dist/index.cjs +217 -146
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +9 -9
  10. package/dist/index.d.ts +9 -9
  11. package/dist/index.mjs +217 -146
  12. package/dist/index.mjs.map +1 -1
  13. package/dist/server.cjs +237 -145
  14. package/dist/server.cjs.map +1 -1
  15. package/dist/server.d.cts +9 -9
  16. package/dist/server.d.ts +9 -9
  17. package/dist/server.mjs +237 -145
  18. package/dist/server.mjs.map +1 -1
  19. package/package.json +2 -2
  20. package/src/_api/BaseClient.ts +2 -2
  21. package/src/_api/generated/_cfg_monitor/api.ts +67 -0
  22. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/events.ts +3 -3
  23. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/hooks/index.ts +1 -1
  24. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/hooks/useCfgMonitorIngestCreate.ts +3 -3
  25. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/index.ts +6 -6
  26. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/EventTypeEnum.ts +2 -2
  27. package/src/_api/generated/_cfg_monitor/schemas/FrontendEventIngestRequest.ts +27 -0
  28. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/IngestBatchRequest.ts +2 -2
  29. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/LevelEnum.ts +2 -2
  30. package/src/_api/generated/_cfg_monitor/sdk.gen.ts +5 -0
  31. package/src/_api/generated/_cfg_monitor/types.gen.ts +5 -0
  32. package/src/_api/generated/{cfg_monitor/client.gen.ts → client.gen.ts} +3 -0
  33. package/src/_api/generated/helpers/auth.ts +223 -0
  34. package/src/_api/generated/{_shared → helpers}/index.ts +1 -0
  35. package/src/_api/generated/index.ts +16 -12
  36. package/src/_api/index.ts +2 -2
  37. package/src/client/transport/ingest.ts +1 -1
  38. package/src/server/index.ts +1 -1
  39. package/src/_api/generated/cfg_monitor/api.ts +0 -122
  40. package/src/_api/generated/cfg_monitor/schemas/FrontendEventIngestRequest.ts +0 -27
  41. package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/index.ts +0 -0
  42. package/src/_api/generated/{cfg_monitor/client → client}/client.gen.ts +0 -0
  43. package/src/_api/generated/{cfg_monitor/client → client}/index.ts +0 -0
  44. package/src/_api/generated/{cfg_monitor/client → client}/types.gen.ts +0 -0
  45. package/src/_api/generated/{cfg_monitor/client → client}/utils.gen.ts +0 -0
  46. package/src/_api/generated/{cfg_monitor/core → core}/auth.gen.ts +0 -0
  47. package/src/_api/generated/{cfg_monitor/core → core}/bodySerializer.gen.ts +0 -0
  48. package/src/_api/generated/{cfg_monitor/core → core}/params.gen.ts +0 -0
  49. package/src/_api/generated/{cfg_monitor/core → core}/pathSerializer.gen.ts +0 -0
  50. package/src/_api/generated/{cfg_monitor/core → core}/queryKeySerializer.gen.ts +0 -0
  51. package/src/_api/generated/{cfg_monitor/core → core}/serverSentEvents.gen.ts +0 -0
  52. package/src/_api/generated/{cfg_monitor/core → core}/types.gen.ts +0 -0
  53. package/src/_api/generated/{cfg_monitor/core → core}/utils.gen.ts +0 -0
  54. package/src/_api/generated/{_shared → helpers}/errors.ts +0 -0
  55. package/src/_api/generated/{_shared → helpers}/logger.ts +0 -0
  56. package/src/_api/generated/{_shared → helpers}/storage.ts +0 -0
  57. package/src/_api/generated/{_shared → helpers}/validation-events.ts +0 -0
  58. package/src/_api/generated/{cfg_monitor/sdk.gen.ts → sdk.gen.ts} +0 -0
  59. package/src/_api/generated/{cfg_monitor/types.gen.ts → types.gen.ts} +9 -9
package/dist/client.d.cts CHANGED
@@ -23,21 +23,21 @@ declare enum EventTypeEnum {
23
23
  * Single browser event payload.
24
24
  */
25
25
  type FrontendEventIngestRequest = {
26
+ build_id?: string;
27
+ environment?: string;
26
28
  event_type: EventTypeEnum;
27
- message: string;
28
- level?: LevelEnum;
29
- stack_trace?: string;
30
- url?: string;
29
+ extra?: unknown;
31
30
  fingerprint?: string;
32
- http_status?: number | null;
33
31
  http_method?: string;
32
+ http_status?: number | null;
34
33
  http_url?: string;
34
+ level?: LevelEnum;
35
+ message: string;
36
+ project_name?: string;
35
37
  session_id?: string;
38
+ stack_trace?: string;
39
+ url?: string;
36
40
  user_agent?: string;
37
- build_id?: string;
38
- environment?: string;
39
- extra?: unknown;
40
- project_name?: string;
41
41
  };
42
42
  /**
43
43
  * * `error` - Error
package/dist/client.d.ts CHANGED
@@ -23,21 +23,21 @@ declare enum EventTypeEnum {
23
23
  * Single browser event payload.
24
24
  */
25
25
  type FrontendEventIngestRequest = {
26
+ build_id?: string;
27
+ environment?: string;
26
28
  event_type: EventTypeEnum;
27
- message: string;
28
- level?: LevelEnum;
29
- stack_trace?: string;
30
- url?: string;
29
+ extra?: unknown;
31
30
  fingerprint?: string;
32
- http_status?: number | null;
33
31
  http_method?: string;
32
+ http_status?: number | null;
34
33
  http_url?: string;
34
+ level?: LevelEnum;
35
+ message: string;
36
+ project_name?: string;
35
37
  session_id?: string;
38
+ stack_trace?: string;
39
+ url?: string;
36
40
  user_agent?: string;
37
- build_id?: string;
38
- environment?: string;
39
- extra?: unknown;
40
- project_name?: string;
41
41
  };
42
42
  /**
43
43
  * * `error` - Error
package/dist/client.mjs CHANGED
@@ -66,12 +66,12 @@ __name(ensureSessionCookie, "ensureSessionCookie");
66
66
  // src/client/store/index.ts
67
67
  import { createStore } from "zustand/vanilla";
68
68
 
69
- // src/_api/generated/cfg_monitor/core/bodySerializer.gen.ts
69
+ // src/_api/generated/core/bodySerializer.gen.ts
70
70
  var jsonBodySerializer = {
71
71
  bodySerializer: /* @__PURE__ */ __name((body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value), "bodySerializer")
72
72
  };
73
73
 
74
- // src/_api/generated/cfg_monitor/core/params.gen.ts
74
+ // src/_api/generated/core/params.gen.ts
75
75
  var extraPrefixesMap = {
76
76
  $body_: "body",
77
77
  $headers_: "headers",
@@ -80,7 +80,7 @@ var extraPrefixesMap = {
80
80
  };
81
81
  var extraPrefixes = Object.entries(extraPrefixesMap);
82
82
 
83
- // src/_api/generated/cfg_monitor/core/serverSentEvents.gen.ts
83
+ // src/_api/generated/core/serverSentEvents.gen.ts
84
84
  function createSseClient({
85
85
  onRequest,
86
86
  onSseError,
@@ -208,7 +208,7 @@ function createSseClient({
208
208
  }
209
209
  __name(createSseClient, "createSseClient");
210
210
 
211
- // src/_api/generated/cfg_monitor/core/pathSerializer.gen.ts
211
+ // src/_api/generated/core/pathSerializer.gen.ts
212
212
  var separatorArrayExplode = /* @__PURE__ */ __name((style) => {
213
213
  switch (style) {
214
214
  case "label":
@@ -332,7 +332,7 @@ var serializeObjectParam = /* @__PURE__ */ __name(({
332
332
  return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
333
333
  }, "serializeObjectParam");
334
334
 
335
- // src/_api/generated/cfg_monitor/core/utils.gen.ts
335
+ // src/_api/generated/core/utils.gen.ts
336
336
  var PATH_PARAM_RE = /\{[^{}]+\}/g;
337
337
  var defaultPathSerializer = /* @__PURE__ */ __name(({ path, url: _url }) => {
338
338
  let url = _url;
@@ -430,22 +430,22 @@ function getValidRequestBody(options) {
430
430
  }
431
431
  __name(getValidRequestBody, "getValidRequestBody");
432
432
 
433
- // src/_api/generated/cfg_monitor/core/auth.gen.ts
434
- var getAuthToken = /* @__PURE__ */ __name(async (auth, callback) => {
435
- const token = typeof callback === "function" ? await callback(auth) : callback;
433
+ // src/_api/generated/core/auth.gen.ts
434
+ var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
435
+ const token = typeof callback === "function" ? await callback(auth2) : callback;
436
436
  if (!token) {
437
437
  return;
438
438
  }
439
- if (auth.scheme === "bearer") {
439
+ if (auth2.scheme === "bearer") {
440
440
  return `Bearer ${token}`;
441
441
  }
442
- if (auth.scheme === "basic") {
442
+ if (auth2.scheme === "basic") {
443
443
  return `Basic ${btoa(token)}`;
444
444
  }
445
445
  return token;
446
446
  }, "getAuthToken");
447
447
 
448
- // src/_api/generated/cfg_monitor/client/utils.gen.ts
448
+ // src/_api/generated/client/utils.gen.ts
449
449
  var createQuerySerializer = /* @__PURE__ */ __name(({
450
450
  parameters = {},
451
451
  ...args
@@ -528,16 +528,16 @@ var setAuthParams = /* @__PURE__ */ __name(async ({
528
528
  security,
529
529
  ...options
530
530
  }) => {
531
- for (const auth of security) {
532
- if (checkForExistence(options, auth.name)) {
531
+ for (const auth2 of security) {
532
+ if (checkForExistence(options, auth2.name)) {
533
533
  continue;
534
534
  }
535
- const token = await getAuthToken(auth, options.auth);
535
+ const token = await getAuthToken(auth2, options.auth);
536
536
  if (!token) {
537
537
  continue;
538
538
  }
539
- const name = auth.name ?? "Authorization";
540
- switch (auth.in) {
539
+ const name = auth2.name ?? "Authorization";
540
+ switch (auth2.in) {
541
541
  case "query":
542
542
  if (!options.query) {
543
543
  options.query = {};
@@ -665,7 +665,7 @@ var createConfig = /* @__PURE__ */ __name((override = {}) => ({
665
665
  ...override
666
666
  }), "createConfig");
667
667
 
668
- // src/_api/generated/cfg_monitor/client/client.gen.ts
668
+ // src/_api/generated/client/client.gen.ts
669
669
  var createClient = /* @__PURE__ */ __name((config = {}) => {
670
670
  let _config = mergeConfigs(createConfig(), config);
671
671
  const getConfig = /* @__PURE__ */ __name(() => ({ ..._config }), "getConfig");
@@ -863,64 +863,211 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
863
863
  };
864
864
  }, "createClient");
865
865
 
866
- // src/_api/generated/cfg_monitor/client.gen.ts
866
+ // src/_api/generated/client.gen.ts
867
867
  var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
868
868
 
869
- // src/_api/generated/_shared/storage.ts
870
- var _LocalStorageAdapter = class _LocalStorageAdapter {
871
- getItem(key) {
872
- if (typeof window === "undefined") return null;
869
+ // src/_api/generated/helpers/auth.ts
870
+ var ACCESS_KEY = "cfg.access_token";
871
+ var REFRESH_KEY = "cfg.refresh_token";
872
+ var API_KEY_KEY = "cfg.api_key";
873
+ var isBrowser = typeof window !== "undefined";
874
+ var localStorageBackend = {
875
+ get(key) {
876
+ if (!isBrowser) return null;
873
877
  try {
874
878
  return window.localStorage.getItem(key);
875
879
  } catch {
876
880
  return null;
877
881
  }
878
- }
879
- setItem(key, value) {
880
- if (typeof window === "undefined") return;
882
+ },
883
+ set(key, value) {
884
+ if (!isBrowser) return;
881
885
  try {
882
- window.localStorage.setItem(key, value);
886
+ if (value === null) window.localStorage.removeItem(key);
887
+ else window.localStorage.setItem(key, value);
883
888
  } catch {
884
889
  }
885
890
  }
886
- removeItem(key) {
887
- if (typeof window === "undefined") return;
891
+ };
892
+ var COOKIE_MAX_AGE2 = 60 * 60 * 24 * 30;
893
+ var cookieBackend = {
894
+ get(key) {
895
+ if (!isBrowser) return null;
888
896
  try {
889
- window.localStorage.removeItem(key);
897
+ const re = new RegExp(`(?:^|;\\s*)${encodeURIComponent(key)}=([^;]*)`);
898
+ const m = document.cookie.match(re);
899
+ return m ? decodeURIComponent(m[1]) : null;
890
900
  } catch {
901
+ return null;
891
902
  }
892
- }
893
- clear() {
894
- if (typeof window === "undefined") return;
903
+ },
904
+ set(key, value) {
905
+ if (!isBrowser) return;
895
906
  try {
896
- window.localStorage.clear();
907
+ const k = encodeURIComponent(key);
908
+ const secure = window.location.protocol === "https:" ? "; Secure" : "";
909
+ if (value === null) {
910
+ document.cookie = `${k}=; Path=/; Max-Age=0; SameSite=Lax${secure}`;
911
+ } else {
912
+ const v = encodeURIComponent(value);
913
+ document.cookie = `${k}=${v}; Path=/; Max-Age=${COOKIE_MAX_AGE2}; SameSite=Lax${secure}`;
914
+ }
897
915
  } catch {
898
916
  }
899
917
  }
900
918
  };
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;
919
+ var _storage = localStorageBackend;
920
+ var _storageMode = "localStorage";
921
+ function detectLocale() {
922
+ try {
923
+ if (typeof document !== "undefined") {
924
+ const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
925
+ if (m) return decodeURIComponent(m[1]);
926
+ }
927
+ if (typeof navigator !== "undefined" && navigator.language) {
928
+ return navigator.language;
929
+ }
930
+ } catch {
909
931
  }
910
- setItem(key, value) {
911
- this.store.set(key, value);
932
+ return null;
933
+ }
934
+ __name(detectLocale, "detectLocale");
935
+ function defaultBaseUrl() {
936
+ try {
937
+ if (typeof process !== "undefined" && process.env) {
938
+ if (process.env.NEXT_PUBLIC_STATIC_BUILD === "true") return "";
939
+ return process.env.NEXT_PUBLIC_API_URL || "";
940
+ }
941
+ } catch {
912
942
  }
913
- removeItem(key) {
914
- this.store.delete(key);
943
+ return "";
944
+ }
945
+ __name(defaultBaseUrl, "defaultBaseUrl");
946
+ function defaultApiKey() {
947
+ try {
948
+ if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_KEY) {
949
+ return process.env.NEXT_PUBLIC_API_KEY;
950
+ }
951
+ } catch {
915
952
  }
916
- clear() {
917
- this.store.clear();
953
+ return null;
954
+ }
955
+ __name(defaultApiKey, "defaultApiKey");
956
+ var _localeOverride = null;
957
+ var _apiKeyOverride = null;
958
+ var _baseUrlOverride = null;
959
+ var _withCredentials = true;
960
+ var _onUnauthorized = null;
961
+ var auth = {
962
+ // ── Storage mode ──────────────────────────────────────────────────
963
+ getStorageMode() {
964
+ return _storageMode;
965
+ },
966
+ /**
967
+ * Switch the storage backend. Existing values in the *previous*
968
+ * backend are NOT migrated — set fresh values after switching.
969
+ */
970
+ setStorageMode(mode) {
971
+ _storageMode = mode;
972
+ _storage = mode === "cookie" ? cookieBackend : localStorageBackend;
973
+ },
974
+ // ── Bearer token ──────────────────────────────────────────────────
975
+ getToken() {
976
+ return _storage.get(ACCESS_KEY);
977
+ },
978
+ setToken(token) {
979
+ _storage.set(ACCESS_KEY, token);
980
+ },
981
+ getRefreshToken() {
982
+ return _storage.get(REFRESH_KEY);
983
+ },
984
+ setRefreshToken(token) {
985
+ _storage.set(REFRESH_KEY, token);
986
+ },
987
+ clearTokens() {
988
+ _storage.set(ACCESS_KEY, null);
989
+ _storage.set(REFRESH_KEY, null);
990
+ },
991
+ isAuthenticated() {
992
+ return _storage.get(ACCESS_KEY) !== null;
993
+ },
994
+ // ── API key ───────────────────────────────────────────────────────
995
+ /** In-memory API key. Falls back to storage, then NEXT_PUBLIC_API_KEY. */
996
+ getApiKey() {
997
+ return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
998
+ },
999
+ /** In-memory only (cleared on reload). */
1000
+ setApiKey(key) {
1001
+ _apiKeyOverride = key;
1002
+ },
1003
+ /** Persist to active storage backend (localStorage or cookie). */
1004
+ setApiKeyPersist(key) {
1005
+ _apiKeyOverride = key;
1006
+ _storage.set(API_KEY_KEY, key);
1007
+ },
1008
+ clearApiKey() {
1009
+ _apiKeyOverride = null;
1010
+ _storage.set(API_KEY_KEY, null);
1011
+ },
1012
+ // ── Locale ────────────────────────────────────────────────────────
1013
+ /** Override locale → falls back to NEXT_LOCALE cookie / navigator.language. */
1014
+ getLocale() {
1015
+ return _localeOverride ?? detectLocale();
1016
+ },
1017
+ setLocale(locale) {
1018
+ _localeOverride = locale;
1019
+ },
1020
+ // ── Base URL ──────────────────────────────────────────────────────
1021
+ getBaseUrl() {
1022
+ const url = _baseUrlOverride ?? defaultBaseUrl();
1023
+ return url.replace(/\/$/, "");
1024
+ },
1025
+ setBaseUrl(url) {
1026
+ _baseUrlOverride = url ? url.replace(/\/$/, "") : null;
1027
+ client.setConfig({ baseUrl: this.getBaseUrl() });
1028
+ },
1029
+ // ── Credentials toggle (Django session/CSRF cross-origin) ─────────
1030
+ getWithCredentials() {
1031
+ return _withCredentials;
1032
+ },
1033
+ setWithCredentials(value) {
1034
+ _withCredentials = value;
1035
+ client.setConfig({ credentials: value ? "include" : "same-origin" });
1036
+ },
1037
+ // ── 401 handler ───────────────────────────────────────────────────
1038
+ /**
1039
+ * Register a callback fired on every 401 response. Use this to wire
1040
+ * a token-refresh flow or a forced logout. Setting `null` removes
1041
+ * the handler.
1042
+ */
1043
+ onUnauthorized(cb) {
1044
+ _onUnauthorized = cb;
918
1045
  }
919
1046
  };
920
- __name(_MemoryStorageAdapter, "MemoryStorageAdapter");
921
- var MemoryStorageAdapter = _MemoryStorageAdapter;
1047
+ client.setConfig({
1048
+ baseUrl: auth.getBaseUrl(),
1049
+ credentials: _withCredentials ? "include" : "same-origin"
1050
+ });
1051
+ client.interceptors.request.use((request) => {
1052
+ const token = auth.getToken();
1053
+ if (token) request.headers.set("Authorization", `Bearer ${token}`);
1054
+ const locale = auth.getLocale();
1055
+ if (locale) request.headers.set("Accept-Language", locale);
1056
+ const apiKey = auth.getApiKey();
1057
+ if (apiKey) request.headers.set("X-API-Key", apiKey);
1058
+ return request;
1059
+ });
1060
+ client.interceptors.response.use((response) => {
1061
+ if (response.status === 401 && _onUnauthorized) {
1062
+ try {
1063
+ _onUnauthorized(response);
1064
+ } catch {
1065
+ }
1066
+ }
1067
+ return response;
1068
+ });
922
1069
 
923
- // src/_api/generated/_shared/logger.ts
1070
+ // src/_api/generated/helpers/logger.ts
924
1071
  import { createConsola } from "consola";
925
1072
  var DEFAULT_CONFIG = {
926
1073
  enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
@@ -1013,143 +1160,67 @@ __name(_APILogger, "APILogger");
1013
1160
  var APILogger = _APILogger;
1014
1161
  var defaultLogger = new APILogger();
1015
1162
 
1016
- // src/_api/generated/cfg_monitor/sdk.gen.ts
1017
- var _Cfg = class _Cfg {
1018
- /**
1019
- * Ingest browser events
1020
- *
1021
- * Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
1022
- */
1023
- static cfgMonitorIngestCreate(options) {
1024
- return (options.client ?? client).post({
1025
- url: "/cfg/monitor/ingest/",
1026
- ...options,
1027
- headers: {
1028
- "Content-Type": "application/json",
1029
- ...options.headers
1030
- }
1031
- });
1032
- }
1033
- };
1034
- __name(_Cfg, "Cfg");
1035
- var Cfg = _Cfg;
1036
- var _Monitor = class _Monitor {
1037
- /**
1038
- * Ingest browser events
1039
- *
1040
- * Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
1041
- */
1042
- static cfgMonitorIngestCreate(options) {
1043
- return (options.client ?? client).post({
1044
- url: "/cfg/monitor/ingest/",
1045
- ...options,
1046
- headers: {
1047
- "Content-Type": "application/json",
1048
- ...options.headers
1049
- }
1050
- });
1051
- }
1052
- };
1053
- __name(_Monitor, "Monitor");
1054
- var Monitor = _Monitor;
1055
-
1056
- // src/_api/generated/cfg_monitor/api.ts
1057
- var ACCESS_KEY = "cfg.access_token";
1058
- var REFRESH_KEY = "cfg.refresh_token";
1059
- function detectLocale() {
1060
- try {
1061
- if (typeof document !== "undefined") {
1062
- const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
1063
- if (m) return decodeURIComponent(m[1]);
1064
- }
1065
- if (typeof navigator !== "undefined" && navigator.language) {
1066
- return navigator.language;
1067
- }
1068
- } catch {
1069
- }
1070
- return null;
1071
- }
1072
- __name(detectLocale, "detectLocale");
1163
+ // src/_api/generated/_cfg_monitor/api.ts
1073
1164
  var _API = class _API {
1074
- constructor(baseUrl, opts = {}) {
1075
- __publicField(this, "baseUrl");
1076
- __publicField(this, "storage");
1077
- __publicField(this, "locale");
1078
- __publicField(this, "apiKey");
1165
+ constructor(_baseUrl, opts = {}) {
1079
1166
  __publicField(this, "logger");
1080
- __publicField(this, "cfg", Cfg);
1081
- __publicField(this, "monitor", Monitor);
1082
- this.baseUrl = baseUrl.replace(/\/$/, "");
1083
- this.storage = opts.storage ?? new LocalStorageAdapter();
1084
1167
  this.logger = new APILogger(opts.logger);
1085
- this.locale = opts.locale ?? null;
1086
- this.apiKey = opts.apiKey ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_KEY ?? null : null);
1087
- const credentials = opts.withCredentials ?? true ? "include" : "same-origin";
1088
- client.setConfig({ baseUrl: this.baseUrl, credentials });
1089
- client.interceptors.request.use((request) => {
1090
- const access = this.getToken();
1091
- if (access) request.headers.set("Authorization", `Bearer ${access}`);
1092
- const locale = this.locale ?? detectLocale();
1093
- if (locale) request.headers.set("Accept-Language", locale);
1094
- if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
1095
- return request;
1096
- });
1168
+ if (_baseUrl) auth.setBaseUrl(_baseUrl);
1169
+ if (opts.locale !== void 0) auth.setLocale(opts.locale);
1170
+ if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
1171
+ if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
1097
1172
  }
1098
1173
  // ── Base URL ────────────────────────────────────────────────────────────
1099
1174
  getBaseUrl() {
1100
- return this.baseUrl;
1175
+ return auth.getBaseUrl();
1101
1176
  }
1102
1177
  setBaseUrl(url) {
1103
- this.baseUrl = url.replace(/\/$/, "");
1104
- client.setConfig({ baseUrl: this.baseUrl });
1178
+ auth.setBaseUrl(url);
1105
1179
  }
1106
1180
  // ── Tokens ──────────────────────────────────────────────────────────────
1107
1181
  getToken() {
1108
- return this.storage.getItem(ACCESS_KEY);
1182
+ return auth.getToken();
1109
1183
  }
1110
1184
  setToken(token) {
1111
- if (token) this.storage.setItem(ACCESS_KEY, token);
1112
- else this.storage.removeItem(ACCESS_KEY);
1185
+ auth.setToken(token);
1113
1186
  }
1114
1187
  getRefreshToken() {
1115
- return this.storage.getItem(REFRESH_KEY);
1188
+ return auth.getRefreshToken();
1116
1189
  }
1117
1190
  setRefreshToken(token) {
1118
- if (token) this.storage.setItem(REFRESH_KEY, token);
1119
- else this.storage.removeItem(REFRESH_KEY);
1191
+ auth.setRefreshToken(token);
1120
1192
  }
1121
1193
  clearToken() {
1122
- this.storage.removeItem(ACCESS_KEY);
1123
- this.storage.removeItem(REFRESH_KEY);
1194
+ auth.clearTokens();
1124
1195
  }
1125
1196
  isAuthenticated() {
1126
- return this.getToken() !== null;
1197
+ return auth.isAuthenticated();
1127
1198
  }
1128
1199
  // ── Locale / API key ────────────────────────────────────────────────────
1129
1200
  getLocale() {
1130
- return this.locale ?? detectLocale();
1201
+ return auth.getLocale();
1131
1202
  }
1132
1203
  setLocale(locale) {
1133
- this.locale = locale;
1204
+ auth.setLocale(locale);
1134
1205
  }
1135
1206
  getApiKey() {
1136
- return this.apiKey;
1207
+ return auth.getApiKey();
1137
1208
  }
1138
1209
  setApiKey(key) {
1139
- this.apiKey = key;
1210
+ auth.setApiKey(key);
1140
1211
  }
1141
1212
  };
1142
1213
  __name(_API, "API");
1143
1214
  var API = _API;
1144
1215
 
1145
1216
  // src/_api/BaseClient.ts
1146
- var monitorApi = new API("", { storage: new MemoryStorageAdapter() });
1217
+ var monitorApi = new API("");
1147
1218
  function configureMonitorApi(baseUrl) {
1148
1219
  monitorApi.setBaseUrl(baseUrl);
1149
1220
  }
1150
1221
  __name(configureMonitorApi, "configureMonitorApi");
1151
1222
 
1152
- // src/_api/generated/cfg_monitor/types.gen.ts
1223
+ // src/_api/generated/types.gen.ts
1153
1224
  var EventTypeEnum = /* @__PURE__ */ ((EventTypeEnum2) => {
1154
1225
  EventTypeEnum2["JS_ERROR"] = "JS_ERROR";
1155
1226
  EventTypeEnum2["NETWORK_ERROR"] = "NETWORK_ERROR";
@@ -1171,6 +1242,27 @@ var LevelEnum = /* @__PURE__ */ ((LevelEnum2) => {
1171
1242
  // src/_api/index.ts
1172
1243
  var INGEST_PATH = "/cfg/monitor/ingest/";
1173
1244
 
1245
+ // src/_api/generated/sdk.gen.ts
1246
+ var _Monitor = class _Monitor {
1247
+ /**
1248
+ * Ingest browser events
1249
+ *
1250
+ * Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
1251
+ */
1252
+ static cfgMonitorIngestCreate(options) {
1253
+ return (options.client ?? client).post({
1254
+ url: "/cfg/monitor/ingest/",
1255
+ ...options,
1256
+ headers: {
1257
+ "Content-Type": "application/json",
1258
+ ...options.headers
1259
+ }
1260
+ });
1261
+ }
1262
+ };
1263
+ __name(_Monitor, "Monitor");
1264
+ var Monitor = _Monitor;
1265
+
1174
1266
  // src/client/transport/ingest.ts
1175
1267
  async function sendBatch(batch, useBeacon = false) {
1176
1268
  if (batch.events.length === 0) return;
@@ -1192,7 +1284,7 @@ __name(sendBatch, "sendBatch");
1192
1284
  // src/client/utils/env.ts
1193
1285
  var isDevelopment = process.env.NODE_ENV === "development";
1194
1286
  var isProduction = !isDevelopment;
1195
- var MONITOR_VERSION = "2.1.327";
1287
+ var MONITOR_VERSION = "2.1.332";
1196
1288
 
1197
1289
  // src/client/constants.ts
1198
1290
  var MONITOR_INGEST_PATTERN = /cfg\/monitor\/ingest/;