@sythos/js_barcode_universal 1.1.0 → 1.2.5
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/LICENSE +16 -17
- package/NOTICE.md +24 -22
- package/README.md +100 -49
- package/bundle/sythos-barcode.esm.js +2058 -54
- package/bundle/sythos-barcode.js +2050 -54
- package/examples/create.html +2 -1
- package/licenses/README.md +58 -30
- package/licenses/aztec-code.license +12 -12
- package/licenses/codabar.license +9 -9
- package/licenses/code-11.license +9 -9
- package/licenses/code-128.license +6 -6
- package/licenses/code-39.license +6 -6
- package/licenses/code-93.license +7 -7
- package/licenses/data-matrix.license +11 -11
- package/licenses/ean-13.license +6 -6
- package/licenses/ean-8.license +6 -6
- package/licenses/gs1-128.license +6 -6
- package/licenses/isbn.license +7 -7
- package/licenses/itf-14.license +6 -6
- package/licenses/itf.license +6 -6
- package/licenses/micropdf417.license +96 -0
- package/licenses/msi-plessey.license +7 -7
- package/licenses/pdf417.license +37 -0
- package/licenses/pharmacode.license +7 -7
- package/licenses/qr-code.license +6 -6
- package/licenses/upc-a.license +7 -7
- package/licenses/upc-e.license +6 -6
- package/package.json +9 -2
- package/src/core/reed-solomon.js +326 -312
- package/src/index.js +77 -3
- package/src/micropdf417/compaction.js +116 -0
- package/src/micropdf417/decoder.js +183 -0
- package/src/micropdf417/detector.js +149 -0
- package/src/micropdf417/encoder.js +209 -0
- package/src/micropdf417/error-correction.js +55 -0
- package/src/micropdf417/index.js +49 -0
- package/src/micropdf417/tables.js +184 -0
- package/src/pdf417/compaction.js +298 -0
- package/src/pdf417/decoder.js +75 -0
- package/src/pdf417/detector.js +468 -0
- package/src/pdf417/encoder.js +91 -0
- package/src/pdf417/error-correction.js +47 -0
- package/src/pdf417/index.js +6 -0
- package/src/pdf417/tables.js +317 -0
package/LICENSE
CHANGED
|
@@ -31,17 +31,18 @@ READ THIS FIRST
|
|
|
31
31
|
**Nothing in this appendix applies to, encumbers, or imposes any obligation on
|
|
32
32
|
the software distributed under the MIT License above.**
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
The implementation and integration work in this package is original work by
|
|
35
|
+
Sythos. It has ZERO runtime dependencies. No third-party barcode source code
|
|
36
|
+
is copied into or shipped by the distributed artifact. Public or normative
|
|
37
|
+
format values may be represented in original Sythos data structures with
|
|
38
|
+
provenance and legal-review status recorded where required.
|
|
38
39
|
|
|
39
40
|
This appendix exists only because barcode symbologies carry a history of
|
|
40
41
|
specification copyrights, expired patents and live trademarks, and it is useful
|
|
41
42
|
to have that history inventoried in one place. It is an ENGINEERING INVENTORY,
|
|
42
|
-
NOT LEGAL ADVICE.
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
NOT LEGAL ADVICE. Scoped review labels identify items that need current legal or
|
|
44
|
+
registry confirmation. If your use case is commercially sensitive, consult a
|
|
45
|
+
qualified attorney.
|
|
45
46
|
|
|
46
47
|
|
|
47
48
|
1. THE DISTRIBUTED PACKAGE
|
|
@@ -53,7 +54,7 @@ use case is commercially sensitive, consult a qualified attorney.
|
|
|
53
54
|
Effective license ............... MIT, in full, as stated above
|
|
54
55
|
|
|
55
56
|
|
|
56
|
-
2. DEVELOPMENT-TIME TOOLS (NOT DISTRIBUTED
|
|
57
|
+
2. DEVELOPMENT-TIME TOOLS (NOT DISTRIBUTED OR LINKED)
|
|
57
58
|
-------------------------------------------------------------------
|
|
58
59
|
|
|
59
60
|
Tool License Role
|
|
@@ -64,16 +65,14 @@ use case is commercially sensitive, consult a qualified attorney.
|
|
|
64
65
|
|
|
65
66
|
THE PROJECT RULE, STATED PRECISELY:
|
|
66
67
|
|
|
67
|
-
These tools may be
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
These tools and public technical materials may be consulted during
|
|
69
|
+
implementation or testing. No third-party barcode source code is copied
|
|
70
|
+
into this project's output.
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
the opposite of source copying — it is how originality is PROVEN rather than
|
|
76
|
-
merely asserted.
|
|
72
|
+
Their outputs may be compared against ours as testing evidence. Public or
|
|
73
|
+
normative values are represented in original Sythos structures with provenance
|
|
74
|
+
and legal review where required. None of this is a legal conclusion about
|
|
75
|
+
derivative works or license obligations.
|
|
77
76
|
|
|
78
77
|
typescript (tsc) is not a barcode library and carries no symbology logic at
|
|
79
78
|
all. It is an optional generator: it reads the JSDoc annotations already
|
package/NOTICE.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## Origin of this code
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
The JavaScript implementation and integration work in this repository is
|
|
6
|
+
original work by Sythos. No third-party barcode source code is copied into or
|
|
7
|
+
shipped by this package. Public or normative format values may be represented
|
|
8
|
+
in original Sythos data structures, with provenance and legal-review status
|
|
9
|
+
recorded where required.
|
|
10
10
|
|
|
11
11
|
The symbologies are implemented from **published descriptions of the formats**
|
|
12
12
|
(which are systems and facts, not works of authorship) and from **constant
|
|
@@ -22,24 +22,23 @@ is derivable rather than arbitrary.
|
|
|
22
22
|
| Third-party licenses applying to the distributed package | **none** |
|
|
23
23
|
|
|
24
24
|
The `LICENSE` file carries the full MIT text plus an informational appendix
|
|
25
|
-
inventorying
|
|
26
|
-
surround these symbologies.
|
|
27
|
-
|
|
25
|
+
inventorying specification copyrights, patent history and trademarks that
|
|
26
|
+
surround these symbologies. The appendix is an engineering record, not legal
|
|
27
|
+
advice, and does not resolve obligations in every jurisdiction.
|
|
28
28
|
|
|
29
29
|
## Where other barcode libraries may and may not appear
|
|
30
30
|
|
|
31
|
-
The line is drawn at **invoke vs.
|
|
31
|
+
The line is drawn at **invoke vs. incorporate**:
|
|
32
32
|
|
|
33
33
|
| | |
|
|
34
34
|
|---|---|
|
|
35
35
|
| Running an independent implementation during **testing**, comparing its output to ours | **allowed** |
|
|
36
|
-
|
|
|
36
|
+
| Copying its source code into this project | **not done** |
|
|
37
|
+
| Consulting public technical material or an implementation during review | allowed with provenance |
|
|
37
38
|
|
|
38
|
-
Such outputs are facts about a published symbology
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
independently agrees with several unrelated ones, byte for byte, is evidently
|
|
42
|
-
correct and evidently not a copy of any of them.
|
|
39
|
+
Such outputs are facts about a published symbology. Comparing against them is a
|
|
40
|
+
testing activity; it does not place their code in the distributed package and
|
|
41
|
+
is not a legal conclusion about derivative works.
|
|
43
42
|
|
|
44
43
|
No third-party barcode code is a runtime dependency, and none of it ships in the
|
|
45
44
|
published package. See `LICENSE` §2.
|
|
@@ -69,7 +68,7 @@ worked example exists in the format's public documentation, its intermediate
|
|
|
69
68
|
values are checked — not copied code, just the arithmetic any correct
|
|
70
69
|
implementation must reproduce.
|
|
71
70
|
|
|
72
|
-
**4. The real world — the decisive test.** `examples/create.html` renders any
|
|
71
|
+
**4. The real world — the decisive test.** `git/examples/create.html` renders any
|
|
73
72
|
symbol to the screen; a phone camera or a supermarket scanner reads it or does
|
|
74
73
|
not. This is the strongest oracle available and the one that actually matters,
|
|
75
74
|
because it tests against the installed base of real scanners rather than
|
|
@@ -80,7 +79,8 @@ write.**
|
|
|
80
79
|
**5. Differential testing against independent implementations.** Random
|
|
81
80
|
payloads across every version and ECC level are encoded here and decoded by
|
|
82
81
|
several unrelated third-party barcode implementations — and vice versa. These
|
|
83
|
-
are invoked as black boxes
|
|
82
|
+
are invoked as black boxes; their source and tables are not shipped by this
|
|
83
|
+
project.
|
|
84
84
|
Agreement across implementations that share no lineage is strong evidence of
|
|
85
85
|
correctness; disagreement localises a bug immediately.
|
|
86
86
|
|
|
@@ -96,11 +96,13 @@ Records any constant table whose values were transcribed from a documented
|
|
|
96
96
|
source rather than generated by `tools/`. Each entry names the source and the
|
|
97
97
|
date of transcription.
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
| PDF417 pattern ordering | AIM USS-PDF417 public reference ([reference copy](https://www.expresscorp.com/uploads/specifications/44/USS-PDF-417.pdf)), Appendix H / Table H1, transcribed for `src/pdf417/tables.js`; accessed 2026-08-11. The reference copy is attributed here; its copyright and redistribution terms remain under legal review. |
|
|
100
|
+
| PDF417 black-box verification | ZXing Java 3.5.3 and bwip-js 4.5.1 were invoked as external black boxes on 2026-08-11 for bidirectional Text/Numeric/UTF-8 vectors. Their source and tables are not shipped. |
|
|
101
|
+
| PDF417 device evidence | User-provided 6/6 continuous-camera attestations on Pixel 10/Android 17/Chrome and iPhone 17/Safari, including printed Brother MFC-L2710DW symbols, low light/flash, blur and motion; recorded as user evidence, not independently captured by this repository. |
|
|
102
|
+
| MicroPDF417 technical and provenance review | [ISO/IEC 24728:2006](https://www.iso.org/standard/38838.html), [Wikipedia overview](https://en.wikipedia.org/wiki/MicroPDF417), [US 6,047,892 record](https://patents.google.com/patent/US6047892A/en) and its [direct PDF](https://patentimages.storage.googleapis.com/0a/79/f5/e8d374043414f3/US6047892.pdf) were consulted on 2026-08-11. ZXing-C++, Zint and bwip-js were consulted for implementation/review or black-box validation. No third-party source code is copied or shipped; normative/public values are represented in original Sythos data structures, with provenance and legal review pending. |
|
|
101
103
|
|
|
102
104
|
## Verification log
|
|
103
105
|
|
|
104
|
-
Records
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
Records the scoped review labels used by the inventory. Current labels include
|
|
107
|
+
`[VERIFIED FACT]`, `[REGISTRY CHECK REQUIRED]`, `[PATENT FAMILY REVIEW REQUIRED]`,
|
|
108
|
+
`[LICENSE TERMS REVIEW REQUIRED]` and `[LEGAL REVIEW]`.
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Read and write barcodes in JavaScript.
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](package.json)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Original Sythos implementation, zero runtime dependencies, MIT. It runs unmodified in Node, in browsers
|
|
10
10
|
(including Safari on iOS) and in web workers. The core requires no canvas, no filesystem and no
|
|
11
11
|
DOM — images go in and come out as plain `{ data, width, height }` RGBA objects, which is exactly
|
|
12
12
|
what an `ImageData` is.
|
|
@@ -91,7 +91,10 @@ const svg = toSVG(encodeQR('https://example.com', { ecc: 'M' }), { scale: 8 });
|
|
|
91
91
|
| `@sythos/js_barcode_universal/image` | `LuminanceSource`, the binarizers, grid sampling, `PerspectiveTransform` |
|
|
92
92
|
| `@sythos/js_barcode_universal/oned` | The per-format 1D writers (`encodeEAN13`, `encodeCode128`, …) and `decodeOneD` |
|
|
93
93
|
| `@sythos/js_barcode_universal/qr` | `encodeQR`, `decodeQR`, `detectQR`, `detectAndDecodeQR` |
|
|
94
|
-
| `@sythos/js_barcode_universal/datamatrix` | `encodeDataMatrix`, `decodeDataMatrix`, `detectDataMatrix`, `detectAndDecodeDataMatrix` |
|
|
94
|
+
| `@sythos/js_barcode_universal/datamatrix` | `encodeDataMatrix`, `decodeDataMatrix`, `detectDataMatrix`, `detectAndDecodeDataMatrix` |
|
|
95
|
+
| `@sythos/js_barcode_universal/aztec` | `encodeAztec`, `decodeAztec`, `detectAztec`, `detectAndDecodeAztec` |
|
|
96
|
+
| `@sythos/js_barcode_universal/pdf417` | `encodePDF417`, `decodePDF417`, `detectPDF417`, `detectAndDecodePDF417` |
|
|
97
|
+
| `@sythos/js_barcode_universal/micropdf417` | `encodeMicroPDF417`, `decodeMicroPDF417`, `detectMicroPDF417`, `detectAndDecodeMicroPDF417` |
|
|
95
98
|
| `@sythos/js_barcode_universal/render` | Every renderer plus `isWebGL2Available` / `isWebGPUAvailable` |
|
|
96
99
|
| `@sythos/js_barcode_universal/render/svg` | `toSVG`, `toSVGDataURI` |
|
|
97
100
|
| `@sythos/js_barcode_universal/render/png` | `toPNG`, `toPNGDataURI` |
|
|
@@ -103,8 +106,8 @@ The `unpkg` and `jsdelivr` fields point at the IIFE bundle, so a CDN needs no in
|
|
|
103
106
|
|
|
104
107
|
```html
|
|
105
108
|
<script src="https://unpkg.com/@sythos/js_barcode_universal"></script>
|
|
106
|
-
<script src="https://unpkg.com/@sythos/js_barcode_universal@1.
|
|
107
|
-
<script src="https://cdn.jsdelivr.net/npm/@sythos/js_barcode_universal@1.
|
|
109
|
+
<script src="https://unpkg.com/@sythos/js_barcode_universal@1.2.5"></script>
|
|
110
|
+
<script src="https://cdn.jsdelivr.net/npm/@sythos/js_barcode_universal@1.2.5"></script>
|
|
108
111
|
```
|
|
109
112
|
|
|
110
113
|
Pin the version for anything you ship; the unpinned form resolves to `latest` and will move under
|
|
@@ -207,13 +210,19 @@ time.
|
|
|
207
210
|
| Code 11 | `code11` | 1D | ✅ | — |
|
|
208
211
|
| MSI Plessey | `msi` | 1D | ✅ | — |
|
|
209
212
|
| Pharmacode | `pharmacode` | 1D | ✅ | — |
|
|
210
|
-
| QR Code | `qr` | 2D | ✅ | ✅ |
|
|
211
|
-
| Data Matrix ECC 200 | `datamatrix` | 2D | ✅ | ✅ |
|
|
213
|
+
| QR Code | `qr` | 2D | ✅ | ✅ |
|
|
214
|
+
| Data Matrix ECC 200 | `datamatrix` | 2D | ✅ | ✅ |
|
|
212
215
|
| Aztec Code | `aztec` | 2D | ✅ | ✅ |
|
|
216
|
+
| PDF417 | `pdf417` | 2D | ✅ | ✅ |
|
|
217
|
+
| MicroPDF417 | `micropdf417` | 2D | ✅ | ✅ |
|
|
213
218
|
|
|
214
|
-
|
|
215
|
-
write-only
|
|
216
|
-
|
|
219
|
+
Twenty formats, all writable, seventeen readable. **Code 11, MSI Plessey and Pharmacode remain
|
|
220
|
+
write-only in the generic image pipeline.** PDF417 exposes direct matrix decoding, automatic
|
|
221
|
+
camera localization and an assisted quadrilateral sampler through its subpath. Its detector is
|
|
222
|
+
validated on degraded synthetic photographs and real Pixel 10/Chrome and iPhone 17/Safari camera
|
|
223
|
+
tests; external black-box vectors from ZXing 3.5.3 and bwip-js also pass in both directions.
|
|
224
|
+
Text and Numeric vectors are covered bidirectionally; binary byte-for-byte interop remains
|
|
225
|
+
explicitly unclaimed until a dedicated external byte corpus is added.
|
|
217
226
|
|
|
218
227
|
[^1]: `gs1128`, `itf14` and `isbn` are sub-variants that share a decoder with their base format, so
|
|
219
228
|
they decode under that base id: a GS1-128 comes back as `code128`, an ITF-14 as `itf`, and an ISBN
|
|
@@ -241,35 +250,70 @@ Binary content is accepted as a `Uint8Array` with `encoding: 'base256'`. The cur
|
|
|
241
250
|
decoder handles ASCII and Base256 codewords; C40, Text, X12 and EDIFACT input symbols are not yet
|
|
242
251
|
decoded. The current detector accepts axis-aligned square or rectangular symbols; the normal
|
|
243
252
|
`decode(image, { formats: ['datamatrix'] })` pipeline also retries quarter-turn rotations.
|
|
244
|
-
Arbitrary-angle and perspective-skewed Data Matrix photographs are not yet guaranteed.
|
|
253
|
+
Arbitrary-angle and perspective-skewed Data Matrix photographs are not yet guaranteed.
|
|
254
|
+
|
|
255
|
+
### Aztec Code
|
|
256
|
+
|
|
257
|
+
`aztec` writes Compact layers 1–4 and Full layers 1–32, selecting a fitting symbol automatically
|
|
258
|
+
unless `layers` and `compact` are forced. It supports the five Aztec text tables and UTF-8 byte
|
|
259
|
+
payloads through Binary Shift, with `eccPercent` (default 23) controlling the requested
|
|
260
|
+
error-correction level.
|
|
261
|
+
ECI is not yet a configurable public option.
|
|
262
|
+
|
|
263
|
+
```js
|
|
264
|
+
import { encodeAztec, decodeAztec } from '@sythos/js_barcode_universal/aztec';
|
|
265
|
+
|
|
266
|
+
const symbol = encodeAztec('Greetings My Lord Sythos 👋', { eccPercent: 23 });
|
|
267
|
+
const result = decodeAztec(symbol);
|
|
268
|
+
console.log(result.text); // Greetings My Lord Sythos 👋
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
The image detector handles rotation, inverted polarity and quadrilateral sampling around the
|
|
272
|
+
central bull’s-eye. Severe photographic perspective remains an interoperability and robustness
|
|
273
|
+
gate rather than a guaranteed capability.
|
|
274
|
+
|
|
275
|
+
### PDF417 (writer, matrix decoder and camera reader)
|
|
245
276
|
|
|
246
|
-
|
|
277
|
+
`pdf417` supports PDF417 Text, Byte and Numeric compaction, ECI 3 (ISO-8859-1) and ECI 26
|
|
278
|
+
(UTF-8), ECC levels 0–8, row-height inference and Reed–Solomon erasure correction. The direct
|
|
279
|
+
matrix decoder is available from `@sythos/js_barcode_universal/pdf417`.
|
|
247
280
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
281
|
+
The image helper handles clean module-aligned raster symbols, integer scale, right-angle
|
|
282
|
+
rotations, automatic perspective estimation, mild blur/noise and an application-supplied
|
|
283
|
+
quadrilateral. Results expose `bytes` and ordered `segments` for byte-preserving payloads. Real
|
|
284
|
+
device validation covers Pixel 10/Chrome and iPhone 17/Safari with printed symbols and continuous
|
|
285
|
+
camera capture. Extreme glare, severe occlusion, curved media and multi-symbol scenes remain
|
|
286
|
+
outside the validated robustness envelope.
|
|
253
287
|
|
|
254
288
|
```js
|
|
255
|
-
import {
|
|
289
|
+
import { encodePDF417, decodePDF417 } from '@sythos/js_barcode_universal/pdf417';
|
|
256
290
|
|
|
257
|
-
const symbol =
|
|
258
|
-
|
|
259
|
-
console.log(result.text); // Ciao, mondo 👋
|
|
291
|
+
const symbol = encodePDF417('AAMVA SAMPLE', { eccLevel: 3 });
|
|
292
|
+
console.log(decodePDF417(symbol).text);
|
|
260
293
|
```
|
|
261
294
|
|
|
262
|
-
|
|
263
|
-
central bull’s-eye. Severe photographic perspective remains an interoperability and robustness
|
|
264
|
-
gate rather than a guaranteed capability.
|
|
295
|
+
### MicroPDF417
|
|
265
296
|
|
|
266
|
-
|
|
297
|
+
`micropdf417` writes and reads the 34 fixed MicroPDF417 variants. It supports Text, Byte and
|
|
298
|
+
Numeric compaction, plus Byte-compaction ECI 3 (ISO-8859-1) and 26 (UTF-8). `columns`,
|
|
299
|
+
`rowHeight` and `aspectRatio` let callers constrain automatic variant selection.
|
|
267
300
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
301
|
+
```js
|
|
302
|
+
import { encodeMicroPDF417, decodeMicroPDF417 } from '@sythos/js_barcode_universal/micropdf417';
|
|
303
|
+
|
|
304
|
+
const symbol = encodeMicroPDF417('MICRO PDF417', { compaction: 'text' });
|
|
305
|
+
console.log(decodeMicroPDF417(symbol).text);
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
The detector accepts clean, integer-scaled raster symbols and quarter-turn rotations. Arbitrary
|
|
309
|
+
perspective, severe photographic degradation and multi-symbol scenes are not yet claimed as
|
|
310
|
+
robust capabilities.
|
|
311
|
+
|
|
312
|
+
### Not implemented
|
|
313
|
+
|
|
314
|
+
**GS1 DataBar and MaxiCode are not implemented** — neither writing nor reading. Data Matrix ECC
|
|
315
|
+
200 is implemented for its classic square and rectangular symbols;
|
|
316
|
+
DMRE remains outside the current scope. See [`PLAN.md`](PLAN.md) for the remaining symbologies.
|
|
273
317
|
|
|
274
318
|
---
|
|
275
319
|
|
|
@@ -313,17 +357,20 @@ encode(text, options?) → BitMatrix
|
|
|
313
357
|
```
|
|
314
358
|
|
|
315
359
|
`options`: `format` (default `'qr'`), `ecc` (`'L'|'M'|'Q'|'H'`), `version` (QR 1–40, auto if
|
|
316
|
-
omitted), `checkDigit`, `fullAscii` (Code 39 extended), `gs1` (emit a leading FNC1). Data Matrix
|
|
317
|
-
ECC 200 accepts `shape: 'any' | 'square' | 'rectangular'` and `encoding: 'ascii' | 'base256'`.
|
|
360
|
+
omitted), `checkDigit`, `fullAscii` (Code 39 extended), `gs1` (emit a leading FNC1). Data Matrix
|
|
361
|
+
ECC 200 accepts `shape: 'any' | 'square' | 'rectangular'` and `encoding: 'ascii' | 'base256'`.
|
|
318
362
|
Aztec accepts `layers`, `compact` and `eccPercent`; it transports UTF-8 byte payloads through
|
|
319
363
|
Binary Shift, and it does not expose configurable ECI yet.
|
|
364
|
+
MicroPDF417 accepts `compaction: 'auto' | 'text' | 'byte' | 'numeric'`, ECI 3 or 26 for Byte
|
|
365
|
+
compaction, and optional `columns`, `rowHeight` and `aspectRatio` constraints.
|
|
320
366
|
|
|
321
367
|
```js
|
|
322
368
|
encode('5901234123457', { format: 'ean13' })
|
|
323
369
|
encode('ABC-123', { format: 'code39', fullAscii: true, checkDigit: true })
|
|
324
370
|
encode('https://example.com', { format: 'qr', ecc: 'H', version: 7 })
|
|
325
|
-
encode('0101234567890128', { format: 'datamatrix', gs1: true })
|
|
326
|
-
encode('
|
|
371
|
+
encode('0101234567890128', { format: 'datamatrix', gs1: true })
|
|
372
|
+
encode('Greetings My Lord Sythos 👋', { format: 'aztec', eccPercent: 23 })
|
|
373
|
+
encode('MICRO PDF417', { format: 'micropdf417', compaction: 'text' })
|
|
327
374
|
```
|
|
328
375
|
|
|
329
376
|
```js
|
|
@@ -454,35 +501,39 @@ and reports which backend actually drew.
|
|
|
454
501
|
|
|
455
502
|
MIT © 2026 Sythos. Every source file carries the header.
|
|
456
503
|
|
|
457
|
-
**The
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
co-author to credit.
|
|
504
|
+
**The implementation is original Sythos work.** No third-party barcode source code is copied into
|
|
505
|
+
or shipped by this package. The symbologies are implemented from published descriptions of the
|
|
506
|
+
formats and from original Sythos data structures; MicroPDF417 normative/public values carry
|
|
507
|
+
provenance and pending legal review in `NOTICE.md`. The distributed package has no runtime
|
|
508
|
+
third-party licence or co-author attribution.
|
|
463
509
|
|
|
464
510
|
**Trademark is not licence.** QR Code® is a registered trademark of DENSO WAVE; Aztec Code,
|
|
465
511
|
MaxiCode and GS1 DataBar are likewise marks of their owners. A trademark does not restrict
|
|
466
512
|
implementing a symbology, but it does constrain branding — which is why this package is named
|
|
467
513
|
descriptively rather than after any mark.
|
|
468
514
|
|
|
469
|
-
Data Matrix ECC 200 is governed by ISO/IEC 16022:2024; GS1 DataMatrix additionally uses the GS1
|
|
470
|
-
General Specifications and a leading FNC1. Its engineering provenance, patent and trademark
|
|
471
|
-
research notes are recorded in [`licenses/data-matrix.license`](licenses/data-matrix.license),
|
|
472
|
-
with unresolved claims kept explicitly marked
|
|
515
|
+
Data Matrix ECC 200 is governed by ISO/IEC 16022:2024; GS1 DataMatrix additionally uses the GS1
|
|
516
|
+
General Specifications and a leading FNC1. Its engineering provenance, patent and trademark
|
|
517
|
+
research notes are recorded in [`licenses/data-matrix.license`](licenses/data-matrix.license),
|
|
518
|
+
with unresolved claims kept explicitly marked using scoped review labels.
|
|
519
|
+
|
|
520
|
+
PDF417 and MicroPDF417 provenance and legal review notes are recorded in
|
|
521
|
+
[`licenses/pdf417.license`](licenses/pdf417.license),
|
|
522
|
+
[`licenses/micropdf417.license`](licenses/micropdf417.license) and the attribution log in
|
|
523
|
+
[`NOTICE.md`](NOTICE.md).
|
|
473
524
|
|
|
474
525
|
[`LICENSE`](LICENSE) carries the full MIT text plus an informational appendix inventorying the
|
|
475
526
|
specification copyrights, patent history and trademarks that surround these symbologies. None of
|
|
476
|
-
them
|
|
527
|
+
them is resolved by this file; the appendix is an engineering inventory, not legal advice.
|
|
477
528
|
[`NOTICE.md`](NOTICE.md) records the origin of the code and how its correctness is verified.
|
|
478
529
|
|
|
479
530
|
---
|
|
480
531
|
|
|
481
|
-
## Contributing and roadmap
|
|
482
|
-
|
|
483
|
-
[`PLAN.md`](PLAN.md) is the live status document: what is shipped, what is next, and the ground
|
|
484
|
-
rules — chief among them that no code
|
|
485
|
-
|
|
532
|
+
## Contributing and roadmap
|
|
533
|
+
|
|
534
|
+
[`PLAN.md`](PLAN.md) is the live status document: what is shipped, what is next, and the ground
|
|
535
|
+
rules — chief among them that no third-party source code is copied into or shipped by this
|
|
536
|
+
project, while public or normative values remain provenance-tracked and subject to legal review.
|
|
486
537
|
|
|
487
538
|
Issues and pull requests are welcome at
|
|
488
539
|
[Sythos/JS_Barcode_Universal](https://github.com/Sythos/JS_Barcode_Universal). A patch that adds a
|