Skip to main content
Introducing packages.sweber.dev
All posts
Release2 min read

Inverse 2.1.0 released

Inverse Pro 2.1 adds a web inbox for withdrawals and cancellations and continuous monitoring of your shop pages with an alert when a button goes missing. Both are beta. The free package gets a one-line hint about Pro in the CLI.

By Seya Weber

Inverse 2.1.0 is out. @sweberdev/inverse and @sweberdev/inverse-react are on npm under the MIT licence, and the Pro packages are at 2.1.0 on GitHub Packages for licence holders. Existing subscriptions and lifetime licences cover it; prices and licence are unchanged.

2.1 is about what happens after the buttons are live. The free package gets you through the flow; Pro now helps you run it.

What is new in Pro

  • Case inbox (beta). npx inverse-ledger inbox ./data/inverse.db --company "Acme GmbH" starts a web inbox. It lists every withdrawal and cancellation with status and refund day, marks overdue withdrawals, moves a case on (processing, refunded, rejected, closed) and sends the customer a reply from a German or English template. The reference, contract and refund day in the mail come from the ledger. Every status change is written to the evidence chain. Access is by password (HTTP Basic auth), changes need a CSRF header, and the server listens on localhost until you put HTTPS in front of it. In code: createInbox and serveInbox.
  • Continuous monitoring (beta). npx inverse-audit watch --sites sites.txt --state state.json --webhook <url> checks your pages and reports only what changed: a button that vanished after a deploy, a site that stays broken, a site that is back. npx inverse-audit init-action https://shop.example.com --webhook prints a GitHub Actions workflow that runs the check on a schedule and fails the run on an alert, so GitHub mails the people watching the repository.

What is new in the free package

inverse check prints one line about Pro on stderr after an interactive run. It is silent when the output is piped, with --json, in CI, and when INVERSE_NO_HINT is set. The README lists the new Pro features.

What is not verified

Both features are marked beta because they were not run against real systems. The inbox and its HTTP interface are tested against a real server and a fake mail transport; no real mail provider was used. The monitor and the workflow generator are tested, but the generated workflow has not run on a live GitHub runner yet. GitHub's scheduled runs can also start late, so treat the interval as approximate. A JSON Lines ledger has one writer: use SQLite or PostgreSQL if the shop and the inbox write at the same time.

Upgrading

Nothing breaks. Update the packages and, for the inbox, set INVERSE_INBOX_PASSWORD (at least 12 characters) before you start it.

pnpm add @sweberdev/inverse@latest @sweberdev/inverse-react@latest
pnpm add @weber-development/inverse-ledger@latest @weber-development/inverse-audit@latest @weber-development/inverse-mail@latest

Docs: case inbox, monitoring. Pro: packages.sweber.dev/inverse.

Package in this post

Inverse

The withdrawal button (§ 356a BGB) and the cancellation button (§ 312k BGB) for Next.js and React, with the two-step flow, the receipt e-mail and a page check.

pnpm add @sweberdev/inverse @sweberdev/inverse-react
View package

Related posts

Release

Inverse 2.0.0 released

Inverse 2.0 knows legal areas: a jurisdiction on every record, legal status per country, a case workflow and a format field in the Pro ledger. Eight countries are covered, and the page says which ones rest on the national act and which on the EU directive only.

Inverse
Release

Inverse 0.8.0 released

Inverse gets a WordPress plugin with a settings page, and the links and both forms are now checked with axe in the tests. Inverse Pro adds the evidence dossier as a PDF, one ledger per client for agencies, and time stamp anchors on a schedule.

Inverse
Release

Inverse 0.9.0 released

Inverse 0.9.0 freezes the public API ahead of 1.0 and adds an Austria page, a stability policy and an upgrade guide. Inverse Pro adds the audit report as a PDF and a helper that ends a Stripe or Paddle subscription after a cancellation.

Inverse