@djangocfg/monitor 2.1.331 → 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 +206 -93
- package/dist/client.cjs.map +1 -1
- package/dist/client.mjs +206 -93
- package/dist/client.mjs.map +1 -1
- package/dist/index.cjs +205 -92
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +205 -92
- package/dist/index.mjs.map +1 -1
- package/dist/server.cjs +205 -92
- package/dist/server.cjs.map +1 -1
- package/dist/server.mjs +205 -92
- 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 +29 -82
- package/src/_api/generated/_cfg_monitor/index.ts +4 -4
- package/src/_api/generated/client.gen.ts +3 -0
- package/src/_api/generated/helpers/auth.ts +223 -0
- package/src/_api/generated/helpers/index.ts +1 -0
- package/src/_api/generated/index.ts +13 -9
package/dist/client.cjs
CHANGED
|
@@ -465,15 +465,15 @@ function getValidRequestBody(options) {
|
|
|
465
465
|
__name(getValidRequestBody, "getValidRequestBody");
|
|
466
466
|
|
|
467
467
|
// src/_api/generated/core/auth.gen.ts
|
|
468
|
-
var getAuthToken = /* @__PURE__ */ __name(async (
|
|
469
|
-
const token = typeof callback === "function" ? await callback(
|
|
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;
|
|
@@ -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 = {};
|
|
@@ -900,59 +900,206 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
|
|
|
900
900
|
// src/_api/generated/client.gen.ts
|
|
901
901
|
var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
|
|
902
902
|
|
|
903
|
-
// src/_api/generated/helpers/
|
|
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
1104
|
// src/_api/generated/helpers/logger.ts
|
|
958
1105
|
var import_consola = require("consola");
|
|
@@ -1048,94 +1195,60 @@ var APILogger = _APILogger;
|
|
|
1048
1195
|
var defaultLogger = new APILogger();
|
|
1049
1196
|
|
|
1050
1197
|
// src/_api/generated/_cfg_monitor/api.ts
|
|
1051
|
-
var ACCESS_KEY = "cfg.access_token";
|
|
1052
|
-
var REFRESH_KEY = "cfg.refresh_token";
|
|
1053
|
-
function detectLocale() {
|
|
1054
|
-
try {
|
|
1055
|
-
if (typeof document !== "undefined") {
|
|
1056
|
-
const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
|
|
1057
|
-
if (m) return decodeURIComponent(m[1]);
|
|
1058
|
-
}
|
|
1059
|
-
if (typeof navigator !== "undefined" && navigator.language) {
|
|
1060
|
-
return navigator.language;
|
|
1061
|
-
}
|
|
1062
|
-
} catch {
|
|
1063
|
-
}
|
|
1064
|
-
return null;
|
|
1065
|
-
}
|
|
1066
|
-
__name(detectLocale, "detectLocale");
|
|
1067
1198
|
var _API = class _API {
|
|
1068
|
-
constructor(
|
|
1069
|
-
__publicField(this, "baseUrl");
|
|
1070
|
-
__publicField(this, "storage");
|
|
1071
|
-
__publicField(this, "locale");
|
|
1072
|
-
__publicField(this, "apiKey");
|
|
1199
|
+
constructor(_baseUrl, opts = {}) {
|
|
1073
1200
|
__publicField(this, "logger");
|
|
1074
|
-
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
1075
|
-
this.storage = opts.storage ?? new LocalStorageAdapter();
|
|
1076
1201
|
this.logger = new APILogger(opts.logger);
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
client.interceptors.request.use((request) => {
|
|
1082
|
-
const access = this.getToken();
|
|
1083
|
-
if (access) request.headers.set("Authorization", `Bearer ${access}`);
|
|
1084
|
-
const locale = this.locale ?? detectLocale();
|
|
1085
|
-
if (locale) request.headers.set("Accept-Language", locale);
|
|
1086
|
-
if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
|
|
1087
|
-
return request;
|
|
1088
|
-
});
|
|
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);
|
|
1089
1206
|
}
|
|
1090
1207
|
// ── Base URL ────────────────────────────────────────────────────────────
|
|
1091
1208
|
getBaseUrl() {
|
|
1092
|
-
return
|
|
1209
|
+
return auth.getBaseUrl();
|
|
1093
1210
|
}
|
|
1094
1211
|
setBaseUrl(url) {
|
|
1095
|
-
|
|
1096
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
1212
|
+
auth.setBaseUrl(url);
|
|
1097
1213
|
}
|
|
1098
1214
|
// ── Tokens ──────────────────────────────────────────────────────────────
|
|
1099
1215
|
getToken() {
|
|
1100
|
-
return
|
|
1216
|
+
return auth.getToken();
|
|
1101
1217
|
}
|
|
1102
1218
|
setToken(token) {
|
|
1103
|
-
|
|
1104
|
-
else this.storage.removeItem(ACCESS_KEY);
|
|
1219
|
+
auth.setToken(token);
|
|
1105
1220
|
}
|
|
1106
1221
|
getRefreshToken() {
|
|
1107
|
-
return
|
|
1222
|
+
return auth.getRefreshToken();
|
|
1108
1223
|
}
|
|
1109
1224
|
setRefreshToken(token) {
|
|
1110
|
-
|
|
1111
|
-
else this.storage.removeItem(REFRESH_KEY);
|
|
1225
|
+
auth.setRefreshToken(token);
|
|
1112
1226
|
}
|
|
1113
1227
|
clearToken() {
|
|
1114
|
-
|
|
1115
|
-
this.storage.removeItem(REFRESH_KEY);
|
|
1228
|
+
auth.clearTokens();
|
|
1116
1229
|
}
|
|
1117
1230
|
isAuthenticated() {
|
|
1118
|
-
return
|
|
1231
|
+
return auth.isAuthenticated();
|
|
1119
1232
|
}
|
|
1120
1233
|
// ── Locale / API key ────────────────────────────────────────────────────
|
|
1121
1234
|
getLocale() {
|
|
1122
|
-
return
|
|
1235
|
+
return auth.getLocale();
|
|
1123
1236
|
}
|
|
1124
1237
|
setLocale(locale) {
|
|
1125
|
-
|
|
1238
|
+
auth.setLocale(locale);
|
|
1126
1239
|
}
|
|
1127
1240
|
getApiKey() {
|
|
1128
|
-
return
|
|
1241
|
+
return auth.getApiKey();
|
|
1129
1242
|
}
|
|
1130
1243
|
setApiKey(key) {
|
|
1131
|
-
|
|
1244
|
+
auth.setApiKey(key);
|
|
1132
1245
|
}
|
|
1133
1246
|
};
|
|
1134
1247
|
__name(_API, "API");
|
|
1135
1248
|
var API = _API;
|
|
1136
1249
|
|
|
1137
1250
|
// src/_api/BaseClient.ts
|
|
1138
|
-
var monitorApi = new API(""
|
|
1251
|
+
var monitorApi = new API("");
|
|
1139
1252
|
function configureMonitorApi(baseUrl) {
|
|
1140
1253
|
monitorApi.setBaseUrl(baseUrl);
|
|
1141
1254
|
}
|
|
@@ -1205,7 +1318,7 @@ __name(sendBatch, "sendBatch");
|
|
|
1205
1318
|
// src/client/utils/env.ts
|
|
1206
1319
|
var isDevelopment = process.env.NODE_ENV === "development";
|
|
1207
1320
|
var isProduction = !isDevelopment;
|
|
1208
|
-
var MONITOR_VERSION = "2.1.
|
|
1321
|
+
var MONITOR_VERSION = "2.1.332";
|
|
1209
1322
|
|
|
1210
1323
|
// src/client/constants.ts
|
|
1211
1324
|
var MONITOR_INGEST_PATTERN = /cfg\/monitor\/ingest/;
|