@inowu/cashdro 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2026 Inowu
2
+
3
+ All rights reserved.
4
+
5
+ This software and associated documentation files (the "Software") are the
6
+ proprietary property of Inowu. No part of the Software may be used,
7
+ copied, modified, merged, published, distributed, sublicensed, or sold
8
+ without the prior written permission of Inowu.
9
+
10
+ Distribution of compiled or packaged forms of the Software (e.g. via a
11
+ package registry) does not grant any license or rights to use, modify, or
12
+ redistribute the Software beyond what is expressly agreed in writing with
13
+ Inowu.
package/README.md CHANGED
@@ -1,38 +1,39 @@
1
1
  # CashDro TypeScript SDK
2
2
 
3
- `@inowu/cashdro` provides convenient, typed access to **CashDro** automated cash
4
- recyclers from TypeScript and JavaScript — running sales, payments, deposits,
5
- withdrawals and cash-management operations, plus cash-level and reporting queries.
6
-
7
- ## Table of contents
8
-
9
- - [Installation](#installation)
10
- - [Quick start](#quick-start)
11
- - [Authentication](#authentication)
12
- - [Configuration](#configuration)
13
- - [How transactions work](#how-transactions-work)
14
- - [Non-blocking usage](#non-blocking-usage)
15
- - [Debug mode](#debug-mode)
16
- - [Client reference](#client-reference)
17
- - [Connectivity & health](#connectivity--health)
18
- - [Transactions lifecycle](#transactions--lifecycle)
19
- - [Transactionsconvenience methods](#transactions--convenience-methods)
20
- - [Orchestration helpers](#orchestration-helpers)
21
- - [Queries & reports](#queries--reports)
22
- - [Transaction types](#transaction-types)
23
- - [Responses](#responses)
24
- - [Error handling](#error-handling)
25
- - [Advanced](#advanced)
26
-
27
- ## Installation
3
+ `@inowu/cashdro` proporciona acceso conveniente y tipado a los recicladores
4
+ de efectivo automatizados **CashDro** desde TypeScript y JavaScript — ejecutando
5
+ ventas, pagos, depósitos, retiros y operaciones de gestión de efectivo, además
6
+ de consultas de niveles de efectivo y reportes.
7
+
8
+ ## Tabla de contenidos
9
+
10
+ - [Instalación](#instalación)
11
+ - [Inicio rápido](#inicio-rápido)
12
+ - [Autenticación](#autenticación)
13
+ - [Configuración](#configuración)
14
+ - [Cómo funcionan las transacciones](#cómo-funcionan-las-transacciones)
15
+ - [Uso no bloqueante](#uso-no-bloqueante)
16
+ - [Modo debug](#modo-debug)
17
+ - [Referencia del cliente](#referencia-del-cliente)
18
+ - [Conectividad y salud](#conectividad-y-salud)
19
+ - [Transaccionesciclo de vida](#transacciones--ciclo-de-vida)
20
+ - [Transacciones — métodos de conveniencia](#transacciones--métodos-de-conveniencia)
21
+ - [Helpers de orquestación](#helpers-de-orquestación)
22
+ - [Consultas y reportes](#consultas-y-reportes)
23
+ - [Tipos de transacción](#tipos-de-transacción)
24
+ - [Respuestas](#respuestas)
25
+ - [Manejo de errores](#manejo-de-errores)
26
+ - [Avanzado](#avanzado)
27
+
28
+ ## Instalación
28
29
 
29
30
  ```sh
30
31
  npm i @inowu/cashdro
31
32
  ```
32
33
 
33
- **Requirements:** Node.js 18+ (or any runtime with a global `fetch`).
34
+ **Requisitos:** Node.js 18+ (o cualquier runtime con `fetch` global).
34
35
 
35
- ## Quick start
36
+ ## Inicio rápido
36
37
 
37
38
  ```ts
38
39
  import { CashDroClient } from "@inowu/cashdro";
@@ -43,48 +44,49 @@ const cashdro = new CashDroClient({
43
44
  password: "••••",
44
45
  });
45
46
 
46
- // 1. Check connectivity + credentials
47
+ // 1. Verificar conectividad + credenciales
47
48
  const ping = await cashdro.doTest();
48
49
  if (ping.code !== 1) throw new Error("CashDro unreachable or bad credentials");
49
50
 
50
- // 2. Take a 12.50 sale (amounts are in minor unitsvalue × 100)
51
+ // 2. Realizar una venta de 12.50 (los montos están en unidades menores valor × 100)
51
52
  const { operationId } = await cashdro.sale(1250, { posuser: "Ana" });
52
53
 
53
- // 3. Wait for the customer to finish paying
54
+ // 3. Esperar a que el cliente termine de pagar
54
55
  const final = await cashdro.pollUntilFinished(operationId);
55
56
  const op = final.response?.operation?.operation;
56
- console.log(`paid=${op?.totalin} change=${op?.totalout}`); // change is negative
57
+ console.log(`paid=${op?.totalin} change=${op?.totalout}`); // el cambio es negativo
57
58
 
58
- // 4. Acknowledge you recorded the transaction
59
+ // 4. Confirmar que registraste la transacción
59
60
  await cashdro.setOperationImported(operationId);
60
61
  ```
61
62
 
62
- ## Authentication
63
+ ## Autenticación
63
64
 
64
- Every call authenticates as a **CashDro user** via HTTP Basic. The user must exist
65
- on the machine and have permission for the operation.
65
+ Cada llamada se autentica como un **usuario de CashDro** mediante HTTP Basic.
66
+ El usuario debe existir en la máquina y tener permiso para la operación.
66
67
 
67
68
  ```ts
68
69
  const cashdro = new CashDroClient({ baseUrl, username: "manager", password: "••••" });
69
70
  ```
70
71
 
71
- The optional `posuser`, `posid` and `aliasid` fields accepted by transactions are
72
- **not** credentialsthey only tag *who* (cashier), *which terminal*, and a
73
- *host-side reference id* initiated an operation (≤ 50 chars each).
72
+ Los campos opcionales `posuser`, `posid` y `aliasid` aceptados por las
73
+ transacciones **no** son credenciales solo etiquetan *quién* (cajero),
74
+ *qué terminal* y un *id de referencia del lado del host* inició una operación
75
+ (≤ 50 caracteres cada uno).
74
76
 
75
- ## Configuration
77
+ ## Configuración
76
78
 
77
- `CashDroClient` accepts the following options:
79
+ `CashDroClient` acepta las siguientes opciones:
78
80
 
79
- | Option | Description |
81
+ | Opción | Descripción |
80
82
  |--------|-------------|
81
- | `baseUrl` | URL of the CashDro unit. Point this at your device / production unit. |
82
- | `username`, `password` | CashDro user credentials (HTTP Basic). |
83
- | `timeoutInSeconds` | Per-request timeout (default 60). |
84
- | `maxRetries` | Automatic retries with exponential backoff (default 2). |
85
- | `headers` | Extra headers to send on every request. |
86
- | `fetch` | Custom `fetch` implementation (see [Advanced](#custom-fetch--self-signed-tls)). |
87
- | `debug` | Trace the multi-operation helpers — `true` to log, or a handler function (see [Debug mode](#debug-mode)). |
83
+ | `baseUrl` | URL de la unidad CashDro. Apunta esto a tu dispositivo / unidad de producción. |
84
+ | `username`, `password` | Credenciales de usuario de CashDro (HTTP Basic). |
85
+ | `timeoutInSeconds` | Timeout por solicitud (por defecto 60). |
86
+ | `maxRetries` | Reintentos automáticos con backoff exponencial (por defecto 2). |
87
+ | `headers` | Encabezados adicionales para enviar en cada solicitud. |
88
+ | `fetch` | Implementación personalizada de `fetch` (ver [Avanzado](#custom-fetch--self-signed-tls)). |
89
+ | `debug` | Traza los helpers de multi-operación — `true` para loguear, o una función handler (ver [Modo debug](#modo-debug)). |
88
90
 
89
91
  ```ts
90
92
  const cashdro = new CashDroClient({
@@ -96,79 +98,87 @@ const cashdro = new CashDroClient({
96
98
  });
97
99
  ```
98
100
 
99
- ## How transactions work
101
+ ## Cómo funcionan las transacciones
100
102
 
101
- A cash-movement transaction (sale, payment, deposit, withdrawal, …) runs
102
- **asynchronously on the hardware**, so it is driven through a short lifecycle:
103
+ Una transacción de movimiento de efectivo (venta, pago, depósito, retiro, …)
104
+ corre **de forma asíncrona en el hardware**, por lo que se conduce mediante
105
+ un ciclo de vida corto:
103
106
 
104
107
  ```
105
108
  start ─▶ acknowledge ─▶ (poll status) ─▶ finish? ─▶ import
106
- id launch I → Q → E → F finalize record it
109
+ id launch I → Q → E → F finalize registrarla
107
110
  ```
108
111
 
109
- - **`start`** opens the transaction and returns an **`operationId`** (the handle for
110
- everything else). The unit does nothing yet.
111
- - **`acknowledge`** launches execution (acceptors open / dispensing begins).
112
- - **poll status** until `state === "F"`. States: `I` pending, `Q` queued,
113
- `E` executing, `F` finished.
114
- - **`finish`** finalizes or cancels (only some transactions need an explicit finish).
115
- - **`import`** tells the unit the host has recorded the result.
116
-
117
- The convenience methods (`sale`, `payment`, …) and helpers (`runOperation`,
118
- `pollUntilFinished`) collapse this boilerplate for you while still returning the
119
- `operationId` and every raw response.
120
-
121
- **Money:** all amounts are integers in **minor units** (value × 100 — `1250` = 12.50).
122
- Dispensed amounts (`totalout`) are **negative**. The currency is whatever the unit
123
- is configured for.
124
-
125
- **One at a time:** a CashDro runs a single operation at a time; starting another
126
- while one is active fails with `code -2`. Use `askOperationExecuting()` to detect
127
- and recover a stuck operation.
128
-
129
- ## Non-blocking usage
130
-
131
- A sale can take a while — the unit waits for the customer to insert cash. Don't
132
- `await` the whole `start → wait → import` chain in a request handler; instead let
133
- it run in the background and react via callbacks. The `onStart` callback hands you
134
- the `operationId` the instant it's known (before any waiting), so the UI can show a
135
- pay screen and offer a Cancel button immediately.
112
+ - **`start`** abre la transacción y devuelve un **`operationId`** (el handle
113
+ para todo lo demás). La unidad aún no hace nada.
114
+ - **`acknowledge`** lanza la ejecución (los aceptadores se abren / comienza
115
+ la dispensación).
116
+ - **poll status** hasta que `state === "F"`. Estados: `I` pendiente, `Q` en cola,
117
+ `E` ejecutando, `F` finalizado.
118
+ - **`finish`** finaliza o cancela (solo algunas transacciones necesitan un
119
+ finish explícito).
120
+ - **`import`** le indica a la unidad que el host ya registró el resultado.
121
+
122
+ Los métodos de conveniencia (`sale`, `payment`, …) y los helpers
123
+ (`runOperation`, `pollUntilFinished`) colapsan este boilerplate por ti
124
+ mientras siguen devolviendo el `operationId` y cada respuesta cruda.
125
+
126
+ **Dinero:** todos los montos son enteros en **unidades menores** (valor × 100 —
127
+ `1250` = 12.50). Los montos dispensados (`totalout`) son **negativos**. La
128
+ moneda es la que tenga configurada la unidad.
129
+
130
+ **Una a la vez:** un CashDro ejecuta una sola operación a la vez; iniciar otra
131
+ mientras una está activa falla con `code -2`. Usa `askOperationExecuting()`
132
+ para detectar y recuperar una operación atascada.
133
+
134
+ ## Uso no bloqueante
135
+
136
+ Una venta puede tardar la unidad espera a que el cliente inserte efectivo.
137
+ No hagas `await` de toda la cadena `start wait import` dentro de un
138
+ request handler; en su lugar déjala correr en segundo plano y reacciona
139
+ mediante callbacks. El callback `onStart` te entrega el `operationId` en el
140
+ instante en que se conoce (antes de cualquier espera), para que la UI pueda
141
+ mostrar una pantalla de pago y ofrecer un botón de Cancelar de inmediato.
136
142
 
137
143
  ```ts
138
144
  import { CashDroClient, CashDroTimeoutError } from "@inowu/cashdro";
139
145
 
140
- // Fire-and-forget: runs start → acknowledge → poll → import in the background.
146
+ // Fire-and-forget: ejecuta start → acknowledge → poll → import en segundo plano.
141
147
  void cashdro
142
148
  .sale(1250, {
143
- waitForFinish: true, // poll until the customer finishes paying
144
- autoImport: true, // record it on the unit when done
145
- onStart: (operationId) => showPayScreen(operationId), // returned immediately
149
+ waitForFinish: true, // sondear hasta que el cliente termine de pagar
150
+ autoImport: true, // registrarlo en la unidad cuando termine
151
+ onStart: (operationId) => showPayScreen(operationId), // se devuelve de inmediato
146
152
  poll: { onPoll: (status) => updateUi(status), timeoutMs: 120_000 },
147
153
  })
148
154
  .then((r) => onPaid(r.final?.response?.operation?.operation)) // totalin / totalout
149
155
  .catch((err) => {
150
- if (err instanceof CashDroTimeoutError) return; // nobody paid in time
156
+ if (err instanceof CashDroTimeoutError) return; // nadie pagó a tiempo
151
157
  onError(err);
152
158
  });
153
159
  ```
154
160
 
155
- To let a **Cancel** button stop a sale in flight, cancel it on the unit — the
156
- background poll then resolves at state `F` on its next tick:
161
+ Para permitir que un botón de **Cancelar** detenga una venta en curso,
162
+ cancélala en la unidad el poll en segundo plano se resuelve entonces en
163
+ el estado `F` en su siguiente tick:
157
164
 
158
165
  ```ts
159
166
  cancelButton.onclick = () => cashdro.finishOperation(operationId, 2);
160
167
  ```
161
168
 
162
- Equivalently you can drive the steps yourself: `await cashdro.sale(...)` returns
163
- after start+acknowledge (fast), then call `cashdro.pollUntilFinished(id)` from a
164
- background task. Pass an `AbortSignal` in `poll`/`pollUntilFinished` options if you
165
- need to stop polling without cancelling the transaction.
169
+ De forma equivalente puedes conducir los pasos tú mismo: `await cashdro.sale(...)`
170
+ retorna después de start+acknowledge (rápido), luego llama a
171
+ `cashdro.pollUntilFinished(id)` desde una tarea en segundo plano. Pasa un
172
+ `AbortSignal` en las opciones de `poll`/`pollUntilFinished` si necesitas
173
+ detener el sondeo sin cancelar la transacción, o `cancelOnTimeout: true`
174
+ para auto-cancelar la venta si nadie paga a tiempo.
166
175
 
167
- ## Debug mode
176
+ ## Modo debug
168
177
 
169
- The multi-operation helpers (`sale`, `runOperation`, `pollUntilFinished`, …) can
170
- trace exactly what they doeach underlying call, its result, and every status
171
- poll. Pass `debug: true` to log to the console:
178
+ Los helpers de multi-operación (`sale`, `runOperation`, `pollUntilFinished`, …)
179
+ pueden trazar exactamente lo que hacen cada llamada subyacente, su
180
+ resultado, y cada sondeo de estado. Pasa `debug: true` para loguear a la
181
+ consola:
172
182
 
173
183
  ```ts
174
184
  const cashdro = new CashDroClient({ baseUrl, username, password, debug: true });
@@ -187,8 +197,8 @@ await cashdro.sale(100, { waitForFinish: true, autoImport: true });
187
197
  [cashdro] sale: done (operationId=128)
188
198
  ```
189
199
 
190
- For structured logging, pass a handler instead and route the `CashDroDebugEvent`s
191
- to your own logger:
200
+ Para logging estructurado, pasa un handler en su lugar y enruta los
201
+ `CashDroDebugEvent` a tu propio logger:
192
202
 
193
203
  ```ts
194
204
  const cashdro = new CashDroClient({
@@ -199,85 +209,91 @@ const cashdro = new CashDroClient({
199
209
  });
200
210
  ```
201
211
 
202
- Each event is `{ seq, at, helper, op, phase, detail, message }` — `phase` is
203
- `"call"`, `"result"`, `"poll"`, or `"info"`. This traces the helper orchestration
204
- and is independent of the transport layer.
212
+ Cada evento es `{ seq, at, helper, op, phase, detail, message }` — `phase`
213
+ es `"call"`, `"result"`, `"poll"`, o `"info"`. Esto traza la orquestación
214
+ del helper y es independiente de la capa de transporte.
205
215
 
206
- ## Client reference
216
+ ## Referencia del cliente
207
217
 
208
- Methods that map 1:1 to a device operation return the raw response; the convenience
209
- and orchestration helpers compose several calls but never hide the underlying data.
218
+ Los métodos que mapean 1:1 a una operación del dispositivo devuelven la
219
+ respuesta cruda; los helpers de conveniencia y orquestación combinan varias
220
+ llamadas pero nunca ocultan los datos subyacentes.
210
221
 
211
- ### Connectivity & health
222
+ ### Conectividad y salud
212
223
 
213
- | Method | What it does / when to use |
224
+ | Método | Qué hace / cuándo usarlo |
214
225
  |--------|----------------------------|
215
- | `doTest()` | Authenticated ping. Verify reachability + credentials before transacting. |
216
- | `getDiagnosis()` | Device error state (`WithError`) + device list. Gate transacting on this to avoid jammed hardware. |
217
- | `getAlerts()` | Denominations at critical / inhibition / below-min / above-max levels. For restock/empty prompts. |
218
- | `askOperationExecuting()` | The operation currently running (or `OperationId: -1` when idle). Recover an orphaned operation on startup. |
226
+ | `doTest()` | Ping autenticado. Verifica accesibilidad + credenciales antes de transaccionar. |
227
+ | `getDiagnosis()` | Estado de error del dispositivo (`WithError`) + lista de dispositivos. Usa esto como gate antes de transaccionar para evitar hardware atascado. |
228
+ | `getAlerts()` | Denominaciones en niveles críticos / de inhibición / por debajo del mínimo / por encima del máximo. Para avisos de reabastecimiento/vaciado. |
229
+ | `askOperationExecuting()` | La operación que se está ejecutando actualmente (o `OperationId: -1` cuando está inactiva). Recupera una operación huérfana al iniciar. |
219
230
 
220
- ### Transactionslifecycle
231
+ ### Transaccionesciclo de vida
221
232
 
222
- Low-level building blocks (usually you'll use the convenience methods below):
233
+ Bloques de construcción de bajo nivel (normalmente usarás los métodos de
234
+ conveniencia de abajo):
223
235
 
224
- | Method | What it does / when to use |
236
+ | Método | Qué hace / cuándo usarlo |
225
237
  |--------|----------------------------|
226
- | `startOperation({ type, amount?, parameters?, … })` | Open a transaction of a given [type](#transaction-types); returns `operationId`. |
227
- | `acknowledgeOperationId(id)` | Launch a started operation. |
228
- | `askOperation(id)` | Poll full status (state, `total`, `totalin`, `totalout`, per-denomination levels, messages). |
229
- | `finishOperation(id, type)` | `type 1` finalize/accept, `2` cancel, `4` finalize with an explicit piece list. |
230
- | `setOperationImported(id)` | Mark the operation as recorded by the host (clears it from the pending list). |
238
+ | `startOperation({ type, amount?, parameters?, … })` | Abre una transacción de un [tipo](#tipos-de-transacción) dado; devuelve `operationId`. |
239
+ | `acknowledgeOperationId(id)` | Lanza una operación iniciada. |
240
+ | `askOperation(id)` | Sondea el estado completo (estado, `total`, `totalin`, `totalout`, niveles por denominación, mensajes). |
241
+ | `finishOperation(id, type)` | `type 1` finaliza/acepta, `2` cancela, `4` finaliza con una lista explícita de piezas. |
242
+ | `setOperationImported(id)` | Marca la operación como registrada por el host (la elimina de la lista pendiente). |
231
243
 
232
- ### Transactionsconvenience methods
244
+ ### Transaccionesmétodos de conveniencia
233
245
 
234
- Each opens + acknowledges a transaction and returns `{ operationId, started, … }`.
235
- Options accept `posid` / `posuser` / `aliasid` and the [orchestration
236
- options](#orchestration-helpers).
246
+ Cada uno abre + confirma una transacción y devuelve `{ operationId, started, … }`.
247
+ Las opciones aceptan `posid` / `posuser` / `aliasid` y las [opciones de
248
+ orquestación](#helpers-de-orquestación).
237
249
 
238
- | Method | Transaction |
250
+ | Método | Transacción |
239
251
  |--------|-------------|
240
- | `sale(amount, opts?)` | Salecustomer pays, change returned. |
241
- | `payment(amount, opts?)` | Payment / payout of an amount. |
242
- | `paymentByDenomination(pieces, opts?)` | Pay out specific pieces (see below). |
243
- | `depositByAmount(amount, opts?)` | Deposit up to a target amount. |
244
- | `deposit(opts?)` | Open-ended deposit; finalize with `finishOperation(id, 1)`. |
245
- | `change(opts?)` | Change / break a note. |
246
- | `load(opts?)` | Load cash into the recyclers. |
247
- | `withdraw(opts?)` | Withdraw cash (operator selects on the unit). |
248
- | `transferToCassette(opts?)` | Move cash from recyclers to the cassette. |
249
- | `emptyNoteCassette(opts?)` / `emptyCoinCassette(opts?)` | Register a cassette as emptied. |
250
- | `finishWithPieces(id, { recycler?, cassette? })` | Finalize a withdrawal/transfer with an explicit piece list. |
252
+ | `sale(amount, opts?)` | Ventael cliente paga, se devuelve el cambio. |
253
+ | `payment(amount, opts?)` | Pago / desembolso de un monto. |
254
+ | `paymentByDenomination(pieces, opts?)` | Pagar piezas específicas (ver abajo). |
255
+ | `depositByAmount(amount, opts?)` | Depositar hasta un monto objetivo. |
256
+ | `deposit(opts?)` | Depósito abierto; finaliza con `finishOperation(id, 1)`. |
257
+ | `change(opts?)` | Cambio / romper un billete. |
258
+ | `load(opts?)` | Cargar efectivo en los recicladores. |
259
+ | `withdraw(opts?)` | Retirar efectivo (el operador selecciona en la unidad). |
260
+ | `transferToCassette(opts?)` | Mover efectivo de los recicladores al cassette. |
261
+ | `emptyNoteCassette(opts?)` / `emptyCoinCassette(opts?)` | Registrar un cassette como vaciado. |
262
+ | `finishWithPieces(id, { recycler?, cassette? })` | Finalizar un retiro/transferencia con una lista explícita de piezas. |
251
263
 
252
264
  ```ts
253
- // Pay out exactly 3×1.00 coins and 1×20.00 note
265
+ // Pagar exactamente 3×1.00 monedas y 1×20.00 billete
254
266
  await cashdro.paymentByDenomination([
255
267
  { value: 100, level: 3, isBill: false },
256
268
  { value: 2000, level: 1, isBill: true },
257
269
  ]);
258
270
 
259
- // Withdraw 1×500 note straight from the recyclers (no on-device selection)
271
+ // Retirar 1×500 billete directamente de los recicladores (sin selección en el dispositivo)
260
272
  const { operationId } = await cashdro.withdraw();
261
273
  await cashdro.finishWithPieces(operationId, { recycler: [{ value: 500, level: 1, isBill: true }] });
262
274
  await cashdro.setOperationImported(operationId);
263
275
  ```
264
276
 
265
- ### Orchestration helpers
277
+ ### Helpers de orquestación
266
278
 
267
- | Method | What it does |
279
+ | Método | Qué hace |
268
280
  |--------|--------------|
269
- | `runOperation(params, opts?)` | The engine behind the convenience methods: `start → (acknowledge) → optional poll → optional import`. Returns `{ operationId, started, final?, imported? }`. |
270
- | `pollUntilFinished(id, opts?)` | Poll `askOperation` until `state === "F"`; returns the full final response. Throws `CashDroTimeoutError` on timeout (the operation stays open). |
271
-
272
- `runOperation` options: `acknowledge` (default `true`), `waitForFinish` (default
273
- `false` — a sale blocks on the customer's cash), `autoImport`, an `onStart(id,
274
- started)` callback, and `poll` (forwarded to `pollUntilFinished`).
275
- `pollUntilFinished` options: `intervalMs`, `timeoutMs`, `signal` (`AbortSignal`),
276
- `onPoll(status)`.
281
+ | `runOperation(params, opts?)` | El motor detrás de los métodos de conveniencia: `start → (acknowledge) → poll opcional import opcional`. Devuelve `{ operationId, started, final?, imported? }`. |
282
+ | `pollUntilFinished(id, opts?)` | Sondea `askOperation` hasta que `state === "F"`; devuelve la respuesta final completa. Lanza `CashDroTimeoutError` en caso de timeout. |
283
+
284
+ Opciones de `runOperation`: `acknowledge` (por defecto `true`), `waitForFinish`
285
+ (por defecto `false` — una venta bloquea en espera del efectivo del cliente),
286
+ `autoImport`, un callback `onStart(id, started)`, y `poll` (reenviado a
287
+ `pollUntilFinished`).
288
+ Opciones de `pollUntilFinished`: `intervalMs`, `timeoutMs`, `signal`
289
+ (`AbortSignal`), `onPoll(status)`, y **`cancelOnTimeout`** — cuando es `true`,
290
+ un timeout cancela e importa la operación antes de lanzar el error, para que
291
+ no quede abierta bloqueando la siguiente transacción con `code -2` (un
292
+ error común de testing al probar ventas sin efectivo).
277
293
 
278
294
  ```ts
279
295
  const { operationId } = await cashdro.sale(500, {
280
- onStart: (id) => showOnScreen(id), // operationId the instant it's known
296
+ onStart: (id) => showOnScreen(id), // operationId en el instante en que se conoce
281
297
  });
282
298
  const final = await cashdro.pollUntilFinished(operationId, {
283
299
  timeoutMs: 120_000,
@@ -285,13 +301,13 @@ const final = await cashdro.pollUntilFinished(operationId, {
285
301
  });
286
302
  ```
287
303
 
288
- ### Queries & reports
304
+ ### Consultas y reportes
289
305
 
290
- | Method | What it does / when to use |
306
+ | Método | Qué hace / cuándo usarlo |
291
307
  |--------|----------------------------|
292
- | `getPiecesCurrency({ currencyId, includeLevels?, includeImages? })` | Cash levels per denomination. For inventory UI and to pre-check a withdrawal. |
293
- | `askPendingOperations({ terminal?, importManualOperations? })` | Operations not yet imported by the host. Reconcile before a cash close. |
294
- | `askMovements({ fromDate, toDate, group?, operationType? })` | Operations between two dates, itemized or aggregated. For reporting. |
308
+ | `getPiecesCurrency({ currencyId, includeLevels?, includeImages? })` | Niveles de efectivo por denominación. Para UI de inventario y para pre-verificar un retiro. |
309
+ | `askPendingOperations({ terminal?, importManualOperations? })` | Operaciones aún no importadas por el host. Reconciliar antes de un cierre de caja. |
310
+ | `askMovements({ fromDate, toDate, group?, operationType? })` | Operaciones entre dos fechas, detalladas o agregadas. Para reportes. |
295
311
 
296
312
  ```ts
297
313
  const levels = await cashdro.getPiecesCurrency({ currencyId: "EUR", includeLevels: 1 });
@@ -299,49 +315,49 @@ const report = await cashdro.askMovements({
299
315
  fromDate: "2026-06-01_00:00:00",
300
316
  toDate: "2026-06-30_23:59:59",
301
317
  group: true,
302
- operationType: JSON.stringify([{ Id: 4 }]), // sales only
318
+ operationType: JSON.stringify([{ Id: 4 }]), // solo ventas
303
319
  });
304
320
  ```
305
321
 
306
- ## Transaction types
322
+ ## Tipos de transacción
307
323
 
308
- `startOperation` (and the convenience methods) accept a numeric `type`:
324
+ `startOperation` (y los métodos de conveniencia) aceptan un `type` numérico:
309
325
 
310
- | `type` | Transaction | Amount/pieces |
326
+ | `type` | Transacción | Monto/piezas |
311
327
  |-------:|-------------|---------------|
312
- | 1 | load | — |
313
- | 2 | withdrawal | on-device, or `finishWithPieces` |
314
- | 3 | payment | `amount`, or `paymentByDenomination` |
315
- | 4 | sale | `amount` |
316
- | 8 | transfer to cassette | on-device, or `finishWithPieces` |
317
- | 10 | empty note cassette | — |
318
- | 11 | empty coin cassette | — |
319
- | 16 | deposit | finalize with `finishOperation(id, 1)` |
320
- | 17 | deposit by amount | `amount` |
321
- | 18 | change | — |
328
+ | 1 | carga | — |
329
+ | 2 | retiro | en el dispositivo, o `finishWithPieces` |
330
+ | 3 | pago | `amount`, o `paymentByDenomination` |
331
+ | 4 | venta | `amount` |
332
+ | 8 | transferencia al cassette | en el dispositivo, o `finishWithPieces` |
333
+ | 10 | vaciar cassette de billetes | — |
334
+ | 11 | vaciar cassette de monedas | — |
335
+ | 16 | depósito | finaliza con `finishOperation(id, 1)` |
336
+ | 17 | depósito por monto | `amount` |
337
+ | 18 | cambio | — |
322
338
 
323
- A "piece" (for `paymentByDenomination` / `finishWithPieces`) is
324
- `{ value: number, level: number, isBill: boolean }` — `value` in minor units,
325
- `level` the count, `isBill` `true` for notes.
339
+ Una "pieza" (para `paymentByDenomination` / `finishWithPieces`) es
340
+ `{ value: number, level: number, isBill: boolean }` — `value` en unidades
341
+ menores, `level` la cantidad, `isBill` `true` para billetes.
326
342
 
327
- ## Responses
343
+ ## Respuestas
328
344
 
329
- Every call resolves to a typed envelope:
345
+ Cada llamada resuelve a un envelope tipado:
330
346
 
331
347
  ```ts
332
- { code: number; response: { errorMessage: string; /* operation data */ } }
348
+ { code: number; response: { errorMessage: string; /* datos de la operación */ } }
333
349
  ```
334
350
 
335
- `code >= 1` means success; a negative `code` is an error (the convenience/helper
336
- methods throw instead see below). Request and response types are available under
337
- the `CashDroApi` namespace:
351
+ `code >= 1` significa éxito; un `code` negativo es un error (los métodos de
352
+ conveniencia/helper lanzan una excepción en su lugar ver abajo). Los tipos
353
+ de solicitud y respuesta están disponibles bajo el namespace `CashDroApi`:
338
354
 
339
355
  ```ts
340
356
  import { CashDroApi } from "@inowu/cashdro";
341
357
  const res: CashDroApi.AskOperationResponse = await cashdro.askOperation(id);
342
358
  ```
343
359
 
344
- ## Error handling
360
+ ## Manejo de errores
345
361
 
346
362
  ```ts
347
363
  import { CashDroError, CashDroTimeoutError } from "@inowu/cashdro";
@@ -352,48 +368,51 @@ try {
352
368
  await cashdro.setOperationImported(operationId);
353
369
  } catch (err) {
354
370
  if (err instanceof CashDroTimeoutError) {
355
- // no cash inserted in timethe operation is still open; cancel it
371
+ // no se insertó efectivo a tiempo la operación sigue abierta; cancélala
356
372
  await cashdro.finishOperation(err.operationId, 2);
357
373
  } else if (err instanceof CashDroError) {
358
374
  console.error("CashDro rejected the request:", err.response);
359
375
  } else {
360
- throw err; // transport/HTTP error
376
+ throw err; // error de transporte/HTTP
361
377
  }
362
378
  }
363
379
  ```
364
380
 
365
- - **`CashDroError`** — a call returned a non-success `code` (carries the raw `response`).
366
- - **`CashDroTimeoutError`** — `pollUntilFinished` timed out (carries `operationId` and the last poll).
381
+ - **`CashDroError`** — una llamada devolvió un `code` de no-éxito (contiene la `response` cruda).
382
+ - **`CashDroTimeoutError`** — `pollUntilFinished` alcanzó el timeout (contiene `operationId` y el último poll).
367
383
 
368
- Common device `code`s: `-1` bad credentials, `-2` busy / not found, `-3` wrong
369
- amount, `-4` no permission, `-998`/`-999` device unavailable (check diagnosis).
384
+ Códigos de dispositivo comunes: `-1` credenciales incorrectas, `-2` ocupado /
385
+ no encontrado, `-3` monto incorrecto, `-4` sin permiso, `-998`/`-999`
386
+ dispositivo no disponible (revisar diagnóstico).
370
387
 
371
- ## Advanced
388
+ ## Avanzado
372
389
 
373
- ### Raw response access
390
+ ### Acceso a la respuesta cruda
374
391
 
375
- Methods that map 1:1 to a device operation return an awaitable that also exposes the
376
- raw HTTP response:
392
+ Los métodos que mapean 1:1 a una operación del dispositivo devuelven un
393
+ awaitable que también expone la respuesta HTTP cruda:
377
394
 
378
395
  ```ts
379
396
  const { data, rawResponse } = await cashdro.askOperation(id).withRawResponse();
380
397
  console.log(rawResponse.headers);
381
398
  ```
382
399
 
383
- ### Custom fetch / self-signed TLS
400
+ ### Fetch personalizado / TLS autofirmado
384
401
 
385
- Provide your own `fetch` for platforms without a built-in one, or to reach a unit
386
- that serves a **self-signed certificate**. Prefer installing the unit's CA in your
387
- trust store; only relax verification in trusted, non-production environments.
402
+ Proporciona tu propio `fetch` para plataformas sin uno incorporado, o para
403
+ alcanzar una unidad que sirve un **certificado autofirmado**. Prefiere
404
+ instalar la CA de la unidad en tu almacén de confianza; solo relaja la
405
+ verificación en entornos confiables y que no sean de producción.
388
406
 
389
407
  ```ts
390
408
  import { Agent, setGlobalDispatcher } from "undici";
391
- setGlobalDispatcher(new Agent({ connect: { rejectUnauthorized: false } })); // non-prod only
409
+ setGlobalDispatcher(new Agent({ connect: { rejectUnauthorized: false } })); // solo no-prod
392
410
  ```
393
411
 
394
- ### Per-request options
412
+ ### Opciones por solicitud
395
413
 
396
- Each 1:1 method takes an optional second argument for per-call overrides:
414
+ Cada método 1:1 acepta un segundo argumento opcional para overrides por
415
+ llamada:
397
416
 
398
417
  ```ts
399
418
  const controller = new AbortController();
@@ -405,11 +424,11 @@ await cashdro.askOperation(id, {
405
424
  });
406
425
  ```
407
426
 
408
- ### Low-level client
427
+ ### Cliente de bajo nivel
409
428
 
410
- For endpoints not yet wrapped, `cashdro.api` exposes the underlying client used to
411
- make requests.
429
+ Para endpoints aún no envueltos, `cashdro.api` expone el cliente subyacente
430
+ usado para hacer las solicitudes.
412
431
 
413
- ### Runtime compatibility
432
+ ### Compatibilidad de runtime
414
433
 
415
- Works on Node.js 18+, Deno, Bun, Cloudflare Workers, Vercel, and React Native.
434
+ Funciona en Node.js 18+, Deno, Bun, Cloudflare Workers, Vercel y React Native.
package/dist/cashdro.d.ts CHANGED
@@ -57,6 +57,12 @@ export interface PollOptions {
57
57
  signal?: AbortSignal;
58
58
  /** Called with every poll's full response (state, totals, devices, messages...). */
59
59
  onPoll?: (status: CashDroApi.AskOperationResponse) => void;
60
+ /**
61
+ * On timeout, cancel the operation (`finishOperation` type 2) and import it,
62
+ * so it doesn't stay open and block the next transaction with `code -2`.
63
+ * `CashDroTimeoutError` is still thrown afterwards. Default `false`.
64
+ */
65
+ cancelOnTimeout?: boolean;
60
66
  }
61
67
  export interface RunOperationOptions {
62
68
  /** Send acknowledgeOperationId after starting. Default true. */
@@ -1 +1 @@
1
- {"version":3,"file":"cashdro.d.ts","sourceRoot":"","sources":["../cashdro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cashdro.d.ts","sourceRoot":"","sources":["../cashdro.ts"],"names":[],"mappings":"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"}
package/dist/cashdro.js CHANGED
@@ -135,7 +135,7 @@ export class CashDroClient {
135
135
  * so cancel it with `finishOperation(id, 2)` if you want to abort.
136
136
  */
137
137
  async pollUntilFinished(operationId, opts = {}) {
138
- const { intervalMs = 1000, timeoutMs = 120_000, signal, onPoll } = opts;
138
+ const { intervalMs = 1000, timeoutMs = 120_000, signal, onPoll, cancelOnTimeout = false } = opts;
139
139
  const deadline = Date.now() + timeoutMs;
140
140
  this.emit({
141
141
  op: "pollUntilFinished",
@@ -180,6 +180,22 @@ export class CashDroClient {
180
180
  detail: { operationId, attempt, timedOut: true },
181
181
  message: `pollUntilFinished(${operationId}): timed out after ${attempt} poll(s)`,
182
182
  });
183
+ if (cancelOnTimeout) {
184
+ this.emit({
185
+ helper: "pollUntilFinished",
186
+ op: "finishOperation",
187
+ phase: "call",
188
+ detail: { operationId, type: 2, reason: "cancelOnTimeout" },
189
+ message: `pollUntilFinished(${operationId}): cancelOnTimeout → cancel + import`,
190
+ });
191
+ try {
192
+ await this.finishOperation(operationId, 2);
193
+ await this.setOperationImported(operationId);
194
+ }
195
+ catch {
196
+ // best-effort cleanup; the timeout is surfaced regardless
197
+ }
198
+ }
183
199
  throw new CashDroTimeoutError(operationId, status);
184
200
  }
185
201
  await sleep(intervalMs);
@@ -1 +1 @@
1
- {"version":3,"file":"cashdro.js","sourceRoot":"","sources":["../cashdro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cashdro.js","sourceRoot":"","sources":["../cashdro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,gBAAgB,EAAc,MAAM,YAAY,CAAC;AAE1D,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AA2BpE,MAAM,mBAAmB,GAAwB,CAAC,CAAC,EAAE,EAAE;IACnD,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,yFAAyF;AACzF,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGtB;IAFb,YACI,OAAe,EACN,QAAiB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,aAAQ,GAAR,QAAQ,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC/B,CAAC;CACJ;AAED,sGAAsG;AACtG,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE7B;IACA;IAFb,YACa,WAAmB,EACnB,IAAqC;QAE9C,KAAK,CAAC,aAAa,WAAW,2CAA2C,CAAC,CAAC;QAHlE,gBAAW,GAAX,WAAW,CAAQ;QACnB,SAAI,GAAJ,IAAI,CAAiC;QAG9C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACtC,CAAC;CACJ;AAiGD,MAAM,cAAc,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;CAC3B,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,OAAO,aAAa;IACtB,wEAAwE;IAC/D,GAAG,CAAmB;IAEd,SAAS,CAAuB;IACzC,GAAG,GAAG,CAAC,CAAC;IAEhB,YAAY,OAAuB;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS;YACV,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,CAAC;IAED,uEAAuE;IAC/D,IAAI,CAAC,KAA4C;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,OAAO;YAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,yCAAyC;IACzC,MAAM,CAAC,cAAgD;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,gEAAgE;IAChE,cAAc,CAAC,MAA4B,EAAE,cAAgD;QACzF,MAAM,UAAU,GACZ,MAAM,CAAC,UAAU;YACjB,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAC1B;YACI,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU;YACV,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,EACD,cAAc,CACjB,CAAC;IACN,CAAC;IAED,4CAA4C;IAC5C,sBAAsB,CAAC,WAAmB,EAAE,cAAgD;QACxF,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAClC,EAAE,SAAS,EAAE,wBAAwB,EAAE,WAAW,EAAE,EACpD,cAAc,CACjB,CAAC;IACN,CAAC;IAED,kCAAkC;IAClC,YAAY,CAAC,WAAmB,EAAE,cAAgD;QAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7F,CAAC;IAED,0EAA0E;IAC1E,qBAAqB,CAAC,cAAgD;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE,cAAc,CAAC,CAAC;IAClG,CAAC;IAED;;;;OAIG;IACH,eAAe,CACX,WAAmB,EACnB,IAAe,EACf,MAAe,EACf,cAAgD;QAEhD,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAC3B,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAC3D,cAAc,CACjB,CAAC;IACN,CAAC;IAED,iDAAiD;IACjD,oBAAoB,CAAC,WAAmB,EAAE,cAAgD;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAChC,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,EAClD,cAAc,CACjB,CAAC;IACN,CAAC;IAED,yCAAyC;IACzC,oBAAoB,CAChB,MAAgE,EAChE,cAAgD;QAEhD,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAG,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;IAC3G,CAAC;IAED,0CAA0C;IAC1C,iBAAiB,CACb,MAA8E,EAC9E,cAAgD;QAEhD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;IACrG,CAAC;IAED,wCAAwC;IACxC,SAAS,CAAC,cAAgD;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC;IAED,4CAA4C;IAC5C,YAAY,CAAC,cAAgD;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;IAChF,CAAC;IAED,0CAA0C;IAC1C,YAAY,CACR,MAAqF,EACrF,cAAgD;QAEhD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;IAC3F,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,OAAoB,EAAE;QAC/D,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QACjG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC;YACN,EAAE,EAAE,mBAAmB;YACvB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE;YAC9C,OAAO,EAAE,qBAAqB,WAAW,oBAAoB,UAAU,eAAe,SAAS,IAAI;SACtG,CAAC,CAAC;QACH,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC;gBACN,EAAE,EAAE,cAAc;gBAClB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE;gBACvC,OAAO,EAAE,qBAAqB,WAAW,YAAY,OAAO,YAAY,KAAK,IAAI,GAAG,EAAE;aACzF,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;YACjB,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC;oBACN,EAAE,EAAE,mBAAmB;oBACvB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE;oBACvC,OAAO,EAAE,qBAAqB,WAAW,qBAAqB,OAAO,UAAU;iBAClF,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC;oBACN,EAAE,EAAE,mBAAmB;oBACvB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC/C,OAAO,EAAE,qBAAqB,WAAW,oBAAoB,OAAO,UAAU;iBACjF,CAAC,CAAC;gBACH,MAAM,IAAI,YAAY,CAAC,8BAA8B,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC;oBACN,EAAE,EAAE,mBAAmB;oBACvB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAChD,OAAO,EAAE,qBAAqB,WAAW,sBAAsB,OAAO,UAAU;iBACnF,CAAC,CAAC;gBACH,IAAI,eAAe,EAAE,CAAC;oBAClB,IAAI,CAAC,IAAI,CAAC;wBACN,MAAM,EAAE,mBAAmB;wBAC3B,EAAE,EAAE,iBAAiB;wBACrB,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE;wBAC3D,OAAO,EAAE,qBAAqB,WAAW,sCAAsC;qBAClF,CAAC,CAAC;oBACH,IAAI,CAAC;wBACD,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;wBAC3C,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;oBACjD,CAAC;oBAAC,MAAM,CAAC;wBACL,0DAA0D;oBAC9D,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY,CAAC,MAA4B,EAAE,OAA4B,EAAE;QAC3E,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,aAAa,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC9F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC;YACN,MAAM;YACN,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;YACnF,OAAO,EAAE,GAAG,MAAM,yBAAyB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;SACvH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC;YACN,MAAM;YACN,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACvE,OAAO,EAAE,GAAG,MAAM,kCAAkC,WAAW,UAAU,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK;SAChH,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,YAAY,CAAC,+BAA+B,OAAO,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,MAAM,GAAuB,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAE5D,IAAI,WAAW,EAAE,CAAC;YACd,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC;gBACN,MAAM;gBACN,EAAE,EAAE,wBAAwB;gBAC5B,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBACnE,OAAO,EAAE,GAAG,MAAM,4BAA4B,WAAW,YAAY,GAAG,CAAC,IAAI,EAAE;aAClF,CAAC,CAAC;QACP,CAAC;QACD,IAAI,aAAa;YAAE,MAAM,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClF,IAAI,UAAU,EAAE,CAAC;YACb,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC;gBACN,MAAM;gBACN,EAAE,EAAE,sBAAsB;gBAC1B,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC/E,OAAO,EAAE,GAAG,MAAM,0BAA0B,WAAW,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;aAC5F,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACN,MAAM;YACN,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE;YACxF,OAAO,EAAE,GAAG,MAAM,uBAAuB,WAAW,GAAG;SAC1D,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kEAAkE;IAC1D,GAAG,CACP,IAAmB,EACnB,IAAgB,EAChB,KAAgD,EAChD,MAAe;QAEf,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;QACjD,OAAO,IAAI,CAAC,YAAY,CACpB,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EACvF,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAC3C,CAAC;IACN,CAAC;IAED,8EAA8E;IAE9E,6BAA6B;IAC7B,IAAI,CAAC,MAAc,EAAE,OAAmB,EAAE;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,+BAA+B;IAC/B,OAAO,CAAC,MAAc,EAAE,OAAmB,EAAE;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IACD,yDAAyD;IACzD,eAAe,CAAC,MAAc,EAAE,OAAmB,EAAE;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IAED,+EAA+E;IAE/E,wFAAwF;IACxF,qBAAqB,CAAC,MAA2B,EAAE,OAAmB,EAAE;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACtE,CAAC;IAED,yDAAyD;IACzD,4EAA4E;IAC5E,+EAA+E;IAE/E,+FAA+F;IAC/F,OAAO,CAAC,OAAmB,EAAE;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IACD,iCAAiC;IACjC,MAAM,CAAC,OAAmB,EAAE;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IACD,6BAA6B;IAC7B,IAAI,CAAC,OAAmB,EAAE;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,mEAAmE;IACnE,QAAQ,CAAC,OAAmB,EAAE;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,sFAAsF;IACtF,kBAAkB,CAAC,OAAmB,EAAE;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IACD,uEAAuE;IACvE,iBAAiB,CAAC,OAAmB,EAAE;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IACD,sEAAsE;IACtE,iBAAiB,CAAC,OAAmB,EAAE;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACZ,WAAmB,EACnB,MAA0E;QAE1E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC9D,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;SACvE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inowu/cashdro",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "TypeScript client for CashDro automated cash recyclers over the Web Service integration API.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Inowu",