@artu-ai/compliance-sdk 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/resources/addresses.d.ts +24 -1
- package/dist/resources/addresses.d.ts.map +1 -1
- package/dist/resources/addresses.js +51 -1
- package/dist/resources/bank-accounts.d.ts +24 -1
- package/dist/resources/bank-accounts.d.ts.map +1 -1
- package/dist/resources/bank-accounts.js +51 -1
- package/dist/resources/clients.d.ts +52 -1
- package/dist/resources/clients.d.ts.map +1 -1
- package/dist/resources/clients.js +67 -1
- package/dist/resources/contact-methods.d.ts +24 -1
- package/dist/resources/contact-methods.d.ts.map +1 -1
- package/dist/resources/contact-methods.js +51 -1
- 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 +21 -1
- package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/avi/clients.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/avi/reports.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/jys/clients.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/jys/reports.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.js +50 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts +21 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts.map +1 -1
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.js +50 -1
- package/dist/resources/mex/addresses.d.ts +21 -1
- package/dist/resources/mex/addresses.d.ts.map +1 -1
- package/dist/resources/mex/addresses.js +50 -1
- package/dist/resources/mex/bank-accounts.d.ts +8 -1
- package/dist/resources/mex/bank-accounts.d.ts.map +1 -1
- package/dist/resources/mex/bank-accounts.js +9 -0
- package/dist/resources/mex/clients.d.ts +21 -1
- package/dist/resources/mex/clients.d.ts.map +1 -1
- package/dist/resources/mex/clients.js +50 -1
- package/dist/resources/mex/reports.d.ts +21 -1
- package/dist/resources/mex/reports.d.ts.map +1 -1
- package/dist/resources/mex/reports.js +50 -1
- package/dist/resources/mex/transactions.d.ts +21 -1
- package/dist/resources/mex/transactions.d.ts.map +1 -1
- package/dist/resources/mex/transactions.js +50 -1
- package/dist/resources/reports.d.ts +24 -1
- package/dist/resources/reports.d.ts.map +1 -1
- package/dist/resources/reports.js +51 -1
- package/dist/resources/transactions.d.ts +24 -1
- package/dist/resources/transactions.d.ts.map +1 -1
- package/dist/resources/transactions.js +51 -1
- package/dist/utils/trpc-client.d.ts +1 -19879
- package/dist/utils/trpc-client.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Note: Mexican address format can be used for addresses in any country.
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
import { createMexAddressInputSchema, updateMexAddressInputSchema, replaceSyncItemSchema, transformSort, mexAddressFieldMapping, } from "@artu-ai/shared";
|
|
11
|
+
import { createMexAddressInputSchema, updateMexAddressInputSchema, upsertMexAddressInputSchema, replaceSyncItemSchema, transformSort, mexAddressFieldMapping, } from "@artu-ai/shared";
|
|
12
12
|
import { AddressesResource } from "../addresses";
|
|
13
13
|
import { MexAddress } from "../../models";
|
|
14
14
|
// ===========================
|
|
@@ -183,6 +183,55 @@ export class MexAddressesResource extends AddressesResource {
|
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
|
+
// ─────────────────────────────────────────────────────────────────
|
|
187
|
+
// Upsert Operations
|
|
188
|
+
// ─────────────────────────────────────────────────────────────────
|
|
189
|
+
/**
|
|
190
|
+
* Creates or updates a Mexico address by externalId.
|
|
191
|
+
*
|
|
192
|
+
* @param data - Address upsert data with MX fields at root level (must include externalId)
|
|
193
|
+
* @returns The created or updated address with action indicator
|
|
194
|
+
*/
|
|
195
|
+
async upsertByExternalId(data) {
|
|
196
|
+
const validated = this.validate(upsertMexAddressInputSchema, data);
|
|
197
|
+
const nestedData = this.transformToNested(validated);
|
|
198
|
+
const response = await this.execute(() => this.trpc.addresses.upsertByExternalId.mutate(nestedData));
|
|
199
|
+
return {
|
|
200
|
+
data: this.instantiate(response.data),
|
|
201
|
+
action: response.action,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
async upsertManyByExternalId(addresses, options = {}) {
|
|
205
|
+
const atomic = options.atomic ?? true;
|
|
206
|
+
const validated = this.validate(z.array(upsertMexAddressInputSchema), addresses);
|
|
207
|
+
const nestedItems = validated.map((a) => this.transformToNested(a));
|
|
208
|
+
const response = await this.execute(() => this.trpc.addresses.upsertManyByExternalId.mutate({
|
|
209
|
+
items: nestedItems,
|
|
210
|
+
atomic,
|
|
211
|
+
}));
|
|
212
|
+
if (response.atomic) {
|
|
213
|
+
return {
|
|
214
|
+
atomic: true,
|
|
215
|
+
data: response.data.map((item) => ({
|
|
216
|
+
data: this.instantiate(item.data),
|
|
217
|
+
action: item.action,
|
|
218
|
+
})),
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
return {
|
|
223
|
+
atomic: false,
|
|
224
|
+
succeeded: response.succeeded.map((item) => ({
|
|
225
|
+
index: item.index,
|
|
226
|
+
data: {
|
|
227
|
+
data: this.instantiate(item.data.data),
|
|
228
|
+
action: item.data.action,
|
|
229
|
+
},
|
|
230
|
+
})),
|
|
231
|
+
failed: response.failed,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
186
235
|
async sync(clientId, items, options) {
|
|
187
236
|
const validated = this.validate(z.array(replaceSyncItemSchema(createMexAddressInputSchema, updateMexAddressInputSchema)), items);
|
|
188
237
|
// Transform each item to nested format
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Extends BankAccountsResource to return MexBankAccount models
|
|
5
5
|
* with Mexico-specific helpers (CLABE formatting, etc.).
|
|
6
6
|
*/
|
|
7
|
-
import type { CreateBankAccountInput, UpdateBankAccountInput, BankAccountFilter, BankAccountSort, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, SyncItem, SyncResult, MexBankAccountFilter, MexBankAccountSort } from "@artu-ai/shared";
|
|
7
|
+
import type { CreateBankAccountInput, UpdateBankAccountInput, UpsertBankAccountInput, BankAccountFilter, BankAccountSort, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, SyncItem, SyncResult, MexBankAccountFilter, MexBankAccountSort, UpsertResult } from "@artu-ai/shared";
|
|
8
8
|
import { BankAccountsResource } from "../bank-accounts";
|
|
9
9
|
import { MexBankAccount, type BankAccountData } from "../../models";
|
|
10
10
|
/**
|
|
@@ -83,6 +83,13 @@ export declare class MexBankAccountsResource<TSort = MexBankAccountSort> extends
|
|
|
83
83
|
sync(clientId: string, items: SyncItem<UpdateBankAccountInput>[], options?: {
|
|
84
84
|
replaceMode?: boolean;
|
|
85
85
|
}): Promise<SyncResult<MexBankAccount>>;
|
|
86
|
+
upsertByExternalId(data: UpsertBankAccountInput): Promise<UpsertResult<MexBankAccount>>;
|
|
87
|
+
upsertManyByExternalId(accounts: UpsertBankAccountInput[], options?: {
|
|
88
|
+
atomic?: true;
|
|
89
|
+
}): Promise<AtomicBatchResult<UpsertResult<MexBankAccount>>>;
|
|
90
|
+
upsertManyByExternalId(accounts: UpsertBankAccountInput[], options: {
|
|
91
|
+
atomic: false;
|
|
92
|
+
}): Promise<PartialBatchResult<UpsertResult<MexBankAccount>>>;
|
|
86
93
|
setPrimary(id: string): Promise<MexBankAccount>;
|
|
87
94
|
activate(id: string): Promise<MexBankAccount>;
|
|
88
95
|
deactivate(id: string): Promise<MexBankAccount>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bank-accounts.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/bank-accounts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"bank-accounts.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/bank-accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,6 +99,15 @@ export class MexBankAccountsResource extends BankAccountsResource {
|
|
|
99
99
|
return super.sync(clientId, items, options);
|
|
100
100
|
}
|
|
101
101
|
// ─────────────────────────────────────────────────────────────────
|
|
102
|
+
// Upsert Operations (override return types)
|
|
103
|
+
// ─────────────────────────────────────────────────────────────────
|
|
104
|
+
async upsertByExternalId(data) {
|
|
105
|
+
return super.upsertByExternalId(data);
|
|
106
|
+
}
|
|
107
|
+
async upsertManyByExternalId(accounts, options = {}) {
|
|
108
|
+
return super.upsertManyByExternalId(accounts, options);
|
|
109
|
+
}
|
|
110
|
+
// ─────────────────────────────────────────────────────────────────
|
|
102
111
|
// Convenience Methods (override return types)
|
|
103
112
|
// ─────────────────────────────────────────────────────────────────
|
|
104
113
|
async setPrimary(id) {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - Filters list/iterate to Mexico clients only
|
|
8
8
|
* - Returns MexClient models
|
|
9
9
|
*/
|
|
10
|
-
import type { CreateClientInput, UpdateClientInput, ClientFilter, ClientSort, ListOptions, PaginatedResponse, CreateMexClientInput, UpdateMexClientInput, AtomicBatchResult, PartialBatchResult, ClientRelationshipType, LinkedClient as LinkedClientInput, CreateAddressInput, UpdateAddressInput, CreateMexAddressInput, UpdateMexAddressInput, CreateContactMethodInput, UpdateContactMethodInput, CreateBankAccountInput, UpdateBankAccountInput, SyncItem, SyncResult, MexClientFilter, MexClientSort } from "@artu-ai/shared";
|
|
10
|
+
import type { CreateClientInput, UpdateClientInput, ClientFilter, ClientSort, ListOptions, PaginatedResponse, CreateMexClientInput, UpdateMexClientInput, UpsertMexClientInput, AtomicBatchResult, PartialBatchResult, ClientRelationshipType, LinkedClient as LinkedClientInput, CreateAddressInput, UpdateAddressInput, CreateMexAddressInput, UpdateMexAddressInput, CreateContactMethodInput, UpdateContactMethodInput, CreateBankAccountInput, UpdateBankAccountInput, SyncItem, SyncResult, MexClientFilter, MexClientSort, UpsertResult } from "@artu-ai/shared";
|
|
11
11
|
import { ClientsResource, type ClientIncludeMap } from "../clients";
|
|
12
12
|
import { MexClient, MexAddress, MexBankAccount, ContactMethod, LinkedClient, type ClientData } from "../../models";
|
|
13
13
|
/**
|
|
@@ -113,6 +113,26 @@ export declare class MexClientsResource<TSort = MexClientSort> extends ClientsRe
|
|
|
113
113
|
}[], options: {
|
|
114
114
|
atomic: false;
|
|
115
115
|
}): Promise<PartialBatchResult<MexClient>>;
|
|
116
|
+
/**
|
|
117
|
+
* Creates or updates a Mexico client by externalId.
|
|
118
|
+
*
|
|
119
|
+
* @param data - Client upsert data with MX fields at root level (must include externalId)
|
|
120
|
+
* @returns The created or updated client with action indicator
|
|
121
|
+
*/
|
|
122
|
+
upsertByExternalId(data: UpsertMexClientInput): Promise<UpsertResult<MexClient>>;
|
|
123
|
+
/**
|
|
124
|
+
* Creates or updates multiple Mexico clients by externalId.
|
|
125
|
+
*
|
|
126
|
+
* @param clients - Array of client upsert data (each must include externalId)
|
|
127
|
+
* @param options - Batch options (atomic: true by default)
|
|
128
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
129
|
+
*/
|
|
130
|
+
upsertManyByExternalId(clients: UpsertMexClientInput[], options?: {
|
|
131
|
+
atomic?: true;
|
|
132
|
+
}): Promise<AtomicBatchResult<UpsertResult<MexClient>>>;
|
|
133
|
+
upsertManyByExternalId(clients: UpsertMexClientInput[], options: {
|
|
134
|
+
atomic: false;
|
|
135
|
+
}): Promise<PartialBatchResult<UpsertResult<MexClient>>>;
|
|
116
136
|
linkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType, metadata?: Record<string, unknown>): Promise<MexClient>;
|
|
117
137
|
unlinkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType): Promise<MexClient>;
|
|
118
138
|
listLinkedClients(parentClientId: string, relationshipType?: ClientRelationshipType): Promise<LinkedClient[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/clients.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Returns MexClient models
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
import { Jurisdiction, createMexClientInputSchema, updateMexClientInputSchema, linkedClientSchema, createMexAddressInputSchema, updateMexAddressInputSchema, createContactMethodInputSchema, updateContactMethodInputSchema, createBankAccountInputSchema, updateBankAccountInputSchema, replaceSyncItemSchema, transformSort, mexClientFieldMapping, } from "@artu-ai/shared";
|
|
11
|
+
import { Jurisdiction, createMexClientInputSchema, updateMexClientInputSchema, upsertMexClientInputSchema, linkedClientSchema, createMexAddressInputSchema, updateMexAddressInputSchema, createContactMethodInputSchema, updateContactMethodInputSchema, createBankAccountInputSchema, updateBankAccountInputSchema, replaceSyncItemSchema, transformSort, mexClientFieldMapping, } from "@artu-ai/shared";
|
|
12
12
|
import { ClientsResource, } from "../clients";
|
|
13
13
|
import { MexClient, MexAddress, MexBankAccount, ContactMethod, } from "../../models";
|
|
14
14
|
// ===========================
|
|
@@ -180,6 +180,55 @@ export class MexClientsResource extends ClientsResource {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
// ─────────────────────────────────────────────────────────────────
|
|
183
|
+
// Upsert Operations
|
|
184
|
+
// ─────────────────────────────────────────────────────────────────
|
|
185
|
+
/**
|
|
186
|
+
* Creates or updates a Mexico client by externalId.
|
|
187
|
+
*
|
|
188
|
+
* @param data - Client upsert data with MX fields at root level (must include externalId)
|
|
189
|
+
* @returns The created or updated client with action indicator
|
|
190
|
+
*/
|
|
191
|
+
async upsertByExternalId(data) {
|
|
192
|
+
const validated = this.validate(upsertMexClientInputSchema, data);
|
|
193
|
+
const nestedData = this.transformToNested(validated);
|
|
194
|
+
const response = await this.execute(() => this.trpc.clients.upsertByExternalId.mutate(nestedData));
|
|
195
|
+
return {
|
|
196
|
+
data: this.instantiate(response.data),
|
|
197
|
+
action: response.action,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
async upsertManyByExternalId(clients, options = {}) {
|
|
201
|
+
const atomic = options.atomic ?? true;
|
|
202
|
+
const validated = this.validate(z.array(upsertMexClientInputSchema), clients);
|
|
203
|
+
const nestedClients = validated.map((c) => this.transformToNested(c));
|
|
204
|
+
const response = await this.execute(() => this.trpc.clients.upsertManyByExternalId.mutate({
|
|
205
|
+
items: nestedClients,
|
|
206
|
+
atomic,
|
|
207
|
+
}));
|
|
208
|
+
if (response.atomic) {
|
|
209
|
+
return {
|
|
210
|
+
atomic: true,
|
|
211
|
+
data: response.data.map((item) => ({
|
|
212
|
+
data: this.instantiate(item.data),
|
|
213
|
+
action: item.action,
|
|
214
|
+
})),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
return {
|
|
219
|
+
atomic: false,
|
|
220
|
+
succeeded: response.succeeded.map((item) => ({
|
|
221
|
+
index: item.index,
|
|
222
|
+
data: {
|
|
223
|
+
data: this.instantiate(item.data.data),
|
|
224
|
+
action: item.data.action,
|
|
225
|
+
},
|
|
226
|
+
})),
|
|
227
|
+
failed: response.failed,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// ─────────────────────────────────────────────────────────────────
|
|
183
232
|
// Client-to-Client Relationship Management (scoped returns)
|
|
184
233
|
// ─────────────────────────────────────────────────────────────────
|
|
185
234
|
async linkClient(parentClientId, childClientId, relationshipType, metadata) {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - Filters list/iterate to Mexico reports only
|
|
7
7
|
* - Returns MexReport models
|
|
8
8
|
*/
|
|
9
|
-
import type { CreateReportInput, UpdateReportInput, CreateReportItemInput, UpdateReportItemInput, CreateMexReportInput, UpdateMexReportInput, CreateMexReportItemInput, UpdateMexReportItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, MexSubmitReportInput, ValidationResult, GenerateResult, SubmissionResult, MexReportDefaultsInput, ReportDefaultsInput } from "@artu-ai/shared";
|
|
9
|
+
import type { CreateReportInput, UpdateReportInput, CreateReportItemInput, UpdateReportItemInput, CreateMexReportInput, UpdateMexReportInput, UpsertMexReportInput, CreateMexReportItemInput, UpdateMexReportItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, MexSubmitReportInput, ValidationResult, GenerateResult, SubmissionResult, MexReportDefaultsInput, ReportDefaultsInput, UpsertResult } from "@artu-ai/shared";
|
|
10
10
|
import type { ReportFilter, ReportSort, MexReportFilter, MexReportSort } from "@artu-ai/shared";
|
|
11
11
|
import { ReportsResource, type ReportItemFilter, type ReportItemSort } from "../reports";
|
|
12
12
|
import { MexReport, type ReportData, type ReportItemData } from "../../models";
|
|
@@ -86,6 +86,26 @@ export declare class MexReportsResource<TSort = MexReportSort, TDefaults = MexRe
|
|
|
86
86
|
}[], options: {
|
|
87
87
|
atomic: false;
|
|
88
88
|
}): Promise<PartialBatchResult<MexReport>>;
|
|
89
|
+
/**
|
|
90
|
+
* Creates or updates a Mexico report by externalId.
|
|
91
|
+
*
|
|
92
|
+
* @param data - Report upsert data with MX fields at root level (must include externalId)
|
|
93
|
+
* @returns The created or updated report with action indicator
|
|
94
|
+
*/
|
|
95
|
+
upsertByExternalId(data: UpsertMexReportInput): Promise<UpsertResult<MexReport>>;
|
|
96
|
+
/**
|
|
97
|
+
* Creates or updates multiple Mexico reports by externalId.
|
|
98
|
+
*
|
|
99
|
+
* @param reports - Array of report upsert data (each must include externalId)
|
|
100
|
+
* @param options - Batch options (atomic: true by default)
|
|
101
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
102
|
+
*/
|
|
103
|
+
upsertManyByExternalId(reports: UpsertMexReportInput[], options?: {
|
|
104
|
+
atomic?: true;
|
|
105
|
+
}): Promise<AtomicBatchResult<UpsertResult<MexReport>>>;
|
|
106
|
+
upsertManyByExternalId(reports: UpsertMexReportInput[], options: {
|
|
107
|
+
atomic: false;
|
|
108
|
+
}): Promise<PartialBatchResult<UpsertResult<MexReport>>>;
|
|
89
109
|
/**
|
|
90
110
|
* Adds an item to a report with flattened Mexico input.
|
|
91
111
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/reports.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/reports.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - Returns MexReport models
|
|
8
8
|
*/
|
|
9
9
|
import { z } from "zod";
|
|
10
|
-
import { Jurisdiction, createMexReportInputSchema, updateMexReportInputSchema, createMexReportItemInputSchema, updateMexReportItemInputSchema, mexSubmitReportInputSchema, transformSort, mexReportFieldMapping, mexReportDefaultsInputSchema, } from "@artu-ai/shared";
|
|
10
|
+
import { Jurisdiction, createMexReportInputSchema, updateMexReportInputSchema, upsertMexReportInputSchema, createMexReportItemInputSchema, updateMexReportItemInputSchema, mexSubmitReportInputSchema, transformSort, mexReportFieldMapping, mexReportDefaultsInputSchema, } from "@artu-ai/shared";
|
|
11
11
|
import { ReportsResource, } from "../reports";
|
|
12
12
|
import { MexReport } from "../../models";
|
|
13
13
|
import { MexReportItem } from "../../models/mex";
|
|
@@ -163,6 +163,55 @@ export class MexReportsResource extends ReportsResource {
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
// ─────────────────────────────────────────────────────────────────
|
|
166
|
+
// Upsert Operations
|
|
167
|
+
// ─────────────────────────────────────────────────────────────────
|
|
168
|
+
/**
|
|
169
|
+
* Creates or updates a Mexico report by externalId.
|
|
170
|
+
*
|
|
171
|
+
* @param data - Report upsert data with MX fields at root level (must include externalId)
|
|
172
|
+
* @returns The created or updated report with action indicator
|
|
173
|
+
*/
|
|
174
|
+
async upsertByExternalId(data) {
|
|
175
|
+
const validated = this.validate(upsertMexReportInputSchema, data);
|
|
176
|
+
const nestedData = this.transformToNested(validated);
|
|
177
|
+
const response = await this.execute(() => this.trpc.reports.upsertByExternalId.mutate(nestedData));
|
|
178
|
+
return {
|
|
179
|
+
data: this.instantiate(response.data),
|
|
180
|
+
action: response.action,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
async upsertManyByExternalId(reports, options = {}) {
|
|
184
|
+
const atomic = options.atomic ?? true;
|
|
185
|
+
const validated = this.validate(z.array(upsertMexReportInputSchema), reports);
|
|
186
|
+
const nestedItems = validated.map((r) => this.transformToNested(r));
|
|
187
|
+
const response = await this.execute(() => this.trpc.reports.upsertManyByExternalId.mutate({
|
|
188
|
+
items: nestedItems,
|
|
189
|
+
atomic,
|
|
190
|
+
}));
|
|
191
|
+
if (response.atomic) {
|
|
192
|
+
return {
|
|
193
|
+
atomic: true,
|
|
194
|
+
data: response.data.map((item) => ({
|
|
195
|
+
data: this.instantiate(item.data),
|
|
196
|
+
action: item.action,
|
|
197
|
+
})),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
return {
|
|
202
|
+
atomic: false,
|
|
203
|
+
succeeded: response.succeeded.map((item) => ({
|
|
204
|
+
index: item.index,
|
|
205
|
+
data: {
|
|
206
|
+
data: this.instantiate(item.data.data),
|
|
207
|
+
action: item.data.action,
|
|
208
|
+
},
|
|
209
|
+
})),
|
|
210
|
+
failed: response.failed,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// ─────────────────────────────────────────────────────────────────
|
|
166
215
|
// Report Items
|
|
167
216
|
// ─────────────────────────────────────────────────────────────────
|
|
168
217
|
/**
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - Filters list/iterate to Mexico transactions only
|
|
8
8
|
* - Returns MexTransaction models
|
|
9
9
|
*/
|
|
10
|
-
import type { CreateTransactionInput, UpdateTransactionInput, TransactionFilter, TransactionSort, ListOptions, PaginatedResponse, CreateMexTransactionInput, UpdateMexTransactionInput, AtomicBatchResult, PartialBatchResult, RelatedClient, MexTransactionFilter, MexTransactionSort } from "@artu-ai/shared";
|
|
10
|
+
import type { CreateTransactionInput, UpdateTransactionInput, TransactionFilter, TransactionSort, ListOptions, PaginatedResponse, CreateMexTransactionInput, UpdateMexTransactionInput, UpsertMexTransactionInput, AtomicBatchResult, PartialBatchResult, RelatedClient, MexTransactionFilter, MexTransactionSort, UpsertResult } from "@artu-ai/shared";
|
|
11
11
|
import { ClientRole } from "@artu-ai/shared";
|
|
12
12
|
import { TransactionsResource } from "../transactions";
|
|
13
13
|
import { MexTransaction, type TransactionData } from "../../models";
|
|
@@ -94,6 +94,26 @@ export declare class MexTransactionsResource<TSort = MexTransactionSort> extends
|
|
|
94
94
|
}[], options: {
|
|
95
95
|
atomic: false;
|
|
96
96
|
}): Promise<PartialBatchResult<MexTransaction>>;
|
|
97
|
+
/**
|
|
98
|
+
* Creates or updates a Mexico transaction by externalId.
|
|
99
|
+
*
|
|
100
|
+
* @param data - Transaction upsert data with MX fields at root level (must include externalId)
|
|
101
|
+
* @returns The created or updated transaction with action indicator
|
|
102
|
+
*/
|
|
103
|
+
upsertByExternalId(data: UpsertMexTransactionInput): Promise<UpsertResult<MexTransaction>>;
|
|
104
|
+
/**
|
|
105
|
+
* Creates or updates multiple Mexico transactions by externalId.
|
|
106
|
+
*
|
|
107
|
+
* @param transactions - Array of transaction upsert data (each must include externalId)
|
|
108
|
+
* @param options - Batch options (atomic: true by default)
|
|
109
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
110
|
+
*/
|
|
111
|
+
upsertManyByExternalId(transactions: UpsertMexTransactionInput[], options?: {
|
|
112
|
+
atomic?: true;
|
|
113
|
+
}): Promise<AtomicBatchResult<UpsertResult<MexTransaction>>>;
|
|
114
|
+
upsertManyByExternalId(transactions: UpsertMexTransactionInput[], options: {
|
|
115
|
+
atomic: false;
|
|
116
|
+
}): Promise<PartialBatchResult<UpsertResult<MexTransaction>>>;
|
|
97
117
|
/**
|
|
98
118
|
* Applies Mexico jurisdiction filter.
|
|
99
119
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/transactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../src/resources/mex/transactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Returns MexTransaction models
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
import { Jurisdiction, createMexTransactionInputSchema, updateMexTransactionInputSchema, transformSort, mexTransactionFieldMapping, } from "@artu-ai/shared";
|
|
11
|
+
import { Jurisdiction, createMexTransactionInputSchema, updateMexTransactionInputSchema, upsertMexTransactionInputSchema, transformSort, mexTransactionFieldMapping, } from "@artu-ai/shared";
|
|
12
12
|
import { TransactionsResource } from "../transactions";
|
|
13
13
|
import { MexTransaction } from "../../models";
|
|
14
14
|
// ===========================
|
|
@@ -199,6 +199,55 @@ export class MexTransactionsResource extends TransactionsResource {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
// ─────────────────────────────────────────────────────────────────
|
|
202
|
+
// Upsert Operations
|
|
203
|
+
// ─────────────────────────────────────────────────────────────────
|
|
204
|
+
/**
|
|
205
|
+
* Creates or updates a Mexico transaction by externalId.
|
|
206
|
+
*
|
|
207
|
+
* @param data - Transaction upsert data with MX fields at root level (must include externalId)
|
|
208
|
+
* @returns The created or updated transaction with action indicator
|
|
209
|
+
*/
|
|
210
|
+
async upsertByExternalId(data) {
|
|
211
|
+
const validated = this.validate(upsertMexTransactionInputSchema, data);
|
|
212
|
+
const nestedData = this.transformToNested(validated);
|
|
213
|
+
const response = await this.execute(() => this.trpc.transactions.upsertByExternalId.mutate(nestedData));
|
|
214
|
+
return {
|
|
215
|
+
data: this.instantiate(response.data),
|
|
216
|
+
action: response.action,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
async upsertManyByExternalId(transactions, options = {}) {
|
|
220
|
+
const atomic = options.atomic ?? true;
|
|
221
|
+
const validated = this.validate(z.array(upsertMexTransactionInputSchema), transactions);
|
|
222
|
+
const nestedItems = validated.map((t) => this.transformToNested(t));
|
|
223
|
+
const response = await this.execute(() => this.trpc.transactions.upsertManyByExternalId.mutate({
|
|
224
|
+
items: nestedItems,
|
|
225
|
+
atomic,
|
|
226
|
+
}));
|
|
227
|
+
if (response.atomic) {
|
|
228
|
+
return {
|
|
229
|
+
atomic: true,
|
|
230
|
+
data: response.data.map((item) => ({
|
|
231
|
+
data: this.instantiate(item.data),
|
|
232
|
+
action: item.action,
|
|
233
|
+
})),
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
return {
|
|
238
|
+
atomic: false,
|
|
239
|
+
succeeded: response.succeeded.map((item) => ({
|
|
240
|
+
index: item.index,
|
|
241
|
+
data: {
|
|
242
|
+
data: this.instantiate(item.data.data),
|
|
243
|
+
action: item.data.action,
|
|
244
|
+
},
|
|
245
|
+
})),
|
|
246
|
+
failed: response.failed,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// ─────────────────────────────────────────────────────────────────
|
|
202
251
|
// Protected Helpers
|
|
203
252
|
// ─────────────────────────────────────────────────────────────────
|
|
204
253
|
/**
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - JYSReportsResource - Mexico JYS-scoped with flattened JYS fields
|
|
10
10
|
* - TSCReportsResource - Mexico TSC-scoped with flattened TSC fields
|
|
11
11
|
*/
|
|
12
|
-
import type { CreateReportInput, UpdateReportInput, UpdateReportStatusInput, CreateReportItemInput, UpdateReportItemInput, ReportFilter, ReportSort, ReportItemFilter, ReportItemSort, ValidationResult, GenerateResult, SubmitReportInput, SubmissionResult, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, ReportDefaultsInput } from "@artu-ai/shared";
|
|
12
|
+
import type { CreateReportInput, UpdateReportInput, UpsertReportInput, UpdateReportStatusInput, CreateReportItemInput, UpdateReportItemInput, ReportFilter, ReportSort, ReportItemFilter, ReportItemSort, ValidationResult, GenerateResult, SubmitReportInput, SubmissionResult, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, ReportDefaultsInput, UpsertResult } from "@artu-ai/shared";
|
|
13
13
|
import { BaseResource } from "./base";
|
|
14
14
|
import { Report, ReportItem, type ReportData, type ReportItemData } from "../models";
|
|
15
15
|
export type { ReportFilter, ReportItemFilter, ReportItemSort };
|
|
@@ -165,6 +165,29 @@ export declare class ReportsResource<TSort = ReportSort, TDefaults = ReportDefau
|
|
|
165
165
|
* @param input - Submission data with jurisdiction-specific structure
|
|
166
166
|
*/
|
|
167
167
|
submit(input: SubmitReportInput): Promise<SubmissionResult>;
|
|
168
|
+
/**
|
|
169
|
+
* Creates or updates a report by externalId.
|
|
170
|
+
*
|
|
171
|
+
* If a report with the given externalId exists, it will be updated.
|
|
172
|
+
* Otherwise, a new report will be created.
|
|
173
|
+
*
|
|
174
|
+
* @param data - Report upsert data (must include externalId)
|
|
175
|
+
* @returns The created or updated report with action indicator
|
|
176
|
+
*/
|
|
177
|
+
upsertByExternalId(data: UpsertReportInput): Promise<UpsertResult<Report>>;
|
|
178
|
+
/**
|
|
179
|
+
* Creates or updates multiple reports by externalId in a single request.
|
|
180
|
+
*
|
|
181
|
+
* @param reports - Array of report upsert data (each must include externalId)
|
|
182
|
+
* @param options - Batch options (atomic: true by default)
|
|
183
|
+
* @returns Atomic result with data array, or partial result with succeeded/failed
|
|
184
|
+
*/
|
|
185
|
+
upsertManyByExternalId(reports: UpsertReportInput[], options?: {
|
|
186
|
+
atomic?: true;
|
|
187
|
+
}): Promise<AtomicBatchResult<UpsertResult<Report>>>;
|
|
188
|
+
upsertManyByExternalId(reports: UpsertReportInput[], options: {
|
|
189
|
+
atomic: false;
|
|
190
|
+
}): Promise<PartialBatchResult<UpsertResult<Report>>>;
|
|
168
191
|
/**
|
|
169
192
|
* Creates multiple reports in a single request.
|
|
170
193
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/resources/reports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/resources/reports.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - TSCReportsResource - Mexico TSC-scoped with flattened TSC fields
|
|
11
11
|
*/
|
|
12
12
|
import { z } from "zod";
|
|
13
|
-
import { createReportInputSchema, updateReportInputSchema, updateReportStatusInputSchema, createReportItemInputSchema, updateReportItemInputSchema, reportDefaultsInputSchema, submitReportInputSchema, } from "@artu-ai/shared";
|
|
13
|
+
import { createReportInputSchema, updateReportInputSchema, upsertReportInputSchema, updateReportStatusInputSchema, createReportItemInputSchema, updateReportItemInputSchema, reportDefaultsInputSchema, submitReportInputSchema, } from "@artu-ai/shared";
|
|
14
14
|
import { BaseResource } from "./base";
|
|
15
15
|
import { Report, ReportItem, } from "../models";
|
|
16
16
|
// ===========================
|
|
@@ -246,6 +246,56 @@ export class ReportsResource extends BaseResource {
|
|
|
246
246
|
const validated = this.validate(submitReportInputSchema, input);
|
|
247
247
|
return this.execute(() => this.trpc.reports.submit.mutate(validated));
|
|
248
248
|
}
|
|
249
|
+
// ─────────────────────────────────────────────────────────────────
|
|
250
|
+
// Upsert Operations
|
|
251
|
+
// ─────────────────────────────────────────────────────────────────
|
|
252
|
+
/**
|
|
253
|
+
* Creates or updates a report by externalId.
|
|
254
|
+
*
|
|
255
|
+
* If a report with the given externalId exists, it will be updated.
|
|
256
|
+
* Otherwise, a new report will be created.
|
|
257
|
+
*
|
|
258
|
+
* @param data - Report upsert data (must include externalId)
|
|
259
|
+
* @returns The created or updated report with action indicator
|
|
260
|
+
*/
|
|
261
|
+
async upsertByExternalId(data) {
|
|
262
|
+
const validated = this.validate(upsertReportInputSchema, data);
|
|
263
|
+
const response = await this.execute(() => this.trpc.reports.upsertByExternalId.mutate(validated));
|
|
264
|
+
return {
|
|
265
|
+
data: this.instantiate(response.data),
|
|
266
|
+
action: response.action,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
async upsertManyByExternalId(reports, options = {}) {
|
|
270
|
+
const atomic = options.atomic ?? true;
|
|
271
|
+
const validated = this.validate(z.array(upsertReportInputSchema), reports);
|
|
272
|
+
const response = await this.execute(() => this.trpc.reports.upsertManyByExternalId.mutate({
|
|
273
|
+
items: validated,
|
|
274
|
+
atomic,
|
|
275
|
+
}));
|
|
276
|
+
if (response.atomic) {
|
|
277
|
+
return {
|
|
278
|
+
atomic: true,
|
|
279
|
+
data: response.data.map((item) => ({
|
|
280
|
+
data: this.instantiate(item.data),
|
|
281
|
+
action: item.action,
|
|
282
|
+
})),
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
return {
|
|
287
|
+
atomic: false,
|
|
288
|
+
succeeded: response.succeeded.map((item) => ({
|
|
289
|
+
index: item.index,
|
|
290
|
+
data: {
|
|
291
|
+
data: this.instantiate(item.data.data),
|
|
292
|
+
action: item.data.action,
|
|
293
|
+
},
|
|
294
|
+
})),
|
|
295
|
+
failed: response.failed,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
}
|
|
249
299
|
async createMany(reports, options = {}) {
|
|
250
300
|
const atomic = options.atomic ?? true;
|
|
251
301
|
const validated = this.validate(z.array(createReportInputSchema), reports);
|