@inowu/cashdro 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -2
- package/dist/cashdro.d.ts +47 -2
- package/dist/cashdro.d.ts.map +1 -1
- package/dist/cashdro.js +130 -22
- package/dist/cashdro.js.map +1 -1
- package/package.json +47 -45
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@ withdrawals and cash-management operations, plus cash-level and reporting querie
|
|
|
11
11
|
- [Authentication](#authentication)
|
|
12
12
|
- [Configuration](#configuration)
|
|
13
13
|
- [How transactions work](#how-transactions-work)
|
|
14
|
+
- [Non-blocking usage](#non-blocking-usage)
|
|
15
|
+
- [Debug mode](#debug-mode)
|
|
14
16
|
- [Client reference](#client-reference)
|
|
15
17
|
- [Connectivity & health](#connectivity--health)
|
|
16
18
|
- [Transactions — lifecycle](#transactions--lifecycle)
|
|
@@ -82,6 +84,7 @@ The optional `posuser`, `posid` and `aliasid` fields accepted by transactions ar
|
|
|
82
84
|
| `maxRetries` | Automatic retries with exponential backoff (default 2). |
|
|
83
85
|
| `headers` | Extra headers to send on every request. |
|
|
84
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)). |
|
|
85
88
|
|
|
86
89
|
```ts
|
|
87
90
|
const cashdro = new CashDroClient({
|
|
@@ -123,6 +126,84 @@ is configured for.
|
|
|
123
126
|
while one is active fails with `code -2`. Use `askOperationExecuting()` to detect
|
|
124
127
|
and recover a stuck operation.
|
|
125
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.
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
import { CashDroClient, CashDroTimeoutError } from "@inowu/cashdro";
|
|
139
|
+
|
|
140
|
+
// Fire-and-forget: runs start → acknowledge → poll → import in the background.
|
|
141
|
+
void cashdro
|
|
142
|
+
.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
|
|
146
|
+
poll: { onPoll: (status) => updateUi(status), timeoutMs: 120_000 },
|
|
147
|
+
})
|
|
148
|
+
.then((r) => onPaid(r.final?.response?.operation?.operation)) // totalin / totalout
|
|
149
|
+
.catch((err) => {
|
|
150
|
+
if (err instanceof CashDroTimeoutError) return; // nobody paid in time
|
|
151
|
+
onError(err);
|
|
152
|
+
});
|
|
153
|
+
```
|
|
154
|
+
|
|
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:
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
cancelButton.onclick = () => cashdro.finishOperation(operationId, 2);
|
|
160
|
+
```
|
|
161
|
+
|
|
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, or
|
|
166
|
+
`cancelOnTimeout: true` to auto-cancel the sale if nobody pays in time.
|
|
167
|
+
|
|
168
|
+
## Debug mode
|
|
169
|
+
|
|
170
|
+
The multi-operation helpers (`sale`, `runOperation`, `pollUntilFinished`, …) can
|
|
171
|
+
trace exactly what they do — each underlying call, its result, and every status
|
|
172
|
+
poll. Pass `debug: true` to log to the console:
|
|
173
|
+
|
|
174
|
+
```ts
|
|
175
|
+
const cashdro = new CashDroClient({ baseUrl, username, password, debug: true });
|
|
176
|
+
await cashdro.sale(100, { waitForFinish: true, autoImport: true });
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
```text
|
|
180
|
+
[cashdro] sale: startOperation(type=4, amount=100)
|
|
181
|
+
[cashdro] sale: startOperation → operationId=128 (code=1, 41ms)
|
|
182
|
+
[cashdro] sale: acknowledgeOperationId(128) → code=1
|
|
183
|
+
[cashdro] pollUntilFinished(128): polling every 1000ms, timeout 120000ms
|
|
184
|
+
[cashdro] pollUntilFinished(128): poll #1 → state=Q
|
|
185
|
+
[cashdro] pollUntilFinished(128): poll #2 → state=E
|
|
186
|
+
[cashdro] pollUntilFinished(128): finished after 3 poll(s)
|
|
187
|
+
[cashdro] sale: setOperationImported(128) → code=1
|
|
188
|
+
[cashdro] sale: done (operationId=128)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
For structured logging, pass a handler instead and route the `CashDroDebugEvent`s
|
|
192
|
+
to your own logger:
|
|
193
|
+
|
|
194
|
+
```ts
|
|
195
|
+
const cashdro = new CashDroClient({
|
|
196
|
+
baseUrl,
|
|
197
|
+
username,
|
|
198
|
+
password,
|
|
199
|
+
debug: (e) => logger.debug({ seq: e.seq, helper: e.helper, op: e.op, ...e.detail }, e.message),
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Each event is `{ seq, at, helper, op, phase, detail, message }` — `phase` is
|
|
204
|
+
`"call"`, `"result"`, `"poll"`, or `"info"`. This traces the helper orchestration
|
|
205
|
+
and is independent of the transport layer.
|
|
206
|
+
|
|
126
207
|
## Client reference
|
|
127
208
|
|
|
128
209
|
Methods that map 1:1 to a device operation return the raw response; the convenience
|
|
@@ -187,13 +268,15 @@ await cashdro.setOperationImported(operationId);
|
|
|
187
268
|
| Method | What it does |
|
|
188
269
|
|--------|--------------|
|
|
189
270
|
| `runOperation(params, opts?)` | The engine behind the convenience methods: `start → (acknowledge) → optional poll → optional import`. Returns `{ operationId, started, final?, imported? }`. |
|
|
190
|
-
| `pollUntilFinished(id, opts?)` | Poll `askOperation` until `state === "F"`; returns the full final response. Throws `CashDroTimeoutError` on timeout
|
|
271
|
+
| `pollUntilFinished(id, opts?)` | Poll `askOperation` until `state === "F"`; returns the full final response. Throws `CashDroTimeoutError` on timeout. |
|
|
191
272
|
|
|
192
273
|
`runOperation` options: `acknowledge` (default `true`), `waitForFinish` (default
|
|
193
274
|
`false` — a sale blocks on the customer's cash), `autoImport`, an `onStart(id,
|
|
194
275
|
started)` callback, and `poll` (forwarded to `pollUntilFinished`).
|
|
195
276
|
`pollUntilFinished` options: `intervalMs`, `timeoutMs`, `signal` (`AbortSignal`),
|
|
196
|
-
`onPoll(status)
|
|
277
|
+
`onPoll(status)`, and **`cancelOnTimeout`** — when `true`, a timeout cancels and
|
|
278
|
+
imports the operation before throwing, so it doesn't stay open and block the next
|
|
279
|
+
transaction with `code -2` (a common footgun when testing sales without cash).
|
|
197
280
|
|
|
198
281
|
```ts
|
|
199
282
|
const { operationId } = await cashdro.sale(500, {
|
package/dist/cashdro.d.ts
CHANGED
|
@@ -14,6 +14,29 @@
|
|
|
14
14
|
* purely a nicer surface and is never overwritten by `fern generate`.
|
|
15
15
|
*/
|
|
16
16
|
import { CashDroApiClient, CashDroApi } from "./index.js";
|
|
17
|
+
/**
|
|
18
|
+
* A single trace event emitted by the multi-operation helpers when debug is
|
|
19
|
+
* enabled (see {@link CashDroOptions.debug}). One is emitted before and after
|
|
20
|
+
* each underlying call, plus one per status poll.
|
|
21
|
+
*/
|
|
22
|
+
export interface CashDroDebugEvent {
|
|
23
|
+
/** 1-based sequence number within this client instance. */
|
|
24
|
+
seq: number;
|
|
25
|
+
/** Timestamp (ms since epoch) the event was emitted. */
|
|
26
|
+
at: number;
|
|
27
|
+
/** The high-level helper in play, e.g. "sale", "runOperation", "pollUntilFinished". */
|
|
28
|
+
helper?: string;
|
|
29
|
+
/** The underlying operation, e.g. "startOperation", "askOperation", "done". */
|
|
30
|
+
op: string;
|
|
31
|
+
/** "call" before a request, "result" after it, "poll" per status poll, "info" for milestones. */
|
|
32
|
+
phase: "call" | "result" | "poll" | "info";
|
|
33
|
+
/** Structured details (operationId, type, amount, code, state, attempt, durationMs, ...). */
|
|
34
|
+
detail?: Record<string, unknown>;
|
|
35
|
+
/** Pre-formatted, human-readable one-liner. */
|
|
36
|
+
message: string;
|
|
37
|
+
}
|
|
38
|
+
/** Receives {@link CashDroDebugEvent}s. Pass one as `debug` to integrate with your own logger. */
|
|
39
|
+
export type CashDroDebugHandler = (event: CashDroDebugEvent) => void;
|
|
17
40
|
/** Thrown when a CashDro call returns a non-success `code`. Carries the raw response. */
|
|
18
41
|
export declare class CashDroError extends Error {
|
|
19
42
|
readonly response: unknown;
|
|
@@ -34,6 +57,12 @@ export interface PollOptions {
|
|
|
34
57
|
signal?: AbortSignal;
|
|
35
58
|
/** Called with every poll's full response (state, totals, devices, messages...). */
|
|
36
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;
|
|
37
66
|
}
|
|
38
67
|
export interface RunOperationOptions {
|
|
39
68
|
/** Send acknowledgeOperationId after starting. Default true. */
|
|
@@ -46,6 +75,8 @@ export interface RunOperationOptions {
|
|
|
46
75
|
onStart?: (operationId: number, started: CashDroApi.StartOperationResponse) => void;
|
|
47
76
|
/** Forwarded to pollUntilFinished when waitForFinish is true. */
|
|
48
77
|
poll?: PollOptions;
|
|
78
|
+
/** Label shown in debug output (e.g. "sale"). Defaults to "runOperation". */
|
|
79
|
+
helper?: string;
|
|
49
80
|
}
|
|
50
81
|
/**
|
|
51
82
|
* Result of {@link CashDroClient.runOperation}. Nothing is hidden — every raw
|
|
@@ -69,8 +100,18 @@ export interface RunOperationResult {
|
|
|
69
100
|
* e.g. `{ baseUrl: "https://cashdro.prod.example/" }`.
|
|
70
101
|
* - `environment` — alternative to baseUrl (baseUrl takes precedence).
|
|
71
102
|
* - `headers`, `fetch`, `timeoutInSeconds`, `maxRetries`, `auth`, ...
|
|
103
|
+
*
|
|
104
|
+
* Plus a `debug` option to trace the multi-operation helpers.
|
|
72
105
|
*/
|
|
73
|
-
export type CashDroOptions = CashDroApiClient.Options
|
|
106
|
+
export type CashDroOptions = CashDroApiClient.Options & {
|
|
107
|
+
/**
|
|
108
|
+
* Trace the multi-operation helpers (`runOperation`, `pollUntilFinished`,
|
|
109
|
+
* `sale`, …) so you can see each underlying call, its result, and every
|
|
110
|
+
* status poll. `true` logs to the console; pass a function to receive
|
|
111
|
+
* structured {@link CashDroDebugEvent}s and route them to your own logger.
|
|
112
|
+
*/
|
|
113
|
+
debug?: boolean | CashDroDebugHandler;
|
|
114
|
+
};
|
|
74
115
|
/** type id for startOperation. 4 = sale, 3 = payment, 1 = load, 2 = withdrawal, 8 = transfer, 16 = deposit, 18 = change. */
|
|
75
116
|
export type OperationType = number;
|
|
76
117
|
export interface StartOperationParams {
|
|
@@ -95,9 +136,13 @@ export interface DenominationPiece {
|
|
|
95
136
|
isBill: boolean;
|
|
96
137
|
}
|
|
97
138
|
export declare class CashDroClient {
|
|
98
|
-
/** The underlying
|
|
139
|
+
/** The underlying generated client, exposed for escape-hatch access. */
|
|
99
140
|
readonly api: CashDroApiClient;
|
|
141
|
+
private readonly emitDebug?;
|
|
142
|
+
private seq;
|
|
100
143
|
constructor(options: CashDroOptions);
|
|
144
|
+
/** Emit a debug event if a handler is configured (no-op otherwise). */
|
|
145
|
+
private emit;
|
|
101
146
|
/** Verify connection and credentials. */
|
|
102
147
|
doTest(requestOptions?: CashDroApiClient.RequestOptions): import("./core/index.js").HttpResponsePromise<CashDroApi.SimpleResponse>;
|
|
103
148
|
/** Open a cash-movement transaction; returns an operationId. */
|
package/dist/cashdro.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cashdro.d.ts","sourceRoot":"","sources":["../cashdro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI1D,yFAAyF;AACzF,qBAAa,YAAa,SAAQ,KAAK;IAG/B,QAAQ,CAAC,QAAQ,EAAE,OAAO;gBAD1B,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,OAAO;CAKjC;AAED,sGAAsG;AACtG,qBAAa,mBAAoB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,oBAAoB;gBADrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,CAAC,oBAAoB;CAKrD;AAED,MAAM,WAAW,WAAW;IACxB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oFAAoF;IACpF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,oBAAoB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"cashdro.d.ts","sourceRoot":"","sources":["../cashdro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI1D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAC;IACX,iGAAiG;IACjG,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,kGAAkG;AAClG,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAOrE,yFAAyF;AACzF,qBAAa,YAAa,SAAQ,KAAK;IAG/B,QAAQ,CAAC,QAAQ,EAAE,OAAO;gBAD1B,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,OAAO;CAKjC;AAED,sGAAsG;AACtG,qBAAa,mBAAoB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,oBAAoB;gBADrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,CAAC,oBAAoB;CAKrD;AAED,MAAM,WAAW,WAAW;IACxB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oFAAoF;IACpF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAC3D;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAChC,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,sBAAsB,KAAK,IAAI,CAAC;IACpF,iEAAiE;IACjE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,OAAO,EAAE,UAAU,CAAC,sBAAsB,CAAC;IAC3C,iFAAiF;IACjF,KAAK,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC;IACxC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC;CACxC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,GAAG;IACpD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;CACzC,CAAC;AAEF,4HAA4H;AAC5H,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,2GAA2G;IAC3G,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAE3G,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAC9B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;CACnB;AAaD,qBAAa,aAAa;IACtB,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAsB;IACjD,OAAO,CAAC,GAAG,CAAK;gBAEJ,OAAO,EAAE,cAAc;IAOnC,uEAAuE;IACvE,OAAO,CAAC,IAAI;IAKZ,yCAAyC;IACzC,MAAM,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAIvD,gEAAgE;IAChE,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAiB7F,4CAA4C;IAC5C,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAO5F,kCAAkC;IAClC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAIlF,0EAA0E;IAC1E,qBAAqB,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAItE;;;;OAIG;IACH,eAAe,CACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAQpD,iDAAiD;IACjD,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAO1F,yCAAyC;IACzC,oBAAoB,CAChB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,EAChE,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAKpD,0CAA0C;IAC1C,iBAAiB,CACb,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9E,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAKpD,wCAAwC;IACxC,SAAS,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAI1D,4CAA4C;IAC5C,YAAY,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAI7D,0CAA0C;IAC1C,YAAY,CACR,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EACrF,cAAc,CAAC,EAAE,gBAAgB,CAAC,cAAc;IAOpD;;;;;OAKG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC;IAmE9G;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6D7G,kEAAkE;IAClE,OAAO,CAAC,GAAG;IAeX,6BAA6B;IAC7B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe;IAG1C,+BAA+B;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe;IAG7C,yDAAyD;IACzD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe;IAMrD,wFAAwF;IACxF,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,GAAE,UAAe;IASxE,+FAA+F;IAC/F,OAAO,CAAC,IAAI,GAAE,UAAe;IAG7B,iCAAiC;IACjC,MAAM,CAAC,IAAI,GAAE,UAAe;IAG5B,6BAA6B;IAC7B,IAAI,CAAC,IAAI,GAAE,UAAe;IAG1B,mEAAmE;IACnE,QAAQ,CAAC,IAAI,GAAE,UAAe;IAG9B,sFAAsF;IACtF,kBAAkB,CAAC,IAAI,GAAE,UAAe;IAGxC,uEAAuE;IACvE,iBAAiB,CAAC,IAAI,GAAE,UAAe;IAGvC,sEAAsE;IACtE,iBAAiB,CAAC,IAAI,GAAE,UAAe;IAIvC;;;;;OAKG;IACH,gBAAgB,CACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;KAAE;CAQjF"}
|
package/dist/cashdro.js
CHANGED
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { CashDroApiClient } from "./index.js";
|
|
17
17
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
18
|
+
const defaultDebugHandler = (e) => {
|
|
19
|
+
// eslint-disable-next-line no-console
|
|
20
|
+
console.debug(`[cashdro] ${e.message}`);
|
|
21
|
+
};
|
|
18
22
|
/** Thrown when a CashDro call returns a non-success `code`. Carries the raw response. */
|
|
19
23
|
export class CashDroError extends Error {
|
|
20
24
|
response;
|
|
@@ -46,10 +50,21 @@ const toSpanishPiece = (p) => ({
|
|
|
46
50
|
isBillete: String(p.isBill),
|
|
47
51
|
});
|
|
48
52
|
export class CashDroClient {
|
|
49
|
-
/** The underlying
|
|
53
|
+
/** The underlying generated client, exposed for escape-hatch access. */
|
|
50
54
|
api;
|
|
55
|
+
emitDebug;
|
|
56
|
+
seq = 0;
|
|
51
57
|
constructor(options) {
|
|
52
|
-
|
|
58
|
+
const { debug, ...apiOptions } = options;
|
|
59
|
+
this.api = new CashDroApiClient(apiOptions);
|
|
60
|
+
this.emitDebug =
|
|
61
|
+
debug === true ? defaultDebugHandler : typeof debug === "function" ? debug : undefined;
|
|
62
|
+
}
|
|
63
|
+
/** Emit a debug event if a handler is configured (no-op otherwise). */
|
|
64
|
+
emit(event) {
|
|
65
|
+
const handler = this.emitDebug;
|
|
66
|
+
if (handler)
|
|
67
|
+
handler({ seq: ++this.seq, at: Date.now(), ...event });
|
|
53
68
|
}
|
|
54
69
|
/** Verify connection and credentials. */
|
|
55
70
|
doTest(requestOptions) {
|
|
@@ -120,17 +135,69 @@ export class CashDroClient {
|
|
|
120
135
|
* so cancel it with `finishOperation(id, 2)` if you want to abort.
|
|
121
136
|
*/
|
|
122
137
|
async pollUntilFinished(operationId, opts = {}) {
|
|
123
|
-
const { intervalMs = 1000, timeoutMs = 120_000, signal, onPoll } = opts;
|
|
138
|
+
const { intervalMs = 1000, timeoutMs = 120_000, signal, onPoll, cancelOnTimeout = false } = opts;
|
|
124
139
|
const deadline = Date.now() + timeoutMs;
|
|
140
|
+
this.emit({
|
|
141
|
+
op: "pollUntilFinished",
|
|
142
|
+
phase: "info",
|
|
143
|
+
detail: { operationId, intervalMs, timeoutMs },
|
|
144
|
+
message: `pollUntilFinished(${operationId}): polling every ${intervalMs}ms, timeout ${timeoutMs}ms`,
|
|
145
|
+
});
|
|
146
|
+
let attempt = 0;
|
|
125
147
|
while (true) {
|
|
148
|
+
attempt++;
|
|
126
149
|
const status = await this.askOperation(operationId);
|
|
150
|
+
const state = status.response?.operation?.operation?.state;
|
|
151
|
+
this.emit({
|
|
152
|
+
op: "askOperation",
|
|
153
|
+
phase: "poll",
|
|
154
|
+
detail: { operationId, attempt, state },
|
|
155
|
+
message: `pollUntilFinished(${operationId}): poll #${attempt} → state=${state ?? "?"}`,
|
|
156
|
+
});
|
|
127
157
|
onPoll?.(status);
|
|
128
|
-
if (
|
|
158
|
+
if (state === "F") {
|
|
159
|
+
this.emit({
|
|
160
|
+
op: "pollUntilFinished",
|
|
161
|
+
phase: "info",
|
|
162
|
+
detail: { operationId, attempt, state },
|
|
163
|
+
message: `pollUntilFinished(${operationId}): finished after ${attempt} poll(s)`,
|
|
164
|
+
});
|
|
129
165
|
return status;
|
|
130
|
-
|
|
166
|
+
}
|
|
167
|
+
if (signal?.aborted) {
|
|
168
|
+
this.emit({
|
|
169
|
+
op: "pollUntilFinished",
|
|
170
|
+
phase: "info",
|
|
171
|
+
detail: { operationId, attempt, aborted: true },
|
|
172
|
+
message: `pollUntilFinished(${operationId}): aborted after ${attempt} poll(s)`,
|
|
173
|
+
});
|
|
131
174
|
throw new CashDroError(`poll aborted for operation ${operationId}`, status);
|
|
132
|
-
|
|
175
|
+
}
|
|
176
|
+
if (Date.now() >= deadline) {
|
|
177
|
+
this.emit({
|
|
178
|
+
op: "pollUntilFinished",
|
|
179
|
+
phase: "info",
|
|
180
|
+
detail: { operationId, attempt, timedOut: true },
|
|
181
|
+
message: `pollUntilFinished(${operationId}): timed out after ${attempt} poll(s)`,
|
|
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
|
+
}
|
|
133
199
|
throw new CashDroTimeoutError(operationId, status);
|
|
200
|
+
}
|
|
134
201
|
await sleep(intervalMs);
|
|
135
202
|
}
|
|
136
203
|
}
|
|
@@ -146,75 +213,116 @@ export class CashDroClient {
|
|
|
146
213
|
*/
|
|
147
214
|
async runOperation(params, opts = {}) {
|
|
148
215
|
const { acknowledge = true, waitForFinish = false, autoImport = false, onStart, poll } = opts;
|
|
216
|
+
const helper = opts.helper ?? "runOperation";
|
|
217
|
+
this.emit({
|
|
218
|
+
helper,
|
|
219
|
+
op: "startOperation",
|
|
220
|
+
phase: "call",
|
|
221
|
+
detail: { type: params.type, amount: params.amount, parameters: params.parameters },
|
|
222
|
+
message: `${helper}: startOperation(type=${params.type}${params.amount != null ? `, amount=${params.amount}` : ""})`,
|
|
223
|
+
});
|
|
224
|
+
let t = Date.now();
|
|
149
225
|
const started = await this.startOperation(params);
|
|
150
226
|
const operationId = Number(started.response?.operation?.operationId);
|
|
227
|
+
this.emit({
|
|
228
|
+
helper,
|
|
229
|
+
op: "startOperation",
|
|
230
|
+
phase: "result",
|
|
231
|
+
detail: { operationId, code: started.code, durationMs: Date.now() - t },
|
|
232
|
+
message: `${helper}: startOperation → operationId=${operationId} (code=${started.code}, ${Date.now() - t}ms)`,
|
|
233
|
+
});
|
|
151
234
|
if (started.code !== 1 || Number.isNaN(operationId)) {
|
|
152
235
|
throw new CashDroError(`startOperation failed (code ${started.code})`, started);
|
|
153
236
|
}
|
|
154
237
|
onStart?.(operationId, started);
|
|
155
238
|
const result = { operationId, started };
|
|
156
|
-
if (acknowledge)
|
|
157
|
-
|
|
239
|
+
if (acknowledge) {
|
|
240
|
+
t = Date.now();
|
|
241
|
+
const ack = await this.acknowledgeOperationId(operationId);
|
|
242
|
+
this.emit({
|
|
243
|
+
helper,
|
|
244
|
+
op: "acknowledgeOperationId",
|
|
245
|
+
phase: "result",
|
|
246
|
+
detail: { operationId, code: ack.code, durationMs: Date.now() - t },
|
|
247
|
+
message: `${helper}: acknowledgeOperationId(${operationId}) → code=${ack.code}`,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
158
250
|
if (waitForFinish)
|
|
159
251
|
result.final = await this.pollUntilFinished(operationId, poll);
|
|
160
|
-
if (autoImport)
|
|
252
|
+
if (autoImport) {
|
|
253
|
+
t = Date.now();
|
|
161
254
|
result.imported = await this.setOperationImported(operationId);
|
|
255
|
+
this.emit({
|
|
256
|
+
helper,
|
|
257
|
+
op: "setOperationImported",
|
|
258
|
+
phase: "result",
|
|
259
|
+
detail: { operationId, code: result.imported.code, durationMs: Date.now() - t },
|
|
260
|
+
message: `${helper}: setOperationImported(${operationId}) → code=${result.imported.code}`,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
this.emit({
|
|
264
|
+
helper,
|
|
265
|
+
op: "done",
|
|
266
|
+
phase: "info",
|
|
267
|
+
detail: { operationId, finalState: result.final?.response?.operation?.operation?.state },
|
|
268
|
+
message: `${helper}: done (operationId=${operationId})`,
|
|
269
|
+
});
|
|
162
270
|
return result;
|
|
163
271
|
}
|
|
164
272
|
/** Shared plumbing for the per-transaction conveniences below. */
|
|
165
|
-
txn(type, opts, extra) {
|
|
273
|
+
txn(type, opts, extra, helper) {
|
|
166
274
|
const { posid, posuser, aliasid, ...run } = opts;
|
|
167
|
-
return this.runOperation({ type, posid, posuser, aliasid, amount: extra?.amount, parameters: extra?.parameters }, run);
|
|
275
|
+
return this.runOperation({ type, posid, posuser, aliasid, amount: extra?.amount, parameters: extra?.parameters }, { ...run, helper: helper ?? run.helper });
|
|
168
276
|
}
|
|
169
277
|
// --- amount-based transactions (parameters = {"amount":"<minor units>"}) ---
|
|
170
278
|
/** Sale / venta (type 4). */
|
|
171
279
|
sale(amount, opts = {}) {
|
|
172
|
-
return this.txn(4, opts, { amount });
|
|
280
|
+
return this.txn(4, opts, { amount }, "sale");
|
|
173
281
|
}
|
|
174
282
|
/** Payment / pago (type 3). */
|
|
175
283
|
payment(amount, opts = {}) {
|
|
176
|
-
return this.txn(3, opts, { amount });
|
|
284
|
+
return this.txn(3, opts, { amount }, "payment");
|
|
177
285
|
}
|
|
178
286
|
/** Deposit by amount / ingreso por importe (type 17). */
|
|
179
287
|
depositByAmount(amount, opts = {}) {
|
|
180
|
-
return this.txn(17, opts, { amount });
|
|
288
|
+
return this.txn(17, opts, { amount }, "depositByAmount");
|
|
181
289
|
}
|
|
182
290
|
// --- denomination-based payment (parameters = {"pieces":{"piece":[...]}}) ---
|
|
183
291
|
/** Pay by denomination / pago por denominación (type 3) — dispense the given pieces. */
|
|
184
292
|
paymentByDenomination(pieces, opts = {}) {
|
|
185
293
|
const parameters = JSON.stringify({ pieces: { piece: pieces.map(toEnglishPiece) } });
|
|
186
|
-
return this.txn(3, opts, { parameters });
|
|
294
|
+
return this.txn(3, opts, { parameters }, "paymentByDenomination");
|
|
187
295
|
}
|
|
188
296
|
// --- transactions with no startOperation parameters ---
|
|
189
297
|
// (driven to completion on the unit's web UI, by finishOperation, or by the
|
|
190
298
|
// operator; use waitForFinish / finishOperation / finishWithPieces as needed)
|
|
191
299
|
/** Deposit / ingreso (type 16). Finalize with finishOperation(id, 1) once the user is done. */
|
|
192
300
|
deposit(opts = {}) {
|
|
193
|
-
return this.txn(16, opts);
|
|
301
|
+
return this.txn(16, opts, undefined, "deposit");
|
|
194
302
|
}
|
|
195
303
|
/** Change / cambio (type 18). */
|
|
196
304
|
change(opts = {}) {
|
|
197
|
-
return this.txn(18, opts);
|
|
305
|
+
return this.txn(18, opts, undefined, "change");
|
|
198
306
|
}
|
|
199
307
|
/** Load / carga (type 1). */
|
|
200
308
|
load(opts = {}) {
|
|
201
|
-
return this.txn(1, opts);
|
|
309
|
+
return this.txn(1, opts, undefined, "load");
|
|
202
310
|
}
|
|
203
311
|
/** Withdrawal / retirada (type 2), driven by the unit's web UI. */
|
|
204
312
|
withdraw(opts = {}) {
|
|
205
|
-
return this.txn(2, opts);
|
|
313
|
+
return this.txn(2, opts, undefined, "withdraw");
|
|
206
314
|
}
|
|
207
315
|
/** Transfer to cassette / traspaso a casete (type 8), driven by the unit's web UI. */
|
|
208
316
|
transferToCassette(opts = {}) {
|
|
209
|
-
return this.txn(8, opts);
|
|
317
|
+
return this.txn(8, opts, undefined, "transferToCassette");
|
|
210
318
|
}
|
|
211
319
|
/** Empty the note cassette / retirada casete de billetes (type 10). */
|
|
212
320
|
emptyNoteCassette(opts = {}) {
|
|
213
|
-
return this.txn(10, opts);
|
|
321
|
+
return this.txn(10, opts, undefined, "emptyNoteCassette");
|
|
214
322
|
}
|
|
215
323
|
/** Empty the coin cassette / retirada casete de monedas (type 11). */
|
|
216
324
|
emptyCoinCassette(opts = {}) {
|
|
217
|
-
return this.txn(11, opts);
|
|
325
|
+
return this.txn(11, opts, undefined, "emptyCoinCassette");
|
|
218
326
|
}
|
|
219
327
|
/**
|
|
220
328
|
* Finalize a "sin interfaz web" withdrawal (type 2) or transfer to cassette
|
package/dist/cashdro.js.map
CHANGED
|
@@ -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":"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"}
|
package/package.json
CHANGED
|
@@ -1,47 +1,49 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
2
|
+
"name": "@inowu/cashdro",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "TypeScript client for CashDro automated cash recyclers over the Web Service integration API.",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"author": "Inowu",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"cashdro",
|
|
9
|
+
"cash-recycler",
|
|
10
|
+
"payments",
|
|
11
|
+
"point-of-sale",
|
|
12
|
+
"sdk"
|
|
13
|
+
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/Inowu/cashdro-sdk-typescript.git"
|
|
17
|
+
},
|
|
18
|
+
"type": "module",
|
|
19
|
+
"main": "./dist/main.js",
|
|
20
|
+
"module": "./dist/main.js",
|
|
21
|
+
"types": "./dist/main.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/main.d.ts",
|
|
25
|
+
"import": "./dist/main.js",
|
|
26
|
+
"default": "./dist/main.js"
|
|
27
|
+
},
|
|
28
|
+
"./package.json": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"README.md"
|
|
33
|
+
],
|
|
34
|
+
"sideEffects": false,
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=18"
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "tsc -p tsconfig.json",
|
|
43
|
+
"prepack": "npm run build"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/node": "^22",
|
|
47
|
+
"typescript": "^5.6.3"
|
|
27
48
|
}
|
|
28
|
-
|
|
29
|
-
"files": [
|
|
30
|
-
"dist",
|
|
31
|
-
"README.md"
|
|
32
|
-
],
|
|
33
|
-
"sideEffects": false,
|
|
34
|
-
"engines": {
|
|
35
|
-
"node": ">=18"
|
|
36
|
-
},
|
|
37
|
-
"publishConfig": {
|
|
38
|
-
"access": "public"
|
|
39
|
-
},
|
|
40
|
-
"devDependencies": {
|
|
41
|
-
"@types/node": "^22",
|
|
42
|
-
"typescript": "^5.6.3"
|
|
43
|
-
},
|
|
44
|
-
"scripts": {
|
|
45
|
-
"build": "tsc -p tsconfig.json"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
49
|
+
}
|