@artu-ai/compliance-sdk 0.5.4 → 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.
Files changed (66) hide show
  1. package/dist/resources/addresses.d.ts +24 -1
  2. package/dist/resources/addresses.d.ts.map +1 -1
  3. package/dist/resources/addresses.js +51 -1
  4. package/dist/resources/bank-accounts.d.ts +24 -1
  5. package/dist/resources/bank-accounts.d.ts.map +1 -1
  6. package/dist/resources/bank-accounts.js +51 -1
  7. package/dist/resources/clients.d.ts +52 -1
  8. package/dist/resources/clients.d.ts.map +1 -1
  9. package/dist/resources/clients.js +67 -1
  10. package/dist/resources/contact-methods.d.ts +24 -1
  11. package/dist/resources/contact-methods.d.ts.map +1 -1
  12. package/dist/resources/contact-methods.js +51 -1
  13. package/dist/resources/documents.d.ts +24 -19
  14. package/dist/resources/documents.d.ts.map +1 -1
  15. package/dist/resources/documents.js +51 -1
  16. package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts +21 -1
  17. package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts.map +1 -1
  18. package/dist/resources/mex/actividad-vulnerable/avi/clients.js +50 -1
  19. package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts +21 -1
  20. package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts.map +1 -1
  21. package/dist/resources/mex/actividad-vulnerable/avi/reports.js +50 -1
  22. package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts +21 -1
  23. package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts.map +1 -1
  24. package/dist/resources/mex/actividad-vulnerable/avi/transactions.js +50 -1
  25. package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts +21 -1
  26. package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts.map +1 -1
  27. package/dist/resources/mex/actividad-vulnerable/jys/clients.js +50 -1
  28. package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts +21 -1
  29. package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts.map +1 -1
  30. package/dist/resources/mex/actividad-vulnerable/jys/reports.js +50 -1
  31. package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts +21 -1
  32. package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts.map +1 -1
  33. package/dist/resources/mex/actividad-vulnerable/jys/transactions.js +50 -1
  34. package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts +21 -1
  35. package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts.map +1 -1
  36. package/dist/resources/mex/actividad-vulnerable/tsc/clients.js +50 -1
  37. package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts +21 -1
  38. package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts.map +1 -1
  39. package/dist/resources/mex/actividad-vulnerable/tsc/reports.js +50 -1
  40. package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts +21 -1
  41. package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts.map +1 -1
  42. package/dist/resources/mex/actividad-vulnerable/tsc/transactions.js +50 -1
  43. package/dist/resources/mex/addresses.d.ts +21 -1
  44. package/dist/resources/mex/addresses.d.ts.map +1 -1
  45. package/dist/resources/mex/addresses.js +50 -1
  46. package/dist/resources/mex/bank-accounts.d.ts +8 -1
  47. package/dist/resources/mex/bank-accounts.d.ts.map +1 -1
  48. package/dist/resources/mex/bank-accounts.js +9 -0
  49. package/dist/resources/mex/clients.d.ts +21 -1
  50. package/dist/resources/mex/clients.d.ts.map +1 -1
  51. package/dist/resources/mex/clients.js +50 -1
  52. package/dist/resources/mex/reports.d.ts +21 -1
  53. package/dist/resources/mex/reports.d.ts.map +1 -1
  54. package/dist/resources/mex/reports.js +50 -1
  55. package/dist/resources/mex/transactions.d.ts +21 -1
  56. package/dist/resources/mex/transactions.d.ts.map +1 -1
  57. package/dist/resources/mex/transactions.js +50 -1
  58. package/dist/resources/reports.d.ts +24 -1
  59. package/dist/resources/reports.d.ts.map +1 -1
  60. package/dist/resources/reports.js +51 -1
  61. package/dist/resources/transactions.d.ts +24 -1
  62. package/dist/resources/transactions.d.ts.map +1 -1
  63. package/dist/resources/transactions.js +51 -1
  64. package/dist/utils/trpc-client.d.ts +1 -19879
  65. package/dist/utils/trpc-client.d.ts.map +1 -1
  66. 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":"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"}
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,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,uBAAuB,CAClC,KAAK,GAAG,kBAAkB,CAC1B,SAAQ,oBAAoB,CAAC,KAAK,CAAC;IAKpB,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7C,kBAAkB,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC;IAIX,oBAAoB,CACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC;IAIX,MAAM,CACnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,cAAc,CAAC;IAQ1B;;;;OAIG;IACG,IAAI,CACR,OAAO,CAAC,EAAE,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,GACjD,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAkB9B,YAAY,CACzB,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,cAAc,CAAC,CAAC;IAM7C;;;;OAIG;IACH,OAAO,CACL,MAAM,CAAC,EAAE,oBAAoB,GAC5B,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,CAAC;IASnC,UAAU,CACvB,QAAQ,EAAE,sBAAsB,EAAE,EAClC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC9B,UAAU,CACvB,QAAQ,EAAE,sBAAsB,EAAE,EAClC,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAY/B,UAAU,CACvB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,sBAAsB,CAAA;KAAE,EAAE,EACvD,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC9B,UAAU,CACvB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,sBAAsB,CAAA;KAAE,EAAE,EACvD,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAgB/B,IAAI,CACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,EACzC,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAA;KAAE,GAC7B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACvB,IAAI,CACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,EACzC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAevB,kBAAkB,CAC/B,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAMzB,sBAAsB,CACnC,QAAQ,EAAE,sBAAsB,EAAE,EAClC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAC5C,sBAAsB,CACnC,QAAQ,EAAE,sBAAsB,EAAE,EAClC,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAqB7C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQ3E;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAC1B,MAAM,CAAC,EAAE,oBAAoB,GAC5B,iBAAiB;IAyBpB;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS;cAUlD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc;CAGtE"}
@@ -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":"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"}
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,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAYzB,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAkB,CAC7B,KAAK,GAAG,aAAa,EACrB,SAAS,GAAG,sBAAsB,CAClC,SAAQ,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;IAKzC;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAW5D;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAOxC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAOlE,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAOlE;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAcxE;;;;;OAKG;IACG,IAAI,CACR,OAAO,CAAC,EAAE,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,GAC5C,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAkBxC;;;;;OAKG;IACH,OAAO,CACL,MAAM,CAAC,EAAE,eAAe,GACvB,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC;IASvC,UAAU,CACd,OAAO,EAAE,oBAAoB,EAAE,EAC/B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAClC,UAAU,CACd,OAAO,EAAE,oBAAoB,EAAE,EAC/B,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAiCnC,UAAU,CACd,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,oBAAoB,CAAA;KAAE,EAAE,EACrD,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAClC,UAAU,CACd,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,oBAAoB,CAAA;KAAE,EAAE,EACrD,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IA0CzC;;OAEG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,aAAa,CAAC;IAWzB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOvE;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,aAAa,CAAC;IAczB;;OAEG;IACG,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,GACtD,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAc5C;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAqBrD;;;;;;;;;;;;;;;;;;;;OAoBG;IACY,cAAc,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAa5B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACY,cAAc,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,GAClB,OAAO,CAAC,cAAc,CAAC;IAa1B;;;;;;;;;;;;;;;;;;;OAmBG;IACG,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBpE;;;;;;OAMG;IACH,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,YAAY;IAepE;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS;IAOhE;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB;IAoB1E;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,oBAAoB,GACzB,iBAAiB;IAepB;;OAEG;cACgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS;IAI3D;;OAEG;cACgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa;IAIvE;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAC7B,IAAI,EAAE,wBAAwB,GAC7B,qBAAqB;IAexB;;OAEG;IACH,SAAS,CAAC,2BAA2B,CACnC,IAAI,EAAE,wBAAwB,GAC7B,qBAAqB;IAexB;;OAEG;IACH,SAAS,CAAC,yBAAyB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,sBAAsB,GAC/B;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB;CAQ9C"}
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":"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"}
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,EAEtB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAKL,UAAU,EAGX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAMpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,uBAAuB,CAClC,KAAK,GAAG,kBAAkB,CAC1B,SAAQ,oBAAoB,CAAC,KAAK,CAAC;IAKnC;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAWtE;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7C,kBAAkB,CACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC;IAOpB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOvE;;OAEG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAc1B;;;;OAIG;IACG,IAAI,CACR,OAAO,CAAC,EAAE,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,GACjD,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAkB7C;;;;OAIG;IACH,OAAO,CACL,MAAM,CAAC,EAAE,oBAAoB,GAC5B,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,CAAC;IAS5C,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,cAAc,CAAC,CAAC;IAWvC,UAAU,CACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,cAAc,CAAC;IAWpB,YAAY,CAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAUpB,UAAU,CACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,aAAa,EAAE,GACvB,OAAO,CAAC,cAAc,CAAC;IAcpB,UAAU,CACd,YAAY,EAAE,yBAAyB,EAAE,EACzC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACvC,UAAU,CACd,YAAY,EAAE,yBAAyB,EAAE,EACzC,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAmCxC,UAAU,CACd,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,yBAAyB,CAAA;KAAE,EAAE,EAC1D,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACvC,UAAU,CACd,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,yBAAyB,CAAA;KAAE,EAAE,EAC1D,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IA+C9C;;;;;OAKG;IACG,kBAAkB,CACtB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAgBxC;;;;;;OAMG;IACG,sBAAsB,CAC1B,YAAY,EAAE,yBAAyB,EAAE,EACzC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAC1B,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IACrD,sBAAsB,CAC1B,YAAY,EAAE,yBAAyB,EAAE,EACzC,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,CAAA;KAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAmD5D;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAC1B,MAAM,CAAC,EAAE,oBAAoB,GAC5B,iBAAiB;IAepB;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS;IAUrE;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACzB,IAAI,EAAE,yBAAyB,GAC9B,sBAAsB;IAqBzB;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,yBAAyB,GAC9B,sBAAsB;IAezB;;OAEG;cACgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc;CAGtE"}
@@ -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":"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"}
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);