@artu-ai/compliance-sdk 0.9.2 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/index.d.ts +2 -2
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/index.js +1 -1
- package/dist/exports/mexico/actividad-vulnerable/avi.d.ts +15 -2
- package/dist/exports/mexico/actividad-vulnerable/avi.d.ts.map +1 -1
- package/dist/exports/mexico/actividad-vulnerable/jys.d.ts +15 -2
- package/dist/exports/mexico/actividad-vulnerable/jys.d.ts.map +1 -1
- package/dist/exports/mexico/actividad-vulnerable/mjr.d.ts +15 -2
- package/dist/exports/mexico/actividad-vulnerable/mjr.d.ts.map +1 -1
- package/dist/exports/mexico/actividad-vulnerable/tsc.d.ts +15 -2
- package/dist/exports/mexico/actividad-vulnerable/tsc.d.ts.map +1 -1
- package/dist/exports/mexico/cnbv/transmisor.d.ts +14 -1
- package/dist/exports/mexico/cnbv/transmisor.d.ts.map +1 -1
- package/dist/exports/mexico/index.d.ts +1 -1
- package/dist/exports/mexico/index.d.ts.map +1 -1
- package/dist/models/Alert.d.ts +0 -4
- package/dist/models/Alert.d.ts.map +1 -1
- package/dist/models/Alert.js +0 -6
- package/dist/namespaces/mexico/actividad-vulnerable/index.d.ts +2 -2
- package/dist/namespaces/mexico/index.d.ts +29 -3
- package/dist/namespaces/mexico/index.d.ts.map +1 -1
- package/dist/resources/alerts.d.ts +17 -18
- package/dist/resources/alerts.d.ts.map +1 -1
- package/dist/resources/alerts.js +28 -28
- package/dist/resources/bank-accounts.d.ts +4 -0
- package/dist/resources/bank-accounts.d.ts.map +1 -1
- package/dist/resources/bank-accounts.js +79 -8
- package/dist/resources/index.d.ts +1 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +2 -0
- package/dist/resources/mex/actividad-vulnerable/avi/alerts.d.ts +10 -23
- package/dist/resources/mex/actividad-vulnerable/avi/alerts.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/avi/alerts.js +33 -52
- package/dist/resources/mex/actividad-vulnerable/jys/alerts.d.ts +9 -13
- package/dist/resources/mex/actividad-vulnerable/jys/alerts.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/jys/alerts.js +32 -42
- package/dist/resources/mex/actividad-vulnerable/mjr/alerts.d.ts +9 -13
- package/dist/resources/mex/actividad-vulnerable/mjr/alerts.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/mjr/alerts.js +32 -42
- package/dist/resources/mex/actividad-vulnerable/tsc/alerts.d.ts +9 -13
- package/dist/resources/mex/actividad-vulnerable/tsc/alerts.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/alerts.js +32 -42
- package/dist/resources/mex/alerts.d.ts +26 -41
- package/dist/resources/mex/alerts.d.ts.map +1 -1
- package/dist/resources/mex/alerts.js +55 -60
- package/dist/resources/mex/cnbv/transmisor/alerts.d.ts +7 -6
- package/dist/resources/mex/cnbv/transmisor/alerts.d.ts.map +1 -1
- package/dist/resources/mex/cnbv/transmisor/alerts.js +27 -32
- package/dist/resources/reports.d.ts +78 -0
- package/dist/resources/reports.d.ts.map +1 -0
- package/dist/resources/reports.js +81 -0
- package/dist/sdk/ComplianceSDK.d.ts +28 -11
- package/dist/sdk/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/ComplianceSDK.js +24 -6
- package/dist/sdk/mex/types.d.ts +2 -0
- package/dist/sdk/mex/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/resources/alerts.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - TSCAlertsResource - Mexico TSC-scoped with flattened TSC fields
|
|
11
11
|
*/
|
|
12
12
|
import { z } from "zod";
|
|
13
|
-
import { createAlertInputSchema, updateAlertInputSchema, upsertAlertInputSchema, updateReportStatusInputSchema, createAlertItemInputSchema, updateAlertItemInputSchema,
|
|
13
|
+
import { createAlertInputSchema, updateAlertInputSchema, upsertAlertInputSchema, updateReportStatusInputSchema, createAlertItemInputSchema, updateAlertItemInputSchema, validateReportInputSchema, generateReportInputSchema, } from "@artu-ai/shared";
|
|
14
14
|
import { BaseResource } from "./base";
|
|
15
15
|
import { Alert, AlertItem, } from "../models";
|
|
16
16
|
// ===========================
|
|
@@ -217,48 +217,48 @@ export class AlertsResource extends BaseResource {
|
|
|
217
217
|
/**
|
|
218
218
|
* Validates a alert and its items.
|
|
219
219
|
*
|
|
220
|
-
* Requires jurisdiction-specific defaults.
|
|
220
|
+
* Requires reportType and optional jurisdiction-specific defaults.
|
|
221
221
|
* For scoped SDKs, use the scoped resource which provides a simpler API.
|
|
222
222
|
*
|
|
223
223
|
* @param alertId - The alert ID to validate
|
|
224
|
-
* @param
|
|
224
|
+
* @param reportType - The report type (e.g., "mex.actividad-vulnerable.avi")
|
|
225
|
+
* @param defaults - Jurisdiction-specific defaults for validation (optional)
|
|
225
226
|
*/
|
|
226
|
-
async
|
|
227
|
-
const validated = this.validate(
|
|
228
|
-
|
|
227
|
+
async validateReport(alertId, reportType, defaults) {
|
|
228
|
+
const validated = this.validate(validateReportInputSchema, {
|
|
229
|
+
alertId,
|
|
230
|
+
reportType,
|
|
231
|
+
defaults,
|
|
232
|
+
});
|
|
233
|
+
return this.execute(() => this.trpc.alerts.validateReport.mutate(validated));
|
|
229
234
|
}
|
|
230
235
|
/**
|
|
231
236
|
* Validates and generates the alert output (e.g., XML for Mexico alerts).
|
|
232
237
|
*
|
|
233
238
|
* Performs validation first:
|
|
234
239
|
* - If validation fails, returns `{ status: "validation_failed", validation: {...} }`
|
|
235
|
-
* - If validation passes, returns `{ status: "success",
|
|
240
|
+
* - If validation passes, returns `{ status: "success", reports: [...], ... }`
|
|
241
|
+
*
|
|
242
|
+
* Large alerts can be split into multiple reports using the `split` option:
|
|
243
|
+
* - `strategy: "minimize"` (default): Pack items efficiently to minimize parts
|
|
244
|
+
* - `strategy: "by_client"`: One report per client
|
|
236
245
|
*
|
|
237
|
-
* Use `
|
|
246
|
+
* Use `validateReport` for dry-run/preview validation without generating output.
|
|
238
247
|
*
|
|
239
248
|
* @param alertId - The alert ID to generate
|
|
240
|
-
* @param
|
|
249
|
+
* @param reportType - The report type (e.g., "mex.actividad-vulnerable.avi")
|
|
250
|
+
* @param defaults - Jurisdiction-specific defaults for generation (optional)
|
|
251
|
+
* @param options - Optional generation options including split strategy
|
|
241
252
|
* @returns GenerateResult with status "success" or "validation_failed"
|
|
242
253
|
*/
|
|
243
|
-
async
|
|
244
|
-
const validated = this.validate(
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
* Submits a validated alert.
|
|
252
|
-
*
|
|
253
|
-
* The alert must be in "valid" status. After submission, the alert
|
|
254
|
-
* is locked and cannot be edited.
|
|
255
|
-
*
|
|
256
|
-
* @param alertId - The alert ID
|
|
257
|
-
* @param input - Submission data with jurisdiction-specific structure
|
|
258
|
-
*/
|
|
259
|
-
async submit(input) {
|
|
260
|
-
const validated = this.validate(submitAlertInputSchema, input);
|
|
261
|
-
return this.execute(() => this.trpc.alerts.submit.mutate(validated));
|
|
254
|
+
async generateReport(alertId, reportType, defaults, options) {
|
|
255
|
+
const validated = this.validate(generateReportInputSchema, {
|
|
256
|
+
alertId,
|
|
257
|
+
reportType,
|
|
258
|
+
defaults,
|
|
259
|
+
split: options?.split,
|
|
260
|
+
});
|
|
261
|
+
return this.execute(() => this.trpc.alerts.generateReport.mutate(validated));
|
|
262
262
|
}
|
|
263
263
|
// ─────────────────────────────────────────────────────────────────
|
|
264
264
|
// Upsert Operations
|
|
@@ -199,6 +199,10 @@ export declare class BankAccountsResource<TSort = BankAccountSort> extends BaseR
|
|
|
199
199
|
sync(clientId: string, items: SyncItem<UpdateBankAccountInput>[], options?: {
|
|
200
200
|
replaceMode?: boolean;
|
|
201
201
|
}): Promise<SyncResult<BankAccount>>;
|
|
202
|
+
/**
|
|
203
|
+
* Fills missing MX bank account fields (CLABE ↔ parts) before validation.
|
|
204
|
+
*/
|
|
205
|
+
private fillMexFields;
|
|
202
206
|
/**
|
|
203
207
|
* Instantiates a BankAccount model from API response data.
|
|
204
208
|
* Subclasses override this to return their specific model type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bank-accounts.d.ts","sourceRoot":"","sources":["../../src/resources/bank-accounts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACX,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bank-accounts.d.ts","sourceRoot":"","sources":["../../src/resources/bank-accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,64 @@
|
|
|
7
7
|
* - MexBankAccountsResource - Mexico-scoped with flattened CLABE fields
|
|
8
8
|
*/
|
|
9
9
|
import { z } from "zod";
|
|
10
|
-
import { createBankAccountInputSchema, updateBankAccountInputSchema, upsertBankAccountInputSchema, replaceSyncItemSchema, } from "@artu-ai/shared";
|
|
10
|
+
import { createBankAccountInputSchema, updateBankAccountInputSchema, upsertBankAccountInputSchema, replaceSyncItemSchema, Clabe, } from "@artu-ai/shared";
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────
|
|
12
|
+
// MX Bank Account Field Auto-Fill
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Fill missing MX bank account fields from CLABE or its constituent parts
|
|
16
|
+
* before sending to the API.
|
|
17
|
+
*
|
|
18
|
+
* - If `clabe` is present → extracts missing codigoBanco, codigoPlaza, accountNumber, bankName
|
|
19
|
+
* - If `codigoBanco` + `codigoPlaza` + `accountNumber` present → computes missing clabe (+ bankName)
|
|
20
|
+
* - Only fills fields that are not already set
|
|
21
|
+
* - Returns input unchanged if not MX or no fields can be filled
|
|
22
|
+
*/
|
|
23
|
+
function fillMexBankAccountFields(data) {
|
|
24
|
+
const country = data.country;
|
|
25
|
+
const clabe = typeof data.clabe === "string" ? data.clabe : undefined;
|
|
26
|
+
const codigoBanco = typeof data.codigoBanco === "string" ? data.codigoBanco : undefined;
|
|
27
|
+
const codigoPlaza = typeof data.codigoPlaza === "string" ? data.codigoPlaza : undefined;
|
|
28
|
+
const accountNumber = typeof data.accountNumber === "string" ? data.accountNumber : undefined;
|
|
29
|
+
const bankName = typeof data.bankName === "string" ? data.bankName : undefined;
|
|
30
|
+
// Only process MX bank accounts or inputs with MX-specific fields
|
|
31
|
+
if (country !== "MX" && !clabe && !codigoBanco && !codigoPlaza) {
|
|
32
|
+
return data;
|
|
33
|
+
}
|
|
34
|
+
const filled = { ...data };
|
|
35
|
+
// Direction 1: CLABE → parts
|
|
36
|
+
if (clabe && clabe.length === 18) {
|
|
37
|
+
const result = Clabe.parse(clabe);
|
|
38
|
+
if (result.valid) {
|
|
39
|
+
if (!codigoBanco)
|
|
40
|
+
filled.codigoBanco = result.bankCode;
|
|
41
|
+
if (!codigoPlaza)
|
|
42
|
+
filled.codigoPlaza = result.plazaCode;
|
|
43
|
+
if (!accountNumber)
|
|
44
|
+
filled.accountNumber = result.accountNumber;
|
|
45
|
+
if (!bankName && result.bankName)
|
|
46
|
+
filled.bankName = result.bankName;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Direction 2: parts → CLABE
|
|
50
|
+
const finalCodigoBanco = typeof filled.codigoBanco === "string" ? filled.codigoBanco : undefined;
|
|
51
|
+
const finalCodigoPlaza = typeof filled.codigoPlaza === "string" ? filled.codigoPlaza : undefined;
|
|
52
|
+
const finalAccountNumber = typeof filled.accountNumber === "string" ? filled.accountNumber : undefined;
|
|
53
|
+
if (!clabe &&
|
|
54
|
+
finalCodigoBanco?.length === 3 &&
|
|
55
|
+
finalCodigoPlaza?.length === 3 &&
|
|
56
|
+
finalAccountNumber) {
|
|
57
|
+
const computed = Clabe.calculate(finalCodigoBanco, finalCodigoPlaza, finalAccountNumber);
|
|
58
|
+
const result = Clabe.parse(computed);
|
|
59
|
+
if (result.valid) {
|
|
60
|
+
filled.clabe = result.clabe;
|
|
61
|
+
if (!bankName && !filled.bankName && result.bankName) {
|
|
62
|
+
filled.bankName = result.bankName;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return filled;
|
|
67
|
+
}
|
|
11
68
|
import { BaseResource } from "./base";
|
|
12
69
|
import { BankAccount } from "../models/BankAccount";
|
|
13
70
|
// ===========================
|
|
@@ -46,7 +103,7 @@ export class BankAccountsResource extends BaseResource {
|
|
|
46
103
|
* @returns The created bank account model
|
|
47
104
|
*/
|
|
48
105
|
async create(data) {
|
|
49
|
-
const validated = this.validate(createBankAccountInputSchema, data);
|
|
106
|
+
const validated = this.validate(createBankAccountInputSchema, this.fillMexFields(data));
|
|
50
107
|
const response = await this.execute(() => this.trpc.bankAccounts.create.mutate(validated));
|
|
51
108
|
return this.instantiate(response);
|
|
52
109
|
}
|
|
@@ -75,7 +132,7 @@ export class BankAccountsResource extends BaseResource {
|
|
|
75
132
|
* Updates a bank account.
|
|
76
133
|
*/
|
|
77
134
|
async update(id, data) {
|
|
78
|
-
const validated = this.validate(updateBankAccountInputSchema, data);
|
|
135
|
+
const validated = this.validate(updateBankAccountInputSchema, this.fillMexFields(data));
|
|
79
136
|
const response = await this.execute(() => this.trpc.bankAccounts.update.mutate({ id, data: validated }));
|
|
80
137
|
return this.instantiate(response);
|
|
81
138
|
}
|
|
@@ -164,7 +221,7 @@ export class BankAccountsResource extends BaseResource {
|
|
|
164
221
|
}
|
|
165
222
|
async createMany(accounts, options = {}) {
|
|
166
223
|
const atomic = options.atomic ?? true;
|
|
167
|
-
const validated = this.validate(z.array(createBankAccountInputSchema), accounts);
|
|
224
|
+
const validated = this.validate(z.array(createBankAccountInputSchema), accounts.map((item) => this.fillMexFields(item)));
|
|
168
225
|
const response = await this.execute(() => this.trpc.bankAccounts.createMany.mutate({ items: validated, atomic }));
|
|
169
226
|
if (response.atomic) {
|
|
170
227
|
return {
|
|
@@ -189,7 +246,10 @@ export class BankAccountsResource extends BaseResource {
|
|
|
189
246
|
id: z.uuid(),
|
|
190
247
|
data: updateBankAccountInputSchema,
|
|
191
248
|
});
|
|
192
|
-
const validated = this.validate(z.array(updateItemSchema), updates)
|
|
249
|
+
const validated = this.validate(z.array(updateItemSchema), updates.map((item) => ({
|
|
250
|
+
...item,
|
|
251
|
+
data: this.fillMexFields(item.data),
|
|
252
|
+
})));
|
|
193
253
|
const response = await this.execute(() => this.trpc.bankAccounts.updateMany.mutate({ items: validated, atomic }));
|
|
194
254
|
if (response.atomic) {
|
|
195
255
|
return {
|
|
@@ -221,7 +281,7 @@ export class BankAccountsResource extends BaseResource {
|
|
|
221
281
|
* @returns The created or updated bank account with action indicator
|
|
222
282
|
*/
|
|
223
283
|
async upsertByExternalId(data) {
|
|
224
|
-
const validated = this.validate(upsertBankAccountInputSchema, data);
|
|
284
|
+
const validated = this.validate(upsertBankAccountInputSchema, this.fillMexFields(data));
|
|
225
285
|
const response = await this.execute(() => this.trpc.bankAccounts.upsertByExternalId.mutate(validated));
|
|
226
286
|
return {
|
|
227
287
|
data: this.instantiate(response.data),
|
|
@@ -230,7 +290,7 @@ export class BankAccountsResource extends BaseResource {
|
|
|
230
290
|
}
|
|
231
291
|
async upsertManyByExternalId(accounts, options = {}) {
|
|
232
292
|
const atomic = options.atomic ?? true;
|
|
233
|
-
const validated = this.validate(z.array(upsertBankAccountInputSchema), accounts);
|
|
293
|
+
const validated = this.validate(z.array(upsertBankAccountInputSchema), accounts.map((item) => this.fillMexFields(item)));
|
|
234
294
|
const response = await this.execute(() => this.trpc.bankAccounts.upsertManyByExternalId.mutate({
|
|
235
295
|
items: validated,
|
|
236
296
|
atomic,
|
|
@@ -266,7 +326,7 @@ export class BankAccountsResource extends BaseResource {
|
|
|
266
326
|
}
|
|
267
327
|
return item;
|
|
268
328
|
});
|
|
269
|
-
const validated = this.validate(z.array(replaceSyncItemSchema(createBankAccountInputSchema, updateBankAccountInputSchema)), itemsWithClientId);
|
|
329
|
+
const validated = this.validate(z.array(replaceSyncItemSchema(createBankAccountInputSchema, updateBankAccountInputSchema)), itemsWithClientId.map((item) => this.fillMexFields(item)));
|
|
270
330
|
const response = await this.execute(() => this.trpc.bankAccounts.sync.mutate({
|
|
271
331
|
clientId,
|
|
272
332
|
items: validated,
|
|
@@ -279,6 +339,17 @@ export class BankAccountsResource extends BaseResource {
|
|
|
279
339
|
};
|
|
280
340
|
}
|
|
281
341
|
// ─────────────────────────────────────────────────────────────────
|
|
342
|
+
// Internal Helpers
|
|
343
|
+
// ─────────────────────────────────────────────────────────────────
|
|
344
|
+
/**
|
|
345
|
+
* Fills missing MX bank account fields (CLABE ↔ parts) before validation.
|
|
346
|
+
*/
|
|
347
|
+
fillMexFields(data) {
|
|
348
|
+
if (typeof data !== "object" || data === null)
|
|
349
|
+
return data;
|
|
350
|
+
return fillMexBankAccountFields(data);
|
|
351
|
+
}
|
|
352
|
+
// ─────────────────────────────────────────────────────────────────
|
|
282
353
|
// Instantiation (protected for subclasses to override)
|
|
283
354
|
// ─────────────────────────────────────────────────────────────────
|
|
284
355
|
/**
|
|
@@ -20,5 +20,6 @@ export { ContactMethodsResource } from "./contact-methods";
|
|
|
20
20
|
export { BankAccountsResource } from "./bank-accounts";
|
|
21
21
|
export { DocumentsResource, type CreateDocumentResult, type UploadDocumentInput, type UploadOptions, } from "./documents";
|
|
22
22
|
export { ExchangeRatesResource } from "./exchange-rates";
|
|
23
|
+
export { ReportsResource, type Report, type ReportFilter, type ReportSort, type ReportDownloadUrl, } from "./reports";
|
|
23
24
|
export * from "./mex";
|
|
24
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACN,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACN,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACN,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACN,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EACN,eAAe,EACf,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,iBAAiB,GACtB,MAAM,WAAW,CAAC;AAGnB,cAAc,OAAO,CAAC"}
|
package/dist/resources/index.js
CHANGED
|
@@ -23,5 +23,7 @@ export { BankAccountsResource } from "./bank-accounts";
|
|
|
23
23
|
export { DocumentsResource, } from "./documents";
|
|
24
24
|
// Exchange rates
|
|
25
25
|
export { ExchangeRatesResource } from "./exchange-rates";
|
|
26
|
+
// Reports (read-only)
|
|
27
|
+
export { ReportsResource, } from "./reports";
|
|
26
28
|
// Mexico-scoped resources
|
|
27
29
|
export * from "./mex";
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* - Accepts flattened CreateAVIAlertInput (AVI fields at root level)
|
|
6
6
|
* - Returns MexAVIAlert models
|
|
7
7
|
*/
|
|
8
|
-
import type { CreateAlertInput, UpdateAlertInput, CreateAlertItemInput, UpdateAlertItemInput, CreateAVIAlertInput, UpdateAVIAlertInput, UpsertAVIAlertInput, CreateAVIAlertItemInput, UpdateAVIAlertItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, ValidationResult, GenerateResult,
|
|
8
|
+
import type { CreateAlertInput, UpdateAlertInput, CreateAlertItemInput, UpdateAlertItemInput, CreateAVIAlertInput, UpdateAVIAlertInput, UpsertAVIAlertInput, CreateAVIAlertItemInput, UpdateAVIAlertItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, ValidationResult, GenerateResult, AviAlertDefaultsInput, UpsertResult } from "@artu-ai/shared";
|
|
9
|
+
import { ReportType } from "@artu-ai/shared";
|
|
9
10
|
import type { AVIAlertFilter, AVIAlertSort, AVIAlertItemFilter, AlertSort, AlertItemFilter, AlertItemSort } from "@artu-ai/shared";
|
|
10
11
|
import { MexAlertsResource } from "../../alerts";
|
|
11
12
|
import { MexAVIAlert, MexAVIAlertItem, type AlertData, type AlertItemData } from "../../../../models";
|
|
@@ -118,25 +119,25 @@ export declare class AVIAlertsResource extends MexAlertsResource<AVIAlertSort, A
|
|
|
118
119
|
*
|
|
119
120
|
* @example
|
|
120
121
|
* ```typescript
|
|
121
|
-
* const result = await aviSdk.alerts.
|
|
122
|
+
* const result = await aviSdk.alerts.validateReport(alert.id, {
|
|
122
123
|
* rfc: "ABC200101XXX",
|
|
123
124
|
* platformDomain: "https://example.com",
|
|
124
125
|
* alertType: "100",
|
|
125
126
|
* });
|
|
126
127
|
* ```
|
|
127
128
|
*/
|
|
128
|
-
|
|
129
|
+
validateReport(alertId: string, defaults?: AviAlertDefaultsInput): Promise<ValidationResult>;
|
|
129
130
|
/**
|
|
130
131
|
* Generates XML for an AVI alert.
|
|
131
132
|
*
|
|
132
|
-
* Uses the same input as
|
|
133
|
+
* Uses the same input as validateReport.
|
|
133
134
|
*
|
|
134
135
|
* @param alertId - The alert ID to generate XML for
|
|
135
136
|
* @param defaults - AVI alert defaults including rfc, platformDomain, alertType, etc.
|
|
136
137
|
*
|
|
137
138
|
* @example
|
|
138
139
|
* ```typescript
|
|
139
|
-
* const result = await aviSdk.alerts.
|
|
140
|
+
* const result = await aviSdk.alerts.generateReport(alert.id, {
|
|
140
141
|
* rfc: "ABC200101XXX",
|
|
141
142
|
* platformDomain: "https://example.com",
|
|
142
143
|
* alertType: "100",
|
|
@@ -144,22 +145,7 @@ export declare class AVIAlertsResource extends MexAlertsResource<AVIAlertSort, A
|
|
|
144
145
|
* console.log(result.xml);
|
|
145
146
|
* ```
|
|
146
147
|
*/
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Submits a validated AVI alert.
|
|
150
|
-
*
|
|
151
|
-
* Uses AVI-scoped submission input (activity is implicit).
|
|
152
|
-
*
|
|
153
|
-
* @example
|
|
154
|
-
* ```typescript
|
|
155
|
-
* const result = await aviSdk.alerts.submit({
|
|
156
|
-
* alertId: alert.id,
|
|
157
|
-
* acuseRecibo: "SAT-12345",
|
|
158
|
-
* notes: "Submitted via portal",
|
|
159
|
-
* });
|
|
160
|
-
* ```
|
|
161
|
-
*/
|
|
162
|
-
submit(input: SubmitAVIAlertInput): Promise<SubmissionResult>;
|
|
148
|
+
generateReport(alertId: string, defaults?: AviAlertDefaultsInput): Promise<GenerateResult>;
|
|
163
149
|
/**
|
|
164
150
|
* Transforms a flattened AVIAlertSort to nested AlertSort format.
|
|
165
151
|
*
|
|
@@ -182,9 +168,10 @@ export declare class AVIAlertsResource extends MexAlertsResource<AVIAlertSort, A
|
|
|
182
168
|
/**
|
|
183
169
|
* Transforms AVI defaults to nested API format for validate/generate.
|
|
184
170
|
*/
|
|
185
|
-
protected transformAviDefaultsToNested(alertId: string, defaults
|
|
171
|
+
protected transformAviDefaultsToNested(alertId: string, defaults?: AviAlertDefaultsInput): {
|
|
186
172
|
alertId: string;
|
|
187
|
-
|
|
173
|
+
reportType: ReportType;
|
|
174
|
+
defaults?: unknown;
|
|
188
175
|
};
|
|
189
176
|
}
|
|
190
177
|
//# sourceMappingURL=alerts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/alerts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACX,gBAAgB,EAChB,gBAAgB,EAEhB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/alerts.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - Returns MexAVIAlert models
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
-
import { CodigoActividad, createAVIAlertInputSchema, updateAVIAlertInputSchema, upsertAVIAlertInputSchema, createAVIAlertItemInputSchema, updateAVIAlertItemInputSchema, aviDefaultsInputSchema,
|
|
9
|
+
import { CodigoActividad, ReportType, createAVIAlertInputSchema, updateAVIAlertInputSchema, upsertAVIAlertInputSchema, createAVIAlertItemInputSchema, updateAVIAlertItemInputSchema, aviDefaultsInputSchema, transformSort, aviAlertFieldMapping, } from "@artu-ai/shared";
|
|
10
10
|
import { MexAlertsResource } from "../../alerts";
|
|
11
11
|
import { MexAVIAlert, MexAVIAlertItem, } from "../../../../models";
|
|
12
12
|
// ===========================
|
|
@@ -292,17 +292,20 @@ export class AVIAlertsResource extends MexAlertsResource {
|
|
|
292
292
|
*
|
|
293
293
|
* @example
|
|
294
294
|
* ```typescript
|
|
295
|
-
* const result = await aviSdk.alerts.
|
|
295
|
+
* const result = await aviSdk.alerts.validateReport(alert.id, {
|
|
296
296
|
* rfc: "ABC200101XXX",
|
|
297
297
|
* platformDomain: "https://example.com",
|
|
298
298
|
* alertType: "100",
|
|
299
299
|
* });
|
|
300
300
|
* ```
|
|
301
301
|
*/
|
|
302
|
-
|
|
303
|
-
|
|
302
|
+
// @ts-expect-error - Scoped SDK provides simpler API without requiring reportType
|
|
303
|
+
async validateReport(alertId, defaults) {
|
|
304
|
+
const validated = defaults
|
|
305
|
+
? this.validate(aviDefaultsInputSchema, defaults)
|
|
306
|
+
: undefined;
|
|
304
307
|
const nestedInput = this.transformAviDefaultsToNested(alertId, validated);
|
|
305
|
-
return this.execute(() => this.trpc.alerts.
|
|
308
|
+
return this.execute(() => this.trpc.alerts.validateReport.mutate(nestedInput));
|
|
306
309
|
}
|
|
307
310
|
// ─────────────────────────────────────────────────────────────────
|
|
308
311
|
// Generation
|
|
@@ -310,14 +313,14 @@ export class AVIAlertsResource extends MexAlertsResource {
|
|
|
310
313
|
/**
|
|
311
314
|
* Generates XML for an AVI alert.
|
|
312
315
|
*
|
|
313
|
-
* Uses the same input as
|
|
316
|
+
* Uses the same input as validateReport.
|
|
314
317
|
*
|
|
315
318
|
* @param alertId - The alert ID to generate XML for
|
|
316
319
|
* @param defaults - AVI alert defaults including rfc, platformDomain, alertType, etc.
|
|
317
320
|
*
|
|
318
321
|
* @example
|
|
319
322
|
* ```typescript
|
|
320
|
-
* const result = await aviSdk.alerts.
|
|
323
|
+
* const result = await aviSdk.alerts.generateReport(alert.id, {
|
|
321
324
|
* rfc: "ABC200101XXX",
|
|
322
325
|
* platformDomain: "https://example.com",
|
|
323
326
|
* alertType: "100",
|
|
@@ -325,44 +328,13 @@ export class AVIAlertsResource extends MexAlertsResource {
|
|
|
325
328
|
* console.log(result.xml);
|
|
326
329
|
* ```
|
|
327
330
|
*/
|
|
328
|
-
|
|
329
|
-
|
|
331
|
+
// @ts-expect-error - Scoped SDK provides simpler API without requiring reportType
|
|
332
|
+
async generateReport(alertId, defaults) {
|
|
333
|
+
const validated = defaults
|
|
334
|
+
? this.validate(aviDefaultsInputSchema, defaults)
|
|
335
|
+
: undefined;
|
|
330
336
|
const nestedInput = this.transformAviDefaultsToNested(alertId, validated);
|
|
331
|
-
return this.execute(() => this.trpc.alerts.
|
|
332
|
-
}
|
|
333
|
-
// ─────────────────────────────────────────────────────────────────
|
|
334
|
-
// Submission
|
|
335
|
-
// ─────────────────────────────────────────────────────────────────
|
|
336
|
-
/**
|
|
337
|
-
* Submits a validated AVI alert.
|
|
338
|
-
*
|
|
339
|
-
* Uses AVI-scoped submission input (activity is implicit).
|
|
340
|
-
*
|
|
341
|
-
* @example
|
|
342
|
-
* ```typescript
|
|
343
|
-
* const result = await aviSdk.alerts.submit({
|
|
344
|
-
* alertId: alert.id,
|
|
345
|
-
* acuseRecibo: "SAT-12345",
|
|
346
|
-
* notes: "Submitted via portal",
|
|
347
|
-
* });
|
|
348
|
-
* ```
|
|
349
|
-
*/
|
|
350
|
-
async submit(input) {
|
|
351
|
-
const validated = this.validate(submitAVIAlertInputSchema, input);
|
|
352
|
-
const jurisdictions = {
|
|
353
|
-
MX: {
|
|
354
|
-
actividadVulnerable: {
|
|
355
|
-
[CodigoActividad.AVI]: {
|
|
356
|
-
acuseRecibo: validated.acuseRecibo,
|
|
357
|
-
notes: validated.notes,
|
|
358
|
-
},
|
|
359
|
-
},
|
|
360
|
-
},
|
|
361
|
-
};
|
|
362
|
-
return this.execute(() => this.trpc.alerts.submit.mutate({
|
|
363
|
-
alertId: validated.alertId,
|
|
364
|
-
jurisdictions,
|
|
365
|
-
}));
|
|
337
|
+
return this.execute(() => this.trpc.alerts.generateReport.mutate(nestedInput));
|
|
366
338
|
}
|
|
367
339
|
// ─────────────────────────────────────────────────────────────────
|
|
368
340
|
// Protected Helpers
|
|
@@ -464,17 +436,26 @@ export class AVIAlertsResource extends MexAlertsResource {
|
|
|
464
436
|
* Transforms AVI defaults to nested API format for validate/generate.
|
|
465
437
|
*/
|
|
466
438
|
transformAviDefaultsToNested(alertId, defaults) {
|
|
439
|
+
if (!defaults) {
|
|
440
|
+
return {
|
|
441
|
+
alertId,
|
|
442
|
+
reportType: ReportType.MexActividadVulnerableAVI,
|
|
443
|
+
};
|
|
444
|
+
}
|
|
467
445
|
const { rfc, collegiateEntityCode, exempt, priority, ...aviFields } = defaults;
|
|
468
446
|
return {
|
|
469
447
|
alertId,
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
448
|
+
reportType: ReportType.MexActividadVulnerableAVI,
|
|
449
|
+
defaults: {
|
|
450
|
+
jurisdictions: {
|
|
451
|
+
MX: {
|
|
452
|
+
actividadVulnerable: {
|
|
453
|
+
rfc,
|
|
454
|
+
collegiateEntityCode,
|
|
455
|
+
exempt,
|
|
456
|
+
priority,
|
|
457
|
+
[CodigoActividad.AVI]: aviFields,
|
|
458
|
+
},
|
|
478
459
|
},
|
|
479
460
|
},
|
|
480
461
|
},
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* - Accepts flattened CreateJYSAlertInput (JYS fields at root level)
|
|
6
6
|
* - Returns MexJYSAlert models
|
|
7
7
|
*/
|
|
8
|
-
import type { CreateAlertInput, UpdateAlertInput, CreateAlertItemInput, UpdateAlertItemInput, CreateJYSAlertInput, UpdateJYSAlertInput, UpsertJYSAlertInput, CreateJYSAlertItemInput, UpdateJYSAlertItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, JysAlertDefaultsInput, ValidationResult, GenerateResult,
|
|
8
|
+
import type { CreateAlertInput, UpdateAlertInput, CreateAlertItemInput, UpdateAlertItemInput, CreateJYSAlertInput, UpdateJYSAlertInput, UpsertJYSAlertInput, CreateJYSAlertItemInput, UpdateJYSAlertItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, JysAlertDefaultsInput, ValidationResult, GenerateResult, UpsertResult } from "@artu-ai/shared";
|
|
9
|
+
import { ReportType } from "@artu-ai/shared";
|
|
9
10
|
import type { JYSAlertFilter, JYSAlertSort, JYSAlertItemFilter, AlertSort, AlertItemFilter, AlertItemSort } from "@artu-ai/shared";
|
|
10
11
|
import { MexAlertsResource } from "../../alerts";
|
|
11
12
|
import { MexJYSAlert, MexJYSAlertItem, type AlertData, type AlertItemData } from "../../../../models";
|
|
@@ -118,28 +119,22 @@ export declare class JYSAlertsResource extends MexAlertsResource<JYSAlertSort, J
|
|
|
118
119
|
*
|
|
119
120
|
* @example
|
|
120
121
|
* ```typescript
|
|
121
|
-
* const result = await jysSdk.alerts.
|
|
122
|
+
* const result = await jysSdk.alerts.validateReport(alert.id, {
|
|
122
123
|
* rfc: "ABC200101XXX",
|
|
123
124
|
* alertType: "100",
|
|
124
125
|
* });
|
|
125
126
|
* ```
|
|
126
127
|
*/
|
|
127
|
-
|
|
128
|
+
validateReport(alertId: string, defaults?: JysAlertDefaultsInput): Promise<ValidationResult>;
|
|
128
129
|
/**
|
|
129
130
|
* Generates XML for a JYS alert.
|
|
130
131
|
*
|
|
131
|
-
* Uses the same input as
|
|
132
|
+
* Uses the same input as validateReport.
|
|
132
133
|
*
|
|
133
134
|
* @param alertId - The alert ID to generate XML for
|
|
134
135
|
* @param defaults - JYS alert defaults including rfc, alertType, etc.
|
|
135
136
|
*/
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Submits a validated JYS alert.
|
|
139
|
-
*
|
|
140
|
-
* Uses JYS-scoped submission input (activity is implicit).
|
|
141
|
-
*/
|
|
142
|
-
submit(input: SubmitJYSSubmissionInput): Promise<SubmissionResult>;
|
|
137
|
+
generateReport(alertId: string, defaults?: JysAlertDefaultsInput): Promise<GenerateResult>;
|
|
143
138
|
/**
|
|
144
139
|
* Transforms a flattened JYSAlertSort to nested AlertSort format.
|
|
145
140
|
*
|
|
@@ -162,9 +157,10 @@ export declare class JYSAlertsResource extends MexAlertsResource<JYSAlertSort, J
|
|
|
162
157
|
/**
|
|
163
158
|
* Transforms JYS defaults to nested API format for validate/generate.
|
|
164
159
|
*/
|
|
165
|
-
protected transformJysDefaultsToNested(alertId: string, defaults
|
|
160
|
+
protected transformJysDefaultsToNested(alertId: string, defaults?: JysAlertDefaultsInput): {
|
|
166
161
|
alertId: string;
|
|
167
|
-
|
|
162
|
+
reportType: ReportType;
|
|
163
|
+
defaults?: unknown;
|
|
168
164
|
};
|
|
169
165
|
}
|
|
170
166
|
//# sourceMappingURL=alerts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/alerts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACX,gBAAgB,EAChB,gBAAgB,EAEhB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/alerts.ts"],"names":[],"mappings":"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"}
|