@codespar/sdk 0.16.18 → 0.16.20

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 (42) hide show
  1. package/README.md +38 -0
  2. package/dist/__tests__/api-client.test.js +58 -1
  3. package/dist/__tests__/api-client.test.js.map +1 -1
  4. package/dist/__tests__/openapi-snapshot.test.js +10 -1
  5. package/dist/__tests__/openapi-snapshot.test.js.map +1 -1
  6. package/dist/__tests__/path-parameter-declared.test.d.ts +13 -0
  7. package/dist/__tests__/path-parameter-declared.test.d.ts.map +1 -0
  8. package/dist/__tests__/path-parameter-declared.test.js +44 -0
  9. package/dist/__tests__/path-parameter-declared.test.js.map +1 -0
  10. package/dist/__tests__/payables.test.d.ts +2 -0
  11. package/dist/__tests__/payables.test.d.ts.map +1 -0
  12. package/dist/__tests__/payables.test.js +212 -0
  13. package/dist/__tests__/payables.test.js.map +1 -0
  14. package/dist/api/client.d.ts.map +1 -1
  15. package/dist/api/client.js +11 -3
  16. package/dist/api/client.js.map +1 -1
  17. package/dist/api/types.d.ts +2 -0
  18. package/dist/api/types.d.ts.map +1 -1
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +13 -2
  21. package/dist/errors.js.map +1 -1
  22. package/dist/generated/openapi.d.ts +1589 -136
  23. package/dist/generated/openapi.d.ts.map +1 -1
  24. package/dist/generated/operations.d.ts +407 -0
  25. package/dist/generated/operations.d.ts.map +1 -1
  26. package/dist/generated/operations.js +365 -358
  27. package/dist/generated/operations.js.map +1 -1
  28. package/dist/index.d.ts +20 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +24 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/internal/multipart.d.ts +26 -0
  33. package/dist/internal/multipart.d.ts.map +1 -0
  34. package/dist/internal/multipart.js +97 -0
  35. package/dist/internal/multipart.js.map +1 -0
  36. package/dist/payables.d.ts +57 -0
  37. package/dist/payables.d.ts.map +1 -0
  38. package/dist/payables.js +142 -0
  39. package/dist/payables.js.map +1 -0
  40. package/dist/types.d.ts +145 -1
  41. package/dist/types.d.ts.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,142 @@
1
+ /**
2
+ * `cs.payables`: pay documents and batches. Upload files (boleto PDFs,
3
+ * Pix QR images, CSV/XLSX lists), build a batch, complement what the
4
+ * files did not say, and pay the exact list you reviewed.
5
+ *
6
+ * Paying binds to the list's `version` and `list_hash`: any change after
7
+ * you read the batch makes `pay` refuse with 409
8
+ * `payable_batch_version_mismatch`, and the error body carries the
9
+ * current batch in `error.details.batch` (`payableBatchFromError`). Repeating `pay` with the same
10
+ * version and hash resumes; it never pays an item twice.
11
+ */
12
+ import { CodesparApiError, networkErrorToApiError, throwFromResponse, TimeoutError } from "./errors.js";
13
+ import { fetchWithTimeout } from "./internal/fetch.js";
14
+ import { fileName, toBlob } from "./internal/multipart.js";
15
+ /**
16
+ * The current batch a 409 (`payable_batch_version_conflict` or
17
+ * `payable_batch_version_mismatch`) carries in `error.details.batch`, so
18
+ * the caller can show the new list and ask for a new confirmation.
19
+ * `undefined` for any other error.
20
+ */
21
+ export function payableBatchFromError(err) {
22
+ if (!(err instanceof CodesparApiError) || err.status !== 409)
23
+ return undefined;
24
+ const body = err.body;
25
+ const batch = body?.error?.details?.batch;
26
+ return batch && typeof batch === "object" ? batch : undefined;
27
+ }
28
+ function itemToWire(item) {
29
+ return dropUndefined({
30
+ pix_key: item.pixKey,
31
+ boleto_line: item.boletoLine,
32
+ br_code: item.brCode,
33
+ amount_minor: item.amountMinor,
34
+ description: item.description,
35
+ reference: item.reference,
36
+ });
37
+ }
38
+ function dropUndefined(obj) {
39
+ return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
40
+ }
41
+ /** How many pay calls one `pay()` makes at most while the batch continues (about 20 s each). */
42
+ const PAY_MAX_ROUNDS = 30;
43
+ /** A pay call stopped at its time budget with items never sent: the same call continues them. */
44
+ function continuesOnRepeat(batch) {
45
+ return batch.status === "executing" && batch.items.some((i) => i.state === "ready");
46
+ }
47
+ export function createPayables(deps) {
48
+ const base = `${deps.baseUrl}/v1/payables`;
49
+ const auth = { Authorization: `Bearer ${deps.apiKey}` };
50
+ if (deps.projectId)
51
+ auth["x-codespar-project"] = deps.projectId;
52
+ async function call(what, url, init, opts) {
53
+ try {
54
+ return await fetchWithTimeout(url, init, { timeout: opts?.timeout ?? deps.timeout, signal: opts?.signal }, async (r) => {
55
+ if (!r.ok)
56
+ await throwFromResponse(r, what);
57
+ return (await r.json());
58
+ });
59
+ }
60
+ catch (cause) {
61
+ if (cause instanceof TimeoutError)
62
+ throw cause;
63
+ if (cause instanceof CodesparApiError)
64
+ throw cause;
65
+ if (opts?.signal?.aborted)
66
+ throw cause;
67
+ throw networkErrorToApiError(cause, what);
68
+ }
69
+ }
70
+ function json(method, body, extra = {}) {
71
+ return {
72
+ method,
73
+ headers: { ...auth, "Content-Type": "application/json", Accept: "application/json", ...extra },
74
+ body: JSON.stringify(body),
75
+ };
76
+ }
77
+ const batchUrl = (batchId) => `${base}/batches/${encodeURIComponent(batchId)}`;
78
+ return {
79
+ files: {
80
+ async upload(file, opts) {
81
+ const blob = await toBlob(file, opts?.contentType);
82
+ const form = new FormData();
83
+ form.append("file", blob, opts?.filename ?? fileName(file) ?? "document");
84
+ // No Content-Type: fetch writes it with the boundary.
85
+ return call("payables.files.upload", `${base}/files`, { method: "POST", headers: { ...auth, Accept: "application/json" }, body: form }, opts);
86
+ },
87
+ },
88
+ batches: {
89
+ async create(input, opts) {
90
+ const body = dropUndefined({
91
+ file_ids: input.fileIds,
92
+ items: input.items?.map(itemToWire),
93
+ source: input.source,
94
+ conversation_id: input.conversationId,
95
+ });
96
+ const key = opts?.idempotencyKey ?? globalThis.crypto.randomUUID();
97
+ return call("payables.batches.create", `${base}/batches`, json("POST", body, { "Idempotency-Key": key }), opts);
98
+ },
99
+ async get(batchId, opts) {
100
+ return call("payables.batches.get", batchUrl(batchId), { method: "GET", headers: { ...auth, Accept: "application/json" } }, opts);
101
+ },
102
+ async updateItem(batchId, itemId, update, opts) {
103
+ const body = dropUndefined({
104
+ expected_version: update.expectedVersion,
105
+ amount_minor: update.amountMinor,
106
+ pix_key: update.pixKey,
107
+ boleto_line: update.boletoLine,
108
+ br_code: update.brCode,
109
+ description: update.description,
110
+ excluded: update.excluded,
111
+ });
112
+ return call("payables.batches.updateItem", `${batchUrl(batchId)}/items/${encodeURIComponent(itemId)}`, json("PATCH", body), opts);
113
+ },
114
+ async addItems(batchId, input, opts) {
115
+ const body = dropUndefined({
116
+ expected_version: input.expectedVersion,
117
+ file_ids: input.fileIds,
118
+ items: input.items?.map(itemToWire),
119
+ });
120
+ return call("payables.batches.addItems", `${batchUrl(batchId)}/items`, json("POST", body), opts);
121
+ },
122
+ async pay(batchId, input, opts) {
123
+ const body = dropUndefined({
124
+ version: input.version,
125
+ list_hash: input.listHash,
126
+ mandate_id: input.mandateId,
127
+ });
128
+ const key = opts?.idempotencyKey ?? `pay:${batchId}:${input.version}:${input.listHash}`;
129
+ const once = () => call("payables.batches.pay", `${batchUrl(batchId)}/pay`, json("POST", body, { "Idempotency-Key": key }), opts);
130
+ // The API executes for about 20 s, then answers `executing` with the
131
+ // items it did not reach still `ready`; nothing runs after the answer.
132
+ // The same call continues them: paid items come back as they are, an
133
+ // uncertain one is looked up, never resent.
134
+ let batch = await once();
135
+ for (let round = 1; round < PAY_MAX_ROUNDS && continuesOnRepeat(batch); round++)
136
+ batch = await once();
137
+ return batch;
138
+ },
139
+ },
140
+ };
141
+ }
142
+ //# sourceMappingURL=payables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payables.js","sourceRoot":"","sources":["../src/payables.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import type { MockValue, ToolResult } from "@codespar/types";
2
+ import type { CallOptions, MockValue, ToolResult } from "@codespar/types";
3
3
  export type { CallOptions } from "@codespar/types";
4
4
  export interface CodeSparConfig {
5
5
  /** API key for managed mode. Obtain from dashboard.codespar.dev */
@@ -129,4 +129,148 @@ export declare const SessionConfigSchema: z.ZodObject<{
129
129
  projectId?: string | undefined;
130
130
  mocks?: Record<string, Record<string, unknown> | Record<string, unknown>[]> | undefined;
131
131
  }>;
132
+ /** A file read by `POST /v1/payables/files`. The original is not kept, only its digest and what was found in it. */
133
+ export interface PayableFile {
134
+ file_id: string;
135
+ kind: "pdf" | "image" | "csv" | "xlsx";
136
+ sha256: string;
137
+ size_bytes: number;
138
+ /** Charges found in the file. */
139
+ items_found: number;
140
+ /** Of those, how many still need a complement in the review. */
141
+ unresolved: number;
142
+ /** A file no batch uses expires 24 h after the upload. */
143
+ expires_at: string;
144
+ }
145
+ export type PayableBatchStatus = "reviewing" | "ready" | "confirmed" | "executing" | "completed" | "partially_completed" | "failed" | "canceled";
146
+ export type PayableBatchItemState = "needs_complement" | "resolving" | "ready" | "excluded" | "rejected" | "dispatching" | "executed" | "refused" | "uncertain";
147
+ export interface PayableBatchItemCheck {
148
+ /** `carrier_check_digits`, `duplicate_in_batch`, `duplicate_document`, `amount_matches_rail`, `due_date_state`, `pix_key_resolved`. */
149
+ code: string;
150
+ status: "pass" | "fail" | "warn";
151
+ message: string;
152
+ /** True when a test project's own responder answered the consult behind this check, not the rail. */
153
+ simulated?: boolean;
154
+ }
155
+ export interface PayableBatchItemPayment {
156
+ state: "executed" | "refused" | "uncertain";
157
+ attempt_id: string | null;
158
+ receipt_id: string | null;
159
+ end_to_end_id: string | null;
160
+ refusal: {
161
+ code: string;
162
+ message: string;
163
+ } | null;
164
+ }
165
+ export interface PayableBatchItem {
166
+ /** `pbl_` + 16 characters: the payable's id, derived from the batch and the item's content. */
167
+ item_id: string;
168
+ position: number;
169
+ origin: {
170
+ file_id: string | null;
171
+ page: number | null;
172
+ row: number | null;
173
+ kind: "boleto_line" | "br_code" | "pix_key" | "qr_image" | "barcode_image" | "csv_row" | "manual";
174
+ };
175
+ rail: "boleto" | "pix" | null;
176
+ state: PayableBatchItemState;
177
+ missing: Array<"amount" | "destination" | "pix_key_owner_confirmation">;
178
+ /** Resolved on the rail: what the person confirms, not what was extracted. */
179
+ destination: {
180
+ kind: "boleto" | "pix_key" | "br_code_static" | "br_code_dynamic";
181
+ /** Masked line or masked key. */
182
+ display: string;
183
+ beneficiary_name: string | null;
184
+ beneficiary_document_masked: string | null;
185
+ due_date: string | null;
186
+ } | null;
187
+ amount_minor: number | null;
188
+ amount_source: "rail_quote" | "br_code" | "stated_by_person" | "csv" | null;
189
+ description: string | null;
190
+ reference: string | null;
191
+ checks: PayableBatchItemCheck[];
192
+ payment: PayableBatchItemPayment | null;
193
+ }
194
+ export interface PayableBatchConfirmation {
195
+ version: number;
196
+ list_hash: string;
197
+ /** `user_…` or `api_key:ak_…`. */
198
+ confirmed_by: string;
199
+ confirmed_at: string;
200
+ mandate_id: string;
201
+ }
202
+ export interface PayableBatch {
203
+ batch_id: string;
204
+ status: PayableBatchStatus;
205
+ /** Bumps on every change to the list; `pay` binds to it. */
206
+ version: number;
207
+ /** sha256 over the canonical list; `pay` binds to it. */
208
+ list_hash: string;
209
+ currency: "BRL";
210
+ totals: {
211
+ items: number;
212
+ payable_items: number;
213
+ excluded: number;
214
+ amount_minor: number;
215
+ };
216
+ confirmation: PayableBatchConfirmation | null;
217
+ items: PayableBatchItem[];
218
+ created_at: string;
219
+ source: PayableBatchSource;
220
+ conversation_id: string | null;
221
+ }
222
+ /** `batches.create` answers the batch plus whether it replays an earlier call with the same key. */
223
+ export interface PayableBatchCreated extends PayableBatch {
224
+ idempotent_replay: boolean;
225
+ }
226
+ export type PayableBatchSource = "api" | "chat" | "dashboard" | "cli" | "mcp";
227
+ /** A charge stated directly instead of read from a file. One carrier per item. */
228
+ export interface PayableItemInput {
229
+ pixKey?: string;
230
+ boletoLine?: string;
231
+ brCode?: string;
232
+ /** Required with a bare Pix key: the key never determines the amount. */
233
+ amountMinor?: number;
234
+ description?: string;
235
+ /** Your own reference; part of the item identity for re-sends. */
236
+ reference?: string;
237
+ }
238
+ export interface PayableBatchCreateInput {
239
+ fileIds?: string[];
240
+ items?: PayableItemInput[];
241
+ /** Defaults to `api` on the server. */
242
+ source?: PayableBatchSource;
243
+ conversationId?: string;
244
+ }
245
+ export interface PayableItemUpdate {
246
+ /** The `version` you reviewed; a stale one is refused with 409 `payable_batch_version_conflict`. */
247
+ expectedVersion: number;
248
+ amountMinor?: number;
249
+ pixKey?: string;
250
+ boletoLine?: string;
251
+ brCode?: string;
252
+ description?: string;
253
+ excluded?: boolean;
254
+ }
255
+ export interface PayableItemsAddInput {
256
+ expectedVersion: number;
257
+ fileIds?: string[];
258
+ items?: PayableItemInput[];
259
+ }
260
+ export interface PayableBatchPayInput {
261
+ /** The `version` and `list_hash` of the list you are confirming. */
262
+ version: number;
263
+ listHash: string;
264
+ /** Required with an API key: the mandate is the authorization. */
265
+ mandateId?: string;
266
+ }
267
+ export interface PayableUploadOptions extends CallOptions {
268
+ /** Defaults to the File's name, the stream's path basename, or `document`. */
269
+ filename?: string;
270
+ /** Sets the part's type when the input carries none. The API decides by magic bytes either way. */
271
+ contentType?: string;
272
+ }
273
+ export interface PayableIdempotentOptions extends CallOptions {
274
+ idempotencyKey?: string;
275
+ }
132
276
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codespar/sdk",
3
- "version": "0.16.18",
3
+ "version": "0.16.20",
4
4
  "description": "Commerce SDK for AI agents \u2014 sessions, managed auth, Complete Loop orchestration for Latin American APIs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",