n8n-nodes-labelzoom 0.1.2 → 1.1.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 +10 -9
- package/dist/nodes/LabelZoom/LabelZoom.node.json +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
|
|
@@ -52,17 +52,18 @@ you're ready to ship.
|
|
|
52
52
|
| **Convert** | Convert a document between any supported source and target format |
|
|
53
53
|
| **Convert Template** | Fill a Print Template with data and render it, without printing |
|
|
54
54
|
|
|
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`
|
|
55
|
+
Sources: `zpl` `epl` `ipl` `tspl` `dpl` `sbpl` `xml` `json` `pdf` `png` `bmp` `gif` `jpeg` `jpg` `url`
|
|
56
|
+
Targets: `zpl` `epl` `ipl` `tspl` `dpl` `sbpl` `xml` `json` `pdf` `png` `bmp` `gif` `jpeg`
|
|
57
57
|
|
|
58
58
|
`url` is a source only — post a link and LabelZoom fetches the document itself. `jpg` is an
|
|
59
59
|
input spelling that normalizes to `jpeg`.
|
|
60
60
|
|
|
61
|
-
The output is always a **binary field**, because five of the
|
|
61
|
+
The output is always a **binary field**, because five of the thirteen targets are binary. A
|
|
62
62
|
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
|
|
63
|
+
*not* added for `epl`, `ipl`, `tspl`, `dpl` or `sbpl`: those come back as `text/plain` but can
|
|
64
|
+
inline raw bytes (EPL's `GW`, IPL's `STX`/`ETX` framing, TSPL's `BITMAP`, DPL's leading `STX`,
|
|
65
|
+
SBPL's `ESC`-prefixed commands), and decoding them to a string would corrupt any label carrying
|
|
66
|
+
graphics.
|
|
66
67
|
|
|
67
68
|
Options cover the full parameter set — DPI, rotation, scaling, colour mode, darkness, label
|
|
68
69
|
size in inches, position, PDF conversion mode and page number, ZPL image compression and
|
|
@@ -127,11 +128,11 @@ npm test
|
|
|
127
128
|
n8n verification forbids runtime dependencies, so this node cannot call
|
|
128
129
|
[`@labelzoom/sdk`](https://www.npmjs.com/package/@labelzoom/sdk) — it re-implements the
|
|
129
130
|
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:
|
|
131
|
+
language-neutral conformance fixtures** the eight official SDKs run: 87 cases pinned from
|
|
131
132
|
`labelzoom-sdk` covering request shape, error mapping, retry policy and local validation.
|
|
132
133
|
|
|
133
134
|
```sh
|
|
134
|
-
npm run sync-conformance # refresh test/conformance/ from the pinned SDK
|
|
135
|
+
npm run sync-conformance # refresh test/conformance/ from the pinned SDK ref
|
|
135
136
|
node scripts/sync-conformance.mjs --check # verify it hasn't drifted (CI)
|
|
136
137
|
```
|
|
137
138
|
|
|
@@ -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": "
|
|
3
|
+
"version": "1.1.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",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"url": "https://github.com/labelzoom/labelzoom-n8n-node/issues"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
|
-
"node": ">=
|
|
32
|
+
"node": ">=24.0.0"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "n8n-node build",
|
|
@@ -57,12 +57,12 @@
|
|
|
57
57
|
]
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@n8n/node-cli": "^0.
|
|
60
|
+
"@n8n/node-cli": "^0.48.2",
|
|
61
61
|
"@types/node": "^22.15.0",
|
|
62
62
|
"eslint": "9.39.4",
|
|
63
63
|
"prettier": "3.9.6",
|
|
64
64
|
"typescript": "6.0.3",
|
|
65
|
-
"vitest": "^
|
|
65
|
+
"vitest": "^5.0.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"n8n-workflow": "*"
|