@artu-ai/compliance-sdk 0.12.4 → 0.13.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/README.md +0 -3
- package/dist/exports/index.d.ts +5 -3
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/index.js +3 -5
- package/dist/exports/mx/av/ari.d.ts +11 -6
- package/dist/exports/mx/av/ari.d.ts.map +1 -1
- package/dist/exports/mx/av/ari.js +9 -5
- package/dist/exports/mx/av/avi.d.ts +11 -6
- package/dist/exports/mx/av/avi.d.ts.map +1 -1
- package/dist/exports/mx/av/avi.js +9 -5
- package/dist/exports/mx/av/jys.d.ts +11 -6
- package/dist/exports/mx/av/jys.d.ts.map +1 -1
- package/dist/exports/mx/av/jys.js +9 -5
- package/dist/exports/mx/av/mjr.d.ts +11 -6
- package/dist/exports/mx/av/mjr.d.ts.map +1 -1
- package/dist/exports/mx/av/mjr.js +9 -5
- package/dist/exports/mx/av/tsc.d.ts +11 -6
- package/dist/exports/mx/av/tsc.d.ts.map +1 -1
- package/dist/exports/mx/av/tsc.js +9 -5
- package/dist/exports/mx/cnbv/transmisor.d.ts +11 -6
- package/dist/exports/mx/cnbv/transmisor.d.ts.map +1 -1
- package/dist/exports/mx/cnbv/transmisor.js +9 -5
- package/dist/exports/mx/index.d.ts +5 -4
- package/dist/exports/mx/index.d.ts.map +1 -1
- package/dist/exports/mx/index.js +3 -5
- package/dist/models/Alert.d.ts +5 -1
- package/dist/models/Alert.d.ts.map +1 -1
- package/dist/models/Alert.js +6 -0
- package/dist/models/Client.d.ts +60 -1
- package/dist/models/Client.d.ts.map +1 -1
- package/dist/models/Client.js +109 -0
- package/dist/models/Product.d.ts +86 -0
- package/dist/models/Product.d.ts.map +1 -0
- package/dist/models/Product.js +128 -0
- package/dist/models/Rule.d.ts +5 -1
- package/dist/models/Rule.d.ts.map +1 -1
- package/dist/models/Rule.js +6 -0
- package/dist/models/RuleEvaluation.d.ts +1 -0
- package/dist/models/RuleEvaluation.d.ts.map +1 -1
- package/dist/models/RuleEvaluation.js +3 -0
- package/dist/models/Transaction.d.ts +70 -1
- package/dist/models/Transaction.d.ts.map +1 -1
- package/dist/models/Transaction.js +124 -0
- package/dist/models/index.d.ts +4 -3
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +14 -6
- package/dist/models/mx/MexProduct.d.ts +57 -0
- package/dist/models/mx/MexProduct.d.ts.map +1 -0
- package/dist/models/mx/MexProduct.js +83 -0
- package/dist/models/mx/av/MexActividadVulnerableProduct.d.ts +34 -0
- package/dist/models/mx/av/MexActividadVulnerableProduct.d.ts.map +1 -0
- package/dist/models/mx/av/MexActividadVulnerableProduct.js +46 -0
- package/dist/models/mx/av/ari/MexARIProduct.d.ts +59 -0
- package/dist/models/mx/av/ari/MexARIProduct.d.ts.map +1 -0
- package/dist/models/mx/av/ari/MexARIProduct.js +88 -0
- package/dist/models/mx/av/avi/MexAVIProduct.d.ts +45 -0
- package/dist/models/mx/av/avi/MexAVIProduct.d.ts.map +1 -0
- package/dist/models/mx/av/avi/MexAVIProduct.js +75 -0
- package/dist/models/mx/av/index.d.ts +6 -0
- package/dist/models/mx/av/index.d.ts.map +1 -1
- package/dist/models/mx/av/index.js +9 -0
- package/dist/models/mx/av/jys/MexJYSProduct.d.ts +96 -0
- package/dist/models/mx/av/jys/MexJYSProduct.d.ts.map +1 -0
- package/dist/models/mx/av/jys/MexJYSProduct.js +174 -0
- package/dist/models/mx/av/mjr/MexMJRProduct.d.ts +70 -0
- package/dist/models/mx/av/mjr/MexMJRProduct.d.ts.map +1 -0
- package/dist/models/mx/av/mjr/MexMJRProduct.js +114 -0
- package/dist/models/mx/av/tsc/MexTSCProduct.d.ts +49 -0
- package/dist/models/mx/av/tsc/MexTSCProduct.d.ts.map +1 -0
- package/dist/models/mx/av/tsc/MexTSCProduct.js +77 -0
- package/dist/models/mx/cnbv/MexCNBVProduct.d.ts +34 -0
- package/dist/models/mx/cnbv/MexCNBVProduct.d.ts.map +1 -0
- package/dist/models/mx/cnbv/MexCNBVProduct.js +46 -0
- package/dist/models/mx/cnbv/index.d.ts +1 -0
- package/dist/models/mx/cnbv/index.d.ts.map +1 -1
- package/dist/models/mx/cnbv/index.js +2 -0
- package/dist/models/mx/cnbv/transmisor/MexTransmisorProduct.d.ts +50 -0
- package/dist/models/mx/cnbv/transmisor/MexTransmisorProduct.d.ts.map +1 -0
- package/dist/models/mx/cnbv/transmisor/MexTransmisorProduct.js +70 -0
- package/dist/models/mx/cnbv/transmisor/index.d.ts +1 -0
- package/dist/models/mx/cnbv/transmisor/index.d.ts.map +1 -1
- package/dist/models/mx/cnbv/transmisor/index.js +1 -0
- package/dist/models/mx/index.d.ts +1 -0
- package/dist/models/mx/index.d.ts.map +1 -1
- package/dist/models/mx/index.js +2 -0
- package/dist/resources/alerts.d.ts +22 -1
- package/dist/resources/alerts.d.ts.map +1 -1
- package/dist/resources/alerts.js +46 -2
- package/dist/resources/api-keys.d.ts +23 -0
- package/dist/resources/api-keys.d.ts.map +1 -0
- package/dist/resources/api-keys.js +47 -0
- package/dist/resources/clients.d.ts +24 -1
- package/dist/resources/clients.d.ts.map +1 -1
- package/dist/resources/clients.js +36 -0
- package/dist/resources/index.d.ts +10 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +13 -1
- package/dist/resources/merge-tenant-defaults/index.d.ts +6 -0
- package/dist/resources/merge-tenant-defaults/index.d.ts.map +1 -0
- package/dist/resources/merge-tenant-defaults/index.js +5 -0
- package/dist/resources/merge-tenant-defaults/mx/av/merge.d.ts +27 -0
- package/dist/resources/merge-tenant-defaults/mx/av/merge.d.ts.map +1 -0
- package/dist/resources/merge-tenant-defaults/mx/av/merge.js +64 -0
- package/dist/resources/merge-tenant-defaults/mx/cnbv/merge.d.ts +20 -0
- package/dist/resources/merge-tenant-defaults/mx/cnbv/merge.d.ts.map +1 -0
- package/dist/resources/merge-tenant-defaults/mx/cnbv/merge.js +38 -0
- package/dist/resources/merge-tenant-defaults/utils.d.ts +8 -0
- package/dist/resources/merge-tenant-defaults/utils.d.ts.map +1 -0
- package/dist/resources/merge-tenant-defaults/utils.js +36 -0
- package/dist/resources/mx/av/ari/index.d.ts +1 -0
- package/dist/resources/mx/av/ari/index.d.ts.map +1 -1
- package/dist/resources/mx/av/ari/index.js +1 -0
- package/dist/resources/mx/av/ari/products.d.ts +54 -0
- package/dist/resources/mx/av/ari/products.d.ts.map +1 -0
- package/dist/resources/mx/av/ari/products.js +165 -0
- package/dist/resources/mx/av/ari/tenant.d.ts +30 -0
- package/dist/resources/mx/av/ari/tenant.d.ts.map +1 -0
- package/dist/resources/mx/av/ari/tenant.js +36 -0
- package/dist/resources/mx/av/ari/transactions.d.ts +1 -0
- package/dist/resources/mx/av/ari/transactions.d.ts.map +1 -1
- package/dist/resources/mx/av/ari/transactions.js +17 -6
- package/dist/resources/mx/av/avi/index.d.ts +1 -0
- package/dist/resources/mx/av/avi/index.d.ts.map +1 -1
- package/dist/resources/mx/av/avi/index.js +1 -0
- package/dist/resources/mx/av/avi/products.d.ts +28 -0
- package/dist/resources/mx/av/avi/products.d.ts.map +1 -0
- package/dist/resources/mx/av/avi/products.js +119 -0
- package/dist/resources/mx/av/avi/tenant.d.ts +33 -0
- package/dist/resources/mx/av/avi/tenant.d.ts.map +1 -0
- package/dist/resources/mx/av/avi/tenant.js +39 -0
- package/dist/resources/mx/av/avi/transactions.d.ts +1 -0
- package/dist/resources/mx/av/avi/transactions.d.ts.map +1 -1
- package/dist/resources/mx/av/avi/transactions.js +17 -6
- package/dist/resources/mx/av/jys/index.d.ts +1 -0
- package/dist/resources/mx/av/jys/index.d.ts.map +1 -1
- package/dist/resources/mx/av/jys/index.js +1 -0
- package/dist/resources/mx/av/jys/products.d.ts +28 -0
- package/dist/resources/mx/av/jys/products.d.ts.map +1 -0
- package/dist/resources/mx/av/jys/products.js +119 -0
- package/dist/resources/mx/av/jys/tenant.d.ts +30 -0
- package/dist/resources/mx/av/jys/tenant.d.ts.map +1 -0
- package/dist/resources/mx/av/jys/tenant.js +36 -0
- package/dist/resources/mx/av/jys/transactions.d.ts +1 -0
- package/dist/resources/mx/av/jys/transactions.d.ts.map +1 -1
- package/dist/resources/mx/av/jys/transactions.js +17 -6
- package/dist/resources/mx/av/mjr/index.d.ts +1 -0
- package/dist/resources/mx/av/mjr/index.d.ts.map +1 -1
- package/dist/resources/mx/av/mjr/index.js +1 -0
- package/dist/resources/mx/av/mjr/products.d.ts +28 -0
- package/dist/resources/mx/av/mjr/products.d.ts.map +1 -0
- package/dist/resources/mx/av/mjr/products.js +138 -0
- package/dist/resources/mx/av/mjr/tenant.d.ts +30 -0
- package/dist/resources/mx/av/mjr/tenant.d.ts.map +1 -0
- package/dist/resources/mx/av/mjr/tenant.js +36 -0
- package/dist/resources/mx/av/mjr/transactions.d.ts +1 -0
- package/dist/resources/mx/av/mjr/transactions.d.ts.map +1 -1
- package/dist/resources/mx/av/mjr/transactions.js +17 -6
- package/dist/resources/mx/av/tsc/index.d.ts +1 -0
- package/dist/resources/mx/av/tsc/index.d.ts.map +1 -1
- package/dist/resources/mx/av/tsc/index.js +1 -0
- package/dist/resources/mx/av/tsc/products.d.ts +28 -0
- package/dist/resources/mx/av/tsc/products.d.ts.map +1 -0
- package/dist/resources/mx/av/tsc/products.js +130 -0
- package/dist/resources/mx/av/tsc/tenant.d.ts +30 -0
- package/dist/resources/mx/av/tsc/tenant.d.ts.map +1 -0
- package/dist/resources/mx/av/tsc/tenant.js +36 -0
- package/dist/resources/mx/av/tsc/transactions.d.ts +1 -0
- package/dist/resources/mx/av/tsc/transactions.d.ts.map +1 -1
- package/dist/resources/mx/av/tsc/transactions.js +17 -6
- package/dist/resources/mx/cnbv/transmisor/index.d.ts +1 -0
- package/dist/resources/mx/cnbv/transmisor/index.d.ts.map +1 -1
- package/dist/resources/mx/cnbv/transmisor/index.js +1 -0
- package/dist/resources/mx/cnbv/transmisor/products.d.ts +28 -0
- package/dist/resources/mx/cnbv/transmisor/products.d.ts.map +1 -0
- package/dist/resources/mx/cnbv/transmisor/products.js +138 -0
- package/dist/resources/mx/cnbv/transmisor/tenant.d.ts +32 -0
- package/dist/resources/mx/cnbv/transmisor/tenant.d.ts.map +1 -0
- package/dist/resources/mx/cnbv/transmisor/tenant.js +36 -0
- package/dist/resources/mx/cnbv/transmisor/transactions.d.ts +1 -0
- package/dist/resources/mx/cnbv/transmisor/transactions.d.ts.map +1 -1
- package/dist/resources/mx/cnbv/transmisor/transactions.js +15 -5
- package/dist/resources/mx/index.d.ts +3 -1
- package/dist/resources/mx/index.d.ts.map +1 -1
- package/dist/resources/mx/index.js +2 -1
- package/dist/resources/mx/products.d.ts +86 -0
- package/dist/resources/mx/products.d.ts.map +1 -0
- package/dist/resources/mx/products.js +170 -0
- package/dist/resources/mx/tenant.d.ts +69 -0
- package/dist/resources/mx/tenant.d.ts.map +1 -0
- package/dist/resources/mx/tenant.js +48 -0
- package/dist/resources/mx/transactions.d.ts +1 -0
- package/dist/resources/mx/transactions.d.ts.map +1 -1
- package/dist/resources/mx/transactions.js +17 -6
- package/dist/resources/products.d.ts +137 -0
- package/dist/resources/products.d.ts.map +1 -0
- package/dist/resources/products.js +200 -0
- package/dist/resources/reference-data/index.d.ts +0 -3
- package/dist/resources/reference-data/index.d.ts.map +1 -1
- package/dist/resources/reference-data/index.js +0 -3
- package/dist/resources/reference-data/reference-data.d.ts +26 -20
- package/dist/resources/reference-data/reference-data.d.ts.map +1 -1
- package/dist/resources/reference-data/reference-data.js +58 -23
- package/dist/resources/roles.d.ts +20 -0
- package/dist/resources/roles.d.ts.map +1 -0
- package/dist/resources/roles.js +50 -0
- package/dist/resources/rule-templates.d.ts +0 -5
- package/dist/resources/rule-templates.d.ts.map +1 -1
- package/dist/resources/rule-templates.js +0 -8
- package/dist/resources/rules.d.ts +17 -1
- package/dist/resources/rules.d.ts.map +1 -1
- package/dist/resources/rules.js +27 -0
- package/dist/resources/tags.d.ts +22 -0
- package/dist/resources/tags.d.ts.map +1 -0
- package/dist/resources/tags.js +63 -0
- package/dist/resources/tenant.d.ts +52 -0
- package/dist/resources/tenant.d.ts.map +1 -0
- package/dist/resources/tenant.js +85 -0
- package/dist/resources/transactions.d.ts +56 -1
- package/dist/resources/transactions.d.ts.map +1 -1
- package/dist/resources/transactions.js +203 -6
- package/dist/resources/users.d.ts +61 -0
- package/dist/resources/users.d.ts.map +1 -0
- package/dist/resources/users.js +71 -0
- package/dist/sdk/ComplianceSDK.d.ts +46 -1
- package/dist/sdk/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/ComplianceSDK.js +52 -1
- package/dist/sdk/base.d.ts.map +1 -1
- package/dist/sdk/base.js +2 -1
- package/dist/sdk/mx/ComplianceSDK.d.ts +5 -22
- package/dist/sdk/mx/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/mx/ComplianceSDK.js +5 -33
- package/dist/sdk/mx/av/ari/ComplianceSDK.d.ts +5 -26
- package/dist/sdk/mx/av/ari/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/mx/av/ari/ComplianceSDK.js +4 -27
- package/dist/sdk/mx/av/ari/types.d.ts +4 -5
- package/dist/sdk/mx/av/ari/types.d.ts.map +1 -1
- package/dist/sdk/mx/av/ari/types.js +2 -1
- package/dist/sdk/mx/av/avi/ComplianceSDK.d.ts +5 -1
- package/dist/sdk/mx/av/avi/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/mx/av/avi/ComplianceSDK.js +4 -1
- package/dist/sdk/mx/av/avi/types.d.ts +4 -5
- package/dist/sdk/mx/av/avi/types.d.ts.map +1 -1
- package/dist/sdk/mx/av/avi/types.js +2 -1
- package/dist/sdk/mx/av/jys/ComplianceSDK.d.ts +5 -7
- package/dist/sdk/mx/av/jys/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/mx/av/jys/ComplianceSDK.js +4 -8
- package/dist/sdk/mx/av/jys/types.d.ts +4 -5
- package/dist/sdk/mx/av/jys/types.d.ts.map +1 -1
- package/dist/sdk/mx/av/jys/types.js +2 -1
- package/dist/sdk/mx/av/mjr/ComplianceSDK.d.ts +5 -19
- package/dist/sdk/mx/av/mjr/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/mx/av/mjr/ComplianceSDK.js +4 -20
- package/dist/sdk/mx/av/mjr/types.d.ts +4 -5
- package/dist/sdk/mx/av/mjr/types.d.ts.map +1 -1
- package/dist/sdk/mx/av/mjr/types.js +2 -1
- package/dist/sdk/mx/av/tsc/ComplianceSDK.d.ts +5 -7
- package/dist/sdk/mx/av/tsc/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/mx/av/tsc/ComplianceSDK.js +4 -8
- package/dist/sdk/mx/av/tsc/types.d.ts +4 -5
- package/dist/sdk/mx/av/tsc/types.d.ts.map +1 -1
- package/dist/sdk/mx/av/tsc/types.js +2 -1
- package/dist/sdk/mx/cnbv/transmisor/ComplianceSDK.d.ts +5 -7
- package/dist/sdk/mx/cnbv/transmisor/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/mx/cnbv/transmisor/ComplianceSDK.js +4 -8
- package/dist/sdk/mx/cnbv/transmisor/types.d.ts +4 -5
- package/dist/sdk/mx/cnbv/transmisor/types.d.ts.map +1 -1
- package/dist/sdk/mx/cnbv/transmisor/types.js +2 -1
- package/dist/sdk/mx/index.d.ts.map +1 -1
- package/dist/sdk/mx/index.js +2 -0
- package/dist/sdk/mx/types.d.ts +3 -6
- package/dist/sdk/mx/types.d.ts.map +1 -1
- package/dist/sdk/resource-registry.d.ts +3 -0
- package/dist/sdk/resource-registry.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/resources/mx/ebr.d.ts +0 -214
- package/dist/resources/mx/ebr.d.ts.map +0 -1
- package/dist/resources/mx/ebr.js +0 -418
- package/dist/resources/reference-data/global/basel-aml.d.ts +0 -16
- package/dist/resources/reference-data/global/basel-aml.d.ts.map +0 -1
- package/dist/resources/reference-data/global/basel-aml.js +0 -46
- package/dist/resources/reference-data/global/index.d.ts +0 -2
- package/dist/resources/reference-data/global/index.d.ts.map +0 -1
- package/dist/resources/reference-data/global/index.js +0 -1
- package/dist/resources/reference-data/metadata.d.ts +0 -11
- package/dist/resources/reference-data/metadata.d.ts.map +0 -1
- package/dist/resources/reference-data/metadata.js +0 -22
- package/dist/resources/reference-data/mx/index.d.ts +0 -2
- package/dist/resources/reference-data/mx/index.d.ts.map +0 -1
- package/dist/resources/reference-data/mx/index.js +0 -1
- package/dist/resources/reference-data/mx/postal-codes.d.ts +0 -16
- package/dist/resources/reference-data/mx/postal-codes.d.ts.map +0 -1
- package/dist/resources/reference-data/mx/postal-codes.js +0 -46
package/dist/models/Client.js
CHANGED
|
@@ -13,6 +13,17 @@ import { Document } from "./Document";
|
|
|
13
13
|
// ===========================
|
|
14
14
|
// Utilities
|
|
15
15
|
// ===========================
|
|
16
|
+
function applyRiskRounding(value, mode) {
|
|
17
|
+
switch (mode) {
|
|
18
|
+
case "floor":
|
|
19
|
+
return Math.floor(value);
|
|
20
|
+
case "round":
|
|
21
|
+
return Math.round(value);
|
|
22
|
+
case "ceil":
|
|
23
|
+
default:
|
|
24
|
+
return Math.ceil(value);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
16
27
|
/**
|
|
17
28
|
* Parse a date string, handling date-only strings (YYYY-MM-DD) as local time
|
|
18
29
|
* to avoid timezone conversion issues.
|
|
@@ -181,6 +192,12 @@ export class Client extends BaseModel {
|
|
|
181
192
|
get scopes() {
|
|
182
193
|
return this._data.scopes ?? [];
|
|
183
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Tags applied to this client.
|
|
197
|
+
*/
|
|
198
|
+
get tags() {
|
|
199
|
+
return this._data.tags ?? [];
|
|
200
|
+
}
|
|
184
201
|
/**
|
|
185
202
|
* Checks if client has data for a specific jurisdiction
|
|
186
203
|
*/
|
|
@@ -256,6 +273,98 @@ export class Client extends BaseModel {
|
|
|
256
273
|
}));
|
|
257
274
|
}
|
|
258
275
|
// ─────────────────────────────────────────────────────────────────
|
|
276
|
+
// Risk Assessments
|
|
277
|
+
// ─────────────────────────────────────────────────────────────────
|
|
278
|
+
/**
|
|
279
|
+
* Raw risk assessments map — keyed by assessment name, each value is an
|
|
280
|
+
* append-only array of snapshots representing the assessment history.
|
|
281
|
+
*/
|
|
282
|
+
get riskAssessments() {
|
|
283
|
+
return this._data.riskAssessments ?? {};
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Names of all risk assessments attached to this client.
|
|
287
|
+
*/
|
|
288
|
+
get riskAssessmentNames() {
|
|
289
|
+
return Object.keys(this.riskAssessments);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Retrieve a specific risk assessment snapshot by name and optional version.
|
|
293
|
+
* Version is the 0-based index in the append-only history array.
|
|
294
|
+
* Defaults to the latest (most recent) version.
|
|
295
|
+
*
|
|
296
|
+
* @param name - The assessment name
|
|
297
|
+
* @param version - Optional 0-based version index (defaults to latest)
|
|
298
|
+
* @returns The snapshot, or undefined if not found
|
|
299
|
+
*/
|
|
300
|
+
riskAssessment(name, version) {
|
|
301
|
+
const snapshots = this.riskAssessments[name];
|
|
302
|
+
if (!snapshots || snapshots.length === 0)
|
|
303
|
+
return undefined;
|
|
304
|
+
const idx = version ?? snapshots.length - 1;
|
|
305
|
+
return snapshots[idx];
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* List all available versions for a named risk assessment.
|
|
309
|
+
*
|
|
310
|
+
* @param name - The assessment name
|
|
311
|
+
* @returns Array of `{ version, calculatedAt }` entries, or empty array if not found
|
|
312
|
+
*/
|
|
313
|
+
riskAssessmentVersions(name) {
|
|
314
|
+
const snapshots = this.riskAssessments[name];
|
|
315
|
+
if (!snapshots)
|
|
316
|
+
return [];
|
|
317
|
+
return snapshots.map((s, i) => ({
|
|
318
|
+
version: i,
|
|
319
|
+
calculatedAt: s.calculatedAt,
|
|
320
|
+
}));
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Get the overall score for a risk assessment.
|
|
324
|
+
*
|
|
325
|
+
* - With a name: returns the overall score of the latest version of that assessment.
|
|
326
|
+
* - Without a name: returns the overall score of the most recently calculated
|
|
327
|
+
* assessment across all assessments (by `calculatedAt`).
|
|
328
|
+
*
|
|
329
|
+
* @param name - Optional assessment name
|
|
330
|
+
* @returns The overall score, or undefined if no assessments exist
|
|
331
|
+
*/
|
|
332
|
+
riskAssessmentScore(name) {
|
|
333
|
+
if (name != null) {
|
|
334
|
+
return this.riskAssessment(name)?.overall;
|
|
335
|
+
}
|
|
336
|
+
return this._latestRiskSnapshot()?.overall;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Get the display-ready risk score for the most recent assessment.
|
|
340
|
+
* Returns the score scaled to maxScore and rounded per the stored mode,
|
|
341
|
+
* along with the maxScore denominator.
|
|
342
|
+
*
|
|
343
|
+
* @returns `{ score, maxScore }` or undefined if no assessments exist
|
|
344
|
+
*/
|
|
345
|
+
riskAssessmentDisplayScore() {
|
|
346
|
+
const snapshot = this._latestRiskSnapshot();
|
|
347
|
+
if (!snapshot)
|
|
348
|
+
return undefined;
|
|
349
|
+
const maxScore = snapshot.maxScore ?? 100;
|
|
350
|
+
const mode = snapshot.roundingMode ?? "ceil";
|
|
351
|
+
return {
|
|
352
|
+
score: applyRiskRounding(snapshot.overall * maxScore, mode),
|
|
353
|
+
maxScore,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
/** Find the most recently calculated snapshot across all assessments */
|
|
357
|
+
_latestRiskSnapshot() {
|
|
358
|
+
let latest;
|
|
359
|
+
for (const snapshots of Object.values(this.riskAssessments)) {
|
|
360
|
+
const last = snapshots[snapshots.length - 1];
|
|
361
|
+
if (last && (!latest || last.calculatedAt > latest.calculatedAt)) {
|
|
362
|
+
latest = last;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return latest;
|
|
366
|
+
}
|
|
367
|
+
// ─────────────────────────────────────────────────────────────────
|
|
259
368
|
// Timestamps
|
|
260
369
|
// ─────────────────────────────────────────────────────────────────
|
|
261
370
|
/**
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Product Model
|
|
3
|
+
*
|
|
4
|
+
* Pure data model with no API calls.
|
|
5
|
+
* Provides type-safe access to common product properties.
|
|
6
|
+
*/
|
|
7
|
+
import type { BaseProduct, EmbeddedTag, Jurisdiction } from "@artu-ai/shared";
|
|
8
|
+
import { BaseModel } from "./base";
|
|
9
|
+
/**
|
|
10
|
+
* Product data as returned from the API.
|
|
11
|
+
* Extends the base schema with server-generated fields.
|
|
12
|
+
*/
|
|
13
|
+
export interface ProductData extends BaseProduct {
|
|
14
|
+
id: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
updatedAt: string;
|
|
17
|
+
tags?: EmbeddedTag[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Base Product Model.
|
|
21
|
+
*
|
|
22
|
+
* Pure data model with no API calls.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const product = await sdk.products.retrieve("prod_123");
|
|
27
|
+
* console.log(product.name);
|
|
28
|
+
* console.log(product.scopes);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare class Product extends BaseModel<ProductData> {
|
|
32
|
+
/**
|
|
33
|
+
* Unique identifier
|
|
34
|
+
*/
|
|
35
|
+
get id(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Product name
|
|
38
|
+
*/
|
|
39
|
+
get name(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Product description
|
|
42
|
+
*/
|
|
43
|
+
get description(): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* External ID for integration with other systems
|
|
46
|
+
*/
|
|
47
|
+
get externalId(): string | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Scopes this product belongs to (e.g. ["MX", "MX:AV:ARI"]).
|
|
50
|
+
*/
|
|
51
|
+
get scopes(): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Tags applied to this product.
|
|
54
|
+
*/
|
|
55
|
+
get tags(): EmbeddedTag[];
|
|
56
|
+
/**
|
|
57
|
+
* Checks if product has data for a specific jurisdiction
|
|
58
|
+
*/
|
|
59
|
+
hasJurisdiction(jurisdiction: Jurisdiction): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Raw jurisdiction data object
|
|
62
|
+
*/
|
|
63
|
+
get jurisdictions(): BaseProduct["jurisdictions"];
|
|
64
|
+
/**
|
|
65
|
+
* Raw data for jurisdiction-specific access
|
|
66
|
+
*/
|
|
67
|
+
get data(): ProductData;
|
|
68
|
+
/**
|
|
69
|
+
* Custom metadata
|
|
70
|
+
*/
|
|
71
|
+
get metadata(): Record<string, unknown> | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* When the product record was created
|
|
74
|
+
*/
|
|
75
|
+
get createdAt(): Date;
|
|
76
|
+
/**
|
|
77
|
+
* When the product record was last updated
|
|
78
|
+
*/
|
|
79
|
+
get updatedAt(): Date;
|
|
80
|
+
toString(): string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if value is any type of Product model
|
|
84
|
+
*/
|
|
85
|
+
export declare function isProduct(value: unknown): value is Product;
|
|
86
|
+
//# sourceMappingURL=Product.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Product.d.ts","sourceRoot":"","sources":["../../src/models/Product.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMnC;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;CACrB;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,OAAQ,SAAQ,SAAS,CAAC,WAAW,CAAC;IAKlD;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAMD;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,WAAW,EAAE,CAExB;IAMD;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAKpD;;OAEG;IACH,IAAI,aAAa,IAAI,WAAW,CAAC,eAAe,CAAC,CAEhD;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,WAAW,CAEtB;IAMD;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAElD;IAMD;;OAEG;IACH,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,IAAI,CAEpB;IAMQ,QAAQ,IAAI,MAAM;CAG3B;AAMD;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Product Model
|
|
3
|
+
*
|
|
4
|
+
* Pure data model with no API calls.
|
|
5
|
+
* Provides type-safe access to common product properties.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseModel } from "./base";
|
|
8
|
+
// ===========================
|
|
9
|
+
// Product Model
|
|
10
|
+
// ===========================
|
|
11
|
+
/**
|
|
12
|
+
* Base Product Model.
|
|
13
|
+
*
|
|
14
|
+
* Pure data model with no API calls.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const product = await sdk.products.retrieve("prod_123");
|
|
19
|
+
* console.log(product.name);
|
|
20
|
+
* console.log(product.scopes);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export class Product extends BaseModel {
|
|
24
|
+
// ─────────────────────────────────────────────────────────────────
|
|
25
|
+
// Identity
|
|
26
|
+
// ─────────────────────────────────────────────────────────────────
|
|
27
|
+
/**
|
|
28
|
+
* Unique identifier
|
|
29
|
+
*/
|
|
30
|
+
get id() {
|
|
31
|
+
return this._data.id;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Product name
|
|
35
|
+
*/
|
|
36
|
+
get name() {
|
|
37
|
+
return this._data.name;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Product description
|
|
41
|
+
*/
|
|
42
|
+
get description() {
|
|
43
|
+
return this._data.description;
|
|
44
|
+
}
|
|
45
|
+
// ─────────────────────────────────────────────────────────────────
|
|
46
|
+
// References
|
|
47
|
+
// ─────────────────────────────────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* External ID for integration with other systems
|
|
50
|
+
*/
|
|
51
|
+
get externalId() {
|
|
52
|
+
return this._data.externalId;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Scopes this product belongs to (e.g. ["MX", "MX:AV:ARI"]).
|
|
56
|
+
*/
|
|
57
|
+
get scopes() {
|
|
58
|
+
return this._data.scopes ?? [];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Tags applied to this product.
|
|
62
|
+
*/
|
|
63
|
+
get tags() {
|
|
64
|
+
return this._data.tags ?? [];
|
|
65
|
+
}
|
|
66
|
+
// ─────────────────────────────────────────────────────────────────
|
|
67
|
+
// Jurisdiction
|
|
68
|
+
// ─────────────────────────────────────────────────────────────────
|
|
69
|
+
/**
|
|
70
|
+
* Checks if product has data for a specific jurisdiction
|
|
71
|
+
*/
|
|
72
|
+
hasJurisdiction(jurisdiction) {
|
|
73
|
+
if (!this._data.jurisdictions)
|
|
74
|
+
return false;
|
|
75
|
+
return jurisdiction in this._data.jurisdictions;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Raw jurisdiction data object
|
|
79
|
+
*/
|
|
80
|
+
get jurisdictions() {
|
|
81
|
+
return this._data.jurisdictions ?? {};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Raw data for jurisdiction-specific access
|
|
85
|
+
*/
|
|
86
|
+
get data() {
|
|
87
|
+
return this._data;
|
|
88
|
+
}
|
|
89
|
+
// ─────────────────────────────────────────────────────────────────
|
|
90
|
+
// Metadata
|
|
91
|
+
// ─────────────────────────────────────────────────────────────────
|
|
92
|
+
/**
|
|
93
|
+
* Custom metadata
|
|
94
|
+
*/
|
|
95
|
+
get metadata() {
|
|
96
|
+
return this._data.metadata;
|
|
97
|
+
}
|
|
98
|
+
// ─────────────────────────────────────────────────────────────────
|
|
99
|
+
// Timestamps
|
|
100
|
+
// ─────────────────────────────────────────────────────────────────
|
|
101
|
+
/**
|
|
102
|
+
* When the product record was created
|
|
103
|
+
*/
|
|
104
|
+
get createdAt() {
|
|
105
|
+
return new Date(this._data.createdAt);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* When the product record was last updated
|
|
109
|
+
*/
|
|
110
|
+
get updatedAt() {
|
|
111
|
+
return new Date(this._data.updatedAt);
|
|
112
|
+
}
|
|
113
|
+
// ─────────────────────────────────────────────────────────────────
|
|
114
|
+
// String Representation
|
|
115
|
+
// ─────────────────────────────────────────────────────────────────
|
|
116
|
+
toString() {
|
|
117
|
+
return `Product(${this.id}, ${this.name})`;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// ===========================
|
|
121
|
+
// Type Guards
|
|
122
|
+
// ===========================
|
|
123
|
+
/**
|
|
124
|
+
* Check if value is any type of Product model
|
|
125
|
+
*/
|
|
126
|
+
export function isProduct(value) {
|
|
127
|
+
return value instanceof Product;
|
|
128
|
+
}
|
package/dist/models/Rule.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Pure data model for monitoring rules.
|
|
5
5
|
* Rules define triggers and visual workflows for the rules engine.
|
|
6
6
|
*/
|
|
7
|
-
import type { RuleResponse, RuleStatus, RuleTrigger, RuleWorkflow } from "@artu-ai/shared";
|
|
7
|
+
import type { EmbeddedTag, RuleResponse, RuleStatus, RuleTrigger, RuleWorkflow } from "@artu-ai/shared";
|
|
8
8
|
import { BaseModel } from "./base";
|
|
9
9
|
export type RuleData = RuleResponse;
|
|
10
10
|
/**
|
|
@@ -25,6 +25,10 @@ export declare class Rule extends BaseModel<RuleData> {
|
|
|
25
25
|
get trigger(): RuleTrigger;
|
|
26
26
|
get workflow(): RuleWorkflow;
|
|
27
27
|
get metadata(): Record<string, unknown> | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Tags applied to this rule.
|
|
30
|
+
*/
|
|
31
|
+
get tags(): EmbeddedTag[];
|
|
28
32
|
get createdAt(): Date;
|
|
29
33
|
get updatedAt(): Date;
|
|
30
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/models/Rule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMnC,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;AAMpC;;;;;;GAMG;AACH,qBAAa,IAAK,SAAQ,SAAS,CAAC,QAAQ,CAAC;IAC5C,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,MAAM,CAEjC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED,IAAI,OAAO,IAAI,WAAW,CAEzB;IAED,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAElD;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAMD;;OAEG;IACH,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,IAAI,GAAG,SAAS,CAEjC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAEQ,QAAQ,IAAI,MAAM;CAG3B;AAMD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD"}
|
|
1
|
+
{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/models/Rule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMnC,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;AAMpC;;;;;;GAMG;AACH,qBAAa,IAAK,SAAQ,SAAS,CAAC,QAAQ,CAAC;IAC5C,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,MAAM,CAEjC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED,IAAI,OAAO,IAAI,WAAW,CAEzB;IAED,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAElD;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,WAAW,EAAE,CAExB;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAMD;;OAEG;IACH,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,IAAI,GAAG,SAAS,CAEjC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAEQ,QAAQ,IAAI,MAAM;CAG3B;AAMD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD"}
|
package/dist/models/Rule.js
CHANGED
|
@@ -46,6 +46,12 @@ export class Rule extends BaseModel {
|
|
|
46
46
|
get metadata() {
|
|
47
47
|
return this._data.metadata;
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Tags applied to this rule.
|
|
51
|
+
*/
|
|
52
|
+
get tags() {
|
|
53
|
+
return this._data.tags ?? [];
|
|
54
|
+
}
|
|
49
55
|
get createdAt() {
|
|
50
56
|
return new Date(this._data.createdAt);
|
|
51
57
|
}
|
|
@@ -24,6 +24,7 @@ export declare class RuleEvaluation extends BaseModel<RuleEvaluationData> {
|
|
|
24
24
|
get error(): string | null;
|
|
25
25
|
get alertIds(): string[];
|
|
26
26
|
get durationMs(): number | null;
|
|
27
|
+
get inputs(): Record<string, unknown> | null;
|
|
27
28
|
get resolvedVariables(): Record<string, unknown> | null;
|
|
28
29
|
get workflowTrace(): WorkflowTrace | null;
|
|
29
30
|
get nodeTraces(): NodeTrace[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuleEvaluation.d.ts","sourceRoot":"","sources":["../../src/models/RuleEvaluation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMnC,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAMxD;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAChE,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,MAAM,CAEjC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEtD;IAED,IAAI,aAAa,IAAI,aAAa,GAAG,IAAI,CAExC;IAED,IAAI,UAAU,IAAI,SAAS,EAAE,CAE5B;IAED,IAAI,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAE1C;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAMD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAEQ,QAAQ,IAAI,MAAM;CAG3B;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE"}
|
|
1
|
+
{"version":3,"file":"RuleEvaluation.d.ts","sourceRoot":"","sources":["../../src/models/RuleEvaluation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMnC,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAMxD;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAChE,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,MAAM,CAEjC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE3C;IAED,IAAI,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEtD;IAED,IAAI,aAAa,IAAI,aAAa,GAAG,IAAI,CAExC;IAED,IAAI,UAAU,IAAI,SAAS,EAAE,CAE5B;IAED,IAAI,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAE1C;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAMD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAEQ,QAAQ,IAAI,MAAM;CAG3B;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Pure data model with no API calls.
|
|
5
5
|
* Provides type-safe access to common transaction properties.
|
|
6
6
|
*/
|
|
7
|
-
import type { BaseTransaction, Jurisdiction } from "@artu-ai/shared";
|
|
7
|
+
import type { BaseTransaction, EmbeddedTag, Jurisdiction, RiskAssessmentSnapshot, RiskAssessments } from "@artu-ai/shared";
|
|
8
8
|
import { TransactionStatus } from "@artu-ai/shared";
|
|
9
9
|
import { BaseModel } from "./base";
|
|
10
10
|
/**
|
|
@@ -17,6 +17,10 @@ export interface TransactionData extends Omit<BaseTransaction, "timestamp"> {
|
|
|
17
17
|
createdAt: string;
|
|
18
18
|
updatedAt: string;
|
|
19
19
|
isAlerted: boolean;
|
|
20
|
+
alertedAt: string | null;
|
|
21
|
+
productId?: string;
|
|
22
|
+
riskAssessments?: RiskAssessments;
|
|
23
|
+
tags?: EmbeddedTag[];
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
22
26
|
* Base Transaction Model.
|
|
@@ -69,6 +73,10 @@ export declare class Transaction extends BaseModel<TransactionData> {
|
|
|
69
73
|
* Whether this transaction is referenced by at least one active alert item
|
|
70
74
|
*/
|
|
71
75
|
get isAlerted(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* When the transaction was first added to an active alert (null if not alerted)
|
|
78
|
+
*/
|
|
79
|
+
get alertedAt(): string | null;
|
|
72
80
|
/**
|
|
73
81
|
* External ID for integration with other systems
|
|
74
82
|
*/
|
|
@@ -77,10 +85,18 @@ export declare class Transaction extends BaseModel<TransactionData> {
|
|
|
77
85
|
* Transaction description
|
|
78
86
|
*/
|
|
79
87
|
get description(): string | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Associated product ID
|
|
90
|
+
*/
|
|
91
|
+
get productId(): string | undefined;
|
|
80
92
|
/**
|
|
81
93
|
* Scopes this transaction belongs to (e.g. ["MX", "MX:AV:AVI"]).
|
|
82
94
|
*/
|
|
83
95
|
get scopes(): string[];
|
|
96
|
+
/**
|
|
97
|
+
* Tags applied to this transaction.
|
|
98
|
+
*/
|
|
99
|
+
get tags(): EmbeddedTag[];
|
|
84
100
|
/**
|
|
85
101
|
* Checks if transaction has data for a specific jurisdiction
|
|
86
102
|
*/
|
|
@@ -89,6 +105,59 @@ export declare class Transaction extends BaseModel<TransactionData> {
|
|
|
89
105
|
* Raw jurisdiction data object
|
|
90
106
|
*/
|
|
91
107
|
get jurisdictions(): BaseTransaction["jurisdictions"];
|
|
108
|
+
/**
|
|
109
|
+
* Raw risk assessments map — keyed by assessment name, each value is an
|
|
110
|
+
* append-only array of snapshots representing the assessment history.
|
|
111
|
+
*/
|
|
112
|
+
get riskAssessments(): RiskAssessments;
|
|
113
|
+
/**
|
|
114
|
+
* Names of all risk assessments attached to this transaction.
|
|
115
|
+
*/
|
|
116
|
+
get riskAssessmentNames(): string[];
|
|
117
|
+
/**
|
|
118
|
+
* Retrieve a specific risk assessment snapshot by name and optional version.
|
|
119
|
+
* Version is the 0-based index in the append-only history array.
|
|
120
|
+
* Defaults to the latest (most recent) version.
|
|
121
|
+
*
|
|
122
|
+
* @param name - The assessment name
|
|
123
|
+
* @param version - Optional 0-based version index (defaults to latest)
|
|
124
|
+
* @returns The snapshot, or undefined if not found
|
|
125
|
+
*/
|
|
126
|
+
riskAssessment(name: string, version?: number): RiskAssessmentSnapshot | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* List all available versions for a named risk assessment.
|
|
129
|
+
*
|
|
130
|
+
* @param name - The assessment name
|
|
131
|
+
* @returns Array of `{ version, calculatedAt }` entries, or empty array if not found
|
|
132
|
+
*/
|
|
133
|
+
riskAssessmentVersions(name: string): {
|
|
134
|
+
version: number;
|
|
135
|
+
calculatedAt: string;
|
|
136
|
+
}[];
|
|
137
|
+
/**
|
|
138
|
+
* Get the overall score for a risk assessment.
|
|
139
|
+
*
|
|
140
|
+
* - With a name: returns the overall score of the latest version of that assessment.
|
|
141
|
+
* - Without a name: returns the overall score of the most recently calculated
|
|
142
|
+
* assessment across all assessments (by `calculatedAt`).
|
|
143
|
+
*
|
|
144
|
+
* @param name - Optional assessment name
|
|
145
|
+
* @returns The overall score, or undefined if no assessments exist
|
|
146
|
+
*/
|
|
147
|
+
riskAssessmentScore(name?: string): number | undefined;
|
|
148
|
+
/**
|
|
149
|
+
* Get the display-ready risk score for the most recent assessment.
|
|
150
|
+
* Returns the score scaled to maxScore and rounded per the stored mode,
|
|
151
|
+
* along with the maxScore denominator.
|
|
152
|
+
*
|
|
153
|
+
* @returns `{ score, maxScore }` or undefined if no assessments exist
|
|
154
|
+
*/
|
|
155
|
+
riskAssessmentDisplayScore(): {
|
|
156
|
+
score: number;
|
|
157
|
+
maxScore: number;
|
|
158
|
+
} | undefined;
|
|
159
|
+
/** Find the most recently calculated snapshot across all assessments */
|
|
160
|
+
private _latestRiskSnapshot;
|
|
92
161
|
/**
|
|
93
162
|
* When the transaction was executed/occurred
|
|
94
163
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/models/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/models/Transaction.ts"],"names":[],"mappings":"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"}
|