Skip to content

All versions since 0.0.4

0.0.4

Patch Changes

  • Refreshed the package READMEs with clearer option examples and consolidated links to the documentation guides.

  • createQRCodeStyler is no longer exported from the @qrcodesdk/core root entrypoint. Import it from @qrcodesdk/core/drawing instead:

    import {createQRCodeStyler} from '@qrcodesdk/core/drawing';
  • Fixed the extra-rounded finder styling. The finder ring now keeps straight edges and a consistent one-module thickness around its corners in SVG, canvas, image, and PNG output.

0.0.5 Latest

Patch Changes

  • 15fe5c3: Reduce the default center image size from 0.4 to 0.3 of the matrix width. Pass size: 0.4 in the center image layout to keep the previous size.

  • 2fd183e: Replace the nested-array matrix with an immutable QRCodeMatrix object containing size, flat row-major modules, and roles. Custom renderers must read a module at modules[y * size + x]. Use QR_CODE_MODULE_ROLES to distinguish data, finder, alignment, timing, and information modules.

    Replace string-based module and finder shapes with reusable rounded(), diagonal(), circle(), finder(), alignment(), and customShape() factories from @qrcodesdk/core/style. Finder options now use ring instead of outer. Add independent alignment styling and custom relative SVG paths. Remove the public @qrcodesdk/core/drawing entry point and drawing protocol; custom renderers consume the matrix directly.

    Create SVG center images with svgCenterImage(source, layout) and pass the result as centerImage, replacing inline source and layout objects. Replace QRCodeSVGCenterImageOptions with QRCodeSVGCenterImage and use QRCodeCenterImageLayout for shared layout options.

    Speed up matrix encoding, error correction, masking, and scoring. Reduce repeated shape preparation and drawing allocations, group output by color, and compact SVG paths. Keep the matrix entry point independent of styling code so unused styling stays out of consumer bundles.

    Rely on the declared TypeScript types for option object shapes and payload helper input types. Unknown option keys and incorrectly typed values no longer consistently produce QRCodeError; numeric bounds, colors, image sources, and custom paths still receive runtime validation.

  • 21107ab: Add bundled lossless WebP, single-frame GIF, and baseline JPEG encoders for the @qrcodesdk/browser and @qrcodesdk/node image renderers. The encoders run without platform image APIs, so output is identical in every browser and in Node.

Support QRCodeSDK

If you find QRCodeSDK useful, please consider sponsoring the project!