@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/server.cjs
CHANGED
|
@@ -26,12 +26,12 @@ __export(server_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(server_exports);
|
|
28
28
|
|
|
29
|
-
// src/_api/generated/
|
|
29
|
+
// src/_api/generated/core/bodySerializer.gen.ts
|
|
30
30
|
var jsonBodySerializer = {
|
|
31
31
|
bodySerializer: /* @__PURE__ */ __name((body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value), "bodySerializer")
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
// src/_api/generated/
|
|
34
|
+
// src/_api/generated/core/params.gen.ts
|
|
35
35
|
var extraPrefixesMap = {
|
|
36
36
|
$body_: "body",
|
|
37
37
|
$headers_: "headers",
|
|
@@ -40,7 +40,7 @@ var extraPrefixesMap = {
|
|
|
40
40
|
};
|
|
41
41
|
var extraPrefixes = Object.entries(extraPrefixesMap);
|
|
42
42
|
|
|
43
|
-
// src/_api/generated/
|
|
43
|
+
// src/_api/generated/core/serverSentEvents.gen.ts
|
|
44
44
|
function createSseClient({
|
|
45
45
|
onRequest,
|
|
46
46
|
onSseError,
|
|
@@ -168,7 +168,7 @@ function createSseClient({
|
|
|
168
168
|
}
|
|
169
169
|
__name(createSseClient, "createSseClient");
|
|
170
170
|
|
|
171
|
-
// src/_api/generated/
|
|
171
|
+
// src/_api/generated/core/pathSerializer.gen.ts
|
|
172
172
|
var separatorArrayExplode = /* @__PURE__ */ __name((style) => {
|
|
173
173
|
switch (style) {
|
|
174
174
|
case "label":
|
|
@@ -292,7 +292,7 @@ var serializeObjectParam = /* @__PURE__ */ __name(({
|
|
|
292
292
|
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
|
|
293
293
|
}, "serializeObjectParam");
|
|
294
294
|
|
|
295
|
-
// src/_api/generated/
|
|
295
|
+
// src/_api/generated/core/utils.gen.ts
|
|
296
296
|
var PATH_PARAM_RE = /\{[^{}]+\}/g;
|
|
297
297
|
var defaultPathSerializer = /* @__PURE__ */ __name(({ path, url: _url }) => {
|
|
298
298
|
let url = _url;
|
|
@@ -390,22 +390,22 @@ function getValidRequestBody(options) {
|
|
|
390
390
|
}
|
|
391
391
|
__name(getValidRequestBody, "getValidRequestBody");
|
|
392
392
|
|
|
393
|
-
// src/_api/generated/
|
|
394
|
-
var getAuthToken = /* @__PURE__ */ __name(async (
|
|
395
|
-
const token = typeof callback === "function" ? await callback(
|
|
393
|
+
// src/_api/generated/core/auth.gen.ts
|
|
394
|
+
var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
|
|
395
|
+
const token = typeof callback === "function" ? await callback(auth2) : callback;
|
|
396
396
|
if (!token) {
|
|
397
397
|
return;
|
|
398
398
|
}
|
|
399
|
-
if (
|
|
399
|
+
if (auth2.scheme === "bearer") {
|
|
400
400
|
return `Bearer ${token}`;
|
|
401
401
|
}
|
|
402
|
-
if (
|
|
402
|
+
if (auth2.scheme === "basic") {
|
|
403
403
|
return `Basic ${btoa(token)}`;
|
|
404
404
|
}
|
|
405
405
|
return token;
|
|
406
406
|
}, "getAuthToken");
|
|
407
407
|
|
|
408
|
-
// src/_api/generated/
|
|
408
|
+
// src/_api/generated/client/utils.gen.ts
|
|
409
409
|
var createQuerySerializer = /* @__PURE__ */ __name(({
|
|
410
410
|
parameters = {},
|
|
411
411
|
...args
|
|
@@ -488,16 +488,16 @@ var setAuthParams = /* @__PURE__ */ __name(async ({
|
|
|
488
488
|
security,
|
|
489
489
|
...options
|
|
490
490
|
}) => {
|
|
491
|
-
for (const
|
|
492
|
-
if (checkForExistence(options,
|
|
491
|
+
for (const auth2 of security) {
|
|
492
|
+
if (checkForExistence(options, auth2.name)) {
|
|
493
493
|
continue;
|
|
494
494
|
}
|
|
495
|
-
const token = await getAuthToken(
|
|
495
|
+
const token = await getAuthToken(auth2, options.auth);
|
|
496
496
|
if (!token) {
|
|
497
497
|
continue;
|
|
498
498
|
}
|
|
499
|
-
const name =
|
|
500
|
-
switch (
|
|
499
|
+
const name = auth2.name ?? "Authorization";
|
|
500
|
+
switch (auth2.in) {
|
|
501
501
|
case "query":
|
|
502
502
|
if (!options.query) {
|
|
503
503
|
options.query = {};
|
|
@@ -625,7 +625,7 @@ var createConfig = /* @__PURE__ */ __name((override = {}) => ({
|
|
|
625
625
|
...override
|
|
626
626
|
}), "createConfig");
|
|
627
627
|
|
|
628
|
-
// src/_api/generated/
|
|
628
|
+
// src/_api/generated/client/client.gen.ts
|
|
629
629
|
var createClient = /* @__PURE__ */ __name((config = {}) => {
|
|
630
630
|
let _config2 = mergeConfigs(createConfig(), config);
|
|
631
631
|
const getConfig = /* @__PURE__ */ __name(() => ({ ..._config2 }), "getConfig");
|
|
@@ -823,64 +823,211 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
|
|
|
823
823
|
};
|
|
824
824
|
}, "createClient");
|
|
825
825
|
|
|
826
|
-
// src/_api/generated/
|
|
826
|
+
// src/_api/generated/client.gen.ts
|
|
827
827
|
var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
|
|
828
828
|
|
|
829
|
-
// src/_api/generated/
|
|
830
|
-
var
|
|
831
|
-
|
|
832
|
-
|
|
829
|
+
// src/_api/generated/helpers/auth.ts
|
|
830
|
+
var ACCESS_KEY = "cfg.access_token";
|
|
831
|
+
var REFRESH_KEY = "cfg.refresh_token";
|
|
832
|
+
var API_KEY_KEY = "cfg.api_key";
|
|
833
|
+
var isBrowser = typeof window !== "undefined";
|
|
834
|
+
var localStorageBackend = {
|
|
835
|
+
get(key) {
|
|
836
|
+
if (!isBrowser) return null;
|
|
833
837
|
try {
|
|
834
838
|
return window.localStorage.getItem(key);
|
|
835
839
|
} catch {
|
|
836
840
|
return null;
|
|
837
841
|
}
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
if (
|
|
842
|
+
},
|
|
843
|
+
set(key, value) {
|
|
844
|
+
if (!isBrowser) return;
|
|
841
845
|
try {
|
|
842
|
-
window.localStorage.
|
|
846
|
+
if (value === null) window.localStorage.removeItem(key);
|
|
847
|
+
else window.localStorage.setItem(key, value);
|
|
843
848
|
} catch {
|
|
844
849
|
}
|
|
845
850
|
}
|
|
846
|
-
|
|
847
|
-
|
|
851
|
+
};
|
|
852
|
+
var COOKIE_MAX_AGE = 60 * 60 * 24 * 30;
|
|
853
|
+
var cookieBackend = {
|
|
854
|
+
get(key) {
|
|
855
|
+
if (!isBrowser) return null;
|
|
848
856
|
try {
|
|
849
|
-
|
|
857
|
+
const re = new RegExp(`(?:^|;\\s*)${encodeURIComponent(key)}=([^;]*)`);
|
|
858
|
+
const m = document.cookie.match(re);
|
|
859
|
+
return m ? decodeURIComponent(m[1]) : null;
|
|
850
860
|
} catch {
|
|
861
|
+
return null;
|
|
851
862
|
}
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
if (
|
|
863
|
+
},
|
|
864
|
+
set(key, value) {
|
|
865
|
+
if (!isBrowser) return;
|
|
855
866
|
try {
|
|
856
|
-
|
|
867
|
+
const k = encodeURIComponent(key);
|
|
868
|
+
const secure = window.location.protocol === "https:" ? "; Secure" : "";
|
|
869
|
+
if (value === null) {
|
|
870
|
+
document.cookie = `${k}=; Path=/; Max-Age=0; SameSite=Lax${secure}`;
|
|
871
|
+
} else {
|
|
872
|
+
const v = encodeURIComponent(value);
|
|
873
|
+
document.cookie = `${k}=${v}; Path=/; Max-Age=${COOKIE_MAX_AGE}; SameSite=Lax${secure}`;
|
|
874
|
+
}
|
|
857
875
|
} catch {
|
|
858
876
|
}
|
|
859
877
|
}
|
|
860
878
|
};
|
|
861
|
-
|
|
862
|
-
var
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
879
|
+
var _storage = localStorageBackend;
|
|
880
|
+
var _storageMode = "localStorage";
|
|
881
|
+
function detectLocale() {
|
|
882
|
+
try {
|
|
883
|
+
if (typeof document !== "undefined") {
|
|
884
|
+
const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
|
|
885
|
+
if (m) return decodeURIComponent(m[1]);
|
|
886
|
+
}
|
|
887
|
+
if (typeof navigator !== "undefined" && navigator.language) {
|
|
888
|
+
return navigator.language;
|
|
889
|
+
}
|
|
890
|
+
} catch {
|
|
869
891
|
}
|
|
870
|
-
|
|
871
|
-
|
|
892
|
+
return null;
|
|
893
|
+
}
|
|
894
|
+
__name(detectLocale, "detectLocale");
|
|
895
|
+
function defaultBaseUrl() {
|
|
896
|
+
try {
|
|
897
|
+
if (typeof process !== "undefined" && process.env) {
|
|
898
|
+
if (process.env.NEXT_PUBLIC_STATIC_BUILD === "true") return "";
|
|
899
|
+
return process.env.NEXT_PUBLIC_API_URL || "";
|
|
900
|
+
}
|
|
901
|
+
} catch {
|
|
872
902
|
}
|
|
873
|
-
|
|
874
|
-
|
|
903
|
+
return "";
|
|
904
|
+
}
|
|
905
|
+
__name(defaultBaseUrl, "defaultBaseUrl");
|
|
906
|
+
function defaultApiKey() {
|
|
907
|
+
try {
|
|
908
|
+
if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_KEY) {
|
|
909
|
+
return process.env.NEXT_PUBLIC_API_KEY;
|
|
910
|
+
}
|
|
911
|
+
} catch {
|
|
875
912
|
}
|
|
876
|
-
|
|
877
|
-
|
|
913
|
+
return null;
|
|
914
|
+
}
|
|
915
|
+
__name(defaultApiKey, "defaultApiKey");
|
|
916
|
+
var _localeOverride = null;
|
|
917
|
+
var _apiKeyOverride = null;
|
|
918
|
+
var _baseUrlOverride = null;
|
|
919
|
+
var _withCredentials = true;
|
|
920
|
+
var _onUnauthorized = null;
|
|
921
|
+
var auth = {
|
|
922
|
+
// ── Storage mode ──────────────────────────────────────────────────
|
|
923
|
+
getStorageMode() {
|
|
924
|
+
return _storageMode;
|
|
925
|
+
},
|
|
926
|
+
/**
|
|
927
|
+
* Switch the storage backend. Existing values in the *previous*
|
|
928
|
+
* backend are NOT migrated — set fresh values after switching.
|
|
929
|
+
*/
|
|
930
|
+
setStorageMode(mode) {
|
|
931
|
+
_storageMode = mode;
|
|
932
|
+
_storage = mode === "cookie" ? cookieBackend : localStorageBackend;
|
|
933
|
+
},
|
|
934
|
+
// ── Bearer token ──────────────────────────────────────────────────
|
|
935
|
+
getToken() {
|
|
936
|
+
return _storage.get(ACCESS_KEY);
|
|
937
|
+
},
|
|
938
|
+
setToken(token) {
|
|
939
|
+
_storage.set(ACCESS_KEY, token);
|
|
940
|
+
},
|
|
941
|
+
getRefreshToken() {
|
|
942
|
+
return _storage.get(REFRESH_KEY);
|
|
943
|
+
},
|
|
944
|
+
setRefreshToken(token) {
|
|
945
|
+
_storage.set(REFRESH_KEY, token);
|
|
946
|
+
},
|
|
947
|
+
clearTokens() {
|
|
948
|
+
_storage.set(ACCESS_KEY, null);
|
|
949
|
+
_storage.set(REFRESH_KEY, null);
|
|
950
|
+
},
|
|
951
|
+
isAuthenticated() {
|
|
952
|
+
return _storage.get(ACCESS_KEY) !== null;
|
|
953
|
+
},
|
|
954
|
+
// ── API key ───────────────────────────────────────────────────────
|
|
955
|
+
/** In-memory API key. Falls back to storage, then NEXT_PUBLIC_API_KEY. */
|
|
956
|
+
getApiKey() {
|
|
957
|
+
return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
|
|
958
|
+
},
|
|
959
|
+
/** In-memory only (cleared on reload). */
|
|
960
|
+
setApiKey(key) {
|
|
961
|
+
_apiKeyOverride = key;
|
|
962
|
+
},
|
|
963
|
+
/** Persist to active storage backend (localStorage or cookie). */
|
|
964
|
+
setApiKeyPersist(key) {
|
|
965
|
+
_apiKeyOverride = key;
|
|
966
|
+
_storage.set(API_KEY_KEY, key);
|
|
967
|
+
},
|
|
968
|
+
clearApiKey() {
|
|
969
|
+
_apiKeyOverride = null;
|
|
970
|
+
_storage.set(API_KEY_KEY, null);
|
|
971
|
+
},
|
|
972
|
+
// ── Locale ────────────────────────────────────────────────────────
|
|
973
|
+
/** Override locale → falls back to NEXT_LOCALE cookie / navigator.language. */
|
|
974
|
+
getLocale() {
|
|
975
|
+
return _localeOverride ?? detectLocale();
|
|
976
|
+
},
|
|
977
|
+
setLocale(locale) {
|
|
978
|
+
_localeOverride = locale;
|
|
979
|
+
},
|
|
980
|
+
// ── Base URL ──────────────────────────────────────────────────────
|
|
981
|
+
getBaseUrl() {
|
|
982
|
+
const url = _baseUrlOverride ?? defaultBaseUrl();
|
|
983
|
+
return url.replace(/\/$/, "");
|
|
984
|
+
},
|
|
985
|
+
setBaseUrl(url) {
|
|
986
|
+
_baseUrlOverride = url ? url.replace(/\/$/, "") : null;
|
|
987
|
+
client.setConfig({ baseUrl: this.getBaseUrl() });
|
|
988
|
+
},
|
|
989
|
+
// ── Credentials toggle (Django session/CSRF cross-origin) ─────────
|
|
990
|
+
getWithCredentials() {
|
|
991
|
+
return _withCredentials;
|
|
992
|
+
},
|
|
993
|
+
setWithCredentials(value) {
|
|
994
|
+
_withCredentials = value;
|
|
995
|
+
client.setConfig({ credentials: value ? "include" : "same-origin" });
|
|
996
|
+
},
|
|
997
|
+
// ── 401 handler ───────────────────────────────────────────────────
|
|
998
|
+
/**
|
|
999
|
+
* Register a callback fired on every 401 response. Use this to wire
|
|
1000
|
+
* a token-refresh flow or a forced logout. Setting `null` removes
|
|
1001
|
+
* the handler.
|
|
1002
|
+
*/
|
|
1003
|
+
onUnauthorized(cb) {
|
|
1004
|
+
_onUnauthorized = cb;
|
|
878
1005
|
}
|
|
879
1006
|
};
|
|
880
|
-
|
|
881
|
-
|
|
1007
|
+
client.setConfig({
|
|
1008
|
+
baseUrl: auth.getBaseUrl(),
|
|
1009
|
+
credentials: _withCredentials ? "include" : "same-origin"
|
|
1010
|
+
});
|
|
1011
|
+
client.interceptors.request.use((request) => {
|
|
1012
|
+
const token = auth.getToken();
|
|
1013
|
+
if (token) request.headers.set("Authorization", `Bearer ${token}`);
|
|
1014
|
+
const locale = auth.getLocale();
|
|
1015
|
+
if (locale) request.headers.set("Accept-Language", locale);
|
|
1016
|
+
const apiKey = auth.getApiKey();
|
|
1017
|
+
if (apiKey) request.headers.set("X-API-Key", apiKey);
|
|
1018
|
+
return request;
|
|
1019
|
+
});
|
|
1020
|
+
client.interceptors.response.use((response) => {
|
|
1021
|
+
if (response.status === 401 && _onUnauthorized) {
|
|
1022
|
+
try {
|
|
1023
|
+
_onUnauthorized(response);
|
|
1024
|
+
} catch {
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
return response;
|
|
1028
|
+
});
|
|
882
1029
|
|
|
883
|
-
// src/_api/generated/
|
|
1030
|
+
// src/_api/generated/helpers/logger.ts
|
|
884
1031
|
var import_consola = require("consola");
|
|
885
1032
|
var DEFAULT_CONFIG = {
|
|
886
1033
|
enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
|
|
@@ -973,142 +1120,87 @@ __name(_APILogger, "APILogger");
|
|
|
973
1120
|
var APILogger = _APILogger;
|
|
974
1121
|
var defaultLogger = new APILogger();
|
|
975
1122
|
|
|
976
|
-
// src/_api/generated/
|
|
977
|
-
var _Cfg = class _Cfg {
|
|
978
|
-
/**
|
|
979
|
-
* Ingest browser events
|
|
980
|
-
*
|
|
981
|
-
* Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
|
|
982
|
-
*/
|
|
983
|
-
static cfgMonitorIngestCreate(options) {
|
|
984
|
-
return (options.client ?? client).post({
|
|
985
|
-
url: "/cfg/monitor/ingest/",
|
|
986
|
-
...options,
|
|
987
|
-
headers: {
|
|
988
|
-
"Content-Type": "application/json",
|
|
989
|
-
...options.headers
|
|
990
|
-
}
|
|
991
|
-
});
|
|
992
|
-
}
|
|
993
|
-
};
|
|
994
|
-
__name(_Cfg, "Cfg");
|
|
995
|
-
var Cfg = _Cfg;
|
|
996
|
-
var _Monitor = class _Monitor {
|
|
997
|
-
/**
|
|
998
|
-
* Ingest browser events
|
|
999
|
-
*
|
|
1000
|
-
* Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
|
|
1001
|
-
*/
|
|
1002
|
-
static cfgMonitorIngestCreate(options) {
|
|
1003
|
-
return (options.client ?? client).post({
|
|
1004
|
-
url: "/cfg/monitor/ingest/",
|
|
1005
|
-
...options,
|
|
1006
|
-
headers: {
|
|
1007
|
-
"Content-Type": "application/json",
|
|
1008
|
-
...options.headers
|
|
1009
|
-
}
|
|
1010
|
-
});
|
|
1011
|
-
}
|
|
1012
|
-
};
|
|
1013
|
-
__name(_Monitor, "Monitor");
|
|
1014
|
-
var Monitor = _Monitor;
|
|
1015
|
-
|
|
1016
|
-
// src/_api/generated/cfg_monitor/api.ts
|
|
1017
|
-
var ACCESS_KEY = "cfg.access_token";
|
|
1018
|
-
var REFRESH_KEY = "cfg.refresh_token";
|
|
1019
|
-
function detectLocale() {
|
|
1020
|
-
try {
|
|
1021
|
-
if (typeof document !== "undefined") {
|
|
1022
|
-
const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
|
|
1023
|
-
if (m) return decodeURIComponent(m[1]);
|
|
1024
|
-
}
|
|
1025
|
-
if (typeof navigator !== "undefined" && navigator.language) {
|
|
1026
|
-
return navigator.language;
|
|
1027
|
-
}
|
|
1028
|
-
} catch {
|
|
1029
|
-
}
|
|
1030
|
-
return null;
|
|
1031
|
-
}
|
|
1032
|
-
__name(detectLocale, "detectLocale");
|
|
1123
|
+
// src/_api/generated/_cfg_monitor/api.ts
|
|
1033
1124
|
var _API = class _API {
|
|
1034
|
-
constructor(
|
|
1035
|
-
__publicField(this, "baseUrl");
|
|
1036
|
-
__publicField(this, "storage");
|
|
1037
|
-
__publicField(this, "locale");
|
|
1038
|
-
__publicField(this, "apiKey");
|
|
1125
|
+
constructor(_baseUrl, opts = {}) {
|
|
1039
1126
|
__publicField(this, "logger");
|
|
1040
|
-
__publicField(this, "cfg", Cfg);
|
|
1041
|
-
__publicField(this, "monitor", Monitor);
|
|
1042
|
-
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
1043
|
-
this.storage = opts.storage ?? new LocalStorageAdapter();
|
|
1044
1127
|
this.logger = new APILogger(opts.logger);
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
client.interceptors.request.use((request) => {
|
|
1050
|
-
const access = this.getToken();
|
|
1051
|
-
if (access) request.headers.set("Authorization", `Bearer ${access}`);
|
|
1052
|
-
const locale = this.locale ?? detectLocale();
|
|
1053
|
-
if (locale) request.headers.set("Accept-Language", locale);
|
|
1054
|
-
if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
|
|
1055
|
-
return request;
|
|
1056
|
-
});
|
|
1128
|
+
if (_baseUrl) auth.setBaseUrl(_baseUrl);
|
|
1129
|
+
if (opts.locale !== void 0) auth.setLocale(opts.locale);
|
|
1130
|
+
if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
|
|
1131
|
+
if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
|
|
1057
1132
|
}
|
|
1058
1133
|
// ── Base URL ────────────────────────────────────────────────────────────
|
|
1059
1134
|
getBaseUrl() {
|
|
1060
|
-
return
|
|
1135
|
+
return auth.getBaseUrl();
|
|
1061
1136
|
}
|
|
1062
1137
|
setBaseUrl(url) {
|
|
1063
|
-
|
|
1064
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
1138
|
+
auth.setBaseUrl(url);
|
|
1065
1139
|
}
|
|
1066
1140
|
// ── Tokens ──────────────────────────────────────────────────────────────
|
|
1067
1141
|
getToken() {
|
|
1068
|
-
return
|
|
1142
|
+
return auth.getToken();
|
|
1069
1143
|
}
|
|
1070
1144
|
setToken(token) {
|
|
1071
|
-
|
|
1072
|
-
else this.storage.removeItem(ACCESS_KEY);
|
|
1145
|
+
auth.setToken(token);
|
|
1073
1146
|
}
|
|
1074
1147
|
getRefreshToken() {
|
|
1075
|
-
return
|
|
1148
|
+
return auth.getRefreshToken();
|
|
1076
1149
|
}
|
|
1077
1150
|
setRefreshToken(token) {
|
|
1078
|
-
|
|
1079
|
-
else this.storage.removeItem(REFRESH_KEY);
|
|
1151
|
+
auth.setRefreshToken(token);
|
|
1080
1152
|
}
|
|
1081
1153
|
clearToken() {
|
|
1082
|
-
|
|
1083
|
-
this.storage.removeItem(REFRESH_KEY);
|
|
1154
|
+
auth.clearTokens();
|
|
1084
1155
|
}
|
|
1085
1156
|
isAuthenticated() {
|
|
1086
|
-
return
|
|
1157
|
+
return auth.isAuthenticated();
|
|
1087
1158
|
}
|
|
1088
1159
|
// ── Locale / API key ────────────────────────────────────────────────────
|
|
1089
1160
|
getLocale() {
|
|
1090
|
-
return
|
|
1161
|
+
return auth.getLocale();
|
|
1091
1162
|
}
|
|
1092
1163
|
setLocale(locale) {
|
|
1093
|
-
|
|
1164
|
+
auth.setLocale(locale);
|
|
1094
1165
|
}
|
|
1095
1166
|
getApiKey() {
|
|
1096
|
-
return
|
|
1167
|
+
return auth.getApiKey();
|
|
1097
1168
|
}
|
|
1098
1169
|
setApiKey(key) {
|
|
1099
|
-
|
|
1170
|
+
auth.setApiKey(key);
|
|
1100
1171
|
}
|
|
1101
1172
|
};
|
|
1102
1173
|
__name(_API, "API");
|
|
1103
1174
|
var API = _API;
|
|
1104
1175
|
|
|
1105
1176
|
// src/_api/BaseClient.ts
|
|
1106
|
-
var monitorApi = new API(""
|
|
1177
|
+
var monitorApi = new API("");
|
|
1107
1178
|
function configureMonitorApi(baseUrl) {
|
|
1108
1179
|
monitorApi.setBaseUrl(baseUrl);
|
|
1109
1180
|
}
|
|
1110
1181
|
__name(configureMonitorApi, "configureMonitorApi");
|
|
1111
1182
|
|
|
1183
|
+
// src/_api/generated/sdk.gen.ts
|
|
1184
|
+
var _Monitor = class _Monitor {
|
|
1185
|
+
/**
|
|
1186
|
+
* Ingest browser events
|
|
1187
|
+
*
|
|
1188
|
+
* Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
|
|
1189
|
+
*/
|
|
1190
|
+
static cfgMonitorIngestCreate(options) {
|
|
1191
|
+
return (options.client ?? client).post({
|
|
1192
|
+
url: "/cfg/monitor/ingest/",
|
|
1193
|
+
...options,
|
|
1194
|
+
headers: {
|
|
1195
|
+
"Content-Type": "application/json",
|
|
1196
|
+
...options.headers
|
|
1197
|
+
}
|
|
1198
|
+
});
|
|
1199
|
+
}
|
|
1200
|
+
};
|
|
1201
|
+
__name(_Monitor, "Monitor");
|
|
1202
|
+
var Monitor = _Monitor;
|
|
1203
|
+
|
|
1112
1204
|
// src/server/index.ts
|
|
1113
1205
|
var _config = {};
|
|
1114
1206
|
async function send(events) {
|