@hexpro/qr-code-studio 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -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 +272 -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,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The orientation and module size of one finder pattern on its own.
|
|
3
|
+
*
|
|
4
|
+
* QR gets its frame from three finders, and a triangle has an orientation.
|
|
5
|
+
* Micro QR and rMQR have one finder each, and a square bullseye says only
|
|
6
|
+
* which way its sides run, modulo a quarter turn. That is enough: the four
|
|
7
|
+
* quarter turns are then tried, and the timing pattern or the far sub-pattern
|
|
8
|
+
* says which is right.
|
|
9
|
+
*
|
|
10
|
+
* The sides are found by casting rays from the centre to the outer edge of
|
|
11
|
+
* the pattern. A square of half-side h at angle t is h / max(|cos|, |sin|) of
|
|
12
|
+
* the angle away from t along each ray, so the angle whose model best fits
|
|
13
|
+
* the measured distances is the pattern's. Fitted rather than read off the
|
|
14
|
+
* corners, because a corner is exactly where blur and thresholding eat the
|
|
15
|
+
* pattern first.
|
|
16
|
+
*
|
|
17
|
+
* Clean images only, like the locators that use it: screenshots, scans, this
|
|
18
|
+
* package's own renders and mild rotation. Perspective would bend the square
|
|
19
|
+
* the model assumes, and is not in scope for Micro QR and rMQR in this version.
|
|
20
|
+
*/
|
|
21
|
+
import { cos, PI, sin } from '../core/math.js';
|
|
22
|
+
/** Rays per full turn, and the angle steps the fit tries per quarter turn. */
|
|
23
|
+
const RAYS = 180;
|
|
24
|
+
const ANGLE_STEPS = 180;
|
|
25
|
+
/** The fit's residual, relative to the half-side, beyond which this is not a square bullseye. */
|
|
26
|
+
const MAX_RESIDUAL = 0.12;
|
|
27
|
+
/** The walk's step, in pixels. */
|
|
28
|
+
const STEP = 0.5;
|
|
29
|
+
let modelTable;
|
|
30
|
+
/**
|
|
31
|
+
* 1 / max(|cos a|, |sin a|) on a lattice of a quarter turn in ANGLE_STEPS
|
|
32
|
+
* steps, built once. A ray every 2 degrees and an angle every half degree
|
|
33
|
+
* both land on the lattice, so the fit is table lookups.
|
|
34
|
+
*/
|
|
35
|
+
function model() {
|
|
36
|
+
if (modelTable !== undefined)
|
|
37
|
+
return modelTable;
|
|
38
|
+
const table = new Float64Array(ANGLE_STEPS);
|
|
39
|
+
for (let i = 0; i < ANGLE_STEPS; i += 1) {
|
|
40
|
+
const a = (i / ANGLE_STEPS) * (PI / 2);
|
|
41
|
+
table[i] = 1 / Math.max(Math.abs(cos(a)), Math.abs(sin(a)));
|
|
42
|
+
}
|
|
43
|
+
modelTable = table;
|
|
44
|
+
return table;
|
|
45
|
+
}
|
|
46
|
+
/** Distance from the centre to the outer edge of the pattern along one direction, or NaN. */
|
|
47
|
+
function outerEdge(image, centre, dx, dy, limit) {
|
|
48
|
+
// 0: in the core. 1: in the light ring. 2: in the outer dark ring.
|
|
49
|
+
let state = 0;
|
|
50
|
+
for (let travelled = 0; travelled <= limit; travelled += STEP) {
|
|
51
|
+
const x = Math.floor(centre.x + dx * travelled);
|
|
52
|
+
const y = Math.floor(centre.y + dy * travelled);
|
|
53
|
+
if (x < 0 || y < 0 || x >= image.width || y >= image.height)
|
|
54
|
+
return Number.NaN;
|
|
55
|
+
const dark = image.bits[y * image.width + x] === 1;
|
|
56
|
+
if (state === 0 && !dark)
|
|
57
|
+
state = 1;
|
|
58
|
+
else if (state === 1 && dark)
|
|
59
|
+
state = 2;
|
|
60
|
+
else if (state === 2 && !dark)
|
|
61
|
+
return travelled - STEP / 2;
|
|
62
|
+
}
|
|
63
|
+
return Number.NaN;
|
|
64
|
+
}
|
|
65
|
+
/** The frame of one finder, or null when the pattern does not fit a square bullseye. */
|
|
66
|
+
export function finderFrame(image, pattern) {
|
|
67
|
+
const table = model();
|
|
68
|
+
const centre = { x: pattern.x, y: pattern.y };
|
|
69
|
+
// The corners of a 7 module square are 4.95 modules out; allow for a poor
|
|
70
|
+
// first estimate of the module from the row scan.
|
|
71
|
+
const limit = pattern.moduleSize * 8;
|
|
72
|
+
const distances = new Float64Array(RAYS);
|
|
73
|
+
let measured = 0;
|
|
74
|
+
for (let k = 0; k < RAYS; k += 1) {
|
|
75
|
+
const angle = (k / RAYS) * 2 * PI;
|
|
76
|
+
distances[k] = outerEdge(image, centre, cos(angle), sin(angle), limit);
|
|
77
|
+
if (!Number.isNaN(distances[k]))
|
|
78
|
+
measured += 1;
|
|
79
|
+
}
|
|
80
|
+
if (measured < RAYS / 2)
|
|
81
|
+
return null;
|
|
82
|
+
// A ray k is at k * 2 degrees and a candidate angle j at j / 2 degrees, so the
|
|
83
|
+
// angle between them is (4k - j) half degrees, taken a quarter turn round.
|
|
84
|
+
const raysPerStep = (ANGLE_STEPS * 4) / RAYS;
|
|
85
|
+
let bestCost = Number.POSITIVE_INFINITY;
|
|
86
|
+
let bestStep = 0;
|
|
87
|
+
let bestHalf = 0;
|
|
88
|
+
for (let j = 0; j < ANGLE_STEPS; j += 1) {
|
|
89
|
+
let rg = 0;
|
|
90
|
+
let gg = 0;
|
|
91
|
+
let rr = 0;
|
|
92
|
+
for (let k = 0; k < RAYS; k += 1) {
|
|
93
|
+
const r = distances[k];
|
|
94
|
+
if (Number.isNaN(r))
|
|
95
|
+
continue;
|
|
96
|
+
const index = (((k * raysPerStep - j) % ANGLE_STEPS) + ANGLE_STEPS) % ANGLE_STEPS;
|
|
97
|
+
const g = table[index];
|
|
98
|
+
rg += r * g;
|
|
99
|
+
gg += g * g;
|
|
100
|
+
rr += r * r;
|
|
101
|
+
}
|
|
102
|
+
// The best half-side for this angle by least squares, and what is left.
|
|
103
|
+
const half = rg / gg;
|
|
104
|
+
const cost = rr - half * rg;
|
|
105
|
+
if (cost < bestCost) {
|
|
106
|
+
bestCost = cost;
|
|
107
|
+
bestStep = j;
|
|
108
|
+
bestHalf = half;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const residual = Math.sqrt(Math.max(0, bestCost) / measured) / bestHalf;
|
|
112
|
+
if (!(residual <= MAX_RESIDUAL))
|
|
113
|
+
return null;
|
|
114
|
+
return refine(distances, centre, (bestStep / ANGLE_STEPS) * (PI / 2), bestHalf);
|
|
115
|
+
}
|
|
116
|
+
/** Rays within this of a side's normal, in radians, count as on that side; the rest are near a corner. */
|
|
117
|
+
const SIDE_REACH = 0.5;
|
|
118
|
+
/**
|
|
119
|
+
* Sharpen the coarse fit: the edge points the rays found, away from the
|
|
120
|
+
* corners, lie on four lines, and the angle, centre and half-side that put
|
|
121
|
+
* them there best are found by least squares, linearised about the current
|
|
122
|
+
* estimate and repeated. The coarse search is good to a couple of degrees,
|
|
123
|
+
* which over the 17 modules of a Micro QR symbol is half a module at the far
|
|
124
|
+
* edge; this is good to a fraction of one.
|
|
125
|
+
*/
|
|
126
|
+
function refine(distances, origin, angle, half) {
|
|
127
|
+
let theta = angle;
|
|
128
|
+
let cx = origin.x;
|
|
129
|
+
let cy = origin.y;
|
|
130
|
+
let h = half;
|
|
131
|
+
for (let pass = 0; pass < 3; pass += 1) {
|
|
132
|
+
// Normal equations for [d theta, d cx, d cy, h].
|
|
133
|
+
const m = new Float64Array(16);
|
|
134
|
+
const v = new Float64Array(4);
|
|
135
|
+
for (let k = 0; k < RAYS; k += 1) {
|
|
136
|
+
const r = distances[k];
|
|
137
|
+
if (Number.isNaN(r))
|
|
138
|
+
continue;
|
|
139
|
+
const phi = (k / RAYS) * 2 * PI;
|
|
140
|
+
const side = Math.round((phi - theta) / (PI / 2));
|
|
141
|
+
if (Math.abs(phi - theta - (side * PI) / 2) > SIDE_REACH)
|
|
142
|
+
continue;
|
|
143
|
+
const normal = theta + (side * PI) / 2;
|
|
144
|
+
const nx = cos(normal);
|
|
145
|
+
const ny = sin(normal);
|
|
146
|
+
const qx = origin.x + r * cos(phi) - cx;
|
|
147
|
+
const qy = origin.y + r * sin(phi) - cy;
|
|
148
|
+
// n.q - n.dc - h + d theta (t.q) = 0, t the normal turned a quarter.
|
|
149
|
+
const row = [-ny * qx + nx * qy, -nx, -ny, -1];
|
|
150
|
+
const target = -(nx * qx + ny * qy);
|
|
151
|
+
for (let i = 0; i < 4; i += 1) {
|
|
152
|
+
v[i] = v[i] + row[i] * target;
|
|
153
|
+
for (let j = 0; j < 4; j += 1) {
|
|
154
|
+
m[i * 4 + j] = m[i * 4 + j] + row[i] * row[j];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const step = solve4(m, v);
|
|
159
|
+
if (step === null)
|
|
160
|
+
break;
|
|
161
|
+
theta += step[0];
|
|
162
|
+
cx += step[1];
|
|
163
|
+
cy += step[2];
|
|
164
|
+
h = step[3];
|
|
165
|
+
}
|
|
166
|
+
const quarter = PI / 2;
|
|
167
|
+
const wrapped = theta - Math.floor(theta / quarter) * quarter;
|
|
168
|
+
return { centre: { x: cx, y: cy }, angle: wrapped, module: h / 3.5 };
|
|
169
|
+
}
|
|
170
|
+
/** Solve a 4 by 4 system by elimination with partial pivoting; null when it is singular. */
|
|
171
|
+
export function solve4(matrix, vector) {
|
|
172
|
+
const a = Array.from({ length: 4 }, (_, i) => [
|
|
173
|
+
matrix[i * 4],
|
|
174
|
+
matrix[i * 4 + 1],
|
|
175
|
+
matrix[i * 4 + 2],
|
|
176
|
+
matrix[i * 4 + 3],
|
|
177
|
+
vector[i],
|
|
178
|
+
]);
|
|
179
|
+
for (let column = 0; column < 4; column += 1) {
|
|
180
|
+
let pivot = column;
|
|
181
|
+
for (let row = column + 1; row < 4; row += 1) {
|
|
182
|
+
if (Math.abs(a[row][column]) > Math.abs(a[pivot][column]))
|
|
183
|
+
pivot = row;
|
|
184
|
+
}
|
|
185
|
+
if (Math.abs(a[pivot][column]) < 1e-9)
|
|
186
|
+
return null;
|
|
187
|
+
[a[column], a[pivot]] = [a[pivot], a[column]];
|
|
188
|
+
for (let row = 0; row < 4; row += 1) {
|
|
189
|
+
if (row === column)
|
|
190
|
+
continue;
|
|
191
|
+
const factor = a[row][column] / a[column][column];
|
|
192
|
+
for (let k = column; k < 5; k += 1)
|
|
193
|
+
a[row][k] = a[row][k] - factor * a[column][k];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return a.map((row, i) => row[4] / row[i]);
|
|
197
|
+
}
|
|
198
|
+
/** A unit vector along the frame's side `turns` quarter turns round from its angle. */
|
|
199
|
+
export function axis(frame, turns) {
|
|
200
|
+
const angle = frame.angle + (turns * PI) / 2;
|
|
201
|
+
return { x: cos(angle), y: sin(angle) };
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* The affine map from module coordinates to pixels with the finder's centre at
|
|
205
|
+
* module (3.5, 3.5), x along `ex` and y along `ey`, each one `module` long.
|
|
206
|
+
*/
|
|
207
|
+
export function frameTransform(centre, ex, ey) {
|
|
208
|
+
return [
|
|
209
|
+
ex.x,
|
|
210
|
+
ey.x,
|
|
211
|
+
centre.x - 3.5 * (ex.x + ey.x),
|
|
212
|
+
ex.y,
|
|
213
|
+
ey.y,
|
|
214
|
+
centre.y - 3.5 * (ex.y + ey.y),
|
|
215
|
+
0,
|
|
216
|
+
0,
|
|
217
|
+
1,
|
|
218
|
+
];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* The y axis for an x axis: a quarter turn clockwise on screen for a
|
|
222
|
+
* right-handed frame, the way a symbol is drawn, or anticlockwise for the
|
|
223
|
+
* mirror image of one.
|
|
224
|
+
*/
|
|
225
|
+
export function perpendicular(ex, mirrored) {
|
|
226
|
+
return mirrored ? { x: ex.y, y: -ex.x } : { x: -ex.y, y: ex.x };
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/decode/frame.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Greyscale, and the resolution policy.
|
|
3
|
+
*
|
|
4
|
+
* Lifted from the authenticator package's reader
|
|
5
|
+
* (google-auth-secret-retriever, `src/qr/decode/grey.ts`), where every
|
|
6
|
+
* function here was a bug that shipped before it was right, and adapted to
|
|
7
|
+
* this package: alpha is composited over white, nothing reads a clock, and the
|
|
8
|
+
* only cap is by area.
|
|
9
|
+
*/
|
|
10
|
+
import type { RgbaImage } from '../core/image.js';
|
|
11
|
+
/** A single-channel image. One byte per pixel, 0 dark to 255 light. */
|
|
12
|
+
export interface GreyImage {
|
|
13
|
+
readonly data: Uint8Array;
|
|
14
|
+
readonly width: number;
|
|
15
|
+
readonly height: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* RGBA to luma, ITU-R BT.601 weights in fixed point, over white.
|
|
19
|
+
*
|
|
20
|
+
* Integer arithmetic because this runs over every pixel of a camera frame
|
|
21
|
+
* thirty times a second, and the difference is invisible after thresholding.
|
|
22
|
+
*
|
|
23
|
+
* A transparent pixel is read as the paper it will be printed on. A PNG with a
|
|
24
|
+
* transparent background stores its light modules as alpha 0 with whatever
|
|
25
|
+
* colour the writer left there, very often black, and reading the colour alone
|
|
26
|
+
* would turn every light module dark.
|
|
27
|
+
*/
|
|
28
|
+
export declare function toGrey(image: RgbaImage): GreyImage;
|
|
29
|
+
/**
|
|
30
|
+
* Halve the resolution with a 2x2 box filter.
|
|
31
|
+
*
|
|
32
|
+
* Two jobs at once: it brings a large photograph into the range the finder
|
|
33
|
+
* scan is tuned for, and the averaging takes sensor noise out from under the
|
|
34
|
+
* binariser, which is usually what defeats a dim capture.
|
|
35
|
+
*/
|
|
36
|
+
export declare function downscaleHalf(image: GreyImage): GreyImage;
|
|
37
|
+
/**
|
|
38
|
+
* Reduce to an arbitrary size by averaging each destination pixel's exact
|
|
39
|
+
* source footprint.
|
|
40
|
+
*
|
|
41
|
+
* The alternative, a bilinear tap, reads two source pixels per axis however
|
|
42
|
+
* far the reduction goes: reducing 4032 pixels to 1600 that way samples 4 of
|
|
43
|
+
* every 25 and throws the rest away, so module edges alias at whatever phase
|
|
44
|
+
* the grid happens to catch them and the binariser inherits stripes that were
|
|
45
|
+
* never in the symbol.
|
|
46
|
+
*/
|
|
47
|
+
export declare function downscaleArea(image: GreyImage, width: number, height: number): GreyImage;
|
|
48
|
+
/**
|
|
49
|
+
* Enlarge by an integer factor, interpolating.
|
|
50
|
+
*
|
|
51
|
+
* Nearest neighbour is the tempting choice, on the grounds that interpolation
|
|
52
|
+
* invents greys along every module edge. At the resolution this rung exists
|
|
53
|
+
* for, three pixels a module or fewer, those greys are not invented: they are
|
|
54
|
+
* the only record of where the edge sits. Measured in the authenticator at 2.5
|
|
55
|
+
* pixels a module, nearest scored the same as no upscale and this scored 100%.
|
|
56
|
+
*/
|
|
57
|
+
export declare function upscaleSmooth(image: GreyImage, factor: number): GreyImage;
|
|
58
|
+
/**
|
|
59
|
+
* Reduce to at most `maxPixels`, keeping the aspect ratio.
|
|
60
|
+
*
|
|
61
|
+
* By area rather than by long edge, because every stage of the reader is
|
|
62
|
+
* linear in area and none is linear in long edge: a cap on the long edge
|
|
63
|
+
* prices a 4032 by 3024 photograph and a 4032 by 1000 panorama the same when
|
|
64
|
+
* one is four times the work.
|
|
65
|
+
*
|
|
66
|
+
* Whole halvings first, while the next one would still clear the target, then
|
|
67
|
+
* one area pass for the remainder. Halving repeatedly to fit undershoots any
|
|
68
|
+
* cap by up to a factor of two, and one pixel of input more could halve the
|
|
69
|
+
* working resolution: that discontinuity was the largest resolution loss the
|
|
70
|
+
* authenticator ever had.
|
|
71
|
+
*/
|
|
72
|
+
export declare function fitPixels(image: GreyImage, maxPixels: number): GreyImage;
|
|
73
|
+
/**
|
|
74
|
+
* Whether the picture looks like light-on-dark.
|
|
75
|
+
*
|
|
76
|
+
* Sampled from the corners, because a code is supposed to sit inside a light
|
|
77
|
+
* quiet zone and the corners are the part of a picture least likely to be the
|
|
78
|
+
* code. It decides only which polarity the lenient ladder tries first; both
|
|
79
|
+
* are tried either way, so a wrong guess costs one rung.
|
|
80
|
+
*
|
|
81
|
+
* The comparison is against the picture's own dark and light levels rather
|
|
82
|
+
* than a fixed brightness: a photograph in poor light has every level scaled
|
|
83
|
+
* down, and a light surround at 63 used to read as dark and flip the guess for
|
|
84
|
+
* the whole ladder.
|
|
85
|
+
*/
|
|
86
|
+
export declare function looksInverted(image: GreyImage): boolean;
|
|
87
|
+
//# sourceMappingURL=grey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grey.d.ts","sourceRoot":"","sources":["../../src/decode/grey.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAalD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAqBzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CA8BxF;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAyBzE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAoBxE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CA0BvD"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Greyscale, and the resolution policy.
|
|
3
|
+
*
|
|
4
|
+
* Lifted from the authenticator package's reader
|
|
5
|
+
* (google-auth-secret-retriever, `src/qr/decode/grey.ts`), where every
|
|
6
|
+
* function here was a bug that shipped before it was right, and adapted to
|
|
7
|
+
* this package: alpha is composited over white, nothing reads a clock, and the
|
|
8
|
+
* only cap is by area.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* RGBA to luma, ITU-R BT.601 weights in fixed point, over white.
|
|
12
|
+
*
|
|
13
|
+
* Integer arithmetic because this runs over every pixel of a camera frame
|
|
14
|
+
* thirty times a second, and the difference is invisible after thresholding.
|
|
15
|
+
*
|
|
16
|
+
* A transparent pixel is read as the paper it will be printed on. A PNG with a
|
|
17
|
+
* transparent background stores its light modules as alpha 0 with whatever
|
|
18
|
+
* colour the writer left there, very often black, and reading the colour alone
|
|
19
|
+
* would turn every light module dark.
|
|
20
|
+
*/
|
|
21
|
+
export function toGrey(image) {
|
|
22
|
+
const { data, width, height } = image;
|
|
23
|
+
const out = new Uint8Array(width * height);
|
|
24
|
+
for (let i = 0, p = 0; i < out.length; i += 1, p += 4) {
|
|
25
|
+
const r = data[p];
|
|
26
|
+
const g = data[p + 1];
|
|
27
|
+
const b = data[p + 2];
|
|
28
|
+
const a = data[p + 3];
|
|
29
|
+
// 0.299, 0.587, 0.114 scaled by 1024.
|
|
30
|
+
const luma = (r * 306 + g * 601 + b * 117) >> 10;
|
|
31
|
+
out[i] = a === 255 ? luma : Math.round((luma * a) / 255 + (255 - a));
|
|
32
|
+
}
|
|
33
|
+
return { data: out, width, height };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Halve the resolution with a 2x2 box filter.
|
|
37
|
+
*
|
|
38
|
+
* Two jobs at once: it brings a large photograph into the range the finder
|
|
39
|
+
* scan is tuned for, and the averaging takes sensor noise out from under the
|
|
40
|
+
* binariser, which is usually what defeats a dim capture.
|
|
41
|
+
*/
|
|
42
|
+
export function downscaleHalf(image) {
|
|
43
|
+
const width = Math.max(1, image.width >> 1);
|
|
44
|
+
const height = Math.max(1, image.height >> 1);
|
|
45
|
+
const out = new Uint8Array(width * height);
|
|
46
|
+
const lastX = image.width - 1;
|
|
47
|
+
const lastY = image.height - 1;
|
|
48
|
+
for (let y = 0; y < height; y += 1) {
|
|
49
|
+
const top = y * 2 * image.width;
|
|
50
|
+
const bottom = Math.min(y * 2 + 1, lastY) * image.width;
|
|
51
|
+
for (let x = 0; x < width; x += 1) {
|
|
52
|
+
const left = x * 2;
|
|
53
|
+
const right = Math.min(left + 1, lastX);
|
|
54
|
+
const sum = image.data[top + left] +
|
|
55
|
+
image.data[top + right] +
|
|
56
|
+
image.data[bottom + left] +
|
|
57
|
+
image.data[bottom + right];
|
|
58
|
+
out[y * width + x] = sum >> 2;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return { data: out, width, height };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Reduce to an arbitrary size by averaging each destination pixel's exact
|
|
65
|
+
* source footprint.
|
|
66
|
+
*
|
|
67
|
+
* The alternative, a bilinear tap, reads two source pixels per axis however
|
|
68
|
+
* far the reduction goes: reducing 4032 pixels to 1600 that way samples 4 of
|
|
69
|
+
* every 25 and throws the rest away, so module edges alias at whatever phase
|
|
70
|
+
* the grid happens to catch them and the binariser inherits stripes that were
|
|
71
|
+
* never in the symbol.
|
|
72
|
+
*/
|
|
73
|
+
export function downscaleArea(image, width, height) {
|
|
74
|
+
const out = new Uint8Array(width * height);
|
|
75
|
+
const stepX = image.width / width;
|
|
76
|
+
const stepY = image.height / height;
|
|
77
|
+
for (let y = 0; y < height; y += 1) {
|
|
78
|
+
const top = y * stepY;
|
|
79
|
+
const bottom = Math.min(image.height, (y + 1) * stepY);
|
|
80
|
+
const lastRow = Math.ceil(bottom);
|
|
81
|
+
for (let x = 0; x < width; x += 1) {
|
|
82
|
+
const left = x * stepX;
|
|
83
|
+
const right = Math.min(image.width, (x + 1) * stepX);
|
|
84
|
+
const lastColumn = Math.ceil(right);
|
|
85
|
+
let total = 0;
|
|
86
|
+
let weight = 0;
|
|
87
|
+
for (let sy = Math.floor(top); sy < lastRow; sy += 1) {
|
|
88
|
+
// Partial rows and columns carry their overlap as a weight, which keeps
|
|
89
|
+
// the result free of the periodic bias a rounded footprint leaves at a
|
|
90
|
+
// non-integer ratio.
|
|
91
|
+
const wy = Math.min(sy + 1, bottom) - Math.max(sy, top);
|
|
92
|
+
const row = sy * image.width;
|
|
93
|
+
for (let sx = Math.floor(left); sx < lastColumn; sx += 1) {
|
|
94
|
+
const w = (Math.min(sx + 1, right) - Math.max(sx, left)) * wy;
|
|
95
|
+
total += image.data[row + sx] * w;
|
|
96
|
+
weight += w;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
out[y * width + x] = Math.round(total / weight);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return { data: out, width, height };
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Enlarge by an integer factor, interpolating.
|
|
106
|
+
*
|
|
107
|
+
* Nearest neighbour is the tempting choice, on the grounds that interpolation
|
|
108
|
+
* invents greys along every module edge. At the resolution this rung exists
|
|
109
|
+
* for, three pixels a module or fewer, those greys are not invented: they are
|
|
110
|
+
* the only record of where the edge sits. Measured in the authenticator at 2.5
|
|
111
|
+
* pixels a module, nearest scored the same as no upscale and this scored 100%.
|
|
112
|
+
*/
|
|
113
|
+
export function upscaleSmooth(image, factor) {
|
|
114
|
+
const width = image.width * factor;
|
|
115
|
+
const height = image.height * factor;
|
|
116
|
+
const out = new Uint8Array(width * height);
|
|
117
|
+
for (let y = 0; y < height; y += 1) {
|
|
118
|
+
// Pixel centres, so the interpolation is not half a pixel out.
|
|
119
|
+
const sourceY = Math.min(image.height - 1, Math.max(0, (y + 0.5) / factor - 0.5));
|
|
120
|
+
const y0 = Math.floor(sourceY);
|
|
121
|
+
const y1 = Math.min(image.height - 1, y0 + 1);
|
|
122
|
+
const fy = sourceY - y0;
|
|
123
|
+
for (let x = 0; x < width; x += 1) {
|
|
124
|
+
const sourceX = Math.min(image.width - 1, Math.max(0, (x + 0.5) / factor - 0.5));
|
|
125
|
+
const x0 = Math.floor(sourceX);
|
|
126
|
+
const x1 = Math.min(image.width - 1, x0 + 1);
|
|
127
|
+
const fx = sourceX - x0;
|
|
128
|
+
const a = image.data[y0 * image.width + x0];
|
|
129
|
+
const b = image.data[y0 * image.width + x1];
|
|
130
|
+
const c = image.data[y1 * image.width + x0];
|
|
131
|
+
const d = image.data[y1 * image.width + x1];
|
|
132
|
+
out[y * width + x] = Math.round(a * (1 - fx) * (1 - fy) + b * fx * (1 - fy) + c * (1 - fx) * fy + d * fx * fy);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return { data: out, width, height };
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Reduce to at most `maxPixels`, keeping the aspect ratio.
|
|
139
|
+
*
|
|
140
|
+
* By area rather than by long edge, because every stage of the reader is
|
|
141
|
+
* linear in area and none is linear in long edge: a cap on the long edge
|
|
142
|
+
* prices a 4032 by 3024 photograph and a 4032 by 1000 panorama the same when
|
|
143
|
+
* one is four times the work.
|
|
144
|
+
*
|
|
145
|
+
* Whole halvings first, while the next one would still clear the target, then
|
|
146
|
+
* one area pass for the remainder. Halving repeatedly to fit undershoots any
|
|
147
|
+
* cap by up to a factor of two, and one pixel of input more could halve the
|
|
148
|
+
* working resolution: that discontinuity was the largest resolution loss the
|
|
149
|
+
* authenticator ever had.
|
|
150
|
+
*/
|
|
151
|
+
export function fitPixels(image, maxPixels) {
|
|
152
|
+
const pixels = image.width * image.height;
|
|
153
|
+
if (pixels <= maxPixels)
|
|
154
|
+
return image;
|
|
155
|
+
// Floored rather than rounded, so the result is never a pixel over the cap.
|
|
156
|
+
// A side that would round to nothing keeps one pixel, and the other side
|
|
157
|
+
// gives up what that costs, so a 4000 by 1 strip still lands under the cap.
|
|
158
|
+
const scale = Math.sqrt(maxPixels / pixels);
|
|
159
|
+
let width = Math.max(1, Math.floor(image.width * scale));
|
|
160
|
+
let height = Math.max(1, Math.floor(image.height * scale));
|
|
161
|
+
if (width * height > maxPixels) {
|
|
162
|
+
if (height === 1)
|
|
163
|
+
width = Math.max(1, Math.floor(maxPixels));
|
|
164
|
+
else
|
|
165
|
+
height = Math.max(1, Math.floor(maxPixels / width));
|
|
166
|
+
}
|
|
167
|
+
let current = image;
|
|
168
|
+
while (current.width >> 1 >= width && current.height >> 1 >= height) {
|
|
169
|
+
current = downscaleHalf(current);
|
|
170
|
+
}
|
|
171
|
+
return current.width === width && current.height === height
|
|
172
|
+
? current
|
|
173
|
+
: downscaleArea(current, width, height);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Whether the picture looks like light-on-dark.
|
|
177
|
+
*
|
|
178
|
+
* Sampled from the corners, because a code is supposed to sit inside a light
|
|
179
|
+
* quiet zone and the corners are the part of a picture least likely to be the
|
|
180
|
+
* code. It decides only which polarity the lenient ladder tries first; both
|
|
181
|
+
* are tried either way, so a wrong guess costs one rung.
|
|
182
|
+
*
|
|
183
|
+
* The comparison is against the picture's own dark and light levels rather
|
|
184
|
+
* than a fixed brightness: a photograph in poor light has every level scaled
|
|
185
|
+
* down, and a light surround at 63 used to read as dark and flip the guess for
|
|
186
|
+
* the whole ladder.
|
|
187
|
+
*/
|
|
188
|
+
export function looksInverted(image) {
|
|
189
|
+
const { data, width, height } = image;
|
|
190
|
+
const patch = Math.max(1, Math.min(width, height) >> 4);
|
|
191
|
+
const samples = [];
|
|
192
|
+
for (const [ox, oy] of [
|
|
193
|
+
[0, 0],
|
|
194
|
+
[width - patch, 0],
|
|
195
|
+
[0, height - patch],
|
|
196
|
+
[width - patch, height - patch],
|
|
197
|
+
]) {
|
|
198
|
+
let total = 0;
|
|
199
|
+
for (let y = oy; y < oy + patch; y += 1) {
|
|
200
|
+
for (let x = ox; x < ox + patch; x += 1)
|
|
201
|
+
total += data[y * width + x];
|
|
202
|
+
}
|
|
203
|
+
samples.push(total / (patch * patch));
|
|
204
|
+
}
|
|
205
|
+
samples.sort((a, b) => a - b);
|
|
206
|
+
const median = (samples[1] + samples[2]) / 2;
|
|
207
|
+
const histogram = new Uint32Array(256);
|
|
208
|
+
for (let i = 0; i < data.length; i += 1)
|
|
209
|
+
histogram[data[i]] += 1;
|
|
210
|
+
const dark = percentile(histogram, data.length, 0.05);
|
|
211
|
+
const light = percentile(histogram, data.length, 0.95);
|
|
212
|
+
// A third of the way up from dark rather than halfway, because a mid-grey
|
|
213
|
+
// surround is common and is not an inverted symbol.
|
|
214
|
+
return median < dark + (light - dark) * 0.35;
|
|
215
|
+
}
|
|
216
|
+
function percentile(histogram, total, fraction) {
|
|
217
|
+
const target = total * fraction;
|
|
218
|
+
let seen = 0;
|
|
219
|
+
for (let value = 0; value < 255; value += 1) {
|
|
220
|
+
seen += histogram[value];
|
|
221
|
+
if (seen >= target)
|
|
222
|
+
return value;
|
|
223
|
+
}
|
|
224
|
+
return 255;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=grey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grey.js","sourceRoot":"","sources":["../../src/decode/grey.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { DEFAULT_MAX_PIXELS, STRICT_MAX_PIXELS, decodeImage, decodeMatrix } from './decoder.js';
|
|
2
|
+
export { decodeFailureKey } from './failure.js';
|
|
3
|
+
export type { DecodeBudget, DecodeFrame, DecodeOptions, DecodeProfile, DecodeStage, DecodedSymbol, Point, Polarity, Rung, TelemetryFinder, TelemetrySink, } from './types.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,aAAa,GACb,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|