@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.
- package/dist/client.cjs +239 -147
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +9 -9
- package/dist/client.d.ts +9 -9
- package/dist/client.mjs +239 -147
- package/dist/client.mjs.map +1 -1
- package/dist/index.cjs +217 -146
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.mjs +217 -146
- package/dist/index.mjs.map +1 -1
- package/dist/server.cjs +237 -145
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +9 -9
- package/dist/server.d.ts +9 -9
- package/dist/server.mjs +237 -145
- package/dist/server.mjs.map +1 -1
- package/package.json +2 -2
- package/src/_api/BaseClient.ts +2 -2
- package/src/_api/generated/_cfg_monitor/api.ts +67 -0
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/events.ts +3 -3
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/hooks/index.ts +1 -1
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/hooks/useCfgMonitorIngestCreate.ts +3 -3
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/index.ts +6 -6
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/EventTypeEnum.ts +2 -2
- package/src/_api/generated/_cfg_monitor/schemas/FrontendEventIngestRequest.ts +27 -0
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/IngestBatchRequest.ts +2 -2
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/LevelEnum.ts +2 -2
- package/src/_api/generated/_cfg_monitor/sdk.gen.ts +5 -0
- package/src/_api/generated/_cfg_monitor/types.gen.ts +5 -0
- package/src/_api/generated/{cfg_monitor/client.gen.ts → client.gen.ts} +3 -0
- package/src/_api/generated/helpers/auth.ts +223 -0
- package/src/_api/generated/{_shared → helpers}/index.ts +1 -0
- package/src/_api/generated/index.ts +16 -12
- package/src/_api/index.ts +2 -2
- package/src/client/transport/ingest.ts +1 -1
- package/src/server/index.ts +1 -1
- package/src/_api/generated/cfg_monitor/api.ts +0 -122
- package/src/_api/generated/cfg_monitor/schemas/FrontendEventIngestRequest.ts +0 -27
- package/src/_api/generated/{cfg_monitor → _cfg_monitor}/schemas/index.ts +0 -0
- package/src/_api/generated/{cfg_monitor/client → client}/client.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/client → client}/index.ts +0 -0
- package/src/_api/generated/{cfg_monitor/client → client}/types.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/client → client}/utils.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/auth.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/bodySerializer.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/params.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/pathSerializer.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/queryKeySerializer.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/serverSentEvents.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/types.gen.ts +0 -0
- package/src/_api/generated/{cfg_monitor/core → core}/utils.gen.ts +0 -0
- package/src/_api/generated/{_shared → helpers}/errors.ts +0 -0
- package/src/_api/generated/{_shared → helpers}/logger.ts +0 -0
- package/src/_api/generated/{_shared → helpers}/storage.ts +0 -0
- package/src/_api/generated/{_shared → helpers}/validation-events.ts +0 -0
- package/src/_api/generated/{cfg_monitor/sdk.gen.ts → sdk.gen.ts} +0 -0
- 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
468
|
-
var getAuthToken = /* @__PURE__ */ __name(async (
|
|
469
|
-
const token = typeof callback === "function" ? await 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 (
|
|
473
|
+
if (auth2.scheme === "bearer") {
|
|
474
474
|
return `Bearer ${token}`;
|
|
475
475
|
}
|
|
476
|
-
if (
|
|
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/
|
|
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
|
|
566
|
-
if (checkForExistence(options,
|
|
565
|
+
for (const auth2 of security) {
|
|
566
|
+
if (checkForExistence(options, auth2.name)) {
|
|
567
567
|
continue;
|
|
568
568
|
}
|
|
569
|
-
const token = await getAuthToken(
|
|
569
|
+
const token = await getAuthToken(auth2, options.auth);
|
|
570
570
|
if (!token) {
|
|
571
571
|
continue;
|
|
572
572
|
}
|
|
573
|
-
const name =
|
|
574
|
-
switch (
|
|
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/
|
|
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/
|
|
900
|
+
// src/_api/generated/client.gen.ts
|
|
901
901
|
var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
|
|
902
902
|
|
|
903
|
-
// src/_api/generated/
|
|
904
|
-
var
|
|
905
|
-
|
|
906
|
-
|
|
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
|
-
|
|
914
|
-
if (
|
|
916
|
+
},
|
|
917
|
+
set(key, value) {
|
|
918
|
+
if (!isBrowser) return;
|
|
915
919
|
try {
|
|
916
|
-
window.localStorage.
|
|
920
|
+
if (value === null) window.localStorage.removeItem(key);
|
|
921
|
+
else window.localStorage.setItem(key, value);
|
|
917
922
|
} catch {
|
|
918
923
|
}
|
|
919
924
|
}
|
|
920
|
-
|
|
921
|
-
|
|
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
|
-
|
|
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
|
-
|
|
928
|
-
if (
|
|
937
|
+
},
|
|
938
|
+
set(key, value) {
|
|
939
|
+
if (!isBrowser) return;
|
|
929
940
|
try {
|
|
930
|
-
|
|
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
|
-
|
|
936
|
-
var
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
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
|
-
|
|
945
|
-
|
|
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
|
-
|
|
948
|
-
|
|
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
|
-
|
|
951
|
-
|
|
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
|
-
|
|
955
|
-
|
|
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/
|
|
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/
|
|
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(
|
|
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
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
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
|
|
1209
|
+
return auth.getBaseUrl();
|
|
1135
1210
|
}
|
|
1136
1211
|
setBaseUrl(url) {
|
|
1137
|
-
|
|
1138
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
1212
|
+
auth.setBaseUrl(url);
|
|
1139
1213
|
}
|
|
1140
1214
|
// ── Tokens ──────────────────────────────────────────────────────────────
|
|
1141
1215
|
getToken() {
|
|
1142
|
-
return
|
|
1216
|
+
return auth.getToken();
|
|
1143
1217
|
}
|
|
1144
1218
|
setToken(token) {
|
|
1145
|
-
|
|
1146
|
-
else this.storage.removeItem(ACCESS_KEY);
|
|
1219
|
+
auth.setToken(token);
|
|
1147
1220
|
}
|
|
1148
1221
|
getRefreshToken() {
|
|
1149
|
-
return
|
|
1222
|
+
return auth.getRefreshToken();
|
|
1150
1223
|
}
|
|
1151
1224
|
setRefreshToken(token) {
|
|
1152
|
-
|
|
1153
|
-
else this.storage.removeItem(REFRESH_KEY);
|
|
1225
|
+
auth.setRefreshToken(token);
|
|
1154
1226
|
}
|
|
1155
1227
|
clearToken() {
|
|
1156
|
-
|
|
1157
|
-
this.storage.removeItem(REFRESH_KEY);
|
|
1228
|
+
auth.clearTokens();
|
|
1158
1229
|
}
|
|
1159
1230
|
isAuthenticated() {
|
|
1160
|
-
return
|
|
1231
|
+
return auth.isAuthenticated();
|
|
1161
1232
|
}
|
|
1162
1233
|
// ── Locale / API key ────────────────────────────────────────────────────
|
|
1163
1234
|
getLocale() {
|
|
1164
|
-
return
|
|
1235
|
+
return auth.getLocale();
|
|
1165
1236
|
}
|
|
1166
1237
|
setLocale(locale) {
|
|
1167
|
-
|
|
1238
|
+
auth.setLocale(locale);
|
|
1168
1239
|
}
|
|
1169
1240
|
getApiKey() {
|
|
1170
|
-
return
|
|
1241
|
+
return auth.getApiKey();
|
|
1171
1242
|
}
|
|
1172
1243
|
setApiKey(key) {
|
|
1173
|
-
|
|
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(""
|
|
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/
|
|
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.
|
|
1321
|
+
var MONITOR_VERSION = "2.1.332";
|
|
1230
1322
|
|
|
1231
1323
|
// src/client/constants.ts
|
|
1232
1324
|
var MONITOR_INGEST_PATTERN = /cfg\/monitor\/ingest/;
|