@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Sensitive fields configuration loader
|
|
4
|
-
*
|
|
3
|
+
* Sensitive fields configuration loader for ISO 27001 compliance.
|
|
4
|
+
* Aligns with miso-client Python `sensitive_fields_loader` / packaged JSON shape.
|
|
5
5
|
*/
|
|
6
6
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
7
|
if (k2 === undefined) k2 = k;
|
|
@@ -40,178 +40,225 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
40
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.HARDCODED_SENSITIVE_FIELDS = void 0;
|
|
44
|
+
exports.normalizeFieldName = normalizeFieldName;
|
|
45
|
+
exports.loadSensitiveFieldsConfigDict = loadSensitiveFieldsConfigDict;
|
|
46
|
+
exports.getSensitiveFieldNamesFromDict = getSensitiveFieldNamesFromDict;
|
|
47
|
+
exports.neverMaskFieldsFromCfg = neverMaskFieldsFromCfg;
|
|
48
|
+
exports.substringMinLengthFromCfg = substringMinLengthFromCfg;
|
|
49
|
+
exports.mergeWithHardcodedDefaultsFromCfg = mergeWithHardcodedDefaultsFromCfg;
|
|
50
|
+
exports.buildMergedSensitiveTokens = buildMergedSensitiveTokens;
|
|
43
51
|
exports.loadSensitiveFieldsConfig = loadSensitiveFieldsConfig;
|
|
44
52
|
exports.getFieldPatterns = getFieldPatterns;
|
|
45
53
|
exports.getSensitiveFieldsArray = getSensitiveFieldsArray;
|
|
46
54
|
const fs = __importStar(require("fs"));
|
|
47
55
|
const path = __importStar(require("path"));
|
|
48
56
|
const sensitive_fields_config_json_1 = __importDefault(require("./sensitive-fields.config.json"));
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
function getDefaultSensitiveFields() {
|
|
53
|
-
return new Set([
|
|
54
|
-
// Authentication & Authorization
|
|
55
|
-
"password",
|
|
56
|
-
"passwd",
|
|
57
|
-
"pwd",
|
|
58
|
-
"secret",
|
|
59
|
-
"token",
|
|
60
|
-
"key",
|
|
61
|
-
"auth",
|
|
62
|
-
"authorization",
|
|
63
|
-
"cookie",
|
|
64
|
-
"session",
|
|
65
|
-
"apikey",
|
|
66
|
-
"accesstoken",
|
|
67
|
-
"refreshtoken",
|
|
68
|
-
// PII (ISO 27001)
|
|
69
|
-
"email",
|
|
70
|
-
"emailaddress",
|
|
71
|
-
"phone",
|
|
72
|
-
"phonenumber",
|
|
73
|
-
"telephone",
|
|
74
|
-
"mobile",
|
|
75
|
-
"cellphone",
|
|
76
|
-
"ssn",
|
|
77
|
-
"socialsecuritynumber",
|
|
78
|
-
"taxid",
|
|
79
|
-
"taxidentification",
|
|
80
|
-
// Financial Information
|
|
81
|
-
"creditcard",
|
|
82
|
-
"cc",
|
|
83
|
-
"cardnumber",
|
|
84
|
-
"cvv",
|
|
85
|
-
"cvv2",
|
|
86
|
-
"cvc",
|
|
87
|
-
"pin",
|
|
88
|
-
"bankaccount",
|
|
89
|
-
"bankaccountnumber",
|
|
90
|
-
"routingnumber",
|
|
91
|
-
"iban",
|
|
92
|
-
"swift",
|
|
93
|
-
"accountnumber",
|
|
94
|
-
// Security & Sensitive Data
|
|
95
|
-
"otp",
|
|
96
|
-
"onetimepassword",
|
|
97
|
-
"privatekey",
|
|
98
|
-
"publickey",
|
|
99
|
-
"encryptionkey",
|
|
100
|
-
"decryptionkey",
|
|
101
|
-
]);
|
|
57
|
+
/** Normalized field name (lowercase, no underscores or hyphens). */
|
|
58
|
+
function normalizeFieldName(field) {
|
|
59
|
+
return field.toLowerCase().replace(/[_-]/g, "");
|
|
102
60
|
}
|
|
103
61
|
/**
|
|
104
|
-
*
|
|
62
|
+
* Hardcoded sensitive tokens when JSON cannot be loaded or mergeWithHardcodedDefaults is true.
|
|
63
|
+
* Omits bare `key` and `cc` to reduce false positives (e.g. datasource `key`, `success`).
|
|
105
64
|
*/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
65
|
+
exports.HARDCODED_SENSITIVE_FIELDS = new Set([
|
|
66
|
+
"password",
|
|
67
|
+
"passwd",
|
|
68
|
+
"pwd",
|
|
69
|
+
"secret",
|
|
70
|
+
"token",
|
|
71
|
+
"auth",
|
|
72
|
+
"authorization",
|
|
73
|
+
"cookie",
|
|
74
|
+
"session",
|
|
75
|
+
"ssn",
|
|
76
|
+
"creditcard",
|
|
77
|
+
"cvv",
|
|
78
|
+
"pin",
|
|
79
|
+
"otp",
|
|
80
|
+
"apikey",
|
|
81
|
+
"accesstoken",
|
|
82
|
+
"refreshtoken",
|
|
83
|
+
"privatekey",
|
|
84
|
+
"secretkey",
|
|
85
|
+
]);
|
|
86
|
+
function isBrowserEnvironment() {
|
|
87
|
+
return (typeof globalThis !== "undefined" &&
|
|
88
|
+
"window" in globalThis &&
|
|
89
|
+
typeof globalThis.window !== "undefined");
|
|
123
90
|
}
|
|
124
|
-
function
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return fieldsFromConfig(config);
|
|
91
|
+
function resolveConfigFilePath(customPath) {
|
|
92
|
+
if (customPath) {
|
|
93
|
+
return path.isAbsolute(customPath)
|
|
94
|
+
? customPath
|
|
95
|
+
: path.resolve(process.cwd(), customPath);
|
|
96
|
+
}
|
|
97
|
+
const envPath = process.env.MISO_SENSITIVE_FIELDS_CONFIG;
|
|
98
|
+
if (envPath) {
|
|
99
|
+
return path.isAbsolute(envPath)
|
|
100
|
+
? envPath
|
|
101
|
+
: path.resolve(process.cwd(), envPath);
|
|
102
|
+
}
|
|
103
|
+
return path.join(__dirname, "sensitive-fields.config.json");
|
|
138
104
|
}
|
|
139
|
-
function
|
|
105
|
+
function readJsonFile(filePath) {
|
|
140
106
|
try {
|
|
141
|
-
const
|
|
142
|
-
|
|
107
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
108
|
+
const parsed = JSON.parse(raw);
|
|
109
|
+
return typeof parsed === "object" &&
|
|
110
|
+
parsed !== null &&
|
|
111
|
+
!Array.isArray(parsed)
|
|
112
|
+
? parsed
|
|
113
|
+
: {};
|
|
143
114
|
}
|
|
144
115
|
catch {
|
|
145
|
-
|
|
146
|
-
return loadConfigFromPath(configPath);
|
|
116
|
+
return {};
|
|
147
117
|
}
|
|
148
118
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Load raw sensitive-fields JSON by priority: customPath, MISO_SENSITIVE_FIELDS_CONFIG, packaged default file, then bundled import.
|
|
121
|
+
*/
|
|
122
|
+
function loadSensitiveFieldsConfigDict(customPath) {
|
|
123
|
+
if (isBrowserEnvironment()) {
|
|
124
|
+
return {};
|
|
125
|
+
}
|
|
126
|
+
if (typeof process === "undefined" || !process.env) {
|
|
127
|
+
return {};
|
|
154
128
|
}
|
|
155
|
-
if (typeof process === "undefined" || !process.env)
|
|
156
|
-
return getDefaultSensitiveFields();
|
|
157
129
|
try {
|
|
158
|
-
const
|
|
159
|
-
if (
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
162
|
-
return
|
|
130
|
+
const filePath = resolveConfigFilePath(customPath);
|
|
131
|
+
if (filePath && fs.existsSync(filePath)) {
|
|
132
|
+
const fromDisk = readJsonFile(filePath);
|
|
133
|
+
if (Object.keys(fromDisk).length > 0) {
|
|
134
|
+
return fromDisk;
|
|
135
|
+
}
|
|
163
136
|
}
|
|
164
|
-
const moduleResult = loadConfigFromModule();
|
|
165
|
-
return moduleResult ?? getDefaultSensitiveFields();
|
|
166
137
|
}
|
|
167
138
|
catch {
|
|
168
|
-
|
|
139
|
+
/* fall through */
|
|
169
140
|
}
|
|
170
|
-
}
|
|
171
|
-
function loadFieldPatternsFromPath(configPath) {
|
|
172
|
-
if (!fs.existsSync(configPath))
|
|
173
|
-
return null;
|
|
174
|
-
const configContent = fs.readFileSync(configPath, "utf8");
|
|
175
|
-
const config = JSON.parse(configContent);
|
|
176
|
-
return config.fieldPatterns || getDefaultFieldPatterns();
|
|
177
|
-
}
|
|
178
|
-
function loadFieldPatternsFromModule() {
|
|
179
141
|
try {
|
|
180
|
-
const
|
|
181
|
-
|
|
142
|
+
const bundled = sensitive_fields_config_json_1.default;
|
|
143
|
+
if (bundled && typeof bundled === "object") {
|
|
144
|
+
return bundled;
|
|
145
|
+
}
|
|
182
146
|
}
|
|
183
147
|
catch {
|
|
184
|
-
|
|
185
|
-
return loadFieldPatternsFromPath(configPath);
|
|
148
|
+
/* fall through */
|
|
186
149
|
}
|
|
150
|
+
return {};
|
|
187
151
|
}
|
|
188
|
-
function
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
152
|
+
function uniqueFieldsPreservingOrder(fields) {
|
|
153
|
+
const seen = new Set();
|
|
154
|
+
const out = [];
|
|
155
|
+
for (const field of fields) {
|
|
156
|
+
const k = field.toLowerCase();
|
|
157
|
+
if (seen.has(k))
|
|
158
|
+
continue;
|
|
159
|
+
seen.add(k);
|
|
160
|
+
out.push(field);
|
|
193
161
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
162
|
+
return out;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Flatten `fields` or legacy `categories` from config into display names (not yet normalized).
|
|
166
|
+
*/
|
|
167
|
+
function getSensitiveFieldNamesFromDict(cfg) {
|
|
168
|
+
const bucket = (cfg.fields ?? cfg.categories);
|
|
169
|
+
if (!bucket || typeof bucket !== "object" || Array.isArray(bucket)) {
|
|
170
|
+
return [];
|
|
171
|
+
}
|
|
172
|
+
const all = [];
|
|
173
|
+
for (const v of Object.values(bucket)) {
|
|
174
|
+
if (Array.isArray(v)) {
|
|
175
|
+
for (const item of v) {
|
|
176
|
+
if (typeof item === "string" && item.trim()) {
|
|
177
|
+
all.push(item);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return uniqueFieldsPreservingOrder(all);
|
|
183
|
+
}
|
|
184
|
+
function neverMaskFieldsFromCfg(cfg) {
|
|
185
|
+
const raw = cfg.neverMaskFields;
|
|
186
|
+
const out = new Set();
|
|
187
|
+
if (!Array.isArray(raw))
|
|
188
|
+
return out;
|
|
189
|
+
for (const x of raw) {
|
|
190
|
+
if (typeof x === "string" && x.trim()) {
|
|
191
|
+
out.add(normalizeFieldName(x));
|
|
202
192
|
}
|
|
203
|
-
|
|
204
|
-
|
|
193
|
+
}
|
|
194
|
+
return out;
|
|
195
|
+
}
|
|
196
|
+
function substringMinLengthFromCfg(cfg) {
|
|
197
|
+
const sm = cfg.substringMinLength ?? 4;
|
|
198
|
+
try {
|
|
199
|
+
const n = Number(sm);
|
|
200
|
+
if (!Number.isFinite(n))
|
|
201
|
+
return 4;
|
|
202
|
+
return Math.max(1, Math.min(Math.trunc(n), 64));
|
|
205
203
|
}
|
|
206
204
|
catch {
|
|
207
|
-
return
|
|
205
|
+
return 4;
|
|
208
206
|
}
|
|
209
207
|
}
|
|
208
|
+
function mergeWithHardcodedDefaultsFromCfg(cfg) {
|
|
209
|
+
return cfg.mergeWithHardcodedDefaults !== false;
|
|
210
|
+
}
|
|
211
|
+
function fieldPatternsFromCfg(cfg) {
|
|
212
|
+
const p = cfg.fieldPatterns;
|
|
213
|
+
return Array.isArray(p)
|
|
214
|
+
? p.filter((x) => typeof x === "string" && x.length > 0)
|
|
215
|
+
: [];
|
|
216
|
+
}
|
|
210
217
|
/**
|
|
211
|
-
*
|
|
218
|
+
* Build merged normalized sensitive tokens (hardcoded + JSON fields + fieldPatterns).
|
|
212
219
|
*/
|
|
220
|
+
function buildMergedSensitiveTokens(cfg) {
|
|
221
|
+
const merge = mergeWithHardcodedDefaultsFromCfg(cfg);
|
|
222
|
+
const merged = new Set();
|
|
223
|
+
if (merge) {
|
|
224
|
+
exports.HARDCODED_SENSITIVE_FIELDS.forEach((f) => merged.add(f));
|
|
225
|
+
}
|
|
226
|
+
for (const field of getSensitiveFieldNamesFromDict(cfg)) {
|
|
227
|
+
merged.add(normalizeFieldName(field));
|
|
228
|
+
}
|
|
229
|
+
for (const pattern of fieldPatternsFromCfg(cfg)) {
|
|
230
|
+
merged.add(normalizeFieldName(pattern));
|
|
231
|
+
}
|
|
232
|
+
if (!merge && merged.size === 0) {
|
|
233
|
+
exports.HARDCODED_SENSITIVE_FIELDS.forEach((f) => merged.add(f));
|
|
234
|
+
}
|
|
235
|
+
return merged;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Merged sensitive field tokens for the resolved config (used by DataMasker helpers).
|
|
239
|
+
*/
|
|
240
|
+
function loadSensitiveFieldsConfig(customPath) {
|
|
241
|
+
if (isBrowserEnvironment()) {
|
|
242
|
+
return new Set(exports.HARDCODED_SENSITIVE_FIELDS);
|
|
243
|
+
}
|
|
244
|
+
if (typeof process === "undefined" || !process.env) {
|
|
245
|
+
return new Set(exports.HARDCODED_SENSITIVE_FIELDS);
|
|
246
|
+
}
|
|
247
|
+
const cfg = loadSensitiveFieldsConfigDict(customPath);
|
|
248
|
+
return buildMergedSensitiveTokens(cfg);
|
|
249
|
+
}
|
|
250
|
+
function getFieldPatterns(customPath) {
|
|
251
|
+
if (isBrowserEnvironment()) {
|
|
252
|
+
return [];
|
|
253
|
+
}
|
|
254
|
+
if (typeof process === "undefined" || !process.env) {
|
|
255
|
+
return [];
|
|
256
|
+
}
|
|
257
|
+
const cfg = loadSensitiveFieldsConfigDict(customPath);
|
|
258
|
+
const fromFile = fieldPatternsFromCfg(cfg);
|
|
259
|
+
return fromFile.length > 0 ? fromFile : [];
|
|
260
|
+
}
|
|
213
261
|
function getSensitiveFieldsArray(customPath) {
|
|
214
|
-
|
|
215
|
-
return Array.from(fieldsSet);
|
|
262
|
+
return Array.from(loadSensitiveFieldsConfig(customPath));
|
|
216
263
|
}
|
|
217
264
|
//# sourceMappingURL=sensitive-fields.loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensitive-fields.loader.js","sourceRoot":"","sources":["../../src/utils/sensitive-fields.loader.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"sensitive-fields.loader.js","sourceRoot":"","sources":["../../src/utils/sensitive-fields.loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../../src/utils/token-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwDD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../../src/utils/token-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwDD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CA2B3E"}
|
|
@@ -19,7 +19,7 @@ function decodeJWT(token) {
|
|
|
19
19
|
if ((0, data_client_utils_1.isBrowser)()) {
|
|
20
20
|
// Browser: use manual base64 decoding
|
|
21
21
|
try {
|
|
22
|
-
const parts = token.split(
|
|
22
|
+
const parts = token.split(".");
|
|
23
23
|
if (parts.length !== 3) {
|
|
24
24
|
return null;
|
|
25
25
|
}
|
|
@@ -27,10 +27,10 @@ function decodeJWT(token) {
|
|
|
27
27
|
let payloadStr = parts[1];
|
|
28
28
|
// Add padding if needed
|
|
29
29
|
while (payloadStr.length % 4) {
|
|
30
|
-
payloadStr +=
|
|
30
|
+
payloadStr += "=";
|
|
31
31
|
}
|
|
32
32
|
// Replace URL-safe characters
|
|
33
|
-
payloadStr = payloadStr.replace(/-/g,
|
|
33
|
+
payloadStr = payloadStr.replace(/-/g, "+").replace(/_/g, "/");
|
|
34
34
|
const decoded = JSON.parse(atob(payloadStr));
|
|
35
35
|
return decoded;
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-utils.js","sourceRoot":"","sources":["../../src/utils/token-utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AA8EH,
|
|
1
|
+
{"version":3,"file":"token-utils.js","sourceRoot":"","sources":["../../src/utils/token-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const ACCESS_TOKEN_KEYS: readonly ["miso_token", "token", "accessToken", "authToken"];
|
|
2
|
+
export declare const REFRESH_TOKEN_KEYS: readonly ["miso:user-refresh-token", "refreshToken"];
|
|
3
|
+
export declare const ACCESS_TOKEN_EXPIRES_AT_KEYS: readonly ["miso_token_expires_at", "tokenExpiresAt", "accessTokenExpiresAt", "expiresAt"];
|
|
4
|
+
export interface TokenStorageMap {
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface RefreshCallbackResult {
|
|
8
|
+
token: string;
|
|
9
|
+
expiresIn?: number;
|
|
10
|
+
expiresAt?: string;
|
|
11
|
+
refreshToken?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function normalizeExpiresAt(value: unknown): Date | null;
|
|
14
|
+
export declare function getJwtExpiresAt(token: string): Date | null;
|
|
15
|
+
export declare function getEffectiveUserTokenRefreshBuffer(expiresAt: unknown, defaultBufferSeconds?: number, issuedAt?: unknown, now?: Date): number;
|
|
16
|
+
export declare function getUserTokenRefreshDueAt(expiresAt: unknown, defaultBufferSeconds?: number, issuedAt?: unknown, now?: Date): Date | null;
|
|
17
|
+
export declare function isUserTokenRefreshDue(expiresAt: unknown, defaultBufferSeconds?: number, issuedAt?: unknown, now?: Date): boolean;
|
|
18
|
+
export declare function isUserTokenExpired(expiresAt: unknown, now?: Date): boolean;
|
|
19
|
+
export declare function storeAccessToken(storage: TokenStorageMap, token: string, expiresAt?: unknown): TokenStorageMap;
|
|
20
|
+
export declare function storeRefreshToken(storage: TokenStorageMap, token: string): TokenStorageMap;
|
|
21
|
+
export declare function clearStoredAccessToken(storage: TokenStorageMap): TokenStorageMap;
|
|
22
|
+
export declare function clearStoredRefreshToken(storage: TokenStorageMap): TokenStorageMap;
|
|
23
|
+
export declare function clearStoredSessionTokens(storage: TokenStorageMap): TokenStorageMap;
|
|
24
|
+
export declare function getStoredRefreshToken(storage: TokenStorageMap): string | null;
|
|
25
|
+
export declare function getUserTokenExpiresAt(storage: TokenStorageMap): Date | null;
|
|
26
|
+
export declare class UserTokenRefreshManager {
|
|
27
|
+
private stores;
|
|
28
|
+
private callbacks;
|
|
29
|
+
registerRefreshCallback(userId: string, callback: () => Promise<RefreshCallbackResult | null>): void;
|
|
30
|
+
unregisterRefreshCallback(userId: string): void;
|
|
31
|
+
private getStore;
|
|
32
|
+
storeAccessToken(userId: string, token: string, expiresAt?: unknown): void;
|
|
33
|
+
storeRefreshToken(userId: string, token: string): void;
|
|
34
|
+
clearUserTokens(userId: string): void;
|
|
35
|
+
getAccessToken(userId: string): string | null;
|
|
36
|
+
getRefreshToken(userId: string): string | null;
|
|
37
|
+
getExpiresAt(userId: string): Date | null;
|
|
38
|
+
refreshIfDue(userId: string, defaultBufferSeconds?: number, now?: Date): Promise<RefreshCallbackResult | null>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=user-token-refresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-token-refresh.d.ts","sourceRoot":"","sources":["../../src/utils/user-token-refresh.ts"],"names":[],"mappings":"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"}
|