@sythos/js_barcode_universal 1.1.0 → 1.3.1

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.
Files changed (68) hide show
  1. package/LICENSE +24 -18
  2. package/NOTICE.md +27 -22
  3. package/README.md +596 -460
  4. package/bundle/sythos-barcode.esm.js +4606 -228
  5. package/bundle/sythos-barcode.js +4586 -228
  6. package/examples/create.html +1011 -731
  7. package/licenses/README.md +23 -18
  8. package/licenses/aztec-code.license +9 -7
  9. package/licenses/codabar.license +16 -13
  10. package/licenses/code-11.license +11 -9
  11. package/licenses/code-128.license +8 -6
  12. package/licenses/code-39.license +8 -6
  13. package/licenses/code-93.license +13 -11
  14. package/licenses/data-matrix.license +11 -9
  15. package/licenses/ean-13.license +7 -5
  16. package/licenses/ean-8.license +7 -5
  17. package/licenses/frameqr.license +84 -0
  18. package/licenses/gs1-128.license +7 -5
  19. package/licenses/isbn.license +8 -6
  20. package/licenses/itf-14.license +7 -5
  21. package/licenses/itf.license +7 -5
  22. package/licenses/micro-qr.license +79 -0
  23. package/licenses/micropdf417.license +81 -0
  24. package/licenses/msi-plessey.license +12 -10
  25. package/licenses/pdf417.license +78 -0
  26. package/licenses/pharmacode.license +13 -11
  27. package/licenses/qr-code.license +7 -5
  28. package/licenses/rmqr.license +79 -0
  29. package/licenses/upc-a.license +9 -7
  30. package/licenses/upc-e.license +7 -5
  31. package/package.json +104 -88
  32. package/src/core/reed-solomon.js +326 -312
  33. package/src/datamatrix/decoder.js +262 -262
  34. package/src/datamatrix/detector.js +225 -225
  35. package/src/datamatrix/encoder.js +191 -191
  36. package/src/datamatrix/index.js +42 -42
  37. package/src/datamatrix/tables.js +123 -123
  38. package/src/frameqr/decoder.js +239 -0
  39. package/src/frameqr/detector.js +192 -0
  40. package/src/frameqr/encoder.js +156 -0
  41. package/src/frameqr/index.js +42 -0
  42. package/src/frameqr/tables.js +270 -0
  43. package/src/index.js +166 -3
  44. package/src/micropdf417/compaction.js +116 -0
  45. package/src/micropdf417/decoder.js +183 -0
  46. package/src/micropdf417/detector.js +149 -0
  47. package/src/micropdf417/encoder.js +209 -0
  48. package/src/micropdf417/error-correction.js +55 -0
  49. package/src/micropdf417/index.js +49 -0
  50. package/src/micropdf417/tables.js +184 -0
  51. package/src/microqr/decoder.js +245 -0
  52. package/src/microqr/detector.js +355 -0
  53. package/src/microqr/encoder.js +269 -0
  54. package/src/microqr/index.js +36 -0
  55. package/src/microqr/tables.js +316 -0
  56. package/src/oned/index.js +59 -59
  57. package/src/pdf417/compaction.js +298 -0
  58. package/src/pdf417/decoder.js +75 -0
  59. package/src/pdf417/detector.js +468 -0
  60. package/src/pdf417/encoder.js +91 -0
  61. package/src/pdf417/error-correction.js +47 -0
  62. package/src/pdf417/index.js +6 -0
  63. package/src/pdf417/tables.js +317 -0
  64. package/src/rmqr/decoder.js +101 -0
  65. package/src/rmqr/detector.js +90 -0
  66. package/src/rmqr/encoder.js +172 -0
  67. package/src/rmqr/index.js +37 -0
  68. package/src/rmqr/tables.js +154 -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
- This package contains 100% original code, written from scratch. It has ZERO
35
- runtime dependencies. No source code, and no table of values, has been copied
36
- from any other software project, under any license. The distributed artifact is
37
- therefore covered by the MIT License above and by nothing else.
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. Every row marked "TO VERIFY" is an item the author has not
43
- independently confirmed; do not rely on any of it for a legal decision. If your
44
- use case is commercially sensitive, consult a qualified attorney.
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, NOT LINKED, NEVER READ)
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 INVOKED during testing.
68
- Their SOURCE is never opened, and no line of their code, and no constant
69
- from their tables, ever enters this project's output.
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
- They are used strictly as black boxes: an input goes in, the OUTPUT that comes
72
- back is compared against ours. Outputs are facts about a published symbology,
73
- not creative expression, so comparing against them creates no derivative work
74
- and no license obligation. This is the standard clean-room technique, and it is
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
@@ -136,6 +135,9 @@ INDEPENDENTLY VERIFIED BY THE AUTHOR. Treat every entry as a research pointer.
136
135
  rMQR DENSO WAVE standardised 2022 — MUCH NEWER; do NOT
137
136
  assume the older QR position covers it
138
137
  [TO VERIFY — PRIORITY]
138
+ DENSO FrameQR DENSO WAVE proprietary product; public
139
+ material is not a native implementation
140
+ [LEGAL REVIEW]
139
141
  Data Matrix orig. RVSI/CiMatrix ECC200 reported released for
140
142
  public use [TO VERIFY]
141
143
  PDF417 orig. Symbol Tech. reported released for
@@ -167,6 +169,7 @@ names and presents itself.
167
169
  ----------------------- -----------------------------------
168
170
  QR Code(R) DENSO WAVE INCORPORATED
169
171
  Micro QR, rMQR DENSO WAVE INCORPORATED
172
+ FrameQR(R) DENSO WAVE INCORPORATED [LEGAL REVIEW]
170
173
  Aztec Code originally Welch Allyn [TO VERIFY]
171
174
  MaxiCode United Parcel Service of America
172
175
  GS1, GS1 DataBar,
@@ -198,6 +201,9 @@ status too unclear to redistribute an implementation with confidence:
198
201
  Bokode .................. research project, unclear status
199
202
  Softstrip ............... obsolete, unclear status
200
203
  Ultracode ............... status unresolved [TO VERIFY]
204
+ DENSO FrameQR ........... proprietary format; this project implements
205
+ only a separate Sythos Canvas QR profile
206
+ [LEGAL REVIEW]
201
207
 
202
208
  If any of these is later confirmed to be freely implementable and
203
209
  redistributable, it may move into scope — and this section must be updated in
@@ -212,4 +218,4 @@ change to the dependency set, the oracle tools, or the implemented format list
212
218
  MUST update this file in the same commit. A "[TO VERIFY]" marker may only be
213
219
  removed together with a citation recorded in NOTICE.md.
214
220
 
215
- Last reviewed: 2026-08-04
221
+ Last reviewed: 2026-08-13
package/NOTICE.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  ## Origin of this code
4
4
 
5
- Every line of JavaScript in this repository is **original work by Sythos**.
6
-
7
- No source code, and no table of constants, has been copied from any other
8
- software project under any license, permissive or otherwise. That covers
9
- every other barcode implementation, without exception.
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 the specification copyrights, patent history and trademarks that
26
- surround these symbologies. **None of them encumbers this code** the appendix
27
- exists for reference, not because obligations flow from it.
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. read**:
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
- | Reading its source, or lifting a constant table from it, into this project | **never** |
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, not creative expression
39
- comparing against them creates no derivative work. This is how the originality
40
- of the shipped code is *demonstrated*, not compromised: an implementation that
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 and their source is never read (see above).
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,16 @@ 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
- *(empty all tables to date are generated by `tools/` or derived from
100
- first principles in the module that uses them)*
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. |
103
+ | Micro QR technical and interoperability review | ISO/IEC 18004 public technical material, DENSO WAVE's [Micro QR overview](https://www.qrcode.com/en/codes/microqr.html), Segno and ZXing-C++ were consulted on 2026-08-12 for format rules, fixture checks and black-box comparison. No third-party source code is copied or shipped; Micro QR values are represented in original Sythos structures. ECI, FNC1 and Structured Append are outside the current Micro QR API scope. Standard copyright, patent and trademark questions remain subject to legal review. |
104
+ | rMQR technical and interoperability review | ISO/IEC 23941:2022 public metadata, DENSO WAVE's [rMQR overview](https://www.denso-wave.com/en/adcd/fundamental/2dcode/qrc/rmqr.html), and ZXing-C++ were consulted on 2026-08-12 for the 32 geometry/ECC layouts and black-box checks. No third-party source code is copied or shipped; rMQR values are represented in original Sythos structures. Standard copyright, patent and trademark questions remain subject to legal review. |
105
+ | Frame QR / Sythos Canvas QR profile | DENSO WAVE's [FrameQR overview](https://www.qrcode.com/en/codes/frameqr.html), [product page](https://www.denso-wave.com/en/system/qr/product/frame.html) and [public announcement](https://www.denso-wave.com/en/adcd/info/detail__272.html) were consulted on 2026-08-13. The public material is used only to document the proprietary-format boundary; the distributed implementation is the separate non-certified `sythos-canvas-qr/1` profile. ZXing Java 3.5.3 was used only as an independent black-box runtime check: QR Model 2 control passed, `FRAME_QR` native capability was unavailable, and the profile was decoded as ordinary QR. No ZXing source code or tables are copied or shipped; native DENSO interoperability is not claimed. |
101
106
 
102
107
  ## Verification log
103
108
 
104
- Records each `[TO VERIFY]` marker cleared from `LICENSE`, with its citation.
105
-
106
- *(empty)*
109
+ Records the scoped review labels used by the inventory. Current labels include
110
+ `[VERIFIED FACT]`, `[REGISTRY CHECK REQUIRED]`, `[PATENT FAMILY REVIEW REQUIRED]`,
111
+ `[LICENSE TERMS REVIEW REQUIRED]` and `[LEGAL REVIEW]`.