Skip to content

Releases

1.2.0 - Update CI and maintainer tooling dependencies

Choose a tag to compare

@allanmcarvalho allanmcarvalho released this 04 Nov 18:44

Changed

  • Composer: bump artisan-toolbox/maintainer to 1.10.0

    • The artisan-toolbox/maintainer dependency has been raised to 1.10.0.
    • This can indirectly affect maintainer-driven outputs, such as generated documentation/README header content, depending on how your workflow uses the maintainer package.
  • CI: update shivammathur/setup-php to v2.40.0

    • The GitHub Action used for PHP provisioning in CI has been updated from 2.37.2 to 2.40.0.
    • The change is limited to the action revision; no PHP matrix/extension configuration changes were described.
  • Documentation/tooling refresh

    • README head content and maintainer-related tooling outputs were regenerated/updated.
    • The changelog content/structure for the upcoming release was refreshed (not runtime code).

Added

  • Development: add PHPStan static analysis
    • Added phpstan/phpstan to require-dev.
    • This improves development-time static analysis and may cause new findings to surface earlier for contributors and CI checks that run PHPStan.

Internal Maintenance

  • Standardize README badges and update documentation
    • README badge formatting and documentation presentation were standardized.
  • Maintainer implementation improvements
    • Additional maintainer-related implementation updates were applied, aligning maintainer-driven outputs (e.g., README/tooling generation behavior).

Migration / Compatibility Notes

  • If your workflows generate documentation or README content using the maintainer package, validate that artisan-toolbox/maintainer 1.10.0 remains compatible with your environment.
  • Ensure your development tooling/config used for static analysis is compatible with the addition of PHPStan (and whatever configuration your project uses for it).

1.1.1 - Fix PDF preview font rendering and align CI triggers

Choose a tag to compare

@allanmcarvalho allanmcarvalho released this 15 Oct 23:52

Fixed

  • PDF preview font rendering reliability (renderPdf)

    • Updated resources/js/renderPdf.ts to render PDF previews using bundled standard fonts instead of system fonts.
    • The PDF/font rendering initialization now explicitly sets useSystemFonts: false (alongside existing options such as useWorkerFetch: false and isEvalSupported: false).
    • User-visible impact: PDF previews should no longer show missing-font warnings (e.g., Helvetica-Bold) on machines where the relevant system fonts are not installed, and font rendering should be more consistent across environments.
    • Compatibility / migration notes: there are no public API changes indicated. However, environments that previously relied on system font availability for preview rendering will now use bundled fonts instead.
    • Testing: a frontend unit test (tests/Frontend/renderPdf.test.ts) now asserts that the engine configuration includes StandardFontDataFactory from the bundled assets and that useSystemFonts: false is set.
  • CI tests workflow trigger alignment

    • Updated .github/workflows/tests.yml so that the tests workflow push target runs on the 1.x branch pattern (and *.x) rather than main.
    • The existing pull_request trigger behavior is unchanged.
    • User-visible impact: push-based automated test runs on main may decrease or stop; pushes to branches matching 1.x/*.x will continue to run tests.
    • Compatibility / migration notes: no code-level changes; this is a repository/branch-strategy adjustment to reflect the active release line for versioned branches.

1.1.0 - Make pre-versioning frontend builds more reliable and validate bundled distribution assets

Choose a tag to compare

@allanmcarvalho allanmcarvalho released this 13 Oct 23:12

Fixed

  • More reliable before-versioning frontend build: Updated the before-versioning frontend build process to run more reliably by adjusting how the npm build command is invoked. This reduces the likelihood that CI/developers see flaky failures when running versioning from different directories or with different process context.

Changed

  • Simplified npm build invocation during versioning: Refactored the npm build invocation to run via a single command string, improving execution consistency when called from the backend versioning hook.
  • Distribution validation and bundling workflow updated (1.1.0):
    • Added a GitHub Actions job to build the frontend and verify that tracked dist/ assets are present and correct.
    • Updated .gitignore to stop globally ignoring /dist, ensuring dist artifacts are tracked.
    • Updated documentation and release/install instructions to reflect installing the private local vendor frontend package via Composer (into vendor/...) and then running from the Laravel app root:
      • npm install ./vendor/artisan-toolbox/qztray
      • (instead of relying on an npm-published package)
    • Introduced a distribution validator: scripts/check-distribution.mjs, which enforces that tracked dist/ content matches the Git state. CI/release will fail if dist/ is missing, dirty, or has unexpected/untracked changes.
    • Updated QzTrayConnector to:
      • bump version metadata to 1.1.0
      • implement BeforeVersioning that runs npm run build from the project root during versioning.
    • Expanded tests to cover:
      • successful/failed before-versioning build behavior
      • frontend render build packaging so that composer/tarball distribution includes dist/* (including wasm)
      • package.json set to { private: true } for the frontend package

Compatibility / Migration

  • Installation/packaging workflow changes: If you previously installed the frontend via npm registry (e.g., @artisan-toolbox/qztray), update your workflow to use the Composer-distributed vendor package:
    • Install dependencies via Composer first so vendor/artisan-toolbox/qztray exists.
    • From the Laravel app root, run npm install ./vendor/artisan-toolbox/qztray.
  • Versioning prerequisites: Versioning now performs an automatic frontend build during BeforeVersioning, so the environment running versioning must have working Node/npm and the frontend build prerequisites available.

Removed

  • .gitignore behavior that previously globally ignored /dist artifacts was removed, so tracked dist/ files are no longer excluded.

1.0.0 - Add PDF and rendering support with typed printing API

Choose a tag to compare

@allanmcarvalho allanmcarvalho released this 13 Oct 20:26

Added

  • renderPdf support (Node + browser): Introduced renderPdf along with required PDF assets, with explicit compatibility for both Node.js and browser environments.
  • ESC/POS PNG previews: Added renderEscpos to generate PNG previews of ESC/POS output, including typed options to better define preview behavior.
  • Local ZPL rendering with WASM assets: Implemented local ZPL rendering powered by a shipped WebAssembly (WASM) asset bundle.
  • QZ Tray printing improvements: Added a new public QzTray singleton with a typed printing API.
  • Private payload signing endpoint: Added a private signPayload endpoint protected with CSRF authentication.
  • QZ Tray certificate caching + config validation: Cached the QZ Tray public certificate and added configuration validation to improve correctness and stability.
  • Ziggy connector routes + certificate retrieval: Added Ziggy connector routes and implemented certificate retrieval to support connector integrations.

Changed

  • Plain ZPL encoding inference in CI: Improved the “plain ZPL” printing path to infer encoding from ^CI for more consistent output in CI environments.
  • Frontend tooling / CI coverage: Added a Vite-based frontend scaffold and updated the CI matrix to validate the frontend tooling/runtimes.

Fixed

  • CI timeout reliability: Increased the CI timeout used for the “real package build test” to reduce intermittent failures in slower build environments.
  • Windows credential publishing: Verified credential publish paths and contents on Windows to improve cross-platform reliability.

Internal Maintenance

  • Bumped artisan-toolbox/maintainer to ^1.5.
  • Added package-lock.json and updated .gitignore to improve dependency install consistency.

Breaking Changes

  • Public QzTray singleton with typed API: The introduction of a public QzTray singleton and typed printing API (marked as breaking) may require updating existing integrations to align with the new access pattern and typed method signatures.