Skip to content

chore: bump @zxing/library and @zxing/browser in /frontend - #133

Open
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/npm_and_yarn/frontend/multi-48defc810d
Open

dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/npm_and_yarn/frontend/multi-48defc810d

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 30, 2026

Copy link
Copy Markdown
Contributor

Bumps @zxing/library and @zxing/browser. These dependencies needed to be updated together.
Updates @zxing/library from 0.21.3 to 0.23.0

Release notes

Sourced from @​zxing/library's releases.

v0.23.0

Changelog

Error Robustness

  • MultiFormatReader: Non-ReaderException errors (TypeError, RangeError, etc.) are now logged instead of silently swallowed during decode attempts. Previously, programming errors were invisible and produced misleading "no barcode found" results. (src/core/MultiFormatReader.ts)
  • MultiFormatReader: Skip redundant setHints() calls when the same hints object is passed to decode() repeatedly, avoiding unnecessary reader reconstruction. (src/core/MultiFormatReader.ts)
  • BrowserCodeReader: Unexpected errors in the continuous scan loop are now logged via console.error. Previously the loop would stop silently with no indication of what went wrong. (src/browser/BrowserCodeReader.ts)

Scanning Quality

  • OneDReader: Increased default row sampling from 15 to 25 lines, covering ~78% of image height (up from ~47%). This improves detection of 1D barcodes positioned away from the image center without requiring TRY_HARDER mode. (src/core/oned/OneDReader.ts)
  • BrowserCodeReader: Added GlobalHistogramBinarizer fallback when HybridBinarizer fails with NotFoundException. Local thresholding can fail on very small barcodes or uniform-background images where a single global threshold works better. The fallback only triggers on failure, so the normal fast path is unaffected. (src/browser/BrowserCodeReader.ts)

Performance

  • HTMLCanvasElementLuminanceSource: Merged two duplicate 25-line grayscale conversion loops (normal vs. inverted) into a single loop using an XOR mask. Reduces code and eliminates a branch. (src/browser/HTMLCanvasElementLuminanceSource.ts)
  • HTMLCanvasElementLuminanceSource: Use subarray() instead of slice() in getRow() to avoid an intermediate buffer copy on every row read. (src/browser/HTMLCanvasElementLuminanceSource.ts)
  • HTMLCanvasElementLuminanceSource + BrowserCodeReader: Added optional grayscale buffer reuse across frames during continuous scanning, avoiding a ~900KB Uint8ClampedArray allocation per frame on 1280x720 video. (src/browser/HTMLCanvasElementLuminanceSource.ts, src/browser/BrowserCodeReader.ts)
  • BitMatrix: Replaced Math.floor(x / 32) with bitwise (x >> 5) in all hot-path methods (get, set, unset, flip, setRegion, constructor). These are the innermost operations in binarization and grid sampling. (src/core/common/BitMatrix.ts)
  • BitMatrix: Replaced manual zeroing loop in clear() with native Int32Array.fill(0). (src/core/common/BitMatrix.ts)
  • DefaultGridSampler: Replaced Math.floor() with bitwise | 0 in the inner grid sampling loop, called per-pixel for every 2D barcode module. (src/core/common/DefaultGridSampler.ts)
  • GlobalHistogramBinarizer: Replaced manual bucket zeroing loop with Int32Array.fill(0). (src/core/common/GlobalHistogramBinarizer.ts)
  • FinderPatternFinder: Replaced manual 5-element array zeroing with Int32Array.fill(0) in 3 locations. (src/core/qrcode/detector/FinderPatternFinder.ts)

New Format: MaxiCode

  • MaxiCodeReader: Full MaxiCode 2D barcode decoding support (modes 2–5), ported from the Java ZXing reference implementation. MaxiCode is a fixed-size hexagonal barcode used primarily by UPS for package sorting. (src/core/maxicode/MaxiCodeReader.ts)
  • MaxiCode Decoder: Reed-Solomon error correction with interleaved EVEN/ODD codeword processing, supporting structured carrier messages (modes 2–3 with postal code, country, and service class) and standard/enhanced error correction messages (modes 4–5). (src/core/maxicode/decoder/Decoder.ts, src/core/maxicode/decoder/BitMatrixParser.ts, src/core/maxicode/decoder/DecodedBitStreamParser.ts)
  • MultiFormatReader: MaxiCode is now included in both format-specific and default reader lists. (src/core/MultiFormatReader.ts)
  • ReedSolomonDecoder: Added decodeWithECCount() method that returns the number of corrected errors, used by the MaxiCode decoder to report error correction statistics. (src/core/common/reedsolomon/ReedSolomonDecoder.ts)
  • ResultMetadataType: Added ERRORS_CORRECTED enum value for reporting error correction counts in decode results. (src/core/ResultMetadataType.ts)

v0.22.0

Changelog: feature/modernize26 vs master

New Feature: MicroQR Code Support

  • Added full MicroQR Code reader implementation (src/core/microqr/)
    • Detector, decoder, bit matrix parser, data masking, format information, version handling
  • Registered MicroQRCodeReader in MultiFormatReader and BarcodeFormat
  • Exported all MicroQR types from src/index.ts
  • Added test suite with black-box tests and 3 sample images (src/test/resources/blackbox/microqr-1/)

Bug Fixes

  • RSS14Reader (src/core/oned/rss/RSS14Reader.ts): Fixed finder pattern center calculation — off-by-one corrected (startEnd[0] + startEnd[1] - 1); non-throwing errors (other than NotFoundException) no longer silently swallowed; new String() replaced with String(); strict equality (===) fixes
  • StringEncoding (src/core/util/StringEncoding.ts): Removed shouldDecodeOnFallback workaround for ISO-8859-1 — Node ≥ 18 native TextDecoder handles all Latin-1 bytes correctly, fixing URIError: URI malformed on characters like ó
  • RSS14Reader finder pattern: findFinderPattern()[1] now correctly points to the outside pixel of the finder pattern

... (truncated)

Commits
  • 1722d07 Merge pull request #647 from zxing-js/feature/modernize26-2
  • 88f78ec Updated readme
  • fc13009 Bumped version
  • 3bc86d8 MaxiCode Support
  • f9a638b Improve error robustness, scanning quality, and performance
  • 139603a using new npm publish workflow
  • 1a10282 Fixed publish workflow
  • ca304af Merge pull request #645 from zxing-js/feature/modernize26
  • c28ae9c Merge pull request #646 from zxing-js/feature/microqr
  • 06b340d Fixed errors and keep compatibility
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for @​zxing/library since your current version.


Updates @zxing/browser from 0.1.5 to 0.2.1

Release notes

Sourced from @​zxing/browser's releases.

v0.2.1

Updated Peer-Deps

v0.2.0

0.2.0

Breaking Changes

  • Peer dependency bumped to @zxing/library@^0.22.0 — projects still on 0.21.x must upgrade.
  • BrowserCodeReader.options type narrowed — the protected readonly options property is now typed as Required<IBrowserCodeReaderOptions> instead of IBrowserCodeReaderOptions. TypeScript subclasses that read option properties will now receive number instead of number | undefined; runtime behaviour is unchanged.

Bug Fixes

  • Removed invalid --screw-ie8 flag from the Terser minification script, which caused the build:umd:min step to fail with modern Terser.
  • Fixed syntax error in the async dynamic-import example in the README.
  • Corrected BrowserPDF417CodeReaderBrowserPDF417Reader in the README reader list.
  • Corrected the description of BrowserCodeReader in the README (it is a concrete base class, not abstract).

Tooling & Infrastructure

  • Migrated from Yarn to npm. yarn.lock removed; package-lock.json is now the lock file. Install with npm ci.
  • Replaced Cypress with Jest for testing. Tests now run in Node.js via ts-jest and node-canvas, removing the need for a browser or a local HTTP server. Run with npm test.
  • Migrated from TSLint to ESLint (with typescript-eslint). TSLint has been unmaintained since 2019. The new config lives in eslint.config.mjs using the ESLint 10 flat config format.
  • Rollup config renamed rollup.config.jsrollup.config.mjs for explicit ESM; upgraded to Rollup 4. UMD build warnings (circular deps in @zxing/library, this-rewrite) are now suppressed via onwarn and context: 'window'.
  • GitHub Actions modernised:
    • All actions bumped to latest versions (checkout@v4, setup-node@v4, cache@v4, upload-artifact@v4, download-artifact@v4).
    • Node.js upgraded from 18 → 24.
    • Deprecated ::set-output replaced with $GITHUB_OUTPUT.
    • Yarn cache steps replaced with setup-node's built-in cache: npm.

Dependency Updates

Package Before After
typescript 4.5.5 6.0.3
rollup 2.67.0 4.60.2
@rollup/plugin-node-resolve 13.1.3 16.0.3
eslint 8.8.0 10.2.1
terser 5.14.2 5.46.2
shx 0.3.4 0.4.0
tslint (removed) 5.20.1
tslint-no-circular-imports (removed) 0.7.0
cypress (removed) 9.4.1
pm2 (removed) 5.1.2
chai / @types/chai (removed) 4.x
jest (added) 29.7.0
ts-jest (added) 29.3.2
canvas (added) 3.1.0

... (truncated)

Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for @​zxing/browser since your current version.


Bumps [@zxing/library](https://github.com/zxing-js/library) and [@zxing/browser](https://github.com/zxing-js/browser). These dependencies needed to be updated together.

Updates `@zxing/library` from 0.21.3 to 0.23.0
- [Release notes](https://github.com/zxing-js/library/releases)
- [Commits](zxing-js/library@v0.21.3...v0.23.0)

Updates `@zxing/browser` from 0.1.5 to 0.2.1
- [Release notes](https://github.com/zxing-js/browser/releases)
- [Commits](zxing-js/browser@v0.1.5...v0.2.1)

---
updated-dependencies:
- dependency-name: "@zxing/browser"
  dependency-version: 0.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: "@zxing/library"
  dependency-version: 0.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/frontend/multi-48defc810d branch from 0bdb293 to 295e37b Compare September 15, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants