openreceive 0.4.23 → 0.4.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/lib/openreceive/version.rb +1 -1
- data/skills/integrate-openreceive/SKILL.md +7 -3
- data/skills/integrate-openreceive/references/btcpay.md +1 -1
- data/skills/integrate-openreceive/references/django.md +4 -2
- data/skills/integrate-openreceive/references/fastapi.md +31 -10
- data/skills/integrate-openreceive/references/fastify.md +4 -2
- data/skills/integrate-openreceive/references/flask.md +822 -0
- data/skills/integrate-openreceive/references/laravel.md +5 -2
- data/skills/integrate-openreceive/references/lovable.md +10 -7
- data/skills/integrate-openreceive/references/nestjs.md +749 -0
- data/skills/integrate-openreceive/references/next.md +3 -1
- data/skills/integrate-openreceive/references/node.md +4 -2
- data/skills/integrate-openreceive/references/php.md +3 -2
- data/skills/integrate-openreceive/references/rails.md +2 -1
- data/skills/integrate-openreceive/references/woocommerce.md +5 -5
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 92de70ca1044470b160698913fc4bcec615f0529de243fc7df86eddcd6d7cf95
|
|
4
|
+
data.tar.gz: e390588c785aa70eb0641f34e31d6953886592db3c2c24ddd67f8e17e797a1ea
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2a14369f2156c50c446260eafe5d4915406d90e3a075a547770f2e0f6fcbd44c9c73c2b89ea3c11266b9afde8df7732a45ae5225cc0cc32f966d27bd74f23283
|
|
7
|
+
data.tar.gz: e6aae3ef1fccb7348e8b48a5150cb2e2d1ba437137256e06adde9c4f37c40666be992dae9c4a63de5ef931551f1afca600470b0af18003ff6c52e63608a904ee
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.25 - 2026-10-13
|
|
4
|
+
|
|
5
|
+
Release with the complete 0.4.25 package family. The bundled agent skill
|
|
6
|
+
adds directions for Flask and NestJS, and every server stack's directions
|
|
7
|
+
link the new guide for mobile apps. No Ruby runtime changes from 0.4.24.
|
|
8
|
+
|
|
9
|
+
## 0.4.24 - 2026-10-12
|
|
10
|
+
|
|
11
|
+
Release with the complete 0.4.24 package family. The gem's registry page
|
|
12
|
+
now links openreceive.org's Rails page. The bundled agent skill's
|
|
13
|
+
Lovable directions need `@openreceive/*` 0.4.24, whose Supabase functions
|
|
14
|
+
no longer hang when two requests write one order, and keep the app's own
|
|
15
|
+
order flow. Its FastAPI directions run doctor through `dotenv run` and never
|
|
16
|
+
load `.env` into the shell, and the Node, Next.js, Fastify, FastAPI and Django
|
|
17
|
+
directions link the serverless guide. No Ruby runtime changes from 0.4.23.
|
|
18
|
+
|
|
3
19
|
## 0.4.23 - 2026-10-11
|
|
4
20
|
|
|
5
21
|
Release with the complete 0.4.23 package family. The bundled agent skill adds
|
data/lib/openreceive/version.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: integrate-openreceive
|
|
3
3
|
description: >
|
|
4
4
|
Integrate OpenReceive Bitcoin Lightning checkout and optional USDT, USDC,
|
|
5
|
-
SOL, and ETH swaps. Use for Node.js, Express, Fastify, Next.js, Rails,
|
|
5
|
+
SOL, and ETH swaps. Use for Node.js, Express, Fastify, Next.js, NestJS, Rails,
|
|
6
6
|
Python, Django, FastAPI, Laravel, plain PHP, WordPress/WooCommerce,
|
|
7
7
|
React, Vue, Svelte, Angular, or plain HTML applications, or connecting
|
|
8
8
|
BTCPay Server to a receive-only NWC wallet. A configured swap provider
|
|
@@ -32,10 +32,13 @@ connected wallet; asset and network availability depends on the provider.
|
|
|
32
32
|
- Node, Express: [references/node.md](references/node.md)
|
|
33
33
|
- Node, Fastify: [references/fastify.md](references/fastify.md)
|
|
34
34
|
- Node, Next.js App Router: [references/next.md](references/next.md)
|
|
35
|
+
- Node, NestJS (Express platform): [references/nestjs.md](references/nestjs.md)
|
|
35
36
|
- Rails: [references/rails.md](references/rails.md)
|
|
36
37
|
- Python, FastAPI: [references/fastapi.md](references/fastapi.md)
|
|
37
38
|
- Plain PHP: [references/php.md](references/php.md)
|
|
38
39
|
- Django: [references/django.md](references/django.md)
|
|
40
|
+
- Flask: [references/flask.md](references/flask.md) — a one-file Blueprint
|
|
41
|
+
copied from the quickstart; there is no `openreceive.flask` package.
|
|
39
42
|
- Laravel: [references/laravel.md](references/laravel.md)
|
|
40
43
|
- WordPress + WooCommerce: [references/woocommerce.md](references/woocommerce.md) — the packaged gateway and merchant settings.
|
|
41
44
|
- Lovable (TanStack Start on Cloudflare Workers, with Supabase):
|
|
@@ -51,11 +54,12 @@ connected wallet; asset and network availability depends on the provider.
|
|
|
51
54
|
|
|
52
55
|
Install, per adapter — Express: `npm install @openreceive/express @openreceive/react`;
|
|
53
56
|
Fastify: `npm install @openreceive/fastify @openreceive/react`; Next.js:
|
|
54
|
-
`npm install @openreceive/next @openreceive/react
|
|
57
|
+
`npm install @openreceive/next @openreceive/react`; NestJS:
|
|
58
|
+
`npm install @openreceive/express @openreceive/http @openreceive/react`. Swap the UI package (`vue`,
|
|
55
59
|
`svelte`, `angular`, `elements`) for the frontend the app already has. Install
|
|
56
60
|
(Rails): `bundle add openreceive-rails`.
|
|
57
61
|
Django: `pip install "openreceive[django]"`; FastAPI:
|
|
58
|
-
`pip install "openreceive[fastapi]"`; Laravel: `composer require openreceive/laravel`;
|
|
62
|
+
`pip install "openreceive[fastapi]"`; Flask: `pip install "openreceive[sqlalchemy]"`; Laravel: `composer require openreceive/laravel`;
|
|
59
63
|
plain PHP: `composer require openreceive/openreceive nyholm/psr7 nyholm/psr7-server`.
|
|
60
64
|
|
|
61
65
|
## The three server objects
|
|
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/btcpay/full.md
|
|
|
17
17
|
- Never tick the spend-capable override to make a save succeed.
|
|
18
18
|
- Do not suggest rotating or revoking a code because it was pasted here.
|
|
19
19
|
|
|
20
|
-
These directions describe OpenReceive 0.4.
|
|
20
|
+
These directions describe OpenReceive 0.4.25.
|
|
21
21
|
|
|
22
22
|
Connect a BTCPay Server store to a receive-only NWC wallet with the OpenReceive
|
|
23
23
|
plugin, and optionally let payers pay BTCPay invoices with USDT, USDC, ETH or
|
|
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/django/full.md
|
|
|
17
17
|
- Do not suggest rotating or revoking a code because it was pasted here.
|
|
18
18
|
- Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
|
|
19
19
|
|
|
20
|
-
These directions describe OpenReceive 0.4.
|
|
20
|
+
These directions describe OpenReceive 0.4.25.
|
|
21
21
|
|
|
22
22
|
Add OpenReceive to a Django project — the app you are already working in. You
|
|
23
23
|
do not need a copy of the OpenReceive source: the Python package is on PyPI
|
|
@@ -389,7 +389,9 @@ enough; drop the `.md` for the same page a person would read.
|
|
|
389
389
|
- https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
|
|
390
390
|
- https://openreceive.org/guides/storage.md — the engine tables and the attempt state machine
|
|
391
391
|
- https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
|
|
392
|
+
- https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
|
|
392
393
|
- https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
|
|
394
|
+
- https://openreceive.org/guides/mobile-apps.md — when a mobile app takes the payment: the checkout page it opens, and what the App Store and Google Play allow
|
|
393
395
|
- https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
|
|
394
396
|
- https://openreceive.org/guides/headless-checkout.md — the controller, the display models, refunds
|
|
395
397
|
- https://openreceive.org/guides/provider-registry.md — where the wallet logos and pay
|
|
@@ -405,7 +407,7 @@ enough; drop the `.md` for the same page a person would read.
|
|
|
405
407
|
- https://openreceive.org/guides/api-reference.md — every route, option and error code
|
|
406
408
|
- https://openreceive.org/guides/custom-checkout-route.md — advanced: replacing the mounted engine's routes with your own
|
|
407
409
|
- https://openreceive.org/guides/react-material-ui-recipe.md — a worked custom UI on a component library
|
|
408
|
-
- https://openreceive.org/
|
|
410
|
+
- https://openreceive.org/agent-directions/flask.md — the same engine as a Flask Blueprint: follow those directions instead if this app is Flask after all
|
|
409
411
|
- https://openreceive.org/guides.md — the index, if what you need is not above
|
|
410
412
|
|
|
411
413
|
Questions, or a problem with the library itself:
|
|
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
|
|
|
3
3
|
# OpenReceive agent directions (FastAPI)
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
|
-
# READ THIS FIRST: this file is
|
|
6
|
+
# READ THIS FIRST: this file is 41 KB and a summary drops required steps. Download it whole:
|
|
7
7
|
curl -fsSL https://openreceive.org/agent-directions/fastapi/full.md
|
|
8
8
|
# Skip the download only if you already have all of it: pasted, read from disk or fetched raw.
|
|
9
9
|
```
|
|
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/fastapi/full.md
|
|
|
17
17
|
- Do not suggest rotating or revoking a code because it was pasted here.
|
|
18
18
|
- Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
|
|
19
19
|
|
|
20
|
-
These directions describe OpenReceive 0.4.
|
|
20
|
+
These directions describe OpenReceive 0.4.25.
|
|
21
21
|
|
|
22
22
|
Add OpenReceive to a FastAPI application — the app you are already working in.
|
|
23
23
|
You do not need a copy of the OpenReceive source: the engine is on PyPI
|
|
@@ -126,6 +126,11 @@ you store it. Ask one question per message.
|
|
|
126
126
|
with `uvicorn --env-file .env` (update the app's run script or Procfile, not
|
|
127
127
|
just your own command). When it is started with Docker Compose, give the
|
|
128
128
|
service `env_file: .env`. Restart the server after writing the file.
|
|
129
|
+
Doctor needs the file too: run it as
|
|
130
|
+
`dotenv -f .env run -- openreceive doctor …`. The `dotenv` command comes
|
|
131
|
+
with python-dotenv, which `uvicorn --env-file` already needs; if it is
|
|
132
|
+
missing, `pip install "python-dotenv[cli]"`. Never `source`, `export` or
|
|
133
|
+
`cat` the file: the codes contain `&`, and the shell prints the pieces.
|
|
129
134
|
|
|
130
135
|
Do not invent placeholder URIs. Start the quickstart only once `NWC_URI` is
|
|
131
136
|
saved and `LSC_URI_PRIMARY` is saved or explicitly declined. The first boot
|
|
@@ -133,8 +138,9 @@ runs the receive-only preflight: if it reports spend methods such as
|
|
|
133
138
|
`pay_invoice`, remove `NWC_URI` from `.env` and ask for a receive-only code
|
|
134
139
|
again. Never set the spend-capable override to get past it.
|
|
135
140
|
|
|
136
|
-
After the router is wired, run
|
|
137
|
-
|
|
141
|
+
After the router is wired, run
|
|
142
|
+
`dotenv -f .env run -- openreceive doctor --app <module>:app`. It reports
|
|
143
|
+
`NWC_URI` presence without printing it, probes the wallet, and names
|
|
138
144
|
any hook still on a placeholder and whether the migration ran. Exit code 1 is a
|
|
139
145
|
finding to fix, not a reason to skip the check.
|
|
140
146
|
|
|
@@ -152,7 +158,8 @@ Only then start the quickstart.
|
|
|
152
158
|
## After the quickstart — hand over, then stop
|
|
153
159
|
|
|
154
160
|
The quickstart is done when
|
|
155
|
-
`openreceive doctor --app <module>:app --url <app url>`
|
|
161
|
+
`dotenv -f .env run -- openreceive doctor --app <module>:app --url <app url>`
|
|
162
|
+
is clean and this app
|
|
156
163
|
serves the checkout page for one of its orders. Doctor names any failed check
|
|
157
164
|
and exits nonzero; fix it before going on.
|
|
158
165
|
|
|
@@ -383,7 +390,9 @@ enough; drop the `.md` for the same page a person would read.
|
|
|
383
390
|
- https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
|
|
384
391
|
- https://openreceive.org/guides/storage.md — the payment tables and the attempt state machine
|
|
385
392
|
- https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
|
|
393
|
+
- https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
|
|
386
394
|
- https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
|
|
395
|
+
- https://openreceive.org/guides/mobile-apps.md — when a mobile app takes the payment: the checkout page it opens, and what the App Store and Google Play allow
|
|
387
396
|
- https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
|
|
388
397
|
- https://openreceive.org/guides/headless-checkout.md — the controller, the display models, refunds
|
|
389
398
|
- https://openreceive.org/guides/provider-registry.md — where the wallet logos and pay
|
|
@@ -399,7 +408,7 @@ enough; drop the `.md` for the same page a person would read.
|
|
|
399
408
|
- https://openreceive.org/guides/api-reference.md — every route, option and error code
|
|
400
409
|
- https://openreceive.org/guides/custom-checkout-route.md — advanced: replacing the shipped adapter's routes with your own
|
|
401
410
|
- https://openreceive.org/guides/react-material-ui-recipe.md — a worked custom UI on a component library
|
|
402
|
-
- https://openreceive.org/
|
|
411
|
+
- https://openreceive.org/agent-directions/flask.md — the same engine as a Flask Blueprint: follow those directions instead if this app is Flask after all
|
|
403
412
|
- https://openreceive.org/guides.md — the index, if what you need is not above
|
|
404
413
|
|
|
405
414
|
Questions, or a problem with the library itself:
|
|
@@ -436,7 +445,7 @@ with the Django quickstart. A page without a bundler uses
|
|
|
436
445
|
|
|
437
446
|
| | Packages |
|
|
438
447
|
| -------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
439
|
-
| Server | `openreceive[fastapi]`, `openreceive[django]`, `openreceive[sqlalchemy]` (Flask and plain WSGI/ASGI: the Flask
|
|
448
|
+
| Server | `openreceive[fastapi]`, `openreceive[django]`, `openreceive[sqlalchemy]` (Flask and plain WSGI/ASGI: [the Flask quickstart](https://openreceive.org/guides/quickstart-flask.md)) |
|
|
440
449
|
| Frontend | `@openreceive/react`, `@openreceive/vue`, `@openreceive/svelte`, `@openreceive/angular`, `@openreceive/elements` (plain HTML) |
|
|
441
450
|
|
|
442
451
|
Use `uv` or a virtualenv on Python 3.10 or newer. A system Python 3.9 cannot
|
|
@@ -658,8 +667,13 @@ send it after commit.
|
|
|
658
667
|
|
|
659
668
|
A page without a bundler renders the same checkout as a custom element:
|
|
660
669
|
`<openreceive-checkout reference="…" prefix="/openreceive">` from
|
|
661
|
-
`@openreceive/elements`.
|
|
662
|
-
static directory
|
|
670
|
+
`@openreceive/elements`. For Jinja templates without a JavaScript build, serve
|
|
671
|
+
its standalone build from your static directory: copy
|
|
672
|
+
`openreceive-checkout.js` and `openreceive-checkout.css` from
|
|
673
|
+
`node_modules/@openreceive/elements/dist/standalone/` to `static/openreceive/`,
|
|
674
|
+
and load both on the checkout page. The `openreceive` package from PyPI carries
|
|
675
|
+
the same two files in `openreceive/django/static/openreceive/`, so you can copy
|
|
676
|
+
them from there without npm.
|
|
663
677
|
|
|
664
678
|
Buy a Button is a runnable illustration of the boundary
|
|
665
679
|
(`examples/buttons/server/fastapi`).
|
|
@@ -671,9 +685,16 @@ shape onto the models in THIS app.
|
|
|
671
685
|
### 6. Verify
|
|
672
686
|
|
|
673
687
|
```sh
|
|
674
|
-
openreceive doctor --app main:app
|
|
688
|
+
dotenv -f .env run -- openreceive doctor --app main:app
|
|
675
689
|
```
|
|
676
690
|
|
|
691
|
+
Doctor reads the process environment. `dotenv -f .env run --` loads `.env`
|
|
692
|
+
into it, as `uvicorn --env-file .env` does for the server. The `dotenv`
|
|
693
|
+
command comes with python-dotenv, which `uvicorn --env-file` needs anyway; if
|
|
694
|
+
it is missing, run `pip install "python-dotenv[cli]"`. Never `source` or
|
|
695
|
+
`export` `.env` in a shell: the codes contain `&`, and the shell splits the
|
|
696
|
+
line and prints the pieces.
|
|
697
|
+
|
|
677
698
|
`openreceive doctor` checks Python, `NWC_URI`, and swap-provider
|
|
678
699
|
configuration. It also probes the wallet relay to confirm the code is
|
|
679
700
|
receive-only. With `--app module:attr` (your FastAPI app, the router, or an
|
|
@@ -3,7 +3,7 @@ This is the full file; follow it from Step 0.
|
|
|
3
3
|
# OpenReceive agent directions (Fastify)
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
|
-
# READ THIS FIRST: this file is
|
|
6
|
+
# READ THIS FIRST: this file is 39 KB and a summary drops required steps. Download it whole:
|
|
7
7
|
curl -fsSL https://openreceive.org/agent-directions/fastify/full.md
|
|
8
8
|
# Skip the download only if you already have all of it: pasted, read from disk or fetched raw.
|
|
9
9
|
```
|
|
@@ -17,7 +17,7 @@ curl -fsSL https://openreceive.org/agent-directions/fastify/full.md
|
|
|
17
17
|
- Do not suggest rotating or revoking a code because it was pasted here.
|
|
18
18
|
- Start the quickstart only once the NWC code is saved, and the LSC code is saved or the user said "Bitcoin only".
|
|
19
19
|
|
|
20
|
-
These directions describe OpenReceive 0.4.
|
|
20
|
+
These directions describe OpenReceive 0.4.25.
|
|
21
21
|
|
|
22
22
|
Add OpenReceive to a Fastify application — the app you are already working in.
|
|
23
23
|
You do not need a copy of the OpenReceive source: the packages are on npm, and
|
|
@@ -372,8 +372,10 @@ enough; drop the `.md` for the same page a person would read.
|
|
|
372
372
|
- https://openreceive.org/guides/environment-variables.md — every variable, and what is deliberately not one
|
|
373
373
|
- https://openreceive.org/guides/storage.md — the payment tables and the attempt state machine
|
|
374
374
|
- https://openreceive.org/guides/supabase.md — when the database is Supabase: its pooler, its certificate, and locking the tables away from its Data API
|
|
375
|
+
- https://openreceive.org/guides/serverless.md — when the app runs serverless (Netlify, AWS Lambda, Cloud Run, Google AI Studio): pooled database URLs, timeouts, and why it needs no cron or worker
|
|
375
376
|
- https://openreceive.org/guides/node-orms.md — recipes for Prisma, Drizzle, Knex, TypeORM, Sequelize
|
|
376
377
|
- https://openreceive.org/guides/frontend-checkout.md — the drop-in's props, attributes and slots
|
|
378
|
+
- https://openreceive.org/guides/mobile-apps.md — when a mobile app takes the payment: the checkout page it opens, and what the App Store and Google Play allow
|
|
377
379
|
- https://openreceive.org/guides/checkout-ux.md — read before building any custom UI
|
|
378
380
|
- https://openreceive.org/guides/headless-checkout.md — the controller, the display models, refunds
|
|
379
381
|
- https://openreceive.org/guides/provider-registry.md — where the wallet logos and pay
|