@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.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
|
-
|
|
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
|
-
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
434
|
-
var getAuthToken = /* @__PURE__ */ __name(async (
|
|
435
|
-
const token = typeof callback === "function" ? await 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 (
|
|
439
|
+
if (auth2.scheme === "bearer") {
|
|
440
440
|
return `Bearer ${token}`;
|
|
441
441
|
}
|
|
442
|
-
if (
|
|
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/
|
|
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
|
|
532
|
-
if (checkForExistence(options,
|
|
531
|
+
for (const auth2 of security) {
|
|
532
|
+
if (checkForExistence(options, auth2.name)) {
|
|
533
533
|
continue;
|
|
534
534
|
}
|
|
535
|
-
const token = await getAuthToken(
|
|
535
|
+
const token = await getAuthToken(auth2, options.auth);
|
|
536
536
|
if (!token) {
|
|
537
537
|
continue;
|
|
538
538
|
}
|
|
539
|
-
const name =
|
|
540
|
-
switch (
|
|
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/
|
|
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/
|
|
866
|
+
// src/_api/generated/client.gen.ts
|
|
867
867
|
var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
|
|
868
868
|
|
|
869
|
-
// src/_api/generated/
|
|
870
|
-
var
|
|
871
|
-
|
|
872
|
-
|
|
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
|
-
|
|
880
|
-
if (
|
|
882
|
+
},
|
|
883
|
+
set(key, value) {
|
|
884
|
+
if (!isBrowser) return;
|
|
881
885
|
try {
|
|
882
|
-
window.localStorage.
|
|
886
|
+
if (value === null) window.localStorage.removeItem(key);
|
|
887
|
+
else window.localStorage.setItem(key, value);
|
|
883
888
|
} catch {
|
|
884
889
|
}
|
|
885
890
|
}
|
|
886
|
-
|
|
887
|
-
|
|
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
|
-
|
|
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
|
-
|
|
894
|
-
if (
|
|
903
|
+
},
|
|
904
|
+
set(key, value) {
|
|
905
|
+
if (!isBrowser) return;
|
|
895
906
|
try {
|
|
896
|
-
|
|
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
|
-
|
|
902
|
-
var
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
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
|
-
|
|
911
|
-
|
|
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
|
-
|
|
914
|
-
|
|
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
|
-
|
|
917
|
-
|
|
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
|
-
|
|
921
|
-
|
|
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/
|
|
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/
|
|
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(
|
|
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
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
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
|
|
1175
|
+
return auth.getBaseUrl();
|
|
1101
1176
|
}
|
|
1102
1177
|
setBaseUrl(url) {
|
|
1103
|
-
|
|
1104
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
1178
|
+
auth.setBaseUrl(url);
|
|
1105
1179
|
}
|
|
1106
1180
|
// ── Tokens ──────────────────────────────────────────────────────────────
|
|
1107
1181
|
getToken() {
|
|
1108
|
-
return
|
|
1182
|
+
return auth.getToken();
|
|
1109
1183
|
}
|
|
1110
1184
|
setToken(token) {
|
|
1111
|
-
|
|
1112
|
-
else this.storage.removeItem(ACCESS_KEY);
|
|
1185
|
+
auth.setToken(token);
|
|
1113
1186
|
}
|
|
1114
1187
|
getRefreshToken() {
|
|
1115
|
-
return
|
|
1188
|
+
return auth.getRefreshToken();
|
|
1116
1189
|
}
|
|
1117
1190
|
setRefreshToken(token) {
|
|
1118
|
-
|
|
1119
|
-
else this.storage.removeItem(REFRESH_KEY);
|
|
1191
|
+
auth.setRefreshToken(token);
|
|
1120
1192
|
}
|
|
1121
1193
|
clearToken() {
|
|
1122
|
-
|
|
1123
|
-
this.storage.removeItem(REFRESH_KEY);
|
|
1194
|
+
auth.clearTokens();
|
|
1124
1195
|
}
|
|
1125
1196
|
isAuthenticated() {
|
|
1126
|
-
return
|
|
1197
|
+
return auth.isAuthenticated();
|
|
1127
1198
|
}
|
|
1128
1199
|
// ── Locale / API key ────────────────────────────────────────────────────
|
|
1129
1200
|
getLocale() {
|
|
1130
|
-
return
|
|
1201
|
+
return auth.getLocale();
|
|
1131
1202
|
}
|
|
1132
1203
|
setLocale(locale) {
|
|
1133
|
-
|
|
1204
|
+
auth.setLocale(locale);
|
|
1134
1205
|
}
|
|
1135
1206
|
getApiKey() {
|
|
1136
|
-
return
|
|
1207
|
+
return auth.getApiKey();
|
|
1137
1208
|
}
|
|
1138
1209
|
setApiKey(key) {
|
|
1139
|
-
|
|
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(""
|
|
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/
|
|
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.
|
|
1287
|
+
var MONITOR_VERSION = "2.1.332";
|
|
1196
1288
|
|
|
1197
1289
|
// src/client/constants.ts
|
|
1198
1290
|
var MONITOR_INGEST_PATTERN = /cfg\/monitor\/ingest/;
|