@zpl-toolchain/print 0.1.14 → 0.1.16

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 CHANGED
@@ -77,6 +77,25 @@ await printer.close();
77
77
  | `waitForCompletion(pollInterval?, timeoutMs?, signal?)` | Poll until all labels are printed, timeout, or abort |
78
78
  | `close()` | Gracefully close the connection |
79
79
 
80
+ ### Status parsing modes
81
+
82
+ `parseHostStatus()` now uses strict semantics by default:
83
+ - requires exactly 3 `STX/ETX` frames for `~HS`
84
+ - requires expected field counts per line
85
+ - throws on malformed or truncated responses
86
+
87
+ Use explicit helpers when you need mode control:
88
+
89
+ ```ts
90
+ import {
91
+ parseHostStatus, // strict default
92
+ parseHostStatusStrict, // explicit strict
93
+ parseHostStatusLenient, // best-effort defaults
94
+ } from "@zpl-toolchain/print";
95
+ ```
96
+
97
+ Lenient mode is useful for dashboards or degraded environments where partial responses are acceptable.
98
+
80
99
  ### Proxy — `@zpl-toolchain/print/proxy`
81
100
 
82
101
  ```ts
@@ -115,10 +134,19 @@ All types are exported from the main entry point:
115
134
  - **`PrintResult`** — success, bytesWritten, error details
116
135
  - **`PrinterStatus`** — 24-field parsed `~HS` response
117
136
  - **`PrintError`** — typed error with `code` (CONNECTION_REFUSED, TIMEOUT, etc.)
118
- - **`BatchOptions`** / **`BatchProgress`** / **`BatchResult`** — batch printing control (including partial error details where `error.index` is the 0-based failed label index)
137
+ - **`BatchOptions`** / **`BatchProgress`** / **`BatchResult`** — batch printing control (including `jobId`, `phase`, and partial error details where `error.index` is the 0-based failed label index)
138
+ - **`JobId`** / **`JobPhase`** / **`createJobId()`** — job lifecycle for correlation and deterministic completion (see [Print Client Guide](https://github.com/trevordcampbell/zpl-toolchain/blob/main/docs/PRINT_CLIENT.md#job-lifecycle-f13))
119
139
  - **`ProxyConfig`** — proxy server configuration
120
140
  - **`ValidateOptions`** — options for validated printing
121
141
 
142
+ ## Framing semantics (`tcpQuery`)
143
+
144
+ For known framed Zebra commands:
145
+ - `~HS` expects **3** `STX/ETX` frames
146
+ - `~HI` expects **1** `STX/ETX` frame
147
+
148
+ For these commands, `tcpQuery()` uses strict byte-level frame parsing and fails on truncated/wrong-frame-count responses. Unknown commands fall back to idle-based completion.
149
+
122
150
  ## Requirements
123
151
 
124
152
  - **Node.js 18+** (uses `node:net` for TCP)
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { PrinterConfig, PrintResult, PrinterStatus, ValidateOptions, BatchOptions, BatchProgress, BatchResult } from "./types.js";
2
- export { parseHostStatus } from "./status.js";
3
- export { PrintError, type PrinterConfig, type PrintResult, type PrinterStatus, type PrintErrorCode, type ValidateOptions, type BatchOptions, type BatchProgress, type BatchResult, } from "./types.js";
2
+ export { parseHostStatus, parseHostStatusLenient, parseHostStatusStrict, } from "./status.js";
3
+ export { PrintError, createJobId, type PrinterConfig, type PrintResult, type PrinterStatus, type PrintMode, type PrintErrorCode, type StatusParseMode, type ValidateOptions, type BatchOptions, type BatchProgress, type BatchResult, type JobId, type JobPhase, } from "./types.js";
4
4
  /**
5
5
  * Open a TCP socket, write `command`, read the response until the socket is
6
- * idle for a short period, then close and return the response.
6
+ * complete, then close and return the response.
7
7
  *
8
8
  * Exported so that `proxy.ts` can re-use it instead of duplicating the logic.
9
9
  */
@@ -62,9 +62,8 @@ export declare class TcpPrinter {
62
62
  * {@link PrinterStatus} object.
63
63
  *
64
64
  * **Note:** This opens a separate short-lived TCP connection for the query
65
- * rather than using the persistent connection, because the ~HS response
66
- * needs an idle-timeout-based read strategy that would interfere with the
67
- * persistent socket's event handlers.
65
+ * rather than using the persistent connection, because framed response
66
+ * handling uses dedicated per-query readers.
68
67
  */
69
68
  getStatus(opts?: {
70
69
  signal?: AbortSignal;
@@ -75,9 +74,8 @@ export declare class TcpPrinter {
75
74
  * Useful for querying ~HI (Host Identification), ~HM (Host Memory), etc.
76
75
  *
77
76
  * **Note:** This opens a separate short-lived TCP connection for each query
78
- * rather than using the persistent connection, because reading a response
79
- * requires an idle-timeout strategy that would interfere with the
80
- * persistent socket's event handlers.
77
+ * rather than using the persistent connection, because response handling uses
78
+ * dedicated per-query readers.
81
79
  */
82
80
  query(command: string, opts?: {
83
81
  signal?: AbortSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,13 +1,17 @@
1
1
  import net from "node:net";
2
+ import { createJobId } from "./types.js";
2
3
  import { PrintError } from "./types.js";
3
- import { parseHostStatus } from "./status.js";
4
- export { parseHostStatus } from "./status.js";
5
- export { PrintError, } from "./types.js";
4
+ import { parseHostStatus, } from "./status.js";
5
+ export { parseHostStatus, parseHostStatusLenient, parseHostStatusStrict, } from "./status.js";
6
+ export { PrintError, createJobId, } from "./types.js";
6
7
  // ─── Defaults ────────────────────────────────────────────────────────────────
7
8
  const DEFAULT_PORT = 9100;
8
9
  const DEFAULT_TIMEOUT = 5_000;
9
10
  const DEFAULT_MAX_RETRIES = 2;
10
11
  const DEFAULT_RETRY_DELAY = 500;
12
+ const STX_BYTE = 0x02;
13
+ const ETX_BYTE = 0x03;
14
+ const DEFAULT_MAX_FRAME_SIZE = 1024;
11
15
  // ─── Error classification ────────────────────────────────────────────────────
12
16
  function classifyError(err) {
13
17
  const code = err && typeof err === "object" && "code" in err
@@ -65,21 +69,25 @@ function sleep(ms, signal) {
65
69
  reject(abortError());
66
70
  return;
67
71
  }
68
- const timer = setTimeout(() => {
69
- if (signal && onAbort) {
70
- signal.removeEventListener("abort", onAbort);
71
- }
72
- resolve();
73
- }, ms);
74
72
  let onAbort;
75
73
  if (signal) {
76
74
  onAbort = () => {
77
- clearTimeout(timer);
78
75
  signal.removeEventListener("abort", onAbort);
79
76
  reject(abortError());
80
77
  };
81
78
  signal.addEventListener("abort", onAbort, { once: true });
79
+ if (signal.aborted) {
80
+ signal.removeEventListener("abort", onAbort);
81
+ reject(abortError());
82
+ return;
83
+ }
82
84
  }
85
+ const timer = setTimeout(() => {
86
+ if (signal && onAbort) {
87
+ signal.removeEventListener("abort", onAbort);
88
+ }
89
+ resolve();
90
+ }, ms);
83
91
  });
84
92
  }
85
93
  function abortError() {
@@ -157,7 +165,7 @@ function tcpSend(host, port, data, timeout, signal) {
157
165
  }
158
166
  /**
159
167
  * Open a TCP socket, write `command`, read the response until the socket is
160
- * idle for a short period, then close and return the response.
168
+ * complete, then close and return the response.
161
169
  *
162
170
  * Exported so that `proxy.ts` can re-use it instead of duplicating the logic.
163
171
  */
@@ -165,6 +173,11 @@ export function tcpQuery(host, port, command, timeout, signal) {
165
173
  return new Promise((resolve, reject) => {
166
174
  let socket = null;
167
175
  const chunks = [];
176
+ const trimmedCommand = command.trim().toUpperCase();
177
+ const expectedFrames = trimmedCommand === "~HS" ? 3 : trimmedCommand === "~HI" ? 1 : 0;
178
+ let readingFrame = false;
179
+ let currentFrame = [];
180
+ const framedPayloads = [];
168
181
  let idleTimer;
169
182
  let settled = false;
170
183
  let onAbort;
@@ -205,7 +218,34 @@ export function tcpQuery(host, port, command, timeout, signal) {
205
218
  sock.setTimeout(timeout);
206
219
  sock.on("data", (chunk) => {
207
220
  chunks.push(chunk);
208
- // Reset idle timer — wait 250ms after last data before closing.
221
+ if (expectedFrames > 0) {
222
+ for (const byte of chunk) {
223
+ if (!readingFrame) {
224
+ if (byte === STX_BYTE) {
225
+ readingFrame = true;
226
+ currentFrame = [];
227
+ }
228
+ continue;
229
+ }
230
+ if (byte === ETX_BYTE) {
231
+ framedPayloads.push(Buffer.from(currentFrame));
232
+ readingFrame = false;
233
+ currentFrame = [];
234
+ if (framedPayloads.length === expectedFrames) {
235
+ sock.end();
236
+ return;
237
+ }
238
+ continue;
239
+ }
240
+ currentFrame.push(byte);
241
+ if (currentFrame.length > DEFAULT_MAX_FRAME_SIZE) {
242
+ fail(new PrintError(`Query ${trimmedCommand} frame exceeded ${DEFAULT_MAX_FRAME_SIZE} bytes`, "UNKNOWN"));
243
+ return;
244
+ }
245
+ }
246
+ return;
247
+ }
248
+ // Fallback for unframed/unknown responses: wait briefly for stream idle.
209
249
  if (idleTimer)
210
250
  clearTimeout(idleTimer);
211
251
  idleTimer = setTimeout(() => {
@@ -213,10 +253,31 @@ export function tcpQuery(host, port, command, timeout, signal) {
213
253
  }, 250);
214
254
  });
215
255
  sock.on("end", () => {
256
+ if (expectedFrames > 0) {
257
+ if (readingFrame) {
258
+ fail(new PrintError(`Query ${trimmedCommand} ended mid-frame before ETX`, "UNKNOWN"));
259
+ return;
260
+ }
261
+ if (framedPayloads.length !== expectedFrames) {
262
+ fail(new PrintError(`Query ${trimmedCommand} returned ${framedPayloads.length} frames (expected ${expectedFrames})`, "UNKNOWN"));
263
+ return;
264
+ }
265
+ const framed = framedPayloads
266
+ .map((payload) => `\x02${payload.toString("utf-8")}\x03`)
267
+ .join("\r\n");
268
+ finish(framed);
269
+ return;
270
+ }
216
271
  finish(Buffer.concat(chunks).toString("utf-8"));
217
272
  });
218
273
  sock.on("timeout", () => {
219
- // If we have partial data, return it rather than failing.
274
+ // For known framed responses, timeout before expected frames means
275
+ // response truncation.
276
+ if (expectedFrames > 0 && framedPayloads.length < expectedFrames) {
277
+ fail(new PrintError(`Query to ${host}:${port} timed out before receiving complete ${trimmedCommand} response`, "TIMEOUT"));
278
+ return;
279
+ }
280
+ // Fallback behavior for generic commands: return partial data if any.
220
281
  if (chunks.length > 0) {
221
282
  finish(Buffer.concat(chunks).toString("utf-8"));
222
283
  }
@@ -432,9 +493,8 @@ export class TcpPrinter {
432
493
  * {@link PrinterStatus} object.
433
494
  *
434
495
  * **Note:** This opens a separate short-lived TCP connection for the query
435
- * rather than using the persistent connection, because the ~HS response
436
- * needs an idle-timeout-based read strategy that would interfere with the
437
- * persistent socket's event handlers.
496
+ * rather than using the persistent connection, because framed response
497
+ * handling uses dedicated per-query readers.
438
498
  */
439
499
  async getStatus(opts) {
440
500
  const raw = await tcpQuery(this.config.host, this.config.port, "~HS", this.config.timeout, opts?.signal);
@@ -446,9 +506,8 @@ export class TcpPrinter {
446
506
  * Useful for querying ~HI (Host Identification), ~HM (Host Memory), etc.
447
507
  *
448
508
  * **Note:** This opens a separate short-lived TCP connection for each query
449
- * rather than using the persistent connection, because reading a response
450
- * requires an idle-timeout strategy that would interfere with the
451
- * persistent socket's event handlers.
509
+ * rather than using the persistent connection, because response handling uses
510
+ * dedicated per-query readers.
452
511
  */
453
512
  async query(command, opts) {
454
513
  return tcpQuery(this.config.host, this.config.port, command, this.config.timeout, opts?.signal);
@@ -512,14 +571,38 @@ export class TcpPrinter {
512
571
  * ```
513
572
  */
514
573
  async printBatch(labels, opts, onProgress) {
574
+ const jobId = createJobId();
515
575
  const total = labels.length;
516
576
  const interval = opts?.statusInterval ?? 0;
517
577
  let sent = 0;
578
+ if (onProgress) {
579
+ const shouldContinue = onProgress({
580
+ sent: 0,
581
+ total,
582
+ phase: "queued",
583
+ jobId,
584
+ });
585
+ if (shouldContinue === false) {
586
+ onProgress({ sent: 0, total, phase: "aborted", jobId });
587
+ return {
588
+ sent: 0,
589
+ total,
590
+ jobId,
591
+ error: {
592
+ index: 0,
593
+ code: "UNKNOWN",
594
+ message: "Operation aborted",
595
+ },
596
+ };
597
+ }
598
+ }
518
599
  for (const label of labels) {
519
600
  if (opts?.signal?.aborted) {
601
+ onProgress?.({ sent, total, phase: "aborted", jobId });
520
602
  return {
521
603
  sent,
522
604
  total,
605
+ jobId,
523
606
  error: {
524
607
  index: sent,
525
608
  code: "UNKNOWN",
@@ -533,9 +616,11 @@ export class TcpPrinter {
533
616
  }
534
617
  catch (err) {
535
618
  const wrapped = wrapError(err);
619
+ onProgress?.({ sent, total, phase: "failed", jobId });
536
620
  return {
537
621
  sent,
538
622
  total,
623
+ jobId,
539
624
  error: {
540
625
  index: sent,
541
626
  code: wrapped.code,
@@ -552,13 +637,25 @@ export class TcpPrinter {
552
637
  // Status polling is best-effort — don't abort the batch on query failure.
553
638
  }
554
639
  }
640
+ const phase = sent < total ? "sending" : "sent";
555
641
  if (onProgress) {
556
- const shouldContinue = onProgress({ sent, total, status });
557
- if (shouldContinue === false)
558
- break;
642
+ const shouldContinue = onProgress({ sent, total, status, phase, jobId });
643
+ if (shouldContinue === false) {
644
+ onProgress({ sent, total, phase: "aborted", jobId });
645
+ return {
646
+ sent,
647
+ total,
648
+ jobId,
649
+ error: {
650
+ index: sent,
651
+ code: "UNKNOWN",
652
+ message: "Operation aborted",
653
+ },
654
+ };
655
+ }
559
656
  }
560
657
  }
561
- return { sent, total };
658
+ return { sent, total, jobId };
562
659
  }
563
660
  /**
564
661
  * Poll the printer until all queued labels have been printed.
@@ -573,15 +670,24 @@ export class TcpPrinter {
573
670
  async waitForCompletion(pollInterval = 500, timeout = 30_000, signal) {
574
671
  const start = performance.now();
575
672
  const deadline = start + timeout;
673
+ let lastStatus;
576
674
  while (true) {
577
675
  if (signal?.aborted) {
578
676
  throw abortError();
579
677
  }
580
678
  if (performance.now() >= deadline) {
581
- throw new PrintError(`Printer did not finish within ${timeout}ms`, "TIMEOUT");
679
+ throw new PrintError(lastStatus
680
+ ? `Printer did not finish within ${timeout}ms (formatsInBuffer=${lastStatus.formatsInBuffer}, labelsRemaining=${lastStatus.labelsRemaining})`
681
+ : `Printer did not finish within ${timeout}ms`, "TIMEOUT", undefined, lastStatus
682
+ ? {
683
+ formatsInBuffer: lastStatus.formatsInBuffer,
684
+ labelsRemaining: lastStatus.labelsRemaining,
685
+ }
686
+ : undefined);
582
687
  }
583
688
  try {
584
689
  const status = await this.getStatus({ signal });
690
+ lastStatus = status;
585
691
  if (status.formatsInBuffer === 0 && status.labelsRemaining === 0) {
586
692
  return;
587
693
  }
@@ -591,7 +697,14 @@ export class TcpPrinter {
591
697
  }
592
698
  const remaining = deadline - performance.now();
593
699
  if (remaining <= 0) {
594
- throw new PrintError(`Printer did not finish within ${timeout}ms`, "TIMEOUT");
700
+ throw new PrintError(lastStatus
701
+ ? `Printer did not finish within ${timeout}ms (formatsInBuffer=${lastStatus.formatsInBuffer}, labelsRemaining=${lastStatus.labelsRemaining})`
702
+ : `Printer did not finish within ${timeout}ms`, "TIMEOUT", undefined, lastStatus
703
+ ? {
704
+ formatsInBuffer: lastStatus.formatsInBuffer,
705
+ labelsRemaining: lastStatus.labelsRemaining,
706
+ }
707
+ : undefined);
595
708
  }
596
709
  await new Promise((resolve, reject) => {
597
710
  const waitMs = Math.min(pollInterval, remaining);
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/status.d.ts CHANGED
@@ -1,14 +1,25 @@
1
1
  import type { PrinterStatus } from "./types.js";
2
2
  /**
3
- * Parse a raw ~HS (Host Status) response string into a structured
3
+ * Strictly parse a raw ~HS response string.
4
+ *
5
+ * Requires exactly 3 STX/ETX frames and numeric parseability for all expected
6
+ * fields. Throws an error on malformed/truncated responses.
7
+ */
8
+ export declare function parseHostStatusStrict(raw: string): PrinterStatus;
9
+ /**
10
+ * Leniently parse a raw ~HS response string into a structured
4
11
  * {@link PrinterStatus} object.
5
12
  *
6
- * The parser is lenient: it returns sensible defaults for fields it cannot
7
- * extract, so callers never need to worry about partial / malformed responses
8
- * in the field.
13
+ * Returns sensible defaults for fields it cannot extract.
14
+ */
15
+ export declare function parseHostStatusLenient(raw: string): PrinterStatus;
16
+ /**
17
+ * Parse a raw ~HS (Host Status) response string into a structured
18
+ * {@link PrinterStatus} object using strict framing and field validation.
9
19
  *
10
20
  * @param raw - The full ~HS response as received from the printer socket.
11
- * @returns A {@link PrinterStatus} with boolean flags and remaining-label count.
21
+ * @returns A fully parsed {@link PrinterStatus}.
22
+ * @throws Error when response framing or fields are malformed.
12
23
  */
13
24
  export declare function parseHostStatus(raw: string): PrinterStatus;
14
25
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqChD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA4E1D"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,YAAY,CAAC;AAgM3D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA4DhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAMjE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAE1D"}
package/dist/status.js CHANGED
@@ -12,6 +12,8 @@
12
12
  // ─────────────────────────────────────────────────────────────────────────────
13
13
  const STX = "\x02";
14
14
  const ETX = "\x03";
15
+ const HS_STRICT_FRAME_COUNT = 3;
16
+ const HS_LINE_FIELD_COUNTS = [12, 10, 2];
15
17
  /**
16
18
  * Strip STX / ETX framing characters and split the response into its three
17
19
  * comma-separated field arrays.
@@ -26,22 +28,49 @@ function splitHsLines(raw) {
26
28
  const lines = cleaned.split("\n").filter((l) => l.trim().length > 0);
27
29
  return lines.map((line) => line.split(",").map((f) => f.trim()));
28
30
  }
29
- /**
30
- * Parse a raw ~HS (Host Status) response string into a structured
31
- * {@link PrinterStatus} object.
32
- *
33
- * The parser is lenient: it returns sensible defaults for fields it cannot
34
- * extract, so callers never need to worry about partial / malformed responses
35
- * in the field.
36
- *
37
- * @param raw - The full ~HS response as received from the printer socket.
38
- * @returns A {@link PrinterStatus} with boolean flags and remaining-label count.
39
- */
40
- export function parseHostStatus(raw) {
41
- const lines = splitHsLines(raw);
42
- const line1 = lines[0] ?? [];
43
- const line2 = lines[1] ?? [];
44
- const line3 = lines[2] ?? [];
31
+ function extractFramedPayloads(raw) {
32
+ const payloads = [];
33
+ let inFrame = false;
34
+ let current = "";
35
+ for (const ch of raw) {
36
+ if (!inFrame) {
37
+ if (ch === STX) {
38
+ inFrame = true;
39
+ current = "";
40
+ }
41
+ continue;
42
+ }
43
+ if (ch === ETX) {
44
+ payloads.push(current);
45
+ inFrame = false;
46
+ current = "";
47
+ continue;
48
+ }
49
+ current += ch;
50
+ }
51
+ return payloads;
52
+ }
53
+ function parseHostStatusFromLines(line1, line2, line3, raw) {
54
+ const parsePrintMode = (value) => {
55
+ switch (value) {
56
+ case 0:
57
+ return "TearOff";
58
+ case 1:
59
+ return "PeelOff";
60
+ case 2:
61
+ return "Rewind";
62
+ case 3:
63
+ return "Applicator";
64
+ case 4:
65
+ return "Cutter";
66
+ case 5:
67
+ return "DelayedCutter";
68
+ case 6:
69
+ return "Linerless";
70
+ default:
71
+ return "Unknown";
72
+ }
73
+ };
45
74
  const flag = (fields, idx) => (fields[idx] ?? "0") !== "0";
46
75
  const int = (fields, idx) => {
47
76
  const n = parseInt(fields[idx] ?? "", 10);
@@ -65,7 +94,7 @@ export function parseHostStatus(raw) {
65
94
  const headOpen = flag(line2, 1);
66
95
  const ribbonOut = flag(line2, 2);
67
96
  const thermalTransferMode = flag(line2, 3);
68
- const printMode = int(line2, 4);
97
+ const printMode = parsePrintMode(int(line2, 4));
69
98
  const printWidthMode = int(line2, 5);
70
99
  const labelWaiting = flag(line2, 6);
71
100
  const labelsRemaining = int(line2, 7);
@@ -105,4 +134,104 @@ export function parseHostStatus(raw) {
105
134
  raw,
106
135
  };
107
136
  }
137
+ function parseStrictInt(fields, idx, lineNo) {
138
+ const raw = fields[idx];
139
+ if (raw === undefined) {
140
+ throw new Error(`~HS line ${lineNo}: expected field at index ${idx}, only got ${fields.length} fields`);
141
+ }
142
+ const parsed = parseInt(raw.trim(), 10);
143
+ if (Number.isNaN(parsed)) {
144
+ throw new Error(`~HS line ${lineNo}: cannot parse field ${idx} (${JSON.stringify(raw)}) as int`);
145
+ }
146
+ return parsed;
147
+ }
148
+ function parseStrictPrintMode(fields, idx, lineNo) {
149
+ const mode = parseStrictInt(fields, idx, lineNo);
150
+ if (mode < 0 || mode > 6) {
151
+ throw new Error(`~HS line ${lineNo}: unknown print mode code: ${mode}`);
152
+ }
153
+ return mode.toString();
154
+ }
155
+ function parseStrictBool(fields, idx, lineNo) {
156
+ return parseStrictInt(fields, idx, lineNo) !== 0;
157
+ }
158
+ /**
159
+ * Strictly parse a raw ~HS response string.
160
+ *
161
+ * Requires exactly 3 STX/ETX frames and numeric parseability for all expected
162
+ * fields. Throws an error on malformed/truncated responses.
163
+ */
164
+ export function parseHostStatusStrict(raw) {
165
+ const frames = extractFramedPayloads(raw);
166
+ if (frames.length !== HS_STRICT_FRAME_COUNT) {
167
+ throw new Error(`~HS requires 3 frames, got ${frames.length}`);
168
+ }
169
+ const line1 = frames[0].split(",").map((f) => f.trim());
170
+ const line2 = frames[1].split(",").map((f) => f.trim());
171
+ const line3 = frames[2].split(",").map((f) => f.trim());
172
+ if (line1.length < HS_LINE_FIELD_COUNTS[0]) {
173
+ throw new Error(`~HS line 1: expected at least ${HS_LINE_FIELD_COUNTS[0]} fields, got ${line1.length}`);
174
+ }
175
+ if (line2.length < HS_LINE_FIELD_COUNTS[1]) {
176
+ throw new Error(`~HS line 2: expected at least ${HS_LINE_FIELD_COUNTS[1]} fields, got ${line2.length}`);
177
+ }
178
+ if (line3.length < HS_LINE_FIELD_COUNTS[2]) {
179
+ throw new Error(`~HS line 3: expected at least ${HS_LINE_FIELD_COUNTS[2]} fields, got ${line3.length}`);
180
+ }
181
+ const strictLine1 = [
182
+ parseStrictInt(line1, 0, 1).toString(),
183
+ parseStrictBool(line1, 1, 1) ? "1" : "0",
184
+ parseStrictBool(line1, 2, 1) ? "1" : "0",
185
+ parseStrictInt(line1, 3, 1).toString(),
186
+ parseStrictInt(line1, 4, 1).toString(),
187
+ parseStrictBool(line1, 5, 1) ? "1" : "0",
188
+ parseStrictBool(line1, 6, 1) ? "1" : "0",
189
+ parseStrictBool(line1, 7, 1) ? "1" : "0",
190
+ parseStrictInt(line1, 8, 1).toString(),
191
+ parseStrictBool(line1, 9, 1) ? "1" : "0",
192
+ parseStrictBool(line1, 10, 1) ? "1" : "0",
193
+ parseStrictBool(line1, 11, 1) ? "1" : "0",
194
+ ];
195
+ const strictLine2 = [
196
+ parseStrictInt(line2, 0, 2).toString(),
197
+ parseStrictBool(line2, 1, 2) ? "1" : "0",
198
+ parseStrictBool(line2, 2, 2) ? "1" : "0",
199
+ parseStrictBool(line2, 3, 2) ? "1" : "0",
200
+ parseStrictPrintMode(line2, 4, 2),
201
+ parseStrictInt(line2, 5, 2).toString(),
202
+ parseStrictBool(line2, 6, 2) ? "1" : "0",
203
+ parseStrictInt(line2, 7, 2).toString(),
204
+ parseStrictInt(line2, 8, 2).toString(),
205
+ parseStrictInt(line2, 9, 2).toString(),
206
+ ];
207
+ const strictLine3 = [
208
+ parseStrictInt(line3, 0, 3).toString(),
209
+ parseStrictBool(line3, 1, 3) ? "1" : "0",
210
+ ];
211
+ return parseHostStatusFromLines(strictLine1, strictLine2, strictLine3, raw);
212
+ }
213
+ /**
214
+ * Leniently parse a raw ~HS response string into a structured
215
+ * {@link PrinterStatus} object.
216
+ *
217
+ * Returns sensible defaults for fields it cannot extract.
218
+ */
219
+ export function parseHostStatusLenient(raw) {
220
+ const lines = splitHsLines(raw);
221
+ const line1 = lines[0] ?? [];
222
+ const line2 = lines[1] ?? [];
223
+ const line3 = lines[2] ?? [];
224
+ return parseHostStatusFromLines(line1, line2, line3, raw);
225
+ }
226
+ /**
227
+ * Parse a raw ~HS (Host Status) response string into a structured
228
+ * {@link PrinterStatus} object using strict framing and field validation.
229
+ *
230
+ * @param raw - The full ~HS response as received from the printer socket.
231
+ * @returns A fully parsed {@link PrinterStatus}.
232
+ * @throws Error when response framing or fields are malformed.
233
+ */
234
+ export function parseHostStatus(raw) {
235
+ return parseHostStatusStrict(raw);
236
+ }
108
237
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -27,6 +27,7 @@ export interface PrintResult {
27
27
  * Contains all 24 fields from the three response lines,
28
28
  * matching the Rust `HostStatus` struct for full parity.
29
29
  */
30
+ export type PrintMode = "TearOff" | "PeelOff" | "Rewind" | "Applicator" | "Cutter" | "DelayedCutter" | "Linerless" | "Unknown";
30
31
  export interface PrinterStatus {
31
32
  /** Printer is ready to accept data (not paused, head closed, media loaded). */
32
33
  ready: boolean;
@@ -62,8 +63,8 @@ export interface PrinterStatus {
62
63
  ribbonOut: boolean;
63
64
  /** Thermal transfer mode active (field 3). */
64
65
  thermalTransferMode: boolean;
65
- /** Print mode code (field 4): 0=tear-off, 1=peel-off, 2=rewind, etc. */
66
- printMode: number;
66
+ /** Print mode (field 4). */
67
+ printMode: PrintMode;
67
68
  /** Print width mode (field 5). */
68
69
  printWidthMode: number;
69
70
  /** Label waiting to be taken (field 6). */
@@ -81,6 +82,8 @@ export interface PrinterStatus {
81
82
  /** The raw ~HS response string for advanced inspection. */
82
83
  raw: string;
83
84
  }
85
+ /** Parsing mode for `~HS` status responses. */
86
+ export type StatusParseMode = "lenient" | "strict";
84
87
  /** A printer device as reported by the Zebra Browser Print agent. */
85
88
  export interface PrinterDevice {
86
89
  /** Human-readable device name (e.g. "ZD421"). */
@@ -151,6 +154,21 @@ export interface ValidateOptions {
151
154
  */
152
155
  strict?: boolean;
153
156
  }
157
+ /**
158
+ * Opaque identifier for a logical print job (single label or batch).
159
+ * See contracts/fixtures/print-job-lifecycle.v1.json.
160
+ */
161
+ export type JobId = string;
162
+ /**
163
+ * Lifecycle phase of a print job.
164
+ * Aligned with contracts/fixtures/print-job-lifecycle.v1.json.
165
+ */
166
+ export type JobPhase = "queued" | "sending" | "sent" | "printing" | "completed" | "failed" | "aborted";
167
+ /**
168
+ * Generate a new unique job ID.
169
+ * Format: `job-{timestamp}-{random}` for process-local uniqueness.
170
+ */
171
+ export declare function createJobId(): JobId;
154
172
  /** Options for batch printing with status polling. */
155
173
  export interface BatchOptions {
156
174
  /**
@@ -169,6 +187,10 @@ export interface BatchProgress {
169
187
  total: number;
170
188
  /** Latest printer status (only present when `statusInterval` is set). */
171
189
  status?: PrinterStatus;
190
+ /** Current lifecycle phase of this batch. */
191
+ phase: JobPhase;
192
+ /** Job ID for correlation with completion tracking. */
193
+ jobId: JobId;
172
194
  }
173
195
  /** Final result of a batch print operation. */
174
196
  export interface BatchResult {
@@ -176,6 +198,8 @@ export interface BatchResult {
176
198
  sent: number;
177
199
  /** Total number of labels in the batch. */
178
200
  total: number;
201
+ /** Job ID for correlation with completion tracking. */
202
+ jobId: JobId;
179
203
  /**
180
204
  * Present when the batch stops mid-stream due to an error.
181
205
  * `sent` indicates how many labels were accepted before failure.
@@ -192,6 +216,15 @@ export type PrintErrorCode = "CONNECTION_REFUSED" | "TIMEOUT" | "HOST_NOT_FOUND"
192
216
  /** An error thrown by the print client with a classified code. */
193
217
  export declare class PrintError extends Error {
194
218
  readonly code: PrintErrorCode;
195
- constructor(message: string, code: PrintErrorCode, cause?: unknown);
219
+ /**
220
+ * When code is TIMEOUT from waitForCompletion, the printer's last-reported
221
+ * formats in buffer and labels remaining.
222
+ */
223
+ readonly formatsInBuffer?: number;
224
+ readonly labelsRemaining?: number;
225
+ constructor(message: string, code: PrintErrorCode, cause?: unknown, completionState?: {
226
+ formatsInBuffer: number;
227
+ labelsRemaining: number;
228
+ });
196
229
  }
197
230
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,14 +1,33 @@
1
1
  // ─── Printer connection configuration ────────────────────────────────────────
2
+ /**
3
+ * Generate a new unique job ID.
4
+ * Format: `job-{timestamp}-{random}` for process-local uniqueness.
5
+ */
6
+ export function createJobId() {
7
+ const ts = Date.now().toString(36);
8
+ const r = Math.random().toString(36).slice(2, 10);
9
+ return `job-${ts}-${r}`;
10
+ }
2
11
  /** An error thrown by the print client with a classified code. */
3
12
  export class PrintError extends Error {
4
13
  code;
5
- constructor(message, code, cause) {
14
+ /**
15
+ * When code is TIMEOUT from waitForCompletion, the printer's last-reported
16
+ * formats in buffer and labels remaining.
17
+ */
18
+ formatsInBuffer;
19
+ labelsRemaining;
20
+ constructor(message, code, cause, completionState) {
6
21
  super(message);
7
22
  this.name = "PrintError";
8
23
  this.code = code;
9
24
  if (cause) {
10
25
  this.cause = cause;
11
26
  }
27
+ if (completionState) {
28
+ this.formatsInBuffer = completionState.formatsInBuffer;
29
+ this.labelsRemaining = completionState.labelsRemaining;
30
+ }
12
31
  }
13
32
  }
14
33
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAyOhF;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;AAC1B,CAAC;AAqED,kEAAkE;AAClE,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnB,IAAI,CAAiB;IAErC;;;OAGG;IACa,eAAe,CAAU;IACzB,eAAe,CAAU;IAEzC,YACE,OAAe,EACf,IAAoB,EACpB,KAAe,EACf,eAAsE;QAEtE,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;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;YACvD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zpl-toolchain/print",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "Print client for sending ZPL to Zebra and ZPL-compatible printers (part of the zpl-toolchain project)",
5
5
  "type": "module",
6
6
  "engines": {