@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.cjs CHANGED
@@ -100,12 +100,12 @@ __name(ensureSessionCookie, "ensureSessionCookie");
100
100
  // src/client/store/index.ts
101
101
  var import_vanilla = require("zustand/vanilla");
102
102
 
103
- // src/_api/generated/cfg_monitor/core/bodySerializer.gen.ts
103
+ // src/_api/generated/core/bodySerializer.gen.ts
104
104
  var jsonBodySerializer = {
105
105
  bodySerializer: /* @__PURE__ */ __name((body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value), "bodySerializer")
106
106
  };
107
107
 
108
- // src/_api/generated/cfg_monitor/core/params.gen.ts
108
+ // src/_api/generated/core/params.gen.ts
109
109
  var extraPrefixesMap = {
110
110
  $body_: "body",
111
111
  $headers_: "headers",
@@ -114,7 +114,7 @@ var extraPrefixesMap = {
114
114
  };
115
115
  var extraPrefixes = Object.entries(extraPrefixesMap);
116
116
 
117
- // src/_api/generated/cfg_monitor/core/serverSentEvents.gen.ts
117
+ // src/_api/generated/core/serverSentEvents.gen.ts
118
118
  function createSseClient({
119
119
  onRequest,
120
120
  onSseError,
@@ -242,7 +242,7 @@ function createSseClient({
242
242
  }
243
243
  __name(createSseClient, "createSseClient");
244
244
 
245
- // src/_api/generated/cfg_monitor/core/pathSerializer.gen.ts
245
+ // src/_api/generated/core/pathSerializer.gen.ts
246
246
  var separatorArrayExplode = /* @__PURE__ */ __name((style) => {
247
247
  switch (style) {
248
248
  case "label":
@@ -366,7 +366,7 @@ var serializeObjectParam = /* @__PURE__ */ __name(({
366
366
  return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
367
367
  }, "serializeObjectParam");
368
368
 
369
- // src/_api/generated/cfg_monitor/core/utils.gen.ts
369
+ // src/_api/generated/core/utils.gen.ts
370
370
  var PATH_PARAM_RE = /\{[^{}]+\}/g;
371
371
  var defaultPathSerializer = /* @__PURE__ */ __name(({ path, url: _url }) => {
372
372
  let url = _url;
@@ -464,22 +464,22 @@ function getValidRequestBody(options) {
464
464
  }
465
465
  __name(getValidRequestBody, "getValidRequestBody");
466
466
 
467
- // src/_api/generated/cfg_monitor/core/auth.gen.ts
468
- var getAuthToken = /* @__PURE__ */ __name(async (auth, callback) => {
469
- const token = typeof callback === "function" ? await callback(auth) : callback;
467
+ // src/_api/generated/core/auth.gen.ts
468
+ var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
469
+ const token = typeof callback === "function" ? await callback(auth2) : callback;
470
470
  if (!token) {
471
471
  return;
472
472
  }
473
- if (auth.scheme === "bearer") {
473
+ if (auth2.scheme === "bearer") {
474
474
  return `Bearer ${token}`;
475
475
  }
476
- if (auth.scheme === "basic") {
476
+ if (auth2.scheme === "basic") {
477
477
  return `Basic ${btoa(token)}`;
478
478
  }
479
479
  return token;
480
480
  }, "getAuthToken");
481
481
 
482
- // src/_api/generated/cfg_monitor/client/utils.gen.ts
482
+ // src/_api/generated/client/utils.gen.ts
483
483
  var createQuerySerializer = /* @__PURE__ */ __name(({
484
484
  parameters = {},
485
485
  ...args
@@ -562,16 +562,16 @@ var setAuthParams = /* @__PURE__ */ __name(async ({
562
562
  security,
563
563
  ...options
564
564
  }) => {
565
- for (const auth of security) {
566
- if (checkForExistence(options, auth.name)) {
565
+ for (const auth2 of security) {
566
+ if (checkForExistence(options, auth2.name)) {
567
567
  continue;
568
568
  }
569
- const token = await getAuthToken(auth, options.auth);
569
+ const token = await getAuthToken(auth2, options.auth);
570
570
  if (!token) {
571
571
  continue;
572
572
  }
573
- const name = auth.name ?? "Authorization";
574
- switch (auth.in) {
573
+ const name = auth2.name ?? "Authorization";
574
+ switch (auth2.in) {
575
575
  case "query":
576
576
  if (!options.query) {
577
577
  options.query = {};
@@ -699,7 +699,7 @@ var createConfig = /* @__PURE__ */ __name((override = {}) => ({
699
699
  ...override
700
700
  }), "createConfig");
701
701
 
702
- // src/_api/generated/cfg_monitor/client/client.gen.ts
702
+ // src/_api/generated/client/client.gen.ts
703
703
  var createClient = /* @__PURE__ */ __name((config = {}) => {
704
704
  let _config = mergeConfigs(createConfig(), config);
705
705
  const getConfig = /* @__PURE__ */ __name(() => ({ ..._config }), "getConfig");
@@ -897,64 +897,211 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
897
897
  };
898
898
  }, "createClient");
899
899
 
900
- // src/_api/generated/cfg_monitor/client.gen.ts
900
+ // src/_api/generated/client.gen.ts
901
901
  var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
902
902
 
903
- // src/_api/generated/_shared/storage.ts
904
- var _LocalStorageAdapter = class _LocalStorageAdapter {
905
- getItem(key) {
906
- if (typeof window === "undefined") return null;
903
+ // src/_api/generated/helpers/auth.ts
904
+ var ACCESS_KEY = "cfg.access_token";
905
+ var REFRESH_KEY = "cfg.refresh_token";
906
+ var API_KEY_KEY = "cfg.api_key";
907
+ var isBrowser = typeof window !== "undefined";
908
+ var localStorageBackend = {
909
+ get(key) {
910
+ if (!isBrowser) return null;
907
911
  try {
908
912
  return window.localStorage.getItem(key);
909
913
  } catch {
910
914
  return null;
911
915
  }
912
- }
913
- setItem(key, value) {
914
- if (typeof window === "undefined") return;
916
+ },
917
+ set(key, value) {
918
+ if (!isBrowser) return;
915
919
  try {
916
- window.localStorage.setItem(key, value);
920
+ if (value === null) window.localStorage.removeItem(key);
921
+ else window.localStorage.setItem(key, value);
917
922
  } catch {
918
923
  }
919
924
  }
920
- removeItem(key) {
921
- if (typeof window === "undefined") return;
925
+ };
926
+ var COOKIE_MAX_AGE2 = 60 * 60 * 24 * 30;
927
+ var cookieBackend = {
928
+ get(key) {
929
+ if (!isBrowser) return null;
922
930
  try {
923
- window.localStorage.removeItem(key);
931
+ const re = new RegExp(`(?:^|;\\s*)${encodeURIComponent(key)}=([^;]*)`);
932
+ const m = document.cookie.match(re);
933
+ return m ? decodeURIComponent(m[1]) : null;
924
934
  } catch {
935
+ return null;
925
936
  }
926
- }
927
- clear() {
928
- if (typeof window === "undefined") return;
937
+ },
938
+ set(key, value) {
939
+ if (!isBrowser) return;
929
940
  try {
930
- window.localStorage.clear();
941
+ const k = encodeURIComponent(key);
942
+ const secure = window.location.protocol === "https:" ? "; Secure" : "";
943
+ if (value === null) {
944
+ document.cookie = `${k}=; Path=/; Max-Age=0; SameSite=Lax${secure}`;
945
+ } else {
946
+ const v = encodeURIComponent(value);
947
+ document.cookie = `${k}=${v}; Path=/; Max-Age=${COOKIE_MAX_AGE2}; SameSite=Lax${secure}`;
948
+ }
931
949
  } catch {
932
950
  }
933
951
  }
934
952
  };
935
- __name(_LocalStorageAdapter, "LocalStorageAdapter");
936
- var LocalStorageAdapter = _LocalStorageAdapter;
937
- var _MemoryStorageAdapter = class _MemoryStorageAdapter {
938
- constructor() {
939
- __publicField(this, "store", /* @__PURE__ */ new Map());
940
- }
941
- getItem(key) {
942
- return this.store.get(key) ?? null;
953
+ var _storage = localStorageBackend;
954
+ var _storageMode = "localStorage";
955
+ function detectLocale() {
956
+ try {
957
+ if (typeof document !== "undefined") {
958
+ const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
959
+ if (m) return decodeURIComponent(m[1]);
960
+ }
961
+ if (typeof navigator !== "undefined" && navigator.language) {
962
+ return navigator.language;
963
+ }
964
+ } catch {
943
965
  }
944
- setItem(key, value) {
945
- this.store.set(key, value);
966
+ return null;
967
+ }
968
+ __name(detectLocale, "detectLocale");
969
+ function defaultBaseUrl() {
970
+ try {
971
+ if (typeof process !== "undefined" && process.env) {
972
+ if (process.env.NEXT_PUBLIC_STATIC_BUILD === "true") return "";
973
+ return process.env.NEXT_PUBLIC_API_URL || "";
974
+ }
975
+ } catch {
946
976
  }
947
- removeItem(key) {
948
- this.store.delete(key);
977
+ return "";
978
+ }
979
+ __name(defaultBaseUrl, "defaultBaseUrl");
980
+ function defaultApiKey() {
981
+ try {
982
+ if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_KEY) {
983
+ return process.env.NEXT_PUBLIC_API_KEY;
984
+ }
985
+ } catch {
949
986
  }
950
- clear() {
951
- this.store.clear();
987
+ return null;
988
+ }
989
+ __name(defaultApiKey, "defaultApiKey");
990
+ var _localeOverride = null;
991
+ var _apiKeyOverride = null;
992
+ var _baseUrlOverride = null;
993
+ var _withCredentials = true;
994
+ var _onUnauthorized = null;
995
+ var auth = {
996
+ // ── Storage mode ──────────────────────────────────────────────────
997
+ getStorageMode() {
998
+ return _storageMode;
999
+ },
1000
+ /**
1001
+ * Switch the storage backend. Existing values in the *previous*
1002
+ * backend are NOT migrated — set fresh values after switching.
1003
+ */
1004
+ setStorageMode(mode) {
1005
+ _storageMode = mode;
1006
+ _storage = mode === "cookie" ? cookieBackend : localStorageBackend;
1007
+ },
1008
+ // ── Bearer token ──────────────────────────────────────────────────
1009
+ getToken() {
1010
+ return _storage.get(ACCESS_KEY);
1011
+ },
1012
+ setToken(token) {
1013
+ _storage.set(ACCESS_KEY, token);
1014
+ },
1015
+ getRefreshToken() {
1016
+ return _storage.get(REFRESH_KEY);
1017
+ },
1018
+ setRefreshToken(token) {
1019
+ _storage.set(REFRESH_KEY, token);
1020
+ },
1021
+ clearTokens() {
1022
+ _storage.set(ACCESS_KEY, null);
1023
+ _storage.set(REFRESH_KEY, null);
1024
+ },
1025
+ isAuthenticated() {
1026
+ return _storage.get(ACCESS_KEY) !== null;
1027
+ },
1028
+ // ── API key ───────────────────────────────────────────────────────
1029
+ /** In-memory API key. Falls back to storage, then NEXT_PUBLIC_API_KEY. */
1030
+ getApiKey() {
1031
+ return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
1032
+ },
1033
+ /** In-memory only (cleared on reload). */
1034
+ setApiKey(key) {
1035
+ _apiKeyOverride = key;
1036
+ },
1037
+ /** Persist to active storage backend (localStorage or cookie). */
1038
+ setApiKeyPersist(key) {
1039
+ _apiKeyOverride = key;
1040
+ _storage.set(API_KEY_KEY, key);
1041
+ },
1042
+ clearApiKey() {
1043
+ _apiKeyOverride = null;
1044
+ _storage.set(API_KEY_KEY, null);
1045
+ },
1046
+ // ── Locale ────────────────────────────────────────────────────────
1047
+ /** Override locale → falls back to NEXT_LOCALE cookie / navigator.language. */
1048
+ getLocale() {
1049
+ return _localeOverride ?? detectLocale();
1050
+ },
1051
+ setLocale(locale) {
1052
+ _localeOverride = locale;
1053
+ },
1054
+ // ── Base URL ──────────────────────────────────────────────────────
1055
+ getBaseUrl() {
1056
+ const url = _baseUrlOverride ?? defaultBaseUrl();
1057
+ return url.replace(/\/$/, "");
1058
+ },
1059
+ setBaseUrl(url) {
1060
+ _baseUrlOverride = url ? url.replace(/\/$/, "") : null;
1061
+ client.setConfig({ baseUrl: this.getBaseUrl() });
1062
+ },
1063
+ // ── Credentials toggle (Django session/CSRF cross-origin) ─────────
1064
+ getWithCredentials() {
1065
+ return _withCredentials;
1066
+ },
1067
+ setWithCredentials(value) {
1068
+ _withCredentials = value;
1069
+ client.setConfig({ credentials: value ? "include" : "same-origin" });
1070
+ },
1071
+ // ── 401 handler ───────────────────────────────────────────────────
1072
+ /**
1073
+ * Register a callback fired on every 401 response. Use this to wire
1074
+ * a token-refresh flow or a forced logout. Setting `null` removes
1075
+ * the handler.
1076
+ */
1077
+ onUnauthorized(cb) {
1078
+ _onUnauthorized = cb;
952
1079
  }
953
1080
  };
954
- __name(_MemoryStorageAdapter, "MemoryStorageAdapter");
955
- var MemoryStorageAdapter = _MemoryStorageAdapter;
1081
+ client.setConfig({
1082
+ baseUrl: auth.getBaseUrl(),
1083
+ credentials: _withCredentials ? "include" : "same-origin"
1084
+ });
1085
+ client.interceptors.request.use((request) => {
1086
+ const token = auth.getToken();
1087
+ if (token) request.headers.set("Authorization", `Bearer ${token}`);
1088
+ const locale = auth.getLocale();
1089
+ if (locale) request.headers.set("Accept-Language", locale);
1090
+ const apiKey = auth.getApiKey();
1091
+ if (apiKey) request.headers.set("X-API-Key", apiKey);
1092
+ return request;
1093
+ });
1094
+ client.interceptors.response.use((response) => {
1095
+ if (response.status === 401 && _onUnauthorized) {
1096
+ try {
1097
+ _onUnauthorized(response);
1098
+ } catch {
1099
+ }
1100
+ }
1101
+ return response;
1102
+ });
956
1103
 
957
- // src/_api/generated/_shared/logger.ts
1104
+ // src/_api/generated/helpers/logger.ts
958
1105
  var import_consola = require("consola");
959
1106
  var DEFAULT_CONFIG = {
960
1107
  enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
@@ -1047,143 +1194,67 @@ __name(_APILogger, "APILogger");
1047
1194
  var APILogger = _APILogger;
1048
1195
  var defaultLogger = new APILogger();
1049
1196
 
1050
- // src/_api/generated/cfg_monitor/sdk.gen.ts
1051
- var _Cfg = class _Cfg {
1052
- /**
1053
- * Ingest browser events
1054
- *
1055
- * Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
1056
- */
1057
- static cfgMonitorIngestCreate(options) {
1058
- return (options.client ?? client).post({
1059
- url: "/cfg/monitor/ingest/",
1060
- ...options,
1061
- headers: {
1062
- "Content-Type": "application/json",
1063
- ...options.headers
1064
- }
1065
- });
1066
- }
1067
- };
1068
- __name(_Cfg, "Cfg");
1069
- var Cfg = _Cfg;
1070
- var _Monitor = class _Monitor {
1071
- /**
1072
- * Ingest browser events
1073
- *
1074
- * Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
1075
- */
1076
- static cfgMonitorIngestCreate(options) {
1077
- return (options.client ?? client).post({
1078
- url: "/cfg/monitor/ingest/",
1079
- ...options,
1080
- headers: {
1081
- "Content-Type": "application/json",
1082
- ...options.headers
1083
- }
1084
- });
1085
- }
1086
- };
1087
- __name(_Monitor, "Monitor");
1088
- var Monitor = _Monitor;
1089
-
1090
- // src/_api/generated/cfg_monitor/api.ts
1091
- var ACCESS_KEY = "cfg.access_token";
1092
- var REFRESH_KEY = "cfg.refresh_token";
1093
- function detectLocale() {
1094
- try {
1095
- if (typeof document !== "undefined") {
1096
- const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
1097
- if (m) return decodeURIComponent(m[1]);
1098
- }
1099
- if (typeof navigator !== "undefined" && navigator.language) {
1100
- return navigator.language;
1101
- }
1102
- } catch {
1103
- }
1104
- return null;
1105
- }
1106
- __name(detectLocale, "detectLocale");
1197
+ // src/_api/generated/_cfg_monitor/api.ts
1107
1198
  var _API = class _API {
1108
- constructor(baseUrl, opts = {}) {
1109
- __publicField(this, "baseUrl");
1110
- __publicField(this, "storage");
1111
- __publicField(this, "locale");
1112
- __publicField(this, "apiKey");
1199
+ constructor(_baseUrl, opts = {}) {
1113
1200
  __publicField(this, "logger");
1114
- __publicField(this, "cfg", Cfg);
1115
- __publicField(this, "monitor", Monitor);
1116
- this.baseUrl = baseUrl.replace(/\/$/, "");
1117
- this.storage = opts.storage ?? new LocalStorageAdapter();
1118
1201
  this.logger = new APILogger(opts.logger);
1119
- this.locale = opts.locale ?? null;
1120
- this.apiKey = opts.apiKey ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_API_KEY ?? null : null);
1121
- const credentials = opts.withCredentials ?? true ? "include" : "same-origin";
1122
- client.setConfig({ baseUrl: this.baseUrl, credentials });
1123
- client.interceptors.request.use((request) => {
1124
- const access = this.getToken();
1125
- if (access) request.headers.set("Authorization", `Bearer ${access}`);
1126
- const locale = this.locale ?? detectLocale();
1127
- if (locale) request.headers.set("Accept-Language", locale);
1128
- if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
1129
- return request;
1130
- });
1202
+ if (_baseUrl) auth.setBaseUrl(_baseUrl);
1203
+ if (opts.locale !== void 0) auth.setLocale(opts.locale);
1204
+ if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
1205
+ if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
1131
1206
  }
1132
1207
  // ── Base URL ────────────────────────────────────────────────────────────
1133
1208
  getBaseUrl() {
1134
- return this.baseUrl;
1209
+ return auth.getBaseUrl();
1135
1210
  }
1136
1211
  setBaseUrl(url) {
1137
- this.baseUrl = url.replace(/\/$/, "");
1138
- client.setConfig({ baseUrl: this.baseUrl });
1212
+ auth.setBaseUrl(url);
1139
1213
  }
1140
1214
  // ── Tokens ──────────────────────────────────────────────────────────────
1141
1215
  getToken() {
1142
- return this.storage.getItem(ACCESS_KEY);
1216
+ return auth.getToken();
1143
1217
  }
1144
1218
  setToken(token) {
1145
- if (token) this.storage.setItem(ACCESS_KEY, token);
1146
- else this.storage.removeItem(ACCESS_KEY);
1219
+ auth.setToken(token);
1147
1220
  }
1148
1221
  getRefreshToken() {
1149
- return this.storage.getItem(REFRESH_KEY);
1222
+ return auth.getRefreshToken();
1150
1223
  }
1151
1224
  setRefreshToken(token) {
1152
- if (token) this.storage.setItem(REFRESH_KEY, token);
1153
- else this.storage.removeItem(REFRESH_KEY);
1225
+ auth.setRefreshToken(token);
1154
1226
  }
1155
1227
  clearToken() {
1156
- this.storage.removeItem(ACCESS_KEY);
1157
- this.storage.removeItem(REFRESH_KEY);
1228
+ auth.clearTokens();
1158
1229
  }
1159
1230
  isAuthenticated() {
1160
- return this.getToken() !== null;
1231
+ return auth.isAuthenticated();
1161
1232
  }
1162
1233
  // ── Locale / API key ────────────────────────────────────────────────────
1163
1234
  getLocale() {
1164
- return this.locale ?? detectLocale();
1235
+ return auth.getLocale();
1165
1236
  }
1166
1237
  setLocale(locale) {
1167
- this.locale = locale;
1238
+ auth.setLocale(locale);
1168
1239
  }
1169
1240
  getApiKey() {
1170
- return this.apiKey;
1241
+ return auth.getApiKey();
1171
1242
  }
1172
1243
  setApiKey(key) {
1173
- this.apiKey = key;
1244
+ auth.setApiKey(key);
1174
1245
  }
1175
1246
  };
1176
1247
  __name(_API, "API");
1177
1248
  var API = _API;
1178
1249
 
1179
1250
  // src/_api/BaseClient.ts
1180
- var monitorApi = new API("", { storage: new MemoryStorageAdapter() });
1251
+ var monitorApi = new API("");
1181
1252
  function configureMonitorApi(baseUrl) {
1182
1253
  monitorApi.setBaseUrl(baseUrl);
1183
1254
  }
1184
1255
  __name(configureMonitorApi, "configureMonitorApi");
1185
1256
 
1186
- // src/_api/generated/cfg_monitor/types.gen.ts
1257
+ // src/_api/generated/types.gen.ts
1187
1258
  var EventTypeEnum = /* @__PURE__ */ ((EventTypeEnum2) => {
1188
1259
  EventTypeEnum2["JS_ERROR"] = "JS_ERROR";
1189
1260
  EventTypeEnum2["NETWORK_ERROR"] = "NETWORK_ERROR";
@@ -1205,6 +1276,27 @@ var LevelEnum = /* @__PURE__ */ ((LevelEnum2) => {
1205
1276
  // src/_api/index.ts
1206
1277
  var INGEST_PATH = "/cfg/monitor/ingest/";
1207
1278
 
1279
+ // src/_api/generated/sdk.gen.ts
1280
+ var _Monitor = class _Monitor {
1281
+ /**
1282
+ * Ingest browser events
1283
+ *
1284
+ * Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
1285
+ */
1286
+ static cfgMonitorIngestCreate(options) {
1287
+ return (options.client ?? client).post({
1288
+ url: "/cfg/monitor/ingest/",
1289
+ ...options,
1290
+ headers: {
1291
+ "Content-Type": "application/json",
1292
+ ...options.headers
1293
+ }
1294
+ });
1295
+ }
1296
+ };
1297
+ __name(_Monitor, "Monitor");
1298
+ var Monitor = _Monitor;
1299
+
1208
1300
  // src/client/transport/ingest.ts
1209
1301
  async function sendBatch(batch, useBeacon = false) {
1210
1302
  if (batch.events.length === 0) return;
@@ -1226,7 +1318,7 @@ __name(sendBatch, "sendBatch");
1226
1318
  // src/client/utils/env.ts
1227
1319
  var isDevelopment = process.env.NODE_ENV === "development";
1228
1320
  var isProduction = !isDevelopment;
1229
- var MONITOR_VERSION = "2.1.327";
1321
+ var MONITOR_VERSION = "2.1.332";
1230
1322
 
1231
1323
  // src/client/constants.ts
1232
1324
  var MONITOR_INGEST_PATTERN = /cfg\/monitor\/ingest/;