@zpl-toolchain/print 0.1.11 → 0.1.12
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 +15 -10
- package/dist/index.d.ts +15 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +215 -42
- package/dist/index.js.map +1 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +47 -9
- package/dist/proxy.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -46,8 +46,9 @@ await printer.close();
|
|
|
46
46
|
- **Batch printing** — `TcpPrinter.printBatch()` sends multiple labels with optional progress callbacks and status polling
|
|
47
47
|
- **Status queries** — `TcpPrinter.getStatus()` parses the full `~HS` host status response (24 fields)
|
|
48
48
|
- **Retry with backoff** — configurable automatic retries on transient errors
|
|
49
|
+
- **Abort support** — `AbortSignal` support on one-shot and batch/completion flows
|
|
49
50
|
- **Validated printing** — `printValidated()` validates ZPL before sending (requires optional `@zpl-toolchain/core` peer dependency)
|
|
50
|
-
- **HTTP/WebSocket proxy** — `createPrintProxy()` bridges browser apps to network printers with CORS, SSRF protection, allowlists, and
|
|
51
|
+
- **HTTP/WebSocket proxy** — `createPrintProxy()` bridges browser apps to network printers with CORS, SSRF protection, allowlists, connection limits, optional per-client WS rate limiting, and correlation IDs
|
|
51
52
|
- **Browser printing** — `ZebraBrowserPrint` wraps the Zebra Browser Print agent for printing from the browser via `fetch()`
|
|
52
53
|
- **Full TypeScript types** — all APIs are fully typed with exported interfaces
|
|
53
54
|
|
|
@@ -59,17 +60,19 @@ await printer.close();
|
|
|
59
60
|
|----------|-------------|
|
|
60
61
|
| `print(zpl, config)` | Send ZPL and disconnect |
|
|
61
62
|
| `printValidated(zpl, config, opts?)` | Validate then print (requires `@zpl-toolchain/core`) |
|
|
63
|
+
| `createPrinter(config)` | Convenience factory for `new TcpPrinter(config)` |
|
|
62
64
|
|
|
63
65
|
### `TcpPrinter` — persistent connection
|
|
64
66
|
|
|
65
67
|
| Method | Description |
|
|
66
68
|
|--------|-------------|
|
|
67
69
|
| `new TcpPrinter(config)` | Create a printer (connects lazily on first call) |
|
|
68
|
-
| `print(zpl)` | Send ZPL over the persistent connection |
|
|
70
|
+
| `print(zpl, opts?)` | Send ZPL over the persistent connection |
|
|
69
71
|
| `isReachable()` | Check if the printer accepts TCP connections |
|
|
70
|
-
| `getStatus()` | Query `~HS` host status (paper out, paused, labels remaining, etc.) |
|
|
72
|
+
| `getStatus(opts?)` | Query `~HS` host status (paper out, paused, labels remaining, etc.); supports `AbortSignal` |
|
|
73
|
+
| `query(command, opts?)` | Send an arbitrary command (e.g. `~HI`) and return raw response; supports `AbortSignal` |
|
|
71
74
|
| `printBatch(labels, opts?, onProgress?)` | Send multiple labels with optional status polling and progress callbacks |
|
|
72
|
-
| `waitForCompletion(timeoutMs?)` | Poll until all labels are printed or
|
|
75
|
+
| `waitForCompletion(pollInterval?, timeoutMs?, signal?)` | Poll until all labels are printed, timeout, or abort |
|
|
73
76
|
| `close()` | Gracefully close the connection |
|
|
74
77
|
|
|
75
78
|
### Proxy — `@zpl-toolchain/print/proxy`
|
|
@@ -79,13 +82,15 @@ import { createPrintProxy } from "@zpl-toolchain/print/proxy";
|
|
|
79
82
|
|
|
80
83
|
const server = createPrintProxy({
|
|
81
84
|
port: 3001,
|
|
82
|
-
|
|
85
|
+
allowedPrinters: ["192.168.1.*", "printer.local"],
|
|
83
86
|
allowedPorts: [9100],
|
|
87
|
+
wsRateLimitPerClient: { maxRequests: 10, windowMs: 1000 },
|
|
84
88
|
cors: "*",
|
|
85
89
|
});
|
|
86
|
-
// POST /print {
|
|
87
|
-
// POST /status {
|
|
88
|
-
// WebSocket: send {
|
|
90
|
+
// POST /print { printer, port?, zpl }
|
|
91
|
+
// POST /status { printer, port? }
|
|
92
|
+
// WebSocket: send { id?, type: "print"|"status", printer, port?, zpl? }
|
|
93
|
+
// WebSocket responses echo id when provided.
|
|
89
94
|
```
|
|
90
95
|
|
|
91
96
|
### Browser — `@zpl-toolchain/print/browser`
|
|
@@ -104,11 +109,11 @@ if (await zbp.isAvailable()) {
|
|
|
104
109
|
|
|
105
110
|
All types are exported from the main entry point:
|
|
106
111
|
|
|
107
|
-
- **`PrinterConfig`** — host, port, timeout, retries
|
|
112
|
+
- **`PrinterConfig`** — host, port, timeout, retries, `signal`
|
|
108
113
|
- **`PrintResult`** — success, bytesWritten, error details
|
|
109
114
|
- **`PrinterStatus`** — 24-field parsed `~HS` response
|
|
110
115
|
- **`PrintError`** — typed error with `code` (CONNECTION_REFUSED, TIMEOUT, etc.)
|
|
111
|
-
- **`BatchOptions`** / **`BatchProgress`** / **`BatchResult`** — batch printing control
|
|
116
|
+
- **`BatchOptions`** / **`BatchProgress`** / **`BatchResult`** — batch printing control (including partial error details where `error.index` is the 0-based failed label index)
|
|
112
117
|
- **`ProxyConfig`** — proxy server configuration
|
|
113
118
|
- **`ValidateOptions`** — options for validated printing
|
|
114
119
|
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { PrintError, type PrinterConfig, type PrintResult, type PrinterStatus, t
|
|
|
7
7
|
*
|
|
8
8
|
* Exported so that `proxy.ts` can re-use it instead of duplicating the logic.
|
|
9
9
|
*/
|
|
10
|
-
export declare function tcpQuery(host: string, port: number, command: string, timeout: number): Promise<string>;
|
|
10
|
+
export declare function tcpQuery(host: string, port: number, command: string, timeout: number, signal?: AbortSignal): Promise<string>;
|
|
11
11
|
/**
|
|
12
12
|
* Send ZPL to a printer and return the result.
|
|
13
13
|
*
|
|
@@ -52,7 +52,9 @@ export declare class TcpPrinter {
|
|
|
52
52
|
*
|
|
53
53
|
* Falls back to a fresh connection if the existing one is broken.
|
|
54
54
|
*/
|
|
55
|
-
print(zpl: string
|
|
55
|
+
print(zpl: string, opts?: {
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
}): Promise<PrintResult>;
|
|
56
58
|
/**
|
|
57
59
|
* Query the printer's host status (~HS).
|
|
58
60
|
*
|
|
@@ -64,7 +66,9 @@ export declare class TcpPrinter {
|
|
|
64
66
|
* needs an idle-timeout-based read strategy that would interfere with the
|
|
65
67
|
* persistent socket's event handlers.
|
|
66
68
|
*/
|
|
67
|
-
getStatus(
|
|
69
|
+
getStatus(opts?: {
|
|
70
|
+
signal?: AbortSignal;
|
|
71
|
+
}): Promise<PrinterStatus>;
|
|
68
72
|
/**
|
|
69
73
|
* Send an arbitrary command and return the raw response string.
|
|
70
74
|
*
|
|
@@ -75,7 +79,9 @@ export declare class TcpPrinter {
|
|
|
75
79
|
* requires an idle-timeout strategy that would interfere with the
|
|
76
80
|
* persistent socket's event handlers.
|
|
77
81
|
*/
|
|
78
|
-
query(command: string
|
|
82
|
+
query(command: string, opts?: {
|
|
83
|
+
signal?: AbortSignal;
|
|
84
|
+
}): Promise<string>;
|
|
79
85
|
/**
|
|
80
86
|
* Check whether the printer is reachable by attempting a TCP connection.
|
|
81
87
|
* Returns `true` if the connection succeeds, `false` otherwise.
|
|
@@ -89,7 +95,8 @@ export declare class TcpPrinter {
|
|
|
89
95
|
* @param onProgress - Optional callback after each label.
|
|
90
96
|
* Return `false` (strictly) to abort the batch early.
|
|
91
97
|
* Any other return value (including `undefined`/`true`) continues normally.
|
|
92
|
-
* @returns The number of labels sent and the total.
|
|
98
|
+
* @returns The number of labels sent and the total. Includes `error` details
|
|
99
|
+
* when the batch stops mid-stream.
|
|
93
100
|
*
|
|
94
101
|
* @example
|
|
95
102
|
* ```ts
|
|
@@ -118,7 +125,7 @@ export declare class TcpPrinter {
|
|
|
118
125
|
* @param timeout - Maximum wait time in milliseconds (default: 30000).
|
|
119
126
|
* @throws {PrintError} with code `TIMEOUT` if the timeout is exceeded.
|
|
120
127
|
*/
|
|
121
|
-
waitForCompletion(pollInterval?: number, timeout?: number): Promise<void>;
|
|
128
|
+
waitForCompletion(pollInterval?: number, timeout?: number, signal?: AbortSignal): Promise<void>;
|
|
122
129
|
/** Close the persistent connection. Safe to call multiple times. */
|
|
123
130
|
close(): Promise<void>;
|
|
124
131
|
}
|
|
@@ -171,7 +178,8 @@ export declare function printValidated(zpl: string, config: PrinterConfig, valid
|
|
|
171
178
|
* @param opts - Optional batch options (e.g., status polling interval).
|
|
172
179
|
* @param onProgress - Optional callback after each label.
|
|
173
180
|
* Return `false` (strictly) to abort the batch early.
|
|
174
|
-
* @returns The number of labels sent and the total.
|
|
181
|
+
* @returns The number of labels sent and the total. Includes `error` details
|
|
182
|
+
* when the batch stops mid-stream.
|
|
175
183
|
*
|
|
176
184
|
* @example
|
|
177
185
|
* ```ts
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,aAAa,EAEb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,10 @@ const DEFAULT_MAX_RETRIES = 2;
|
|
|
10
10
|
const DEFAULT_RETRY_DELAY = 500;
|
|
11
11
|
// ─── Error classification ────────────────────────────────────────────────────
|
|
12
12
|
function classifyError(err) {
|
|
13
|
-
|
|
13
|
+
const code = err && typeof err === "object" && "code" in err
|
|
14
|
+
? err.code
|
|
15
|
+
: undefined;
|
|
16
|
+
switch (code) {
|
|
14
17
|
case "ECONNREFUSED":
|
|
15
18
|
return "CONNECTION_REFUSED";
|
|
16
19
|
case "ETIMEDOUT":
|
|
@@ -29,7 +32,7 @@ function wrapError(err) {
|
|
|
29
32
|
if (err instanceof PrintError)
|
|
30
33
|
return err;
|
|
31
34
|
const nodeErr = err;
|
|
32
|
-
const code = classifyError(
|
|
35
|
+
const code = classifyError(err);
|
|
33
36
|
const msg = nodeErr.message ?? String(err);
|
|
34
37
|
return new PrintError(msg, code, err);
|
|
35
38
|
}
|
|
@@ -52,42 +55,80 @@ function resolveConfig(cfg) {
|
|
|
52
55
|
timeout,
|
|
53
56
|
maxRetries: cfg.maxRetries ?? DEFAULT_MAX_RETRIES,
|
|
54
57
|
retryDelay: cfg.retryDelay ?? DEFAULT_RETRY_DELAY,
|
|
58
|
+
signal: cfg.signal,
|
|
55
59
|
};
|
|
56
60
|
}
|
|
57
|
-
/** Sleep for `ms` milliseconds. */
|
|
58
|
-
function sleep(ms) {
|
|
59
|
-
return new Promise((resolve) =>
|
|
61
|
+
/** Sleep for `ms` milliseconds, optionally cancellable via AbortSignal. */
|
|
62
|
+
function sleep(ms, signal) {
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
if (signal?.aborted) {
|
|
65
|
+
reject(abortError());
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const timer = setTimeout(() => {
|
|
69
|
+
if (signal && onAbort) {
|
|
70
|
+
signal.removeEventListener("abort", onAbort);
|
|
71
|
+
}
|
|
72
|
+
resolve();
|
|
73
|
+
}, ms);
|
|
74
|
+
let onAbort;
|
|
75
|
+
if (signal) {
|
|
76
|
+
onAbort = () => {
|
|
77
|
+
clearTimeout(timer);
|
|
78
|
+
signal.removeEventListener("abort", onAbort);
|
|
79
|
+
reject(abortError());
|
|
80
|
+
};
|
|
81
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function abortError() {
|
|
86
|
+
return new PrintError("Operation aborted", "UNKNOWN");
|
|
60
87
|
}
|
|
61
88
|
// ─── Low-level TCP helpers ───────────────────────────────────────────────────
|
|
62
89
|
/**
|
|
63
90
|
* Open a TCP socket, write `data`, and close. Returns bytes written & timing.
|
|
64
91
|
*/
|
|
65
|
-
function tcpSend(host, port, data, timeout) {
|
|
92
|
+
function tcpSend(host, port, data, timeout, signal) {
|
|
66
93
|
return new Promise((resolve, reject) => {
|
|
94
|
+
let socket = null;
|
|
67
95
|
const start = performance.now();
|
|
68
96
|
const buf = Buffer.from(data, "utf-8");
|
|
69
97
|
let settled = false;
|
|
98
|
+
let onAbort;
|
|
99
|
+
const cleanupAbort = () => {
|
|
100
|
+
if (signal && onAbort) {
|
|
101
|
+
signal.removeEventListener("abort", onAbort);
|
|
102
|
+
}
|
|
103
|
+
onAbort = undefined;
|
|
104
|
+
};
|
|
70
105
|
const fail = (err) => {
|
|
71
106
|
if (settled)
|
|
72
107
|
return;
|
|
73
108
|
settled = true;
|
|
74
|
-
|
|
109
|
+
cleanupAbort();
|
|
110
|
+
socket?.destroy();
|
|
75
111
|
reject(err);
|
|
76
112
|
};
|
|
77
113
|
const succeed = (result) => {
|
|
78
114
|
if (settled)
|
|
79
115
|
return;
|
|
80
116
|
settled = true;
|
|
117
|
+
cleanupAbort();
|
|
81
118
|
resolve(result);
|
|
82
119
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
120
|
+
if (signal?.aborted) {
|
|
121
|
+
fail(abortError());
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const sock = net.createConnection({ host, port }, () => {
|
|
125
|
+
sock.setNoDelay(true);
|
|
126
|
+
sock.write(buf, (writeErr) => {
|
|
86
127
|
if (writeErr) {
|
|
87
128
|
fail(wrapError(writeErr));
|
|
88
129
|
return;
|
|
89
130
|
}
|
|
90
|
-
|
|
131
|
+
sock.end(() => {
|
|
91
132
|
succeed({
|
|
92
133
|
success: true,
|
|
93
134
|
bytesWritten: buf.length,
|
|
@@ -96,17 +137,22 @@ function tcpSend(host, port, data, timeout) {
|
|
|
96
137
|
// Force-close after graceful FIN — ZPL printers won't send FIN back,
|
|
97
138
|
// which would leave the socket in FIN_WAIT_2 indefinitely.
|
|
98
139
|
setTimeout(() => {
|
|
99
|
-
if (!
|
|
100
|
-
|
|
140
|
+
if (!sock.destroyed)
|
|
141
|
+
sock.destroy();
|
|
101
142
|
}, 1000).unref();
|
|
102
143
|
});
|
|
103
144
|
});
|
|
104
145
|
});
|
|
146
|
+
socket = sock;
|
|
105
147
|
socket.setTimeout(timeout);
|
|
106
148
|
socket.on("timeout", () => {
|
|
107
149
|
fail(new PrintError(`Connection to ${host}:${port} timed out after ${timeout}ms`, "TIMEOUT"));
|
|
108
150
|
});
|
|
109
151
|
socket.on("error", (err) => fail(wrapError(err)));
|
|
152
|
+
if (signal) {
|
|
153
|
+
onAbort = () => fail(abortError());
|
|
154
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
155
|
+
}
|
|
110
156
|
});
|
|
111
157
|
}
|
|
112
158
|
/**
|
|
@@ -115,46 +161,61 @@ function tcpSend(host, port, data, timeout) {
|
|
|
115
161
|
*
|
|
116
162
|
* Exported so that `proxy.ts` can re-use it instead of duplicating the logic.
|
|
117
163
|
*/
|
|
118
|
-
export function tcpQuery(host, port, command, timeout) {
|
|
164
|
+
export function tcpQuery(host, port, command, timeout, signal) {
|
|
119
165
|
return new Promise((resolve, reject) => {
|
|
166
|
+
let socket = null;
|
|
120
167
|
const chunks = [];
|
|
121
168
|
let idleTimer;
|
|
122
169
|
let settled = false;
|
|
170
|
+
let onAbort;
|
|
171
|
+
const cleanupAbort = () => {
|
|
172
|
+
if (signal && onAbort) {
|
|
173
|
+
signal.removeEventListener("abort", onAbort);
|
|
174
|
+
}
|
|
175
|
+
onAbort = undefined;
|
|
176
|
+
};
|
|
123
177
|
const finish = (value) => {
|
|
124
178
|
if (settled)
|
|
125
179
|
return;
|
|
126
180
|
settled = true;
|
|
181
|
+
cleanupAbort();
|
|
127
182
|
if (idleTimer)
|
|
128
183
|
clearTimeout(idleTimer);
|
|
129
|
-
socket
|
|
184
|
+
socket?.destroy();
|
|
130
185
|
resolve(value);
|
|
131
186
|
};
|
|
132
187
|
const fail = (err) => {
|
|
133
188
|
if (settled)
|
|
134
189
|
return;
|
|
135
190
|
settled = true;
|
|
191
|
+
cleanupAbort();
|
|
136
192
|
if (idleTimer)
|
|
137
193
|
clearTimeout(idleTimer);
|
|
138
|
-
socket
|
|
194
|
+
socket?.destroy();
|
|
139
195
|
reject(err);
|
|
140
196
|
};
|
|
141
|
-
|
|
142
|
-
|
|
197
|
+
if (signal?.aborted) {
|
|
198
|
+
fail(abortError());
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const sock = net.createConnection({ host, port }, () => {
|
|
202
|
+
sock.write(command, "utf-8");
|
|
143
203
|
});
|
|
144
|
-
socket
|
|
145
|
-
|
|
204
|
+
socket = sock;
|
|
205
|
+
sock.setTimeout(timeout);
|
|
206
|
+
sock.on("data", (chunk) => {
|
|
146
207
|
chunks.push(chunk);
|
|
147
208
|
// Reset idle timer — wait 250ms after last data before closing.
|
|
148
209
|
if (idleTimer)
|
|
149
210
|
clearTimeout(idleTimer);
|
|
150
211
|
idleTimer = setTimeout(() => {
|
|
151
|
-
|
|
212
|
+
sock.end();
|
|
152
213
|
}, 250);
|
|
153
214
|
});
|
|
154
|
-
|
|
215
|
+
sock.on("end", () => {
|
|
155
216
|
finish(Buffer.concat(chunks).toString("utf-8"));
|
|
156
217
|
});
|
|
157
|
-
|
|
218
|
+
sock.on("timeout", () => {
|
|
158
219
|
// If we have partial data, return it rather than failing.
|
|
159
220
|
if (chunks.length > 0) {
|
|
160
221
|
finish(Buffer.concat(chunks).toString("utf-8"));
|
|
@@ -163,7 +224,11 @@ export function tcpQuery(host, port, command, timeout) {
|
|
|
163
224
|
fail(new PrintError(`Query to ${host}:${port} timed out after ${timeout}ms`, "TIMEOUT"));
|
|
164
225
|
}
|
|
165
226
|
});
|
|
166
|
-
|
|
227
|
+
sock.on("error", (err) => fail(wrapError(err)));
|
|
228
|
+
if (signal) {
|
|
229
|
+
onAbort = () => fail(abortError());
|
|
230
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
231
|
+
}
|
|
167
232
|
});
|
|
168
233
|
}
|
|
169
234
|
// ─── One-shot print function ─────────────────────────────────────────────────
|
|
@@ -186,8 +251,11 @@ export async function print(zpl, config) {
|
|
|
186
251
|
const cfg = resolveConfig(config);
|
|
187
252
|
let lastError;
|
|
188
253
|
for (let attempt = 0; attempt <= cfg.maxRetries; attempt++) {
|
|
254
|
+
if (cfg.signal?.aborted) {
|
|
255
|
+
throw abortError();
|
|
256
|
+
}
|
|
189
257
|
try {
|
|
190
|
-
return await tcpSend(cfg.host, cfg.port, zpl, cfg.timeout);
|
|
258
|
+
return await tcpSend(cfg.host, cfg.port, zpl, cfg.timeout, cfg.signal);
|
|
191
259
|
}
|
|
192
260
|
catch (err) {
|
|
193
261
|
lastError = wrapError(err);
|
|
@@ -201,7 +269,7 @@ export async function print(zpl, config) {
|
|
|
201
269
|
throw lastError;
|
|
202
270
|
if (attempt < cfg.maxRetries) {
|
|
203
271
|
const delay = cfg.retryDelay * Math.pow(2, attempt);
|
|
204
|
-
await sleep(delay);
|
|
272
|
+
await sleep(delay, cfg.signal);
|
|
205
273
|
}
|
|
206
274
|
}
|
|
207
275
|
}
|
|
@@ -233,7 +301,7 @@ export class TcpPrinter {
|
|
|
233
301
|
}
|
|
234
302
|
// ── Internal helpers ───────────────────────────────────────────────────
|
|
235
303
|
/** Ensure a live connection exists, creating one if needed. */
|
|
236
|
-
async ensureConnected() {
|
|
304
|
+
async ensureConnected(signal) {
|
|
237
305
|
if (this.closed) {
|
|
238
306
|
throw new PrintError("Printer connection has been closed", "UNKNOWN");
|
|
239
307
|
}
|
|
@@ -245,6 +313,13 @@ export class TcpPrinter {
|
|
|
245
313
|
return this.socket;
|
|
246
314
|
}
|
|
247
315
|
this.connecting = new Promise((resolve, reject) => {
|
|
316
|
+
let onAbort;
|
|
317
|
+
const cleanupAbort = () => {
|
|
318
|
+
if (signal && onAbort) {
|
|
319
|
+
signal.removeEventListener("abort", onAbort);
|
|
320
|
+
}
|
|
321
|
+
onAbort = undefined;
|
|
322
|
+
};
|
|
248
323
|
const sock = net.createConnection({ host: this.config.host, port: this.config.port }, () => {
|
|
249
324
|
sock.setNoDelay(true);
|
|
250
325
|
sock.setKeepAlive(true, 60_000);
|
|
@@ -257,20 +332,41 @@ export class TcpPrinter {
|
|
|
257
332
|
sock.on("close", () => { this.socket = null; });
|
|
258
333
|
this.socket = sock;
|
|
259
334
|
this.connecting = null;
|
|
335
|
+
cleanupAbort();
|
|
260
336
|
resolve();
|
|
261
337
|
});
|
|
338
|
+
if (signal?.aborted) {
|
|
339
|
+
cleanupAbort();
|
|
340
|
+
sock.destroy();
|
|
341
|
+
this.socket = null;
|
|
342
|
+
this.connecting = null;
|
|
343
|
+
reject(abortError());
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
262
346
|
sock.setTimeout(this.config.timeout);
|
|
263
347
|
sock.on("timeout", () => {
|
|
264
348
|
sock.destroy();
|
|
265
349
|
this.socket = null;
|
|
266
350
|
this.connecting = null;
|
|
351
|
+
cleanupAbort();
|
|
267
352
|
reject(new PrintError(`Connection to ${this.config.host}:${this.config.port} timed out`, "TIMEOUT"));
|
|
268
353
|
});
|
|
269
354
|
sock.on("error", (err) => {
|
|
270
355
|
this.socket = null;
|
|
271
356
|
this.connecting = null;
|
|
357
|
+
cleanupAbort();
|
|
272
358
|
reject(wrapError(err));
|
|
273
359
|
});
|
|
360
|
+
if (signal) {
|
|
361
|
+
onAbort = () => {
|
|
362
|
+
sock.destroy();
|
|
363
|
+
this.socket = null;
|
|
364
|
+
this.connecting = null;
|
|
365
|
+
cleanupAbort();
|
|
366
|
+
reject(abortError());
|
|
367
|
+
};
|
|
368
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
369
|
+
}
|
|
274
370
|
});
|
|
275
371
|
await this.connecting;
|
|
276
372
|
return this.socket;
|
|
@@ -281,13 +377,36 @@ export class TcpPrinter {
|
|
|
281
377
|
*
|
|
282
378
|
* Falls back to a fresh connection if the existing one is broken.
|
|
283
379
|
*/
|
|
284
|
-
print(zpl) {
|
|
380
|
+
print(zpl, opts) {
|
|
285
381
|
const job = this.writeQueue.then(async () => {
|
|
382
|
+
if (opts?.signal?.aborted) {
|
|
383
|
+
throw abortError();
|
|
384
|
+
}
|
|
286
385
|
const start = performance.now();
|
|
287
386
|
const buf = Buffer.from(zpl, "utf-8");
|
|
288
|
-
const sock = await this.ensureConnected();
|
|
387
|
+
const sock = await this.ensureConnected(opts?.signal);
|
|
289
388
|
return new Promise((resolve, reject) => {
|
|
389
|
+
let onAbort;
|
|
390
|
+
const cleanupAbort = () => {
|
|
391
|
+
if (opts?.signal && onAbort) {
|
|
392
|
+
opts.signal.removeEventListener("abort", onAbort);
|
|
393
|
+
}
|
|
394
|
+
onAbort = undefined;
|
|
395
|
+
};
|
|
396
|
+
if (opts?.signal?.aborted) {
|
|
397
|
+
cleanupAbort();
|
|
398
|
+
reject(abortError());
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
if (opts?.signal) {
|
|
402
|
+
onAbort = () => {
|
|
403
|
+
cleanupAbort();
|
|
404
|
+
reject(abortError());
|
|
405
|
+
};
|
|
406
|
+
opts.signal.addEventListener("abort", onAbort, { once: true });
|
|
407
|
+
}
|
|
290
408
|
sock.write(buf, (err) => {
|
|
409
|
+
cleanupAbort();
|
|
291
410
|
if (err) {
|
|
292
411
|
this.socket = null;
|
|
293
412
|
reject(wrapError(err));
|
|
@@ -317,8 +436,8 @@ export class TcpPrinter {
|
|
|
317
436
|
* needs an idle-timeout-based read strategy that would interfere with the
|
|
318
437
|
* persistent socket's event handlers.
|
|
319
438
|
*/
|
|
320
|
-
async getStatus() {
|
|
321
|
-
const raw = await tcpQuery(this.config.host, this.config.port, "~HS", this.config.timeout);
|
|
439
|
+
async getStatus(opts) {
|
|
440
|
+
const raw = await tcpQuery(this.config.host, this.config.port, "~HS", this.config.timeout, opts?.signal);
|
|
322
441
|
return parseHostStatus(raw);
|
|
323
442
|
}
|
|
324
443
|
/**
|
|
@@ -331,8 +450,8 @@ export class TcpPrinter {
|
|
|
331
450
|
* requires an idle-timeout strategy that would interfere with the
|
|
332
451
|
* persistent socket's event handlers.
|
|
333
452
|
*/
|
|
334
|
-
async query(command) {
|
|
335
|
-
return tcpQuery(this.config.host, this.config.port, command, this.config.timeout);
|
|
453
|
+
async query(command, opts) {
|
|
454
|
+
return tcpQuery(this.config.host, this.config.port, command, this.config.timeout, opts?.signal);
|
|
336
455
|
}
|
|
337
456
|
/**
|
|
338
457
|
* Check whether the printer is reachable by attempting a TCP connection.
|
|
@@ -373,7 +492,8 @@ export class TcpPrinter {
|
|
|
373
492
|
* @param onProgress - Optional callback after each label.
|
|
374
493
|
* Return `false` (strictly) to abort the batch early.
|
|
375
494
|
* Any other return value (including `undefined`/`true`) continues normally.
|
|
376
|
-
* @returns The number of labels sent and the total.
|
|
495
|
+
* @returns The number of labels sent and the total. Includes `error` details
|
|
496
|
+
* when the batch stops mid-stream.
|
|
377
497
|
*
|
|
378
498
|
* @example
|
|
379
499
|
* ```ts
|
|
@@ -396,8 +516,33 @@ export class TcpPrinter {
|
|
|
396
516
|
const interval = opts?.statusInterval ?? 0;
|
|
397
517
|
let sent = 0;
|
|
398
518
|
for (const label of labels) {
|
|
399
|
-
|
|
400
|
-
|
|
519
|
+
if (opts?.signal?.aborted) {
|
|
520
|
+
return {
|
|
521
|
+
sent,
|
|
522
|
+
total,
|
|
523
|
+
error: {
|
|
524
|
+
index: sent,
|
|
525
|
+
code: "UNKNOWN",
|
|
526
|
+
message: "Operation aborted",
|
|
527
|
+
},
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
try {
|
|
531
|
+
await this.print(label, { signal: opts?.signal });
|
|
532
|
+
sent++;
|
|
533
|
+
}
|
|
534
|
+
catch (err) {
|
|
535
|
+
const wrapped = wrapError(err);
|
|
536
|
+
return {
|
|
537
|
+
sent,
|
|
538
|
+
total,
|
|
539
|
+
error: {
|
|
540
|
+
index: sent,
|
|
541
|
+
code: wrapped.code,
|
|
542
|
+
message: wrapped.message,
|
|
543
|
+
},
|
|
544
|
+
};
|
|
545
|
+
}
|
|
401
546
|
let status;
|
|
402
547
|
if (interval > 0 && sent % interval === 0) {
|
|
403
548
|
try {
|
|
@@ -425,15 +570,18 @@ export class TcpPrinter {
|
|
|
425
570
|
* @param timeout - Maximum wait time in milliseconds (default: 30000).
|
|
426
571
|
* @throws {PrintError} with code `TIMEOUT` if the timeout is exceeded.
|
|
427
572
|
*/
|
|
428
|
-
async waitForCompletion(pollInterval = 500, timeout = 30_000) {
|
|
573
|
+
async waitForCompletion(pollInterval = 500, timeout = 30_000, signal) {
|
|
429
574
|
const start = performance.now();
|
|
430
575
|
const deadline = start + timeout;
|
|
431
576
|
while (true) {
|
|
577
|
+
if (signal?.aborted) {
|
|
578
|
+
throw abortError();
|
|
579
|
+
}
|
|
432
580
|
if (performance.now() >= deadline) {
|
|
433
581
|
throw new PrintError(`Printer did not finish within ${timeout}ms`, "TIMEOUT");
|
|
434
582
|
}
|
|
435
583
|
try {
|
|
436
|
-
const status = await this.getStatus();
|
|
584
|
+
const status = await this.getStatus({ signal });
|
|
437
585
|
if (status.formatsInBuffer === 0 && status.labelsRemaining === 0) {
|
|
438
586
|
return;
|
|
439
587
|
}
|
|
@@ -445,7 +593,24 @@ export class TcpPrinter {
|
|
|
445
593
|
if (remaining <= 0) {
|
|
446
594
|
throw new PrintError(`Printer did not finish within ${timeout}ms`, "TIMEOUT");
|
|
447
595
|
}
|
|
448
|
-
await new Promise((resolve) =>
|
|
596
|
+
await new Promise((resolve, reject) => {
|
|
597
|
+
const waitMs = Math.min(pollInterval, remaining);
|
|
598
|
+
const timer = setTimeout(() => {
|
|
599
|
+
if (signal && onAbort) {
|
|
600
|
+
signal.removeEventListener("abort", onAbort);
|
|
601
|
+
}
|
|
602
|
+
resolve(undefined);
|
|
603
|
+
}, waitMs);
|
|
604
|
+
let onAbort;
|
|
605
|
+
if (signal) {
|
|
606
|
+
onAbort = () => {
|
|
607
|
+
clearTimeout(timer);
|
|
608
|
+
signal.removeEventListener("abort", onAbort);
|
|
609
|
+
reject(abortError());
|
|
610
|
+
};
|
|
611
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
612
|
+
}
|
|
613
|
+
});
|
|
449
614
|
}
|
|
450
615
|
}
|
|
451
616
|
/** Close the persistent connection. Safe to call multiple times. */
|
|
@@ -479,10 +644,17 @@ export class TcpPrinter {
|
|
|
479
644
|
resolve();
|
|
480
645
|
}, 2000);
|
|
481
646
|
forceTimer.unref();
|
|
482
|
-
|
|
647
|
+
try {
|
|
648
|
+
sock.end(() => {
|
|
649
|
+
clearTimeout(forceTimer);
|
|
650
|
+
resolve();
|
|
651
|
+
});
|
|
652
|
+
}
|
|
653
|
+
catch {
|
|
483
654
|
clearTimeout(forceTimer);
|
|
655
|
+
sock.destroy();
|
|
484
656
|
resolve();
|
|
485
|
-
}
|
|
657
|
+
}
|
|
486
658
|
});
|
|
487
659
|
}
|
|
488
660
|
}
|
|
@@ -621,7 +793,8 @@ export async function printValidated(zpl, config, validateOpts) {
|
|
|
621
793
|
* @param opts - Optional batch options (e.g., status polling interval).
|
|
622
794
|
* @param onProgress - Optional callback after each label.
|
|
623
795
|
* Return `false` (strictly) to abort the batch early.
|
|
624
|
-
* @returns The number of labels sent and the total.
|
|
796
|
+
* @returns The number of labels sent and the total. Includes `error` details
|
|
797
|
+
* when the batch stops mid-stream.
|
|
625
798
|
*
|
|
626
799
|
* @example
|
|
627
800
|
* ```ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAyH9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,GAAE,WAAgB,GACvB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAyH9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,GAAE,WAAgB,GACvB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CA2UzD"}
|
package/dist/proxy.js
CHANGED
|
@@ -153,6 +153,16 @@ export async function createPrintProxy(config = {}) {
|
|
|
153
153
|
const allowed = config.allowedPrinters;
|
|
154
154
|
const allowedPorts = config.allowedPorts ?? [9100];
|
|
155
155
|
const maxConnections = config.maxConnections ?? 50;
|
|
156
|
+
const wsRateLimit = (() => {
|
|
157
|
+
const rl = config.wsRateLimitPerClient;
|
|
158
|
+
if (!rl)
|
|
159
|
+
return undefined;
|
|
160
|
+
if (!Number.isInteger(rl.maxRequests) || rl.maxRequests <= 0)
|
|
161
|
+
return undefined;
|
|
162
|
+
if (!Number.isInteger(rl.windowMs) || rl.windowMs <= 0)
|
|
163
|
+
return undefined;
|
|
164
|
+
return rl;
|
|
165
|
+
})();
|
|
156
166
|
// Pre-compile glob patterns into regexes once at startup.
|
|
157
167
|
const compiledAllowlist = (allowed ?? []).map((pattern) => {
|
|
158
168
|
if (!pattern.includes("*"))
|
|
@@ -301,6 +311,7 @@ export async function createPrintProxy(config = {}) {
|
|
|
301
311
|
});
|
|
302
312
|
wss.on("connection", (ws) => {
|
|
303
313
|
let alive = true;
|
|
314
|
+
const requestTimestamps = [];
|
|
304
315
|
ws.on("pong", () => { alive = true; });
|
|
305
316
|
const heartbeat = setInterval(() => {
|
|
306
317
|
if (!alive) {
|
|
@@ -326,27 +337,54 @@ export async function createPrintProxy(config = {}) {
|
|
|
326
337
|
wsSend(ws, { ok: false, error: "Invalid JSON" });
|
|
327
338
|
return;
|
|
328
339
|
}
|
|
340
|
+
const correlationId = parsed.id;
|
|
341
|
+
const withId = (obj) => {
|
|
342
|
+
if (typeof correlationId === "string" || typeof correlationId === "number") {
|
|
343
|
+
return { ...obj, id: correlationId };
|
|
344
|
+
}
|
|
345
|
+
return obj;
|
|
346
|
+
};
|
|
347
|
+
if (correlationId !== undefined &&
|
|
348
|
+
typeof correlationId !== "string" &&
|
|
349
|
+
typeof correlationId !== "number") {
|
|
350
|
+
wsSend(ws, withId({ ok: false, error: '"id" must be a string or number when provided' }));
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
if (wsRateLimit) {
|
|
354
|
+
const now = Date.now();
|
|
355
|
+
while (requestTimestamps.length > 0 && now - requestTimestamps[0] >= wsRateLimit.windowMs) {
|
|
356
|
+
requestTimestamps.shift();
|
|
357
|
+
}
|
|
358
|
+
if (requestTimestamps.length >= wsRateLimit.maxRequests) {
|
|
359
|
+
wsSend(ws, withId({
|
|
360
|
+
ok: false,
|
|
361
|
+
error: `Rate limit exceeded: max ${wsRateLimit.maxRequests} requests per ${wsRateLimit.windowMs}ms`,
|
|
362
|
+
}));
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
requestTimestamps.push(now);
|
|
366
|
+
}
|
|
329
367
|
const msgType = parsed.type;
|
|
330
368
|
if (typeof msgType !== "string" || !["print", "status"].includes(msgType)) {
|
|
331
|
-
wsSend(ws, { ok: false, error: 'Missing or invalid "type" field (expected "print" or "status")' });
|
|
369
|
+
wsSend(ws, withId({ ok: false, error: 'Missing or invalid "type" field (expected "print" or "status")' }));
|
|
332
370
|
return;
|
|
333
371
|
}
|
|
334
372
|
const printer = parsed.printer;
|
|
335
373
|
if (typeof printer !== "string" || !printer) {
|
|
336
|
-
wsSend(ws, { ok: false, error: 'Missing required field "printer"' });
|
|
374
|
+
wsSend(ws, withId({ ok: false, error: 'Missing required field "printer"' }));
|
|
337
375
|
return;
|
|
338
376
|
}
|
|
339
377
|
if (!isPrinterAllowed(printer, compiledAllowlist)) {
|
|
340
|
-
wsSend(ws, { ok: false, error: `Printer "${printer}" is not in the allowed list` });
|
|
378
|
+
wsSend(ws, withId({ ok: false, error: `Printer "${printer}" is not in the allowed list` }));
|
|
341
379
|
return;
|
|
342
380
|
}
|
|
343
381
|
const reqPort = typeof parsed.port === "number" ? parsed.port : 9100;
|
|
344
382
|
if (!Number.isInteger(reqPort) || reqPort < 1 || reqPort > 65535) {
|
|
345
|
-
wsSend(ws, { ok: false, error: "Port must be an integer between 1 and 65535" });
|
|
383
|
+
wsSend(ws, withId({ ok: false, error: "Port must be an integer between 1 and 65535" }));
|
|
346
384
|
return;
|
|
347
385
|
}
|
|
348
386
|
if (!isPortAllowed(reqPort, allowedPorts)) {
|
|
349
|
-
wsSend(ws, { ok: false, error: `Port ${reqPort} is not in the allowed list` });
|
|
387
|
+
wsSend(ws, withId({ ok: false, error: `Port ${reqPort} is not in the allowed list` }));
|
|
350
388
|
return;
|
|
351
389
|
}
|
|
352
390
|
const timeout = typeof parsed.timeout === "number"
|
|
@@ -356,22 +394,22 @@ export async function createPrintProxy(config = {}) {
|
|
|
356
394
|
if (msgType === "print") {
|
|
357
395
|
const zpl = parsed.zpl;
|
|
358
396
|
if (typeof zpl !== "string" || !zpl) {
|
|
359
|
-
wsSend(ws, { ok: false, error: 'Missing required field "zpl"' });
|
|
397
|
+
wsSend(ws, withId({ ok: false, error: 'Missing required field "zpl"' }));
|
|
360
398
|
return;
|
|
361
399
|
}
|
|
362
400
|
const result = await print(zpl, { host: printer, port: reqPort, timeout });
|
|
363
|
-
wsSend(ws, { ok: true, ...result });
|
|
401
|
+
wsSend(ws, withId({ ok: true, ...result }));
|
|
364
402
|
}
|
|
365
403
|
else {
|
|
366
404
|
// status
|
|
367
405
|
const rawResp = await tcpQuery(printer, reqPort, "~HS", timeout);
|
|
368
406
|
const status = parseHostStatus(rawResp);
|
|
369
|
-
wsSend(ws, { ok: true, ...status });
|
|
407
|
+
wsSend(ws, withId({ ok: true, ...status }));
|
|
370
408
|
}
|
|
371
409
|
}
|
|
372
410
|
catch (err) {
|
|
373
411
|
// Sanitize: don't leak internal IPs/ports from TCP errors.
|
|
374
|
-
wsSend(ws, { ok: false, error: "Failed to communicate with printer" });
|
|
412
|
+
wsSend(ws, withId({ ok: false, error: "Failed to communicate with printer" }));
|
|
375
413
|
}
|
|
376
414
|
})().catch((err) => {
|
|
377
415
|
// Shouldn't happen — inner handler has its own try/catch.
|
package/dist/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export interface PrinterConfig {
|
|
|
10
10
|
maxRetries?: number;
|
|
11
11
|
/** Base delay between retries in milliseconds; grows with exponential backoff (default: 500). */
|
|
12
12
|
retryDelay?: number;
|
|
13
|
+
/** Optional abort signal for cooperative cancellation. */
|
|
14
|
+
signal?: AbortSignal;
|
|
13
15
|
}
|
|
14
16
|
/** Outcome of a print operation. */
|
|
15
17
|
export interface PrintResult {
|
|
@@ -117,6 +119,14 @@ export interface ProxyConfig {
|
|
|
117
119
|
* Defaults to 50. New connections are rejected when the limit is reached.
|
|
118
120
|
*/
|
|
119
121
|
maxConnections?: number;
|
|
122
|
+
/**
|
|
123
|
+
* Optional per-client WebSocket rate limit.
|
|
124
|
+
* When set, each connection is limited to `maxRequests` per `windowMs`.
|
|
125
|
+
*/
|
|
126
|
+
wsRateLimitPerClient?: {
|
|
127
|
+
maxRequests: number;
|
|
128
|
+
windowMs: number;
|
|
129
|
+
};
|
|
120
130
|
/** Maximum request body size in bytes (default: 1 MiB). */
|
|
121
131
|
maxPayloadSize?: number;
|
|
122
132
|
/**
|
|
@@ -148,6 +158,8 @@ export interface BatchOptions {
|
|
|
148
158
|
* When undefined or 0, no status polling is performed.
|
|
149
159
|
*/
|
|
150
160
|
statusInterval?: number;
|
|
161
|
+
/** Optional abort signal for cooperative cancellation. */
|
|
162
|
+
signal?: AbortSignal;
|
|
151
163
|
}
|
|
152
164
|
/** Progress update emitted after each label in a batch. */
|
|
153
165
|
export interface BatchProgress {
|
|
@@ -164,6 +176,16 @@ export interface BatchResult {
|
|
|
164
176
|
sent: number;
|
|
165
177
|
/** Total number of labels in the batch. */
|
|
166
178
|
total: number;
|
|
179
|
+
/**
|
|
180
|
+
* Present when the batch stops mid-stream due to an error.
|
|
181
|
+
* `sent` indicates how many labels were accepted before failure.
|
|
182
|
+
*/
|
|
183
|
+
error?: {
|
|
184
|
+
/** 0-based index of the label that failed (or was about to send when aborted). */
|
|
185
|
+
index: number;
|
|
186
|
+
code: PrintErrorCode;
|
|
187
|
+
message: string;
|
|
188
|
+
};
|
|
167
189
|
}
|
|
168
190
|
/** Well-known error codes surfaced by the print client. */
|
|
169
191
|
export type PrintErrorCode = "CONNECTION_REFUSED" | "TIMEOUT" | "HOST_NOT_FOUND" | "BROKEN_PIPE" | "CONNECTION_RESET" | "VALIDATION_FAILED" | "UNKNOWN";
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAiQhF,kEAAkE;AAClE,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnB,IAAI,CAAiB;IAErC,YAAY,OAAe,EAAE,IAAoB,EAAE,KAAe;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zpl-toolchain/print",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "Print client for sending ZPL to Zebra and ZPL-compatible printers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc",
|
|
29
|
-
"test": "node --test dist/test/*.js",
|
|
29
|
+
"test": "node --test --test-timeout=30000 dist/test/*.js",
|
|
30
30
|
"prepublishOnly": "npm run build"
|
|
31
31
|
},
|
|
32
32
|
"keywords": [
|