libretech 9873c184d6 refactor(checkout): move VAT rates, pricing and the PayPal order into pure modules
src/checkout/ holds code without the PayPal SDK or Strapi at runtime, so it can be
unit tested without node_modules:

- vat.ts: vatIncludedDecimal and vatDecimal. config/constants.ts re-exports them
  under the same names and keeps vatDecimalExcluded.
- pricing.ts: calculateTotalProductPrice, unchanged. The product service
  re-exports it, so every importer keeps working.
- paypal-order.ts: the order request createSessionOrThrow builds, in two halves.
  buildPayPalOrderItems (the total guard and the unsent items) still runs
  before the try block, and buildPayPalOrderRequest inside it. Errors and log
  lines stay as they were, for every input. The SDK enums are replaced by their
  string values (CAPTURE, SET_PROVIDED_ADDRESS).

No behaviour change.

Refs libretech/mp#71
2026-10-08 22:10:28 +02:00

libreshop/cms

Strapi-based content backend (catalogue, orders, customers).

Part of the libreshop toolkit. Image published at git.librete.ch/libreshop/cms on every push to main and on v* tags.

Source

This repo was extracted from mp/cms/ on 2026-04-29; mp was the first concrete adapter consuming the toolkit. mp's compose.yml now pulls git.librete.ch/libreshop/cms:<pin> instead of building locally.

Build locally

docker build -t libreshop/cms:dev .

Adapter contract

See docker-entrypoint.sh and Dockerfile for the runtime surface. Adapters configure the component via env vars and bind-mounted volumes; do not patch the running container or rely on internal paths.

S
Description
libreshop/cms — Strapi-based content backend
Readme
223 KiB
Languages
TypeScript 91.9%
Shell 7.2%
JavaScript 0.6%
Dockerfile 0.3%