@aifabrix/miso-client 4.9.0 → 4.12.0
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/CHANGELOG.md +33 -0
- package/README.md +164 -139
- package/dist/api/applications.api.d.ts +3 -3
- package/dist/api/applications.api.d.ts.map +1 -1
- package/dist/api/applications.api.js +21 -16
- package/dist/api/applications.api.js.map +1 -1
- package/dist/api/auth-cache.api.d.ts +3 -3
- package/dist/api/auth-cache.api.d.ts.map +1 -1
- package/dist/api/auth-cache.api.js +30 -30
- package/dist/api/auth-cache.api.js.map +1 -1
- package/dist/api/auth-login.api.d.ts +3 -3
- package/dist/api/auth-login.api.d.ts.map +1 -1
- package/dist/api/auth-login.api.js +25 -23
- package/dist/api/auth-login.api.js.map +1 -1
- package/dist/api/auth-token.api.d.ts +3 -3
- package/dist/api/auth-token.api.d.ts.map +1 -1
- package/dist/api/auth-token.api.js +53 -41
- package/dist/api/auth-token.api.js.map +1 -1
- package/dist/api/auth-user.api.d.ts +3 -3
- package/dist/api/auth-user.api.d.ts.map +1 -1
- package/dist/api/auth-user.api.js +18 -18
- package/dist/api/auth-user.api.js.map +1 -1
- package/dist/api/auth.api.d.ts +3 -3
- package/dist/api/auth.api.d.ts.map +1 -1
- package/dist/api/auth.api.js.map +1 -1
- package/dist/api/encryption.api.d.ts +2 -2
- package/dist/api/encryption.api.js +8 -8
- package/dist/api/index.d.ts +7 -7
- package/dist/api/logs-create.api.d.ts +3 -3
- package/dist/api/logs-create.api.d.ts.map +1 -1
- package/dist/api/logs-create.api.js +41 -19
- package/dist/api/logs-create.api.js.map +1 -1
- package/dist/api/logs-export.api.d.ts +3 -3
- package/dist/api/logs-export.api.d.ts.map +1 -1
- package/dist/api/logs-export.api.js +8 -6
- package/dist/api/logs-export.api.js.map +1 -1
- package/dist/api/logs-list.api.d.ts +3 -3
- package/dist/api/logs-list.api.d.ts.map +1 -1
- package/dist/api/logs-list.api.js +39 -33
- package/dist/api/logs-list.api.js.map +1 -1
- package/dist/api/logs-stats.api.d.ts +3 -3
- package/dist/api/logs-stats.api.d.ts.map +1 -1
- package/dist/api/logs-stats.api.js +24 -24
- package/dist/api/logs-stats.api.js.map +1 -1
- package/dist/api/logs.api.d.ts +3 -3
- package/dist/api/permissions.api.d.ts +3 -3
- package/dist/api/permissions.api.d.ts.map +1 -1
- package/dist/api/permissions.api.js +12 -12
- package/dist/api/permissions.api.js.map +1 -1
- package/dist/api/roles.api.d.ts +3 -3
- package/dist/api/roles.api.d.ts.map +1 -1
- package/dist/api/roles.api.js +12 -12
- package/dist/api/roles.api.js.map +1 -1
- package/dist/api/types/auth.types.d.ts +1 -1
- package/dist/api/types/encryption.types.d.ts +1 -1
- package/dist/api/types/logs.types.d.ts +10 -8
- package/dist/api/types/logs.types.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.js +29 -11
- package/dist/express/client-token-endpoint.js.map +1 -1
- package/dist/express/error-handler.d.ts.map +1 -1
- package/dist/express/error-handler.js +30 -8
- package/dist/express/error-handler.js.map +1 -1
- package/dist/express/error-types.d.ts.map +1 -1
- package/dist/express/error-types.js +26 -9
- package/dist/express/error-types.js.map +1 -1
- package/dist/express/index.d.ts +4 -4
- package/dist/express/index.d.ts.map +1 -1
- package/dist/express/index.js.map +1 -1
- package/dist/express/logger-context.middleware.d.ts.map +1 -1
- package/dist/express/logger-context.middleware.js +12 -5
- package/dist/express/logger-context.middleware.js.map +1 -1
- package/dist/express/response-helper.d.ts.map +1 -1
- package/dist/express/response-helper.js.map +1 -1
- package/dist/express/validation-helper.d.ts.map +1 -1
- package/dist/express/validation-helper.js +6 -2
- package/dist/express/validation-helper.js.map +1 -1
- package/dist/miso-client.d.ts.map +1 -1
- package/dist/miso-client.js +11 -4
- package/dist/miso-client.js.map +1 -1
- package/dist/sdk-exports.d.ts +6 -5
- package/dist/sdk-exports.d.ts.map +1 -1
- package/dist/sdk-exports.js +20 -1
- package/dist/sdk-exports.js.map +1 -1
- package/dist/services/application-context.service.d.ts.map +1 -1
- package/dist/services/application-context.service.js +3 -1
- package/dist/services/application-context.service.js.map +1 -1
- package/dist/services/auth-cache-helpers.d.ts.map +1 -1
- package/dist/services/auth-cache-helpers.js +9 -6
- package/dist/services/auth-cache-helpers.js.map +1 -1
- package/dist/services/auth-environment-token.d.ts.map +1 -1
- package/dist/services/auth-environment-token.js.map +1 -1
- package/dist/services/auth-error-handler.d.ts.map +1 -1
- package/dist/services/auth-error-handler.js.map +1 -1
- package/dist/services/auth.service.d.ts +0 -10
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.helpers.d.ts +22 -0
- package/dist/services/auth.service.helpers.d.ts.map +1 -0
- package/dist/services/auth.service.helpers.js +45 -0
- package/dist/services/auth.service.helpers.js.map +1 -0
- package/dist/services/auth.service.js +21 -57
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/browser-permission.service.d.ts.map +1 -1
- package/dist/services/browser-permission.service.js +10 -4
- package/dist/services/browser-permission.service.js.map +1 -1
- package/dist/services/browser-role.service.d.ts.map +1 -1
- package/dist/services/browser-role.service.js +6 -2
- package/dist/services/browser-role.service.js.map +1 -1
- package/dist/services/cache.service.d.ts.map +1 -1
- package/dist/services/cache.service.js +2 -1
- package/dist/services/cache.service.js.map +1 -1
- package/dist/services/encryption.service.d.ts +3 -3
- package/dist/services/encryption.service.d.ts.map +1 -1
- package/dist/services/encryption.service.js +12 -6
- package/dist/services/encryption.service.js.map +1 -1
- package/dist/services/logger/index.d.ts +1 -1
- package/dist/services/logger/index.d.ts.map +1 -1
- package/dist/services/logger/index.js.map +1 -1
- package/dist/services/logger/log-entry-builder.d.ts.map +1 -1
- package/dist/services/logger/log-entry-builder.js.map +1 -1
- package/dist/services/logger/logger-chain.d.ts.map +1 -1
- package/dist/services/logger/logger-chain.js.map +1 -1
- package/dist/services/logger/logger-context.d.ts.map +1 -1
- package/dist/services/logger/logger-context.js +5 -3
- package/dist/services/logger/logger-context.js.map +1 -1
- package/dist/services/logger/logger-http-utils.d.ts.map +1 -1
- package/dist/services/logger/logger-http-utils.js.map +1 -1
- package/dist/services/logger/logger.service.d.ts.map +1 -1
- package/dist/services/logger/logger.service.js +2 -1
- package/dist/services/logger/logger.service.js.map +1 -1
- package/dist/services/logger/trace-field-utils.d.ts.map +1 -1
- package/dist/services/logger/trace-field-utils.js.map +1 -1
- package/dist/services/logger/unified-logger.service.d.ts.map +1 -1
- package/dist/services/logger/unified-logger.service.js.map +1 -1
- package/dist/services/permission.service.d.ts.map +1 -1
- package/dist/services/permission.service.js +6 -2
- package/dist/services/permission.service.js.map +1 -1
- package/dist/services/role.service.d.ts.map +1 -1
- package/dist/services/role.service.js +6 -2
- package/dist/services/role.service.js.map +1 -1
- package/dist/services/token-validation.service.d.ts.map +1 -1
- package/dist/services/token-validation.service.js +4 -2
- package/dist/services/token-validation.service.js.map +1 -1
- package/dist/types/data-client.types.d.ts +25 -5
- package/dist/types/data-client.types.d.ts.map +1 -1
- package/dist/types/data-client.types.js.map +1 -1
- package/dist/types/errors.types.d.ts.map +1 -1
- package/dist/types/filter-schema.types.d.ts.map +1 -1
- package/dist/types/filter-schema.types.js.map +1 -1
- package/dist/utils/audit-log-queue.d.ts.map +1 -1
- package/dist/utils/audit-log-queue.js +3 -1
- package/dist/utils/audit-log-queue.js.map +1 -1
- package/dist/utils/browser-jwt-decoder.d.ts.map +1 -1
- package/dist/utils/browser-jwt-decoder.js +1 -4
- package/dist/utils/browser-jwt-decoder.js.map +1 -1
- package/dist/utils/client-token-manager.d.ts.map +1 -1
- package/dist/utils/client-token-manager.js +9 -3
- package/dist/utils/client-token-manager.js.map +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +16 -9
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/controller-url-resolver.js +4 -4
- package/dist/utils/controller-url-resolver.js.map +1 -1
- package/dist/utils/data-client-audit.d.ts.map +1 -1
- package/dist/utils/data-client-audit.js +26 -6
- package/dist/utils/data-client-audit.js.map +1 -1
- package/dist/utils/data-client-auth.d.ts +7 -0
- package/dist/utils/data-client-auth.d.ts.map +1 -1
- package/dist/utils/data-client-auth.js +62 -3
- package/dist/utils/data-client-auth.js.map +1 -1
- package/dist/utils/data-client-auto-init.d.ts.map +1 -1
- package/dist/utils/data-client-auto-init.js +12 -5
- package/dist/utils/data-client-auto-init.js.map +1 -1
- package/dist/utils/data-client-cache.js +2 -2
- package/dist/utils/data-client-cache.js.map +1 -1
- package/dist/utils/data-client-core.d.ts +82 -0
- package/dist/utils/data-client-core.d.ts.map +1 -0
- package/dist/utils/data-client-core.js +303 -0
- package/dist/utils/data-client-core.js.map +1 -0
- package/dist/utils/data-client-init.d.ts.map +1 -1
- package/dist/utils/data-client-init.js +2 -1
- package/dist/utils/data-client-init.js.map +1 -1
- package/dist/utils/data-client-oauth.d.ts.map +1 -1
- package/dist/utils/data-client-oauth.js +5 -2
- package/dist/utils/data-client-oauth.js.map +1 -1
- package/dist/utils/data-client-redirect.d.ts.map +1 -1
- package/dist/utils/data-client-redirect.js +8 -8
- package/dist/utils/data-client-redirect.js.map +1 -1
- package/dist/utils/data-client-request.d.ts +4 -33
- package/dist/utils/data-client-request.d.ts.map +1 -1
- package/dist/utils/data-client-request.js +80 -43
- package/dist/utils/data-client-request.js.map +1 -1
- package/dist/utils/data-client-request.types.d.ts +68 -0
- package/dist/utils/data-client-request.types.d.ts.map +1 -0
- package/dist/utils/data-client-request.types.js +3 -0
- package/dist/utils/data-client-request.types.js.map +1 -0
- package/dist/utils/data-client-response.d.ts.map +1 -1
- package/dist/utils/data-client-response.js +23 -9
- package/dist/utils/data-client-response.js.map +1 -1
- package/dist/utils/data-client-utils.d.ts.map +1 -1
- package/dist/utils/data-client-utils.js +2 -1
- package/dist/utils/data-client-utils.js.map +1 -1
- package/dist/utils/data-client.d.ts +3 -40
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +21 -242
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/data-masker.d.ts +28 -35
- package/dist/utils/data-masker.d.ts.map +1 -1
- package/dist/utils/data-masker.js +116 -80
- package/dist/utils/data-masker.js.map +1 -1
- package/dist/utils/encryption-error.d.ts +2 -2
- package/dist/utils/encryption-error.js +1 -1
- package/dist/utils/environment-token.d.ts.map +1 -1
- package/dist/utils/environment-token.js +6 -2
- package/dist/utils/environment-token.js.map +1 -1
- package/dist/utils/error-extractor.d.ts.map +1 -1
- package/dist/utils/error-extractor.js +4 -2
- package/dist/utils/error-extractor.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +29 -7
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/filter-colon.utils.d.ts.map +1 -1
- package/dist/utils/filter-colon.utils.js.map +1 -1
- package/dist/utils/filter-schema-loader.d.ts.map +1 -1
- package/dist/utils/filter-schema-loader.js +3 -1
- package/dist/utils/filter-schema-loader.js.map +1 -1
- package/dist/utils/filter-schema.utils.d.ts.map +1 -1
- package/dist/utils/filter-schema.utils.js.map +1 -1
- package/dist/utils/filter.utils.d.ts.map +1 -1
- package/dist/utils/filter.utils.js +11 -4
- package/dist/utils/filter.utils.js.map +1 -1
- package/dist/utils/http-client-audit.d.ts.map +1 -1
- package/dist/utils/http-client-audit.js +51 -14
- package/dist/utils/http-client-audit.js.map +1 -1
- package/dist/utils/http-client-masking.d.ts.map +1 -1
- package/dist/utils/http-client-masking.js +6 -2
- package/dist/utils/http-client-masking.js.map +1 -1
- package/dist/utils/http-client-metadata.d.ts.map +1 -1
- package/dist/utils/http-client-metadata.js.map +1 -1
- package/dist/utils/http-client.d.ts +4 -0
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/http-client.js +135 -2
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/http-error-handler.d.ts.map +1 -1
- package/dist/utils/http-error-handler.js +6 -3
- package/dist/utils/http-error-handler.js.map +1 -1
- package/dist/utils/http-response-validator.d.ts.map +1 -1
- package/dist/utils/http-response-validator.js +5 -2
- package/dist/utils/http-response-validator.js.map +1 -1
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +19 -6
- package/dist/utils/internal-http-client.js.map +1 -1
- package/dist/utils/logging-helpers.d.ts.map +1 -1
- package/dist/utils/logging-helpers.js +2 -1
- package/dist/utils/logging-helpers.js.map +1 -1
- package/dist/utils/sensitive-fields.config.json +27 -55
- package/dist/utils/sensitive-fields.loader.d.ts +27 -16
- package/dist/utils/sensitive-fields.loader.d.ts.map +1 -1
- package/dist/utils/sensitive-fields.loader.js +186 -139
- package/dist/utils/sensitive-fields.loader.js.map +1 -1
- package/dist/utils/token-utils.d.ts.map +1 -1
- package/dist/utils/token-utils.js +3 -3
- package/dist/utils/token-utils.js.map +1 -1
- package/dist/utils/user-token-refresh.d.ts +40 -0
- package/dist/utils/user-token-refresh.d.ts.map +1 -0
- package/dist/utils/user-token-refresh.js +258 -0
- package/dist/utils/user-token-refresh.js.map +1 -0
- package/package.json +18 -1
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UserTokenRefreshManager = exports.ACCESS_TOKEN_EXPIRES_AT_KEYS = exports.REFRESH_TOKEN_KEYS = exports.ACCESS_TOKEN_KEYS = void 0;
|
|
7
|
+
exports.normalizeExpiresAt = normalizeExpiresAt;
|
|
8
|
+
exports.getJwtExpiresAt = getJwtExpiresAt;
|
|
9
|
+
exports.getEffectiveUserTokenRefreshBuffer = getEffectiveUserTokenRefreshBuffer;
|
|
10
|
+
exports.getUserTokenRefreshDueAt = getUserTokenRefreshDueAt;
|
|
11
|
+
exports.isUserTokenRefreshDue = isUserTokenRefreshDue;
|
|
12
|
+
exports.isUserTokenExpired = isUserTokenExpired;
|
|
13
|
+
exports.storeAccessToken = storeAccessToken;
|
|
14
|
+
exports.storeRefreshToken = storeRefreshToken;
|
|
15
|
+
exports.clearStoredAccessToken = clearStoredAccessToken;
|
|
16
|
+
exports.clearStoredRefreshToken = clearStoredRefreshToken;
|
|
17
|
+
exports.clearStoredSessionTokens = clearStoredSessionTokens;
|
|
18
|
+
exports.getStoredRefreshToken = getStoredRefreshToken;
|
|
19
|
+
exports.getUserTokenExpiresAt = getUserTokenExpiresAt;
|
|
20
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
21
|
+
exports.ACCESS_TOKEN_KEYS = [
|
|
22
|
+
"miso_token",
|
|
23
|
+
"token",
|
|
24
|
+
"accessToken",
|
|
25
|
+
"authToken",
|
|
26
|
+
];
|
|
27
|
+
exports.REFRESH_TOKEN_KEYS = [
|
|
28
|
+
"miso:user-refresh-token",
|
|
29
|
+
"refreshToken",
|
|
30
|
+
];
|
|
31
|
+
exports.ACCESS_TOKEN_EXPIRES_AT_KEYS = [
|
|
32
|
+
"miso_token_expires_at",
|
|
33
|
+
"tokenExpiresAt",
|
|
34
|
+
"accessTokenExpiresAt",
|
|
35
|
+
"expiresAt",
|
|
36
|
+
];
|
|
37
|
+
function asNumber(raw) {
|
|
38
|
+
if (typeof raw === "number" && Number.isFinite(raw))
|
|
39
|
+
return raw;
|
|
40
|
+
if (typeof raw === "string" && raw.trim() !== "") {
|
|
41
|
+
const parsed = Number(raw);
|
|
42
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
function readValue(storage, key) {
|
|
47
|
+
return storage[key];
|
|
48
|
+
}
|
|
49
|
+
function writeValue(storage, key, value) {
|
|
50
|
+
storage[key] = value;
|
|
51
|
+
}
|
|
52
|
+
function removeValue(storage, key) {
|
|
53
|
+
delete storage[key];
|
|
54
|
+
}
|
|
55
|
+
function firstString(storage, keys) {
|
|
56
|
+
for (const key of keys) {
|
|
57
|
+
const raw = readValue(storage, key);
|
|
58
|
+
if (typeof raw === "string" && raw.trim() !== "")
|
|
59
|
+
return raw;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
function setAll(storage, keys, value) {
|
|
64
|
+
for (const key of keys) {
|
|
65
|
+
writeValue(storage, key, value);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function clearAll(storage, keys) {
|
|
69
|
+
for (const key of keys) {
|
|
70
|
+
removeValue(storage, key);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function decodeTokenClaims(token) {
|
|
74
|
+
try {
|
|
75
|
+
return jsonwebtoken_1.default.decode(token);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function normalizeExpiresAt(value) {
|
|
82
|
+
if (value === null || value === undefined)
|
|
83
|
+
return null;
|
|
84
|
+
if (value instanceof Date) {
|
|
85
|
+
return Number.isFinite(value.getTime()) ? value : null;
|
|
86
|
+
}
|
|
87
|
+
const numeric = asNumber(value);
|
|
88
|
+
if (numeric !== null) {
|
|
89
|
+
const epochMs = numeric > 1e12 ? numeric : numeric * 1000;
|
|
90
|
+
const date = new Date(epochMs);
|
|
91
|
+
return Number.isFinite(date.getTime()) ? date : null;
|
|
92
|
+
}
|
|
93
|
+
if (typeof value === "string") {
|
|
94
|
+
const normalized = value.endsWith("Z")
|
|
95
|
+
? value.replace(/Z$/, "+00:00")
|
|
96
|
+
: value;
|
|
97
|
+
const date = new Date(normalized);
|
|
98
|
+
return Number.isFinite(date.getTime()) ? date : null;
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
function getJwtExpiresAt(token) {
|
|
103
|
+
if (!token)
|
|
104
|
+
return null;
|
|
105
|
+
const claims = decodeTokenClaims(token);
|
|
106
|
+
if (!claims)
|
|
107
|
+
return null;
|
|
108
|
+
return (normalizeExpiresAt(claims.exp) ||
|
|
109
|
+
normalizeExpiresAt(claims.expiresAt) ||
|
|
110
|
+
normalizeExpiresAt(claims.expires_at));
|
|
111
|
+
}
|
|
112
|
+
function getEffectiveUserTokenRefreshBuffer(expiresAt, defaultBufferSeconds = 300, issuedAt, now = new Date()) {
|
|
113
|
+
const normalizedDefault = Math.max(0, Math.floor(defaultBufferSeconds));
|
|
114
|
+
const expiresAtDate = normalizeExpiresAt(expiresAt);
|
|
115
|
+
if (!expiresAtDate)
|
|
116
|
+
return normalizedDefault;
|
|
117
|
+
const issuedAtDate = normalizeExpiresAt(issuedAt) || now;
|
|
118
|
+
const lifetimeSeconds = Math.floor((expiresAtDate.getTime() - issuedAtDate.getTime()) / 1000);
|
|
119
|
+
if (lifetimeSeconds <= 0)
|
|
120
|
+
return normalizedDefault;
|
|
121
|
+
const adaptive = Math.floor(lifetimeSeconds * 0.1);
|
|
122
|
+
const bounded = Math.min(300, Math.max(15, adaptive));
|
|
123
|
+
return Math.max(normalizedDefault, bounded);
|
|
124
|
+
}
|
|
125
|
+
function getUserTokenRefreshDueAt(expiresAt, defaultBufferSeconds = 300, issuedAt, now = new Date()) {
|
|
126
|
+
const expiresAtDate = normalizeExpiresAt(expiresAt);
|
|
127
|
+
if (!expiresAtDate)
|
|
128
|
+
return null;
|
|
129
|
+
const buffer = getEffectiveUserTokenRefreshBuffer(expiresAtDate, defaultBufferSeconds, issuedAt, now);
|
|
130
|
+
return new Date(expiresAtDate.getTime() - buffer * 1000);
|
|
131
|
+
}
|
|
132
|
+
function isUserTokenRefreshDue(expiresAt, defaultBufferSeconds = 300, issuedAt, now = new Date()) {
|
|
133
|
+
const dueAt = getUserTokenRefreshDueAt(expiresAt, defaultBufferSeconds, issuedAt, now);
|
|
134
|
+
if (!dueAt)
|
|
135
|
+
return false;
|
|
136
|
+
return dueAt.getTime() <= now.getTime();
|
|
137
|
+
}
|
|
138
|
+
function isUserTokenExpired(expiresAt, now = new Date()) {
|
|
139
|
+
const expiresAtDate = normalizeExpiresAt(expiresAt);
|
|
140
|
+
if (!expiresAtDate)
|
|
141
|
+
return false;
|
|
142
|
+
return expiresAtDate.getTime() <= now.getTime();
|
|
143
|
+
}
|
|
144
|
+
function storeAccessToken(storage, token, expiresAt) {
|
|
145
|
+
const previous = firstString(storage, exports.ACCESS_TOKEN_KEYS);
|
|
146
|
+
const nextExpiresAt = normalizeExpiresAt(expiresAt);
|
|
147
|
+
setAll(storage, exports.ACCESS_TOKEN_KEYS, token);
|
|
148
|
+
if (nextExpiresAt) {
|
|
149
|
+
setAll(storage, exports.ACCESS_TOKEN_EXPIRES_AT_KEYS, nextExpiresAt.toISOString());
|
|
150
|
+
return storage;
|
|
151
|
+
}
|
|
152
|
+
if (previous && previous !== token) {
|
|
153
|
+
clearAll(storage, exports.ACCESS_TOKEN_EXPIRES_AT_KEYS);
|
|
154
|
+
}
|
|
155
|
+
return storage;
|
|
156
|
+
}
|
|
157
|
+
function storeRefreshToken(storage, token) {
|
|
158
|
+
setAll(storage, exports.REFRESH_TOKEN_KEYS, token);
|
|
159
|
+
return storage;
|
|
160
|
+
}
|
|
161
|
+
function clearStoredAccessToken(storage) {
|
|
162
|
+
clearAll(storage, exports.ACCESS_TOKEN_KEYS);
|
|
163
|
+
clearAll(storage, exports.ACCESS_TOKEN_EXPIRES_AT_KEYS);
|
|
164
|
+
return storage;
|
|
165
|
+
}
|
|
166
|
+
function clearStoredRefreshToken(storage) {
|
|
167
|
+
clearAll(storage, exports.REFRESH_TOKEN_KEYS);
|
|
168
|
+
return storage;
|
|
169
|
+
}
|
|
170
|
+
function clearStoredSessionTokens(storage) {
|
|
171
|
+
clearStoredAccessToken(storage);
|
|
172
|
+
clearStoredRefreshToken(storage);
|
|
173
|
+
return storage;
|
|
174
|
+
}
|
|
175
|
+
function getStoredRefreshToken(storage) {
|
|
176
|
+
return firstString(storage, exports.REFRESH_TOKEN_KEYS);
|
|
177
|
+
}
|
|
178
|
+
function getUserTokenExpiresAt(storage) {
|
|
179
|
+
const fromMetadata = firstString(storage, exports.ACCESS_TOKEN_EXPIRES_AT_KEYS);
|
|
180
|
+
if (fromMetadata) {
|
|
181
|
+
const parsed = normalizeExpiresAt(fromMetadata);
|
|
182
|
+
if (parsed)
|
|
183
|
+
return parsed;
|
|
184
|
+
}
|
|
185
|
+
const token = firstString(storage, exports.ACCESS_TOKEN_KEYS);
|
|
186
|
+
if (!token)
|
|
187
|
+
return null;
|
|
188
|
+
return getJwtExpiresAt(token);
|
|
189
|
+
}
|
|
190
|
+
class UserTokenRefreshManager {
|
|
191
|
+
constructor() {
|
|
192
|
+
this.stores = new Map();
|
|
193
|
+
this.callbacks = new Map();
|
|
194
|
+
}
|
|
195
|
+
registerRefreshCallback(userId, callback) {
|
|
196
|
+
this.callbacks.set(userId, callback);
|
|
197
|
+
}
|
|
198
|
+
unregisterRefreshCallback(userId) {
|
|
199
|
+
this.callbacks.delete(userId);
|
|
200
|
+
}
|
|
201
|
+
getStore(userId) {
|
|
202
|
+
let store = this.stores.get(userId);
|
|
203
|
+
if (!store) {
|
|
204
|
+
store = {};
|
|
205
|
+
this.stores.set(userId, store);
|
|
206
|
+
}
|
|
207
|
+
return store;
|
|
208
|
+
}
|
|
209
|
+
storeAccessToken(userId, token, expiresAt) {
|
|
210
|
+
storeAccessToken(this.getStore(userId), token, expiresAt);
|
|
211
|
+
}
|
|
212
|
+
storeRefreshToken(userId, token) {
|
|
213
|
+
storeRefreshToken(this.getStore(userId), token);
|
|
214
|
+
}
|
|
215
|
+
clearUserTokens(userId) {
|
|
216
|
+
clearStoredSessionTokens(this.getStore(userId));
|
|
217
|
+
}
|
|
218
|
+
getAccessToken(userId) {
|
|
219
|
+
return firstString(this.getStore(userId), exports.ACCESS_TOKEN_KEYS);
|
|
220
|
+
}
|
|
221
|
+
getRefreshToken(userId) {
|
|
222
|
+
return getStoredRefreshToken(this.getStore(userId));
|
|
223
|
+
}
|
|
224
|
+
getExpiresAt(userId) {
|
|
225
|
+
return getUserTokenExpiresAt(this.getStore(userId));
|
|
226
|
+
}
|
|
227
|
+
async refreshIfDue(userId, defaultBufferSeconds = 300, now = new Date()) {
|
|
228
|
+
const callback = this.callbacks.get(userId);
|
|
229
|
+
if (!callback)
|
|
230
|
+
return null;
|
|
231
|
+
const store = this.getStore(userId);
|
|
232
|
+
const token = firstString(store, exports.ACCESS_TOKEN_KEYS);
|
|
233
|
+
if (!token)
|
|
234
|
+
return null;
|
|
235
|
+
const claims = decodeTokenClaims(token);
|
|
236
|
+
const expiresAt = getUserTokenExpiresAt(store);
|
|
237
|
+
const issuedAt = claims?.iat ?? claims?.issuedAt ?? claims?.issued_at;
|
|
238
|
+
if (expiresAt &&
|
|
239
|
+
!isUserTokenRefreshDue(expiresAt, defaultBufferSeconds, issuedAt, now)) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
const refreshed = await callback();
|
|
244
|
+
if (refreshed?.token) {
|
|
245
|
+
storeAccessToken(store, refreshed.token, refreshed.expiresAt);
|
|
246
|
+
if (refreshed.refreshToken) {
|
|
247
|
+
storeRefreshToken(store, refreshed.refreshToken);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return refreshed;
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
exports.UserTokenRefreshManager = UserTokenRefreshManager;
|
|
258
|
+
//# sourceMappingURL=user-token-refresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-token-refresh.js","sourceRoot":"","sources":["../../src/utils/user-token-refresh.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aifabrix/miso-client",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.12.0",
|
|
4
4
|
"description": "AI Fabrix Client SDK - Authentication, authorization, logging, and Express.js utilities",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -72,17 +72,34 @@
|
|
|
72
72
|
},
|
|
73
73
|
"homepage": "https://github.com/esystemsdev/aifabrix-miso-client",
|
|
74
74
|
"scripts": {
|
|
75
|
+
"silent": "node scripts/run-silent.mjs",
|
|
75
76
|
"build": "tsc && node -e \"require('fs').copyFileSync('src/express/express.d.ts', 'dist/express/express.d.ts')\"",
|
|
77
|
+
"build:silent": "pnpm run silent -- build:silent .temp/validation/01-build \"pnpm run build\"",
|
|
76
78
|
"test": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --runInBand --detectOpenHandles --no-coverage",
|
|
79
|
+
"test:silent": "pnpm run silent -- test:silent .temp/validation/06-test \"pnpm run test\"",
|
|
77
80
|
"test:watch": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --watch",
|
|
78
81
|
"test:coverage": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --coverage",
|
|
79
82
|
"test:no-coverage": "node --unhandled-rejections=warn -r ./tests/setup-rejection-handler.js node_modules/jest/bin/jest.js --no-coverage",
|
|
80
83
|
"test:integration": "ts-node test_integration.ts",
|
|
81
84
|
"test:integration:api": "node --unhandled-rejections=warn node_modules/jest/bin/jest.js tests/integration/api-endpoints.integration.test.ts --maxWorkers=50% --testPathIgnorePatterns=/node_modules/ --forceExit",
|
|
85
|
+
"fmt": "prettier --write . --ignore-path .prettierignore",
|
|
86
|
+
"fmt:silent": "pnpm run silent -- fmt:silent .temp/validation/02-fmt \"pnpm run fmt\"",
|
|
87
|
+
"md:lint": "prettier --check \"**/*.md\" --ignore-path .prettierignore",
|
|
88
|
+
"md:lint:silent": "pnpm run silent -- md:lint:silent .temp/validation/03-md-lint \"pnpm run md:lint\"",
|
|
89
|
+
"md:fix": "prettier --write \"**/*.md\" --ignore-path .prettierignore",
|
|
90
|
+
"md:fix:silent": "pnpm run silent -- md:fix:silent .temp/validation/04-md-fix \"pnpm run md:fix\"",
|
|
82
91
|
"lint": "eslint 'src/**/*.ts' --max-warnings 0 --ignore-pattern '**/*.d.ts'",
|
|
92
|
+
"lint:silent": "pnpm run silent -- lint:silent .temp/validation/05-lint \"pnpm run lint\"",
|
|
83
93
|
"lint:fix": "eslint 'src/**/*.ts' --fix --ignore-pattern '**/*.d.ts'",
|
|
94
|
+
"lint:fix:silent": "pnpm run silent -- lint:fix:silent .temp/validation/05-lint-fix \"pnpm run lint:fix\"",
|
|
84
95
|
"check:forbidden-markers": "node scripts/check-forbidden-trace-markers.js",
|
|
85
96
|
"tests:typecheck": "tsc -p tests/tsconfig.json --noEmit",
|
|
97
|
+
"tests:typecheck:silent": "pnpm run silent -- tests:typecheck:silent .temp/validation/00-tests-typecheck \"pnpm run tests:typecheck\"",
|
|
98
|
+
"server:lint:fix:silent": "pnpm run silent -- server:lint:fix:silent .temp/validation/server-01-lint-fix \"pnpm --dir server run lint:fix\"",
|
|
99
|
+
"server:lint:silent": "pnpm run silent -- server:lint:silent .temp/validation/server-02-lint \"pnpm --dir server run lint\"",
|
|
100
|
+
"server:test:silent": "pnpm run silent -- server:test:silent .temp/validation/server-03-test \"pnpm --dir server run test\"",
|
|
101
|
+
"server:build:silent": "pnpm run silent -- server:build:silent .temp/validation/server-04-build \"pnpm --dir server run build\"",
|
|
102
|
+
"server:start:dev:silent": "pnpm run silent -- --detach server:start:dev:silent .temp/validation/server-05-start-dev \"pnpm --dir server run start:dev\"",
|
|
86
103
|
"all": "pnpm run lint:fix && pnpm run test && pnpm run test:integration:api && pnpm run test:integration && pnpm run build"
|
|
87
104
|
}
|
|
88
105
|
}
|