@aifabrix/miso-client 4.8.1 → 4.10.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 CHANGED
@@ -5,6 +5,39 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [4.10.0] - 2026-04-15
9
+
10
+ ### Added
11
+
12
+ - **Data masking policy controls** - `sensitive-fields.config.json` supports `neverMaskFields` (normalized-name allowlist) and `substringMinLength` (clamped 1–64, default 4) so audit masking can avoid false positives on common keys such as datasource `key` or `success` while still matching longer sensitive tokens in compound names.
13
+ - **`maskSensitiveData` optional `configPath`** - Per-call override loads that JSON for one invocation without changing global `DataMasker` cache; if the path is missing or not a file, behavior falls back to the default config (`MISO_SENSITIVE_FIELDS_CONFIG` or packaged default).
14
+
15
+ ### Changed
16
+
17
+ - **Hardcoded sensitive-name fallbacks** - Default set no longer treats bare `key` or `cc` as sensitive; prefers explicit security-oriented names. Packaged JSON uses a `fields` map (with `mergeWithHardcodedDefaults`) and entries such as `encryptionkey` / `encryptionKey` alongside authentication, PII, and security groups, aligned with the Python SDK.
18
+ - **`maskValue` middle run** - Masked middle segment length matches Python: at least 8 asterisks, or the full remaining length when longer.
19
+
20
+ ### Technical
21
+
22
+ - **Parity with Python 4.10.0** - Sensitive-fields loader merges `fields` or legacy `categories`, optional `fieldPatterns`, and env/default resolution; `getFieldPatterns()` returns only explicit `fieldPatterns` from config (empty array when unset).
23
+ - **Release version alignment** - Set package version to `4.10.0` in `package.json`.
24
+
25
+ ## [4.9.0] - 2026-03-23
26
+
27
+ ### Changed
28
+
29
+ - **Logs input contract migration (breaking)** - Replaced `application` with `applicationId` for logs query inputs in jobs, stats, and export surfaces.
30
+ - **Type contract alignment** - Updated `JobLogsQueryParams`, `GetLogStatsQueryParams`, and `ExportLogsQueryParams` to use `applicationId`-only filtering.
31
+ - **Documentation alignment** - Updated logs/audit guide and Wave 4 status notes to reflect `applicationId`-only input filtering behavior.
32
+
33
+ ### Fixed
34
+
35
+ - **Regression protection for pass-through filters** - Updated API unit tests to assert `applicationId` is passed through correctly for jobs/stats/export query paths.
36
+
37
+ ### Technical
38
+
39
+ - **Release validation** - Re-ran full validation gates (`tests:typecheck`, `lint:fix`, `lint`, `test`) with final verification loop before version bump.
40
+
8
41
  ## [4.8.1] - 2026-03-13
9
42
 
10
43
  ### Changed
@@ -215,10 +215,10 @@ export interface LogsListQueryParams extends BaseListLogsQueryParams {
215
215
  }
216
216
  /**
217
217
  * Query parameters for job log list endpoints.
218
- * Keeps compatibility with application-name filtering for jobs.
218
+ * Uses id-based application filter.
219
219
  */
220
220
  export interface JobLogsQueryParams extends BaseListLogsQueryParams {
221
- application?: string;
221
+ applicationId?: string;
222
222
  userId?: string;
223
223
  correlationId?: string;
224
224
  }
@@ -245,7 +245,8 @@ export interface PaginatedLogsResponse<T> {
245
245
  */
246
246
  export interface GetLogStatsQueryParams {
247
247
  environment?: string;
248
- application?: string;
248
+ /** Application id filter (serialized as `applicationId` query parameter). */
249
+ applicationId?: string;
249
250
  userId?: string;
250
251
  startDate?: string;
251
252
  endDate?: string;
@@ -328,7 +329,8 @@ export interface ExportLogsQueryParams {
328
329
  type: 'general' | 'audit' | 'jobs';
329
330
  format: 'csv' | 'json';
330
331
  environment?: string;
331
- application?: string;
332
+ /** Application id filter (serialized as `applicationId` query parameter). */
333
+ applicationId?: string;
332
334
  userId?: string;
333
335
  startDate?: string;
334
336
  endDate?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"logs.types.d.ts","sourceRoot":"","sources":["../../../src/api/types/logs.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.types.d.ts","sourceRoot":"","sources":["../../../src/api/types/logs.types.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,41 @@
1
1
  /**
2
- * Data masker utility for client-side sensitive data protection
3
- * Implements ISO 27001 data protection controls
2
+ * Data masker utility for client-side sensitive data protection.
3
+ * Implements ISO 27001 data protection controls; policy from sensitive-fields JSON
4
+ * (optional per-call `configPath` on `maskSensitiveData`).
4
5
  */
6
+ export type MaskSensitiveDataOptions = {
7
+ /** Per-call config file; does not change global DataMasker cache. */
8
+ configPath?: string;
9
+ };
5
10
  export declare class DataMasker {
6
11
  private static readonly MASKED_VALUE;
7
- private static cachedFields;
8
- private static cachedFieldPatterns;
9
- private static configPath;
10
- /**
11
- * Initialize sensitive fields from JSON configuration
12
- * Loads configuration on first use and caches it
13
- */
14
- private static initializeSensitiveFields;
15
- /**
16
- * Get sensitive fields set (lazy loaded from JSON config)
17
- */
18
- private static getSensitiveFields;
19
- /**
20
- * Get field patterns (lazy loaded from JSON config)
21
- */
22
- private static getFieldPatterns;
23
- /**
24
- * Set custom configuration path (call before first use if needed)
25
- */
26
- static setConfigPath(customPath: string): void;
27
- /**
28
- * Check if a field name indicates sensitive data
29
- */
12
+ private static configLoaded;
13
+ private static sensitiveFields;
14
+ private static neverMaskFields;
15
+ private static substringMinLength;
16
+ private static explicitConfigPath;
17
+ private static keyIsSensitive;
18
+ private static loadGlobalConfig;
19
+ /**
20
+ * Set custom path for sensitive fields configuration (global cache).
21
+ * Call before first use, or pass `undefined` to use env / packaged default resolution.
22
+ */
23
+ static setConfigPath(customPath?: string): void;
24
+ private static getGlobalSensitiveFields;
25
+ /** Check if a field name indicates sensitive data (global config). */
30
26
  static isSensitiveField(key: string): boolean;
27
+ private static resolveOptionalConfigPath;
28
+ private static maskRecursive;
31
29
  /**
32
- * Mask sensitive data in objects, arrays, or primitives
33
- * Returns a masked copy without modifying the original
30
+ * Mask sensitive data in objects, arrays, or primitives.
31
+ * Returns a masked copy without modifying the original.
34
32
  */
35
- static maskSensitiveData(data: unknown): unknown;
33
+ static maskSensitiveData(data: unknown, options?: MaskSensitiveDataOptions): unknown;
36
34
  /**
37
- * Mask specific value (useful for masking individual strings)
38
- * @param value - Value to mask.
39
- * @param showFirst - Number of leading characters to keep.
40
- * @param showLast - Number of trailing characters to keep.
35
+ * Mask specific value (useful for masking individual strings).
41
36
  */
42
37
  static maskValue(value: string, showFirst?: number, showLast?: number): string;
43
- /**
44
- * Check if data contains sensitive information
45
- */
38
+ /** Check if data contains sensitive information (global config). */
46
39
  static containsSensitiveData(data: unknown): boolean;
47
40
  }
48
41
  //# sourceMappingURL=data-masker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-masker.d.ts","sourceRoot":"","sources":["../../src/utils/data-masker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAkB;IACtD,OAAO,CAAC,MAAM,CAAC,YAAY,CAA4B;IACvD,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAyB;IAC3D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiC;IAE1D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAoBxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM9C;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAoB7C;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAoChD;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAU,EACrB,QAAQ,GAAE,MAAU,GACnB,MAAM;IAYT;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAwBrD"}
1
+ {"version":3,"file":"data-masker.d.ts","sourceRoot":"","sources":["../../src/utils/data-masker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,MAAM,MAAM,wBAAwB,GAAG;IACrC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAEtD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IACpC,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;IACxD,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;IACxD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAK;IACtC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAqB;IAEtD,OAAO,CAAC,MAAM,CAAC,cAAc;IAqB7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAS/C,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAKvC,sEAAsE;IACtE,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAU7C,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAUxC,OAAO,CAAC,MAAM,CAAC,aAAa;IA4B5B;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CACtB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO;IA0BV;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAU,EACrB,QAAQ,GAAE,MAAU,GACnB,MAAM;IAgBT,oEAAoE;IACpE,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAwBrD"}
@@ -1,127 +1,162 @@
1
1
  "use strict";
2
2
  /**
3
- * Data masker utility for client-side sensitive data protection
4
- * Implements ISO 27001 data protection controls
3
+ * Data masker utility for client-side sensitive data protection.
4
+ * Implements ISO 27001 data protection controls; policy from sensitive-fields JSON
5
+ * (optional per-call `configPath` on `maskSensitiveData`).
5
6
  */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
6
40
  Object.defineProperty(exports, "__esModule", { value: true });
7
41
  exports.DataMasker = void 0;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
8
44
  const sensitive_fields_loader_1 = require("./sensitive-fields.loader");
9
45
  class DataMasker {
10
- /**
11
- * Initialize sensitive fields from JSON configuration
12
- * Loads configuration on first use and caches it
13
- */
14
- static initializeSensitiveFields(customPath) {
15
- // If config path changed, reload
16
- if (this.configPath !== customPath) {
17
- this.cachedFields = null;
18
- this.cachedFieldPatterns = null;
19
- this.configPath = customPath;
46
+ static keyIsSensitive(key, sensitiveFields, neverMask, substrMin) {
47
+ const nk = (0, sensitive_fields_loader_1.normalizeFieldName)(key);
48
+ if (neverMask.has(nk)) {
49
+ return false;
20
50
  }
21
- // Return cached if available
22
- if (this.cachedFields) {
23
- return this.cachedFields;
51
+ if (sensitiveFields.has(nk)) {
52
+ return true;
24
53
  }
25
- // Load from JSON config (with fallback to defaults)
26
- this.cachedFields = (0, sensitive_fields_loader_1.loadSensitiveFieldsConfig)(customPath);
27
- this.cachedFieldPatterns = (0, sensitive_fields_loader_1.getFieldPatterns)(customPath);
28
- return this.cachedFields;
29
- }
30
- /**
31
- * Get sensitive fields set (lazy loaded from JSON config)
32
- */
33
- static getSensitiveFields() {
34
- return this.initializeSensitiveFields(this.configPath);
54
+ for (const sf of sensitiveFields) {
55
+ if (sf.length >= substrMin && nk.includes(sf)) {
56
+ return true;
57
+ }
58
+ }
59
+ return false;
35
60
  }
36
- /**
37
- * Get field patterns (lazy loaded from JSON config)
38
- */
39
- static getFieldPatterns() {
40
- if (!this.cachedFieldPatterns) {
41
- this.cachedFieldPatterns = (0, sensitive_fields_loader_1.getFieldPatterns)(this.configPath);
61
+ static loadGlobalConfig() {
62
+ if (this.configLoaded) {
63
+ return;
42
64
  }
43
- return this.cachedFieldPatterns;
65
+ const cfg = (0, sensitive_fields_loader_1.loadSensitiveFieldsConfigDict)(this.explicitConfigPath);
66
+ this.sensitiveFields = (0, sensitive_fields_loader_1.buildMergedSensitiveTokens)(cfg);
67
+ this.neverMaskFields = (0, sensitive_fields_loader_1.neverMaskFieldsFromCfg)(cfg);
68
+ this.substringMinLength = (0, sensitive_fields_loader_1.substringMinLengthFromCfg)(cfg);
69
+ this.configLoaded = true;
44
70
  }
45
71
  /**
46
- * Set custom configuration path (call before first use if needed)
72
+ * Set custom path for sensitive fields configuration (global cache).
73
+ * Call before first use, or pass `undefined` to use env / packaged default resolution.
47
74
  */
48
75
  static setConfigPath(customPath) {
49
- this.configPath = customPath;
50
- this.cachedFields = null;
51
- this.cachedFieldPatterns = null;
76
+ this.configLoaded = false;
77
+ this.explicitConfigPath = customPath;
78
+ this.sensitiveFields = new Set();
79
+ this.neverMaskFields = new Set();
80
+ this.substringMinLength = 4;
81
+ this.loadGlobalConfig();
52
82
  }
53
- /**
54
- * Check if a field name indicates sensitive data
55
- */
83
+ static getGlobalSensitiveFields() {
84
+ this.loadGlobalConfig();
85
+ return this.sensitiveFields;
86
+ }
87
+ /** Check if a field name indicates sensitive data (global config). */
56
88
  static isSensitiveField(key) {
57
- const sensitiveFields = this.getSensitiveFields();
58
- const fieldPatterns = this.getFieldPatterns();
59
- const lowerKey = key.toLowerCase().replace(/[_-]/g, "");
60
- // Check exact match
61
- if (sensitiveFields.has(lowerKey)) {
62
- return true;
63
- }
64
- // Check if field contains sensitive keywords (from fieldPatterns)
65
- for (const pattern of fieldPatterns) {
66
- if (lowerKey.includes(pattern.toLowerCase())) {
67
- return true;
68
- }
89
+ this.loadGlobalConfig();
90
+ return this.keyIsSensitive(key, this.sensitiveFields, this.neverMaskFields, this.substringMinLength);
91
+ }
92
+ static resolveOptionalConfigPath(configPath) {
93
+ const resolved = path.isAbsolute(configPath)
94
+ ? configPath
95
+ : path.resolve(process.cwd(), configPath);
96
+ if (!fs.existsSync(resolved) || !fs.statSync(resolved).isFile()) {
97
+ return null;
69
98
  }
70
- return false;
99
+ return resolved;
71
100
  }
72
- /**
73
- * Mask sensitive data in objects, arrays, or primitives
74
- * Returns a masked copy without modifying the original
75
- */
76
- static maskSensitiveData(data) {
77
- // Handle null and undefined
101
+ static maskRecursive(data, isSensitive) {
78
102
  if (data === null || data === undefined) {
79
103
  return data;
80
104
  }
81
- // Handle primitives (string, number, boolean)
82
105
  if (typeof data !== "object") {
83
106
  return data;
84
107
  }
85
- // Handle arrays
86
108
  if (Array.isArray(data)) {
87
- return data.map((item) => this.maskSensitiveData(item));
109
+ return data.map((item) => this.maskRecursive(item, isSensitive));
88
110
  }
89
- // Handle objects
90
111
  const masked = {};
91
112
  for (const [key, value] of Object.entries(data)) {
92
- if (this.isSensitiveField(key)) {
93
- // Mask sensitive field
113
+ if (isSensitive(key)) {
94
114
  masked[key] = this.MASKED_VALUE;
95
115
  }
96
116
  else if (typeof value === "object" && value !== null) {
97
- // Recursively mask nested objects
98
- masked[key] = this.maskSensitiveData(value);
117
+ masked[key] = this.maskRecursive(value, isSensitive);
99
118
  }
100
119
  else {
101
- // Keep non-sensitive value as-is
102
120
  masked[key] = value;
103
121
  }
104
122
  }
105
123
  return masked;
106
124
  }
107
125
  /**
108
- * Mask specific value (useful for masking individual strings)
109
- * @param value - Value to mask.
110
- * @param showFirst - Number of leading characters to keep.
111
- * @param showLast - Number of trailing characters to keep.
126
+ * Mask sensitive data in objects, arrays, or primitives.
127
+ * Returns a masked copy without modifying the original.
128
+ */
129
+ static maskSensitiveData(data, options) {
130
+ if (options?.configPath) {
131
+ const resolved = this.resolveOptionalConfigPath(options.configPath);
132
+ if (!resolved) {
133
+ return this.maskSensitiveData(data);
134
+ }
135
+ const cfg = (0, sensitive_fields_loader_1.loadSensitiveFieldsConfigDict)(resolved);
136
+ const sens = (0, sensitive_fields_loader_1.buildMergedSensitiveTokens)(cfg);
137
+ const never = (0, sensitive_fields_loader_1.neverMaskFieldsFromCfg)(cfg);
138
+ const substrMin = (0, sensitive_fields_loader_1.substringMinLengthFromCfg)(cfg);
139
+ const isSens = (k) => this.keyIsSensitive(k, sens, never, substrMin);
140
+ return this.maskRecursive(data, isSens);
141
+ }
142
+ this.loadGlobalConfig();
143
+ const isSens = (k) => this.keyIsSensitive(k, this.sensitiveFields, this.neverMaskFields, this.substringMinLength);
144
+ return this.maskRecursive(data, isSens);
145
+ }
146
+ /**
147
+ * Mask specific value (useful for masking individual strings).
112
148
  */
113
149
  static maskValue(value, showFirst = 0, showLast = 0) {
114
150
  if (!value || value.length <= showFirst + showLast) {
115
151
  return this.MASKED_VALUE;
116
152
  }
117
- const first = value.substring(0, showFirst);
118
- const last = value.substring(value.length - showLast);
119
- const masked = "*".repeat(Math.min(8, value.length - showFirst - showLast));
153
+ const first = showFirst > 0 ? value.substring(0, showFirst) : "";
154
+ const last = showLast > 0 ? value.substring(value.length - showLast) : "";
155
+ const maskedLength = Math.max(8, value.length - showFirst - showLast);
156
+ const masked = "*".repeat(maskedLength);
120
157
  return `${first}${masked}${last}`;
121
158
  }
122
- /**
123
- * Check if data contains sensitive information
124
- */
159
+ /** Check if data contains sensitive information (global config). */
125
160
  static containsSensitiveData(data) {
126
161
  if (data === null || data === undefined || typeof data !== "object") {
127
162
  return false;
@@ -144,7 +179,8 @@ class DataMasker {
144
179
  }
145
180
  exports.DataMasker = DataMasker;
146
181
  DataMasker.MASKED_VALUE = "***MASKED***";
147
- DataMasker.cachedFields = null;
148
- DataMasker.cachedFieldPatterns = null;
149
- DataMasker.configPath = undefined;
182
+ DataMasker.configLoaded = false;
183
+ DataMasker.sensitiveFields = new Set();
184
+ DataMasker.neverMaskFields = new Set();
185
+ DataMasker.substringMinLength = 4;
150
186
  //# sourceMappingURL=data-masker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-masker.js","sourceRoot":"","sources":["../../src/utils/data-masker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-masker.js","sourceRoot":"","sources":["../../src/utils/data-masker.ts"],"names":[],"mappings":"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"}
@@ -1,67 +1,45 @@
1
1
  {
2
- "version": "1.0.0",
3
- "description": "ISO 27001 compliant sensitive fields configuration for data masking",
4
- "categories": {
2
+ "mergeWithHardcodedDefaults": true,
3
+ "substringMinLength": 4,
4
+ "neverMaskFields": [
5
+ "success",
6
+ "key",
7
+ "message",
8
+ "status",
9
+ "error",
10
+ "hint",
11
+ "code",
12
+ "name",
13
+ "id"
14
+ ],
15
+ "fields": {
5
16
  "authentication": [
6
17
  "password",
7
18
  "passwd",
8
19
  "pwd",
9
- "secret",
10
20
  "token",
11
- "key",
21
+ "secret",
12
22
  "auth",
13
- "authorization",
14
- "cookie",
15
- "session",
16
- "apiKey",
17
- "accessToken",
18
- "refreshToken"
23
+ "authorization"
19
24
  ],
20
25
  "pii": [
21
- "email",
22
- "emailAddress",
23
- "phone",
24
- "phoneNumber",
25
- "telephone",
26
- "mobile",
27
- "cellPhone",
28
26
  "ssn",
29
- "socialSecurityNumber",
30
- "taxId",
31
- "taxIdentification"
32
- ],
33
- "financial": [
34
- "creditCard",
35
- "cc",
36
- "cardNumber",
27
+ "creditcard",
37
28
  "cvv",
38
- "cvv2",
39
- "cvc",
40
29
  "pin",
41
- "bankAccount",
42
- "bankAccountNumber",
43
- "routingNumber",
44
- "iban",
45
- "swift",
46
- "accountNumber"
30
+ "otp"
47
31
  ],
48
32
  "security": [
49
- "otp",
50
- "oneTimePassword",
51
- "privateKey",
52
- "publicKey",
53
- "encryptionKey",
54
- "decryptionKey"
33
+ "apikey",
34
+ "accesstoken",
35
+ "refreshtoken",
36
+ "privatekey",
37
+ "secretkey",
38
+ "cookie",
39
+ "session",
40
+ "encryptionkey",
41
+ "encryptionKey"
55
42
  ]
56
43
  },
57
- "fieldPatterns": [
58
- "password",
59
- "secret",
60
- "token",
61
- "key",
62
- "ssn",
63
- "creditcard",
64
- "bankaccount",
65
- "accountnumber"
66
- ]
44
+ "fieldPatterns": []
67
45
  }
@@ -1,22 +1,33 @@
1
1
  /**
2
- * Sensitive fields configuration loader
3
- * Loads ISO 27001 compliant sensitive fields from JSON configuration file
2
+ * Sensitive fields configuration loader for ISO 27001 compliance.
3
+ * Aligns with miso-client Python `sensitive_fields_loader` / packaged JSON shape.
4
4
  */
5
- export interface SensitiveFieldsConfig {
6
- version: string;
7
- description: string;
8
- categories: {
9
- authentication: string[];
10
- pii: string[];
11
- financial: string[];
12
- security: string[];
13
- };
14
- fieldPatterns: string[];
15
- }
16
- export declare function loadSensitiveFieldsConfig(customPath?: string): Set<string>;
17
- export declare function getFieldPatterns(customPath?: string): string[];
5
+ /** Normalized field name (lowercase, no underscores or hyphens). */
6
+ export declare function normalizeFieldName(field: string): string;
7
+ /**
8
+ * Hardcoded sensitive tokens when JSON cannot be loaded or mergeWithHardcodedDefaults is true.
9
+ * Omits bare `key` and `cc` to reduce false positives (e.g. datasource `key`, `success`).
10
+ */
11
+ export declare const HARDCODED_SENSITIVE_FIELDS: ReadonlySet<string>;
12
+ /**
13
+ * Load raw sensitive-fields JSON by priority: customPath, MISO_SENSITIVE_FIELDS_CONFIG, packaged default file, then bundled import.
14
+ */
15
+ export declare function loadSensitiveFieldsConfigDict(customPath?: string): Record<string, unknown>;
18
16
  /**
19
- * Get all sensitive fields as array (for DataMasker)
17
+ * Flatten `fields` or legacy `categories` from config into display names (not yet normalized).
20
18
  */
19
+ export declare function getSensitiveFieldNamesFromDict(cfg: Record<string, unknown>): string[];
20
+ export declare function neverMaskFieldsFromCfg(cfg: Record<string, unknown>): Set<string>;
21
+ export declare function substringMinLengthFromCfg(cfg: Record<string, unknown>): number;
22
+ export declare function mergeWithHardcodedDefaultsFromCfg(cfg: Record<string, unknown>): boolean;
23
+ /**
24
+ * Build merged normalized sensitive tokens (hardcoded + JSON fields + fieldPatterns).
25
+ */
26
+ export declare function buildMergedSensitiveTokens(cfg: Record<string, unknown>): Set<string>;
27
+ /**
28
+ * Merged sensitive field tokens for the resolved config (used by DataMasker helpers).
29
+ */
30
+ export declare function loadSensitiveFieldsConfig(customPath?: string): Set<string>;
31
+ export declare function getFieldPatterns(customPath?: string): string[];
21
32
  export declare function getSensitiveFieldsArray(customPath?: string): string[];
22
33
  //# sourceMappingURL=sensitive-fields.loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sensitive-fields.loader.d.ts","sourceRoot":"","sources":["../../src/utils/sensitive-fields.loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAyGD,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAkB1E;AAmBD,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAGrE"}
1
+ {"version":3,"file":"sensitive-fields.loader.d.ts","sourceRoot":"","sources":["../../src/utils/sensitive-fields.loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAoBzD,CAAC;AAqCH;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzB;AAcD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,EAAE,CAgBV;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,GAAG,CAAC,MAAM,CAAC,CAUb;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CASR;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAET;AASD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,GAAG,CAAC,MAAM,CAAC,CAqBb;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAU1E;AAED,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAW9D;AAED,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAErE"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
- * Sensitive fields configuration loader
4
- * Loads ISO 27001 compliant sensitive fields from JSON configuration file
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,223 @@ 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
- * Get default sensitive fields (fallback if JSON file cannot be loaded)
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
- * Get default field patterns (fallback if JSON file cannot be loaded)
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
- function getDefaultFieldPatterns() {
107
- return [
108
- "password",
109
- "secret",
110
- "token",
111
- "key",
112
- "ssn",
113
- "creditcard",
114
- "bankaccount",
115
- "accountnumber",
116
- ];
117
- }
118
- function resolveConfigPath(customPath) {
119
- const envPath = customPath || process.env.MISO_SENSITIVE_FIELDS_CONFIG;
120
- if (!envPath)
121
- return null;
122
- return path.isAbsolute(envPath) ? envPath : path.resolve(process.cwd(), envPath);
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 fieldsFromConfig(config) {
125
- const allFields = new Set();
126
- Object.values(config.categories).forEach((fields) => {
127
- fields.forEach((field) => allFields.add(field.toLowerCase()));
128
- });
129
- getDefaultSensitiveFields().forEach((field) => allFields.add(field));
130
- return allFields;
131
- }
132
- function loadConfigFromPath(configPath) {
133
- if (!fs.existsSync(configPath))
134
- return null;
135
- const configContent = fs.readFileSync(configPath, "utf8");
136
- const config = JSON.parse(configContent);
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 loadConfigFromModule() {
105
+ function readJsonFile(filePath) {
140
106
  try {
141
- const config = sensitive_fields_config_json_1.default;
142
- return fieldsFromConfig(config);
107
+ const raw = fs.readFileSync(filePath, "utf8");
108
+ const parsed = JSON.parse(raw);
109
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
110
+ ? parsed
111
+ : {};
143
112
  }
144
113
  catch {
145
- const configPath = path.join(__dirname, "sensitive-fields.config.json");
146
- return loadConfigFromPath(configPath);
114
+ return {};
147
115
  }
148
116
  }
149
- function loadSensitiveFieldsConfig(customPath) {
150
- if (typeof globalThis !== "undefined" && "window" in globalThis) {
151
- const globalWindow = globalThis.window;
152
- if (typeof globalWindow !== "undefined")
153
- return getDefaultSensitiveFields();
117
+ /**
118
+ * Load raw sensitive-fields JSON by priority: customPath, MISO_SENSITIVE_FIELDS_CONFIG, packaged default file, then bundled import.
119
+ */
120
+ function loadSensitiveFieldsConfigDict(customPath) {
121
+ if (isBrowserEnvironment()) {
122
+ return {};
123
+ }
124
+ if (typeof process === "undefined" || !process.env) {
125
+ return {};
154
126
  }
155
- if (typeof process === "undefined" || !process.env)
156
- return getDefaultSensitiveFields();
157
127
  try {
158
- const configPath = resolveConfigPath(customPath);
159
- if (configPath) {
160
- const result = loadConfigFromPath(configPath);
161
- if (result)
162
- return result;
128
+ const filePath = resolveConfigFilePath(customPath);
129
+ if (filePath && fs.existsSync(filePath)) {
130
+ const fromDisk = readJsonFile(filePath);
131
+ if (Object.keys(fromDisk).length > 0) {
132
+ return fromDisk;
133
+ }
163
134
  }
164
- const moduleResult = loadConfigFromModule();
165
- return moduleResult ?? getDefaultSensitiveFields();
166
135
  }
167
136
  catch {
168
- return getDefaultSensitiveFields();
137
+ /* fall through */
169
138
  }
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
139
  try {
180
- const config = sensitive_fields_config_json_1.default;
181
- return config.fieldPatterns || getDefaultFieldPatterns();
140
+ const bundled = sensitive_fields_config_json_1.default;
141
+ if (bundled && typeof bundled === "object") {
142
+ return bundled;
143
+ }
182
144
  }
183
145
  catch {
184
- const configPath = path.join(__dirname, "sensitive-fields.config.json");
185
- return loadFieldPatternsFromPath(configPath);
146
+ /* fall through */
186
147
  }
148
+ return {};
187
149
  }
188
- function getFieldPatterns(customPath) {
189
- if (typeof globalThis !== "undefined" && "window" in globalThis) {
190
- const globalWindow = globalThis.window;
191
- if (typeof globalWindow !== "undefined")
192
- return getDefaultFieldPatterns();
150
+ function uniqueFieldsPreservingOrder(fields) {
151
+ const seen = new Set();
152
+ const out = [];
153
+ for (const field of fields) {
154
+ const k = field.toLowerCase();
155
+ if (seen.has(k))
156
+ continue;
157
+ seen.add(k);
158
+ out.push(field);
193
159
  }
194
- if (typeof process === "undefined" || !process.env)
195
- return getDefaultFieldPatterns();
196
- try {
197
- const configPath = resolveConfigPath(customPath);
198
- if (configPath) {
199
- const result = loadFieldPatternsFromPath(configPath);
200
- if (result)
201
- return result;
160
+ return out;
161
+ }
162
+ /**
163
+ * Flatten `fields` or legacy `categories` from config into display names (not yet normalized).
164
+ */
165
+ function getSensitiveFieldNamesFromDict(cfg) {
166
+ const bucket = (cfg.fields ?? cfg.categories);
167
+ if (!bucket || typeof bucket !== "object" || Array.isArray(bucket)) {
168
+ return [];
169
+ }
170
+ const all = [];
171
+ for (const v of Object.values(bucket)) {
172
+ if (Array.isArray(v)) {
173
+ for (const item of v) {
174
+ if (typeof item === "string" && item.trim()) {
175
+ all.push(item);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ return uniqueFieldsPreservingOrder(all);
181
+ }
182
+ function neverMaskFieldsFromCfg(cfg) {
183
+ const raw = cfg.neverMaskFields;
184
+ const out = new Set();
185
+ if (!Array.isArray(raw))
186
+ return out;
187
+ for (const x of raw) {
188
+ if (typeof x === "string" && x.trim()) {
189
+ out.add(normalizeFieldName(x));
202
190
  }
203
- const moduleResult = loadFieldPatternsFromModule();
204
- return moduleResult ?? getDefaultFieldPatterns();
191
+ }
192
+ return out;
193
+ }
194
+ function substringMinLengthFromCfg(cfg) {
195
+ const sm = cfg.substringMinLength ?? 4;
196
+ try {
197
+ const n = Number(sm);
198
+ if (!Number.isFinite(n))
199
+ return 4;
200
+ return Math.max(1, Math.min(Math.trunc(n), 64));
205
201
  }
206
202
  catch {
207
- return getDefaultFieldPatterns();
203
+ return 4;
208
204
  }
209
205
  }
206
+ function mergeWithHardcodedDefaultsFromCfg(cfg) {
207
+ return cfg.mergeWithHardcodedDefaults !== false;
208
+ }
209
+ function fieldPatternsFromCfg(cfg) {
210
+ const p = cfg.fieldPatterns;
211
+ return Array.isArray(p)
212
+ ? p.filter((x) => typeof x === "string" && x.length > 0)
213
+ : [];
214
+ }
210
215
  /**
211
- * Get all sensitive fields as array (for DataMasker)
216
+ * Build merged normalized sensitive tokens (hardcoded + JSON fields + fieldPatterns).
212
217
  */
218
+ function buildMergedSensitiveTokens(cfg) {
219
+ const merge = mergeWithHardcodedDefaultsFromCfg(cfg);
220
+ const merged = new Set();
221
+ if (merge) {
222
+ exports.HARDCODED_SENSITIVE_FIELDS.forEach((f) => merged.add(f));
223
+ }
224
+ for (const field of getSensitiveFieldNamesFromDict(cfg)) {
225
+ merged.add(normalizeFieldName(field));
226
+ }
227
+ for (const pattern of fieldPatternsFromCfg(cfg)) {
228
+ merged.add(normalizeFieldName(pattern));
229
+ }
230
+ if (!merge && merged.size === 0) {
231
+ exports.HARDCODED_SENSITIVE_FIELDS.forEach((f) => merged.add(f));
232
+ }
233
+ return merged;
234
+ }
235
+ /**
236
+ * Merged sensitive field tokens for the resolved config (used by DataMasker helpers).
237
+ */
238
+ function loadSensitiveFieldsConfig(customPath) {
239
+ if (isBrowserEnvironment()) {
240
+ return new Set(exports.HARDCODED_SENSITIVE_FIELDS);
241
+ }
242
+ if (typeof process === "undefined" || !process.env) {
243
+ return new Set(exports.HARDCODED_SENSITIVE_FIELDS);
244
+ }
245
+ const cfg = loadSensitiveFieldsConfigDict(customPath);
246
+ return buildMergedSensitiveTokens(cfg);
247
+ }
248
+ function getFieldPatterns(customPath) {
249
+ if (isBrowserEnvironment()) {
250
+ return [];
251
+ }
252
+ if (typeof process === "undefined" || !process.env) {
253
+ return [];
254
+ }
255
+ const cfg = loadSensitiveFieldsConfigDict(customPath);
256
+ const fromFile = fieldPatternsFromCfg(cfg);
257
+ return fromFile.length > 0 ? fromFile : [];
258
+ }
213
259
  function getSensitiveFieldsArray(customPath) {
214
- const fieldsSet = loadSensitiveFieldsConfig(customPath);
215
- return Array.from(fieldsSet);
260
+ return Array.from(loadSensitiveFieldsConfig(customPath));
216
261
  }
217
262
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHH,8DAkBC;AAmBD,4CAkBC;AAKD,0DAGC;AAtLD,uCAAyB;AACzB,2CAA6B;AAC7B,kGAA2D;AAc3D;;GAEG;AACH,SAAS,yBAAyB;IAChC,OAAO,IAAI,GAAG,CAAC;QACb,iCAAiC;QACjC,UAAU;QACV,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,eAAe;QACf,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,OAAO;QACP,cAAc;QACd,OAAO;QACP,aAAa;QACb,WAAW;QACX,QAAQ;QACR,WAAW;QACX,KAAK;QACL,sBAAsB;QACtB,OAAO;QACP,mBAAmB;QACnB,wBAAwB;QACxB,YAAY;QACZ,IAAI;QACJ,YAAY;QACZ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,aAAa;QACb,mBAAmB;QACnB,eAAe;QACf,MAAM;QACN,OAAO;QACP,eAAe;QACf,4BAA4B;QAC5B,KAAK;QACL,iBAAiB;QACjB,YAAY;QACZ,WAAW;QACX,eAAe;QACf,eAAe;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB;IAC9B,OAAO;QACL,UAAU;QACV,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,YAAY;QACZ,aAAa;QACb,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAmB;IAC5C,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IACvE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA6B;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC5D,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,yBAAyB,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,MAAM,GAA0B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,sCAAiD,CAAC;QACjE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;QACxE,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAgB,yBAAyB,CAAC,UAAmB;IAC3D,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChE,MAAM,YAAY,GAAI,UAAsC,CAAC,MAAM,CAAC;QACpE,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO,yBAAyB,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,yBAAyB,EAAE,CAAC;IAEvF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QACD,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;QAC5C,OAAO,YAAY,IAAI,yBAAyB,EAAE,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,yBAAyB,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,UAAkB;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,MAAM,GAA0B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,aAAa,IAAI,uBAAuB,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,2BAA2B;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,sCAAiD,CAAC;QACjE,OAAO,MAAM,CAAC,aAAa,IAAI,uBAAuB,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;QACxE,OAAO,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,UAAmB;IAClD,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChE,MAAM,YAAY,GAAI,UAAsC,CAAC,MAAM,CAAC;QACpE,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO,uBAAuB,EAAE,CAAC;IAC5E,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,uBAAuB,EAAE,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QACD,MAAM,YAAY,GAAG,2BAA2B,EAAE,CAAC;QACnD,OAAO,YAAY,IAAI,uBAAuB,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,uBAAuB,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,UAAmB;IACzD,MAAM,SAAS,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"sensitive-fields.loader.js","sourceRoot":"","sources":["../../src/utils/sensitive-fields.loader.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.8.1",
3
+ "version": "4.10.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",