@hexpro/qr-code-studio 0.0.0-stage → 0.1.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.
- package/CHANGELOG.md +53 -0
- package/LICENSE +21 -0
- package/README.md +62 -2
- package/dist/app/bulk.d.ts +21 -0
- package/dist/app/bulk.d.ts.map +1 -0
- package/dist/app/bulk.js +564 -0
- package/dist/app/bulk.js.map +1 -0
- package/dist/app/check.d.ts +23 -0
- package/dist/app/check.d.ts.map +1 -0
- package/dist/app/check.js +306 -0
- package/dist/app/check.js.map +1 -0
- package/dist/app/content.d.ts +19 -0
- package/dist/app/content.d.ts.map +1 -0
- package/dist/app/content.js +634 -0
- package/dist/app/content.js.map +1 -0
- package/dist/app/context.d.ts +25 -0
- package/dist/app/context.d.ts.map +1 -0
- package/dist/app/context.js +11 -0
- package/dist/app/context.js.map +1 -0
- package/dist/app/controls.d.ts +95 -0
- package/dist/app/controls.d.ts.map +1 -0
- package/dist/app/controls.js +278 -0
- package/dist/app/controls.js.map +1 -0
- package/dist/app/design-panels.d.ts +27 -0
- package/dist/app/design-panels.d.ts.map +1 -0
- package/dist/app/design-panels.js +1196 -0
- package/dist/app/design-panels.js.map +1 -0
- package/dist/app/dom.d.ts +74 -0
- package/dist/app/dom.d.ts.map +1 -0
- package/dist/app/dom.js +129 -0
- package/dist/app/dom.js.map +1 -0
- package/dist/app/images.d.ts +22 -0
- package/dist/app/images.d.ts.map +1 -0
- package/dist/app/images.js +50 -0
- package/dist/app/images.js.map +1 -0
- package/dist/app/library-view.d.ts +24 -0
- package/dist/app/library-view.d.ts.map +1 -0
- package/dist/app/library-view.js +260 -0
- package/dist/app/library-view.js.map +1 -0
- package/dist/app/main.d.ts +17 -0
- package/dist/app/main.d.ts.map +1 -0
- package/dist/app/main.js +518 -0
- package/dist/app/main.js.map +1 -0
- package/dist/app/measure.d.ts +26 -0
- package/dist/app/measure.d.ts.map +1 -0
- package/dist/app/measure.js +53 -0
- package/dist/app/measure.js.map +1 -0
- package/dist/app/proof.d.ts +30 -0
- package/dist/app/proof.d.ts.map +1 -0
- package/dist/app/proof.js +378 -0
- package/dist/app/proof.js.map +1 -0
- package/dist/app/save.d.ts +27 -0
- package/dist/app/save.d.ts.map +1 -0
- package/dist/app/save.js +331 -0
- package/dist/app/save.js.map +1 -0
- package/dist/app/scan.d.ts +25 -0
- package/dist/app/scan.d.ts.map +1 -0
- package/dist/app/scan.js +421 -0
- package/dist/app/scan.js.map +1 -0
- package/dist/app/shortcuts.d.ts +12 -0
- package/dist/app/shortcuts.d.ts.map +1 -0
- package/dist/app/shortcuts.js +17 -0
- package/dist/app/shortcuts.js.map +1 -0
- package/dist/app/text.d.ts +22 -0
- package/dist/app/text.d.ts.map +1 -0
- package/dist/app/text.js +50 -0
- package/dist/app/text.js.map +1 -0
- package/dist/batch/csv.d.ts +56 -0
- package/dist/batch/csv.d.ts.map +1 -0
- package/dist/batch/csv.js +327 -0
- package/dist/batch/csv.js.map +1 -0
- package/dist/batch/errors.d.ts +60 -0
- package/dist/batch/errors.d.ts.map +1 -0
- package/dist/batch/errors.js +60 -0
- package/dist/batch/errors.js.map +1 -0
- package/dist/batch/filename.d.ts +65 -0
- package/dist/batch/filename.d.ts.map +1 -0
- package/dist/batch/filename.js +205 -0
- package/dist/batch/filename.js.map +1 -0
- package/dist/batch/index.d.ts +17 -0
- package/dist/batch/index.d.ts.map +1 -0
- package/dist/batch/index.js +11 -0
- package/dist/batch/index.js.map +1 -0
- package/dist/batch/issues.d.ts +45 -0
- package/dist/batch/issues.d.ts.map +1 -0
- package/dist/batch/issues.js +47 -0
- package/dist/batch/issues.js.map +1 -0
- package/dist/batch/manifest.d.ts +43 -0
- package/dist/batch/manifest.d.ts.map +1 -0
- package/dist/batch/manifest.js +82 -0
- package/dist/batch/manifest.js.map +1 -0
- package/dist/batch/plan.d.ts +33 -0
- package/dist/batch/plan.d.ts.map +1 -0
- package/dist/batch/plan.js +254 -0
- package/dist/batch/plan.js.map +1 -0
- package/dist/batch/run.d.ts +68 -0
- package/dist/batch/run.d.ts.map +1 -0
- package/dist/batch/run.js +548 -0
- package/dist/batch/run.js.map +1 -0
- package/dist/batch/template.d.ts +54 -0
- package/dist/batch/template.d.ts.map +1 -0
- package/dist/batch/template.js +119 -0
- package/dist/batch/template.js.map +1 -0
- package/dist/batch/text-decoding.d.ts +49 -0
- package/dist/batch/text-decoding.d.ts.map +1 -0
- package/dist/batch/text-decoding.js +160 -0
- package/dist/batch/text-decoding.js.map +1 -0
- package/dist/batch/types.d.ts +240 -0
- package/dist/batch/types.d.ts.map +1 -0
- package/dist/batch/types.js +35 -0
- package/dist/batch/types.js.map +1 -0
- package/dist/batch/verify.d.ts +45 -0
- package/dist/batch/verify.d.ts.map +1 -0
- package/dist/batch/verify.js +72 -0
- package/dist/batch/verify.js.map +1 -0
- package/dist/batch/zip.d.ts +39 -0
- package/dist/batch/zip.d.ts.map +1 -0
- package/dist/batch/zip.js +201 -0
- package/dist/batch/zip.js.map +1 -0
- package/dist/conformance/finder.d.ts +67 -0
- package/dist/conformance/finder.d.ts.map +1 -0
- package/dist/conformance/finder.js +125 -0
- package/dist/conformance/finder.js.map +1 -0
- package/dist/conformance/frame.d.ts +28 -0
- package/dist/conformance/frame.d.ts.map +1 -0
- package/dist/conformance/frame.js +134 -0
- package/dist/conformance/frame.js.map +1 -0
- package/dist/conformance/index.d.ts +15 -0
- package/dist/conformance/index.d.ts.map +1 -0
- package/dist/conformance/index.js +8 -0
- package/dist/conformance/index.js.map +1 -0
- package/dist/conformance/module-shape.d.ts +35 -0
- package/dist/conformance/module-shape.d.ts.map +1 -0
- package/dist/conformance/module-shape.js +139 -0
- package/dist/conformance/module-shape.js.map +1 -0
- package/dist/conformance/payload-type.d.ts +48 -0
- package/dist/conformance/payload-type.d.ts.map +1 -0
- package/dist/conformance/payload-type.js +113 -0
- package/dist/conformance/payload-type.js.map +1 -0
- package/dist/conformance/preset.d.ts +37 -0
- package/dist/conformance/preset.d.ts.map +1 -0
- package/dist/conformance/preset.js +171 -0
- package/dist/conformance/preset.js.map +1 -0
- package/dist/conformance/region-captures.d.ts +41 -0
- package/dist/conformance/region-captures.d.ts.map +1 -0
- package/dist/conformance/region-captures.js +69 -0
- package/dist/conformance/region-captures.js.map +1 -0
- package/dist/conformance/region-shape.d.ts +43 -0
- package/dist/conformance/region-shape.d.ts.map +1 -0
- package/dist/conformance/region-shape.js +214 -0
- package/dist/conformance/region-shape.js.map +1 -0
- package/dist/conformance/sample.d.ts +13 -0
- package/dist/conformance/sample.d.ts.map +1 -0
- package/dist/conformance/sample.js +75 -0
- package/dist/conformance/sample.js.map +1 -0
- package/dist/conformance/types.d.ts +16 -0
- package/dist/conformance/types.d.ts.map +1 -0
- package/dist/conformance/types.js +10 -0
- package/dist/conformance/types.js.map +1 -0
- package/dist/core/bch.d.ts +36 -0
- package/dist/core/bch.d.ts.map +1 -0
- package/dist/core/bch.js +92 -0
- package/dist/core/bch.js.map +1 -0
- package/dist/core/bit-matrix.d.ts +56 -0
- package/dist/core/bit-matrix.d.ts.map +1 -0
- package/dist/core/bit-matrix.js +150 -0
- package/dist/core/bit-matrix.js.map +1 -0
- package/dist/core/bits.d.ts +53 -0
- package/dist/core/bits.d.ts.map +1 -0
- package/dist/core/bits.js +128 -0
- package/dist/core/bits.js.map +1 -0
- package/dist/core/checksums.d.ts +22 -0
- package/dist/core/checksums.d.ts.map +1 -0
- package/dist/core/checksums.js +64 -0
- package/dist/core/checksums.js.map +1 -0
- package/dist/core/deflate.d.ts +51 -0
- package/dist/core/deflate.d.ts.map +1 -0
- package/dist/core/deflate.js +851 -0
- package/dist/core/deflate.js.map +1 -0
- package/dist/core/errors.d.ts +123 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +168 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/field.d.ts +58 -0
- package/dist/core/field.d.ts.map +1 -0
- package/dist/core/field.js +184 -0
- package/dist/core/field.js.map +1 -0
- package/dist/core/huffman.d.ts +31 -0
- package/dist/core/huffman.d.ts.map +1 -0
- package/dist/core/huffman.js +131 -0
- package/dist/core/huffman.js.map +1 -0
- package/dist/core/image.d.ts +18 -0
- package/dist/core/image.d.ts.map +1 -0
- package/dist/core/image.js +2 -0
- package/dist/core/image.js.map +1 -0
- package/dist/core/index.d.ts +25 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +15 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/issue.d.ts +39 -0
- package/dist/core/issue.d.ts.map +1 -0
- package/dist/core/issue.js +24 -0
- package/dist/core/issue.js.map +1 -0
- package/dist/core/math.d.ts +56 -0
- package/dist/core/math.d.ts.map +1 -0
- package/dist/core/math.js +609 -0
- package/dist/core/math.js.map +1 -0
- package/dist/core/prng.d.ts +27 -0
- package/dist/core/prng.d.ts.map +1 -0
- package/dist/core/prng.js +111 -0
- package/dist/core/prng.js.map +1 -0
- package/dist/core/reed-solomon.d.ts +69 -0
- package/dist/core/reed-solomon.d.ts.map +1 -0
- package/dist/core/reed-solomon.js +308 -0
- package/dist/core/reed-solomon.js.map +1 -0
- package/dist/core/registry.d.ts +45 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +80 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/result.d.ts +33 -0
- package/dist/core/result.d.ts.map +1 -0
- package/dist/core/result.js +52 -0
- package/dist/core/result.js.map +1 -0
- package/dist/core/zip.d.ts +36 -0
- package/dist/core/zip.d.ts.map +1 -0
- package/dist/core/zip.js +234 -0
- package/dist/core/zip.js.map +1 -0
- package/dist/decode/alignment.d.ts +34 -0
- package/dist/decode/alignment.d.ts.map +1 -0
- package/dist/decode/alignment.js +179 -0
- package/dist/decode/alignment.js.map +1 -0
- package/dist/decode/binarise.d.ts +95 -0
- package/dist/decode/binarise.d.ts.map +1 -0
- package/dist/decode/binarise.js +399 -0
- package/dist/decode/binarise.js.map +1 -0
- package/dist/decode/decoder.d.ts +75 -0
- package/dist/decode/decoder.d.ts.map +1 -0
- package/dist/decode/decoder.js +773 -0
- package/dist/decode/decoder.js.map +1 -0
- package/dist/decode/erasures.d.ts +26 -0
- package/dist/decode/erasures.d.ts.map +1 -0
- package/dist/decode/erasures.js +34 -0
- package/dist/decode/erasures.js.map +1 -0
- package/dist/decode/failure.d.ts +15 -0
- package/dist/decode/failure.d.ts.map +1 -0
- package/dist/decode/failure.js +22 -0
- package/dist/decode/failure.js.map +1 -0
- package/dist/decode/finder.d.ts +114 -0
- package/dist/decode/finder.d.ts.map +1 -0
- package/dist/decode/finder.js +441 -0
- package/dist/decode/finder.js.map +1 -0
- package/dist/decode/frame.d.ts +49 -0
- package/dist/decode/frame.d.ts.map +1 -0
- package/dist/decode/frame.js +228 -0
- package/dist/decode/frame.js.map +1 -0
- package/dist/decode/grey.d.ts +87 -0
- package/dist/decode/grey.d.ts.map +1 -0
- package/dist/decode/grey.js +226 -0
- package/dist/decode/grey.js.map +1 -0
- package/dist/decode/index.d.ts +4 -0
- package/dist/decode/index.d.ts.map +1 -0
- package/dist/decode/index.js +3 -0
- package/dist/decode/index.js.map +1 -0
- package/dist/decode/locate-qr.d.ts +80 -0
- package/dist/decode/locate-qr.d.ts.map +1 -0
- package/dist/decode/locate-qr.js +295 -0
- package/dist/decode/locate-qr.js.map +1 -0
- package/dist/decode/locate-single.d.ts +47 -0
- package/dist/decode/locate-single.d.ts.map +1 -0
- package/dist/decode/locate-single.js +169 -0
- package/dist/decode/locate-single.js.map +1 -0
- package/dist/decode/plain.d.ts +70 -0
- package/dist/decode/plain.d.ts.map +1 -0
- package/dist/decode/plain.js +460 -0
- package/dist/decode/plain.js.map +1 -0
- package/dist/decode/sample.d.ts +56 -0
- package/dist/decode/sample.d.ts.map +1 -0
- package/dist/decode/sample.js +154 -0
- package/dist/decode/sample.js.map +1 -0
- package/dist/decode/strict.d.ts +255 -0
- package/dist/decode/strict.d.ts.map +1 -0
- package/dist/decode/strict.js +597 -0
- package/dist/decode/strict.js.map +1 -0
- package/dist/decode/tiled.d.ts +137 -0
- package/dist/decode/tiled.d.ts.map +1 -0
- package/dist/decode/tiled.js +452 -0
- package/dist/decode/tiled.js.map +1 -0
- package/dist/decode/transform.d.ts +48 -0
- package/dist/decode/transform.d.ts.map +1 -0
- package/dist/decode/transform.js +180 -0
- package/dist/decode/transform.js.map +1 -0
- package/dist/decode/types.d.ts +163 -0
- package/dist/decode/types.d.ts.map +1 -0
- package/dist/decode/types.js +10 -0
- package/dist/decode/types.js.map +1 -0
- package/dist/design/base64.d.ts +16 -0
- package/dist/design/base64.d.ts.map +1 -0
- package/dist/design/base64.js +97 -0
- package/dist/design/base64.js.map +1 -0
- package/dist/design/canonical.d.ts +13 -0
- package/dist/design/canonical.d.ts.map +1 -0
- package/dist/design/canonical.js +100 -0
- package/dist/design/canonical.js.map +1 -0
- package/dist/design/caption.d.ts +54 -0
- package/dist/design/caption.d.ts.map +1 -0
- package/dist/design/caption.js +175 -0
- package/dist/design/caption.js.map +1 -0
- package/dist/design/catalogue/draw.d.ts +77 -0
- package/dist/design/catalogue/draw.d.ts.map +1 -0
- package/dist/design/catalogue/draw.js +260 -0
- package/dist/design/catalogue/draw.js.map +1 -0
- package/dist/design/catalogue/fills.d.ts +9 -0
- package/dist/design/catalogue/fills.d.ts.map +1 -0
- package/dist/design/catalogue/fills.js +64 -0
- package/dist/design/catalogue/fills.js.map +1 -0
- package/dist/design/catalogue/frames.d.ts +18 -0
- package/dist/design/catalogue/frames.d.ts.map +1 -0
- package/dist/design/catalogue/frames.js +451 -0
- package/dist/design/catalogue/frames.js.map +1 -0
- package/dist/design/catalogue/icons.d.ts +21 -0
- package/dist/design/catalogue/icons.d.ts.map +1 -0
- package/dist/design/catalogue/icons.js +293 -0
- package/dist/design/catalogue/icons.js.map +1 -0
- package/dist/design/catalogue/module-shapes.d.ts +21 -0
- package/dist/design/catalogue/module-shapes.d.ts.map +1 -0
- package/dist/design/catalogue/module-shapes.js +266 -0
- package/dist/design/catalogue/module-shapes.js.map +1 -0
- package/dist/design/catalogue/presets.d.ts +31 -0
- package/dist/design/catalogue/presets.d.ts.map +1 -0
- package/dist/design/catalogue/presets.js +696 -0
- package/dist/design/catalogue/presets.js.map +1 -0
- package/dist/design/catalogue/region-shapes.d.ts +41 -0
- package/dist/design/catalogue/region-shapes.d.ts.map +1 -0
- package/dist/design/catalogue/region-shapes.js +399 -0
- package/dist/design/catalogue/region-shapes.js.map +1 -0
- package/dist/design/catalogue/schema.d.ts +14 -0
- package/dist/design/catalogue/schema.d.ts.map +1 -0
- package/dist/design/catalogue/schema.js +58 -0
- package/dist/design/catalogue/schema.js.map +1 -0
- package/dist/design/constraints.d.ts +25 -0
- package/dist/design/constraints.d.ts.map +1 -0
- package/dist/design/constraints.js +194 -0
- package/dist/design/constraints.js.map +1 -0
- package/dist/design/document.d.ts +64 -0
- package/dist/design/document.d.ts.map +1 -0
- package/dist/design/document.js +66 -0
- package/dist/design/document.js.map +1 -0
- package/dist/design/finder.d.ts +79 -0
- package/dist/design/finder.d.ts.map +1 -0
- package/dist/design/finder.js +270 -0
- package/dist/design/finder.js.map +1 -0
- package/dist/design/index.d.ts +18 -0
- package/dist/design/index.d.ts.map +1 -0
- package/dist/design/index.js +15 -0
- package/dist/design/index.js.map +1 -0
- package/dist/design/link.d.ts +41 -0
- package/dist/design/link.d.ts.map +1 -0
- package/dist/design/link.js +131 -0
- package/dist/design/link.js.map +1 -0
- package/dist/design/logo.d.ts +57 -0
- package/dist/design/logo.d.ts.map +1 -0
- package/dist/design/logo.js +376 -0
- package/dist/design/logo.js.map +1 -0
- package/dist/design/migrate.d.ts +31 -0
- package/dist/design/migrate.d.ts.map +1 -0
- package/dist/design/migrate.js +87 -0
- package/dist/design/migrate.js.map +1 -0
- package/dist/design/neighbours.d.ts +24 -0
- package/dist/design/neighbours.d.ts.map +1 -0
- package/dist/design/neighbours.js +50 -0
- package/dist/design/neighbours.js.map +1 -0
- package/dist/design/paint.d.ts +47 -0
- package/dist/design/paint.d.ts.map +1 -0
- package/dist/design/paint.js +115 -0
- package/dist/design/paint.js.map +1 -0
- package/dist/design/params.d.ts +30 -0
- package/dist/design/params.d.ts.map +1 -0
- package/dist/design/params.js +85 -0
- package/dist/design/params.js.map +1 -0
- package/dist/design/preset-size.d.ts +14 -0
- package/dist/design/preset-size.d.ts.map +1 -0
- package/dist/design/preset-size.js +14 -0
- package/dist/design/preset-size.js.map +1 -0
- package/dist/design/registries.d.ts +9 -0
- package/dist/design/registries.d.ts.map +1 -0
- package/dist/design/registries.js +24 -0
- package/dist/design/registries.js.map +1 -0
- package/dist/design/scene.d.ts +38 -0
- package/dist/design/scene.d.ts.map +1 -0
- package/dist/design/scene.js +694 -0
- package/dist/design/scene.js.map +1 -0
- package/dist/design/swiss-cross.d.ts +54 -0
- package/dist/design/swiss-cross.d.ts.map +1 -0
- package/dist/design/swiss-cross.js +95 -0
- package/dist/design/swiss-cross.js.map +1 -0
- package/dist/design/types.d.ts +389 -0
- package/dist/design/types.d.ts.map +1 -0
- package/dist/design/types.js +29 -0
- package/dist/design/types.js.map +1 -0
- package/dist/design/validate.d.ts +48 -0
- package/dist/design/validate.d.ts.map +1 -0
- package/dist/design/validate.js +986 -0
- package/dist/design/validate.js.map +1 -0
- package/dist/dom/camera.d.ts +94 -0
- package/dist/dom/camera.d.ts.map +1 -0
- package/dist/dom/camera.js +288 -0
- package/dist/dom/camera.js.map +1 -0
- package/dist/dom/file-library.d.ts +297 -0
- package/dist/dom/file-library.d.ts.map +1 -0
- package/dist/dom/file-library.js +703 -0
- package/dist/dom/file-library.js.map +1 -0
- package/dist/dom/image.d.ts +77 -0
- package/dist/dom/image.d.ts.map +1 -0
- package/dist/dom/image.js +253 -0
- package/dist/dom/image.js.map +1 -0
- package/dist/dom/index.d.ts +19 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +10 -0
- package/dist/dom/index.js.map +1 -0
- package/dist/dom/library/index.d.ts +4 -0
- package/dist/dom/library/index.d.ts.map +1 -0
- package/dist/dom/library/index.js +2 -0
- package/dist/dom/library/index.js.map +1 -0
- package/dist/dom/library/indexeddb.d.ts +71 -0
- package/dist/dom/library/indexeddb.d.ts.map +1 -0
- package/dist/dom/library/indexeddb.js +365 -0
- package/dist/dom/library/indexeddb.js.map +1 -0
- package/dist/dom/logo.d.ts +36 -0
- package/dist/dom/logo.d.ts.map +1 -0
- package/dist/dom/logo.js +99 -0
- package/dist/dom/logo.js.map +1 -0
- package/dist/dom/orientation.d.ts +32 -0
- package/dist/dom/orientation.d.ts.map +1 -0
- package/dist/dom/orientation.js +152 -0
- package/dist/dom/orientation.js.map +1 -0
- package/dist/dom/output.d.ts +58 -0
- package/dist/dom/output.d.ts.map +1 -0
- package/dist/dom/output.js +93 -0
- package/dist/dom/output.js.map +1 -0
- package/dist/dom/print.d.ts +52 -0
- package/dist/dom/print.d.ts.map +1 -0
- package/dist/dom/print.js +101 -0
- package/dist/dom/print.js.map +1 -0
- package/dist/dom/raster-encoder.d.ts +43 -0
- package/dist/dom/raster-encoder.d.ts.map +1 -0
- package/dist/dom/raster-encoder.js +102 -0
- package/dist/dom/raster-encoder.js.map +1 -0
- package/dist/dom/resample.d.ts +20 -0
- package/dist/dom/resample.d.ts.map +1 -0
- package/dist/dom/resample.js +107 -0
- package/dist/dom/resample.js.map +1 -0
- package/dist/dom/types.d.ts +54 -0
- package/dist/dom/types.d.ts.map +1 -0
- package/dist/dom/types.js +13 -0
- package/dist/dom/types.js.map +1 -0
- package/dist/encode/bitstream.d.ts +14 -0
- package/dist/encode/bitstream.d.ts.map +1 -0
- package/dist/encode/bitstream.js +31 -0
- package/dist/encode/bitstream.js.map +1 -0
- package/dist/encode/encode.d.ts +21 -0
- package/dist/encode/encode.d.ts.map +1 -0
- package/dist/encode/encode.js +65 -0
- package/dist/encode/encode.js.map +1 -0
- package/dist/encode/index.d.ts +5 -0
- package/dist/encode/index.d.ts.map +1 -0
- package/dist/encode/index.js +4 -0
- package/dist/encode/index.js.map +1 -0
- package/dist/encode/plan.d.ts +61 -0
- package/dist/encode/plan.d.ts.map +1 -0
- package/dist/encode/plan.js +177 -0
- package/dist/encode/plan.js.map +1 -0
- package/dist/encode/structured-append.d.ts +35 -0
- package/dist/encode/structured-append.d.ts.map +1 -0
- package/dist/encode/structured-append.js +153 -0
- package/dist/encode/structured-append.js.map +1 -0
- package/dist/fonts/latin.d.ts +118 -0
- package/dist/fonts/latin.d.ts.map +1 -0
- package/dist/fonts/latin.js +137 -0
- package/dist/fonts/latin.js.map +1 -0
- package/dist/geometry/flatten.d.ts +60 -0
- package/dist/geometry/flatten.d.ts.map +1 -0
- package/dist/geometry/flatten.js +177 -0
- package/dist/geometry/flatten.js.map +1 -0
- package/dist/geometry/index.d.ts +10 -0
- package/dist/geometry/index.d.ts.map +1 -0
- package/dist/geometry/index.js +6 -0
- package/dist/geometry/index.js.map +1 -0
- package/dist/geometry/matrix.d.ts +50 -0
- package/dist/geometry/matrix.d.ts.map +1 -0
- package/dist/geometry/matrix.js +113 -0
- package/dist/geometry/matrix.js.map +1 -0
- package/dist/geometry/measure.d.ts +35 -0
- package/dist/geometry/measure.d.ts.map +1 -0
- package/dist/geometry/measure.js +206 -0
- package/dist/geometry/measure.js.map +1 -0
- package/dist/geometry/path.d.ts +137 -0
- package/dist/geometry/path.d.ts.map +1 -0
- package/dist/geometry/path.js +401 -0
- package/dist/geometry/path.js.map +1 -0
- package/dist/geometry/trace.d.ts +29 -0
- package/dist/geometry/trace.d.ts.map +1 -0
- package/dist/geometry/trace.js +166 -0
- package/dist/geometry/trace.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/inspect/explain.d.ts +32 -0
- package/dist/inspect/explain.d.ts.map +1 -0
- package/dist/inspect/explain.js +99 -0
- package/dist/inspect/explain.js.map +1 -0
- package/dist/inspect/gs1.d.ts +38 -0
- package/dist/inspect/gs1.d.ts.map +1 -0
- package/dist/inspect/gs1.js +130 -0
- package/dist/inspect/gs1.js.map +1 -0
- package/dist/inspect/index.d.ts +9 -0
- package/dist/inspect/index.d.ts.map +1 -0
- package/dist/inspect/index.js +6 -0
- package/dist/inspect/index.js.map +1 -0
- package/dist/inspect/inspect.d.ts +29 -0
- package/dist/inspect/inspect.d.ts.map +1 -0
- package/dist/inspect/inspect.js +98 -0
- package/dist/inspect/inspect.js.map +1 -0
- package/dist/inspect/keys.d.ts +54 -0
- package/dist/inspect/keys.d.ts.map +1 -0
- package/dist/inspect/keys.js +63 -0
- package/dist/inspect/keys.js.map +1 -0
- package/dist/inspect/sets.d.ts +27 -0
- package/dist/inspect/sets.d.ts.map +1 -0
- package/dist/inspect/sets.js +67 -0
- package/dist/inspect/sets.js.map +1 -0
- package/dist/inspect/types.d.ts +81 -0
- package/dist/inspect/types.d.ts.map +1 -0
- package/dist/inspect/types.js +16 -0
- package/dist/inspect/types.js.map +1 -0
- package/dist/messages/en/app.d.ts +11 -0
- package/dist/messages/en/app.d.ts.map +1 -0
- package/dist/messages/en/app.js +395 -0
- package/dist/messages/en/app.js.map +1 -0
- package/dist/messages/en/batch.d.ts +18 -0
- package/dist/messages/en/batch.d.ts.map +1 -0
- package/dist/messages/en/batch.js +42 -0
- package/dist/messages/en/batch.js.map +1 -0
- package/dist/messages/en/decode.d.ts +9 -0
- package/dist/messages/en/decode.d.ts.map +1 -0
- package/dist/messages/en/decode.js +21 -0
- package/dist/messages/en/decode.js.map +1 -0
- package/dist/messages/en/design.d.ts +13 -0
- package/dist/messages/en/design.d.ts.map +1 -0
- package/dist/messages/en/design.js +228 -0
- package/dist/messages/en/design.js.map +1 -0
- package/dist/messages/en/dom.d.ts +11 -0
- package/dist/messages/en/dom.d.ts.map +1 -0
- package/dist/messages/en/dom.js +14 -0
- package/dist/messages/en/dom.js.map +1 -0
- package/dist/messages/en/encode.d.ts +13 -0
- package/dist/messages/en/encode.d.ts.map +1 -0
- package/dist/messages/en/encode.js +20 -0
- package/dist/messages/en/encode.js.map +1 -0
- package/dist/messages/en/index.d.ts +48 -0
- package/dist/messages/en/index.d.ts.map +1 -0
- package/dist/messages/en/index.js +73 -0
- package/dist/messages/en/index.js.map +1 -0
- package/dist/messages/en/inspect.d.ts +13 -0
- package/dist/messages/en/inspect.d.ts.map +1 -0
- package/dist/messages/en/inspect.js +84 -0
- package/dist/messages/en/inspect.js.map +1 -0
- package/dist/messages/en/library.d.ts +12 -0
- package/dist/messages/en/library.d.ts.map +1 -0
- package/dist/messages/en/library.js +27 -0
- package/dist/messages/en/library.js.map +1 -0
- package/dist/messages/en/micro.d.ts +9 -0
- package/dist/messages/en/micro.d.ts.map +1 -0
- package/dist/messages/en/micro.js +13 -0
- package/dist/messages/en/micro.js.map +1 -0
- package/dist/messages/en/own-link.d.ts +7 -0
- package/dist/messages/en/own-link.d.ts.map +1 -0
- package/dist/messages/en/own-link.js +29 -0
- package/dist/messages/en/own-link.js.map +1 -0
- package/dist/messages/en/payload.d.ts +13 -0
- package/dist/messages/en/payload.d.ts.map +1 -0
- package/dist/messages/en/payload.js +427 -0
- package/dist/messages/en/payload.js.map +1 -0
- package/dist/messages/en/rmqr.d.ts +9 -0
- package/dist/messages/en/rmqr.d.ts.map +1 -0
- package/dist/messages/en/rmqr.js +12 -0
- package/dist/messages/en/rmqr.js.map +1 -0
- package/dist/messages/en/studio.d.ts +18 -0
- package/dist/messages/en/studio.d.ts.map +1 -0
- package/dist/messages/en/studio.js +117 -0
- package/dist/messages/en/studio.js.map +1 -0
- package/dist/messages/en/symbology.d.ts +13 -0
- package/dist/messages/en/symbology.d.ts.map +1 -0
- package/dist/messages/en/symbology.js +21 -0
- package/dist/messages/en/symbology.js.map +1 -0
- package/dist/messages/en/text.d.ts +23 -0
- package/dist/messages/en/text.d.ts.map +1 -0
- package/dist/messages/en/text.js +47 -0
- package/dist/messages/en/text.js.map +1 -0
- package/dist/messages/en/verify.d.ts +13 -0
- package/dist/messages/en/verify.d.ts.map +1 -0
- package/dist/messages/en/verify.js +117 -0
- package/dist/messages/en/verify.js.map +1 -0
- package/dist/messages/format.d.ts +30 -0
- package/dist/messages/format.d.ts.map +1 -0
- package/dist/messages/format.js +170 -0
- package/dist/messages/format.js.map +1 -0
- package/dist/own-link/index.d.ts +5 -0
- package/dist/own-link/index.d.ts.map +1 -0
- package/dist/own-link/index.js +3 -0
- package/dist/own-link/index.js.map +1 -0
- package/dist/own-link/query.d.ts +10 -0
- package/dist/own-link/query.d.ts.map +1 -0
- package/dist/own-link/query.js +33 -0
- package/dist/own-link/query.js.map +1 -0
- package/dist/own-link/redirects.d.ts +54 -0
- package/dist/own-link/redirects.d.ts.map +1 -0
- package/dist/own-link/redirects.js +271 -0
- package/dist/own-link/redirects.js.map +1 -0
- package/dist/own-link/utm.d.ts +24 -0
- package/dist/own-link/utm.d.ts.map +1 -0
- package/dist/own-link/utm.js +82 -0
- package/dist/own-link/utm.js.map +1 -0
- package/dist/payload/banking.d.ts +39 -0
- package/dist/payload/banking.d.ts.map +1 -0
- package/dist/payload/banking.js +87 -0
- package/dist/payload/banking.js.map +1 -0
- package/dist/payload/base58.d.ts +21 -0
- package/dist/payload/base58.d.ts.map +1 -0
- package/dist/payload/base58.js +75 -0
- package/dist/payload/base58.js.map +1 -0
- package/dist/payload/bech32.d.ts +59 -0
- package/dist/payload/bech32.d.ts.map +1 -0
- package/dist/payload/bech32.js +137 -0
- package/dist/payload/bech32.js.map +1 -0
- package/dist/payload/check-digits.d.ts +49 -0
- package/dist/payload/check-digits.d.ts.map +1 -0
- package/dist/payload/check-digits.js +101 -0
- package/dist/payload/check-digits.js.map +1 -0
- package/dist/payload/content/bitcoin.d.ts +34 -0
- package/dist/payload/content/bitcoin.d.ts.map +1 -0
- package/dist/payload/content/bitcoin.js +137 -0
- package/dist/payload/content/bitcoin.js.map +1 -0
- package/dist/payload/content/email.d.ts +19 -0
- package/dist/payload/content/email.d.ts.map +1 -0
- package/dist/payload/content/email.js +137 -0
- package/dist/payload/content/email.js.map +1 -0
- package/dist/payload/content/epc.d.ts +32 -0
- package/dist/payload/content/epc.d.ts.map +1 -0
- package/dist/payload/content/epc.js +160 -0
- package/dist/payload/content/epc.js.map +1 -0
- package/dist/payload/content/event.d.ts +35 -0
- package/dist/payload/content/event.d.ts.map +1 -0
- package/dist/payload/content/event.js +242 -0
- package/dist/payload/content/event.js.map +1 -0
- package/dist/payload/content/facetime.d.ts +14 -0
- package/dist/payload/content/facetime.d.ts.map +1 -0
- package/dist/payload/content/facetime.js +56 -0
- package/dist/payload/content/facetime.js.map +1 -0
- package/dist/payload/content/geo.d.ts +24 -0
- package/dist/payload/content/geo.d.ts.map +1 -0
- package/dist/payload/content/geo.js +139 -0
- package/dist/payload/content/geo.js.map +1 -0
- package/dist/payload/content/gs1-digital-link.d.ts +34 -0
- package/dist/payload/content/gs1-digital-link.d.ts.map +1 -0
- package/dist/payload/content/gs1-digital-link.js +171 -0
- package/dist/payload/content/gs1-digital-link.js.map +1 -0
- package/dist/payload/content/lightning.d.ts +22 -0
- package/dist/payload/content/lightning.d.ts.map +1 -0
- package/dist/payload/content/lightning.js +90 -0
- package/dist/payload/content/lightning.js.map +1 -0
- package/dist/payload/content/mecard.d.ts +23 -0
- package/dist/payload/content/mecard.d.ts.map +1 -0
- package/dist/payload/content/mecard.js +111 -0
- package/dist/payload/content/mecard.js.map +1 -0
- package/dist/payload/content/phone.d.ts +17 -0
- package/dist/payload/content/phone.d.ts.map +1 -0
- package/dist/payload/content/phone.js +39 -0
- package/dist/payload/content/phone.js.map +1 -0
- package/dist/payload/content/pix.d.ts +36 -0
- package/dist/payload/content/pix.d.ts.map +1 -0
- package/dist/payload/content/pix.js +191 -0
- package/dist/payload/content/pix.js.map +1 -0
- package/dist/payload/content/signal.d.ts +17 -0
- package/dist/payload/content/signal.d.ts.map +1 -0
- package/dist/payload/content/signal.js +43 -0
- package/dist/payload/content/signal.js.map +1 -0
- package/dist/payload/content/sms.d.ts +18 -0
- package/dist/payload/content/sms.d.ts.map +1 -0
- package/dist/payload/content/sms.js +64 -0
- package/dist/payload/content/sms.js.map +1 -0
- package/dist/payload/content/swiss-qr-bill.d.ts +61 -0
- package/dist/payload/content/swiss-qr-bill.d.ts.map +1 -0
- package/dist/payload/content/swiss-qr-bill.js +325 -0
- package/dist/payload/content/swiss-qr-bill.js.map +1 -0
- package/dist/payload/content/telegram.d.ts +18 -0
- package/dist/payload/content/telegram.d.ts.map +1 -0
- package/dist/payload/content/telegram.js +105 -0
- package/dist/payload/content/telegram.js.map +1 -0
- package/dist/payload/content/text.d.ts +9 -0
- package/dist/payload/content/text.d.ts.map +1 -0
- package/dist/payload/content/text.js +18 -0
- package/dist/payload/content/text.js.map +1 -0
- package/dist/payload/content/upi.d.ts +21 -0
- package/dist/payload/content/upi.d.ts.map +1 -0
- package/dist/payload/content/upi.js +89 -0
- package/dist/payload/content/upi.js.map +1 -0
- package/dist/payload/content/url.d.ts +31 -0
- package/dist/payload/content/url.d.ts.map +1 -0
- package/dist/payload/content/url.js +120 -0
- package/dist/payload/content/url.js.map +1 -0
- package/dist/payload/content/vcard.d.ts +42 -0
- package/dist/payload/content/vcard.d.ts.map +1 -0
- package/dist/payload/content/vcard.js +302 -0
- package/dist/payload/content/vcard.js.map +1 -0
- package/dist/payload/content/whatsapp.d.ts +17 -0
- package/dist/payload/content/whatsapp.d.ts.map +1 -0
- package/dist/payload/content/whatsapp.js +72 -0
- package/dist/payload/content/whatsapp.js.map +1 -0
- package/dist/payload/content/wifi.d.ts +48 -0
- package/dist/payload/content/wifi.d.ts.map +1 -0
- package/dist/payload/content/wifi.js +240 -0
- package/dist/payload/content/wifi.js.map +1 -0
- package/dist/payload/content/zatca.d.ts +35 -0
- package/dist/payload/content/zatca.d.ts.map +1 -0
- package/dist/payload/content/zatca.js +156 -0
- package/dist/payload/content/zatca.js.map +1 -0
- package/dist/payload/data/hosts.d.ts +39 -0
- package/dist/payload/data/hosts.d.ts.map +1 -0
- package/dist/payload/data/hosts.js +74 -0
- package/dist/payload/data/hosts.js.map +1 -0
- package/dist/payload/define.d.ts +57 -0
- package/dist/payload/define.d.ts.map +1 -0
- package/dist/payload/define.js +87 -0
- package/dist/payload/define.js.map +1 -0
- package/dist/payload/detect.d.ts +13 -0
- package/dist/payload/detect.d.ts.map +1 -0
- package/dist/payload/detect.js +32 -0
- package/dist/payload/detect.js.map +1 -0
- package/dist/payload/emv.d.ts +41 -0
- package/dist/payload/emv.d.ts.map +1 -0
- package/dist/payload/emv.js +73 -0
- package/dist/payload/emv.js.map +1 -0
- package/dist/payload/escape.d.ts +66 -0
- package/dist/payload/escape.d.ts.map +1 -0
- package/dist/payload/escape.js +225 -0
- package/dist/payload/escape.js.map +1 -0
- package/dist/payload/fields.d.ts +86 -0
- package/dist/payload/fields.d.ts.map +1 -0
- package/dist/payload/fields.js +368 -0
- package/dist/payload/fields.js.map +1 -0
- package/dist/payload/hash.d.ts +11 -0
- package/dist/payload/hash.d.ts.map +1 -0
- package/dist/payload/hash.js +82 -0
- package/dist/payload/hash.js.map +1 -0
- package/dist/payload/index.d.ts +58 -0
- package/dist/payload/index.d.ts.map +1 -0
- package/dist/payload/index.js +32 -0
- package/dist/payload/index.js.map +1 -0
- package/dist/payload/punycode.d.ts +18 -0
- package/dist/payload/punycode.d.ts.map +1 -0
- package/dist/payload/punycode.js +99 -0
- package/dist/payload/punycode.js.map +1 -0
- package/dist/payload/registry.d.ts +20 -0
- package/dist/payload/registry.d.ts.map +1 -0
- package/dist/payload/registry.js +64 -0
- package/dist/payload/registry.js.map +1 -0
- package/dist/payload/safety.d.ts +13 -0
- package/dist/payload/safety.d.ts.map +1 -0
- package/dist/payload/safety.js +30 -0
- package/dist/payload/safety.js.map +1 -0
- package/dist/payload/scripts.d.ts +25 -0
- package/dist/payload/scripts.d.ts.map +1 -0
- package/dist/payload/scripts.js +90 -0
- package/dist/payload/scripts.js.map +1 -0
- package/dist/payload/types.d.ts +138 -0
- package/dist/payload/types.d.ts.map +1 -0
- package/dist/payload/types.js +28 -0
- package/dist/payload/types.js.map +1 -0
- package/dist/payload/uri.d.ts +24 -0
- package/dist/payload/uri.d.ts.map +1 -0
- package/dist/payload/uri.js +69 -0
- package/dist/payload/uri.js.map +1 -0
- package/dist/payload/url-safety.d.ts +31 -0
- package/dist/payload/url-safety.d.ts.map +1 -0
- package/dist/payload/url-safety.js +221 -0
- package/dist/payload/url-safety.js.map +1 -0
- package/dist/payload/vectors/bitcoin.d.ts +13 -0
- package/dist/payload/vectors/bitcoin.d.ts.map +1 -0
- package/dist/payload/vectors/bitcoin.js +83 -0
- package/dist/payload/vectors/bitcoin.js.map +1 -0
- package/dist/payload/vectors/built-in.d.ts +15 -0
- package/dist/payload/vectors/built-in.d.ts.map +1 -0
- package/dist/payload/vectors/built-in.js +59 -0
- package/dist/payload/vectors/built-in.js.map +1 -0
- package/dist/payload/vectors/email.d.ts +8 -0
- package/dist/payload/vectors/email.d.ts.map +1 -0
- package/dist/payload/vectors/email.js +60 -0
- package/dist/payload/vectors/email.js.map +1 -0
- package/dist/payload/vectors/epc.d.ts +9 -0
- package/dist/payload/vectors/epc.d.ts.map +1 -0
- package/dist/payload/vectors/epc.js +38 -0
- package/dist/payload/vectors/epc.js.map +1 -0
- package/dist/payload/vectors/event.d.ts +9 -0
- package/dist/payload/vectors/event.d.ts.map +1 -0
- package/dist/payload/vectors/event.js +57 -0
- package/dist/payload/vectors/event.js.map +1 -0
- package/dist/payload/vectors/facetime.d.ts +9 -0
- package/dist/payload/vectors/facetime.d.ts.map +1 -0
- package/dist/payload/vectors/facetime.js +19 -0
- package/dist/payload/vectors/facetime.js.map +1 -0
- package/dist/payload/vectors/geo.d.ts +8 -0
- package/dist/payload/vectors/geo.d.ts.map +1 -0
- package/dist/payload/vectors/geo.js +22 -0
- package/dist/payload/vectors/geo.js.map +1 -0
- package/dist/payload/vectors/gs1-digital-link.d.ts +9 -0
- package/dist/payload/vectors/gs1-digital-link.d.ts.map +1 -0
- package/dist/payload/vectors/gs1-digital-link.js +21 -0
- package/dist/payload/vectors/gs1-digital-link.js.map +1 -0
- package/dist/payload/vectors/hosts.d.ts +12 -0
- package/dist/payload/vectors/hosts.d.ts.map +1 -0
- package/dist/payload/vectors/hosts.js +50 -0
- package/dist/payload/vectors/hosts.js.map +1 -0
- package/dist/payload/vectors/index.d.ts +10 -0
- package/dist/payload/vectors/index.d.ts.map +1 -0
- package/dist/payload/vectors/index.js +9 -0
- package/dist/payload/vectors/index.js.map +1 -0
- package/dist/payload/vectors/lightning.d.ts +9 -0
- package/dist/payload/vectors/lightning.d.ts.map +1 -0
- package/dist/payload/vectors/lightning.js +23 -0
- package/dist/payload/vectors/lightning.js.map +1 -0
- package/dist/payload/vectors/mecard.d.ts +9 -0
- package/dist/payload/vectors/mecard.d.ts.map +1 -0
- package/dist/payload/vectors/mecard.js +25 -0
- package/dist/payload/vectors/mecard.js.map +1 -0
- package/dist/payload/vectors/phone.d.ts +9 -0
- package/dist/payload/vectors/phone.d.ts.map +1 -0
- package/dist/payload/vectors/phone.js +13 -0
- package/dist/payload/vectors/phone.js.map +1 -0
- package/dist/payload/vectors/pix.d.ts +9 -0
- package/dist/payload/vectors/pix.d.ts.map +1 -0
- package/dist/payload/vectors/pix.js +21 -0
- package/dist/payload/vectors/pix.js.map +1 -0
- package/dist/payload/vectors/signal.d.ts +9 -0
- package/dist/payload/vectors/signal.d.ts.map +1 -0
- package/dist/payload/vectors/signal.js +14 -0
- package/dist/payload/vectors/signal.js.map +1 -0
- package/dist/payload/vectors/sms.d.ts +9 -0
- package/dist/payload/vectors/sms.d.ts.map +1 -0
- package/dist/payload/vectors/sms.js +18 -0
- package/dist/payload/vectors/sms.js.map +1 -0
- package/dist/payload/vectors/swiss-qr-bill.d.ts +9 -0
- package/dist/payload/vectors/swiss-qr-bill.d.ts.map +1 -0
- package/dist/payload/vectors/swiss-qr-bill.js +72 -0
- package/dist/payload/vectors/swiss-qr-bill.js.map +1 -0
- package/dist/payload/vectors/telegram.d.ts +9 -0
- package/dist/payload/vectors/telegram.d.ts.map +1 -0
- package/dist/payload/vectors/telegram.js +19 -0
- package/dist/payload/vectors/telegram.js.map +1 -0
- package/dist/payload/vectors/text.d.ts +9 -0
- package/dist/payload/vectors/text.d.ts.map +1 -0
- package/dist/payload/vectors/text.js +13 -0
- package/dist/payload/vectors/text.js.map +1 -0
- package/dist/payload/vectors/upi.d.ts +9 -0
- package/dist/payload/vectors/upi.d.ts.map +1 -0
- package/dist/payload/vectors/upi.js +14 -0
- package/dist/payload/vectors/upi.js.map +1 -0
- package/dist/payload/vectors/url.d.ts +8 -0
- package/dist/payload/vectors/url.d.ts.map +1 -0
- package/dist/payload/vectors/url.js +30 -0
- package/dist/payload/vectors/url.js.map +1 -0
- package/dist/payload/vectors/vcard.d.ts +9 -0
- package/dist/payload/vectors/vcard.d.ts.map +1 -0
- package/dist/payload/vectors/vcard.js +47 -0
- package/dist/payload/vectors/vcard.js.map +1 -0
- package/dist/payload/vectors/whatsapp.d.ts +9 -0
- package/dist/payload/vectors/whatsapp.d.ts.map +1 -0
- package/dist/payload/vectors/whatsapp.js +19 -0
- package/dist/payload/vectors/whatsapp.js.map +1 -0
- package/dist/payload/vectors/wifi.d.ts +13 -0
- package/dist/payload/vectors/wifi.d.ts.map +1 -0
- package/dist/payload/vectors/wifi.js +40 -0
- package/dist/payload/vectors/wifi.js.map +1 -0
- package/dist/payload/vectors/zatca.d.ts +12 -0
- package/dist/payload/vectors/zatca.d.ts.map +1 -0
- package/dist/payload/vectors/zatca.js +28 -0
- package/dist/payload/vectors/zatca.js.map +1 -0
- package/dist/qr-code-studio.html +190 -0
- package/dist/registries.d.ts +24 -0
- package/dist/registries.d.ts.map +1 -0
- package/dist/registries.js +23 -0
- package/dist/registries.js.map +1 -0
- package/dist/render/base64.d.ts +11 -0
- package/dist/render/base64.d.ts.map +1 -0
- package/dist/render/base64.js +40 -0
- package/dist/render/base64.js.map +1 -0
- package/dist/render/colour.d.ts +28 -0
- package/dist/render/colour.d.ts.map +1 -0
- package/dist/render/colour.js +72 -0
- package/dist/render/colour.js.map +1 -0
- package/dist/render/conic.d.ts +68 -0
- package/dist/render/conic.d.ts.map +1 -0
- package/dist/render/conic.js +205 -0
- package/dist/render/conic.js.map +1 -0
- package/dist/render/coverage.d.ts +154 -0
- package/dist/render/coverage.d.ts.map +1 -0
- package/dist/render/coverage.js +613 -0
- package/dist/render/coverage.js.map +1 -0
- package/dist/render/eps.d.ts +41 -0
- package/dist/render/eps.d.ts.map +1 -0
- package/dist/render/eps.js +377 -0
- package/dist/render/eps.js.map +1 -0
- package/dist/render/impose.d.ts +130 -0
- package/dist/render/impose.d.ts.map +1 -0
- package/dist/render/impose.js +288 -0
- package/dist/render/impose.js.map +1 -0
- package/dist/render/index.d.ts +22 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +13 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/paint.d.ts +62 -0
- package/dist/render/paint.d.ts.map +1 -0
- package/dist/render/paint.js +169 -0
- package/dist/render/paint.js.map +1 -0
- package/dist/render/pdf-colour.d.ts +34 -0
- package/dist/render/pdf-colour.d.ts.map +1 -0
- package/dist/render/pdf-colour.js +64 -0
- package/dist/render/pdf-colour.js.map +1 -0
- package/dist/render/pdf-content.d.ts +90 -0
- package/dist/render/pdf-content.d.ts.map +1 -0
- package/dist/render/pdf-content.js +367 -0
- package/dist/render/pdf-content.js.map +1 -0
- package/dist/render/pdf-document.d.ts +38 -0
- package/dist/render/pdf-document.d.ts.map +1 -0
- package/dist/render/pdf-document.js +110 -0
- package/dist/render/pdf-document.js.map +1 -0
- package/dist/render/pdf-hash.d.ts +14 -0
- package/dist/render/pdf-hash.d.ts.map +1 -0
- package/dist/render/pdf-hash.js +71 -0
- package/dist/render/pdf-hash.js.map +1 -0
- package/dist/render/pdf-syntax.d.ts +45 -0
- package/dist/render/pdf-syntax.d.ts.map +1 -0
- package/dist/render/pdf-syntax.js +100 -0
- package/dist/render/pdf-syntax.js.map +1 -0
- package/dist/render/pdf.d.ts +59 -0
- package/dist/render/pdf.d.ts.map +1 -0
- package/dist/render/pdf.js +267 -0
- package/dist/render/pdf.js.map +1 -0
- package/dist/render/png-decode.d.ts +33 -0
- package/dist/render/png-decode.d.ts.map +1 -0
- package/dist/render/png-decode.js +345 -0
- package/dist/render/png-decode.js.map +1 -0
- package/dist/render/png.d.ts +37 -0
- package/dist/render/png.d.ts.map +1 -0
- package/dist/render/png.js +350 -0
- package/dist/render/png.js.map +1 -0
- package/dist/render/raster.d.ts +40 -0
- package/dist/render/raster.d.ts.map +1 -0
- package/dist/render/raster.js +245 -0
- package/dist/render/raster.js.map +1 -0
- package/dist/render/scene.d.ts +84 -0
- package/dist/render/scene.d.ts.map +1 -0
- package/dist/render/scene.js +216 -0
- package/dist/render/scene.js.map +1 -0
- package/dist/render/sheets.d.ts +26 -0
- package/dist/render/sheets.d.ts.map +1 -0
- package/dist/render/sheets.js +83 -0
- package/dist/render/sheets.js.map +1 -0
- package/dist/render/svg.d.ts +54 -0
- package/dist/render/svg.d.ts.map +1 -0
- package/dist/render/svg.js +324 -0
- package/dist/render/svg.js.map +1 -0
- package/dist/render/types.d.ts +95 -0
- package/dist/render/types.d.ts.map +1 -0
- package/dist/render/types.js +9 -0
- package/dist/render/types.js.map +1 -0
- package/dist/segment/alphanumeric.d.ts +15 -0
- package/dist/segment/alphanumeric.d.ts.map +1 -0
- package/dist/segment/alphanumeric.js +23 -0
- package/dist/segment/alphanumeric.js.map +1 -0
- package/dist/segment/eci.d.ts +41 -0
- package/dist/segment/eci.d.ts.map +1 -0
- package/dist/segment/eci.js +194 -0
- package/dist/segment/eci.js.map +1 -0
- package/dist/segment/index.d.ts +10 -0
- package/dist/segment/index.d.ts.map +1 -0
- package/dist/segment/index.js +8 -0
- package/dist/segment/index.js.map +1 -0
- package/dist/segment/kanji.d.ts +57 -0
- package/dist/segment/kanji.d.ts.map +1 -0
- package/dist/segment/kanji.js +135 -0
- package/dist/segment/kanji.js.map +1 -0
- package/dist/segment/profile.d.ts +21 -0
- package/dist/segment/profile.d.ts.map +1 -0
- package/dist/segment/profile.js +66 -0
- package/dist/segment/profile.js.map +1 -0
- package/dist/segment/read.d.ts +29 -0
- package/dist/segment/read.d.ts.map +1 -0
- package/dist/segment/read.js +360 -0
- package/dist/segment/read.js.map +1 -0
- package/dist/segment/segment-text.d.ts +88 -0
- package/dist/segment/segment-text.d.ts.map +1 -0
- package/dist/segment/segment-text.js +422 -0
- package/dist/segment/segment-text.js.map +1 -0
- package/dist/segment/types.d.ts +89 -0
- package/dist/segment/types.d.ts.map +1 -0
- package/dist/segment/types.js +13 -0
- package/dist/segment/types.js.map +1 -0
- package/dist/segment/write.d.ts +36 -0
- package/dist/segment/write.d.ts.map +1 -0
- package/dist/segment/write.js +226 -0
- package/dist/segment/write.js.map +1 -0
- package/dist/studio/assets.d.ts +22 -0
- package/dist/studio/assets.d.ts.map +1 -0
- package/dist/studio/assets.js +66 -0
- package/dist/studio/assets.js.map +1 -0
- package/dist/studio/catalogue.d.ts +34 -0
- package/dist/studio/catalogue.d.ts.map +1 -0
- package/dist/studio/catalogue.js +359 -0
- package/dist/studio/catalogue.js.map +1 -0
- package/dist/studio/contrast.d.ts +16 -0
- package/dist/studio/contrast.d.ts.map +1 -0
- package/dist/studio/contrast.js +28 -0
- package/dist/studio/contrast.js.map +1 -0
- package/dist/studio/document.d.ts +61 -0
- package/dist/studio/document.d.ts.map +1 -0
- package/dist/studio/document.js +208 -0
- package/dist/studio/document.js.map +1 -0
- package/dist/studio/export.d.ts +52 -0
- package/dist/studio/export.d.ts.map +1 -0
- package/dist/studio/export.js +269 -0
- package/dist/studio/export.js.map +1 -0
- package/dist/studio/form.d.ts +15 -0
- package/dist/studio/form.d.ts.map +1 -0
- package/dist/studio/form.js +91 -0
- package/dist/studio/form.js.map +1 -0
- package/dist/studio/history.d.ts +66 -0
- package/dist/studio/history.d.ts.map +1 -0
- package/dist/studio/history.js +109 -0
- package/dist/studio/history.js.map +1 -0
- package/dist/studio/index.d.ts +16 -0
- package/dist/studio/index.d.ts.map +1 -0
- package/dist/studio/index.js +12 -0
- package/dist/studio/index.js.map +1 -0
- package/dist/studio/keys.d.ts +86 -0
- package/dist/studio/keys.d.ts.map +1 -0
- package/dist/studio/keys.js +165 -0
- package/dist/studio/keys.js.map +1 -0
- package/dist/studio/kit.d.ts +44 -0
- package/dist/studio/kit.d.ts.map +1 -0
- package/dist/studio/kit.js +114 -0
- package/dist/studio/kit.js.map +1 -0
- package/dist/studio/logo.d.ts +25 -0
- package/dist/studio/logo.d.ts.map +1 -0
- package/dist/studio/logo.js +49 -0
- package/dist/studio/logo.js.map +1 -0
- package/dist/studio/names.d.ts +18 -0
- package/dist/studio/names.d.ts.map +1 -0
- package/dist/studio/names.js +36 -0
- package/dist/studio/names.js.map +1 -0
- package/dist/studio/patch.d.ts +17 -0
- package/dist/studio/patch.d.ts.map +1 -0
- package/dist/studio/patch.js +64 -0
- package/dist/studio/patch.js.map +1 -0
- package/dist/studio/seams.d.ts +44 -0
- package/dist/studio/seams.d.ts.map +1 -0
- package/dist/studio/seams.js +36 -0
- package/dist/studio/seams.js.map +1 -0
- package/dist/studio/share.d.ts +16 -0
- package/dist/studio/share.d.ts.map +1 -0
- package/dist/studio/share.js +57 -0
- package/dist/studio/share.js.map +1 -0
- package/dist/studio/shuffle.d.ts +38 -0
- package/dist/studio/shuffle.d.ts.map +1 -0
- package/dist/studio/shuffle.js +181 -0
- package/dist/studio/shuffle.js.map +1 -0
- package/dist/studio/slices.d.ts +29 -0
- package/dist/studio/slices.d.ts.map +1 -0
- package/dist/studio/slices.js +84 -0
- package/dist/studio/slices.js.map +1 -0
- package/dist/studio/studio.d.ts +29 -0
- package/dist/studio/studio.d.ts.map +1 -0
- package/dist/studio/studio.js +1298 -0
- package/dist/studio/studio.js.map +1 -0
- package/dist/studio/symbol.d.ts +47 -0
- package/dist/studio/symbol.d.ts.map +1 -0
- package/dist/studio/symbol.js +159 -0
- package/dist/studio/symbol.js.map +1 -0
- package/dist/studio/timers.d.ts +18 -0
- package/dist/studio/timers.d.ts.map +1 -0
- package/dist/studio/timers.js +36 -0
- package/dist/studio/timers.js.map +1 -0
- package/dist/studio/types.d.ts +693 -0
- package/dist/studio/types.d.ts.map +1 -0
- package/dist/studio/types.js +26 -0
- package/dist/studio/types.js.map +1 -0
- package/dist/studio/verify.d.ts +47 -0
- package/dist/studio/verify.d.ts.map +1 -0
- package/dist/studio/verify.js +63 -0
- package/dist/studio/verify.js.map +1 -0
- package/dist/symbology/index.d.ts +8 -0
- package/dist/symbology/index.d.ts.map +1 -0
- package/dist/symbology/index.js +6 -0
- package/dist/symbology/index.js.map +1 -0
- package/dist/symbology/micro/blocks.d.ts +34 -0
- package/dist/symbology/micro/blocks.d.ts.map +1 -0
- package/dist/symbology/micro/blocks.js +63 -0
- package/dist/symbology/micro/blocks.js.map +1 -0
- package/dist/symbology/micro/entry.d.ts +70 -0
- package/dist/symbology/micro/entry.d.ts.map +1 -0
- package/dist/symbology/micro/entry.js +181 -0
- package/dist/symbology/micro/entry.js.map +1 -0
- package/dist/symbology/micro/format.d.ts +31 -0
- package/dist/symbology/micro/format.d.ts.map +1 -0
- package/dist/symbology/micro/format.js +48 -0
- package/dist/symbology/micro/format.js.map +1 -0
- package/dist/symbology/micro/index.d.ts +7 -0
- package/dist/symbology/micro/index.d.ts.map +1 -0
- package/dist/symbology/micro/index.js +5 -0
- package/dist/symbology/micro/index.js.map +1 -0
- package/dist/symbology/micro/layout.d.ts +40 -0
- package/dist/symbology/micro/layout.d.ts.map +1 -0
- package/dist/symbology/micro/layout.js +106 -0
- package/dist/symbology/micro/layout.js.map +1 -0
- package/dist/symbology/micro/mask.d.ts +25 -0
- package/dist/symbology/micro/mask.d.ts.map +1 -0
- package/dist/symbology/micro/mask.js +41 -0
- package/dist/symbology/micro/mask.js.map +1 -0
- package/dist/symbology/micro/modules.d.ts +76 -0
- package/dist/symbology/micro/modules.d.ts.map +1 -0
- package/dist/symbology/micro/modules.js +156 -0
- package/dist/symbology/micro/modules.js.map +1 -0
- package/dist/symbology/micro/profile.d.ts +16 -0
- package/dist/symbology/micro/profile.d.ts.map +1 -0
- package/dist/symbology/micro/profile.js +45 -0
- package/dist/symbology/micro/profile.js.map +1 -0
- package/dist/symbology/micro/read-helpers.d.ts +31 -0
- package/dist/symbology/micro/read-helpers.d.ts.map +1 -0
- package/dist/symbology/micro/read-helpers.js +66 -0
- package/dist/symbology/micro/read-helpers.js.map +1 -0
- package/dist/symbology/micro/tables.d.ts +63 -0
- package/dist/symbology/micro/tables.d.ts.map +1 -0
- package/dist/symbology/micro/tables.js +163 -0
- package/dist/symbology/micro/tables.js.map +1 -0
- package/dist/symbology/qr/blocks.d.ts +58 -0
- package/dist/symbology/qr/blocks.d.ts.map +1 -0
- package/dist/symbology/qr/blocks.js +176 -0
- package/dist/symbology/qr/blocks.js.map +1 -0
- package/dist/symbology/qr/build.d.ts +20 -0
- package/dist/symbology/qr/build.d.ts.map +1 -0
- package/dist/symbology/qr/build.js +91 -0
- package/dist/symbology/qr/build.js.map +1 -0
- package/dist/symbology/qr/entry.d.ts +13 -0
- package/dist/symbology/qr/entry.d.ts.map +1 -0
- package/dist/symbology/qr/entry.js +56 -0
- package/dist/symbology/qr/entry.js.map +1 -0
- package/dist/symbology/qr/index.d.ts +13 -0
- package/dist/symbology/qr/index.d.ts.map +1 -0
- package/dist/symbology/qr/index.js +9 -0
- package/dist/symbology/qr/index.js.map +1 -0
- package/dist/symbology/qr/info.d.ts +29 -0
- package/dist/symbology/qr/info.d.ts.map +1 -0
- package/dist/symbology/qr/info.js +53 -0
- package/dist/symbology/qr/info.js.map +1 -0
- package/dist/symbology/qr/layout.d.ts +37 -0
- package/dist/symbology/qr/layout.d.ts.map +1 -0
- package/dist/symbology/qr/layout.js +174 -0
- package/dist/symbology/qr/layout.js.map +1 -0
- package/dist/symbology/qr/mask.d.ts +35 -0
- package/dist/symbology/qr/mask.d.ts.map +1 -0
- package/dist/symbology/qr/mask.js +113 -0
- package/dist/symbology/qr/mask.js.map +1 -0
- package/dist/symbology/qr/read.d.ts +43 -0
- package/dist/symbology/qr/read.d.ts.map +1 -0
- package/dist/symbology/qr/read.js +219 -0
- package/dist/symbology/qr/read.js.map +1 -0
- package/dist/symbology/qr/tables.d.ts +62 -0
- package/dist/symbology/qr/tables.d.ts.map +1 -0
- package/dist/symbology/qr/tables.js +337 -0
- package/dist/symbology/qr/tables.js.map +1 -0
- package/dist/symbology/registry.d.ts +11 -0
- package/dist/symbology/registry.d.ts.map +1 -0
- package/dist/symbology/registry.js +19 -0
- package/dist/symbology/registry.js.map +1 -0
- package/dist/symbology/rmqr/entry.d.ts +56 -0
- package/dist/symbology/rmqr/entry.d.ts.map +1 -0
- package/dist/symbology/rmqr/entry.js +165 -0
- package/dist/symbology/rmqr/entry.js.map +1 -0
- package/dist/symbology/rmqr/format.d.ts +45 -0
- package/dist/symbology/rmqr/format.d.ts.map +1 -0
- package/dist/symbology/rmqr/format.js +72 -0
- package/dist/symbology/rmqr/format.js.map +1 -0
- package/dist/symbology/rmqr/index.d.ts +5 -0
- package/dist/symbology/rmqr/index.d.ts.map +1 -0
- package/dist/symbology/rmqr/index.js +5 -0
- package/dist/symbology/rmqr/index.js.map +1 -0
- package/dist/symbology/rmqr/layout.d.ts +46 -0
- package/dist/symbology/rmqr/layout.d.ts.map +1 -0
- package/dist/symbology/rmqr/layout.js +196 -0
- package/dist/symbology/rmqr/layout.js.map +1 -0
- package/dist/symbology/rmqr/profile.d.ts +15 -0
- package/dist/symbology/rmqr/profile.d.ts.map +1 -0
- package/dist/symbology/rmqr/profile.js +52 -0
- package/dist/symbology/rmqr/profile.js.map +1 -0
- package/dist/symbology/rmqr/tables.d.ts +62 -0
- package/dist/symbology/rmqr/tables.d.ts.map +1 -0
- package/dist/symbology/rmqr/tables.js +194 -0
- package/dist/symbology/rmqr/tables.js.map +1 -0
- package/dist/symbology/roles.d.ts +19 -0
- package/dist/symbology/roles.d.ts.map +1 -0
- package/dist/symbology/roles.js +35 -0
- package/dist/symbology/roles.js.map +1 -0
- package/dist/symbology/types.d.ts +126 -0
- package/dist/symbology/types.d.ts.map +1 -0
- package/dist/symbology/types.js +11 -0
- package/dist/symbology/types.js.map +1 -0
- package/dist/text/base64.d.ts +11 -0
- package/dist/text/base64.d.ts.map +1 -0
- package/dist/text/base64.js +49 -0
- package/dist/text/base64.js.map +1 -0
- package/dist/text/cmap.d.ts +17 -0
- package/dist/text/cmap.d.ts.map +1 -0
- package/dist/text/cmap.js +161 -0
- package/dist/text/cmap.js.map +1 -0
- package/dist/text/compiled.d.ts +52 -0
- package/dist/text/compiled.d.ts.map +1 -0
- package/dist/text/compiled.js +220 -0
- package/dist/text/compiled.js.map +1 -0
- package/dist/text/errors.d.ts +34 -0
- package/dist/text/errors.d.ts.map +1 -0
- package/dist/text/errors.js +26 -0
- package/dist/text/errors.js.map +1 -0
- package/dist/text/font.d.ts +29 -0
- package/dist/text/font.d.ts.map +1 -0
- package/dist/text/font.js +67 -0
- package/dist/text/font.js.map +1 -0
- package/dist/text/glyf.d.ts +62 -0
- package/dist/text/glyf.d.ts.map +1 -0
- package/dist/text/glyf.js +276 -0
- package/dist/text/glyf.js.map +1 -0
- package/dist/text/index.d.ts +13 -0
- package/dist/text/index.d.ts.map +1 -0
- package/dist/text/index.js +9 -0
- package/dist/text/index.js.map +1 -0
- package/dist/text/kerning.d.ts +36 -0
- package/dist/text/kerning.d.ts.map +1 -0
- package/dist/text/kerning.js +382 -0
- package/dist/text/kerning.js.map +1 -0
- package/dist/text/layout.d.ts +35 -0
- package/dist/text/layout.d.ts.map +1 -0
- package/dist/text/layout.js +287 -0
- package/dist/text/layout.js.map +1 -0
- package/dist/text/outline.d.ts +22 -0
- package/dist/text/outline.d.ts.map +1 -0
- package/dist/text/outline.js +79 -0
- package/dist/text/outline.js.map +1 -0
- package/dist/text/reader.d.ts +43 -0
- package/dist/text/reader.d.ts.map +1 -0
- package/dist/text/reader.js +83 -0
- package/dist/text/reader.js.map +1 -0
- package/dist/text/registry.d.ts +21 -0
- package/dist/text/registry.d.ts.map +1 -0
- package/dist/text/registry.js +32 -0
- package/dist/text/registry.js.map +1 -0
- package/dist/text/truetype.d.ts +44 -0
- package/dist/text/truetype.d.ts.map +1 -0
- package/dist/text/truetype.js +127 -0
- package/dist/text/truetype.js.map +1 -0
- package/dist/text/types.d.ts +106 -0
- package/dist/text/types.d.ts.map +1 -0
- package/dist/text/types.js +11 -0
- package/dist/text/types.js.map +1 -0
- package/dist/verify/camera.d.ts +59 -0
- package/dist/verify/camera.d.ts.map +1 -0
- package/dist/verify/camera.js +76 -0
- package/dist/verify/camera.js.map +1 -0
- package/dist/verify/capture.d.ts +40 -0
- package/dist/verify/capture.d.ts.map +1 -0
- package/dist/verify/capture.js +118 -0
- package/dist/verify/capture.js.map +1 -0
- package/dist/verify/coverage.d.ts +61 -0
- package/dist/verify/coverage.d.ts.map +1 -0
- package/dist/verify/coverage.js +90 -0
- package/dist/verify/coverage.js.map +1 -0
- package/dist/verify/degrade.d.ts +143 -0
- package/dist/verify/degrade.d.ts.map +1 -0
- package/dist/verify/degrade.js +503 -0
- package/dist/verify/degrade.js.map +1 -0
- package/dist/verify/fixes.d.ts +28 -0
- package/dist/verify/fixes.d.ts.map +1 -0
- package/dist/verify/fixes.js +277 -0
- package/dist/verify/fixes.js.map +1 -0
- package/dist/verify/homography.d.ts +32 -0
- package/dist/verify/homography.d.ts.map +1 -0
- package/dist/verify/homography.js +79 -0
- package/dist/verify/homography.js.map +1 -0
- package/dist/verify/index.d.ts +17 -0
- package/dist/verify/index.d.ts.map +1 -0
- package/dist/verify/index.js +11 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/inks.d.ts +39 -0
- package/dist/verify/inks.d.ts.map +1 -0
- package/dist/verify/inks.js +101 -0
- package/dist/verify/inks.js.map +1 -0
- package/dist/verify/job.d.ts +89 -0
- package/dist/verify/job.d.ts.map +1 -0
- package/dist/verify/job.js +314 -0
- package/dist/verify/job.js.map +1 -0
- package/dist/verify/keys.d.ts +92 -0
- package/dist/verify/keys.d.ts.map +1 -0
- package/dist/verify/keys.js +95 -0
- package/dist/verify/keys.js.map +1 -0
- package/dist/verify/ladders.d.ts +68 -0
- package/dist/verify/ladders.d.ts.map +1 -0
- package/dist/verify/ladders.js +154 -0
- package/dist/verify/ladders.js.map +1 -0
- package/dist/verify/prepare.d.ts +78 -0
- package/dist/verify/prepare.d.ts.map +1 -0
- package/dist/verify/prepare.js +307 -0
- package/dist/verify/prepare.js.map +1 -0
- package/dist/verify/preset.d.ts +111 -0
- package/dist/verify/preset.d.ts.map +1 -0
- package/dist/verify/preset.js +200 -0
- package/dist/verify/preset.js.map +1 -0
- package/dist/verify/read.d.ts +23 -0
- package/dist/verify/read.d.ts.map +1 -0
- package/dist/verify/read.js +55 -0
- package/dist/verify/read.js.map +1 -0
- package/dist/verify/region.d.ts +37 -0
- package/dist/verify/region.d.ts.map +1 -0
- package/dist/verify/region.js +80 -0
- package/dist/verify/region.js.map +1 -0
- package/dist/verify/static.d.ts +56 -0
- package/dist/verify/static.d.ts.map +1 -0
- package/dist/verify/static.js +277 -0
- package/dist/verify/static.js.map +1 -0
- package/dist/verify/types.d.ts +173 -0
- package/dist/verify/types.d.ts.map +1 -0
- package/dist/verify/types.js +36 -0
- package/dist/verify/types.js.map +1 -0
- package/package.json +191 -5
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeded randomness, for everything in the determinism zone that needs it:
|
|
3
|
+
* the scan check's simulated damage, dithering, a random-looking design that
|
|
4
|
+
* must look the same tomorrow.
|
|
5
|
+
*
|
|
6
|
+
* xoshiro128** 1.1 (Blackman and Vigna), seeded by splitmix32. Both are
|
|
7
|
+
* integer arithmetic over 32 bits with `Math.imul` and shifts, which
|
|
8
|
+
* ECMAScript fixes exactly, so a seed gives the same stream in every engine.
|
|
9
|
+
* `Math.random` is banned here for the opposite reason: it is unseeded and
|
|
10
|
+
* differs everywhere, and a verdict that depends on it cannot be reproduced.
|
|
11
|
+
*
|
|
12
|
+
* `fork` gives an independent stream per label, derived from the stream's
|
|
13
|
+
* starting state rather than its current position. So a job can hand
|
|
14
|
+
* `fork(1)` to one stage and `fork(2)` to another, and adding a draw to one
|
|
15
|
+
* stage never shifts the numbers the other sees.
|
|
16
|
+
*/
|
|
17
|
+
const GOLDEN = 0x9e3779b9;
|
|
18
|
+
const TWO_32 = 4294967296;
|
|
19
|
+
/** The splitmix32 output function: a bijection on 32 bits with good avalanche. */
|
|
20
|
+
function mix32(value) {
|
|
21
|
+
let z = value >>> 0;
|
|
22
|
+
z = Math.imul(z ^ (z >>> 16), 0x21f0aaad);
|
|
23
|
+
z = Math.imul(z ^ (z >>> 15), 0x735a2d97);
|
|
24
|
+
return (z ^ (z >>> 15)) >>> 0;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Four consecutive splitmix32 outputs from `seed`.
|
|
28
|
+
*
|
|
29
|
+
* Each is mix32 of a different input and mix32 is zero only at zero, so at
|
|
30
|
+
* most one of the four is zero and the state is never all zero, which is the
|
|
31
|
+
* one state xoshiro cannot leave.
|
|
32
|
+
*/
|
|
33
|
+
function splitmix(seed) {
|
|
34
|
+
let state = seed >>> 0;
|
|
35
|
+
const word = () => {
|
|
36
|
+
state = (state + GOLDEN) >>> 0;
|
|
37
|
+
return mix32(state);
|
|
38
|
+
};
|
|
39
|
+
return [word(), word(), word(), word()];
|
|
40
|
+
}
|
|
41
|
+
function checkUint32(value, what) {
|
|
42
|
+
if (!Number.isInteger(value) || value < 0 || value >= TWO_32) {
|
|
43
|
+
throw new RangeError(`${what} is an integer from 0 to 2^32 - 1`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
class Xoshiro128 {
|
|
47
|
+
s0;
|
|
48
|
+
s1;
|
|
49
|
+
s2;
|
|
50
|
+
s3;
|
|
51
|
+
origin;
|
|
52
|
+
constructor(state) {
|
|
53
|
+
this.origin = state;
|
|
54
|
+
[this.s0, this.s1, this.s2, this.s3] = state;
|
|
55
|
+
}
|
|
56
|
+
next() {
|
|
57
|
+
return this.step() / TWO_32;
|
|
58
|
+
}
|
|
59
|
+
int(maxExclusive) {
|
|
60
|
+
if (!Number.isInteger(maxExclusive) || maxExclusive < 1 || maxExclusive > TWO_32) {
|
|
61
|
+
throw new RangeError('int() takes a bound from 1 to 2^32');
|
|
62
|
+
}
|
|
63
|
+
// Rejection sampling: draws in the top partial copy of [0, n) would make
|
|
64
|
+
// the low values likelier, so they are drawn again. Exact in doubles,
|
|
65
|
+
// since everything here is below 2^33.
|
|
66
|
+
const limit = TWO_32 - (TWO_32 % maxExclusive);
|
|
67
|
+
for (;;) {
|
|
68
|
+
const draw = this.step();
|
|
69
|
+
if (draw < limit)
|
|
70
|
+
return draw % maxExclusive;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
fork(label) {
|
|
74
|
+
checkUint32(label, 'a fork label');
|
|
75
|
+
const [w0, w1, w2, w3] = splitmix(label);
|
|
76
|
+
const [o0, o1, o2, o3] = this.origin;
|
|
77
|
+
const child = [
|
|
78
|
+
mix32(o0 ^ w0),
|
|
79
|
+
mix32(o1 ^ w1),
|
|
80
|
+
mix32(o2 ^ w2),
|
|
81
|
+
mix32(o3 ^ w3),
|
|
82
|
+
];
|
|
83
|
+
// All zero only when the starting state equals the label's words, as it
|
|
84
|
+
// does for createPrng(n).fork(n). The origin is never all zero, so this
|
|
85
|
+
// rotation of it, mixed, never is either.
|
|
86
|
+
if ((child[0] | child[1] | child[2] | child[3]) === 0) {
|
|
87
|
+
return new Xoshiro128([mix32(o1), mix32(o2), mix32(o3), mix32(o0)]);
|
|
88
|
+
}
|
|
89
|
+
return new Xoshiro128(child);
|
|
90
|
+
}
|
|
91
|
+
/** xoshiro128** 1.1, one step. */
|
|
92
|
+
step() {
|
|
93
|
+
const s1 = this.s1;
|
|
94
|
+
const scaled = Math.imul(s1, 5);
|
|
95
|
+
const result = Math.imul((scaled << 7) | (scaled >>> 25), 9) >>> 0;
|
|
96
|
+
const t = s1 << 9;
|
|
97
|
+
this.s2 ^= this.s0;
|
|
98
|
+
this.s3 ^= s1;
|
|
99
|
+
this.s1 ^= this.s2;
|
|
100
|
+
this.s0 ^= this.s3;
|
|
101
|
+
this.s2 ^= t;
|
|
102
|
+
this.s3 = (this.s3 << 11) | (this.s3 >>> 21);
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** A stream seeded by `seed`, an integer from 0 to 2^32 - 1. */
|
|
107
|
+
export function createPrng(seed) {
|
|
108
|
+
checkUint32(seed, 'a seed');
|
|
109
|
+
return new Xoshiro128(splitmix(seed));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=prng.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prng.js","sourceRoot":"","sources":["../../src/core/prng.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reed-Solomon codes over any field in `field.ts`, with errors and erasures.
|
|
3
|
+
*
|
|
4
|
+
* Lifted from the authenticator package's QR-only decoder and generalised in
|
|
5
|
+
* three directions: the field (QR's GF(2^8), Data Matrix's other GF(2^8),
|
|
6
|
+
* PDF417's GF(929)), the first root of the generator polynomial (0 for QR, 1
|
|
7
|
+
* for Data Matrix and PDF417), and erasures, positions a reader already knows
|
|
8
|
+
* are unreliable, each of which costs one check symbol to repair instead of
|
|
9
|
+
* two.
|
|
10
|
+
*
|
|
11
|
+
* Decoding is the classical pipeline: syndromes, Berlekamp-Massey started from
|
|
12
|
+
* the erasure locator (Forney's way of folding known positions in), Chien
|
|
13
|
+
* search for the roots, Forney's formula for the values, and then a syndrome
|
|
14
|
+
* check of the result, because the one outcome worse than failing is
|
|
15
|
+
* succeeding wrongly.
|
|
16
|
+
*
|
|
17
|
+
* Conventions. Codewords arrive most significant first, as they sit in a
|
|
18
|
+
* symbol: index 0 is the coefficient of x^(n-1). Inside the algebra,
|
|
19
|
+
* polynomials are arrays with index i holding the coefficient of x^i. The
|
|
20
|
+
* conversion happens at the edges of `rsDecode` and nowhere else, because
|
|
21
|
+
* mixing the two inside the algebra produces code that works for symmetric
|
|
22
|
+
* inputs and fails for everything else.
|
|
23
|
+
*
|
|
24
|
+
* Nothing here assumes characteristic 2. Subtraction is `field.sub`, integer
|
|
25
|
+
* multiples (the formal derivative) are repeated additions, and the check
|
|
26
|
+
* symbols are the negated remainder, which is the remainder itself in GF(2^8)
|
|
27
|
+
* and its complement mod 929 in PDF417.
|
|
28
|
+
*/
|
|
29
|
+
import type { Field } from './field.js';
|
|
30
|
+
export interface RsCode {
|
|
31
|
+
readonly field: Field;
|
|
32
|
+
/** Check symbols per block. */
|
|
33
|
+
readonly ecCount: number;
|
|
34
|
+
/** The generator's roots are generator^firstRoot onwards: 0 for QR, 1 for Data Matrix. */
|
|
35
|
+
readonly firstRoot: number;
|
|
36
|
+
}
|
|
37
|
+
export interface RsDecodeOptions {
|
|
38
|
+
/** Positions (indexes into the received block) known to be unreliable. */
|
|
39
|
+
readonly erasures?: readonly number[];
|
|
40
|
+
/** Refuse more than this many errors even if the code could correct them (misdecode protection). */
|
|
41
|
+
readonly maxErrors?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface RsDecoded {
|
|
44
|
+
/** Corrected, data and check symbols. */
|
|
45
|
+
readonly codewords: number[];
|
|
46
|
+
/** Symbol errors corrected (erasures not counted). */
|
|
47
|
+
readonly errors: number;
|
|
48
|
+
/** Erasures used. */
|
|
49
|
+
readonly erasures: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The `ecCount` check symbols for `data`, most significant first.
|
|
53
|
+
*
|
|
54
|
+
* Appending them to the data gives a block divisible by the generator
|
|
55
|
+
* polynomial, which is what every reader checks.
|
|
56
|
+
*/
|
|
57
|
+
export declare function rsEncode(code: RsCode, data: ArrayLike<number>): number[];
|
|
58
|
+
/**
|
|
59
|
+
* Correct a block of data followed by check symbols. The block passed in is
|
|
60
|
+
* not modified; the corrected one is a new array.
|
|
61
|
+
*
|
|
62
|
+
* Corrects any pattern of e errors and f erasures with 2e + f <= ecCount.
|
|
63
|
+
* Throws `RsDecodeError` when there is no such pattern, when e is past
|
|
64
|
+
* `maxErrors`, or when the corrected block fails its own syndrome check.
|
|
65
|
+
* A block past the code's reach either throws or comes back as some valid
|
|
66
|
+
* codeword; it never comes back as a block that is not a codeword.
|
|
67
|
+
*/
|
|
68
|
+
export declare function rsDecode(code: RsCode, received: ArrayLike<number>, options?: RsDecodeOptions): RsDecoded;
|
|
69
|
+
//# sourceMappingURL=reed-solomon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reed-solomon.d.ts","sourceRoot":"","sources":["../../src/core/reed-solomon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,oGAAoG;IACpG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACzB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAiED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAoBxE;AAuCD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAC3B,OAAO,GAAE,eAAoB,GAC3B,SAAS,CAoKX"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reed-Solomon codes over any field in `field.ts`, with errors and erasures.
|
|
3
|
+
*
|
|
4
|
+
* Lifted from the authenticator package's QR-only decoder and generalised in
|
|
5
|
+
* three directions: the field (QR's GF(2^8), Data Matrix's other GF(2^8),
|
|
6
|
+
* PDF417's GF(929)), the first root of the generator polynomial (0 for QR, 1
|
|
7
|
+
* for Data Matrix and PDF417), and erasures, positions a reader already knows
|
|
8
|
+
* are unreliable, each of which costs one check symbol to repair instead of
|
|
9
|
+
* two.
|
|
10
|
+
*
|
|
11
|
+
* Decoding is the classical pipeline: syndromes, Berlekamp-Massey started from
|
|
12
|
+
* the erasure locator (Forney's way of folding known positions in), Chien
|
|
13
|
+
* search for the roots, Forney's formula for the values, and then a syndrome
|
|
14
|
+
* check of the result, because the one outcome worse than failing is
|
|
15
|
+
* succeeding wrongly.
|
|
16
|
+
*
|
|
17
|
+
* Conventions. Codewords arrive most significant first, as they sit in a
|
|
18
|
+
* symbol: index 0 is the coefficient of x^(n-1). Inside the algebra,
|
|
19
|
+
* polynomials are arrays with index i holding the coefficient of x^i. The
|
|
20
|
+
* conversion happens at the edges of `rsDecode` and nowhere else, because
|
|
21
|
+
* mixing the two inside the algebra produces code that works for symmetric
|
|
22
|
+
* inputs and fails for everything else.
|
|
23
|
+
*
|
|
24
|
+
* Nothing here assumes characteristic 2. Subtraction is `field.sub`, integer
|
|
25
|
+
* multiples (the formal derivative) are repeated additions, and the check
|
|
26
|
+
* symbols are the negated remainder, which is the remainder itself in GF(2^8)
|
|
27
|
+
* and its complement mod 929 in PDF417.
|
|
28
|
+
*/
|
|
29
|
+
import { RsDecodeError } from './errors.js';
|
|
30
|
+
/** The longest block a field can carry: every position needs its own power of the generator. */
|
|
31
|
+
function checkCode(code, length) {
|
|
32
|
+
const { field, ecCount, firstRoot } = code;
|
|
33
|
+
if (!Number.isInteger(ecCount) || ecCount < 1) {
|
|
34
|
+
throw new RangeError('a Reed-Solomon code has at least one check symbol');
|
|
35
|
+
}
|
|
36
|
+
if (!Number.isSafeInteger(firstRoot)) {
|
|
37
|
+
throw new RangeError('the first root of a Reed-Solomon code is a whole power');
|
|
38
|
+
}
|
|
39
|
+
if (length > field.size - 1) {
|
|
40
|
+
throw new RangeError(`a block in a field of ${field.size} elements is at most ${field.size - 1} symbols, not ${length}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The first root as a power in [0, size - 1). Powers of the generator repeat
|
|
45
|
+
* with that period, so this changes no answer, and it keeps every exponent
|
|
46
|
+
* formed from it a safe integer however large the caller's value.
|
|
47
|
+
*/
|
|
48
|
+
function rootPower(code) {
|
|
49
|
+
const order = code.field.size - 1;
|
|
50
|
+
return ((code.firstRoot % order) + order) % order;
|
|
51
|
+
}
|
|
52
|
+
let generators;
|
|
53
|
+
/**
|
|
54
|
+
* The generator polynomial, monic, most significant coefficient first:
|
|
55
|
+
* (x - a^b)(x - a^(b+1))...(x - a^(b+ecCount-1)) for generator a and first
|
|
56
|
+
* root b. Cached per field, because an encoder asks for the same few dozen
|
|
57
|
+
* again and again.
|
|
58
|
+
*/
|
|
59
|
+
function generatorPolynomial(code) {
|
|
60
|
+
const { field, ecCount } = code;
|
|
61
|
+
const firstRoot = rootPower(code);
|
|
62
|
+
generators ??= new WeakMap();
|
|
63
|
+
let byField = generators.get(field);
|
|
64
|
+
if (byField === undefined) {
|
|
65
|
+
byField = new Map();
|
|
66
|
+
generators.set(field, byField);
|
|
67
|
+
}
|
|
68
|
+
const key = `${ecCount}:${firstRoot}`;
|
|
69
|
+
const cached = byField.get(key);
|
|
70
|
+
if (cached !== undefined)
|
|
71
|
+
return cached;
|
|
72
|
+
let poly = [1];
|
|
73
|
+
for (let i = 0; i < ecCount; i += 1) {
|
|
74
|
+
const root = field.exp(firstRoot + i);
|
|
75
|
+
const next = new Array(poly.length + 1);
|
|
76
|
+
next[0] = poly[0];
|
|
77
|
+
for (let j = 1; j < poly.length; j += 1) {
|
|
78
|
+
next[j] = field.sub(poly[j], field.mul(root, poly[j - 1]));
|
|
79
|
+
}
|
|
80
|
+
next[poly.length] = field.sub(0, field.mul(root, poly[poly.length - 1]));
|
|
81
|
+
poly = next;
|
|
82
|
+
}
|
|
83
|
+
const frozen = Object.freeze(poly);
|
|
84
|
+
byField.set(key, frozen);
|
|
85
|
+
return frozen;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The `ecCount` check symbols for `data`, most significant first.
|
|
89
|
+
*
|
|
90
|
+
* Appending them to the data gives a block divisible by the generator
|
|
91
|
+
* polynomial, which is what every reader checks.
|
|
92
|
+
*/
|
|
93
|
+
export function rsEncode(code, data) {
|
|
94
|
+
checkCode(code, data.length + code.ecCount);
|
|
95
|
+
const { field, ecCount } = code;
|
|
96
|
+
const generator = generatorPolynomial(code);
|
|
97
|
+
// The running remainder of data(x) * x^ecCount over the generator, highest
|
|
98
|
+
// coefficient first, kept as a shift register rather than a full division.
|
|
99
|
+
const remainder = new Array(ecCount).fill(0);
|
|
100
|
+
for (let i = 0; i < data.length; i += 1) {
|
|
101
|
+
const factor = field.add(data[i], remainder[0]);
|
|
102
|
+
for (let j = 0; j < ecCount - 1; j += 1) {
|
|
103
|
+
remainder[j] = field.sub(remainder[j + 1], field.mul(factor, generator[j + 1]));
|
|
104
|
+
}
|
|
105
|
+
remainder[ecCount - 1] = field.sub(0, field.mul(factor, generator[ecCount]));
|
|
106
|
+
}
|
|
107
|
+
// data * x^ecCount - remainder is the codeword, so the check symbols are the
|
|
108
|
+
// negated remainder.
|
|
109
|
+
return remainder.map((value) => field.sub(0, value));
|
|
110
|
+
}
|
|
111
|
+
/** Evaluate a lowest-first polynomial at x, by Horner's rule. */
|
|
112
|
+
function evaluate(field, poly, x) {
|
|
113
|
+
let result = 0;
|
|
114
|
+
for (let i = poly.length - 1; i >= 0; i -= 1) {
|
|
115
|
+
result = field.add(field.mul(result, x), poly[i]);
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
/** k copies of a added together: the integer multiple a field needs for a formal derivative. */
|
|
120
|
+
function times(field, k, a) {
|
|
121
|
+
let result = 0;
|
|
122
|
+
let addend = a;
|
|
123
|
+
for (let n = k; n > 0; n >>>= 1) {
|
|
124
|
+
if (n & 1)
|
|
125
|
+
result = field.add(result, addend);
|
|
126
|
+
addend = field.add(addend, addend);
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
/** S_k = r(a^(b+k)) for k in [0, ecCount). All zero means a valid codeword. */
|
|
131
|
+
function syndromes(code, received) {
|
|
132
|
+
const { field, ecCount } = code;
|
|
133
|
+
const firstRoot = rootPower(code);
|
|
134
|
+
const out = new Array(ecCount);
|
|
135
|
+
for (let k = 0; k < ecCount; k += 1) {
|
|
136
|
+
const x = field.exp(firstRoot + k);
|
|
137
|
+
// The block is most significant first, so Horner runs forwards over it.
|
|
138
|
+
let value = 0;
|
|
139
|
+
for (let i = 0; i < received.length; i += 1) {
|
|
140
|
+
value = field.add(field.mul(value, x), received[i]);
|
|
141
|
+
}
|
|
142
|
+
out[k] = value;
|
|
143
|
+
}
|
|
144
|
+
return out;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Correct a block of data followed by check symbols. The block passed in is
|
|
148
|
+
* not modified; the corrected one is a new array.
|
|
149
|
+
*
|
|
150
|
+
* Corrects any pattern of e errors and f erasures with 2e + f <= ecCount.
|
|
151
|
+
* Throws `RsDecodeError` when there is no such pattern, when e is past
|
|
152
|
+
* `maxErrors`, or when the corrected block fails its own syndrome check.
|
|
153
|
+
* A block past the code's reach either throws or comes back as some valid
|
|
154
|
+
* codeword; it never comes back as a block that is not a codeword.
|
|
155
|
+
*/
|
|
156
|
+
export function rsDecode(code, received, options = {}) {
|
|
157
|
+
const { field, ecCount } = code;
|
|
158
|
+
const n = received.length;
|
|
159
|
+
checkCode(code, n);
|
|
160
|
+
const firstRoot = rootPower(code);
|
|
161
|
+
if (n < ecCount) {
|
|
162
|
+
throw new RangeError(`a block with ${ecCount} check symbols is at least that long, not ${n}`);
|
|
163
|
+
}
|
|
164
|
+
const codewords = new Array(n);
|
|
165
|
+
for (let i = 0; i < n; i += 1) {
|
|
166
|
+
const value = received[i];
|
|
167
|
+
if ((value | 0) !== value || value < 0 || value >= field.size) {
|
|
168
|
+
throw new RangeError(`symbol ${i} is not an element of a field of ${field.size}`);
|
|
169
|
+
}
|
|
170
|
+
codewords[i] = value;
|
|
171
|
+
}
|
|
172
|
+
const erased = options.erasures ?? [];
|
|
173
|
+
const erasedSet = new Set();
|
|
174
|
+
for (const position of erased) {
|
|
175
|
+
if (!Number.isInteger(position) || position < 0 || position >= n) {
|
|
176
|
+
throw new RangeError(`an erasure is a position in the block, 0 to ${n - 1}`);
|
|
177
|
+
}
|
|
178
|
+
if (erasedSet.has(position)) {
|
|
179
|
+
throw new TypeError(`position ${position} is listed as an erasure twice`);
|
|
180
|
+
}
|
|
181
|
+
erasedSet.add(position);
|
|
182
|
+
}
|
|
183
|
+
const { maxErrors } = options;
|
|
184
|
+
if (maxErrors !== undefined && (!Number.isInteger(maxErrors) || maxErrors < 0)) {
|
|
185
|
+
throw new RangeError('maxErrors is a whole number of errors');
|
|
186
|
+
}
|
|
187
|
+
const f = erased.length;
|
|
188
|
+
if (f > ecCount)
|
|
189
|
+
throw new RsDecodeError('too-many-erasures');
|
|
190
|
+
const s = syndromes(code, codewords);
|
|
191
|
+
if (s.every((value) => value === 0)) {
|
|
192
|
+
return { codewords, errors: 0, erasures: f };
|
|
193
|
+
}
|
|
194
|
+
// Position i in the block is the coefficient of x^(n-1-i), and its locator
|
|
195
|
+
// is a^(n-1-i).
|
|
196
|
+
const power = (i) => n - 1 - i;
|
|
197
|
+
// The erasure locator, the product of (1 - X x) over the erased positions.
|
|
198
|
+
let gamma = [1];
|
|
199
|
+
for (const position of erased) {
|
|
200
|
+
const x = field.exp(power(position));
|
|
201
|
+
const next = new Array(gamma.length + 1).fill(0);
|
|
202
|
+
for (let i = 0; i < gamma.length; i += 1) {
|
|
203
|
+
next[i] = field.add(next[i], gamma[i]);
|
|
204
|
+
next[i + 1] = field.sub(next[i + 1], field.mul(x, gamma[i]));
|
|
205
|
+
}
|
|
206
|
+
gamma = next;
|
|
207
|
+
}
|
|
208
|
+
// Berlekamp-Massey, started from the erasure locator rather than from 1.
|
|
209
|
+
// That is the same as running it on Forney's modified syndromes and
|
|
210
|
+
// multiplying by gamma afterwards, without forming either: the register
|
|
211
|
+
// starts f long, steps begin at f, and the length update carries f along.
|
|
212
|
+
let lambda = gamma.slice();
|
|
213
|
+
let previous = gamma.slice();
|
|
214
|
+
let length = f;
|
|
215
|
+
let shift = 1;
|
|
216
|
+
let lastDiscrepancy = 1;
|
|
217
|
+
for (let step = f; step < ecCount; step += 1) {
|
|
218
|
+
let discrepancy = 0;
|
|
219
|
+
for (let i = 0; i <= length && i < lambda.length; i += 1) {
|
|
220
|
+
discrepancy = field.add(discrepancy, field.mul(lambda[i], s[step - i]));
|
|
221
|
+
}
|
|
222
|
+
if (discrepancy === 0) {
|
|
223
|
+
shift += 1;
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
const scale = field.div(discrepancy, lastDiscrepancy);
|
|
227
|
+
const updated = new Array(Math.max(lambda.length, previous.length + shift)).fill(0);
|
|
228
|
+
for (let i = 0; i < lambda.length; i += 1)
|
|
229
|
+
updated[i] = lambda[i];
|
|
230
|
+
for (let i = 0; i < previous.length; i += 1) {
|
|
231
|
+
updated[i + shift] = field.sub(updated[i + shift], field.mul(scale, previous[i]));
|
|
232
|
+
}
|
|
233
|
+
if (2 * length <= step + f) {
|
|
234
|
+
previous = lambda;
|
|
235
|
+
length = step + 1 + f - length;
|
|
236
|
+
lastDiscrepancy = discrepancy;
|
|
237
|
+
shift = 1;
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
shift += 1;
|
|
241
|
+
}
|
|
242
|
+
lambda = updated;
|
|
243
|
+
}
|
|
244
|
+
const errorCount = length - f;
|
|
245
|
+
if (2 * errorCount + f > ecCount)
|
|
246
|
+
throw new RsDecodeError('too-many-errors');
|
|
247
|
+
if (maxErrors !== undefined && errorCount > maxErrors)
|
|
248
|
+
throw new RsDecodeError('over-limit');
|
|
249
|
+
// The locator must have exactly `length` roots, all inside the block.
|
|
250
|
+
let degree = lambda.length - 1;
|
|
251
|
+
while (degree > 0 && lambda[degree] === 0)
|
|
252
|
+
degree -= 1;
|
|
253
|
+
if (degree !== length)
|
|
254
|
+
throw new RsDecodeError('no-solution');
|
|
255
|
+
lambda = lambda.slice(0, degree + 1);
|
|
256
|
+
const positions = [];
|
|
257
|
+
for (let i = 0; i < n; i += 1) {
|
|
258
|
+
if (evaluate(field, lambda, field.exp(-power(i))) === 0)
|
|
259
|
+
positions.push(i);
|
|
260
|
+
}
|
|
261
|
+
if (positions.length !== degree)
|
|
262
|
+
throw new RsDecodeError('no-solution');
|
|
263
|
+
// Omega = S(x) Lambda(x) mod x^ecCount, and the formal derivative of Lambda.
|
|
264
|
+
const omega = new Array(ecCount).fill(0);
|
|
265
|
+
for (let i = 0; i < ecCount; i += 1) {
|
|
266
|
+
for (let j = 0; j < lambda.length && i + j < ecCount; j += 1) {
|
|
267
|
+
omega[i + j] = field.add(omega[i + j], field.mul(s[i], lambda[j]));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
const derivative = new Array(degree);
|
|
271
|
+
for (let i = 1; i <= degree; i += 1)
|
|
272
|
+
derivative[i - 1] = times(field, i, lambda[i]);
|
|
273
|
+
let errors = 0;
|
|
274
|
+
let phantom = false;
|
|
275
|
+
for (const position of positions) {
|
|
276
|
+
const j = power(position);
|
|
277
|
+
const xInverse = field.exp(-j);
|
|
278
|
+
// Never zero: Chien search found `degree` distinct roots, so Lambda splits
|
|
279
|
+
// into distinct linear factors and its derivative cannot vanish at any of
|
|
280
|
+
// them.
|
|
281
|
+
const denominator = evaluate(field, derivative, xInverse);
|
|
282
|
+
// Forney, for roots starting at a^b: Y = -X^(1-b) Omega(X^-1) / Lambda'(X^-1).
|
|
283
|
+
const magnitude = field.sub(0, field.mul(field.exp(j * (1 - firstRoot)), field.div(evaluate(field, omega, xInverse), denominator)));
|
|
284
|
+
codewords[position] = field.sub(codewords[position], magnitude);
|
|
285
|
+
if (erasedSet.has(position))
|
|
286
|
+
continue;
|
|
287
|
+
// An error position whose value is zero is not an error: the locator
|
|
288
|
+
// claimed more than the block holds, which only happens past the code's
|
|
289
|
+
// reach.
|
|
290
|
+
phantom ||= magnitude === 0;
|
|
291
|
+
errors += 1;
|
|
292
|
+
}
|
|
293
|
+
// Verify rather than trust. With the root count checked above this cannot
|
|
294
|
+
// fire: a register of length L that generates all the syndromes and splits
|
|
295
|
+
// into L distinct roots inside the block describes an error pattern exactly
|
|
296
|
+
// (the syndromes are then a combination of those roots' powers, and Forney
|
|
297
|
+
// computes its coefficients), and a zero coefficient would contradict the
|
|
298
|
+
// register being the shortest. It stays because the cost is one more pass
|
|
299
|
+
// over the syndromes, and the alternative to a theorem being implemented
|
|
300
|
+
// correctly is somebody's Wi-Fi password decoded wrongly with confidence.
|
|
301
|
+
// No test can reach it without a bug to reach it through, hence the hint.
|
|
302
|
+
/* v8 ignore next 3 */
|
|
303
|
+
if (phantom || syndromes(code, codewords).some((value) => value !== 0)) {
|
|
304
|
+
throw new RsDecodeError('no-solution');
|
|
305
|
+
}
|
|
306
|
+
return { codewords, errors, erasures: f };
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=reed-solomon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reed-solomon.js","sourceRoot":"","sources":["../../src/core/reed-solomon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A named set of entries: module shapes, frames, content types, symbologies.
|
|
3
|
+
*
|
|
4
|
+
* An instance, never a module-level list. `sideEffects: false` lets a bundler
|
|
5
|
+
* drop an import whose only purpose was to register something, so nothing
|
|
6
|
+
* here registers itself at import: `createRegistries()` in the layers above
|
|
7
|
+
* builds instances filled with the built-ins, and a test can build an empty
|
|
8
|
+
* one.
|
|
9
|
+
*
|
|
10
|
+
* Ids are kebab-case because they travel: into design files, into message
|
|
11
|
+
* keys the website translates, into the list a verify job sends to say which
|
|
12
|
+
* entries it needs. One spelling per entry keeps all of those in step.
|
|
13
|
+
*/
|
|
14
|
+
export interface RegistryEntry {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class Registry<T extends RegistryEntry> {
|
|
18
|
+
readonly kind: string;
|
|
19
|
+
private readonly entries;
|
|
20
|
+
private ordered;
|
|
21
|
+
private names;
|
|
22
|
+
private registrations;
|
|
23
|
+
constructor(kind: string, entries?: readonly T[]);
|
|
24
|
+
/** Increments on every register, so a cache keyed on it knows when to rebuild. */
|
|
25
|
+
get version(): number;
|
|
26
|
+
/** Throws TypeError on an id that is not kebab-case or is already taken. */
|
|
27
|
+
register(entry: T): void;
|
|
28
|
+
get(id: string): T | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Throws `UnknownEntryError` ('design/unknown-entry', params { kind, id })
|
|
31
|
+
* when it is missing.
|
|
32
|
+
*
|
|
33
|
+
* The id comes back in params only if it is a well-formed id; otherwise
|
|
34
|
+
* params.id is empty. An id usually arrives from a design file, and a file
|
|
35
|
+
* can put anything in that field, so arbitrary text from it is never echoed
|
|
36
|
+
* into an error that might end up in a bug report.
|
|
37
|
+
*/
|
|
38
|
+
require(id: string): T;
|
|
39
|
+
has(id: string): boolean;
|
|
40
|
+
/** Every entry, in registration order. Frozen. */
|
|
41
|
+
list(): readonly T[];
|
|
42
|
+
/** Every id, in registration order. Frozen. */
|
|
43
|
+
ids(): readonly string[];
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACpB;AAYD,qBAAa,QAAQ,CAAC,CAAC,SAAS,aAAa;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,aAAa,CAAK;gBAEd,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,SAAS,CAAC,EAAO;IAMpD,kFAAkF;IAClF,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAWxB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI9B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;IAStB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,kDAAkD;IAClD,IAAI,IAAI,SAAS,CAAC,EAAE;IAIpB,+CAA+C;IAC/C,GAAG,IAAI,SAAS,MAAM,EAAE;CAGxB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A named set of entries: module shapes, frames, content types, symbologies.
|
|
3
|
+
*
|
|
4
|
+
* An instance, never a module-level list. `sideEffects: false` lets a bundler
|
|
5
|
+
* drop an import whose only purpose was to register something, so nothing
|
|
6
|
+
* here registers itself at import: `createRegistries()` in the layers above
|
|
7
|
+
* builds instances filled with the built-ins, and a test can build an empty
|
|
8
|
+
* one.
|
|
9
|
+
*
|
|
10
|
+
* Ids are kebab-case because they travel: into design files, into message
|
|
11
|
+
* keys the website translates, into the list a verify job sends to say which
|
|
12
|
+
* entries it needs. One spelling per entry keeps all of those in step.
|
|
13
|
+
*/
|
|
14
|
+
import { UnknownEntryError } from './errors.js';
|
|
15
|
+
const KEBAB = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
|
|
16
|
+
function checkKebab(value, what) {
|
|
17
|
+
if (typeof value !== 'string' || !KEBAB.test(value)) {
|
|
18
|
+
throw new TypeError(`${what} must be kebab-case: lowercase words of letters and digits joined by hyphens`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class Registry {
|
|
22
|
+
kind;
|
|
23
|
+
entries = new Map();
|
|
24
|
+
ordered = Object.freeze([]);
|
|
25
|
+
names = Object.freeze([]);
|
|
26
|
+
registrations = 0;
|
|
27
|
+
constructor(kind, entries = []) {
|
|
28
|
+
checkKebab(kind, 'a registry kind');
|
|
29
|
+
this.kind = kind;
|
|
30
|
+
for (const entry of entries)
|
|
31
|
+
this.register(entry);
|
|
32
|
+
}
|
|
33
|
+
/** Increments on every register, so a cache keyed on it knows when to rebuild. */
|
|
34
|
+
get version() {
|
|
35
|
+
return this.registrations;
|
|
36
|
+
}
|
|
37
|
+
/** Throws TypeError on an id that is not kebab-case or is already taken. */
|
|
38
|
+
register(entry) {
|
|
39
|
+
checkKebab(entry.id, `a ${this.kind} id`);
|
|
40
|
+
if (this.entries.has(entry.id)) {
|
|
41
|
+
throw new TypeError(`this ${this.kind} registry already has an entry with that id`);
|
|
42
|
+
}
|
|
43
|
+
this.entries.set(entry.id, entry);
|
|
44
|
+
this.ordered = Object.freeze([...this.ordered, entry]);
|
|
45
|
+
this.names = Object.freeze([...this.names, entry.id]);
|
|
46
|
+
this.registrations += 1;
|
|
47
|
+
}
|
|
48
|
+
get(id) {
|
|
49
|
+
return this.entries.get(id);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Throws `UnknownEntryError` ('design/unknown-entry', params { kind, id })
|
|
53
|
+
* when it is missing.
|
|
54
|
+
*
|
|
55
|
+
* The id comes back in params only if it is a well-formed id; otherwise
|
|
56
|
+
* params.id is empty. An id usually arrives from a design file, and a file
|
|
57
|
+
* can put anything in that field, so arbitrary text from it is never echoed
|
|
58
|
+
* into an error that might end up in a bug report.
|
|
59
|
+
*/
|
|
60
|
+
require(id) {
|
|
61
|
+
const found = this.entries.get(id);
|
|
62
|
+
if (found === undefined) {
|
|
63
|
+
const safe = typeof id === 'string' && id.length <= 64 && KEBAB.test(id) ? id : '';
|
|
64
|
+
throw new UnknownEntryError(this.kind, safe);
|
|
65
|
+
}
|
|
66
|
+
return found;
|
|
67
|
+
}
|
|
68
|
+
has(id) {
|
|
69
|
+
return this.entries.has(id);
|
|
70
|
+
}
|
|
71
|
+
/** Every entry, in registration order. Frozen. */
|
|
72
|
+
list() {
|
|
73
|
+
return this.ordered;
|
|
74
|
+
}
|
|
75
|
+
/** Every id, in registration order. Frozen. */
|
|
76
|
+
ids() {
|
|
77
|
+
return this.names;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
|