@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.mjs
CHANGED
|
@@ -3,12 +3,12 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
3
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
5
|
|
|
6
|
-
// src/_api/generated/
|
|
6
|
+
// src/_api/generated/core/bodySerializer.gen.ts
|
|
7
7
|
var jsonBodySerializer = {
|
|
8
8
|
bodySerializer: /* @__PURE__ */ __name((body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value), "bodySerializer")
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
// src/_api/generated/
|
|
11
|
+
// src/_api/generated/core/params.gen.ts
|
|
12
12
|
var extraPrefixesMap = {
|
|
13
13
|
$body_: "body",
|
|
14
14
|
$headers_: "headers",
|
|
@@ -17,7 +17,7 @@ var extraPrefixesMap = {
|
|
|
17
17
|
};
|
|
18
18
|
var extraPrefixes = Object.entries(extraPrefixesMap);
|
|
19
19
|
|
|
20
|
-
// src/_api/generated/
|
|
20
|
+
// src/_api/generated/core/serverSentEvents.gen.ts
|
|
21
21
|
function createSseClient({
|
|
22
22
|
onRequest,
|
|
23
23
|
onSseError,
|
|
@@ -145,7 +145,7 @@ function createSseClient({
|
|
|
145
145
|
}
|
|
146
146
|
__name(createSseClient, "createSseClient");
|
|
147
147
|
|
|
148
|
-
// src/_api/generated/
|
|
148
|
+
// src/_api/generated/core/pathSerializer.gen.ts
|
|
149
149
|
var separatorArrayExplode = /* @__PURE__ */ __name((style) => {
|
|
150
150
|
switch (style) {
|
|
151
151
|
case "label":
|
|
@@ -269,7 +269,7 @@ var serializeObjectParam = /* @__PURE__ */ __name(({
|
|
|
269
269
|
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
|
|
270
270
|
}, "serializeObjectParam");
|
|
271
271
|
|
|
272
|
-
// src/_api/generated/
|
|
272
|
+
// src/_api/generated/core/utils.gen.ts
|
|
273
273
|
var PATH_PARAM_RE = /\{[^{}]+\}/g;
|
|
274
274
|
var defaultPathSerializer = /* @__PURE__ */ __name(({ path, url: _url }) => {
|
|
275
275
|
let url = _url;
|
|
@@ -367,22 +367,22 @@ function getValidRequestBody(options) {
|
|
|
367
367
|
}
|
|
368
368
|
__name(getValidRequestBody, "getValidRequestBody");
|
|
369
369
|
|
|
370
|
-
// src/_api/generated/
|
|
371
|
-
var getAuthToken = /* @__PURE__ */ __name(async (
|
|
372
|
-
const token = typeof callback === "function" ? await callback(
|
|
370
|
+
// src/_api/generated/core/auth.gen.ts
|
|
371
|
+
var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
|
|
372
|
+
const token = typeof callback === "function" ? await callback(auth2) : callback;
|
|
373
373
|
if (!token) {
|
|
374
374
|
return;
|
|
375
375
|
}
|
|
376
|
-
if (
|
|
376
|
+
if (auth2.scheme === "bearer") {
|
|
377
377
|
return `Bearer ${token}`;
|
|
378
378
|
}
|
|
379
|
-
if (
|
|
379
|
+
if (auth2.scheme === "basic") {
|
|
380
380
|
return `Basic ${btoa(token)}`;
|
|
381
381
|
}
|
|
382
382
|
return token;
|
|
383
383
|
}, "getAuthToken");
|
|
384
384
|
|
|
385
|
-
// src/_api/generated/
|
|
385
|
+
// src/_api/generated/client/utils.gen.ts
|
|
386
386
|
var createQuerySerializer = /* @__PURE__ */ __name(({
|
|
387
387
|
parameters = {},
|
|
388
388
|
...args
|
|
@@ -465,16 +465,16 @@ var setAuthParams = /* @__PURE__ */ __name(async ({
|
|
|
465
465
|
security,
|
|
466
466
|
...options
|
|
467
467
|
}) => {
|
|
468
|
-
for (const
|
|
469
|
-
if (checkForExistence(options,
|
|
468
|
+
for (const auth2 of security) {
|
|
469
|
+
if (checkForExistence(options, auth2.name)) {
|
|
470
470
|
continue;
|
|
471
471
|
}
|
|
472
|
-
const token = await getAuthToken(
|
|
472
|
+
const token = await getAuthToken(auth2, options.auth);
|
|
473
473
|
if (!token) {
|
|
474
474
|
continue;
|
|
475
475
|
}
|
|
476
|
-
const name =
|
|
477
|
-
switch (
|
|
476
|
+
const name = auth2.name ?? "Authorization";
|
|
477
|
+
switch (auth2.in) {
|
|
478
478
|
case "query":
|
|
479
479
|
if (!options.query) {
|
|
480
480
|
options.query = {};
|
|
@@ -602,7 +602,7 @@ var createConfig = /* @__PURE__ */ __name((override = {}) => ({
|
|
|
602
602
|
...override
|
|
603
603
|
}), "createConfig");
|
|
604
604
|
|
|
605
|
-
// src/_api/generated/
|
|
605
|
+
// src/_api/generated/client/client.gen.ts
|
|
606
606
|
var createClient = /* @__PURE__ */ __name((config = {}) => {
|
|
607
607
|
let _config2 = mergeConfigs(createConfig(), config);
|
|
608
608
|
const getConfig = /* @__PURE__ */ __name(() => ({ ..._config2 }), "getConfig");
|
|
@@ -800,64 +800,211 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
|
|
|
800
800
|
};
|
|
801
801
|
}, "createClient");
|
|
802
802
|
|
|
803
|
-
// src/_api/generated/
|
|
803
|
+
// src/_api/generated/client.gen.ts
|
|
804
804
|
var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
|
|
805
805
|
|
|
806
|
-
// src/_api/generated/
|
|
807
|
-
var
|
|
808
|
-
|
|
809
|
-
|
|
806
|
+
// src/_api/generated/helpers/auth.ts
|
|
807
|
+
var ACCESS_KEY = "cfg.access_token";
|
|
808
|
+
var REFRESH_KEY = "cfg.refresh_token";
|
|
809
|
+
var API_KEY_KEY = "cfg.api_key";
|
|
810
|
+
var isBrowser = typeof window !== "undefined";
|
|
811
|
+
var localStorageBackend = {
|
|
812
|
+
get(key) {
|
|
813
|
+
if (!isBrowser) return null;
|
|
810
814
|
try {
|
|
811
815
|
return window.localStorage.getItem(key);
|
|
812
816
|
} catch {
|
|
813
817
|
return null;
|
|
814
818
|
}
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
if (
|
|
819
|
+
},
|
|
820
|
+
set(key, value) {
|
|
821
|
+
if (!isBrowser) return;
|
|
818
822
|
try {
|
|
819
|
-
window.localStorage.
|
|
823
|
+
if (value === null) window.localStorage.removeItem(key);
|
|
824
|
+
else window.localStorage.setItem(key, value);
|
|
820
825
|
} catch {
|
|
821
826
|
}
|
|
822
827
|
}
|
|
823
|
-
|
|
824
|
-
|
|
828
|
+
};
|
|
829
|
+
var COOKIE_MAX_AGE = 60 * 60 * 24 * 30;
|
|
830
|
+
var cookieBackend = {
|
|
831
|
+
get(key) {
|
|
832
|
+
if (!isBrowser) return null;
|
|
825
833
|
try {
|
|
826
|
-
|
|
834
|
+
const re = new RegExp(`(?:^|;\\s*)${encodeURIComponent(key)}=([^;]*)`);
|
|
835
|
+
const m = document.cookie.match(re);
|
|
836
|
+
return m ? decodeURIComponent(m[1]) : null;
|
|
827
837
|
} catch {
|
|
838
|
+
return null;
|
|
828
839
|
}
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
if (
|
|
840
|
+
},
|
|
841
|
+
set(key, value) {
|
|
842
|
+
if (!isBrowser) return;
|
|
832
843
|
try {
|
|
833
|
-
|
|
844
|
+
const k = encodeURIComponent(key);
|
|
845
|
+
const secure = window.location.protocol === "https:" ? "; Secure" : "";
|
|
846
|
+
if (value === null) {
|
|
847
|
+
document.cookie = `${k}=; Path=/; Max-Age=0; SameSite=Lax${secure}`;
|
|
848
|
+
} else {
|
|
849
|
+
const v = encodeURIComponent(value);
|
|
850
|
+
document.cookie = `${k}=${v}; Path=/; Max-Age=${COOKIE_MAX_AGE}; SameSite=Lax${secure}`;
|
|
851
|
+
}
|
|
834
852
|
} catch {
|
|
835
853
|
}
|
|
836
854
|
}
|
|
837
855
|
};
|
|
838
|
-
|
|
839
|
-
var
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
856
|
+
var _storage = localStorageBackend;
|
|
857
|
+
var _storageMode = "localStorage";
|
|
858
|
+
function detectLocale() {
|
|
859
|
+
try {
|
|
860
|
+
if (typeof document !== "undefined") {
|
|
861
|
+
const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
|
|
862
|
+
if (m) return decodeURIComponent(m[1]);
|
|
863
|
+
}
|
|
864
|
+
if (typeof navigator !== "undefined" && navigator.language) {
|
|
865
|
+
return navigator.language;
|
|
866
|
+
}
|
|
867
|
+
} catch {
|
|
846
868
|
}
|
|
847
|
-
|
|
848
|
-
|
|
869
|
+
return null;
|
|
870
|
+
}
|
|
871
|
+
__name(detectLocale, "detectLocale");
|
|
872
|
+
function defaultBaseUrl() {
|
|
873
|
+
try {
|
|
874
|
+
if (typeof process !== "undefined" && process.env) {
|
|
875
|
+
if (process.env.NEXT_PUBLIC_STATIC_BUILD === "true") return "";
|
|
876
|
+
return process.env.NEXT_PUBLIC_API_URL || "";
|
|
877
|
+
}
|
|
878
|
+
} catch {
|
|
849
879
|
}
|
|
850
|
-
|
|
851
|
-
|
|
880
|
+
return "";
|
|
881
|
+
}
|
|
882
|
+
__name(defaultBaseUrl, "defaultBaseUrl");
|
|
883
|
+
function defaultApiKey() {
|
|
884
|
+
try {
|
|
885
|
+
if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_KEY) {
|
|
886
|
+
return process.env.NEXT_PUBLIC_API_KEY;
|
|
887
|
+
}
|
|
888
|
+
} catch {
|
|
852
889
|
}
|
|
853
|
-
|
|
854
|
-
|
|
890
|
+
return null;
|
|
891
|
+
}
|
|
892
|
+
__name(defaultApiKey, "defaultApiKey");
|
|
893
|
+
var _localeOverride = null;
|
|
894
|
+
var _apiKeyOverride = null;
|
|
895
|
+
var _baseUrlOverride = null;
|
|
896
|
+
var _withCredentials = true;
|
|
897
|
+
var _onUnauthorized = null;
|
|
898
|
+
var auth = {
|
|
899
|
+
// ── Storage mode ──────────────────────────────────────────────────
|
|
900
|
+
getStorageMode() {
|
|
901
|
+
return _storageMode;
|
|
902
|
+
},
|
|
903
|
+
/**
|
|
904
|
+
* Switch the storage backend. Existing values in the *previous*
|
|
905
|
+
* backend are NOT migrated — set fresh values after switching.
|
|
906
|
+
*/
|
|
907
|
+
setStorageMode(mode) {
|
|
908
|
+
_storageMode = mode;
|
|
909
|
+
_storage = mode === "cookie" ? cookieBackend : localStorageBackend;
|
|
910
|
+
},
|
|
911
|
+
// ── Bearer token ──────────────────────────────────────────────────
|
|
912
|
+
getToken() {
|
|
913
|
+
return _storage.get(ACCESS_KEY);
|
|
914
|
+
},
|
|
915
|
+
setToken(token) {
|
|
916
|
+
_storage.set(ACCESS_KEY, token);
|
|
917
|
+
},
|
|
918
|
+
getRefreshToken() {
|
|
919
|
+
return _storage.get(REFRESH_KEY);
|
|
920
|
+
},
|
|
921
|
+
setRefreshToken(token) {
|
|
922
|
+
_storage.set(REFRESH_KEY, token);
|
|
923
|
+
},
|
|
924
|
+
clearTokens() {
|
|
925
|
+
_storage.set(ACCESS_KEY, null);
|
|
926
|
+
_storage.set(REFRESH_KEY, null);
|
|
927
|
+
},
|
|
928
|
+
isAuthenticated() {
|
|
929
|
+
return _storage.get(ACCESS_KEY) !== null;
|
|
930
|
+
},
|
|
931
|
+
// ── API key ───────────────────────────────────────────────────────
|
|
932
|
+
/** In-memory API key. Falls back to storage, then NEXT_PUBLIC_API_KEY. */
|
|
933
|
+
getApiKey() {
|
|
934
|
+
return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
|
|
935
|
+
},
|
|
936
|
+
/** In-memory only (cleared on reload). */
|
|
937
|
+
setApiKey(key) {
|
|
938
|
+
_apiKeyOverride = key;
|
|
939
|
+
},
|
|
940
|
+
/** Persist to active storage backend (localStorage or cookie). */
|
|
941
|
+
setApiKeyPersist(key) {
|
|
942
|
+
_apiKeyOverride = key;
|
|
943
|
+
_storage.set(API_KEY_KEY, key);
|
|
944
|
+
},
|
|
945
|
+
clearApiKey() {
|
|
946
|
+
_apiKeyOverride = null;
|
|
947
|
+
_storage.set(API_KEY_KEY, null);
|
|
948
|
+
},
|
|
949
|
+
// ── Locale ────────────────────────────────────────────────────────
|
|
950
|
+
/** Override locale → falls back to NEXT_LOCALE cookie / navigator.language. */
|
|
951
|
+
getLocale() {
|
|
952
|
+
return _localeOverride ?? detectLocale();
|
|
953
|
+
},
|
|
954
|
+
setLocale(locale) {
|
|
955
|
+
_localeOverride = locale;
|
|
956
|
+
},
|
|
957
|
+
// ── Base URL ──────────────────────────────────────────────────────
|
|
958
|
+
getBaseUrl() {
|
|
959
|
+
const url = _baseUrlOverride ?? defaultBaseUrl();
|
|
960
|
+
return url.replace(/\/$/, "");
|
|
961
|
+
},
|
|
962
|
+
setBaseUrl(url) {
|
|
963
|
+
_baseUrlOverride = url ? url.replace(/\/$/, "") : null;
|
|
964
|
+
client.setConfig({ baseUrl: this.getBaseUrl() });
|
|
965
|
+
},
|
|
966
|
+
// ── Credentials toggle (Django session/CSRF cross-origin) ─────────
|
|
967
|
+
getWithCredentials() {
|
|
968
|
+
return _withCredentials;
|
|
969
|
+
},
|
|
970
|
+
setWithCredentials(value) {
|
|
971
|
+
_withCredentials = value;
|
|
972
|
+
client.setConfig({ credentials: value ? "include" : "same-origin" });
|
|
973
|
+
},
|
|
974
|
+
// ── 401 handler ───────────────────────────────────────────────────
|
|
975
|
+
/**
|
|
976
|
+
* Register a callback fired on every 401 response. Use this to wire
|
|
977
|
+
* a token-refresh flow or a forced logout. Setting `null` removes
|
|
978
|
+
* the handler.
|
|
979
|
+
*/
|
|
980
|
+
onUnauthorized(cb) {
|
|
981
|
+
_onUnauthorized = cb;
|
|
855
982
|
}
|
|
856
983
|
};
|
|
857
|
-
|
|
858
|
-
|
|
984
|
+
client.setConfig({
|
|
985
|
+
baseUrl: auth.getBaseUrl(),
|
|
986
|
+
credentials: _withCredentials ? "include" : "same-origin"
|
|
987
|
+
});
|
|
988
|
+
client.interceptors.request.use((request) => {
|
|
989
|
+
const token = auth.getToken();
|
|
990
|
+
if (token) request.headers.set("Authorization", `Bearer ${token}`);
|
|
991
|
+
const locale = auth.getLocale();
|
|
992
|
+
if (locale) request.headers.set("Accept-Language", locale);
|
|
993
|
+
const apiKey = auth.getApiKey();
|
|
994
|
+
if (apiKey) request.headers.set("X-API-Key", apiKey);
|
|
995
|
+
return request;
|
|
996
|
+
});
|
|
997
|
+
client.interceptors.response.use((response) => {
|
|
998
|
+
if (response.status === 401 && _onUnauthorized) {
|
|
999
|
+
try {
|
|
1000
|
+
_onUnauthorized(response);
|
|
1001
|
+
} catch {
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
return response;
|
|
1005
|
+
});
|
|
859
1006
|
|
|
860
|
-
// src/_api/generated/
|
|
1007
|
+
// src/_api/generated/helpers/logger.ts
|
|
861
1008
|
import { createConsola } from "consola";
|
|
862
1009
|
var DEFAULT_CONFIG = {
|
|
863
1010
|
enabled: typeof process !== "undefined" && process.env.NODE_ENV !== "production",
|
|
@@ -950,142 +1097,87 @@ __name(_APILogger, "APILogger");
|
|
|
950
1097
|
var APILogger = _APILogger;
|
|
951
1098
|
var defaultLogger = new APILogger();
|
|
952
1099
|
|
|
953
|
-
// src/_api/generated/
|
|
954
|
-
var _Cfg = class _Cfg {
|
|
955
|
-
/**
|
|
956
|
-
* Ingest browser events
|
|
957
|
-
*
|
|
958
|
-
* Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
|
|
959
|
-
*/
|
|
960
|
-
static cfgMonitorIngestCreate(options) {
|
|
961
|
-
return (options.client ?? client).post({
|
|
962
|
-
url: "/cfg/monitor/ingest/",
|
|
963
|
-
...options,
|
|
964
|
-
headers: {
|
|
965
|
-
"Content-Type": "application/json",
|
|
966
|
-
...options.headers
|
|
967
|
-
}
|
|
968
|
-
});
|
|
969
|
-
}
|
|
970
|
-
};
|
|
971
|
-
__name(_Cfg, "Cfg");
|
|
972
|
-
var Cfg = _Cfg;
|
|
973
|
-
var _Monitor = class _Monitor {
|
|
974
|
-
/**
|
|
975
|
-
* Ingest browser events
|
|
976
|
-
*
|
|
977
|
-
* Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
|
|
978
|
-
*/
|
|
979
|
-
static cfgMonitorIngestCreate(options) {
|
|
980
|
-
return (options.client ?? client).post({
|
|
981
|
-
url: "/cfg/monitor/ingest/",
|
|
982
|
-
...options,
|
|
983
|
-
headers: {
|
|
984
|
-
"Content-Type": "application/json",
|
|
985
|
-
...options.headers
|
|
986
|
-
}
|
|
987
|
-
});
|
|
988
|
-
}
|
|
989
|
-
};
|
|
990
|
-
__name(_Monitor, "Monitor");
|
|
991
|
-
var Monitor = _Monitor;
|
|
992
|
-
|
|
993
|
-
// src/_api/generated/cfg_monitor/api.ts
|
|
994
|
-
var ACCESS_KEY = "cfg.access_token";
|
|
995
|
-
var REFRESH_KEY = "cfg.refresh_token";
|
|
996
|
-
function detectLocale() {
|
|
997
|
-
try {
|
|
998
|
-
if (typeof document !== "undefined") {
|
|
999
|
-
const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
|
|
1000
|
-
if (m) return decodeURIComponent(m[1]);
|
|
1001
|
-
}
|
|
1002
|
-
if (typeof navigator !== "undefined" && navigator.language) {
|
|
1003
|
-
return navigator.language;
|
|
1004
|
-
}
|
|
1005
|
-
} catch {
|
|
1006
|
-
}
|
|
1007
|
-
return null;
|
|
1008
|
-
}
|
|
1009
|
-
__name(detectLocale, "detectLocale");
|
|
1100
|
+
// src/_api/generated/_cfg_monitor/api.ts
|
|
1010
1101
|
var _API = class _API {
|
|
1011
|
-
constructor(
|
|
1012
|
-
__publicField(this, "baseUrl");
|
|
1013
|
-
__publicField(this, "storage");
|
|
1014
|
-
__publicField(this, "locale");
|
|
1015
|
-
__publicField(this, "apiKey");
|
|
1102
|
+
constructor(_baseUrl, opts = {}) {
|
|
1016
1103
|
__publicField(this, "logger");
|
|
1017
|
-
__publicField(this, "cfg", Cfg);
|
|
1018
|
-
__publicField(this, "monitor", Monitor);
|
|
1019
|
-
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
1020
|
-
this.storage = opts.storage ?? new LocalStorageAdapter();
|
|
1021
1104
|
this.logger = new APILogger(opts.logger);
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
client.interceptors.request.use((request) => {
|
|
1027
|
-
const access = this.getToken();
|
|
1028
|
-
if (access) request.headers.set("Authorization", `Bearer ${access}`);
|
|
1029
|
-
const locale = this.locale ?? detectLocale();
|
|
1030
|
-
if (locale) request.headers.set("Accept-Language", locale);
|
|
1031
|
-
if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
|
|
1032
|
-
return request;
|
|
1033
|
-
});
|
|
1105
|
+
if (_baseUrl) auth.setBaseUrl(_baseUrl);
|
|
1106
|
+
if (opts.locale !== void 0) auth.setLocale(opts.locale);
|
|
1107
|
+
if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
|
|
1108
|
+
if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
|
|
1034
1109
|
}
|
|
1035
1110
|
// ── Base URL ────────────────────────────────────────────────────────────
|
|
1036
1111
|
getBaseUrl() {
|
|
1037
|
-
return
|
|
1112
|
+
return auth.getBaseUrl();
|
|
1038
1113
|
}
|
|
1039
1114
|
setBaseUrl(url) {
|
|
1040
|
-
|
|
1041
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
1115
|
+
auth.setBaseUrl(url);
|
|
1042
1116
|
}
|
|
1043
1117
|
// ── Tokens ──────────────────────────────────────────────────────────────
|
|
1044
1118
|
getToken() {
|
|
1045
|
-
return
|
|
1119
|
+
return auth.getToken();
|
|
1046
1120
|
}
|
|
1047
1121
|
setToken(token) {
|
|
1048
|
-
|
|
1049
|
-
else this.storage.removeItem(ACCESS_KEY);
|
|
1122
|
+
auth.setToken(token);
|
|
1050
1123
|
}
|
|
1051
1124
|
getRefreshToken() {
|
|
1052
|
-
return
|
|
1125
|
+
return auth.getRefreshToken();
|
|
1053
1126
|
}
|
|
1054
1127
|
setRefreshToken(token) {
|
|
1055
|
-
|
|
1056
|
-
else this.storage.removeItem(REFRESH_KEY);
|
|
1128
|
+
auth.setRefreshToken(token);
|
|
1057
1129
|
}
|
|
1058
1130
|
clearToken() {
|
|
1059
|
-
|
|
1060
|
-
this.storage.removeItem(REFRESH_KEY);
|
|
1131
|
+
auth.clearTokens();
|
|
1061
1132
|
}
|
|
1062
1133
|
isAuthenticated() {
|
|
1063
|
-
return
|
|
1134
|
+
return auth.isAuthenticated();
|
|
1064
1135
|
}
|
|
1065
1136
|
// ── Locale / API key ────────────────────────────────────────────────────
|
|
1066
1137
|
getLocale() {
|
|
1067
|
-
return
|
|
1138
|
+
return auth.getLocale();
|
|
1068
1139
|
}
|
|
1069
1140
|
setLocale(locale) {
|
|
1070
|
-
|
|
1141
|
+
auth.setLocale(locale);
|
|
1071
1142
|
}
|
|
1072
1143
|
getApiKey() {
|
|
1073
|
-
return
|
|
1144
|
+
return auth.getApiKey();
|
|
1074
1145
|
}
|
|
1075
1146
|
setApiKey(key) {
|
|
1076
|
-
|
|
1147
|
+
auth.setApiKey(key);
|
|
1077
1148
|
}
|
|
1078
1149
|
};
|
|
1079
1150
|
__name(_API, "API");
|
|
1080
1151
|
var API = _API;
|
|
1081
1152
|
|
|
1082
1153
|
// src/_api/BaseClient.ts
|
|
1083
|
-
var monitorApi = new API(""
|
|
1154
|
+
var monitorApi = new API("");
|
|
1084
1155
|
function configureMonitorApi(baseUrl) {
|
|
1085
1156
|
monitorApi.setBaseUrl(baseUrl);
|
|
1086
1157
|
}
|
|
1087
1158
|
__name(configureMonitorApi, "configureMonitorApi");
|
|
1088
1159
|
|
|
1160
|
+
// src/_api/generated/sdk.gen.ts
|
|
1161
|
+
var _Monitor = class _Monitor {
|
|
1162
|
+
/**
|
|
1163
|
+
* Ingest browser events
|
|
1164
|
+
*
|
|
1165
|
+
* Accepts a batch of up to 50 frontend events. No authentication required — anonymous visitors can send events.
|
|
1166
|
+
*/
|
|
1167
|
+
static cfgMonitorIngestCreate(options) {
|
|
1168
|
+
return (options.client ?? client).post({
|
|
1169
|
+
url: "/cfg/monitor/ingest/",
|
|
1170
|
+
...options,
|
|
1171
|
+
headers: {
|
|
1172
|
+
"Content-Type": "application/json",
|
|
1173
|
+
...options.headers
|
|
1174
|
+
}
|
|
1175
|
+
});
|
|
1176
|
+
}
|
|
1177
|
+
};
|
|
1178
|
+
__name(_Monitor, "Monitor");
|
|
1179
|
+
var Monitor = _Monitor;
|
|
1180
|
+
|
|
1089
1181
|
// src/server/index.ts
|
|
1090
1182
|
var _config = {};
|
|
1091
1183
|
async function send(events) {
|