@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.
Files changed (73) hide show
  1. package/dist/errors/validation.d.ts.map +1 -1
  2. package/dist/errors/validation.js +19 -1
  3. package/dist/resources/addresses.d.ts +29 -2
  4. package/dist/resources/addresses.d.ts.map +1 -1
  5. package/dist/resources/addresses.js +65 -4
  6. package/dist/resources/bank-accounts.d.ts +29 -2
  7. package/dist/resources/bank-accounts.d.ts.map +1 -1
  8. package/dist/resources/bank-accounts.js +65 -4
  9. package/dist/resources/clients.d.ts +59 -4
  10. package/dist/resources/clients.d.ts.map +1 -1
  11. package/dist/resources/clients.js +85 -8
  12. package/dist/resources/contact-methods.d.ts +29 -2
  13. package/dist/resources/contact-methods.d.ts.map +1 -1
  14. package/dist/resources/contact-methods.js +65 -4
  15. package/dist/resources/documents.d.ts +24 -19
  16. package/dist/resources/documents.d.ts.map +1 -1
  17. package/dist/resources/documents.js +51 -1
  18. package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts +31 -5
  19. package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts.map +1 -1
  20. package/dist/resources/mex/actividad-vulnerable/avi/clients.js +65 -9
  21. package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts +26 -2
  22. package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts.map +1 -1
  23. package/dist/resources/mex/actividad-vulnerable/avi/reports.js +58 -4
  24. package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts +26 -2
  25. package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts.map +1 -1
  26. package/dist/resources/mex/actividad-vulnerable/avi/transactions.js +58 -4
  27. package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts +26 -2
  28. package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts.map +1 -1
  29. package/dist/resources/mex/actividad-vulnerable/jys/clients.js +58 -4
  30. package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts +26 -2
  31. package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts.map +1 -1
  32. package/dist/resources/mex/actividad-vulnerable/jys/reports.js +58 -4
  33. package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts +26 -2
  34. package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts.map +1 -1
  35. package/dist/resources/mex/actividad-vulnerable/jys/transactions.js +58 -4
  36. package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts +26 -2
  37. package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts.map +1 -1
  38. package/dist/resources/mex/actividad-vulnerable/tsc/clients.js +58 -4
  39. package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts +26 -2
  40. package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts.map +1 -1
  41. package/dist/resources/mex/actividad-vulnerable/tsc/reports.js +58 -4
  42. package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts +26 -2
  43. package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts.map +1 -1
  44. package/dist/resources/mex/actividad-vulnerable/tsc/transactions.js +58 -4
  45. package/dist/resources/mex/addresses.d.ts +26 -2
  46. package/dist/resources/mex/addresses.d.ts.map +1 -1
  47. package/dist/resources/mex/addresses.js +66 -5
  48. package/dist/resources/mex/bank-accounts.d.ts +13 -2
  49. package/dist/resources/mex/bank-accounts.d.ts.map +1 -1
  50. package/dist/resources/mex/bank-accounts.js +17 -3
  51. package/dist/resources/mex/clients.d.ts +39 -11
  52. package/dist/resources/mex/clients.d.ts.map +1 -1
  53. package/dist/resources/mex/clients.js +82 -20
  54. package/dist/resources/mex/reports.d.ts +37 -12
  55. package/dist/resources/mex/reports.d.ts.map +1 -1
  56. package/dist/resources/mex/reports.js +71 -21
  57. package/dist/resources/mex/transactions.d.ts +38 -10
  58. package/dist/resources/mex/transactions.d.ts.map +1 -1
  59. package/dist/resources/mex/transactions.js +73 -20
  60. package/dist/resources/reports.d.ts +29 -2
  61. package/dist/resources/reports.d.ts.map +1 -1
  62. package/dist/resources/reports.js +57 -3
  63. package/dist/resources/transactions.d.ts +29 -2
  64. package/dist/resources/transactions.d.ts.map +1 -1
  65. package/dist/resources/transactions.js +57 -3
  66. package/dist/sdk/ComplianceSDK.d.ts.map +1 -1
  67. package/dist/sdk/ComplianceSDK.js +2 -0
  68. package/dist/utils/trpc-client.d.ts +1 -19879
  69. package/dist/utils/trpc-client.d.ts.map +1 -1
  70. package/dist/utils/upload.d.ts +6 -0
  71. package/dist/utils/upload.d.ts.map +1 -1
  72. package/dist/utils/upload.js +2 -1
  73. package/package.json +2 -2
@@ -6,7 +6,7 @@
6
6
  * - Returns MexAVIReport models
7
7
  */
8
8
  import { z } from "zod";
9
- import { CodigoActividad, createAVIReportInputSchema, updateAVIReportInputSchema, createAVIReportItemInputSchema, updateAVIReportItemInputSchema, aviDefaultsInputSchema, submitAVIReportInputSchema, transformSort, aviReportFieldMapping, } from "@artu-ai/shared";
9
+ import { CodigoActividad, createAVIReportInputSchema, updateAVIReportInputSchema, upsertAVIReportInputSchema, createAVIReportItemInputSchema, updateAVIReportItemInputSchema, aviDefaultsInputSchema, submitAVIReportInputSchema, transformSort, aviReportFieldMapping, } from "@artu-ai/shared";
10
10
  import { MexReportsResource } from "../../reports";
11
11
  import { MexAVIReport, MexAVIReportItem, } from "../../../../models";
12
12
  // ===========================
@@ -86,9 +86,14 @@ export class AVIReportsResource extends MexReportsResource {
86
86
  *
87
87
  * Accepts flattened AVI filter (future AVI-specific report fields at root level).
88
88
  */
89
- iterate(filter) {
90
- const scopedFilter = this.applyScopeToFilter(filter);
91
- return this.createIterator({ filter: scopedFilter });
89
+ iterate(options) {
90
+ const scopedFilter = this.applyScopeToFilter(options?.filter);
91
+ // Note: sort is passed through - createIterator calls list() which handles transformation
92
+ return this.createIterator({
93
+ filter: scopedFilter,
94
+ sort: options?.sort,
95
+ pageSize: options?.pageSize,
96
+ });
92
97
  }
93
98
  async createMany(reports, options = {}) {
94
99
  const atomic = options.atomic ?? true;
@@ -142,6 +147,55 @@ export class AVIReportsResource extends MexReportsResource {
142
147
  }
143
148
  }
144
149
  // ─────────────────────────────────────────────────────────────────
150
+ // Upsert Operations
151
+ // ─────────────────────────────────────────────────────────────────
152
+ /**
153
+ * Creates or updates an AVI report by externalId.
154
+ *
155
+ * @param data - Report upsert data with AVI fields at root level (must include externalId)
156
+ * @returns The created or updated report with action indicator
157
+ */
158
+ async upsertByExternalId(data) {
159
+ const validated = this.validate(upsertAVIReportInputSchema, data);
160
+ const nestedData = this.transformToNested(validated);
161
+ const response = await this.execute(() => this.trpc.reports.upsertByExternalId.mutate(nestedData));
162
+ return {
163
+ data: this.instantiate(response.data),
164
+ action: response.action,
165
+ };
166
+ }
167
+ async upsertManyByExternalId(reports, options = {}) {
168
+ const atomic = options.atomic ?? true;
169
+ const validated = this.validate(z.array(upsertAVIReportInputSchema), reports);
170
+ const nestedItems = validated.map((r) => this.transformToNested(r));
171
+ const response = await this.execute(() => this.trpc.reports.upsertManyByExternalId.mutate({
172
+ items: nestedItems,
173
+ atomic,
174
+ }));
175
+ if (response.atomic) {
176
+ return {
177
+ atomic: true,
178
+ data: response.data.map((item) => ({
179
+ data: this.instantiate(item.data),
180
+ action: item.action,
181
+ })),
182
+ };
183
+ }
184
+ else {
185
+ return {
186
+ atomic: false,
187
+ succeeded: response.succeeded.map((item) => ({
188
+ index: item.index,
189
+ data: {
190
+ data: this.instantiate(item.data.data),
191
+ action: item.data.action,
192
+ },
193
+ })),
194
+ failed: response.failed,
195
+ };
196
+ }
197
+ }
198
+ // ─────────────────────────────────────────────────────────────────
145
199
  // Report Items
146
200
  // ─────────────────────────────────────────────────────────────────
147
201
  async addItem(reportId, data) {
@@ -5,7 +5,7 @@
5
5
  * - Accepts flattened CreateAVITransactionInput (AVI fields at root level)
6
6
  * - Returns MexAVITransaction models
7
7
  */
8
- import type { CreateTransactionInput, UpdateTransactionInput, TransactionSort, ListOptions, PaginatedResponse, CreateAVITransactionInput, UpdateAVITransactionInput, AtomicBatchResult, PartialBatchResult, RelatedClient, AVITransactionFilter, AVITransactionSort } from "@artu-ai/shared";
8
+ import type { CreateTransactionInput, UpdateTransactionInput, TransactionSort, ListOptions, PaginatedResponse, CreateAVITransactionInput, UpdateAVITransactionInput, UpsertAVITransactionInput, AtomicBatchResult, PartialBatchResult, RelatedClient, AVITransactionFilter, AVITransactionSort, UpsertResult } from "@artu-ai/shared";
9
9
  import { ClientRole } from "@artu-ai/shared";
10
10
  import { MexTransactionsResource } from "../../transactions";
11
11
  import { MexAVITransaction, type TransactionData } from "../../../../models";
@@ -50,7 +50,11 @@ export declare class AVITransactionsResource extends MexTransactionsResource<AVI
50
50
  *
51
51
  * Accepts flattened AVI filter (future AVI-specific transaction fields at root level).
52
52
  */
53
- iterate(filter?: AVITransactionFilter): AsyncGenerator<MexAVITransaction, void, undefined>;
53
+ iterate(options?: {
54
+ filter?: AVITransactionFilter;
55
+ sort?: AVITransactionSort;
56
+ pageSize?: number;
57
+ }): AsyncGenerator<MexAVITransaction, void, undefined>;
54
58
  listByClient(clientId: string, options?: {
55
59
  cursor?: string;
56
60
  limit?: number;
@@ -76,6 +80,26 @@ export declare class AVITransactionsResource extends MexTransactionsResource<AVI
76
80
  }[], options: {
77
81
  atomic: false;
78
82
  }): Promise<PartialBatchResult<MexAVITransaction>>;
83
+ /**
84
+ * Creates or updates an AVI transaction by externalId.
85
+ *
86
+ * @param data - Transaction upsert data with AVI fields at root level (must include externalId)
87
+ * @returns The created or updated transaction with action indicator
88
+ */
89
+ upsertByExternalId(data: UpsertAVITransactionInput): Promise<UpsertResult<MexAVITransaction>>;
90
+ /**
91
+ * Creates or updates multiple AVI transactions by externalId.
92
+ *
93
+ * @param transactions - Array of transaction upsert data (each must include externalId)
94
+ * @param options - Batch options (atomic: true by default)
95
+ * @returns Atomic result with data array, or partial result with succeeded/failed
96
+ */
97
+ upsertManyByExternalId(transactions: UpsertAVITransactionInput[], options?: {
98
+ atomic?: true;
99
+ }): Promise<AtomicBatchResult<UpsertResult<MexAVITransaction>>>;
100
+ upsertManyByExternalId(transactions: UpsertAVITransactionInput[], options: {
101
+ atomic: false;
102
+ }): Promise<PartialBatchResult<UpsertResult<MexAVITransaction>>>;
79
103
  /**
80
104
  * Transforms a flattened AVITransactionSort to nested TransactionSort format.
81
105
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/avi/transactions.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * - Returns MexAVITransaction models
7
7
  */
8
8
  import { z } from "zod";
9
- import { Jurisdiction, CodigoActividad, createAVITransactionInputSchema, updateAVITransactionInputSchema, transformSort, aviTransactionFieldMapping, } from "@artu-ai/shared";
9
+ import { Jurisdiction, CodigoActividad, createAVITransactionInputSchema, updateAVITransactionInputSchema, upsertAVITransactionInputSchema, transformSort, aviTransactionFieldMapping, } from "@artu-ai/shared";
10
10
  import { MexTransactionsResource } from "../../transactions";
11
11
  import { MexAVITransaction } from "../../../../models";
12
12
  // ===========================
@@ -87,9 +87,14 @@ export class AVITransactionsResource extends MexTransactionsResource {
87
87
  *
88
88
  * Accepts flattened AVI filter (future AVI-specific transaction fields at root level).
89
89
  */
90
- iterate(filter) {
91
- const scopedFilter = this.applyScopeToFilter(filter);
92
- return this.createIterator({ filter: scopedFilter });
90
+ iterate(options) {
91
+ const scopedFilter = this.applyScopeToFilter(options?.filter);
92
+ // Note: sort is passed through - createIterator calls list() which handles transformation
93
+ return this.createIterator({
94
+ filter: scopedFilter,
95
+ sort: options?.sort,
96
+ pageSize: options?.pageSize,
97
+ });
93
98
  }
94
99
  // ─────────────────────────────────────────────────────────────────
95
100
  // Client Relationship Management (scoped returns)
@@ -178,6 +183,55 @@ export class AVITransactionsResource extends MexTransactionsResource {
178
183
  }
179
184
  }
180
185
  // ─────────────────────────────────────────────────────────────────
186
+ // Upsert Operations
187
+ // ─────────────────────────────────────────────────────────────────
188
+ /**
189
+ * Creates or updates an AVI transaction by externalId.
190
+ *
191
+ * @param data - Transaction upsert data with AVI fields at root level (must include externalId)
192
+ * @returns The created or updated transaction with action indicator
193
+ */
194
+ async upsertByExternalId(data) {
195
+ const validated = this.validate(upsertAVITransactionInputSchema, data);
196
+ const nestedData = this.transformToNested(validated);
197
+ const response = await this.execute(() => this.trpc.transactions.upsertByExternalId.mutate(nestedData));
198
+ return {
199
+ data: this.instantiate(response.data),
200
+ action: response.action,
201
+ };
202
+ }
203
+ async upsertManyByExternalId(transactions, options = {}) {
204
+ const atomic = options.atomic ?? true;
205
+ const validated = this.validate(z.array(upsertAVITransactionInputSchema), transactions);
206
+ const nestedItems = validated.map((t) => this.transformToNested(t));
207
+ const response = await this.execute(() => this.trpc.transactions.upsertManyByExternalId.mutate({
208
+ items: nestedItems,
209
+ atomic,
210
+ }));
211
+ if (response.atomic) {
212
+ return {
213
+ atomic: true,
214
+ data: response.data.map((item) => ({
215
+ data: this.instantiate(item.data),
216
+ action: item.action,
217
+ })),
218
+ };
219
+ }
220
+ else {
221
+ return {
222
+ atomic: false,
223
+ succeeded: response.succeeded.map((item) => ({
224
+ index: item.index,
225
+ data: {
226
+ data: this.instantiate(item.data.data),
227
+ action: item.data.action,
228
+ },
229
+ })),
230
+ failed: response.failed,
231
+ };
232
+ }
233
+ }
234
+ // ─────────────────────────────────────────────────────────────────
181
235
  // Protected Helpers
182
236
  // ─────────────────────────────────────────────────────────────────
183
237
  /**
@@ -5,7 +5,7 @@
5
5
  * JYS clients have the same fields as Mexico clients (no additional activity fields).
6
6
  * Returns MexJYSClient models.
7
7
  */
8
- import type { CreateClientInput, UpdateClientInput, ListOptions, PaginatedResponse, CreateJYSClientInput, UpdateJYSClientInput, AtomicBatchResult, PartialBatchResult, ClientRelationshipType, LinkedClient as LinkedClientInput, CreateMexAddressInput, UpdateMexAddressInput, CreateContactMethodInput, UpdateContactMethodInput, CreateBankAccountInput, UpdateBankAccountInput, SyncItem, SyncResult, JYSClientFilter, JYSClientSort } from "@artu-ai/shared";
8
+ import type { CreateClientInput, UpdateClientInput, ListOptions, PaginatedResponse, CreateJYSClientInput, UpdateJYSClientInput, UpsertJYSClientInput, AtomicBatchResult, PartialBatchResult, ClientRelationshipType, LinkedClient as LinkedClientInput, CreateMexAddressInput, UpdateMexAddressInput, CreateContactMethodInput, UpdateContactMethodInput, CreateBankAccountInput, UpdateBankAccountInput, SyncItem, SyncResult, JYSClientFilter, JYSClientSort, UpsertResult } from "@artu-ai/shared";
9
9
  import type { ClientSort } from "@artu-ai/shared";
10
10
  import { MexClientsResource } from "../../clients";
11
11
  import { type ClientIncludeMap } from "../../../clients";
@@ -51,7 +51,11 @@ export declare class JYSClientsResource extends MexClientsResource<JYSClientSort
51
51
  * Accepts flattened JYS filter (MX fields at root level) and automatically
52
52
  * transforms to nested format before calling the API.
53
53
  */
54
- iterate(filter?: JYSClientFilter): AsyncGenerator<MexJYSClient, void, undefined>;
54
+ iterate(options?: {
55
+ filter?: JYSClientFilter;
56
+ sort?: JYSClientSort;
57
+ pageSize?: number;
58
+ }): AsyncGenerator<MexJYSClient, void, undefined>;
55
59
  createMany(clients: CreateJYSClientInput[], options?: {
56
60
  atomic?: true;
57
61
  }): Promise<AtomicBatchResult<MexJYSClient>>;
@@ -70,6 +74,26 @@ export declare class JYSClientsResource extends MexClientsResource<JYSClientSort
70
74
  }[], options: {
71
75
  atomic: false;
72
76
  }): Promise<PartialBatchResult<MexJYSClient>>;
77
+ /**
78
+ * Creates or updates a JYS client by externalId.
79
+ *
80
+ * @param data - Client upsert data with JYS fields at root level (must include externalId)
81
+ * @returns The created or updated client with action indicator
82
+ */
83
+ upsertByExternalId(data: UpsertJYSClientInput): Promise<UpsertResult<MexJYSClient>>;
84
+ /**
85
+ * Creates or updates multiple JYS clients by externalId.
86
+ *
87
+ * @param clients - Array of client upsert data (each must include externalId)
88
+ * @param options - Batch options (atomic: true by default)
89
+ * @returns Atomic result with data array, or partial result with succeeded/failed
90
+ */
91
+ upsertManyByExternalId(clients: UpsertJYSClientInput[], options?: {
92
+ atomic?: true;
93
+ }): Promise<AtomicBatchResult<UpsertResult<MexJYSClient>>>;
94
+ upsertManyByExternalId(clients: UpsertJYSClientInput[], options: {
95
+ atomic: false;
96
+ }): Promise<PartialBatchResult<UpsertResult<MexJYSClient>>>;
73
97
  linkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType, metadata?: Record<string, unknown>): Promise<MexJYSClient>;
74
98
  unlinkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType): Promise<MexJYSClient>;
75
99
  listLinkedClients(parentClientId: string, relationshipType?: ClientRelationshipType): Promise<LinkedClient[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/clients.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * Returns MexJYSClient models.
7
7
  */
8
8
  import { z } from "zod";
9
- import { CodigoActividad, createJYSClientInputSchema, updateJYSClientInputSchema, linkedClientSchema, transformSort, jysClientFieldMapping, } from "@artu-ai/shared";
9
+ import { CodigoActividad, createJYSClientInputSchema, updateJYSClientInputSchema, upsertJYSClientInputSchema, linkedClientSchema, transformSort, jysClientFieldMapping, } from "@artu-ai/shared";
10
10
  import { MexClientsResource } from "../../clients";
11
11
  import { MexJYSClient, } from "../../../../models";
12
12
  // ===========================
@@ -85,9 +85,14 @@ export class JYSClientsResource extends MexClientsResource {
85
85
  * Accepts flattened JYS filter (MX fields at root level) and automatically
86
86
  * transforms to nested format before calling the API.
87
87
  */
88
- iterate(filter) {
89
- const scopedFilter = this.applyScopeToFilter(filter);
90
- return this.createIterator({ filter: scopedFilter });
88
+ iterate(options) {
89
+ const scopedFilter = this.applyScopeToFilter(options?.filter);
90
+ // Note: sort is passed through - createIterator calls list() which handles transformation
91
+ return this.createIterator({
92
+ filter: scopedFilter,
93
+ sort: options?.sort,
94
+ pageSize: options?.pageSize,
95
+ });
91
96
  }
92
97
  async createMany(clients, options = {}) {
93
98
  const atomic = options.atomic ?? true;
@@ -141,6 +146,55 @@ export class JYSClientsResource extends MexClientsResource {
141
146
  }
142
147
  }
143
148
  // ─────────────────────────────────────────────────────────────────
149
+ // Upsert Operations
150
+ // ─────────────────────────────────────────────────────────────────
151
+ /**
152
+ * Creates or updates a JYS client by externalId.
153
+ *
154
+ * @param data - Client upsert data with JYS fields at root level (must include externalId)
155
+ * @returns The created or updated client with action indicator
156
+ */
157
+ async upsertByExternalId(data) {
158
+ const validated = this.validate(upsertJYSClientInputSchema, data);
159
+ const nestedData = this.transformToNested(validated);
160
+ const response = await this.execute(() => this.trpc.clients.upsertByExternalId.mutate(nestedData));
161
+ return {
162
+ data: this.instantiate(response.data),
163
+ action: response.action,
164
+ };
165
+ }
166
+ async upsertManyByExternalId(clients, options = {}) {
167
+ const atomic = options.atomic ?? true;
168
+ const validated = this.validate(z.array(upsertJYSClientInputSchema), clients);
169
+ const nestedItems = validated.map((c) => this.transformToNested(c));
170
+ const response = await this.execute(() => this.trpc.clients.upsertManyByExternalId.mutate({
171
+ items: nestedItems,
172
+ atomic,
173
+ }));
174
+ if (response.atomic) {
175
+ return {
176
+ atomic: true,
177
+ data: response.data.map((item) => ({
178
+ data: this.instantiate(item.data),
179
+ action: item.action,
180
+ })),
181
+ };
182
+ }
183
+ else {
184
+ return {
185
+ atomic: false,
186
+ succeeded: response.succeeded.map((item) => ({
187
+ index: item.index,
188
+ data: {
189
+ data: this.instantiate(item.data.data),
190
+ action: item.data.action,
191
+ },
192
+ })),
193
+ failed: response.failed,
194
+ };
195
+ }
196
+ }
197
+ // ─────────────────────────────────────────────────────────────────
144
198
  // Client-to-Client Relationship Management (scoped returns)
145
199
  // ─────────────────────────────────────────────────────────────────
146
200
  async linkClient(parentClientId, childClientId, relationshipType, metadata) {
@@ -5,7 +5,7 @@
5
5
  * - Accepts flattened CreateJYSReportInput (JYS fields at root level)
6
6
  * - Returns MexJYSReport models
7
7
  */
8
- import type { CreateReportInput, UpdateReportInput, CreateReportItemInput, UpdateReportItemInput, CreateJYSReportInput, UpdateJYSReportInput, CreateJYSReportItemInput, UpdateJYSReportItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, JysReportDefaultsInput, ValidationResult, GenerateResult, SubmissionResult, SubmitJYSSubmissionInput } from "@artu-ai/shared";
8
+ import type { CreateReportInput, UpdateReportInput, CreateReportItemInput, UpdateReportItemInput, CreateJYSReportInput, UpdateJYSReportInput, UpsertJYSReportInput, CreateJYSReportItemInput, UpdateJYSReportItemInput, ListOptions, PaginatedResponse, AtomicBatchResult, PartialBatchResult, JysReportDefaultsInput, ValidationResult, GenerateResult, SubmissionResult, SubmitJYSSubmissionInput, UpsertResult } from "@artu-ai/shared";
9
9
  import type { JYSReportFilter, JYSReportSort, JYSReportItemFilter, ReportSort, ReportItemFilter, ReportItemSort } from "@artu-ai/shared";
10
10
  import { MexReportsResource } from "../../reports";
11
11
  import { MexJYSReport, MexJYSReportItem, type ReportData, type ReportItemData } from "../../../../models";
@@ -46,7 +46,11 @@ export declare class JYSReportsResource extends MexReportsResource<JYSReportSort
46
46
  *
47
47
  * Accepts flattened JYS filter (future JYS-specific report fields at root level).
48
48
  */
49
- iterate(filter?: JYSReportFilter): AsyncGenerator<MexJYSReport, void, undefined>;
49
+ iterate(options?: {
50
+ filter?: JYSReportFilter;
51
+ sort?: JYSReportSort;
52
+ pageSize?: number;
53
+ }): AsyncGenerator<MexJYSReport, void, undefined>;
50
54
  createMany(reports: CreateJYSReportInput[], options?: {
51
55
  atomic?: true;
52
56
  }): Promise<AtomicBatchResult<MexJYSReport>>;
@@ -65,6 +69,26 @@ export declare class JYSReportsResource extends MexReportsResource<JYSReportSort
65
69
  }[], options: {
66
70
  atomic: false;
67
71
  }): Promise<PartialBatchResult<MexJYSReport>>;
72
+ /**
73
+ * Creates or updates a JYS report by externalId.
74
+ *
75
+ * @param data - Report upsert data with JYS fields at root level (must include externalId)
76
+ * @returns The created or updated report with action indicator
77
+ */
78
+ upsertByExternalId(data: UpsertJYSReportInput): Promise<UpsertResult<MexJYSReport>>;
79
+ /**
80
+ * Creates or updates multiple JYS 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: UpsertJYSReportInput[], options?: {
87
+ atomic?: true;
88
+ }): Promise<AtomicBatchResult<UpsertResult<MexJYSReport>>>;
89
+ upsertManyByExternalId(reports: UpsertJYSReportInput[], options: {
90
+ atomic: false;
91
+ }): Promise<PartialBatchResult<UpsertResult<MexJYSReport>>>;
68
92
  addItem(reportId: string, data: CreateJYSReportItemInput): Promise<MexJYSReportItem>;
69
93
  getItem(reportId: string, itemId: string): Promise<MexJYSReportItem>;
70
94
  updateItem(reportId: string, itemId: string, data: UpdateJYSReportItemInput): Promise<MexJYSReportItem>;
@@ -1 +1 @@
1
- {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/reports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/reports.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * - Returns MexJYSReport models
7
7
  */
8
8
  import { z } from "zod";
9
- import { CodigoActividad, createJYSReportInputSchema, updateJYSReportInputSchema, createJYSReportItemInputSchema, updateJYSReportItemInputSchema, jysDefaultsInputSchema, submitJYSSubmissionInputSchema, transformSort, jysReportFieldMapping, } from "@artu-ai/shared";
9
+ import { CodigoActividad, createJYSReportInputSchema, updateJYSReportInputSchema, upsertJYSReportInputSchema, createJYSReportItemInputSchema, updateJYSReportItemInputSchema, jysDefaultsInputSchema, submitJYSSubmissionInputSchema, transformSort, jysReportFieldMapping, } from "@artu-ai/shared";
10
10
  import { MexReportsResource } from "../../reports";
11
11
  import { MexJYSReport, MexJYSReportItem, } from "../../../../models";
12
12
  // ===========================
@@ -86,9 +86,14 @@ export class JYSReportsResource extends MexReportsResource {
86
86
  *
87
87
  * Accepts flattened JYS filter (future JYS-specific report fields at root level).
88
88
  */
89
- iterate(filter) {
90
- const scopedFilter = this.applyScopeToFilter(filter);
91
- return this.createIterator({ filter: scopedFilter });
89
+ iterate(options) {
90
+ const scopedFilter = this.applyScopeToFilter(options?.filter);
91
+ // Note: sort is passed through - createIterator calls list() which handles transformation
92
+ return this.createIterator({
93
+ filter: scopedFilter,
94
+ sort: options?.sort,
95
+ pageSize: options?.pageSize,
96
+ });
92
97
  }
93
98
  async createMany(reports, options = {}) {
94
99
  const atomic = options.atomic ?? true;
@@ -142,6 +147,55 @@ export class JYSReportsResource extends MexReportsResource {
142
147
  }
143
148
  }
144
149
  // ─────────────────────────────────────────────────────────────────
150
+ // Upsert Operations
151
+ // ─────────────────────────────────────────────────────────────────
152
+ /**
153
+ * Creates or updates a JYS report by externalId.
154
+ *
155
+ * @param data - Report upsert data with JYS fields at root level (must include externalId)
156
+ * @returns The created or updated report with action indicator
157
+ */
158
+ async upsertByExternalId(data) {
159
+ const validated = this.validate(upsertJYSReportInputSchema, data);
160
+ const nestedData = this.transformToNested(validated);
161
+ const response = await this.execute(() => this.trpc.reports.upsertByExternalId.mutate(nestedData));
162
+ return {
163
+ data: this.instantiate(response.data),
164
+ action: response.action,
165
+ };
166
+ }
167
+ async upsertManyByExternalId(reports, options = {}) {
168
+ const atomic = options.atomic ?? true;
169
+ const validated = this.validate(z.array(upsertJYSReportInputSchema), reports);
170
+ const nestedItems = validated.map((r) => this.transformToNested(r));
171
+ const response = await this.execute(() => this.trpc.reports.upsertManyByExternalId.mutate({
172
+ items: nestedItems,
173
+ atomic,
174
+ }));
175
+ if (response.atomic) {
176
+ return {
177
+ atomic: true,
178
+ data: response.data.map((item) => ({
179
+ data: this.instantiate(item.data),
180
+ action: item.action,
181
+ })),
182
+ };
183
+ }
184
+ else {
185
+ return {
186
+ atomic: false,
187
+ succeeded: response.succeeded.map((item) => ({
188
+ index: item.index,
189
+ data: {
190
+ data: this.instantiate(item.data.data),
191
+ action: item.data.action,
192
+ },
193
+ })),
194
+ failed: response.failed,
195
+ };
196
+ }
197
+ }
198
+ // ─────────────────────────────────────────────────────────────────
145
199
  // Report Items
146
200
  // ─────────────────────────────────────────────────────────────────
147
201
  async addItem(reportId, data) {
@@ -5,7 +5,7 @@
5
5
  * - Accepts flattened CreateJYSTransactionInput (JYS fields at root level)
6
6
  * - Returns MexJYSTransaction models
7
7
  */
8
- import type { CreateTransactionInput, UpdateTransactionInput, ListOptions, PaginatedResponse, CreateJYSTransactionInput, UpdateJYSTransactionInput, AtomicBatchResult, PartialBatchResult, RelatedClient, JYSTransactionFilter, JYSTransactionSort } from "@artu-ai/shared";
8
+ import type { CreateTransactionInput, UpdateTransactionInput, ListOptions, PaginatedResponse, CreateJYSTransactionInput, UpdateJYSTransactionInput, UpsertJYSTransactionInput, AtomicBatchResult, PartialBatchResult, RelatedClient, JYSTransactionFilter, JYSTransactionSort, UpsertResult } from "@artu-ai/shared";
9
9
  import { ClientRole } from "@artu-ai/shared";
10
10
  import type { TransactionSort } from "@artu-ai/shared";
11
11
  import { MexTransactionsResource } from "../../transactions";
@@ -54,7 +54,11 @@ export declare class JYSTransactionsResource extends MexTransactionsResource<JYS
54
54
  *
55
55
  * Accepts flattened JYS filter (future JYS-specific transaction fields at root level).
56
56
  */
57
- iterate(filter?: JYSTransactionFilter): AsyncGenerator<MexJYSTransaction, void, undefined>;
57
+ iterate(options?: {
58
+ filter?: JYSTransactionFilter;
59
+ sort?: JYSTransactionSort;
60
+ pageSize?: number;
61
+ }): AsyncGenerator<MexJYSTransaction, void, undefined>;
58
62
  listByClient(clientId: string, options?: {
59
63
  cursor?: string;
60
64
  limit?: number;
@@ -80,6 +84,26 @@ export declare class JYSTransactionsResource extends MexTransactionsResource<JYS
80
84
  }[], options: {
81
85
  atomic: false;
82
86
  }): Promise<PartialBatchResult<MexJYSTransaction>>;
87
+ /**
88
+ * Creates or updates a JYS transaction by externalId.
89
+ *
90
+ * @param data - Transaction upsert data with JYS fields at root level (must include externalId)
91
+ * @returns The created or updated transaction with action indicator
92
+ */
93
+ upsertByExternalId(data: UpsertJYSTransactionInput): Promise<UpsertResult<MexJYSTransaction>>;
94
+ /**
95
+ * Creates or updates multiple JYS transactions by externalId.
96
+ *
97
+ * @param transactions - Array of transaction upsert data (each must include externalId)
98
+ * @param options - Batch options (atomic: true by default)
99
+ * @returns Atomic result with data array, or partial result with succeeded/failed
100
+ */
101
+ upsertManyByExternalId(transactions: UpsertJYSTransactionInput[], options?: {
102
+ atomic?: true;
103
+ }): Promise<AtomicBatchResult<UpsertResult<MexJYSTransaction>>>;
104
+ upsertManyByExternalId(transactions: UpsertJYSTransactionInput[], options: {
105
+ atomic: false;
106
+ }): Promise<PartialBatchResult<UpsertResult<MexJYSTransaction>>>;
83
107
  /**
84
108
  * Transforms a flattened JYSTransactionSort to nested TransactionSort format.
85
109
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../../src/resources/mex/actividad-vulnerable/jys/transactions.ts"],"names":[],"mappings":"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"}