@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/index.cjs
CHANGED
|
@@ -392,15 +392,15 @@ function getValidRequestBody(options) {
|
|
|
392
392
|
__name(getValidRequestBody, "getValidRequestBody");
|
|
393
393
|
|
|
394
394
|
// src/_api/generated/core/auth.gen.ts
|
|
395
|
-
var getAuthToken = /* @__PURE__ */ __name(async (
|
|
396
|
-
const token = typeof callback === "function" ? await callback(
|
|
395
|
+
var getAuthToken = /* @__PURE__ */ __name(async (auth2, callback) => {
|
|
396
|
+
const token = typeof callback === "function" ? await callback(auth2) : callback;
|
|
397
397
|
if (!token) {
|
|
398
398
|
return;
|
|
399
399
|
}
|
|
400
|
-
if (
|
|
400
|
+
if (auth2.scheme === "bearer") {
|
|
401
401
|
return `Bearer ${token}`;
|
|
402
402
|
}
|
|
403
|
-
if (
|
|
403
|
+
if (auth2.scheme === "basic") {
|
|
404
404
|
return `Basic ${btoa(token)}`;
|
|
405
405
|
}
|
|
406
406
|
return token;
|
|
@@ -489,16 +489,16 @@ var setAuthParams = /* @__PURE__ */ __name(async ({
|
|
|
489
489
|
security,
|
|
490
490
|
...options
|
|
491
491
|
}) => {
|
|
492
|
-
for (const
|
|
493
|
-
if (checkForExistence(options,
|
|
492
|
+
for (const auth2 of security) {
|
|
493
|
+
if (checkForExistence(options, auth2.name)) {
|
|
494
494
|
continue;
|
|
495
495
|
}
|
|
496
|
-
const token = await getAuthToken(
|
|
496
|
+
const token = await getAuthToken(auth2, options.auth);
|
|
497
497
|
if (!token) {
|
|
498
498
|
continue;
|
|
499
499
|
}
|
|
500
|
-
const name =
|
|
501
|
-
switch (
|
|
500
|
+
const name = auth2.name ?? "Authorization";
|
|
501
|
+
switch (auth2.in) {
|
|
502
502
|
case "query":
|
|
503
503
|
if (!options.query) {
|
|
504
504
|
options.query = {};
|
|
@@ -827,59 +827,206 @@ var createClient = /* @__PURE__ */ __name((config = {}) => {
|
|
|
827
827
|
// src/_api/generated/client.gen.ts
|
|
828
828
|
var client = createClient(createConfig({ baseUrl: "http://localhost:8000" }));
|
|
829
829
|
|
|
830
|
-
// src/_api/generated/helpers/
|
|
831
|
-
var
|
|
832
|
-
|
|
833
|
-
|
|
830
|
+
// src/_api/generated/helpers/auth.ts
|
|
831
|
+
var ACCESS_KEY = "cfg.access_token";
|
|
832
|
+
var REFRESH_KEY = "cfg.refresh_token";
|
|
833
|
+
var API_KEY_KEY = "cfg.api_key";
|
|
834
|
+
var isBrowser = typeof window !== "undefined";
|
|
835
|
+
var localStorageBackend = {
|
|
836
|
+
get(key) {
|
|
837
|
+
if (!isBrowser) return null;
|
|
834
838
|
try {
|
|
835
839
|
return window.localStorage.getItem(key);
|
|
836
840
|
} catch {
|
|
837
841
|
return null;
|
|
838
842
|
}
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
if (
|
|
843
|
+
},
|
|
844
|
+
set(key, value) {
|
|
845
|
+
if (!isBrowser) return;
|
|
842
846
|
try {
|
|
843
|
-
window.localStorage.
|
|
847
|
+
if (value === null) window.localStorage.removeItem(key);
|
|
848
|
+
else window.localStorage.setItem(key, value);
|
|
844
849
|
} catch {
|
|
845
850
|
}
|
|
846
851
|
}
|
|
847
|
-
|
|
848
|
-
|
|
852
|
+
};
|
|
853
|
+
var COOKIE_MAX_AGE = 60 * 60 * 24 * 30;
|
|
854
|
+
var cookieBackend = {
|
|
855
|
+
get(key) {
|
|
856
|
+
if (!isBrowser) return null;
|
|
849
857
|
try {
|
|
850
|
-
|
|
858
|
+
const re = new RegExp(`(?:^|;\\s*)${encodeURIComponent(key)}=([^;]*)`);
|
|
859
|
+
const m = document.cookie.match(re);
|
|
860
|
+
return m ? decodeURIComponent(m[1]) : null;
|
|
851
861
|
} catch {
|
|
862
|
+
return null;
|
|
852
863
|
}
|
|
853
|
-
}
|
|
854
|
-
|
|
855
|
-
if (
|
|
864
|
+
},
|
|
865
|
+
set(key, value) {
|
|
866
|
+
if (!isBrowser) return;
|
|
856
867
|
try {
|
|
857
|
-
|
|
868
|
+
const k = encodeURIComponent(key);
|
|
869
|
+
const secure = window.location.protocol === "https:" ? "; Secure" : "";
|
|
870
|
+
if (value === null) {
|
|
871
|
+
document.cookie = `${k}=; Path=/; Max-Age=0; SameSite=Lax${secure}`;
|
|
872
|
+
} else {
|
|
873
|
+
const v = encodeURIComponent(value);
|
|
874
|
+
document.cookie = `${k}=${v}; Path=/; Max-Age=${COOKIE_MAX_AGE}; SameSite=Lax${secure}`;
|
|
875
|
+
}
|
|
858
876
|
} catch {
|
|
859
877
|
}
|
|
860
878
|
}
|
|
861
879
|
};
|
|
862
|
-
|
|
863
|
-
var
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
880
|
+
var _storage = localStorageBackend;
|
|
881
|
+
var _storageMode = "localStorage";
|
|
882
|
+
function detectLocale() {
|
|
883
|
+
try {
|
|
884
|
+
if (typeof document !== "undefined") {
|
|
885
|
+
const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
|
|
886
|
+
if (m) return decodeURIComponent(m[1]);
|
|
887
|
+
}
|
|
888
|
+
if (typeof navigator !== "undefined" && navigator.language) {
|
|
889
|
+
return navigator.language;
|
|
890
|
+
}
|
|
891
|
+
} catch {
|
|
870
892
|
}
|
|
871
|
-
|
|
872
|
-
|
|
893
|
+
return null;
|
|
894
|
+
}
|
|
895
|
+
__name(detectLocale, "detectLocale");
|
|
896
|
+
function defaultBaseUrl() {
|
|
897
|
+
try {
|
|
898
|
+
if (typeof process !== "undefined" && process.env) {
|
|
899
|
+
if (process.env.NEXT_PUBLIC_STATIC_BUILD === "true") return "";
|
|
900
|
+
return process.env.NEXT_PUBLIC_API_URL || "";
|
|
901
|
+
}
|
|
902
|
+
} catch {
|
|
873
903
|
}
|
|
874
|
-
|
|
875
|
-
|
|
904
|
+
return "";
|
|
905
|
+
}
|
|
906
|
+
__name(defaultBaseUrl, "defaultBaseUrl");
|
|
907
|
+
function defaultApiKey() {
|
|
908
|
+
try {
|
|
909
|
+
if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_KEY) {
|
|
910
|
+
return process.env.NEXT_PUBLIC_API_KEY;
|
|
911
|
+
}
|
|
912
|
+
} catch {
|
|
876
913
|
}
|
|
877
|
-
|
|
878
|
-
|
|
914
|
+
return null;
|
|
915
|
+
}
|
|
916
|
+
__name(defaultApiKey, "defaultApiKey");
|
|
917
|
+
var _localeOverride = null;
|
|
918
|
+
var _apiKeyOverride = null;
|
|
919
|
+
var _baseUrlOverride = null;
|
|
920
|
+
var _withCredentials = true;
|
|
921
|
+
var _onUnauthorized = null;
|
|
922
|
+
var auth = {
|
|
923
|
+
// ── Storage mode ──────────────────────────────────────────────────
|
|
924
|
+
getStorageMode() {
|
|
925
|
+
return _storageMode;
|
|
926
|
+
},
|
|
927
|
+
/**
|
|
928
|
+
* Switch the storage backend. Existing values in the *previous*
|
|
929
|
+
* backend are NOT migrated — set fresh values after switching.
|
|
930
|
+
*/
|
|
931
|
+
setStorageMode(mode) {
|
|
932
|
+
_storageMode = mode;
|
|
933
|
+
_storage = mode === "cookie" ? cookieBackend : localStorageBackend;
|
|
934
|
+
},
|
|
935
|
+
// ── Bearer token ──────────────────────────────────────────────────
|
|
936
|
+
getToken() {
|
|
937
|
+
return _storage.get(ACCESS_KEY);
|
|
938
|
+
},
|
|
939
|
+
setToken(token) {
|
|
940
|
+
_storage.set(ACCESS_KEY, token);
|
|
941
|
+
},
|
|
942
|
+
getRefreshToken() {
|
|
943
|
+
return _storage.get(REFRESH_KEY);
|
|
944
|
+
},
|
|
945
|
+
setRefreshToken(token) {
|
|
946
|
+
_storage.set(REFRESH_KEY, token);
|
|
947
|
+
},
|
|
948
|
+
clearTokens() {
|
|
949
|
+
_storage.set(ACCESS_KEY, null);
|
|
950
|
+
_storage.set(REFRESH_KEY, null);
|
|
951
|
+
},
|
|
952
|
+
isAuthenticated() {
|
|
953
|
+
return _storage.get(ACCESS_KEY) !== null;
|
|
954
|
+
},
|
|
955
|
+
// ── API key ───────────────────────────────────────────────────────
|
|
956
|
+
/** In-memory API key. Falls back to storage, then NEXT_PUBLIC_API_KEY. */
|
|
957
|
+
getApiKey() {
|
|
958
|
+
return _apiKeyOverride ?? _storage.get(API_KEY_KEY) ?? defaultApiKey();
|
|
959
|
+
},
|
|
960
|
+
/** In-memory only (cleared on reload). */
|
|
961
|
+
setApiKey(key) {
|
|
962
|
+
_apiKeyOverride = key;
|
|
963
|
+
},
|
|
964
|
+
/** Persist to active storage backend (localStorage or cookie). */
|
|
965
|
+
setApiKeyPersist(key) {
|
|
966
|
+
_apiKeyOverride = key;
|
|
967
|
+
_storage.set(API_KEY_KEY, key);
|
|
968
|
+
},
|
|
969
|
+
clearApiKey() {
|
|
970
|
+
_apiKeyOverride = null;
|
|
971
|
+
_storage.set(API_KEY_KEY, null);
|
|
972
|
+
},
|
|
973
|
+
// ── Locale ────────────────────────────────────────────────────────
|
|
974
|
+
/** Override locale → falls back to NEXT_LOCALE cookie / navigator.language. */
|
|
975
|
+
getLocale() {
|
|
976
|
+
return _localeOverride ?? detectLocale();
|
|
977
|
+
},
|
|
978
|
+
setLocale(locale) {
|
|
979
|
+
_localeOverride = locale;
|
|
980
|
+
},
|
|
981
|
+
// ── Base URL ──────────────────────────────────────────────────────
|
|
982
|
+
getBaseUrl() {
|
|
983
|
+
const url = _baseUrlOverride ?? defaultBaseUrl();
|
|
984
|
+
return url.replace(/\/$/, "");
|
|
985
|
+
},
|
|
986
|
+
setBaseUrl(url) {
|
|
987
|
+
_baseUrlOverride = url ? url.replace(/\/$/, "") : null;
|
|
988
|
+
client.setConfig({ baseUrl: this.getBaseUrl() });
|
|
989
|
+
},
|
|
990
|
+
// ── Credentials toggle (Django session/CSRF cross-origin) ─────────
|
|
991
|
+
getWithCredentials() {
|
|
992
|
+
return _withCredentials;
|
|
993
|
+
},
|
|
994
|
+
setWithCredentials(value) {
|
|
995
|
+
_withCredentials = value;
|
|
996
|
+
client.setConfig({ credentials: value ? "include" : "same-origin" });
|
|
997
|
+
},
|
|
998
|
+
// ── 401 handler ───────────────────────────────────────────────────
|
|
999
|
+
/**
|
|
1000
|
+
* Register a callback fired on every 401 response. Use this to wire
|
|
1001
|
+
* a token-refresh flow or a forced logout. Setting `null` removes
|
|
1002
|
+
* the handler.
|
|
1003
|
+
*/
|
|
1004
|
+
onUnauthorized(cb) {
|
|
1005
|
+
_onUnauthorized = cb;
|
|
879
1006
|
}
|
|
880
1007
|
};
|
|
881
|
-
|
|
882
|
-
|
|
1008
|
+
client.setConfig({
|
|
1009
|
+
baseUrl: auth.getBaseUrl(),
|
|
1010
|
+
credentials: _withCredentials ? "include" : "same-origin"
|
|
1011
|
+
});
|
|
1012
|
+
client.interceptors.request.use((request) => {
|
|
1013
|
+
const token = auth.getToken();
|
|
1014
|
+
if (token) request.headers.set("Authorization", `Bearer ${token}`);
|
|
1015
|
+
const locale = auth.getLocale();
|
|
1016
|
+
if (locale) request.headers.set("Accept-Language", locale);
|
|
1017
|
+
const apiKey = auth.getApiKey();
|
|
1018
|
+
if (apiKey) request.headers.set("X-API-Key", apiKey);
|
|
1019
|
+
return request;
|
|
1020
|
+
});
|
|
1021
|
+
client.interceptors.response.use((response) => {
|
|
1022
|
+
if (response.status === 401 && _onUnauthorized) {
|
|
1023
|
+
try {
|
|
1024
|
+
_onUnauthorized(response);
|
|
1025
|
+
} catch {
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
return response;
|
|
1029
|
+
});
|
|
883
1030
|
|
|
884
1031
|
// src/_api/generated/helpers/logger.ts
|
|
885
1032
|
var import_consola = require("consola");
|
|
@@ -975,94 +1122,60 @@ var APILogger = _APILogger;
|
|
|
975
1122
|
var defaultLogger = new APILogger();
|
|
976
1123
|
|
|
977
1124
|
// src/_api/generated/_cfg_monitor/api.ts
|
|
978
|
-
var ACCESS_KEY = "cfg.access_token";
|
|
979
|
-
var REFRESH_KEY = "cfg.refresh_token";
|
|
980
|
-
function detectLocale() {
|
|
981
|
-
try {
|
|
982
|
-
if (typeof document !== "undefined") {
|
|
983
|
-
const m = document.cookie.match(/(?:^|;\s*)NEXT_LOCALE=([^;]*)/);
|
|
984
|
-
if (m) return decodeURIComponent(m[1]);
|
|
985
|
-
}
|
|
986
|
-
if (typeof navigator !== "undefined" && navigator.language) {
|
|
987
|
-
return navigator.language;
|
|
988
|
-
}
|
|
989
|
-
} catch {
|
|
990
|
-
}
|
|
991
|
-
return null;
|
|
992
|
-
}
|
|
993
|
-
__name(detectLocale, "detectLocale");
|
|
994
1125
|
var _API = class _API {
|
|
995
|
-
constructor(
|
|
996
|
-
__publicField(this, "baseUrl");
|
|
997
|
-
__publicField(this, "storage");
|
|
998
|
-
__publicField(this, "locale");
|
|
999
|
-
__publicField(this, "apiKey");
|
|
1126
|
+
constructor(_baseUrl, opts = {}) {
|
|
1000
1127
|
__publicField(this, "logger");
|
|
1001
|
-
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
1002
|
-
this.storage = opts.storage ?? new LocalStorageAdapter();
|
|
1003
1128
|
this.logger = new APILogger(opts.logger);
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
client.interceptors.request.use((request) => {
|
|
1009
|
-
const access = this.getToken();
|
|
1010
|
-
if (access) request.headers.set("Authorization", `Bearer ${access}`);
|
|
1011
|
-
const locale = this.locale ?? detectLocale();
|
|
1012
|
-
if (locale) request.headers.set("Accept-Language", locale);
|
|
1013
|
-
if (this.apiKey) request.headers.set("X-API-Key", this.apiKey);
|
|
1014
|
-
return request;
|
|
1015
|
-
});
|
|
1129
|
+
if (_baseUrl) auth.setBaseUrl(_baseUrl);
|
|
1130
|
+
if (opts.locale !== void 0) auth.setLocale(opts.locale);
|
|
1131
|
+
if (opts.apiKey !== void 0) auth.setApiKey(opts.apiKey);
|
|
1132
|
+
if (opts.withCredentials !== void 0) auth.setWithCredentials(opts.withCredentials);
|
|
1016
1133
|
}
|
|
1017
1134
|
// ── Base URL ────────────────────────────────────────────────────────────
|
|
1018
1135
|
getBaseUrl() {
|
|
1019
|
-
return
|
|
1136
|
+
return auth.getBaseUrl();
|
|
1020
1137
|
}
|
|
1021
1138
|
setBaseUrl(url) {
|
|
1022
|
-
|
|
1023
|
-
client.setConfig({ baseUrl: this.baseUrl });
|
|
1139
|
+
auth.setBaseUrl(url);
|
|
1024
1140
|
}
|
|
1025
1141
|
// ── Tokens ──────────────────────────────────────────────────────────────
|
|
1026
1142
|
getToken() {
|
|
1027
|
-
return
|
|
1143
|
+
return auth.getToken();
|
|
1028
1144
|
}
|
|
1029
1145
|
setToken(token) {
|
|
1030
|
-
|
|
1031
|
-
else this.storage.removeItem(ACCESS_KEY);
|
|
1146
|
+
auth.setToken(token);
|
|
1032
1147
|
}
|
|
1033
1148
|
getRefreshToken() {
|
|
1034
|
-
return
|
|
1149
|
+
return auth.getRefreshToken();
|
|
1035
1150
|
}
|
|
1036
1151
|
setRefreshToken(token) {
|
|
1037
|
-
|
|
1038
|
-
else this.storage.removeItem(REFRESH_KEY);
|
|
1152
|
+
auth.setRefreshToken(token);
|
|
1039
1153
|
}
|
|
1040
1154
|
clearToken() {
|
|
1041
|
-
|
|
1042
|
-
this.storage.removeItem(REFRESH_KEY);
|
|
1155
|
+
auth.clearTokens();
|
|
1043
1156
|
}
|
|
1044
1157
|
isAuthenticated() {
|
|
1045
|
-
return
|
|
1158
|
+
return auth.isAuthenticated();
|
|
1046
1159
|
}
|
|
1047
1160
|
// ── Locale / API key ────────────────────────────────────────────────────
|
|
1048
1161
|
getLocale() {
|
|
1049
|
-
return
|
|
1162
|
+
return auth.getLocale();
|
|
1050
1163
|
}
|
|
1051
1164
|
setLocale(locale) {
|
|
1052
|
-
|
|
1165
|
+
auth.setLocale(locale);
|
|
1053
1166
|
}
|
|
1054
1167
|
getApiKey() {
|
|
1055
|
-
return
|
|
1168
|
+
return auth.getApiKey();
|
|
1056
1169
|
}
|
|
1057
1170
|
setApiKey(key) {
|
|
1058
|
-
|
|
1171
|
+
auth.setApiKey(key);
|
|
1059
1172
|
}
|
|
1060
1173
|
};
|
|
1061
1174
|
__name(_API, "API");
|
|
1062
1175
|
var API = _API;
|
|
1063
1176
|
|
|
1064
1177
|
// src/_api/BaseClient.ts
|
|
1065
|
-
var monitorApi = new API(""
|
|
1178
|
+
var monitorApi = new API("");
|
|
1066
1179
|
|
|
1067
1180
|
// src/_api/generated/types.gen.ts
|
|
1068
1181
|
var EventTypeEnum = /* @__PURE__ */ ((EventTypeEnum2) => {
|