@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.mjs
CHANGED
|
@@ -431,15 +431,15 @@ function getValidRequestBody(options) {
|
|
|
431
431
|
__name(getValidRequestBody, "getValidRequestBody");
|
|
432
432
|
|
|
433
433
|
// src/_api/generated/core/auth.gen.ts
|
|
434
|
-
var getAuthToken = /* @__PURE__ */ __name(async (
|
|
435
|
-
const token = typeof callback === "function" ? await callback(
|
|
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;
|
|
@@ -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 = {};
|
|
@@ -866,59 +866,206 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
|
|
|
866
866
|
// src/_api/generated/client.gen.ts
|
|
867
867
|
var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
|
|
868
868
|
|
|
869
|
-
// src/_api/generated/helpers/
|
|
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
1070
|
// src/_api/generated/helpers/logger.ts
|
|
924
1071
|
import { createConsola } from "consola";
|
|
@@ -1014,94 +1161,60 @@ var APILogger = _APILogger;
|
|
|
1014
1161
|
var defaultLogger = new APILogger();
|
|
1015
1162
|
|
|
1016
1163
|
// 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");
|
|
1033
1164
|
var _API = class _API {
|
|
1034
|
-
constructor(
|
|
1035
|
-
__publicField(this, "baseUrl");
|
|
1036
|
-
__publicField(this, "storage");
|
|
1037
|
-
__publicField(this, "locale");
|
|
1038
|
-
__publicField(this, "apiKey");
|
|
1165
|
+
constructor(_baseUrl, opts = {}) {
|
|
1039
1166
|
__publicField(this, "logger");
|
|
1040
|
-
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
1041
|
-
this.storage = opts.storage ?? new LocalStorageAdapter();
|
|
1042
1167
|
this.logger = new APILogger(opts.logger);
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
client.interceptors.request.use((request) => {
|
|
1048
|
-
const access = this.getToken();
|
|
1049
|
-
if (access) request.headers.set("Authorization", `Bearer ${access}`);
|
|
1050
|
-
const locale = this.locale ?? detectLocale();
|
|
1051
|
-
if (locale) request.headers.set("Accept-Language", locale);
|
|
1052
|
-
if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
|
|
1053
|
-
return request;
|
|
1054
|
-
});
|
|
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);
|
|
1055
1172
|
}
|
|
1056
1173
|
// ── Base URL ────────────────────────────────────────────────────────────
|
|
1057
1174
|
getBaseUrl() {
|
|
1058
|
-
return
|
|
1175
|
+
return auth.getBaseUrl();
|
|
1059
1176
|
}
|
|
1060
1177
|
setBaseUrl(url) {
|
|
1061
|
-
|
|
1062
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
1178
|
+
auth.setBaseUrl(url);
|
|
1063
1179
|
}
|
|
1064
1180
|
// ── Tokens ──────────────────────────────────────────────────────────────
|
|
1065
1181
|
getToken() {
|
|
1066
|
-
return
|
|
1182
|
+
return auth.getToken();
|
|
1067
1183
|
}
|
|
1068
1184
|
setToken(token) {
|
|
1069
|
-
|
|
1070
|
-
else this.storage.removeItem(ACCESS_KEY);
|
|
1185
|
+
auth.setToken(token);
|
|
1071
1186
|
}
|
|
1072
1187
|
getRefreshToken() {
|
|
1073
|
-
return
|
|
1188
|
+
return auth.getRefreshToken();
|
|
1074
1189
|
}
|
|
1075
1190
|
setRefreshToken(token) {
|
|
1076
|
-
|
|
1077
|
-
else this.storage.removeItem(REFRESH_KEY);
|
|
1191
|
+
auth.setRefreshToken(token);
|
|
1078
1192
|
}
|
|
1079
1193
|
clearToken() {
|
|
1080
|
-
|
|
1081
|
-
this.storage.removeItem(REFRESH_KEY);
|
|
1194
|
+
auth.clearTokens();
|
|
1082
1195
|
}
|
|
1083
1196
|
isAuthenticated() {
|
|
1084
|
-
return
|
|
1197
|
+
return auth.isAuthenticated();
|
|
1085
1198
|
}
|
|
1086
1199
|
// ── Locale / API key ────────────────────────────────────────────────────
|
|
1087
1200
|
getLocale() {
|
|
1088
|
-
return
|
|
1201
|
+
return auth.getLocale();
|
|
1089
1202
|
}
|
|
1090
1203
|
setLocale(locale) {
|
|
1091
|
-
|
|
1204
|
+
auth.setLocale(locale);
|
|
1092
1205
|
}
|
|
1093
1206
|
getApiKey() {
|
|
1094
|
-
return
|
|
1207
|
+
return auth.getApiKey();
|
|
1095
1208
|
}
|
|
1096
1209
|
setApiKey(key) {
|
|
1097
|
-
|
|
1210
|
+
auth.setApiKey(key);
|
|
1098
1211
|
}
|
|
1099
1212
|
};
|
|
1100
1213
|
__name(_API, "API");
|
|
1101
1214
|
var API = _API;
|
|
1102
1215
|
|
|
1103
1216
|
// src/_api/BaseClient.ts
|
|
1104
|
-
var monitorApi = new API(""
|
|
1217
|
+
var monitorApi = new API("");
|
|
1105
1218
|
function configureMonitorApi(baseUrl) {
|
|
1106
1219
|
monitorApi.setBaseUrl(baseUrl);
|
|
1107
1220
|
}
|
|
@@ -1171,7 +1284,7 @@ __name(sendBatch, "sendBatch");
|
|
|
1171
1284
|
// src/client/utils/env.ts
|
|
1172
1285
|
var isDevelopment = process.env.NODE_ENV === "development";
|
|
1173
1286
|
var isProduction = !isDevelopment;
|
|
1174
|
-
var MONITOR_VERSION = "2.1.
|
|
1287
|
+
var MONITOR_VERSION = "2.1.332";
|
|
1175
1288
|
|
|
1176
1289
|
// src/client/constants.ts
|
|
1177
1290
|
var MONITOR_INGEST_PATTERN = /cfg\/monitor\/ingest/;
|