|
|
77e5772afd
|
feat(extensions): add extension loader infrastructure (#3)
Docker Compose Actions Workflow / test (push) Waiting to run
## Summary
- Adds a modular extension system for Lightning.Pub enabling third-party plugins
- Provides isolated SQLite databases per extension for data safety
- Implements ExtensionContext API for accessing Lightning.Pub services (payments, Nostr, storage)
- Supports RPC method registration with automatic namespacing
- Includes HTTP route handling for protocols like LNURL
- Event routing for payment receipts and Nostr events
- Comprehensive documentation with architecture overview and working examples
## Key Components
- `src/extensions/types.ts` - Core extension interfaces
- `src/extensions/loader.ts` - Extension discovery, loading, and lifecycle management
- `src/extensions/context.ts` - Bridge between extensions and Lightning.Pub services
- `src/extensions/database.ts` - SQLite isolation with WAL mode
- `src/extensions/README.md` - Full documentation with examples
## ExtensionContext API
| Method | Description |
|--------|-------------|
| `getApplication()` | Get application info |
| `createInvoice()` | Create Lightning invoice |
| `payInvoice()` | Pay Lightning invoice |
| `getLnurlPayInfo()` | Get LNURL-pay info for a user (enables Lightning Address/zaps) |
| `sendEncryptedDM()` | Send Nostr DM (NIP-44) |
| `publishNostrEvent()` | Publish Nostr event |
| `registerMethod()` | Register RPC method |
| `onPaymentReceived()` | Subscribe to payment callbacks |
| `onNostrEvent()` | Subscribe to Nostr events |
## Test plan
- [x] Review extension loader code for correctness
- [x] Verify TypeScript compilation succeeds
- [x] Test extension discovery from `src/extensions/` directory
- [x] Test RPC method registration and routing
- [x] Test database isolation between extensions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: boufni95 <boufni95@gmail.com>
Co-authored-by: Patrick Mulligan <patjmulligan@protonmail.com>
Reviewed-on: #3
|
2026-04-02 18:47:55 +00:00 |
|
boufni95
|
4374d3f443
|
Merge branch 'master' into swaps-test
|
2025-12-17 18:13:46 +00:00 |
|
shocknet-justin
|
7728073653
|
more bypassing
|
2025-12-12 16:00:52 -05:00 |
|
boufni95
|
fd7a5eb1d6
|
Merge branch 'master' into swaps-test
|
2025-12-04 18:20:57 +00:00 |
|
boufni95
|
0097dcc46c
|
testing swaps
|
2025-11-04 17:52:53 +00:00 |
|
shocknet-justin
|
0133979627
|
terminal QR
|
2025-11-04 00:22:41 -05:00 |
|
boufni95
|
8b0e56f215
|
clink exp and desc
|
2025-09-16 18:16:35 +00:00 |
|
shocknet-justin
|
eb786a5539
|
unused deps
|
2025-09-01 09:58:58 -04:00 |
|
Capitalist Dog
|
aa533692ef
|
arm bufferutil override
|
2025-08-31 22:32:30 -04:00 |
|
shocknet-justin
|
99af2fe7dd
|
clink changes
|
2025-08-26 14:17:36 -04:00 |
|
shocknet-justin
|
b211bdfae0
|
better sqlite binary
|
2025-08-26 12:43:58 -04:00 |
|
shocknet-justin
|
f1c5b79eb1
|
userspace, better-sqlite
|
2025-08-26 12:19:19 -04:00 |
|
Mothana
|
8005b2a3ff
|
rfc 6570 callback templates and callback bearer tokens
|
2025-07-13 21:17:21 +04:00 |
|
boufni95
|
acfe5099e6
|
nmanage in user info
|
2025-07-08 17:26:06 +00:00 |
|
boufni95
|
df088bf0fe
|
manage authorization
|
2025-07-08 15:41:41 +00:00 |
|
boufni95
|
136a9ad231
|
fixies
|
2025-06-30 18:22:57 +00:00 |
|
boufni95
|
668a5bbac5
|
nmanage backend flow
|
2025-06-30 17:47:21 +00:00 |
|
boufni95
|
2845fff366
|
up
|
2025-06-06 15:57:18 +00:00 |
|
boufni95
|
410b431c82
|
fix
|
2025-06-06 15:54:42 +00:00 |
|
boufni95
|
fdf95773ac
|
up
|
2025-06-06 14:23:16 +00:00 |
|
boufni95
|
ff76ef9947
|
events sharding
|
2025-06-04 18:44:23 +00:00 |
|
boufni95
|
99b4c26d5b
|
fix ci tls err
|
2025-05-28 15:12:41 +00:00 |
|
boufni95
|
e3cbae9af9
|
Merge branch 'master' into clink-types
|
2025-05-27 19:47:41 +00:00 |
|
boufni95
|
dc2c19137c
|
clink types
|
2025-05-27 19:27:14 +00:00 |
|
dependabot[bot]
|
4c505a2777
|
Bump websocket and @types/websocket
Bumps [websocket](https://github.com/theturtle32/WebSocket-Node) and [@types/websocket](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/websocket). These dependencies needed to be updated together.
Updates `websocket` from 1.0.34 to 1.0.35
- [Changelog](https://github.com/theturtle32/WebSocket-Node/blob/v1.0.35/CHANGELOG.md)
- [Commits](https://github.com/theturtle32/WebSocket-Node/compare/v1.0.34...v1.0.35)
Updates `@types/websocket` from 1.0.6 to 1.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/websocket)
---
updated-dependencies:
- dependency-name: websocket
dependency-type: direct:production
update-type: version-update:semver-patch
- dependency-name: "@types/websocket"
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2025-05-22 16:54:42 +00:00 |
|
Justin (shocknet)
|
c5f760ea19
|
Merge pull request #779 from shocknet/dependabot/npm_and_yarn/multi-6bc014718a
Bump path-to-regexp and express
|
2025-05-21 14:31:04 -04:00 |
|
dependabot[bot]
|
8d711e0b6d
|
Bump secp256k1 from 4.0.3 to 5.0.1
Bumps [secp256k1](https://github.com/cryptocoinjs/secp256k1-node) from 4.0.3 to 5.0.1.
- [Release notes](https://github.com/cryptocoinjs/secp256k1-node/releases)
- [Commits](https://github.com/cryptocoinjs/secp256k1-node/compare/v4.0.3...v5.0.1)
---
updated-dependencies:
- dependency-name: secp256k1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2025-05-15 15:28:57 +00:00 |
|
dependabot[bot]
|
10de157194
|
Bump path-to-regexp and express
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) to 0.1.12 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.
Updates `path-to-regexp` from 0.1.10 to 0.1.12
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v0.1.10...v0.1.12)
Updates `express` from 4.21.1 to 4.21.2
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.2/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.1...4.21.2)
---
updated-dependencies:
- dependency-name: path-to-regexp
dependency-type: indirect
- dependency-name: express
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2025-05-15 15:28:35 +00:00 |
|
Justin (shocknet)
|
1b487bc8bd
|
Merge pull request #803 from shocknet/dependabot/npm_and_yarn/axios-1.9.0
Bump axios from 1.7.7 to 1.9.0
|
2025-05-15 11:26:59 -04:00 |
|
Justin (shocknet)
|
177b56903f
|
Merge pull request #773 from shocknet/dependabot/npm_and_yarn/secp256k1-4.0.4
Bump secp256k1 from 4.0.3 to 4.0.4
|
2025-05-15 11:25:35 -04:00 |
|
dependabot[bot]
|
7749f7a922
|
Bump axios from 1.7.7 to 1.9.0
Bumps [axios](https://github.com/axios/axios) from 1.7.7 to 1.9.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.7...v1.9.0)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2025-05-12 11:37:53 +00:00 |
|
dependabot[bot]
|
4c0a285964
|
Bump @types/jsonwebtoken from 9.0.6 to 9.0.9
Bumps [@types/jsonwebtoken](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsonwebtoken) from 9.0.6 to 9.0.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsonwebtoken)
---
updated-dependencies:
- dependency-name: "@types/jsonwebtoken"
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2025-04-16 20:06:46 +00:00 |
|
boufni95
|
67c1260748
|
reset metrics b4 stress test and export after
|
2025-04-10 16:47:26 +00:00 |
|
boufni95
|
001c289d24
|
wrtc dep
|
2025-01-27 21:53:04 +00:00 |
|
boufni95
|
1f5c3041bd
|
custom ofers
|
2024-12-04 20:27:06 +00:00 |
|
dependabot[bot]
|
ba3ec6f509
|
Bump secp256k1 from 4.0.3 to 4.0.4
Bumps [secp256k1](https://github.com/cryptocoinjs/secp256k1-node) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/cryptocoinjs/secp256k1-node/releases)
- [Commits](https://github.com/cryptocoinjs/secp256k1-node/compare/v4.0.3...v4.0.4)
---
updated-dependencies:
- dependency-name: secp256k1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2024-10-22 15:02:50 +00:00 |
|
dependabot[bot]
|
7fed604be2
|
Bump send and express
Bumps [send](https://github.com/pillarjs/send) to 0.19.0 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.
Updates `send` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/pillarjs/send/releases)
- [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md)
- [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0)
Updates `express` from 4.20.0 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.20.0...4.21.1)
---
updated-dependencies:
- dependency-name: send
dependency-type: indirect
- dependency-name: express
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2024-10-16 16:18:47 +00:00 |
|
boufni95
|
c909ad3172
|
zaps in nip69
|
2024-10-07 17:09:47 +00:00 |
|
boufni95
|
45f4f01bce
|
Merge branch 'master' into debits
|
2024-10-06 18:34:01 +00:00 |
|
boufni95
|
0dd79eecf6
|
full access, freq+bol11
|
2024-10-04 16:47:01 +00:00 |
|
boufni95
|
1049586646
|
response to service
|
2024-10-03 16:56:54 +00:00 |
|
Mothana
|
26be30cbed
|
ndebitEncode pointer instead of pointerId
|
2024-09-30 20:20:16 +04:00 |
|
boufni95
|
e1c950b683
|
up
|
2024-09-26 20:15:35 +00:00 |
|
boufni95
|
f702d2be8d
|
tools update
|
2024-09-26 18:03:29 +00:00 |
|
boufni95
|
5474e5217d
|
ban and reset
|
2024-09-20 17:26:28 +00:00 |
|
dependabot[bot]
|
ec24841f4a
|
Bump @types/eccrypto from 1.1.3 to 1.1.6
Bumps [@types/eccrypto](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/eccrypto) from 1.1.3 to 1.1.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/eccrypto)
---
updated-dependencies:
- dependency-name: "@types/eccrypto"
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2024-09-16 11:19:05 +00:00 |
|
dependabot[bot]
|
53d1f5997d
|
Bump path-to-regexp and express
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) to 0.1.10 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.
Updates `path-to-regexp` from 0.1.7 to 0.1.10
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v0.1.7...v0.1.10)
Updates `express` from 4.19.2 to 4.20.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0)
---
updated-dependencies:
- dependency-name: path-to-regexp
dependency-type: indirect
- dependency-name: express
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2024-09-10 19:43:47 +00:00 |
|
Justin (shocknet)
|
3fbfd36ef2
|
Merge pull request #739 from shocknet/dependabot/npm_and_yarn/typescript-5.5.4
Bump typescript from 4.5.2 to 5.5.4
|
2024-09-09 12:23:12 -04:00 |
|
Justin (shocknet)
|
829bb8a305
|
Merge pull request #738 from shocknet/dependabot/npm_and_yarn/axios-1.7.7
Bump axios from 0.28.0 to 1.7.7
|
2024-09-09 11:53:29 -04:00 |
|
Justin (shocknet)
|
b83451d715
|
Merge pull request #736 from shocknet/dependabot/npm_and_yarn/grpc/grpc-js-1.11.2
Bump @grpc/grpc-js from 1.11.1 to 1.11.2
|
2024-09-09 11:51:44 -04:00 |
|