@artu-ai/compliance-sdk 0.5.4 → 0.6.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/errors/validation.d.ts.map +1 -1
- package/dist/errors/validation.js +19 -1
- package/dist/resources/addresses.d.ts +29 -2
- package/dist/resources/addresses.d.ts.map +1 -1
- package/dist/resources/addresses.js +65 -4
- package/dist/resources/bank-accounts.d.ts +29 -2
- package/dist/resources/bank-accounts.d.ts.map +1 -1
- package/dist/resources/bank-accounts.js +65 -4
- package/dist/resources/clients.d.ts +59 -4
- package/dist/resources/clients.d.ts.map +1 -1
- package/dist/resources/clients.js +85 -8
- package/dist/resources/contact-methods.d.ts +29 -2
- package/dist/resources/contact-methods.d.ts.map +1 -1
- package/dist/resources/contact-methods.js +65 -4
- package/dist/resources/documents.d.ts +24 -19
- package/dist/resources/documents.d.ts.map +1 -1
- package/dist/resources/documents.js +51 -1
- package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts +31 -5
- package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/avi/clients.js +65 -9
- package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/avi/reports.js +58 -4
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.js +58 -4
- package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/jys/clients.js +58 -4
- package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/jys/reports.js +58 -4
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.js +58 -4
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.js +58 -4
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.js +58 -4
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts +26 -2
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.js +58 -4
- package/dist/resources/mex/addresses.d.ts +26 -2
- package/dist/resources/mex/addresses.d.ts.map +1 -1
- package/dist/resources/mex/addresses.js +66 -5
- package/dist/resources/mex/bank-accounts.d.ts +13 -2
- package/dist/resources/mex/bank-accounts.d.ts.map +1 -1
- package/dist/resources/mex/bank-accounts.js +17 -3
- package/dist/resources/mex/clients.d.ts +39 -11
- package/dist/resources/mex/clients.d.ts.map +1 -1
- package/dist/resources/mex/clients.js +82 -20
- package/dist/resources/mex/reports.d.ts +37 -12
- package/dist/resources/mex/reports.d.ts.map +1 -1
- package/dist/resources/mex/reports.js +71 -21
- package/dist/resources/mex/transactions.d.ts +38 -10
- package/dist/resources/mex/transactions.d.ts.map +1 -1
- package/dist/resources/mex/transactions.js +73 -20
- package/dist/resources/reports.d.ts +29 -2
- package/dist/resources/reports.d.ts.map +1 -1
- package/dist/resources/reports.js +57 -3
- package/dist/resources/transactions.d.ts +29 -2
- package/dist/resources/transactions.d.ts.map +1 -1
- package/dist/resources/transactions.js +57 -3
- package/dist/sdk/ComplianceSDK.d.ts.map +1 -1
- package/dist/sdk/ComplianceSDK.js +2 -0
- package/dist/utils/trpc-client.d.ts +1 -19879
- package/dist/utils/trpc-client.d.ts.map +1 -1
- package/dist/utils/upload.d.ts +6 -0
- package/dist/utils/upload.d.ts.map +1 -1
- package/dist/utils/upload.js +2 -1
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Manages communication channels (email, phone, etc.) for clients.
|
|
5
5
|
*/
|
|
6
|
-
import type { CreateContactMethodInput, UpdateContactMethodInput, ContactMethodType, ContactMethodFilter, ContactMethodSort, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, SyncItem, SyncResult } from "@artu-ai/shared";
|
|
6
|
+
import type { CreateContactMethodInput, UpdateContactMethodInput, UpsertContactMethodInput, ContactMethodType, ContactMethodFilter, ContactMethodSort, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, SyncItem, SyncResult, UpsertResult } from "@artu-ai/shared";
|
|
7
7
|
import { BaseResource } from "./base";
|
|
8
8
|
import { ContactMethod, type ContactMethodData } from "../models/ContactMethod";
|
|
9
9
|
/**
|
|
@@ -82,7 +82,11 @@ export declare class ContactMethodsResource extends BaseResource<ContactMethod,
|
|
|
82
82
|
/**
|
|
83
83
|
* Returns an async iterator over all contact methods matching the filter.
|
|
84
84
|
*/
|
|
85
|
-
iterate(
|
|
85
|
+
iterate(options?: {
|
|
86
|
+
filter?: ContactMethodFilter;
|
|
87
|
+
sort?: ContactMethodSort;
|
|
88
|
+
pageSize?: number;
|
|
89
|
+
}): AsyncGenerator<ContactMethod, void, undefined>;
|
|
86
90
|
/**
|
|
87
91
|
* Creates multiple contact methods in a single request.
|
|
88
92
|
*
|
|
@@ -115,6 +119,29 @@ export declare class ContactMethodsResource extends BaseResource<ContactMethod,
|
|
|
115
119
|
}[], options: {
|
|
116
120
|
atomic: false;
|
|
117
121
|
}): Promise<PartialBatchResult<ContactMethod>>;
|
|
122
|
+
/**
|
|
123
|
+
* Creates or updates a contact method by externalId.
|
|
124
|
+
*
|
|
125
|
+
* If a contact method with the given externalId exists, it will be updated.
|
|
126
|
+
* Otherwise, a new contact method will be created.
|
|
127
|
+
*
|
|
128
|
+
* @param data - Contact method upsert data (must include externalId and clientId)
|
|
129
|
+
* @returns The created or updated contact method with action indicator
|
|
130
|
+
*/
|
|
131
|
+
upsertByExternalId(data: UpsertContactMethodInput): Promise<UpsertResult<ContactMethod>>;
|
|
132
|
+
/**
|
|
133
|
+
* Creates or updates multiple contact methods by externalId in a single request.
|
|
134
|
+
*
|
|
135
|
+
* @param contacts - Array of contact method upsert data (each must include externalId and clientId)
|
|
136
|
+
* @param options - Batch options (atomic: true by default)
|
|
137
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
138
|
+
*/
|
|
139
|
+
upsertManyByExternalId(contacts: UpsertContactMethodInput[], options?: {
|
|
140
|
+
atomic?: true;
|
|
141
|
+
}): Promise<AtomicBatchResult<UpsertResult<ContactMethod>>>;
|
|
142
|
+
upsertManyByExternalId(contacts: UpsertContactMethodInput[], options: {
|
|
143
|
+
atomic: false;
|
|
144
|
+
}): Promise<PartialBatchResult<UpsertResult<ContactMethod>>>;
|
|
118
145
|
/**
|
|
119
146
|
* Syncs contact methods for a client - handles create, update, and delete in bulk.
|
|
120
147
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact-methods.d.ts","sourceRoot":"","sources":["../../src/resources/contact-methods.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,UAAU,
|
|
1
|
+
{"version":3,"file":"contact-methods.d.ts","sourceRoot":"","sources":["../../src/resources/contact-methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Manages communication channels (email, phone, etc.) for clients.
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
import { createContactMethodInputSchema, updateContactMethodInputSchema, replaceSyncItemSchema, } from "@artu-ai/shared";
|
|
7
|
+
import { createContactMethodInputSchema, updateContactMethodInputSchema, upsertContactMethodInputSchema, replaceSyncItemSchema, } from "@artu-ai/shared";
|
|
8
8
|
import { BaseResource } from "./base";
|
|
9
9
|
import { ContactMethod } from "../models/ContactMethod";
|
|
10
10
|
// ===========================
|
|
@@ -120,8 +120,12 @@ export class ContactMethodsResource extends BaseResource {
|
|
|
120
120
|
/**
|
|
121
121
|
* Returns an async iterator over all contact methods matching the filter.
|
|
122
122
|
*/
|
|
123
|
-
iterate(
|
|
124
|
-
return this.createIterator({
|
|
123
|
+
iterate(options) {
|
|
124
|
+
return this.createIterator({
|
|
125
|
+
filter: options?.filter,
|
|
126
|
+
sort: options?.sort,
|
|
127
|
+
pageSize: options?.pageSize,
|
|
128
|
+
});
|
|
125
129
|
}
|
|
126
130
|
async createMany(contacts, options = {}) {
|
|
127
131
|
const atomic = options.atomic ?? true;
|
|
@@ -169,8 +173,65 @@ export class ContactMethodsResource extends BaseResource {
|
|
|
169
173
|
};
|
|
170
174
|
}
|
|
171
175
|
}
|
|
176
|
+
// ─────────────────────────────────────────────────────────────────
|
|
177
|
+
// Upsert Operations
|
|
178
|
+
// ─────────────────────────────────────────────────────────────────
|
|
179
|
+
/**
|
|
180
|
+
* Creates or updates a contact method by externalId.
|
|
181
|
+
*
|
|
182
|
+
* If a contact method with the given externalId exists, it will be updated.
|
|
183
|
+
* Otherwise, a new contact method will be created.
|
|
184
|
+
*
|
|
185
|
+
* @param data - Contact method upsert data (must include externalId and clientId)
|
|
186
|
+
* @returns The created or updated contact method with action indicator
|
|
187
|
+
*/
|
|
188
|
+
async upsertByExternalId(data) {
|
|
189
|
+
const validated = this.validate(upsertContactMethodInputSchema, data);
|
|
190
|
+
const response = await this.execute(() => this.trpc.contactMethods.upsertByExternalId.mutate(validated));
|
|
191
|
+
return {
|
|
192
|
+
data: this.instantiate(response.data),
|
|
193
|
+
action: response.action,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
async upsertManyByExternalId(contacts, options = {}) {
|
|
197
|
+
const atomic = options.atomic ?? true;
|
|
198
|
+
const validated = this.validate(z.array(upsertContactMethodInputSchema), contacts);
|
|
199
|
+
const response = await this.execute(() => this.trpc.contactMethods.upsertManyByExternalId.mutate({
|
|
200
|
+
items: validated,
|
|
201
|
+
atomic,
|
|
202
|
+
}));
|
|
203
|
+
if (response.atomic) {
|
|
204
|
+
return {
|
|
205
|
+
atomic: true,
|
|
206
|
+
data: response.data.map((item) => ({
|
|
207
|
+
data: this.instantiate(item.data),
|
|
208
|
+
action: item.action,
|
|
209
|
+
})),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
return {
|
|
214
|
+
atomic: false,
|
|
215
|
+
succeeded: response.succeeded.map((item) => ({
|
|
216
|
+
index: item.index,
|
|
217
|
+
data: {
|
|
218
|
+
data: this.instantiate(item.data.data),
|
|
219
|
+
action: item.data.action,
|
|
220
|
+
},
|
|
221
|
+
})),
|
|
222
|
+
failed: response.failed,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
}
|
|
172
226
|
async sync(clientId, items, options) {
|
|
173
|
-
|
|
227
|
+
// Inject clientId into create items (items without id) before validation
|
|
228
|
+
const itemsWithClientId = items.map((item) => {
|
|
229
|
+
if (!("id" in item) || !item.id) {
|
|
230
|
+
return { ...item, clientId };
|
|
231
|
+
}
|
|
232
|
+
return item;
|
|
233
|
+
});
|
|
234
|
+
const validated = this.validate(z.array(replaceSyncItemSchema(createContactMethodInputSchema, updateContactMethodInputSchema)), itemsWithClientId);
|
|
174
235
|
const response = await this.execute(() => this.trpc.contactMethods.sync.mutate({
|
|
175
236
|
clientId,
|
|
176
237
|
items: validated,
|
|
@@ -4,31 +4,13 @@
|
|
|
4
4
|
* CRUD operations for documents. File upload/download operations are handled separately.
|
|
5
5
|
* All documents are created with pending_upload status.
|
|
6
6
|
*/
|
|
7
|
-
import type { PaginatedResponse, DocumentFilter, DocumentSort, CreateDocumentInput, UpdateDocumentInput, ListOptions, ConfirmUploadInput, PresignedUploadUrl, PresignedDownloadUrl } from "@artu-ai/shared";
|
|
7
|
+
import type { PaginatedResponse, DocumentFilter, DocumentSort, CreateDocumentInput, UpdateDocumentInput, UpsertDocumentInput, ListOptions, ConfirmUploadInput, PresignedUploadUrl, PresignedDownloadUrl, AtomicBatchResult, PartialBatchResult, UpsertResult } from "@artu-ai/shared";
|
|
8
8
|
import { Document, type DocumentData } from "../models/Document";
|
|
9
9
|
import { BaseResource } from "./base";
|
|
10
10
|
import { type UploadableFile, type ProgressCallback } from "../utils/upload";
|
|
11
11
|
export interface BatchOptions {
|
|
12
12
|
atomic?: boolean;
|
|
13
13
|
}
|
|
14
|
-
export interface AtomicBatchResult<T> {
|
|
15
|
-
atomic: true;
|
|
16
|
-
data: T[];
|
|
17
|
-
}
|
|
18
|
-
export interface PartialBatchResult<T> {
|
|
19
|
-
atomic: false;
|
|
20
|
-
succeeded: {
|
|
21
|
-
index: number;
|
|
22
|
-
data: T;
|
|
23
|
-
}[];
|
|
24
|
-
failed: {
|
|
25
|
-
index: number;
|
|
26
|
-
error: {
|
|
27
|
-
code: string;
|
|
28
|
-
message: string;
|
|
29
|
-
};
|
|
30
|
-
}[];
|
|
31
|
-
}
|
|
32
14
|
/**
|
|
33
15
|
* Result of creating a document.
|
|
34
16
|
*
|
|
@@ -316,6 +298,29 @@ export declare class DocumentsResource extends BaseResource<Document, CreateDocu
|
|
|
316
298
|
}[], options: {
|
|
317
299
|
atomic: false;
|
|
318
300
|
}): Promise<PartialBatchResult<Document>>;
|
|
301
|
+
/**
|
|
302
|
+
* Creates or updates a document by externalId.
|
|
303
|
+
*
|
|
304
|
+
* If a document with the given externalId exists, it will be updated.
|
|
305
|
+
* Otherwise, a new document will be created.
|
|
306
|
+
*
|
|
307
|
+
* @param data - Document upsert data (must include externalId and clientId)
|
|
308
|
+
* @returns The created or updated document with action indicator
|
|
309
|
+
*/
|
|
310
|
+
upsertByExternalId(data: UpsertDocumentInput): Promise<UpsertResult<Document>>;
|
|
311
|
+
/**
|
|
312
|
+
* Creates or updates multiple documents by externalId in a single request.
|
|
313
|
+
*
|
|
314
|
+
* @param documents - Array of document upsert data (each must include externalId and clientId)
|
|
315
|
+
* @param options - Batch options (atomic: true by default)
|
|
316
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
317
|
+
*/
|
|
318
|
+
upsertManyByExternalId(documents: UpsertDocumentInput[], options?: {
|
|
319
|
+
atomic?: true;
|
|
320
|
+
}): Promise<AtomicBatchResult<UpsertResult<Document>>>;
|
|
321
|
+
upsertManyByExternalId(documents: UpsertDocumentInput[], options: {
|
|
322
|
+
atomic: false;
|
|
323
|
+
}): Promise<PartialBatchResult<UpsertResult<Document>>>;
|
|
319
324
|
/**
|
|
320
325
|
* Gets document count for a client
|
|
321
326
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/resources/documents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/resources/documents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,mEAAmE;IACnE,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,GAAG;IAC3E,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CACjD,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,oBAAoB,CACrB;IAKC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACG,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAatE;;;;;;;;OAQG;IACG,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAchE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACG,MAAM,CACV,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,cAAc,EAClC,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,QAAQ,CAAC;IAyEpB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAY/D;;;;;OAKG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO7C;;OAEG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAOvE;;OAEG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAWjE;;;;;;;;OAQG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBtE;;;;OAIG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvC;;;;;OAKG;IACG,IAAI,CACR,OAAO,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,YAAY,CAAC,GAClD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAgBvC;;;;;;OAMG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAgBvC;;;;;OAKG;IACI,OAAO,CACZ,OAAO,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,YAAY,CAAC,GAClD,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;IAwB1C;;;;;;OAMG;IACG,UAAU,CACd,SAAS,EAAE,mBAAmB,EAAE,EAChC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjC,UAAU,CACd,SAAS,EAAE,mBAAmB,EAAE,EAChC,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAgCxC;;;;;;OAMG;IACG,UAAU,CACd,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,mBAAmB,CAAA;KAAE,EAAE,EACpD,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjC,UAAU,CACd,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,mBAAmB,CAAA;KAAE,EAAE,EACpD,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAoCxC;;;;;;;;OAQG;IACG,kBAAkB,CACtB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAalC;;;;;;OAMG;IACG,sBAAsB,CAC1B,SAAS,EAAE,mBAAmB,EAAE,EAChC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,sBAAsB,CAC1B,SAAS,EAAE,mBAAmB,EAAE,EAChC,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAgDtD;;;;;OAKG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBtD;;;;;;OAMG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYvE;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ;CAGpD"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CRUD operations for documents. File upload/download operations are handled separately.
|
|
5
5
|
* All documents are created with pending_upload status.
|
|
6
6
|
*/
|
|
7
|
-
import { createDocumentInputSchema, updateDocumentInputSchema, confirmUploadInputSchema, } from "@artu-ai/shared";
|
|
7
|
+
import { createDocumentInputSchema, updateDocumentInputSchema, upsertDocumentInputSchema, confirmUploadInputSchema, } from "@artu-ai/shared";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
import { Document } from "../models/Document";
|
|
10
10
|
import { BaseResource } from "./base";
|
|
@@ -397,6 +397,56 @@ export class DocumentsResource extends BaseResource {
|
|
|
397
397
|
}
|
|
398
398
|
}
|
|
399
399
|
// ─────────────────────────────────────────────────────────────────
|
|
400
|
+
// Upsert Operations
|
|
401
|
+
// ─────────────────────────────────────────────────────────────────
|
|
402
|
+
/**
|
|
403
|
+
* Creates or updates a document by externalId.
|
|
404
|
+
*
|
|
405
|
+
* If a document with the given externalId exists, it will be updated.
|
|
406
|
+
* Otherwise, a new document will be created.
|
|
407
|
+
*
|
|
408
|
+
* @param data - Document upsert data (must include externalId and clientId)
|
|
409
|
+
* @returns The created or updated document with action indicator
|
|
410
|
+
*/
|
|
411
|
+
async upsertByExternalId(data) {
|
|
412
|
+
const validated = this.validate(upsertDocumentInputSchema, data);
|
|
413
|
+
const response = await this.execute(() => this.trpc.documents.upsertByExternalId.mutate(validated));
|
|
414
|
+
return {
|
|
415
|
+
data: this.instantiate(response.data),
|
|
416
|
+
action: response.action,
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
async upsertManyByExternalId(documents, options = {}) {
|
|
420
|
+
const atomic = options.atomic ?? true;
|
|
421
|
+
const validated = this.validate(z.array(upsertDocumentInputSchema), documents);
|
|
422
|
+
const response = await this.execute(() => this.trpc.documents.upsertManyByExternalId.mutate({
|
|
423
|
+
items: validated,
|
|
424
|
+
atomic,
|
|
425
|
+
}));
|
|
426
|
+
if (response.atomic) {
|
|
427
|
+
return {
|
|
428
|
+
atomic: true,
|
|
429
|
+
data: response.data.map((item) => ({
|
|
430
|
+
data: this.instantiate(item.data),
|
|
431
|
+
action: item.action,
|
|
432
|
+
})),
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
return {
|
|
437
|
+
atomic: false,
|
|
438
|
+
succeeded: response.succeeded.map((item) => ({
|
|
439
|
+
index: item.index,
|
|
440
|
+
data: {
|
|
441
|
+
data: this.instantiate(item.data.data),
|
|
442
|
+
action: item.data.action,
|
|
443
|
+
},
|
|
444
|
+
})),
|
|
445
|
+
failed: response.failed,
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
// ─────────────────────────────────────────────────────────────────
|
|
400
450
|
// Helpers
|
|
401
451
|
// ─────────────────────────────────────────────────────────────────
|
|
402
452
|
/**
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - Accepts flattened CreateAVIClientInput (AVI fields at root level)
|
|
6
6
|
* - Returns MexAVIClient models
|
|
7
7
|
*/
|
|
8
|
-
import type { CreateClientInput, UpdateClientInput, ClientFilter, ClientSort, ListOptions, PaginatedResponse, CreateAVIClientInput, UpdateAVIClientInput, AtomicBatchResult, PartialBatchResult, ClientRelationshipType, LinkedClient as LinkedClientInput, CreateMexAddressInput, UpdateMexAddressInput, CreateContactMethodInput, UpdateContactMethodInput, CreateBankAccountInput, UpdateBankAccountInput, SyncItem, SyncResult, AVIClientFilter, AVIClientSort } from "@artu-ai/shared";
|
|
8
|
+
import type { CreateClientInput, UpdateClientInput, ClientFilter, ClientSort, ListOptions, PaginatedResponse, CreateAVIClientInput, UpdateAVIClientInput, UpsertAVIClientInput, AtomicBatchResult, PartialBatchResult, ClientRelationshipType, LinkedClient as LinkedClientInput, CreateMexAddressInput, UpdateMexAddressInput, CreateContactMethodInput, UpdateContactMethodInput, CreateBankAccountInput, UpdateBankAccountInput, SyncItem, SyncResult, AVIClientFilter, AVIClientSort, UpsertResult } from "@artu-ai/shared";
|
|
9
9
|
import { MexClientsResource } from "../../clients";
|
|
10
10
|
import { type ClientIncludeMap } from "../../../clients";
|
|
11
11
|
import { MexAVIClient, MexAddress, MexBankAccount, ContactMethod, LinkedClient, type ClientData } from "../../../../models";
|
|
@@ -78,7 +78,11 @@ export declare class AVIClientsResource extends MexClientsResource<AVIClientSort
|
|
|
78
78
|
* Accepts fully flattened AVI filter (MX and AVI fields at root level)
|
|
79
79
|
* and automatically transforms to nested format before calling the API.
|
|
80
80
|
*/
|
|
81
|
-
iterate(
|
|
81
|
+
iterate(options?: {
|
|
82
|
+
filter?: AVIClientFilter;
|
|
83
|
+
sort?: AVIClientSort;
|
|
84
|
+
pageSize?: number;
|
|
85
|
+
}): AsyncGenerator<MexAVIClient, void, undefined>;
|
|
82
86
|
/**
|
|
83
87
|
* Creates multiple AVI clients with flattened input.
|
|
84
88
|
*/
|
|
@@ -103,6 +107,26 @@ export declare class AVIClientsResource extends MexClientsResource<AVIClientSort
|
|
|
103
107
|
}[], options: {
|
|
104
108
|
atomic: false;
|
|
105
109
|
}): Promise<PartialBatchResult<MexAVIClient>>;
|
|
110
|
+
/**
|
|
111
|
+
* Creates or updates an AVI client by externalId.
|
|
112
|
+
*
|
|
113
|
+
* @param data - Client upsert data with AVI fields at root level (must include externalId)
|
|
114
|
+
* @returns The created or updated client with action indicator
|
|
115
|
+
*/
|
|
116
|
+
upsertByExternalId(data: UpsertAVIClientInput): Promise<UpsertResult<MexAVIClient>>;
|
|
117
|
+
/**
|
|
118
|
+
* Creates or updates multiple AVI clients by externalId.
|
|
119
|
+
*
|
|
120
|
+
* @param clients - Array of client upsert data (each must include externalId)
|
|
121
|
+
* @param options - Batch options (atomic: true by default)
|
|
122
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
123
|
+
*/
|
|
124
|
+
upsertManyByExternalId(clients: UpsertAVIClientInput[], options?: {
|
|
125
|
+
atomic?: true;
|
|
126
|
+
}): Promise<AtomicBatchResult<UpsertResult<MexAVIClient>>>;
|
|
127
|
+
upsertManyByExternalId(clients: UpsertAVIClientInput[], options: {
|
|
128
|
+
atomic: false;
|
|
129
|
+
}): Promise<PartialBatchResult<UpsertResult<MexAVIClient>>>;
|
|
106
130
|
linkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType, metadata?: Record<string, unknown>): Promise<MexAVIClient>;
|
|
107
131
|
unlinkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType): Promise<MexAVIClient>;
|
|
108
132
|
listLinkedClients(parentClientId: string, relationshipType?: ClientRelationshipType): Promise<LinkedClient[]>;
|
|
@@ -136,13 +160,15 @@ export declare class AVIClientsResource extends MexClientsResource<AVIClientSort
|
|
|
136
160
|
bankAccounts: SyncResult<MexBankAccount>;
|
|
137
161
|
}>;
|
|
138
162
|
/**
|
|
139
|
-
* Transforms a flattened AVIClientFilter to nested ClientFilter format
|
|
140
|
-
* and applies Mexico jurisdiction scoping.
|
|
163
|
+
* Transforms a flattened AVIClientFilter to nested ClientFilter format.
|
|
141
164
|
*
|
|
142
165
|
* Extracts AVI-specific fields (username) from root level and nests them
|
|
143
166
|
* under jurisdictions.MX.actividadVulnerable.AVI.
|
|
167
|
+
*
|
|
168
|
+
* Note: This method only transforms filters, it does not automatically add
|
|
169
|
+
* jurisdiction or activity scoping. Use explicit filters if needed.
|
|
144
170
|
*/
|
|
145
|
-
protected applyScopeToFilter(filter?: AVIClientFilter): ClientFilter;
|
|
171
|
+
protected applyScopeToFilter(filter?: AVIClientFilter): ClientFilter | undefined;
|
|
146
172
|
/**
|
|
147
173
|
* Transforms a flattened AVIClientSort to nested ClientSort format.
|
|
148
174
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/clients.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - Returns MexAVIClient models
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
-
import { CodigoActividad, createAVIClientInputSchema, updateAVIClientInputSchema, linkedClientSchema, transformSort, aviClientFieldMapping, } from "@artu-ai/shared";
|
|
9
|
+
import { CodigoActividad, createAVIClientInputSchema, updateAVIClientInputSchema, upsertAVIClientInputSchema, linkedClientSchema, transformSort, aviClientFieldMapping, } from "@artu-ai/shared";
|
|
10
10
|
import { MexClientsResource } from "../../clients";
|
|
11
11
|
import { MexAVIClient, } from "../../../../models";
|
|
12
12
|
// ===========================
|
|
@@ -115,9 +115,14 @@ export class AVIClientsResource extends MexClientsResource {
|
|
|
115
115
|
* Accepts fully flattened AVI filter (MX and AVI fields at root level)
|
|
116
116
|
* and automatically transforms to nested format before calling the API.
|
|
117
117
|
*/
|
|
118
|
-
iterate(
|
|
119
|
-
const scopedFilter = this.applyScopeToFilter(filter);
|
|
120
|
-
|
|
118
|
+
iterate(options) {
|
|
119
|
+
const scopedFilter = this.applyScopeToFilter(options?.filter);
|
|
120
|
+
// Note: sort is passed through - createIterator calls list() which handles transformation
|
|
121
|
+
return this.createIterator({
|
|
122
|
+
filter: scopedFilter,
|
|
123
|
+
sort: options?.sort,
|
|
124
|
+
pageSize: options?.pageSize,
|
|
125
|
+
});
|
|
121
126
|
}
|
|
122
127
|
async createMany(clients, options = {}) {
|
|
123
128
|
const atomic = options.atomic ?? true;
|
|
@@ -171,6 +176,55 @@ export class AVIClientsResource extends MexClientsResource {
|
|
|
171
176
|
}
|
|
172
177
|
}
|
|
173
178
|
// ─────────────────────────────────────────────────────────────────
|
|
179
|
+
// Upsert Operations
|
|
180
|
+
// ─────────────────────────────────────────────────────────────────
|
|
181
|
+
/**
|
|
182
|
+
* Creates or updates an AVI client by externalId.
|
|
183
|
+
*
|
|
184
|
+
* @param data - Client upsert data with AVI fields at root level (must include externalId)
|
|
185
|
+
* @returns The created or updated client with action indicator
|
|
186
|
+
*/
|
|
187
|
+
async upsertByExternalId(data) {
|
|
188
|
+
const validated = this.validate(upsertAVIClientInputSchema, data);
|
|
189
|
+
const nestedData = this.transformToNested(validated);
|
|
190
|
+
const response = await this.execute(() => this.trpc.clients.upsertByExternalId.mutate(nestedData));
|
|
191
|
+
return {
|
|
192
|
+
data: this.instantiate(response.data),
|
|
193
|
+
action: response.action,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
async upsertManyByExternalId(clients, options = {}) {
|
|
197
|
+
const atomic = options.atomic ?? true;
|
|
198
|
+
const validated = this.validate(z.array(upsertAVIClientInputSchema), clients);
|
|
199
|
+
const nestedClients = validated.map((c) => this.transformToNested(c));
|
|
200
|
+
const response = await this.execute(() => this.trpc.clients.upsertManyByExternalId.mutate({
|
|
201
|
+
items: nestedClients,
|
|
202
|
+
atomic,
|
|
203
|
+
}));
|
|
204
|
+
if (response.atomic) {
|
|
205
|
+
return {
|
|
206
|
+
atomic: true,
|
|
207
|
+
data: response.data.map((item) => ({
|
|
208
|
+
data: this.instantiate(item.data),
|
|
209
|
+
action: item.action,
|
|
210
|
+
})),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
return {
|
|
215
|
+
atomic: false,
|
|
216
|
+
succeeded: response.succeeded.map((item) => ({
|
|
217
|
+
index: item.index,
|
|
218
|
+
data: {
|
|
219
|
+
data: this.instantiate(item.data.data),
|
|
220
|
+
action: item.data.action,
|
|
221
|
+
},
|
|
222
|
+
})),
|
|
223
|
+
failed: response.failed,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// ─────────────────────────────────────────────────────────────────
|
|
174
228
|
// Client-to-Client Relationship Management (scoped returns)
|
|
175
229
|
// ─────────────────────────────────────────────────────────────────
|
|
176
230
|
async linkClient(parentClientId, childClientId, relationshipType, metadata) {
|
|
@@ -221,15 +275,17 @@ export class AVIClientsResource extends MexClientsResource {
|
|
|
221
275
|
// Protected Helpers
|
|
222
276
|
// ─────────────────────────────────────────────────────────────────
|
|
223
277
|
/**
|
|
224
|
-
* Transforms a flattened AVIClientFilter to nested ClientFilter format
|
|
225
|
-
* and applies Mexico jurisdiction scoping.
|
|
278
|
+
* Transforms a flattened AVIClientFilter to nested ClientFilter format.
|
|
226
279
|
*
|
|
227
280
|
* Extracts AVI-specific fields (username) from root level and nests them
|
|
228
281
|
* under jurisdictions.MX.actividadVulnerable.AVI.
|
|
282
|
+
*
|
|
283
|
+
* Note: This method only transforms filters, it does not automatically add
|
|
284
|
+
* jurisdiction or activity scoping. Use explicit filters if needed.
|
|
229
285
|
*/
|
|
230
286
|
applyScopeToFilter(filter) {
|
|
231
287
|
if (!filter) {
|
|
232
|
-
return
|
|
288
|
+
return undefined;
|
|
233
289
|
}
|
|
234
290
|
// Extract AVI-specific filter fields
|
|
235
291
|
const { username, ...mexFilter } = filter;
|
|
@@ -237,11 +293,11 @@ export class AVIClientsResource extends MexClientsResource {
|
|
|
237
293
|
const nestedFilter = super.applyScopeToFilter(mexFilter);
|
|
238
294
|
// Only add AVI activity filter if username is provided
|
|
239
295
|
if (username !== undefined) {
|
|
240
|
-
const mexJurisdiction = (nestedFilter
|
|
296
|
+
const mexJurisdiction = (nestedFilter?.jurisdictions?.MX ?? {});
|
|
241
297
|
return {
|
|
242
298
|
...nestedFilter,
|
|
243
299
|
jurisdictions: {
|
|
244
|
-
...nestedFilter
|
|
300
|
+
...nestedFilter?.jurisdictions,
|
|
245
301
|
MX: {
|
|
246
302
|
...mexJurisdiction,
|
|
247
303
|
actividadVulnerable: {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - Accepts flattened CreateAVIReportInput (AVI fields at root level)
|
|
6
6
|
* - Returns MexAVIReport models
|
|
7
7
|
*/
|
|
8
|
-
import type { CreateReportInput, UpdateReportInput, CreateReportItemInput, UpdateReportItemInput, CreateAVIReportInput, UpdateAVIReportInput, CreateAVIReportItemInput, UpdateAVIReportItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, ValidationResult, GenerateResult, SubmissionResult, AviReportDefaultsInput, SubmitAVIReportInput } from "@artu-ai/shared";
|
|
8
|
+
import type { CreateReportInput, UpdateReportInput, CreateReportItemInput, UpdateReportItemInput, CreateAVIReportInput, UpdateAVIReportInput, UpsertAVIReportInput, CreateAVIReportItemInput, UpdateAVIReportItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, ValidationResult, GenerateResult, SubmissionResult, AviReportDefaultsInput, SubmitAVIReportInput, UpsertResult } from "@artu-ai/shared";
|
|
9
9
|
import type { AVIReportFilter, AVIReportSort, AVIReportItemFilter, ReportSort, ReportItemFilter, ReportItemSort } from "@artu-ai/shared";
|
|
10
10
|
import { MexReportsResource } from "../../reports";
|
|
11
11
|
import { MexAVIReport, MexAVIReportItem, type ReportData, type ReportItemData } from "../../../../models";
|
|
@@ -46,7 +46,11 @@ export declare class AVIReportsResource extends MexReportsResource<AVIReportSort
|
|
|
46
46
|
*
|
|
47
47
|
* Accepts flattened AVI filter (future AVI-specific report fields at root level).
|
|
48
48
|
*/
|
|
49
|
-
iterate(
|
|
49
|
+
iterate(options?: {
|
|
50
|
+
filter?: AVIReportFilter;
|
|
51
|
+
sort?: AVIReportSort;
|
|
52
|
+
pageSize?: number;
|
|
53
|
+
}): AsyncGenerator<MexAVIReport, void, undefined>;
|
|
50
54
|
createMany(reports: CreateAVIReportInput[], options?: {
|
|
51
55
|
atomic?: true;
|
|
52
56
|
}): Promise<AtomicBatchResult<MexAVIReport>>;
|
|
@@ -65,6 +69,26 @@ export declare class AVIReportsResource extends MexReportsResource<AVIReportSort
|
|
|
65
69
|
}[], options: {
|
|
66
70
|
atomic: false;
|
|
67
71
|
}): Promise<PartialBatchResult<MexAVIReport>>;
|
|
72
|
+
/**
|
|
73
|
+
* Creates or updates an AVI report by externalId.
|
|
74
|
+
*
|
|
75
|
+
* @param data - Report upsert data with AVI fields at root level (must include externalId)
|
|
76
|
+
* @returns The created or updated report with action indicator
|
|
77
|
+
*/
|
|
78
|
+
upsertByExternalId(data: UpsertAVIReportInput): Promise<UpsertResult<MexAVIReport>>;
|
|
79
|
+
/**
|
|
80
|
+
* Creates or updates multiple AVI reports by externalId.
|
|
81
|
+
*
|
|
82
|
+
* @param reports - Array of report upsert data (each must include externalId)
|
|
83
|
+
* @param options - Batch options (atomic: true by default)
|
|
84
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
85
|
+
*/
|
|
86
|
+
upsertManyByExternalId(reports: UpsertAVIReportInput[], options?: {
|
|
87
|
+
atomic?: true;
|
|
88
|
+
}): Promise<AtomicBatchResult<UpsertResult<MexAVIReport>>>;
|
|
89
|
+
upsertManyByExternalId(reports: UpsertAVIReportInput[], options: {
|
|
90
|
+
atomic: false;
|
|
91
|
+
}): Promise<PartialBatchResult<UpsertResult<MexAVIReport>>>;
|
|
68
92
|
addItem(reportId: string, data: CreateAVIReportItemInput): Promise<MexAVIReportItem>;
|
|
69
93
|
getItem(reportId: string, itemId: string): Promise<MexAVIReportItem>;
|
|
70
94
|
updateItem(reportId: string, itemId: string, data: UpdateAVIReportItemInput): Promise<MexAVIReportItem>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/reports.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/reports.ts"],"names":[],"mappings":"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"}
|