n8n-nodes-labelzoom 1.0.0 → 1.2.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 +44 -12
- package/dist/nodes/LabelZoom/resources/printer/print.js +4 -0
- package/dist/nodes/LabelZoom/resources/printer/print.js.map +1 -1
- package/dist/nodes/LabelZoom/resources/printer/printTemplate.js +8 -1
- package/dist/nodes/LabelZoom/resources/printer/printTemplate.js.map +1 -1
- package/dist/nodes/LabelZoom/resources/printer/shared.d.ts +4 -1
- package/dist/nodes/LabelZoom/resources/printer/shared.js +35 -2
- package/dist/nodes/LabelZoom/resources/printer/shared.js.map +1 -1
- package/dist/nodes/LabelZoom/shared/formats.d.ts +2 -2
- package/dist/nodes/LabelZoom/shared/formats.js +12 -0
- package/dist/nodes/LabelZoom/shared/formats.js.map +1 -1
- package/dist/package.json +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# n8n-nodes-labelzoom
|
|
2
2
|
|
|
3
3
|
An [n8n](https://n8n.io) community node for [LabelZoom](https://www.labelzoom.com) — convert
|
|
4
|
-
barcode labels between ZPL, EPL, TSPL, DPL, PDF, images and XML/JSON, and print them to
|
|
4
|
+
barcode labels between ZPL, EPL, IPL, TSPL, DPL, SBPL, PDF, images and XML/JSON, and print them to
|
|
5
5
|
cloud-connected thermal printers.
|
|
6
6
|
|
|
7
7
|
The labels in a business rarely arrive in the format the printer wants. A WMS emits ZPL, a
|
|
@@ -13,7 +13,11 @@ into two steps in a workflow.
|
|
|
13
13
|
|
|
14
14
|
## Installation
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
The node is [verified by n8n](https://n8n.io/integrations/labelzoom/), so it installs straight
|
|
17
|
+
from the canvas: open the nodes panel, search for **LabelZoom**, and pick it from **More from the
|
|
18
|
+
community**.
|
|
19
|
+
|
|
20
|
+
To install it by package name instead, go to **Settings → Community nodes → Install** and enter:
|
|
17
21
|
|
|
18
22
|
```
|
|
19
23
|
n8n-nodes-labelzoom
|
|
@@ -52,19 +56,20 @@ you're ready to ship.
|
|
|
52
56
|
| **Convert** | Convert a document between any supported source and target format |
|
|
53
57
|
| **Convert Template** | Fill a Print Template with data and render it, without printing |
|
|
54
58
|
|
|
55
|
-
Sources: `zpl` `epl` `tspl` `dpl` `xml` `json` `pdf` `png` `bmp` `gif` `jpeg` `jpg` `url`
|
|
56
|
-
Targets: `zpl` `epl` `tspl` `dpl` `xml` `json` `pdf` `png` `bmp` `gif` `jpeg`
|
|
59
|
+
Sources: `zpl` `epl` `ipl` `tspl` `dpl` `sbpl` `xml` `json` `pdf` `png` `bmp` `gif` `jpeg` `jpg` `url`
|
|
60
|
+
Targets: `zpl` `epl` `ipl` `tspl` `dpl` `sbpl` `xml` `json` `pdf` `png` `bmp` `gif` `jpeg`
|
|
57
61
|
|
|
58
62
|
`url` is a source only — post a link and LabelZoom fetches the document itself. `jpg` is an
|
|
59
63
|
input spelling that normalizes to `jpeg`.
|
|
60
64
|
|
|
61
|
-
The output is always a **binary field**, because five of the
|
|
65
|
+
The output is always a **binary field**, because five of the thirteen targets are binary. A
|
|
62
66
|
decoded `text` field is added for `zpl`, `xml` and `json` as a convenience. It is deliberately
|
|
63
|
-
*not* added for `epl`, `tspl` or `
|
|
64
|
-
bytes (EPL's `GW`, TSPL's `BITMAP`, DPL's leading `STX
|
|
65
|
-
corrupt any label carrying
|
|
67
|
+
*not* added for `epl`, `ipl`, `tspl`, `dpl` or `sbpl`: those come back as `text/plain` but can
|
|
68
|
+
inline raw bytes (EPL's `GW`, IPL's `STX`/`ETX` framing, TSPL's `BITMAP`, DPL's leading `STX`,
|
|
69
|
+
SBPL's `ESC`-prefixed commands), and decoding them to a string would corrupt any label carrying
|
|
70
|
+
graphics.
|
|
66
71
|
|
|
67
|
-
Options cover the full parameter set — DPI, rotation, scaling,
|
|
72
|
+
Options cover the full parameter set — DPI, rotation, scaling, color mode, darkness, label
|
|
68
73
|
size in inches, position, PDF conversion mode and page number, ZPL image compression and
|
|
69
74
|
commands to ignore, and a **Variable Data** field that fills placeholders on the label (one
|
|
70
75
|
output label per array entry). Anything not yet surfaced in the UI can go through **Custom
|
|
@@ -91,10 +96,31 @@ transform option from Convert works here too, even when no format change is need
|
|
|
91
96
|
once the print agent reports back. Turn on **Wait for Completion** when the workflow needs to
|
|
92
97
|
know the label came out of the printer.
|
|
93
98
|
|
|
99
|
+
**Copies.** Print and Print Template both take **Copies**: how many times the job is sent to the
|
|
100
|
+
printer, from 1 to 9999, for any document in any printer language. **A print quantity already in
|
|
101
|
+
the label or template multiplies** — a label carrying `^PQ3` sent with Copies set to 5 prints 15.
|
|
102
|
+
A document holding several labels prints collated (A, B, A, B), all as a single job, and the job in
|
|
103
|
+
the output reports the `copies` it was accepted with (`null` when Copies was left at 1). Leave
|
|
104
|
+
Copies at the default of 1 and nothing is sent: the document prints once, as sent, exactly as
|
|
105
|
+
before. Map it from the incoming item to print a per-order quantity:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
{{ $json.quantity }}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
A number that arrives as text, such as `"25"` from a CSV or spreadsheet, is accepted. Anything
|
|
112
|
+
that isn't a whole number from 1 to 9999 fails the item before a request is made. Copies above 1
|
|
113
|
+
needs an up-to-date LabelZoom Print Agent: if the agent serving the printer is out of date, the
|
|
114
|
+
job is rejected with a 422 asking you to update it, rather than printed a different number of
|
|
115
|
+
times. For a large run of a complex label, the printer language's own quantity command inside the
|
|
116
|
+
label (`^PQ` in ZPL, for example) prints faster than sending the whole job again and again.
|
|
117
|
+
|
|
94
118
|
**Idempotency.** Print carries an `Idempotency-Key`; repeating a key returns the original job
|
|
95
119
|
instead of printing again. It defaults to `{{ $execution.id }}-{{ $itemIndex }}`, which makes a
|
|
96
120
|
retried *step* safe. Set it from an order number to make a whole workflow re-run safe too — a
|
|
97
|
-
duplicate shipping label is a real cost.
|
|
121
|
+
duplicate shipping label is a real cost. A key identifies the whole request, Copies included:
|
|
122
|
+
repeating it with a different document, merge data or Copies is rejected with a 422 instead of
|
|
123
|
+
replaying the original job, so give a deliberate reprint a key of its own.
|
|
98
124
|
|
|
99
125
|
## Examples
|
|
100
126
|
|
|
@@ -111,6 +137,11 @@ Variable Data mapped from the rows) → Google Drive. Each row becomes one page.
|
|
|
111
137
|
Printer → Print Template with the merge fields mapped from the incoming item. The template
|
|
112
138
|
picker shows each template's merge fields, so you can see what data it wants.
|
|
113
139
|
|
|
140
|
+
**One label per unit.** An order-line trigger (or a spreadsheet of SKUs) → LabelZoom (Printer →
|
|
141
|
+
Print Template, merge fields mapped from the line, **Copies** set to `{{ $json.quantity }}`). A
|
|
142
|
+
line for 12 units sends its label to the printer 12 times as one job. Design the template to
|
|
143
|
+
print a single label: a quantity built into the template multiplies with Copies.
|
|
144
|
+
|
|
114
145
|
## Development
|
|
115
146
|
|
|
116
147
|
```sh
|
|
@@ -127,11 +158,11 @@ npm test
|
|
|
127
158
|
n8n verification forbids runtime dependencies, so this node cannot call
|
|
128
159
|
[`@labelzoom/sdk`](https://www.npmjs.com/package/@labelzoom/sdk) — it re-implements the
|
|
129
160
|
LabelZoom wire contract by hand. To stop the two drifting apart, it runs the **same
|
|
130
|
-
language-neutral conformance fixtures** the eight official SDKs run:
|
|
161
|
+
language-neutral conformance fixtures** the eight official SDKs run: 87 cases pinned from
|
|
131
162
|
`labelzoom-sdk` covering request shape, error mapping, retry policy and local validation.
|
|
132
163
|
|
|
133
164
|
```sh
|
|
134
|
-
npm run sync-conformance # refresh test/conformance/ from the pinned SDK
|
|
165
|
+
npm run sync-conformance # refresh test/conformance/ from the pinned SDK ref
|
|
135
166
|
node scripts/sync-conformance.mjs --check # verify it hasn't drifted (CI)
|
|
136
167
|
```
|
|
137
168
|
|
|
@@ -148,6 +179,7 @@ claim to be LabelZoom Studio, whose prefix the server special-cases — is asser
|
|
|
148
179
|
|
|
149
180
|
## Resources
|
|
150
181
|
|
|
182
|
+
- [LabelZoom on n8n.io](https://n8n.io/integrations/labelzoom/) — the verified integration listing
|
|
151
183
|
- [n8n integration guide](https://docs.labelzoom.com/integrations/n8n/) — this node, end to end
|
|
152
184
|
- [LabelZoom API docs](https://docs.labelzoom.com)
|
|
153
185
|
- [Conversion parameters](https://docs.labelzoom.com/reference/conversion-parameters/)
|
|
@@ -37,6 +37,7 @@ exports.printDescription = [
|
|
|
37
37
|
displayOptions: { show: showFor },
|
|
38
38
|
},
|
|
39
39
|
...(0, descriptions_1.documentInputFields)(showFor),
|
|
40
|
+
(0, shared_1.copiesField)(showFor),
|
|
40
41
|
(0, shared_1.idempotencyKeyField)(showFor),
|
|
41
42
|
{
|
|
42
43
|
displayName: 'Wait for Completion',
|
|
@@ -73,6 +74,7 @@ async function waitForJob(jobId, timeoutSeconds, itemIndex) {
|
|
|
73
74
|
}
|
|
74
75
|
async function print(itemIndex) {
|
|
75
76
|
const printerId = utils_1.resourceId.call(this, 'printerId', itemIndex);
|
|
77
|
+
const copies = shared_1.readCopies.call(this, itemIndex);
|
|
76
78
|
const sourceFormat = this.getNodeParameter('sourceFormat', itemIndex, '');
|
|
77
79
|
const idempotencyKey = this.getNodeParameter('idempotencyKey', itemIndex, '');
|
|
78
80
|
const waitForCompletion = this.getNodeParameter('waitForCompletion', itemIndex, false);
|
|
@@ -82,6 +84,8 @@ async function print(itemIndex) {
|
|
|
82
84
|
const query = {};
|
|
83
85
|
if (sourceFormat !== '')
|
|
84
86
|
query.sourceFormat = sourceFormat;
|
|
87
|
+
if (copies !== 1)
|
|
88
|
+
query.copies = String(copies);
|
|
85
89
|
const headers = {};
|
|
86
90
|
if (idempotencyKey !== '')
|
|
87
91
|
headers['Idempotency-Key'] = idempotencyKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print.js","sourceRoot":"","sources":["../../../../../nodes/LabelZoom/resources/printer/print.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"print.js","sourceRoot":"","sources":["../../../../../nodes/LabelZoom/resources/printer/print.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,11 +27,13 @@ exports.printTemplateDescription = [
|
|
|
27
27
|
description: 'Whether to reject the job when a required merge field is missing, instead of printing a label with a blank in it',
|
|
28
28
|
displayOptions: { show: showFor },
|
|
29
29
|
},
|
|
30
|
+
(0, shared_1.copiesField)(showFor),
|
|
30
31
|
(0, shared_1.idempotencyKeyField)(showFor),
|
|
31
32
|
];
|
|
32
33
|
async function printTemplate(itemIndex) {
|
|
33
34
|
const printerId = utils_1.resourceId.call(this, 'printerId', itemIndex);
|
|
34
35
|
const templateId = utils_1.resourceId.call(this, 'templateId', itemIndex);
|
|
36
|
+
const copies = shared_1.readCopies.call(this, itemIndex);
|
|
35
37
|
const validate = this.getNodeParameter('validate', itemIndex, true);
|
|
36
38
|
const idempotencyKey = this.getNodeParameter('idempotencyKey', itemIndex, '');
|
|
37
39
|
const rawMergeData = this.getNodeParameter('mergeData', itemIndex, '{}');
|
|
@@ -53,10 +55,15 @@ async function printTemplate(itemIndex) {
|
|
|
53
55
|
description: 'Send one item per label — this operation runs once per input item and each run produces one print job.',
|
|
54
56
|
});
|
|
55
57
|
}
|
|
58
|
+
const query = {};
|
|
59
|
+
if (validate)
|
|
60
|
+
query.validate = 'true';
|
|
61
|
+
if (copies !== 1)
|
|
62
|
+
query.copies = String(copies);
|
|
56
63
|
const headers = {};
|
|
57
64
|
if (idempotencyKey !== '')
|
|
58
65
|
headers['Idempotency-Key'] = idempotencyKey;
|
|
59
|
-
const job = await transport_1.labelZoomJsonRequest.call(this, 'POST', `/api/v3/printers/${encodeURIComponent(printerId)}/templates/${encodeURIComponent(templateId)}/print`, mergeData,
|
|
66
|
+
const job = await transport_1.labelZoomJsonRequest.call(this, 'POST', `/api/v3/printers/${encodeURIComponent(printerId)}/templates/${encodeURIComponent(templateId)}/print`, mergeData, Object.keys(query).length > 0 ? query : undefined, headers);
|
|
60
67
|
return {
|
|
61
68
|
json: { ...job, printerId, templateId },
|
|
62
69
|
pairedItem: { item: itemIndex },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printTemplate.js","sourceRoot":"","sources":["../../../../../nodes/LabelZoom/resources/printer/printTemplate.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"printTemplate.js","sourceRoot":"","sources":["../../../../../nodes/LabelZoom/resources/printer/printTemplate.ts"],"names":[],"mappings":";;;AAyCA,sCAgEC;AAxGD,+CAAkD;AAElD,sDAA8D;AAC9D,8CAAgD;AAChD,qCAMkB;AAElB,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;AAE3D,QAAA,wBAAwB,GAAsB;IAC1D,IAAA,uBAAc,EAAC,OAAO,CAAC;IACvB,IAAA,wBAAe,EAAC,OAAO,CAAC;IACxB;QACC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,WAAW,EACV,+FAA+F;QAChG,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KACjC;IACD;QACC,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EACV,kHAAkH;QACnH,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KACjC;IACD,IAAA,oBAAW,EAAC,OAAO,CAAC;IACpB,IAAA,4BAAmB,EAAC,OAAO,CAAC;CAC5B,CAAC;AAEK,KAAK,UAAU,aAAa,CAElC,SAAiB;IAEjB,MAAM,SAAS,GAAG,kBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,kBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,mBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAY,CAAC;IAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACxF,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEzE,IAAI,SAAkB,CAAC;IACvB,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC;YACJ,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,iCAAkC,KAAe,CAAC,OAAO,EAAE,EAC3D,EAAE,SAAS,EAAE,CACb,CAAC;QACH,CAAC;IACF,CAAC;SAAM,CAAC;QACP,SAAS,GAAG,YAAY,CAAC;IAC1B,CAAC;IAMD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,uDAAuD,EACvD;YACC,SAAS;YACT,WAAW,EACV,wGAAwG;SACzG,CACD,CAAC;IACH,CAAC;IAID,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,IAAI,QAAQ;QAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,cAAc,KAAK,EAAE;QAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;IAEvE,MAAM,GAAG,GAAG,MAAM,gCAAoB,CAAC,IAAI,CAC1C,IAAI,EACJ,MAAM,EACN,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,cAAc,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EACrG,SAAuB,EACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACjD,OAAO,CACP,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE;QACvC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC/B,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { INodeProperties } from 'n8n-workflow';
|
|
1
|
+
import type { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
|
|
2
2
|
type ShowFor = {
|
|
3
3
|
resource: string[];
|
|
4
4
|
operation: string[];
|
|
@@ -6,5 +6,8 @@ type ShowFor = {
|
|
|
6
6
|
export declare function printerLocator(showFor: ShowFor): INodeProperties;
|
|
7
7
|
export declare function templateLocator(showFor: ShowFor): INodeProperties;
|
|
8
8
|
export declare function idempotencyKeyField(showFor: ShowFor): INodeProperties;
|
|
9
|
+
export declare const MAX_COPIES = 9999;
|
|
10
|
+
export declare function copiesField(showFor: ShowFor): INodeProperties;
|
|
11
|
+
export declare function readCopies(this: IExecuteFunctions, itemIndex: number): number;
|
|
9
12
|
export declare const TERMINAL_JOB_STATUSES: readonly ["completed", "failed"];
|
|
10
13
|
export {};
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TERMINAL_JOB_STATUSES = void 0;
|
|
3
|
+
exports.TERMINAL_JOB_STATUSES = exports.MAX_COPIES = void 0;
|
|
4
4
|
exports.printerLocator = printerLocator;
|
|
5
5
|
exports.templateLocator = templateLocator;
|
|
6
6
|
exports.idempotencyKeyField = idempotencyKeyField;
|
|
7
|
+
exports.copiesField = copiesField;
|
|
8
|
+
exports.readCopies = readCopies;
|
|
9
|
+
const validation_1 = require("../../shared/validation");
|
|
7
10
|
function printerLocator(showFor) {
|
|
8
11
|
return {
|
|
9
12
|
displayName: 'Printer',
|
|
@@ -60,9 +63,39 @@ function idempotencyKeyField(showFor) {
|
|
|
60
63
|
name: 'idempotencyKey',
|
|
61
64
|
type: 'string',
|
|
62
65
|
default: '={{ $execution.id }}-{{ $itemIndex }}',
|
|
63
|
-
description: 'Repeating a key returns the original job instead of printing again. Set it from a stable business value (an order number) to make a whole workflow re-run safe.',
|
|
66
|
+
description: 'Repeating a key with the same request returns the original job instead of printing again; reusing it for a different document, merge data or Copies is rejected. Set it from a stable business value (an order number) to make a whole workflow re-run safe.',
|
|
64
67
|
displayOptions: { show: showFor },
|
|
65
68
|
};
|
|
66
69
|
}
|
|
70
|
+
exports.MAX_COPIES = 9999;
|
|
71
|
+
function copiesField(showFor) {
|
|
72
|
+
return {
|
|
73
|
+
displayName: 'Copies',
|
|
74
|
+
name: 'copies',
|
|
75
|
+
type: 'number',
|
|
76
|
+
typeOptions: { minValue: 1, maxValue: exports.MAX_COPIES, numberPrecision: 0 },
|
|
77
|
+
default: 1,
|
|
78
|
+
description: "How many times to send the job to the printer, from 1 to 9999. A quantity already set in the document or template multiplies: a label carrying ^PQ3 with Copies set to 5 prints 15. Leave it at 1 to print it once, as sent.",
|
|
79
|
+
displayOptions: { show: showFor },
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function readCopies(itemIndex) {
|
|
83
|
+
const raw = this.getNodeParameter('copies', itemIndex, 1);
|
|
84
|
+
let copies = Number.NaN;
|
|
85
|
+
if (typeof raw === 'number') {
|
|
86
|
+
copies = raw;
|
|
87
|
+
}
|
|
88
|
+
else if (typeof raw === 'string' && /^\d+$/.test(raw.trim())) {
|
|
89
|
+
copies = Number(raw.trim());
|
|
90
|
+
}
|
|
91
|
+
if (!Number.isInteger(copies) || copies < 1 || copies > exports.MAX_COPIES) {
|
|
92
|
+
const received = typeof raw === 'number' ? String(raw) : JSON.stringify(raw);
|
|
93
|
+
throw new validation_1.LabelZoomValidationError(this.getNode(), 'copies', `Copies must be a whole number from 1 to ${exports.MAX_COPIES}, got ${received}`, {
|
|
94
|
+
itemIndex,
|
|
95
|
+
description: "Set Copies to how many times the job should be sent to the printer, or leave it at 1 to print it once, as sent.",
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return copies;
|
|
99
|
+
}
|
|
67
100
|
exports.TERMINAL_JOB_STATUSES = ['completed', 'failed'];
|
|
68
101
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../nodes/LabelZoom/resources/printer/shared.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../nodes/LabelZoom/resources/printer/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const SOURCE_FORMATS: readonly ["zpl", "epl", "tspl", "dpl", "xml", "json", "pdf", "png", "bmp", "gif", "jpeg", "jpg", "url"];
|
|
2
|
-
export declare const TARGET_FORMATS: readonly ["zpl", "epl", "tspl", "dpl", "xml", "json", "pdf", "png", "bmp", "gif", "jpeg"];
|
|
1
|
+
export declare const SOURCE_FORMATS: readonly ["zpl", "epl", "ipl", "tspl", "dpl", "sbpl", "xml", "json", "pdf", "png", "bmp", "gif", "jpeg", "jpg", "url"];
|
|
2
|
+
export declare const TARGET_FORMATS: readonly ["zpl", "epl", "ipl", "tspl", "dpl", "sbpl", "xml", "json", "pdf", "png", "bmp", "gif", "jpeg"];
|
|
3
3
|
export type SourceFormat = (typeof SOURCE_FORMATS)[number];
|
|
4
4
|
export type TargetFormat = (typeof TARGET_FORMATS)[number];
|
|
5
5
|
export declare function sourceMediaType(format: string): string;
|
|
@@ -10,8 +10,10 @@ exports.formatOptions = formatOptions;
|
|
|
10
10
|
exports.SOURCE_FORMATS = [
|
|
11
11
|
'zpl',
|
|
12
12
|
'epl',
|
|
13
|
+
'ipl',
|
|
13
14
|
'tspl',
|
|
14
15
|
'dpl',
|
|
16
|
+
'sbpl',
|
|
15
17
|
'xml',
|
|
16
18
|
'json',
|
|
17
19
|
'pdf',
|
|
@@ -25,8 +27,10 @@ exports.SOURCE_FORMATS = [
|
|
|
25
27
|
exports.TARGET_FORMATS = [
|
|
26
28
|
'zpl',
|
|
27
29
|
'epl',
|
|
30
|
+
'ipl',
|
|
28
31
|
'tspl',
|
|
29
32
|
'dpl',
|
|
33
|
+
'sbpl',
|
|
30
34
|
'xml',
|
|
31
35
|
'json',
|
|
32
36
|
'pdf',
|
|
@@ -38,8 +42,10 @@ exports.TARGET_FORMATS = [
|
|
|
38
42
|
const SOURCE_MEDIA_TYPES = {
|
|
39
43
|
zpl: 'text/plain',
|
|
40
44
|
epl: 'text/plain',
|
|
45
|
+
ipl: 'text/plain',
|
|
41
46
|
tspl: 'text/plain',
|
|
42
47
|
dpl: 'text/plain',
|
|
48
|
+
sbpl: 'text/plain',
|
|
43
49
|
xml: 'application/xml',
|
|
44
50
|
json: 'application/json',
|
|
45
51
|
pdf: 'application/pdf',
|
|
@@ -53,8 +59,10 @@ const SOURCE_MEDIA_TYPES = {
|
|
|
53
59
|
const TARGET_MEDIA_TYPES = {
|
|
54
60
|
zpl: 'text/plain',
|
|
55
61
|
epl: 'text/plain',
|
|
62
|
+
ipl: 'text/plain',
|
|
56
63
|
tspl: 'text/plain',
|
|
57
64
|
dpl: 'text/plain',
|
|
65
|
+
sbpl: 'text/plain',
|
|
58
66
|
xml: 'application/xml',
|
|
59
67
|
json: 'application/json',
|
|
60
68
|
pdf: 'application/pdf',
|
|
@@ -66,8 +74,10 @@ const TARGET_MEDIA_TYPES = {
|
|
|
66
74
|
const TARGET_EXTENSIONS = {
|
|
67
75
|
zpl: 'zpl',
|
|
68
76
|
epl: 'epl',
|
|
77
|
+
ipl: 'ipl',
|
|
69
78
|
tspl: 'txt',
|
|
70
79
|
dpl: 'dpl',
|
|
80
|
+
sbpl: 'sbpl',
|
|
71
81
|
xml: 'xml',
|
|
72
82
|
json: 'json',
|
|
73
83
|
pdf: 'pdf',
|
|
@@ -96,8 +106,10 @@ function sourceWireToken(format) {
|
|
|
96
106
|
const FORMAT_LABELS = {
|
|
97
107
|
zpl: 'ZPL (Zebra)',
|
|
98
108
|
epl: 'EPL (Eltron)',
|
|
109
|
+
ipl: 'IPL (Honeywell)',
|
|
99
110
|
tspl: 'TSPL (TSC)',
|
|
100
111
|
dpl: 'DPL (Datamax)',
|
|
112
|
+
sbpl: 'SBPL (SATO)',
|
|
101
113
|
xml: 'XML (LBXML)',
|
|
102
114
|
json: 'JSON (LabelZoom)',
|
|
103
115
|
pdf: 'PDF',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../../../nodes/LabelZoom/shared/formats.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../../../nodes/LabelZoom/shared/formats.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-labelzoom",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "n8n community node for LabelZoom \u2014 convert barcode labels between ZPL, EPL, TSPL, DPL, PDF and images, and print them to cloud-connected thermal printers",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://www.labelzoom.com",
|
|
@@ -57,12 +57,12 @@
|
|
|
57
57
|
]
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@n8n/node-cli": "^0.
|
|
60
|
+
"@n8n/node-cli": "^0.50.2",
|
|
61
61
|
"@types/node": "^22.15.0",
|
|
62
62
|
"eslint": "9.39.4",
|
|
63
|
-
"prettier": "3.9.
|
|
63
|
+
"prettier": "3.9.9",
|
|
64
64
|
"typescript": "6.0.3",
|
|
65
|
-
"vitest": "^
|
|
65
|
+
"vitest": "^5.0.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"n8n-workflow": "*"
|