@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.
Files changed (292) hide show
  1. package/README.md +0 -3
  2. package/dist/exports/index.d.ts +5 -3
  3. package/dist/exports/index.d.ts.map +1 -1
  4. package/dist/exports/index.js +3 -5
  5. package/dist/exports/mx/av/ari.d.ts +11 -6
  6. package/dist/exports/mx/av/ari.d.ts.map +1 -1
  7. package/dist/exports/mx/av/ari.js +9 -5
  8. package/dist/exports/mx/av/avi.d.ts +11 -6
  9. package/dist/exports/mx/av/avi.d.ts.map +1 -1
  10. package/dist/exports/mx/av/avi.js +9 -5
  11. package/dist/exports/mx/av/jys.d.ts +11 -6
  12. package/dist/exports/mx/av/jys.d.ts.map +1 -1
  13. package/dist/exports/mx/av/jys.js +9 -5
  14. package/dist/exports/mx/av/mjr.d.ts +11 -6
  15. package/dist/exports/mx/av/mjr.d.ts.map +1 -1
  16. package/dist/exports/mx/av/mjr.js +9 -5
  17. package/dist/exports/mx/av/tsc.d.ts +11 -6
  18. package/dist/exports/mx/av/tsc.d.ts.map +1 -1
  19. package/dist/exports/mx/av/tsc.js +9 -5
  20. package/dist/exports/mx/cnbv/transmisor.d.ts +11 -6
  21. package/dist/exports/mx/cnbv/transmisor.d.ts.map +1 -1
  22. package/dist/exports/mx/cnbv/transmisor.js +9 -5
  23. package/dist/exports/mx/index.d.ts +5 -4
  24. package/dist/exports/mx/index.d.ts.map +1 -1
  25. package/dist/exports/mx/index.js +3 -5
  26. package/dist/models/Alert.d.ts +5 -1
  27. package/dist/models/Alert.d.ts.map +1 -1
  28. package/dist/models/Alert.js +6 -0
  29. package/dist/models/Client.d.ts +60 -1
  30. package/dist/models/Client.d.ts.map +1 -1
  31. package/dist/models/Client.js +109 -0
  32. package/dist/models/Product.d.ts +86 -0
  33. package/dist/models/Product.d.ts.map +1 -0
  34. package/dist/models/Product.js +128 -0
  35. package/dist/models/Rule.d.ts +5 -1
  36. package/dist/models/Rule.d.ts.map +1 -1
  37. package/dist/models/Rule.js +6 -0
  38. package/dist/models/RuleEvaluation.d.ts +1 -0
  39. package/dist/models/RuleEvaluation.d.ts.map +1 -1
  40. package/dist/models/RuleEvaluation.js +3 -0
  41. package/dist/models/Transaction.d.ts +70 -1
  42. package/dist/models/Transaction.d.ts.map +1 -1
  43. package/dist/models/Transaction.js +124 -0
  44. package/dist/models/index.d.ts +4 -3
  45. package/dist/models/index.d.ts.map +1 -1
  46. package/dist/models/index.js +14 -6
  47. package/dist/models/mx/MexProduct.d.ts +57 -0
  48. package/dist/models/mx/MexProduct.d.ts.map +1 -0
  49. package/dist/models/mx/MexProduct.js +83 -0
  50. package/dist/models/mx/av/MexActividadVulnerableProduct.d.ts +34 -0
  51. package/dist/models/mx/av/MexActividadVulnerableProduct.d.ts.map +1 -0
  52. package/dist/models/mx/av/MexActividadVulnerableProduct.js +46 -0
  53. package/dist/models/mx/av/ari/MexARIProduct.d.ts +59 -0
  54. package/dist/models/mx/av/ari/MexARIProduct.d.ts.map +1 -0
  55. package/dist/models/mx/av/ari/MexARIProduct.js +88 -0
  56. package/dist/models/mx/av/avi/MexAVIProduct.d.ts +45 -0
  57. package/dist/models/mx/av/avi/MexAVIProduct.d.ts.map +1 -0
  58. package/dist/models/mx/av/avi/MexAVIProduct.js +75 -0
  59. package/dist/models/mx/av/index.d.ts +6 -0
  60. package/dist/models/mx/av/index.d.ts.map +1 -1
  61. package/dist/models/mx/av/index.js +9 -0
  62. package/dist/models/mx/av/jys/MexJYSProduct.d.ts +96 -0
  63. package/dist/models/mx/av/jys/MexJYSProduct.d.ts.map +1 -0
  64. package/dist/models/mx/av/jys/MexJYSProduct.js +174 -0
  65. package/dist/models/mx/av/mjr/MexMJRProduct.d.ts +70 -0
  66. package/dist/models/mx/av/mjr/MexMJRProduct.d.ts.map +1 -0
  67. package/dist/models/mx/av/mjr/MexMJRProduct.js +114 -0
  68. package/dist/models/mx/av/tsc/MexTSCProduct.d.ts +49 -0
  69. package/dist/models/mx/av/tsc/MexTSCProduct.d.ts.map +1 -0
  70. package/dist/models/mx/av/tsc/MexTSCProduct.js +77 -0
  71. package/dist/models/mx/cnbv/MexCNBVProduct.d.ts +34 -0
  72. package/dist/models/mx/cnbv/MexCNBVProduct.d.ts.map +1 -0
  73. package/dist/models/mx/cnbv/MexCNBVProduct.js +46 -0
  74. package/dist/models/mx/cnbv/index.d.ts +1 -0
  75. package/dist/models/mx/cnbv/index.d.ts.map +1 -1
  76. package/dist/models/mx/cnbv/index.js +2 -0
  77. package/dist/models/mx/cnbv/transmisor/MexTransmisorProduct.d.ts +50 -0
  78. package/dist/models/mx/cnbv/transmisor/MexTransmisorProduct.d.ts.map +1 -0
  79. package/dist/models/mx/cnbv/transmisor/MexTransmisorProduct.js +70 -0
  80. package/dist/models/mx/cnbv/transmisor/index.d.ts +1 -0
  81. package/dist/models/mx/cnbv/transmisor/index.d.ts.map +1 -1
  82. package/dist/models/mx/cnbv/transmisor/index.js +1 -0
  83. package/dist/models/mx/index.d.ts +1 -0
  84. package/dist/models/mx/index.d.ts.map +1 -1
  85. package/dist/models/mx/index.js +2 -0
  86. package/dist/resources/alerts.d.ts +22 -1
  87. package/dist/resources/alerts.d.ts.map +1 -1
  88. package/dist/resources/alerts.js +46 -2
  89. package/dist/resources/api-keys.d.ts +23 -0
  90. package/dist/resources/api-keys.d.ts.map +1 -0
  91. package/dist/resources/api-keys.js +47 -0
  92. package/dist/resources/clients.d.ts +24 -1
  93. package/dist/resources/clients.d.ts.map +1 -1
  94. package/dist/resources/clients.js +36 -0
  95. package/dist/resources/index.d.ts +10 -1
  96. package/dist/resources/index.d.ts.map +1 -1
  97. package/dist/resources/index.js +13 -1
  98. package/dist/resources/merge-tenant-defaults/index.d.ts +6 -0
  99. package/dist/resources/merge-tenant-defaults/index.d.ts.map +1 -0
  100. package/dist/resources/merge-tenant-defaults/index.js +5 -0
  101. package/dist/resources/merge-tenant-defaults/mx/av/merge.d.ts +27 -0
  102. package/dist/resources/merge-tenant-defaults/mx/av/merge.d.ts.map +1 -0
  103. package/dist/resources/merge-tenant-defaults/mx/av/merge.js +64 -0
  104. package/dist/resources/merge-tenant-defaults/mx/cnbv/merge.d.ts +20 -0
  105. package/dist/resources/merge-tenant-defaults/mx/cnbv/merge.d.ts.map +1 -0
  106. package/dist/resources/merge-tenant-defaults/mx/cnbv/merge.js +38 -0
  107. package/dist/resources/merge-tenant-defaults/utils.d.ts +8 -0
  108. package/dist/resources/merge-tenant-defaults/utils.d.ts.map +1 -0
  109. package/dist/resources/merge-tenant-defaults/utils.js +36 -0
  110. package/dist/resources/mx/av/ari/index.d.ts +1 -0
  111. package/dist/resources/mx/av/ari/index.d.ts.map +1 -1
  112. package/dist/resources/mx/av/ari/index.js +1 -0
  113. package/dist/resources/mx/av/ari/products.d.ts +54 -0
  114. package/dist/resources/mx/av/ari/products.d.ts.map +1 -0
  115. package/dist/resources/mx/av/ari/products.js +165 -0
  116. package/dist/resources/mx/av/ari/tenant.d.ts +30 -0
  117. package/dist/resources/mx/av/ari/tenant.d.ts.map +1 -0
  118. package/dist/resources/mx/av/ari/tenant.js +36 -0
  119. package/dist/resources/mx/av/ari/transactions.d.ts +1 -0
  120. package/dist/resources/mx/av/ari/transactions.d.ts.map +1 -1
  121. package/dist/resources/mx/av/ari/transactions.js +17 -6
  122. package/dist/resources/mx/av/avi/index.d.ts +1 -0
  123. package/dist/resources/mx/av/avi/index.d.ts.map +1 -1
  124. package/dist/resources/mx/av/avi/index.js +1 -0
  125. package/dist/resources/mx/av/avi/products.d.ts +28 -0
  126. package/dist/resources/mx/av/avi/products.d.ts.map +1 -0
  127. package/dist/resources/mx/av/avi/products.js +119 -0
  128. package/dist/resources/mx/av/avi/tenant.d.ts +33 -0
  129. package/dist/resources/mx/av/avi/tenant.d.ts.map +1 -0
  130. package/dist/resources/mx/av/avi/tenant.js +39 -0
  131. package/dist/resources/mx/av/avi/transactions.d.ts +1 -0
  132. package/dist/resources/mx/av/avi/transactions.d.ts.map +1 -1
  133. package/dist/resources/mx/av/avi/transactions.js +17 -6
  134. package/dist/resources/mx/av/jys/index.d.ts +1 -0
  135. package/dist/resources/mx/av/jys/index.d.ts.map +1 -1
  136. package/dist/resources/mx/av/jys/index.js +1 -0
  137. package/dist/resources/mx/av/jys/products.d.ts +28 -0
  138. package/dist/resources/mx/av/jys/products.d.ts.map +1 -0
  139. package/dist/resources/mx/av/jys/products.js +119 -0
  140. package/dist/resources/mx/av/jys/tenant.d.ts +30 -0
  141. package/dist/resources/mx/av/jys/tenant.d.ts.map +1 -0
  142. package/dist/resources/mx/av/jys/tenant.js +36 -0
  143. package/dist/resources/mx/av/jys/transactions.d.ts +1 -0
  144. package/dist/resources/mx/av/jys/transactions.d.ts.map +1 -1
  145. package/dist/resources/mx/av/jys/transactions.js +17 -6
  146. package/dist/resources/mx/av/mjr/index.d.ts +1 -0
  147. package/dist/resources/mx/av/mjr/index.d.ts.map +1 -1
  148. package/dist/resources/mx/av/mjr/index.js +1 -0
  149. package/dist/resources/mx/av/mjr/products.d.ts +28 -0
  150. package/dist/resources/mx/av/mjr/products.d.ts.map +1 -0
  151. package/dist/resources/mx/av/mjr/products.js +138 -0
  152. package/dist/resources/mx/av/mjr/tenant.d.ts +30 -0
  153. package/dist/resources/mx/av/mjr/tenant.d.ts.map +1 -0
  154. package/dist/resources/mx/av/mjr/tenant.js +36 -0
  155. package/dist/resources/mx/av/mjr/transactions.d.ts +1 -0
  156. package/dist/resources/mx/av/mjr/transactions.d.ts.map +1 -1
  157. package/dist/resources/mx/av/mjr/transactions.js +17 -6
  158. package/dist/resources/mx/av/tsc/index.d.ts +1 -0
  159. package/dist/resources/mx/av/tsc/index.d.ts.map +1 -1
  160. package/dist/resources/mx/av/tsc/index.js +1 -0
  161. package/dist/resources/mx/av/tsc/products.d.ts +28 -0
  162. package/dist/resources/mx/av/tsc/products.d.ts.map +1 -0
  163. package/dist/resources/mx/av/tsc/products.js +130 -0
  164. package/dist/resources/mx/av/tsc/tenant.d.ts +30 -0
  165. package/dist/resources/mx/av/tsc/tenant.d.ts.map +1 -0
  166. package/dist/resources/mx/av/tsc/tenant.js +36 -0
  167. package/dist/resources/mx/av/tsc/transactions.d.ts +1 -0
  168. package/dist/resources/mx/av/tsc/transactions.d.ts.map +1 -1
  169. package/dist/resources/mx/av/tsc/transactions.js +17 -6
  170. package/dist/resources/mx/cnbv/transmisor/index.d.ts +1 -0
  171. package/dist/resources/mx/cnbv/transmisor/index.d.ts.map +1 -1
  172. package/dist/resources/mx/cnbv/transmisor/index.js +1 -0
  173. package/dist/resources/mx/cnbv/transmisor/products.d.ts +28 -0
  174. package/dist/resources/mx/cnbv/transmisor/products.d.ts.map +1 -0
  175. package/dist/resources/mx/cnbv/transmisor/products.js +138 -0
  176. package/dist/resources/mx/cnbv/transmisor/tenant.d.ts +32 -0
  177. package/dist/resources/mx/cnbv/transmisor/tenant.d.ts.map +1 -0
  178. package/dist/resources/mx/cnbv/transmisor/tenant.js +36 -0
  179. package/dist/resources/mx/cnbv/transmisor/transactions.d.ts +1 -0
  180. package/dist/resources/mx/cnbv/transmisor/transactions.d.ts.map +1 -1
  181. package/dist/resources/mx/cnbv/transmisor/transactions.js +15 -5
  182. package/dist/resources/mx/index.d.ts +3 -1
  183. package/dist/resources/mx/index.d.ts.map +1 -1
  184. package/dist/resources/mx/index.js +2 -1
  185. package/dist/resources/mx/products.d.ts +86 -0
  186. package/dist/resources/mx/products.d.ts.map +1 -0
  187. package/dist/resources/mx/products.js +170 -0
  188. package/dist/resources/mx/tenant.d.ts +69 -0
  189. package/dist/resources/mx/tenant.d.ts.map +1 -0
  190. package/dist/resources/mx/tenant.js +48 -0
  191. package/dist/resources/mx/transactions.d.ts +1 -0
  192. package/dist/resources/mx/transactions.d.ts.map +1 -1
  193. package/dist/resources/mx/transactions.js +17 -6
  194. package/dist/resources/products.d.ts +137 -0
  195. package/dist/resources/products.d.ts.map +1 -0
  196. package/dist/resources/products.js +200 -0
  197. package/dist/resources/reference-data/index.d.ts +0 -3
  198. package/dist/resources/reference-data/index.d.ts.map +1 -1
  199. package/dist/resources/reference-data/index.js +0 -3
  200. package/dist/resources/reference-data/reference-data.d.ts +26 -20
  201. package/dist/resources/reference-data/reference-data.d.ts.map +1 -1
  202. package/dist/resources/reference-data/reference-data.js +58 -23
  203. package/dist/resources/roles.d.ts +20 -0
  204. package/dist/resources/roles.d.ts.map +1 -0
  205. package/dist/resources/roles.js +50 -0
  206. package/dist/resources/rule-templates.d.ts +0 -5
  207. package/dist/resources/rule-templates.d.ts.map +1 -1
  208. package/dist/resources/rule-templates.js +0 -8
  209. package/dist/resources/rules.d.ts +17 -1
  210. package/dist/resources/rules.d.ts.map +1 -1
  211. package/dist/resources/rules.js +27 -0
  212. package/dist/resources/tags.d.ts +22 -0
  213. package/dist/resources/tags.d.ts.map +1 -0
  214. package/dist/resources/tags.js +63 -0
  215. package/dist/resources/tenant.d.ts +52 -0
  216. package/dist/resources/tenant.d.ts.map +1 -0
  217. package/dist/resources/tenant.js +85 -0
  218. package/dist/resources/transactions.d.ts +56 -1
  219. package/dist/resources/transactions.d.ts.map +1 -1
  220. package/dist/resources/transactions.js +203 -6
  221. package/dist/resources/users.d.ts +61 -0
  222. package/dist/resources/users.d.ts.map +1 -0
  223. package/dist/resources/users.js +71 -0
  224. package/dist/sdk/ComplianceSDK.d.ts +46 -1
  225. package/dist/sdk/ComplianceSDK.d.ts.map +1 -1
  226. package/dist/sdk/ComplianceSDK.js +52 -1
  227. package/dist/sdk/base.d.ts.map +1 -1
  228. package/dist/sdk/base.js +2 -1
  229. package/dist/sdk/mx/ComplianceSDK.d.ts +5 -22
  230. package/dist/sdk/mx/ComplianceSDK.d.ts.map +1 -1
  231. package/dist/sdk/mx/ComplianceSDK.js +5 -33
  232. package/dist/sdk/mx/av/ari/ComplianceSDK.d.ts +5 -26
  233. package/dist/sdk/mx/av/ari/ComplianceSDK.d.ts.map +1 -1
  234. package/dist/sdk/mx/av/ari/ComplianceSDK.js +4 -27
  235. package/dist/sdk/mx/av/ari/types.d.ts +4 -5
  236. package/dist/sdk/mx/av/ari/types.d.ts.map +1 -1
  237. package/dist/sdk/mx/av/ari/types.js +2 -1
  238. package/dist/sdk/mx/av/avi/ComplianceSDK.d.ts +5 -1
  239. package/dist/sdk/mx/av/avi/ComplianceSDK.d.ts.map +1 -1
  240. package/dist/sdk/mx/av/avi/ComplianceSDK.js +4 -1
  241. package/dist/sdk/mx/av/avi/types.d.ts +4 -5
  242. package/dist/sdk/mx/av/avi/types.d.ts.map +1 -1
  243. package/dist/sdk/mx/av/avi/types.js +2 -1
  244. package/dist/sdk/mx/av/jys/ComplianceSDK.d.ts +5 -7
  245. package/dist/sdk/mx/av/jys/ComplianceSDK.d.ts.map +1 -1
  246. package/dist/sdk/mx/av/jys/ComplianceSDK.js +4 -8
  247. package/dist/sdk/mx/av/jys/types.d.ts +4 -5
  248. package/dist/sdk/mx/av/jys/types.d.ts.map +1 -1
  249. package/dist/sdk/mx/av/jys/types.js +2 -1
  250. package/dist/sdk/mx/av/mjr/ComplianceSDK.d.ts +5 -19
  251. package/dist/sdk/mx/av/mjr/ComplianceSDK.d.ts.map +1 -1
  252. package/dist/sdk/mx/av/mjr/ComplianceSDK.js +4 -20
  253. package/dist/sdk/mx/av/mjr/types.d.ts +4 -5
  254. package/dist/sdk/mx/av/mjr/types.d.ts.map +1 -1
  255. package/dist/sdk/mx/av/mjr/types.js +2 -1
  256. package/dist/sdk/mx/av/tsc/ComplianceSDK.d.ts +5 -7
  257. package/dist/sdk/mx/av/tsc/ComplianceSDK.d.ts.map +1 -1
  258. package/dist/sdk/mx/av/tsc/ComplianceSDK.js +4 -8
  259. package/dist/sdk/mx/av/tsc/types.d.ts +4 -5
  260. package/dist/sdk/mx/av/tsc/types.d.ts.map +1 -1
  261. package/dist/sdk/mx/av/tsc/types.js +2 -1
  262. package/dist/sdk/mx/cnbv/transmisor/ComplianceSDK.d.ts +5 -7
  263. package/dist/sdk/mx/cnbv/transmisor/ComplianceSDK.d.ts.map +1 -1
  264. package/dist/sdk/mx/cnbv/transmisor/ComplianceSDK.js +4 -8
  265. package/dist/sdk/mx/cnbv/transmisor/types.d.ts +4 -5
  266. package/dist/sdk/mx/cnbv/transmisor/types.d.ts.map +1 -1
  267. package/dist/sdk/mx/cnbv/transmisor/types.js +2 -1
  268. package/dist/sdk/mx/index.d.ts.map +1 -1
  269. package/dist/sdk/mx/index.js +2 -0
  270. package/dist/sdk/mx/types.d.ts +3 -6
  271. package/dist/sdk/mx/types.d.ts.map +1 -1
  272. package/dist/sdk/resource-registry.d.ts +3 -0
  273. package/dist/sdk/resource-registry.d.ts.map +1 -1
  274. package/package.json +2 -2
  275. package/dist/resources/mx/ebr.d.ts +0 -214
  276. package/dist/resources/mx/ebr.d.ts.map +0 -1
  277. package/dist/resources/mx/ebr.js +0 -418
  278. package/dist/resources/reference-data/global/basel-aml.d.ts +0 -16
  279. package/dist/resources/reference-data/global/basel-aml.d.ts.map +0 -1
  280. package/dist/resources/reference-data/global/basel-aml.js +0 -46
  281. package/dist/resources/reference-data/global/index.d.ts +0 -2
  282. package/dist/resources/reference-data/global/index.d.ts.map +0 -1
  283. package/dist/resources/reference-data/global/index.js +0 -1
  284. package/dist/resources/reference-data/metadata.d.ts +0 -11
  285. package/dist/resources/reference-data/metadata.d.ts.map +0 -1
  286. package/dist/resources/reference-data/metadata.js +0 -22
  287. package/dist/resources/reference-data/mx/index.d.ts +0 -2
  288. package/dist/resources/reference-data/mx/index.d.ts.map +0 -1
  289. package/dist/resources/reference-data/mx/index.js +0 -1
  290. package/dist/resources/reference-data/mx/postal-codes.d.ts +0 -16
  291. package/dist/resources/reference-data/mx/postal-codes.d.ts.map +0 -1
  292. package/dist/resources/reference-data/mx/postal-codes.js +0 -46
@@ -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
+ }
@@ -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"}
@@ -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"}
@@ -51,6 +51,9 @@ export class RuleEvaluation extends BaseModel {
51
51
  get durationMs() {
52
52
  return this._data.durationMs;
53
53
  }
54
+ get inputs() {
55
+ return this._data.inputs ?? null;
56
+ }
54
57
  get resolvedVariables() {
55
58
  return this._data.resolvedVariables ?? null;
56
59
  }
@@ -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,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMnC;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACnB;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,SAAQ,SAAS,CAAC,eAAe,CAAC;IAK1D;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAMD;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAW5B;IAMD;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAE/B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAMD;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAKpD;;OAEG;IACH,IAAI,aAAa,IAAI,eAAe,CAAC,eAAe,CAAC,CAEpD;IAMD;;OAEG;IACH,IAAI,SAAS,IAAI,IAAI,CAEpB;IAMD;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAElD;IAED;;;;OAIG;IACH,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAItD;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,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE"}
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/models/Transaction.ts"],"names":[],"mappings":"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"}