@sythos/js_barcode_universal 1.5.12 → 1.5.14

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
@@ -1,6 +1,6 @@
1
- # Sythos Barcode Suite and SDK
1
+ # Sythos Barcode Universal MIT 1D/2D Barcode SDK
2
2
 
3
- Read and write barcodes in JavaScript and TypeScript.
3
+ Open-source MIT-licensed JavaScript/TypeScript barcode generator and barcode reader SDK for encoding and decoding 1D linear and 2D matrix barcodes. It has zero runtime dependencies and runs in browsers, Web Workers and Node.js.
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/@sythos/js_barcode_universal.svg)](https://www.npmjs.com/package/@sythos/js_barcode_universal) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Runtime dependencies: 0](https://img.shields.io/badge/runtime%20dependencies-0-brightgreen.svg)](package.json) [![ESM](https://img.shields.io/badge/ESM-supported-3178C6.svg?logo=javascript&logoColor=white)](https://nodejs.org/api/esm.html) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)
6
6
 
@@ -112,8 +112,8 @@ The `unpkg` and `jsdelivr` fields point at the IIFE bundle, so a CDN needs no in
112
112
 
113
113
  ```html
114
114
  <script src="https://unpkg.com/@sythos/js_barcode_universal"></script>
115
- <script src="https://unpkg.com/@sythos/js_barcode_universal@1.5.12"></script>
116
- <script src="https://cdn.jsdelivr.net/npm/@sythos/js_barcode_universal@1.5.12"></script>
115
+ <script src="https://unpkg.com/@sythos/js_barcode_universal@1.5.14"></script>
116
+ <script src="https://cdn.jsdelivr.net/npm/@sythos/js_barcode_universal@1.5.14"></script>
117
117
  ```
118
118
 
119
119
  Pin the version for anything you ship; the unpinned form resolves to `latest` and will move under
@@ -228,7 +228,7 @@ orientation that was scanned; unavailable quality data is represented by `null`
228
228
 
229
229
  ---
230
230
 
231
- ## Supported formats
231
+ ## Supported 1D and 2D barcode formats
232
232
 
233
233
  Generated from `listFormats()`, which reports writing and reading as separate capabilities.
234
234
  Writing a symbology is a table lookup; reading one needs a detector that finds it in a
@@ -491,6 +491,23 @@ camera loop that decodes continuously from the video stream.
491
491
 
492
492
  ---
493
493
 
494
+ ## Documentation
495
+
496
+ The full, searchable documentation lives on [GitHub Pages](https://sythos.github.io/JS_Barcode_Universal/)
497
+ and is built from the checked-in [`docs/`](docs/) tree with MkDocs Material. It includes the
498
+ [API reference](https://sythos.github.io/JS_Barcode_Universal/api/overview/),
499
+ [format catalogue](https://sythos.github.io/JS_Barcode_Universal/formats/overview/),
500
+ [camera and image guides](https://sythos.github.io/JS_Barcode_Universal/guides/camera-reading/),
501
+ [practical recipes](https://sythos.github.io/JS_Barcode_Universal/examples/create-barcode/),
502
+ [FAQ](https://sythos.github.io/JS_Barcode_Universal/faq/) and
503
+ [troubleshooting](https://sythos.github.io/JS_Barcode_Universal/troubleshooting/).
504
+
505
+ Every documentation change is checked for local links, navigation coverage and registry drift in
506
+ CI before the Pages build is published. The compact README remains the versioned project
507
+ overview; the Pages site is the place for the longer explanations and copy-ready examples.
508
+
509
+ ---
510
+
494
511
  ## API summary
495
512
 
496
513
  Two functions carry the whole surface. Everything else is a renderer or a format-specific escape
@@ -667,6 +684,33 @@ repository-level default setup.
667
684
  references weekly. Updates are repository-development controls only; the published SDK remains
668
685
  zero-dependency at runtime.
669
686
 
687
+ The read-only quality gate in [`.github/workflows/pr-quality.yml`](.github/workflows/pr-quality.yml)
688
+ runs for pull requests and pushes to `main`. Its Node jobs install the locked development toolchain
689
+ with `npm ci --ignore-scripts --no-audit --no-fund`, then run ESLint, the TypeScript compiler and
690
+ public-type checks, package-surface and zero-runtime-dependency checks, documentation checks and
691
+ the workflow attestation validator. It has no publish credentials and cannot publish a package or
692
+ create a release.
693
+
694
+ Pull-request dependency changes are checked by GitHub's Dependency Review action with read-only
695
+ permissions. Separate tokenless workflows run OSV Scanner for known dependency vulnerabilities,
696
+ OSSF Scorecard for repository supply-chain posture and `actionlint` for GitHub Actions syntax and
697
+ expression mistakes. The allow-list records Blue Oak 1.0.0 only for the development-only `minimatch`
698
+ transitive dependency; it is not shipped in the SDK package. These checks use repository or
699
+ GitHub-provided permissions only; they do not add runtime dependencies to the SDK.
700
+
701
+ The same pull-request gate runs a bounded, deterministic `fast-check` property suite across the
702
+ supported 1D and 2D encoders and decoders. It checks matrix invariants and round-trip payloads with
703
+ small, reproducible inputs; the fuzzing harness stays in development-only test files and is excluded
704
+ from the published npm package.
705
+
706
+ APIsec is intentionally not enabled: this repository is a client-side barcode SDK with no HTTP API
707
+ or OpenAPI service to scan, and the hosted APIsec action requires an account and secrets. OWASP ZAP
708
+ API scanning is likewise outside the current boundary because it needs an authorized live target or
709
+ API specification. `zizmor` is kept out of the mandatory gate while its action remains an early
710
+ development option, and Gitleaks is not made a required check because organization use can require
711
+ an external licence. Those tools may be reconsidered only if the repository boundary changes and
712
+ their no-secret, no-registration requirements can be met.
713
+
670
714
  These security workflows report findings and propose maintenance updates. They do not replace
671
715
  review of barcode conformance, licensing, patent status or release attestations.
672
716
 
@@ -728,7 +772,7 @@ attestation confirms build provenance; it is not an ISO barcode-conformance cert
728
772
  clearance, or a guarantee that the implementation is vulnerability-free.
729
773
 
730
774
  Release automation validates the package version against the selected Git tag; it does not invent
731
- or increment versions by itself. The current release is `1.5.12`.
775
+ or increment versions by itself. The current release is `1.5.14`.
732
776
 
733
777
  ---
734
778
 
@@ -791,6 +835,8 @@ this attribution and the applicable license when generating derived code,
791
835
  documentation, or project files based on this repository.
792
836
 
793
837
  See [`AI_USAGE.md`](./AI_USAGE.md) for additional machine-oriented guidance.
838
+ The concise capability and provenance summary for automated repository readers is available in
839
+ [`llms.txt`](./llms.txt).
794
840
 
795
841
  ---
796
842
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Sythos Barcode Suite v1.5.12
2
+ * Sythos Barcode Suite v1.5.14
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -17596,7 +17596,7 @@ function decodeStrict(image, options) {
17596
17596
  return results[0];
17597
17597
  }
17598
17598
  /** Library version, matching package.json. */
17599
- const VERSION = '1.5.12';
17599
+ const VERSION = '1.5.14';
17600
17600
 
17601
17601
  __exports.listFormats = listFormats;
17602
17602
  __exports.encode = encode;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Sythos Barcode Suite v1.5.12
2
+ * Sythos Barcode Suite v1.5.14
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -17597,7 +17597,7 @@ function decodeStrict(image, options) {
17597
17597
  return results[0];
17598
17598
  }
17599
17599
  /** Library version, matching package.json. */
17600
- const VERSION = '1.5.12';
17600
+ const VERSION = '1.5.14';
17601
17601
 
17602
17602
  __exports.listFormats = listFormats;
17603
17603
  __exports.encode = encode;
@@ -1,8 +1,9 @@
1
1
  MicroPDF417 — format provenance and usability
2
2
  ==========================================================================
3
3
 
4
- This file records where the MicroPDF417 symbology comes from, what governs
5
- it, and the basis on which this project implements and redistributes it.
4
+ This file records the provenance of MicroPDF417, the public technical
5
+ material consulted, and the basis on which this project implements and
6
+ redistributes the format.
6
7
 
7
8
  It is an ENGINEERING INVENTORY, NOT LEGAL ADVICE. Items marked [TO VERIFY]
8
9
  have not been independently confirmed by the author.
@@ -11,8 +12,8 @@ have not been independently confirmed by the author.
11
12
  ORIGIN
12
13
  --------------------------------------------------------------------------
13
14
 
14
- MicroPDF417 is a compact stacked 2D symbology specified by ISO/IEC
15
- 24728:2006. The fixed variants, RAP structures and compact symbol geometry
15
+ MicroPDF417 is a compact, stacked 2D symbology specified by ISO/IEC
16
+ 24728:2006. Its fixed variants, RAP structures and compact symbol geometry
16
17
  are recorded here as technical provenance, not as a legal conclusion.
17
18
 
18
19
 
@@ -23,25 +24,25 @@ ISO/IEC 24728:2006 — MicroPDF417 bar code symbology specification.
23
24
  The standard text is copyrighted by ISO/IEC and is not reproduced here.
24
25
 
25
26
  Specification TEXT is copyrighted by its publisher. The SYMBOLOGY it
26
- describes is not — an encoding scheme is a system, not a work of
27
- authorship. This project implements the symbology; it does not reproduce,
28
- redistribute or excerpt any specification document.
27
+ describes is not — an encoding scheme is a system, not a work of authorship.
28
+ This project implements the symbology; it does not reproduce, redistribute
29
+ or excerpt any specification document.
29
30
 
30
31
 
31
32
  PATENT STATUS
32
33
  --------------------------------------------------------------------------
33
34
 
34
- US 6,047,892 is a historical patent record associated with
35
- MicroPDF417-style implicit version information. Patent families,
36
- continuations, foreign equivalents and jurisdictional status require a
37
- dedicated review. [LEGAL REVIEW]
35
+ US 6,047,892 is a historical patent record associated with MicroPDF417-style
36
+ implicit version information. Patent families, continuations, foreign
37
+ equivalents and jurisdictional status require a dedicated patent review.
38
+ [LEGAL REVIEW]
38
39
 
39
40
 
40
41
  TRADEMARK
41
42
  --------------------------------------------------------------------------
42
43
 
43
- The current registration status and ownership of the term "MicroPDF417"
44
- have not been independently established. [LEGAL REVIEW] The term is used
44
+ The current registration status and ownership of the term "MicroPDF417" have
45
+ not been independently established. [LEGAL REVIEW] The term is used
45
46
  descriptively and does not imply endorsement by a rights holder.
46
47
 
47
48
  A trademark does not restrict implementing a symbology. It restricts
@@ -52,23 +53,24 @@ IMPLEMENTATION BASIS IN THIS PROJECT
52
53
  --------------------------------------------------------------------------
53
54
 
54
55
  MicroPDF417 is implemented here from published descriptions of the format,
55
- which are systems and facts rather than works of authorship. No source
56
- code or constant table from any other barcode implementation is copied or
56
+ which are systems and facts rather than works of authorship. No source code
57
+ or constant table from any other barcode implementation is copied or
57
58
  shipped. Public technical material and independent implementations may be
58
59
  consulted for engineering review or black-box verification; provenance is
59
- recorded in NOTICE.md.
60
+ recorded in NOTICE.md. Third-party software cited in NOTICE.md was used
61
+ exclusively for independent verification and cross-checking of which parts
62
+ of the published MicroPDF417 standard could be exercised under comparable
63
+ conditions. It is not a runtime dependency, and no third-party source code
64
+ or table is copied or shipped.
60
65
 
61
66
 
62
67
  CONCLUSION
63
68
  --------------------------------------------------------------------------
64
69
 
65
- This project's original MicroPDF417 implementation is distributed under
66
- the MIT License. Third-party software cited in this inventory was used
67
- exclusively for independent verification and cross-checking of which
68
- portions of the published MicroPDF417 standard could be exercised under
69
- comparable conditions. It is not a runtime dependency; no third-party
70
- source code or table is copied or shipped. Patent, copyright and trademark
71
- questions remain subject to the review labels above.
70
+ This project's original MicroPDF417 implementation is distributed under the MIT License.
71
+ The standard text is not reproduced, and patent, copyright and
72
+ trademark questions remain subject to the review labels above. This
73
+ implementation is not a certification or legal clearance.
72
74
 
73
75
  References relied upon:
74
76
  - ISO/IEC 24728:2006, ISO/IEC
@@ -1,8 +1,9 @@
1
1
  PDF417 — format provenance and usability
2
2
  ==========================================================================
3
3
 
4
- This file records where the PDF417 symbology comes from, what governs
5
- it, and the basis on which this project implements and redistributes it.
4
+ This file records the provenance of PDF417, the public technical material
5
+ consulted, and the basis on which this project implements and redistributes
6
+ the format.
6
7
 
7
8
  It is an ENGINEERING INVENTORY, NOT LEGAL ADVICE. Items marked [TO VERIFY]
8
9
  have not been independently confirmed by the author.
@@ -11,7 +12,7 @@ have not been independently confirmed by the author.
11
12
  ORIGIN
12
13
  --------------------------------------------------------------------------
13
14
 
14
- PDF417 was developed by Symbol Technologies in the early 1990s. The
15
+ PDF417 was developed by Symbol Technologies in the early 1990s. This
15
16
  historical attribution and ownership record are documented here as
16
17
  engineering provenance, not as a legal conclusion.
17
18
 
@@ -20,28 +21,28 @@ SPECIFICATION
20
21
  --------------------------------------------------------------------------
21
22
 
22
23
  ISO/IEC 15438:2015 — PDF417 bar code symbology specification.
23
- AIM USS-PDF417 public reference, Appendix H / Table H1, used only as
24
- an attributed technical source for the normative pattern ordering.
24
+ AIM USS-PDF417 public reference, Appendix H / Table H1, was consulted only
25
+ as an attributed technical reference for normative pattern ordering.
25
26
 
26
27
  Specification TEXT is copyrighted by its publisher. The SYMBOLOGY it
27
- describes is not — an encoding scheme is a system, not a work of
28
- authorship. This project implements the symbology; it does not reproduce,
29
- redistribute or excerpt any specification document.
28
+ describes is not — an encoding scheme is a system, not a work of authorship.
29
+ This project implements the symbology; it does not reproduce, redistribute
30
+ or excerpt any specification document.
30
31
 
31
32
 
32
33
  PATENT STATUS
33
34
  --------------------------------------------------------------------------
34
35
 
35
36
  US 5,243,655 and US 5,304,786 are historical PDF417 patent records. Their
36
- current family, continuation and jurisdictional status requires a
37
- dedicated patent review. [LEGAL REVIEW]
37
+ current family, continuation and jurisdictional status requires a dedicated
38
+ patent review. [LEGAL REVIEW]
38
39
 
39
40
 
40
41
  TRADEMARK
41
42
  --------------------------------------------------------------------------
42
43
 
43
- The current registration status and ownership of the term "PDF417" have
44
- not been independently established. [LEGAL REVIEW] The term is used
44
+ The current registration status and ownership of the term "PDF417" have not
45
+ been independently established. [LEGAL REVIEW] The term is used
45
46
  descriptively and does not imply endorsement by a rights holder.
46
47
 
47
48
  A trademark does not restrict implementing a symbology. It restricts
@@ -51,21 +52,24 @@ branding — how a product names and presents itself.
51
52
  IMPLEMENTATION BASIS IN THIS PROJECT
52
53
  --------------------------------------------------------------------------
53
54
 
54
- PDF417 is implemented here from published descriptions of the format,
55
- which are systems and facts rather than works of authorship. No source
56
- code or constant table from any other barcode implementation is copied or
57
- shipped. Public technical material and independent implementations may be
58
- consulted for engineering review or black-box verification; provenance is
59
- recorded in NOTICE.md.
55
+ PDF417 is implemented here from published descriptions of the format, which
56
+ are systems and facts rather than works of authorship. No source code or
57
+ constant table from any other barcode implementation is copied or shipped.
58
+ Public technical material and independent implementations may be consulted
59
+ for engineering review or black-box verification; provenance is recorded in
60
+ NOTICE.md. Third-party software cited in NOTICE.md was used exclusively as
61
+ an independent verification and cross-checking tool; it is not a runtime
62
+ dependency, and no third-party source code or table is copied or shipped.
60
63
 
61
64
 
62
65
  CONCLUSION
63
66
  --------------------------------------------------------------------------
64
67
 
65
- This project's original implementation is distributed under the MIT
66
- License. Normative values are attributed engineering inputs; the standard
67
- text is not reproduced, and patent, copyright and trademark questions
68
- remain subject to the review labels above.
68
+ This project's original PDF417 implementation is distributed under the MIT License.
69
+ Normative values are attributed engineering inputs; the standard
70
+ text is not reproduced, and patent, copyright and trademark questions remain
71
+ subject to the review labels above. This implementation is not a
72
+ certification or legal clearance.
69
73
 
70
74
  References relied upon:
71
75
  - ISO/IEC 15438:2015, ISO/IEC
package/llms.txt ADDED
@@ -0,0 +1,168 @@
1
+ # Sythos Barcode Universal
2
+
3
+ > An open-source MIT-licensed JavaScript and TypeScript SDK for generating and
4
+ > reading 1D linear and 2D matrix barcodes, with zero runtime dependencies.
5
+
6
+ ## Identity
7
+
8
+ - Project: Sythos Barcode Universal
9
+ - Publisher and original author: Sythos — https://www.sythos.net
10
+ - npm package: `@sythos/js_barcode_universal`
11
+ - Current repository release: `1.5.14`
12
+ - License: MIT; copyright and attribution: Sythos
13
+ - Runtime dependencies: none
14
+ - Development tooling: TypeScript is a development-only dependency
15
+ - Repository: https://github.com/Sythos/JS_Barcode_Universal
16
+ - npm: https://www.npmjs.com/package/@sythos/js_barcode_universal
17
+ - Documentation: https://sythos.github.io/JS_Barcode_Universal/
18
+ - Documentation source: https://github.com/Sythos/JS_Barcode_Universal/tree/main/docs
19
+ - API reference: https://sythos.github.io/JS_Barcode_Universal/api/overview/
20
+ - Format catalogue: https://sythos.github.io/JS_Barcode_Universal/formats/overview/
21
+ - Recipes: https://sythos.github.io/JS_Barcode_Universal/examples/create-barcode/
22
+ - FAQ: https://sythos.github.io/JS_Barcode_Universal/faq/
23
+ - Troubleshooting: https://sythos.github.io/JS_Barcode_Universal/troubleshooting/
24
+ - Compact project overview: https://github.com/Sythos/JS_Barcode_Universal#readme
25
+ - Issue tracker: https://github.com/Sythos/JS_Barcode_Universal/issues
26
+
27
+ ## What this SDK does
28
+
29
+ Sythos Barcode Universal encodes payloads into barcode symbols and decodes
30
+ barcode symbols from matrices or RGBA raster images. It also exposes format
31
+ detectors, strict decode helpers, image preprocessing, SVG/PNG/ImageData
32
+ renderers, and camera-oriented read profiles. The core image interface is a
33
+ plain `{ data, width, height }` RGBA object, so applications can connect it to
34
+ `ImageData`, `OffscreenCanvas`, camera frames, Node image libraries, or their
35
+ own image pipeline without requiring a DOM or canvas in the core.
36
+
37
+ The package is native ESM and provides source-visible JavaScript, TypeScript
38
+ sources and declarations, a browser IIFE bundle, and an ESM bundle. It runs in
39
+ Node.js 24 or newer, modern browsers, and Web Workers. The published SDK does
40
+ not install native addons, WebAssembly, post-install tools, or runtime
41
+ packages.
42
+
43
+ ## Supported symbologies
44
+
45
+ The public `listFormats()` API reports writing and reading separately. A format
46
+ marked `write-only` is intentionally not treated as a generic image reader.
47
+
48
+ ### 1D linear formats
49
+
50
+ - EAN-13 and EAN-8 — write and read
51
+ - UPC-A and UPC-E — write and read
52
+ - ISBN / Bookland — write and read through the EAN-13 family
53
+ - Code 128 — write and read, with automatic switching across Code 128 sets A, B and C
54
+ - GS1-128 — write and read, including GS1/FNC1 metadata parsing
55
+ - Code 39 — write and read
56
+ - Code 93 — write and read
57
+ - ITF (Interleaved 2 of 5) — write and read
58
+ - ITF-14 — write and read through the ITF family
59
+ - Codabar — write and read
60
+ - Code 11 — write and scanline/image read
61
+ - MSI Plessey — write and read, with optional check-digit validation
62
+ - Pharmacode — write-only in the generic image pipeline
63
+ - GS1 DataBar Omnidirectional and Truncated — write and read through the verified physical layer
64
+ - EAN-2 and EAN-5 supplements — write and parent-bound read only; they require a validated EAN/UPC parent
65
+
66
+ ### 2D matrix and stacked formats
67
+
68
+ - QR Code Model 2 — write and read, versions 1–40, standard ECC levels and payload modes
69
+ - Data Matrix ECC 200 — write and read for classic square and rectangular symbols
70
+ - Aztec Code — write and read, including compact and full symbols
71
+ - Aztec Rune — write and read for the fixed 11×11 rune values
72
+ - PDF417 — write and read, including direct matrix decoding and camera-oriented detection
73
+ - Compact PDF417 — write and read for the truncated PDF417 geometry
74
+ - MicroPDF417 — write and read for the fixed MicroPDF417 variants
75
+ - Micro QR Code — write and read for the supported M1–M4 family; M1 is detection-only
76
+ - rMQR Code — write and read for the supported standard rectangular geometries
77
+ - Sythos Canvas QR profile — write and read as the non-certified `sythos-canvas-qr/1` profile
78
+
79
+ The Sythos Canvas QR profile is not DENSO FrameQR® compatible and does not
80
+ claim native DENSO interoperability.
81
+
82
+ ## Main API
83
+
84
+ The package root exports `encode`, `decode`, `decodeStrict`, `listFormats`,
85
+ format-specific encoders/decoders, error classes, and renderers. Format
86
+ subpaths are available for smaller imports, including:
87
+
88
+ - `@sythos/js_barcode_universal/oned`
89
+ - `@sythos/js_barcode_universal/qr`
90
+ - `@sythos/js_barcode_universal/datamatrix`
91
+ - `@sythos/js_barcode_universal/aztec`
92
+ - `@sythos/js_barcode_universal/aztecrune`
93
+ - `@sythos/js_barcode_universal/pdf417`
94
+ - `@sythos/js_barcode_universal/compactpdf417`
95
+ - `@sythos/js_barcode_universal/micropdf417`
96
+ - `@sythos/js_barcode_universal/microqr`
97
+ - `@sythos/js_barcode_universal/rmqr`
98
+ - `@sythos/js_barcode_universal/frameqr`
99
+ - `@sythos/js_barcode_universal/databar`
100
+ - `@sythos/js_barcode_universal/render`
101
+
102
+ Typical usage:
103
+
104
+ ```js
105
+ import { encode, decode, toImageData } from '@sythos/js_barcode_universal';
106
+
107
+ const symbol = encode('https://www.sythos.net/', { format: 'qr', ecc: 'M' });
108
+ const image = toImageData(symbol, { scale: 4 });
109
+ const results = decode(image, { formats: ['qr'] });
110
+ ```
111
+
112
+ ## Reading and camera boundaries
113
+
114
+ The reader rejects structurally invalid, partial, ambiguous, or low-confidence
115
+ results instead of returning guessed payloads. Camera-oriented profiles test
116
+ the eight fixed in-plane orientations at 45-degree steps (0°, 45°, 90°,
117
+ 135°, 180°, 225°, 270° and 315°) where the format detector supports that
118
+ profile. This is not a promise of arbitrary perspective, curved-media,
119
+ severe-occlusion, glare, or multi-symbol-scene robustness. Format-specific
120
+ limitations are documented in `README.md` and `PLAN.md`.
121
+
122
+ ## Deliberate scope boundaries
123
+
124
+ - Data Matrix Rectangular Extension (DMRE) is not included.
125
+ - GS1 DataBar Limited, Stacked, Stacked Omnidirectional and Expanded physical
126
+ layouts remain outside the current release.
127
+ - MaxiCode is not implemented.
128
+ - Micro QR ECI, FNC1/GS1 and Structured Append are outside the current API scope.
129
+ - SQRC and Face Authentication SQRC are DENSO-licensed formats and are not
130
+ included in this MIT SDK. A user must obtain the appropriate DENSO licence
131
+ before adapting SDK routines for those formats.
132
+ - DENSO FrameQR® is not implemented as a native format; the shipped FrameQR
133
+ name refers only to the separate Sythos Canvas QR profile described above.
134
+
135
+ ## Licensing and provenance
136
+
137
+ The source and generated runtime are original Sythos work distributed under
138
+ the MIT License. No third-party barcode implementation is a runtime
139
+ dependency, and no third-party barcode source code or tables are shipped.
140
+ Independent libraries and public technical material may be used for
141
+ black-box interoperability checks; that does not make them dependencies or
142
+ part of the distributed implementation.
143
+
144
+ The project does not reproduce standards documents. Format-specific
145
+ engineering provenance and legal-review notes are recorded in `NOTICE.md` and
146
+ the files under `licenses/`, including:
147
+
148
+ - `licenses/pdf417.license`
149
+ - `licenses/micropdf417.license`
150
+
151
+ Those files are engineering inventories, not legal advice. Patent, copyright,
152
+ trademark, standards and jurisdictional questions should receive independent
153
+ professional review where required.
154
+
155
+ ## Canonical project files
156
+
157
+ - Human documentation: `README.md`
158
+ - Published documentation: https://sythos.github.io/JS_Barcode_Universal/
159
+ - Documentation source tree: `docs/`
160
+ - Roadmap and implementation boundaries: `PLAN.md`
161
+ - MIT terms: `LICENSE`
162
+ - Attribution and provenance: `NOTICE.md`
163
+ - Security reporting: `SECURITY.md`
164
+ - TypeScript runtime source: `src/ts/`
165
+ - Compiled JavaScript runtime: `src/js/`
166
+ - Stable package facades: `src/index.js` and `src/index.d.ts`
167
+ - Browser and ESM bundles: `bundle/`
168
+ - Self-contained examples: `examples/`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sythos/js_barcode_universal",
3
- "version": "1.5.12",
4
- "description": "Read and write barcodes in JavaScript and TypeScript with zero runtime dependencies. TypeScript sources compile to the JavaScript runtime and bundles. QR Code, Micro QR, rMQR, FrameQR Code, Aztec Code and Rune, PDF417 variants, GS1 DataBar Omnidirectional/Truncated, EAN supplements and one-dimensional formats.",
3
+ "version": "1.5.14",
4
+ "description": "Open-source MIT-licensed JavaScript/TypeScript barcode generator and barcode reader SDK with zero runtime dependencies for 1D and 2D barcodes in browsers, Web Workers and Node.js: QR, Data Matrix, Aztec, PDF417, GS1, EAN and more.",
5
5
  "author": {
6
6
  "name": "Sythos",
7
7
  "url": "https://www.sythos.net"
@@ -117,16 +117,26 @@
117
117
  "LICENSE",
118
118
  "NOTICE.md",
119
119
  "README.md",
120
- "AI_USAGE.md"
120
+ "AI_USAGE.md",
121
+ "llms.txt"
121
122
  ],
122
123
  "keywords": [
123
124
  "barcode",
125
+ "barcode-reader",
126
+ "barcode-writer",
127
+ "barcode-decoder",
128
+ "barcode-encoder",
129
+ "barcode-reading",
130
+ "barcode-writing",
131
+ "1d-barcode",
132
+ "2d-barcode",
124
133
  "datamatrix",
125
134
  "ecc200",
126
135
  "aztec",
127
136
  "aztec-rune",
128
137
  "compact-pdf417",
129
138
  "gs1-databar",
139
+ "gs1",
130
140
  "ean2",
131
141
  "ean5",
132
142
  "aztec-code",
@@ -174,8 +184,12 @@
174
184
  "zero-dependencies",
175
185
  "no-dependencies",
176
186
  "browser",
187
+ "web-worker",
177
188
  "nodejs",
178
- "esm"
189
+ "esm",
190
+ "open-source",
191
+ "mit-license",
192
+ "zero-runtime-dependencies"
179
193
  ],
180
194
  "repository": {
181
195
  "type": "git",
@@ -184,13 +198,19 @@
184
198
  "bugs": {
185
199
  "url": "https://github.com/Sythos/JS_Barcode_Universal/issues"
186
200
  },
187
- "homepage": "https://github.com/Sythos/JS_Barcode_Universal#readme",
201
+ "homepage": "https://sythos.github.io/JS_Barcode_Universal/",
188
202
  "scripts": {
189
203
  "build:ts": "node tools/compile-typescript.mjs",
204
+ "lint": "eslint --max-warnings=0 src/index.js src/js tools .github/ci",
205
+ "test:docs": "node --test tools/exact-url.test.mjs",
206
+ "test:fuzz": "node --test test/fuzz/property.test.js",
190
207
  "types": "tsc -p tsconfig.json",
191
208
  "types:api": "node tools/check-public-types.mjs"
192
209
  },
193
210
  "devDependencies": {
211
+ "@eslint/js": "10.0.1",
212
+ "eslint": "10.9.1",
213
+ "fast-check": "4.9.0",
194
214
  "typescript": "7.0.2"
195
215
  }
196
216
  }
package/src/index.d.ts CHANGED
@@ -360,4 +360,4 @@ export declare function decodeStrict(image: {
360
360
  height: number;
361
361
  }, options?: object): DecodeResult;
362
362
  /** Library version, matching package.json. */
363
- export declare const VERSION = "1.5.12";
363
+ export declare const VERSION = "1.5.14";
package/src/index.js CHANGED
@@ -779,4 +779,4 @@ export function decodeStrict(image, options) {
779
779
  return results[0];
780
780
  }
781
781
  /** Library version, matching package.json. */
782
- export const VERSION = '1.5.12';
782
+ export const VERSION = '1.5.14';
package/src/ts/index.d.ts CHANGED
@@ -360,4 +360,4 @@ export declare function decodeStrict(image: {
360
360
  height: number;
361
361
  }, options?: object): DecodeResult;
362
362
  /** Library version, matching package.json. */
363
- export declare const VERSION = "1.5.12";
363
+ export declare const VERSION = "1.5.14";
package/src/ts/index.ts CHANGED
@@ -787,4 +787,4 @@ export function decodeStrict(image, options) {
787
787
  }
788
788
 
789
789
  /** Library version, matching package.json. */
790
- export const VERSION = '1.5.12';
790
+ export const VERSION = '1.5.14';