@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
@@ -7,6 +7,20 @@
7
7
  import { TransactionStatus } from "@artu-ai/shared";
8
8
  import { BaseModel } from "./base";
9
9
  // ===========================
10
+ // Utilities
11
+ // ===========================
12
+ function applyRiskRounding(value, mode) {
13
+ switch (mode) {
14
+ case "floor":
15
+ return Math.floor(value);
16
+ case "round":
17
+ return Math.round(value);
18
+ case "ceil":
19
+ default:
20
+ return Math.ceil(value);
21
+ }
22
+ }
23
+ // ===========================
10
24
  // Transaction Model
11
25
  // ===========================
12
26
  /**
@@ -97,6 +111,12 @@ export class Transaction extends BaseModel {
97
111
  get isAlerted() {
98
112
  return this._data.isAlerted ?? false;
99
113
  }
114
+ /**
115
+ * When the transaction was first added to an active alert (null if not alerted)
116
+ */
117
+ get alertedAt() {
118
+ return this._data.alertedAt ?? null;
119
+ }
100
120
  /**
101
121
  * External ID for integration with other systems
102
122
  */
@@ -109,6 +129,12 @@ export class Transaction extends BaseModel {
109
129
  get description() {
110
130
  return this._data.description;
111
131
  }
132
+ /**
133
+ * Associated product ID
134
+ */
135
+ get productId() {
136
+ return this._data.productId;
137
+ }
112
138
  // ─────────────────────────────────────────────────────────────────
113
139
  // Jurisdiction
114
140
  // ─────────────────────────────────────────────────────────────────
@@ -118,6 +144,12 @@ export class Transaction extends BaseModel {
118
144
  get scopes() {
119
145
  return this._data.scopes ?? [];
120
146
  }
147
+ /**
148
+ * Tags applied to this transaction.
149
+ */
150
+ get tags() {
151
+ return this._data.tags ?? [];
152
+ }
121
153
  /**
122
154
  * Checks if transaction has data for a specific jurisdiction
123
155
  */
@@ -133,6 +165,98 @@ export class Transaction extends BaseModel {
133
165
  return this._data.jurisdictions ?? {};
134
166
  }
135
167
  // ─────────────────────────────────────────────────────────────────
168
+ // Risk Assessments
169
+ // ─────────────────────────────────────────────────────────────────
170
+ /**
171
+ * Raw risk assessments map — keyed by assessment name, each value is an
172
+ * append-only array of snapshots representing the assessment history.
173
+ */
174
+ get riskAssessments() {
175
+ return this._data.riskAssessments ?? {};
176
+ }
177
+ /**
178
+ * Names of all risk assessments attached to this transaction.
179
+ */
180
+ get riskAssessmentNames() {
181
+ return Object.keys(this.riskAssessments);
182
+ }
183
+ /**
184
+ * Retrieve a specific risk assessment snapshot by name and optional version.
185
+ * Version is the 0-based index in the append-only history array.
186
+ * Defaults to the latest (most recent) version.
187
+ *
188
+ * @param name - The assessment name
189
+ * @param version - Optional 0-based version index (defaults to latest)
190
+ * @returns The snapshot, or undefined if not found
191
+ */
192
+ riskAssessment(name, version) {
193
+ const snapshots = this.riskAssessments[name];
194
+ if (!snapshots || snapshots.length === 0)
195
+ return undefined;
196
+ const idx = version ?? snapshots.length - 1;
197
+ return snapshots[idx];
198
+ }
199
+ /**
200
+ * List all available versions for a named risk assessment.
201
+ *
202
+ * @param name - The assessment name
203
+ * @returns Array of `{ version, calculatedAt }` entries, or empty array if not found
204
+ */
205
+ riskAssessmentVersions(name) {
206
+ const snapshots = this.riskAssessments[name];
207
+ if (!snapshots)
208
+ return [];
209
+ return snapshots.map((s, i) => ({
210
+ version: i,
211
+ calculatedAt: s.calculatedAt,
212
+ }));
213
+ }
214
+ /**
215
+ * Get the overall score for a risk assessment.
216
+ *
217
+ * - With a name: returns the overall score of the latest version of that assessment.
218
+ * - Without a name: returns the overall score of the most recently calculated
219
+ * assessment across all assessments (by `calculatedAt`).
220
+ *
221
+ * @param name - Optional assessment name
222
+ * @returns The overall score, or undefined if no assessments exist
223
+ */
224
+ riskAssessmentScore(name) {
225
+ if (name != null) {
226
+ return this.riskAssessment(name)?.overall;
227
+ }
228
+ return this._latestRiskSnapshot()?.overall;
229
+ }
230
+ /**
231
+ * Get the display-ready risk score for the most recent assessment.
232
+ * Returns the score scaled to maxScore and rounded per the stored mode,
233
+ * along with the maxScore denominator.
234
+ *
235
+ * @returns `{ score, maxScore }` or undefined if no assessments exist
236
+ */
237
+ riskAssessmentDisplayScore() {
238
+ const snapshot = this._latestRiskSnapshot();
239
+ if (!snapshot)
240
+ return undefined;
241
+ const maxScore = snapshot.maxScore ?? 100;
242
+ const mode = snapshot.roundingMode ?? "ceil";
243
+ return {
244
+ score: applyRiskRounding(snapshot.overall * maxScore, mode),
245
+ maxScore,
246
+ };
247
+ }
248
+ /** Find the most recently calculated snapshot across all assessments */
249
+ _latestRiskSnapshot() {
250
+ let latest;
251
+ for (const snapshots of Object.values(this.riskAssessments)) {
252
+ const last = snapshots[snapshots.length - 1];
253
+ if (last && (!latest || last.calculatedAt > latest.calculatedAt)) {
254
+ latest = last;
255
+ }
256
+ }
257
+ return latest;
258
+ }
259
+ // ─────────────────────────────────────────────────────────────────
136
260
  // Timing
137
261
  // ─────────────────────────────────────────────────────────────────
138
262
  /**
@@ -15,9 +15,10 @@ export { Client, type ClientData, isClient, isCompany, isIndividual, isTrust, }
15
15
  export { ContactMethod, type ContactMethodData } from "./ContactMethod";
16
16
  export { Document, type DocumentData } from "./Document";
17
17
  export { isLinkedClient, LinkedClient, type LinkedClientData, } from "./LinkedClient";
18
- export { isMexActaConstitutiva, isMexAddress, isMexAddressProof, isMexAlert, isMexAlertClientItem, isMexAlertItem, isMexAlertTransactionItem, isMexBankAccount, isMexClient, isMexCurp, isMexDocument, isMexIneBack, isMexIneFront, isMexPassport, isMexPoderNotarial, isMexRfcConstancia, isMexTransaction, MexActaConstitutivaDocument, MexAddress, type MexAddressData, MexAddressProofDocument, MexAlert, MexAlertClientItem, type MexAlertClientItemData, type MexAlertData, MexAlertItem, type MexAlertItemData, MexAlertTransactionItem, type MexAlertTransactionItemData, MexBankAccount, type MexBankAccountData, MexClient, type MexClientData, MexCurpDocument, MexDocument, MexIneBackDocument, MexIneFrontDocument, MexPassportDocument, MexPoderNotarialDocument, MexRfcConstanciaDocument, MexTransaction, type MexTransactionData, } from "./mx";
19
- export { isActividadVulnerable, isActividadVulnerableAlert, isActividadVulnerableAlertClientItem, isActividadVulnerableAlertItem, isActividadVulnerableAlertTransactionItem, isActividadVulnerableTransaction, isMexARIAlert, isMexARIAlertClientItem, isMexARIAlertItem, isMexARIAlertTransactionItem, isMexARIClient, isMexARITransaction, isMexAVIAlert, isMexAVIAlertClientItem, isMexAVIAlertItem, isMexAVIAlertTransactionItem, isMexAVIClient, isMexAVITransaction, isMexJYSAlert, isMexJYSAlertClientItem, isMexJYSAlertItem, isMexJYSAlertTransactionItem, isMexJYSClient, isMexJYSTransaction, isMexMJRAlert, isMexMJRAlertClientItem, isMexMJRAlertItem, isMexMJRAlertTransactionItem, isMexMJRClient, isMexMJRTransaction, isMexTSCAlert, isMexTSCAlertClientItem, isMexTSCAlertItem, isMexTSCAlertTransactionItem, isMexTSCClient, isMexTSCTransaction, MexActividadVulnerableAlert, MexActividadVulnerableAlertClientItem, type MexActividadVulnerableAlertClientItemData, type MexActividadVulnerableAlertData, MexActividadVulnerableAlertItem, type MexActividadVulnerableAlertItemData, MexActividadVulnerableAlertTransactionItem, type MexActividadVulnerableAlertTransactionItemData, MexActividadVulnerableClient, MexActividadVulnerableTransaction, MexARIAlert, MexARIAlertClientItem, type MexARIAlertClientItemData, type MexARIAlertData, MexARIAlertItem, type MexARIAlertItemData, MexARIAlertTransactionItem, type MexARIAlertTransactionItemData, MexARIClient, MexARITransaction, MexAVIAlert, MexAVIAlertClientItem, type MexAVIAlertClientItemData, type MexAVIAlertData, MexAVIAlertItem, type MexAVIAlertItemData, MexAVIAlertTransactionItem, type MexAVIAlertTransactionItemData, MexAVIClient, MexAVITransaction, MexJYSAlert, MexJYSAlertClientItem, type MexJYSAlertClientItemData, type MexJYSAlertData, MexJYSAlertItem, type MexJYSAlertItemData, MexJYSAlertTransactionItem, type MexJYSAlertTransactionItemData, MexJYSClient, MexJYSTransaction, MexMJRAlert, MexMJRAlertClientItem, type MexMJRAlertClientItemData, type MexMJRAlertData, MexMJRAlertItem, type MexMJRAlertItemData, MexMJRAlertTransactionItem, type MexMJRAlertTransactionItemData, MexMJRClient, MexMJRTransaction, MexTSCAlert, MexTSCAlertClientItem, type MexTSCAlertClientItemData, type MexTSCAlertData, MexTSCAlertItem, type MexTSCAlertItemData, MexTSCAlertTransactionItem, type MexTSCAlertTransactionItemData, MexTSCClient, MexTSCTransaction, } from "./mx/av";
20
- export { isMexTransmisorAlert, isMexTransmisorAlertClientItem, isMexTransmisorAlertItem, isMexTransmisorAlertTransactionItem, isMexTransmisorClient, isMexTransmisorTransaction, MexTransmisorAlert, MexTransmisorAlertClientItem, type MexTransmisorAlertClientItemData, type MexTransmisorAlertData, MexTransmisorAlertItem, type MexTransmisorAlertItemData, MexTransmisorAlertTransactionItem, type MexTransmisorAlertTransactionItemData, MexTransmisorClient, MexTransmisorTransaction, } from "./mx/cnbv";
18
+ export { isMexActaConstitutiva, isMexAddress, isMexAddressProof, isMexAlert, isMexAlertClientItem, isMexAlertItem, isMexAlertTransactionItem, isMexBankAccount, isMexClient, isMexCurp, isMexDocument, isMexIneBack, isMexIneFront, isMexPassport, isMexPoderNotarial, isMexProduct, isMexRfcConstancia, isMexTransaction, MexActaConstitutivaDocument, MexAddress, type MexAddressData, MexAddressProofDocument, MexAlert, MexAlertClientItem, type MexAlertClientItemData, type MexAlertData, MexAlertItem, type MexAlertItemData, MexAlertTransactionItem, type MexAlertTransactionItemData, MexBankAccount, type MexBankAccountData, MexClient, type MexClientData, MexCurpDocument, MexDocument, MexIneBackDocument, MexIneFrontDocument, MexPassportDocument, MexPoderNotarialDocument, MexProduct, type MexProductData, MexRfcConstanciaDocument, MexTransaction, type MexTransactionData, } from "./mx";
19
+ export { isActividadVulnerable, isActividadVulnerableAlert, isActividadVulnerableAlertClientItem, isActividadVulnerableAlertItem, isActividadVulnerableAlertTransactionItem, isActividadVulnerableProduct, isActividadVulnerableTransaction, isMexARIAlert, isMexARIAlertClientItem, isMexARIAlertItem, isMexARIAlertTransactionItem, isMexARIClient, isMexARIProduct, isMexARITransaction, isMexAVIAlert, isMexAVIAlertClientItem, isMexAVIAlertItem, isMexAVIAlertTransactionItem, isMexAVIClient, isMexAVIProduct, isMexAVITransaction, isMexJYSAlert, isMexJYSAlertClientItem, isMexJYSAlertItem, isMexJYSAlertTransactionItem, isMexJYSClient, isMexJYSProduct, isMexJYSTransaction, isMexMJRAlert, isMexMJRAlertClientItem, isMexMJRAlertItem, isMexMJRAlertTransactionItem, isMexMJRClient, isMexMJRProduct, isMexMJRTransaction, isMexTSCAlert, isMexTSCAlertClientItem, isMexTSCAlertItem, isMexTSCAlertTransactionItem, isMexTSCClient, isMexTSCProduct, isMexTSCTransaction, MexActividadVulnerableAlert, MexActividadVulnerableAlertClientItem, type MexActividadVulnerableAlertClientItemData, type MexActividadVulnerableAlertData, MexActividadVulnerableAlertItem, type MexActividadVulnerableAlertItemData, MexActividadVulnerableAlertTransactionItem, type MexActividadVulnerableAlertTransactionItemData, MexActividadVulnerableClient, MexActividadVulnerableProduct, MexActividadVulnerableTransaction, MexARIAlert, MexARIAlertClientItem, type MexARIAlertClientItemData, type MexARIAlertData, MexARIAlertItem, type MexARIAlertItemData, MexARIAlertTransactionItem, type MexARIAlertTransactionItemData, MexARIClient, MexARIProduct, MexARITransaction, MexAVIAlert, MexAVIAlertClientItem, type MexAVIAlertClientItemData, type MexAVIAlertData, MexAVIAlertItem, type MexAVIAlertItemData, MexAVIAlertTransactionItem, type MexAVIAlertTransactionItemData, MexAVIClient, MexAVIProduct, MexAVITransaction, MexJYSAlert, MexJYSAlertClientItem, type MexJYSAlertClientItemData, type MexJYSAlertData, MexJYSAlertItem, type MexJYSAlertItemData, MexJYSAlertTransactionItem, type MexJYSAlertTransactionItemData, MexJYSClient, MexJYSProduct, MexJYSTransaction, MexMJRAlert, MexMJRAlertClientItem, type MexMJRAlertClientItemData, type MexMJRAlertData, MexMJRAlertItem, type MexMJRAlertItemData, MexMJRAlertTransactionItem, type MexMJRAlertTransactionItemData, MexMJRClient, MexMJRProduct, MexMJRTransaction, MexTSCAlert, MexTSCAlertClientItem, type MexTSCAlertClientItemData, type MexTSCAlertData, MexTSCAlertItem, type MexTSCAlertItemData, MexTSCAlertTransactionItem, type MexTSCAlertTransactionItemData, MexTSCClient, MexTSCProduct, MexTSCTransaction, } from "./mx/av";
20
+ export { isMexCNBVProduct, isMexTransmisorAlert, isMexTransmisorAlertClientItem, isMexTransmisorAlertItem, isMexTransmisorAlertTransactionItem, isMexTransmisorClient, isMexTransmisorProduct, isMexTransmisorTransaction, MexCNBVProduct, MexTransmisorAlert, MexTransmisorAlertClientItem, type MexTransmisorAlertClientItemData, type MexTransmisorAlertData, MexTransmisorAlertItem, type MexTransmisorAlertItemData, MexTransmisorAlertTransactionItem, type MexTransmisorAlertTransactionItemData, MexTransmisorClient, MexTransmisorProduct, MexTransmisorTransaction, } from "./mx/cnbv";
21
+ export { isProduct, Product, type ProductData } from "./Product";
21
22
  export { isRule, Rule, type RuleData } from "./Rule";
22
23
  export { isRuleEvaluation, RuleEvaluation, type RuleEvaluationData, } from "./RuleEvaluation";
23
24
  export { isRuleTemplate, RuleTemplate, type RuleTemplateData, } from "./RuleTemplate";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export { ContactMethod } from "./ContactMethod";
20
20
  export { Document } from "./Document";
21
21
  export { isLinkedClient, LinkedClient, } from "./LinkedClient";
22
22
  // Mexico hierarchy
23
- export { isMexActaConstitutiva, isMexAddress, isMexAddressProof, isMexAlert, isMexAlertClientItem, isMexAlertItem, isMexAlertTransactionItem, isMexBankAccount, isMexClient, isMexCurp, isMexDocument, isMexIneBack, isMexIneFront, isMexPassport, isMexPoderNotarial, isMexRfcConstancia, isMexTransaction, MexActaConstitutivaDocument, MexAddress, MexAddressProofDocument,
23
+ export { isMexActaConstitutiva, isMexAddress, isMexAddressProof, isMexAlert, isMexAlertClientItem, isMexAlertItem, isMexAlertTransactionItem, isMexBankAccount, isMexClient, isMexCurp, isMexDocument, isMexIneBack, isMexIneFront, isMexPassport, isMexPoderNotarial, isMexProduct, isMexRfcConstancia, isMexTransaction, MexActaConstitutivaDocument, MexAddress, MexAddressProofDocument,
24
24
  // Mexico alerts
25
25
  MexAlert,
26
26
  // Mexico alert client items
@@ -28,8 +28,10 @@ MexAlertClientItem, MexAlertItem,
28
28
  // Mexico alert transaction items
29
29
  MexAlertTransactionItem, MexBankAccount, MexClient, MexCurpDocument,
30
30
  // Mexico documents
31
- MexDocument, MexIneBackDocument, MexIneFrontDocument, MexPassportDocument, MexPoderNotarialDocument, MexRfcConstanciaDocument, MexTransaction, } from "./mx";
32
- export { isActividadVulnerable, isActividadVulnerableAlert, isActividadVulnerableAlertClientItem, isActividadVulnerableAlertItem, isActividadVulnerableAlertTransactionItem, isActividadVulnerableTransaction, isMexARIAlert, isMexARIAlertClientItem, isMexARIAlertItem, isMexARIAlertTransactionItem, isMexARIClient, isMexARITransaction, isMexAVIAlert, isMexAVIAlertClientItem, isMexAVIAlertItem, isMexAVIAlertTransactionItem, isMexAVIClient, isMexAVITransaction, isMexJYSAlert, isMexJYSAlertClientItem, isMexJYSAlertItem, isMexJYSAlertTransactionItem, isMexJYSClient, isMexJYSTransaction, isMexMJRAlert, isMexMJRAlertClientItem, isMexMJRAlertItem, isMexMJRAlertTransactionItem, isMexMJRClient, isMexMJRTransaction, isMexTSCAlert, isMexTSCAlertClientItem, isMexTSCAlertItem, isMexTSCAlertTransactionItem, isMexTSCClient, isMexTSCTransaction,
31
+ MexDocument, MexIneBackDocument, MexIneFrontDocument, MexPassportDocument, MexPoderNotarialDocument,
32
+ // Mexico product
33
+ MexProduct, MexRfcConstanciaDocument, MexTransaction, } from "./mx";
34
+ export { isActividadVulnerable, isActividadVulnerableAlert, isActividadVulnerableAlertClientItem, isActividadVulnerableAlertItem, isActividadVulnerableAlertTransactionItem, isActividadVulnerableProduct, isActividadVulnerableTransaction, isMexARIAlert, isMexARIAlertClientItem, isMexARIAlertItem, isMexARIAlertTransactionItem, isMexARIClient, isMexARIProduct, isMexARITransaction, isMexAVIAlert, isMexAVIAlertClientItem, isMexAVIAlertItem, isMexAVIAlertTransactionItem, isMexAVIClient, isMexAVIProduct, isMexAVITransaction, isMexJYSAlert, isMexJYSAlertClientItem, isMexJYSAlertItem, isMexJYSAlertTransactionItem, isMexJYSClient, isMexJYSProduct, isMexJYSTransaction, isMexMJRAlert, isMexMJRAlertClientItem, isMexMJRAlertItem, isMexMJRAlertTransactionItem, isMexMJRClient, isMexMJRProduct, isMexMJRTransaction, isMexTSCAlert, isMexTSCAlertClientItem, isMexTSCAlertItem, isMexTSCAlertTransactionItem, isMexTSCClient, isMexTSCProduct, isMexTSCTransaction,
33
35
  // Alerts
34
36
  MexActividadVulnerableAlert,
35
37
  // Alert Client Items
@@ -38,11 +40,17 @@ MexActividadVulnerableAlertClientItem, MexActividadVulnerableAlertItem,
38
40
  MexActividadVulnerableAlertTransactionItem,
39
41
  // Clients
40
42
  MexActividadVulnerableClient,
43
+ // Products
44
+ MexActividadVulnerableProduct,
41
45
  // Transactions
42
- MexActividadVulnerableTransaction, MexARIAlert, MexARIAlertClientItem, MexARIAlertItem, MexARIAlertTransactionItem, MexARIClient, MexARITransaction, MexAVIAlert, MexAVIAlertClientItem, MexAVIAlertItem, MexAVIAlertTransactionItem, MexAVIClient, MexAVITransaction, MexJYSAlert, MexJYSAlertClientItem, MexJYSAlertItem, MexJYSAlertTransactionItem, MexJYSClient, MexJYSTransaction, MexMJRAlert, MexMJRAlertClientItem, MexMJRAlertItem, MexMJRAlertTransactionItem, MexMJRClient, MexMJRTransaction, MexTSCAlert, MexTSCAlertClientItem, MexTSCAlertItem, MexTSCAlertTransactionItem, MexTSCClient, MexTSCTransaction, } from "./mx/av";
43
- export { isMexTransmisorAlert, isMexTransmisorAlertClientItem, isMexTransmisorAlertItem, isMexTransmisorAlertTransactionItem, isMexTransmisorClient, isMexTransmisorTransaction, MexTransmisorAlert, MexTransmisorAlertClientItem, MexTransmisorAlertItem, MexTransmisorAlertTransactionItem,
46
+ MexActividadVulnerableTransaction, MexARIAlert, MexARIAlertClientItem, MexARIAlertItem, MexARIAlertTransactionItem, MexARIClient, MexARIProduct, MexARITransaction, MexAVIAlert, MexAVIAlertClientItem, MexAVIAlertItem, MexAVIAlertTransactionItem, MexAVIClient, MexAVIProduct, MexAVITransaction, MexJYSAlert, MexJYSAlertClientItem, MexJYSAlertItem, MexJYSAlertTransactionItem, MexJYSClient, MexJYSProduct, MexJYSTransaction, MexMJRAlert, MexMJRAlertClientItem, MexMJRAlertItem, MexMJRAlertTransactionItem, MexMJRClient, MexMJRProduct, MexMJRTransaction, MexTSCAlert, MexTSCAlertClientItem, MexTSCAlertItem, MexTSCAlertTransactionItem, MexTSCClient, MexTSCProduct, MexTSCTransaction, } from "./mx/av";
47
+ export { isMexCNBVProduct, isMexTransmisorAlert, isMexTransmisorAlertClientItem, isMexTransmisorAlertItem, isMexTransmisorAlertTransactionItem, isMexTransmisorClient, isMexTransmisorProduct, isMexTransmisorTransaction,
48
+ // CNBV Products
49
+ MexCNBVProduct, MexTransmisorAlert, MexTransmisorAlertClientItem, MexTransmisorAlertItem, MexTransmisorAlertTransactionItem,
44
50
  // CNBV Transmisor
45
- MexTransmisorClient, MexTransmisorTransaction, } from "./mx/cnbv";
51
+ MexTransmisorClient, MexTransmisorProduct, MexTransmisorTransaction, } from "./mx/cnbv";
52
+ // Product
53
+ export { isProduct, Product } from "./Product";
46
54
  // Rules
47
55
  export { isRule, Rule } from "./Rule";
48
56
  // Rule evaluations
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Mexico Product Model
3
+ *
4
+ * Extends base Product with Mexico-specific accessors.
5
+ */
6
+ import type { MexProductJurisdictionData } from "@artu-ai/shared";
7
+ import { Product, type ProductData } from "../Product";
8
+ /**
9
+ * Product data with Mexico jurisdiction
10
+ */
11
+ export interface MexProductData extends ProductData {
12
+ jurisdictions?: {
13
+ MX?: MexProductJurisdictionData;
14
+ [key: string]: unknown;
15
+ };
16
+ }
17
+ /**
18
+ * Mexico Product Model.
19
+ *
20
+ * Provides typed accessors for Mexico-specific product data.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * if (product instanceof MexProduct) {
25
+ * console.log(`Activities: ${product.activityCodes.join(", ")}`);
26
+ * }
27
+ * ```
28
+ */
29
+ export declare class MexProduct extends Product {
30
+ /**
31
+ * Mexico-specific jurisdiction data
32
+ */
33
+ protected get mexicoData(): MexProductJurisdictionData | undefined;
34
+ /**
35
+ * Whether product is related to any Actividad Vulnerable
36
+ */
37
+ get isActividadVulnerable(): boolean;
38
+ /**
39
+ * Activity codes this product is associated with
40
+ */
41
+ get activityCodes(): string[];
42
+ /**
43
+ * Checks if product is for a specific activity
44
+ */
45
+ hasActivity(code: string): boolean;
46
+ /**
47
+ * Whether product is related to any CNBV subject
48
+ */
49
+ get isCNBV(): boolean;
50
+ toString(): string;
51
+ }
52
+ import type { Product as ProductBase } from "../Product";
53
+ /**
54
+ * Check if product is a Mexico product
55
+ */
56
+ export declare function isMexProduct(product: ProductBase): product is MexProduct;
57
+ //# sourceMappingURL=MexProduct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MexProduct.d.ts","sourceRoot":"","sources":["../../../src/models/mx/MexProduct.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAMvD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IAClD,aAAa,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,0BAA0B,CAAC;QAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,CAAC;CACF;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,UAAW,SAAQ,OAAO;IAKtC;;OAEG;IACH,SAAS,KAAK,UAAU,IAAI,0BAA0B,GAAG,SAAS,CAEjE;IAMD;;OAEG;IACH,IAAI,qBAAqB,IAAI,OAAO,CAInC;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,EAAE,CAI5B;IAED;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQlC;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAIpB;IAMQ,QAAQ,IAAI,MAAM;CAG3B;AAMD,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI,UAAU,CAExE"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Mexico Product Model
3
+ *
4
+ * Extends base Product with Mexico-specific accessors.
5
+ */
6
+ import { Product } from "../Product";
7
+ // ===========================
8
+ // MexProduct Model
9
+ // ===========================
10
+ /**
11
+ * Mexico Product Model.
12
+ *
13
+ * Provides typed accessors for Mexico-specific product data.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * if (product instanceof MexProduct) {
18
+ * console.log(`Activities: ${product.activityCodes.join(", ")}`);
19
+ * }
20
+ * ```
21
+ */
22
+ export class MexProduct extends Product {
23
+ // ─────────────────────────────────────────────────────────────────
24
+ // Mexico Jurisdiction Data
25
+ // ─────────────────────────────────────────────────────────────────
26
+ /**
27
+ * Mexico-specific jurisdiction data
28
+ */
29
+ get mexicoData() {
30
+ return this._data.jurisdictions?.MX;
31
+ }
32
+ // ─────────────────────────────────────────────────────────────────
33
+ // Actividades Vulnerables
34
+ // ─────────────────────────────────────────────────────────────────
35
+ /**
36
+ * Whether product is related to any Actividad Vulnerable
37
+ */
38
+ get isActividadVulnerable() {
39
+ const av = this.mexicoData?.actividadVulnerable;
40
+ if (!av)
41
+ return false;
42
+ return Object.values(av).some(Boolean);
43
+ }
44
+ /**
45
+ * Activity codes this product is associated with
46
+ */
47
+ get activityCodes() {
48
+ const av = this.mexicoData?.actividadVulnerable;
49
+ if (!av)
50
+ return [];
51
+ return Object.keys(av).filter((key) => av[key]);
52
+ }
53
+ /**
54
+ * Checks if product is for a specific activity
55
+ */
56
+ hasActivity(code) {
57
+ return this.activityCodes.includes(code);
58
+ }
59
+ // ─────────────────────────────────────────────────────────────────
60
+ // CNBV
61
+ // ─────────────────────────────────────────────────────────────────
62
+ /**
63
+ * Whether product is related to any CNBV subject
64
+ */
65
+ get isCNBV() {
66
+ const cnbv = this.mexicoData?.cnbv;
67
+ if (!cnbv)
68
+ return false;
69
+ return Object.values(cnbv).some(Boolean);
70
+ }
71
+ // ─────────────────────────────────────────────────────────────────
72
+ // String Representation
73
+ // ─────────────────────────────────────────────────────────────────
74
+ toString() {
75
+ return `MexProduct(${this.id}, ${this.name}, Activities: [${this.activityCodes.join(", ")}])`;
76
+ }
77
+ }
78
+ /**
79
+ * Check if product is a Mexico product
80
+ */
81
+ export function isMexProduct(product) {
82
+ return product instanceof MexProduct;
83
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Mexico Actividad Vulnerable Product Base
3
+ *
4
+ * Common functionality for all Actividad Vulnerable products.
5
+ * Extended by activity-specific models (ARI, AVI, JYS, MJR, TSC).
6
+ */
7
+ import type { ActividadVulnerableProductData } from "@artu-ai/shared";
8
+ import { MexProduct } from "../MexProduct";
9
+ /**
10
+ * Base model for Mexico Actividad Vulnerable products.
11
+ *
12
+ * Provides common accessors for all activity types.
13
+ * Extended by MexARIProduct, MexAVIProduct, MexJYSProduct, etc.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * if (product instanceof MexActividadVulnerableProduct) {
18
+ * console.log(`Activities: ${product.activityCodes.join(", ")}`);
19
+ * }
20
+ * ```
21
+ */
22
+ export declare class MexActividadVulnerableProduct extends MexProduct {
23
+ /**
24
+ * Actividad Vulnerable data for this product
25
+ */
26
+ protected get actividadVulnerableData(): ActividadVulnerableProductData | undefined;
27
+ toString(): string;
28
+ }
29
+ import type { Product } from "../../Product";
30
+ /**
31
+ * Check if product is for any Actividad Vulnerable
32
+ */
33
+ export declare function isActividadVulnerableProduct(product: Product): product is MexActividadVulnerableProduct;
34
+ //# sourceMappingURL=MexActividadVulnerableProduct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MexActividadVulnerableProduct.d.ts","sourceRoot":"","sources":["../../../../src/models/mx/av/MexActividadVulnerableProduct.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C;;;;;;;;;;;;GAYG;AACH,qBAAa,6BAA8B,SAAQ,UAAU;IAK5D;;OAEG;IACH,SAAS,KAAK,uBAAuB,IAClC,8BAA8B,GAC9B,SAAS,CAEX;IAMQ,QAAQ,IAAI,MAAM;CAG3B;AAMD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,OAAO,GACd,OAAO,IAAI,6BAA6B,CAE1C"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Mexico Actividad Vulnerable Product Base
3
+ *
4
+ * Common functionality for all Actividad Vulnerable products.
5
+ * Extended by activity-specific models (ARI, AVI, JYS, MJR, TSC).
6
+ */
7
+ import { MexProduct } from "../MexProduct";
8
+ // ===========================
9
+ // MexActividadVulnerableProduct Model
10
+ // ===========================
11
+ /**
12
+ * Base model for Mexico Actividad Vulnerable products.
13
+ *
14
+ * Provides common accessors for all activity types.
15
+ * Extended by MexARIProduct, MexAVIProduct, MexJYSProduct, etc.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * if (product instanceof MexActividadVulnerableProduct) {
20
+ * console.log(`Activities: ${product.activityCodes.join(", ")}`);
21
+ * }
22
+ * ```
23
+ */
24
+ export class MexActividadVulnerableProduct extends MexProduct {
25
+ // ─────────────────────────────────────────────────────────────────
26
+ // Actividad Vulnerable Data
27
+ // ─────────────────────────────────────────────────────────────────
28
+ /**
29
+ * Actividad Vulnerable data for this product
30
+ */
31
+ get actividadVulnerableData() {
32
+ return this.mexicoData?.actividadVulnerable;
33
+ }
34
+ // ─────────────────────────────────────────────────────────────────
35
+ // String Representation
36
+ // ─────────────────────────────────────────────────────────────────
37
+ toString() {
38
+ return `MexActividadVulnerableProduct(${this.id}, ${this.name}, Activities: [${this.activityCodes.join(", ")}])`;
39
+ }
40
+ }
41
+ /**
42
+ * Check if product is for any Actividad Vulnerable
43
+ */
44
+ export function isActividadVulnerableProduct(product) {
45
+ return product instanceof MexActividadVulnerableProduct;
46
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Mexico ARI (Arrendamiento de Inmuebles - Real Estate Leasing) Product
3
+ *
4
+ * Specialized for real estate leasing product templates.
5
+ */
6
+ import type { ARIProductData } from "@artu-ai/shared";
7
+ import { MexActividadVulnerableProduct } from "../MexActividadVulnerableProduct";
8
+ /**
9
+ * Mexico ARI Product Model.
10
+ *
11
+ * Provides typed accessors for real estate leasing product data.
12
+ * ARI products have property details and payment defaults.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * if (product instanceof MexARIProduct) {
17
+ * console.log(`Operation: ${product.operationType}`);
18
+ * console.log(`Property type: ${product.property?.type}`);
19
+ * console.log(`Payment form: ${product.paymentForm}`);
20
+ * }
21
+ * ```
22
+ */
23
+ export declare class MexARIProduct extends MexActividadVulnerableProduct {
24
+ /**
25
+ * ARI-specific product data
26
+ */
27
+ protected get ariData(): ARIProductData | undefined;
28
+ /**
29
+ * Operation type
30
+ */
31
+ get operationType(): string | undefined;
32
+ /**
33
+ * Property details (type, value, address, folio)
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * product.property?.type // "1" (Casa)
38
+ * product.property?.value // "1500000"
39
+ * product.property?.colonia // "Roma Norte"
40
+ * product.property?.postalCode // "06700"
41
+ * ```
42
+ */
43
+ get property(): ARIProductData["property"] | undefined;
44
+ /**
45
+ * Default payment form
46
+ */
47
+ get paymentForm(): string | undefined;
48
+ /**
49
+ * Default monetary instrument
50
+ */
51
+ get monetaryInstrument(): string | undefined;
52
+ toString(): string;
53
+ }
54
+ import type { Product } from "../../../Product";
55
+ /**
56
+ * Check if product is an ARI (Arrendamiento de Inmuebles) product
57
+ */
58
+ export declare function isMexARIProduct(product: Product): product is MexARIProduct;
59
+ //# sourceMappingURL=MexARIProduct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MexARIProduct.d.ts","sourceRoot":"","sources":["../../../../../src/models/mx/av/ari/MexARIProduct.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAMjF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,SAAQ,6BAA6B;IAK/D;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,cAAc,GAAG,SAAS,CAElD;IAMD;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAMD;;;;;;;;;;OAUG;IACH,IAAI,QAAQ,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,CAErD;IAMD;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAE3C;IAMQ,QAAQ,IAAI,MAAM;CAG3B;AAMD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,aAAa,CAE1E"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Mexico ARI (Arrendamiento de Inmuebles - Real Estate Leasing) Product
3
+ *
4
+ * Specialized for real estate leasing product templates.
5
+ */
6
+ import { MexActividadVulnerableProduct } from "../MexActividadVulnerableProduct";
7
+ // ===========================
8
+ // MexARIProduct Model
9
+ // ===========================
10
+ /**
11
+ * Mexico ARI Product Model.
12
+ *
13
+ * Provides typed accessors for real estate leasing product data.
14
+ * ARI products have property details and payment defaults.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * if (product instanceof MexARIProduct) {
19
+ * console.log(`Operation: ${product.operationType}`);
20
+ * console.log(`Property type: ${product.property?.type}`);
21
+ * console.log(`Payment form: ${product.paymentForm}`);
22
+ * }
23
+ * ```
24
+ */
25
+ export class MexARIProduct extends MexActividadVulnerableProduct {
26
+ // ─────────────────────────────────────────────────────────────────
27
+ // ARI-Specific Data
28
+ // ─────────────────────────────────────────────────────────────────
29
+ /**
30
+ * ARI-specific product data
31
+ */
32
+ get ariData() {
33
+ return this.actividadVulnerableData?.ARI;
34
+ }
35
+ // ─────────────────────────────────────────────────────────────────
36
+ // Operation Fields
37
+ // ─────────────────────────────────────────────────────────────────
38
+ /**
39
+ * Operation type
40
+ */
41
+ get operationType() {
42
+ return this.ariData?.operationType;
43
+ }
44
+ // ─────────────────────────────────────────────────────────────────
45
+ // Property Details
46
+ // ─────────────────────────────────────────────────────────────────
47
+ /**
48
+ * Property details (type, value, address, folio)
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * product.property?.type // "1" (Casa)
53
+ * product.property?.value // "1500000"
54
+ * product.property?.colonia // "Roma Norte"
55
+ * product.property?.postalCode // "06700"
56
+ * ```
57
+ */
58
+ get property() {
59
+ return this.ariData?.property;
60
+ }
61
+ // ─────────────────────────────────────────────────────────────────
62
+ // Payment Defaults
63
+ // ─────────────────────────────────────────────────────────────────
64
+ /**
65
+ * Default payment form
66
+ */
67
+ get paymentForm() {
68
+ return this.ariData?.paymentForm;
69
+ }
70
+ /**
71
+ * Default monetary instrument
72
+ */
73
+ get monetaryInstrument() {
74
+ return this.ariData?.monetaryInstrument;
75
+ }
76
+ // ─────────────────────────────────────────────────────────────────
77
+ // String Representation
78
+ // ─────────────────────────────────────────────────────────────────
79
+ toString() {
80
+ return `MexARIProduct(${this.id}, ${this.name}, propertyType: ${this.property?.type ?? "N/A"})`;
81
+ }
82
+ }
83
+ /**
84
+ * Check if product is an ARI (Arrendamiento de Inmuebles) product
85
+ */
86
+ export function isMexARIProduct(product) {
87
+ return product instanceof MexARIProduct;
88
+ }