@1sat/wallet-server 0.0.31 → 0.0.33
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.
- package/dist/createHostServer.d.ts +8 -0
- package/dist/createHostServer.d.ts.map +1 -1
- package/dist/createHostServer.js +23 -4
- package/dist/createHostServer.js.map +1 -1
- package/dist/createWalletServer.d.ts +8 -0
- package/dist/createWalletServer.d.ts.map +1 -1
- package/dist/createWalletServer.js +3 -2
- package/dist/createWalletServer.js.map +1 -1
- package/dist/hosting/client.d.ts +2 -0
- package/dist/hosting/client.d.ts.map +1 -1
- package/dist/hosting/client.js.map +1 -1
- package/dist/hosting/routes.d.ts +2 -0
- package/dist/hosting/routes.d.ts.map +1 -1
- package/dist/hosting/routes.js +1 -0
- package/dist/hosting/routes.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/openapi/fragments.d.ts +20 -0
- package/dist/openapi/fragments.d.ts.map +1 -0
- package/dist/openapi/fragments.js +399 -0
- package/dist/openapi/fragments.js.map +1 -0
- package/dist/openapi/index.d.ts +25 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +82 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/sessions/redisSessionManager.d.ts +70 -0
- package/dist/sessions/redisSessionManager.d.ts.map +1 -0
- package/dist/sessions/redisSessionManager.js +118 -0
- package/dist/sessions/redisSessionManager.js.map +1 -0
- package/package.json +3 -2
|
@@ -32,6 +32,14 @@ export interface HostServerConfig {
|
|
|
32
32
|
};
|
|
33
33
|
paymail?: PaymailDeps;
|
|
34
34
|
messagebox?: HostServerMessageboxConfig;
|
|
35
|
+
/**
|
|
36
|
+
* Redis-shared BRC-104 sessions for multi-instance deployments behind a
|
|
37
|
+
* load balancer. Unset = in-memory sessions (single instance).
|
|
38
|
+
*/
|
|
39
|
+
sessionStore?: {
|
|
40
|
+
redisUrl: string;
|
|
41
|
+
ttlSeconds?: number;
|
|
42
|
+
};
|
|
35
43
|
bodyLimit?: string;
|
|
36
44
|
}
|
|
37
45
|
export interface HostServerHandle {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHostServer.d.ts","sourceRoot":"","sources":["../src/createHostServer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"createHostServer.d.ts","sourceRoot":"","sources":["../src/createHostServer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EACN,KAAK,iBAAiB,EAKtB,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAgB,EAAE,KAAK,OAAO,EAAU,MAAM,SAAS,CAAA;AAMvD,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAIvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACN,KAAK,qBAAqB,EAE1B,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,WAAW,0BAA0B;IAC1C,uCAAuC;IACvC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC/B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;IACtC,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;IAC/B,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,qBAAqB,CAAA;KAAE,CAAA;IAC9C,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,UAAU,CAAC,EAAE,0BAA0B,CAAA;IACvC;;;OAGG;IACH,YAAY,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACrB;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAkL3B"}
|
package/dist/createHostServer.js
CHANGED
|
@@ -8,14 +8,15 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { createServer } from 'node:http';
|
|
10
10
|
import { attachMessageBoxWebSockets, createMessageBoxContext, registerMessageBoxPostAuthRoutes, registerMessageBoxPreAuthRoutes, } from '@bopen-io/messagebox-server';
|
|
11
|
-
import { createAuthMiddleware } from '@bsv/auth-express-middleware';
|
|
12
11
|
import { createLogger } from 'evlog';
|
|
13
12
|
import { evlog } from 'evlog/express';
|
|
14
13
|
import express, { Router } from 'express';
|
|
15
14
|
import { accountsCapacityGate, mountPaymentRoute, } from './accounts';
|
|
16
15
|
import { corsMiddleware, dispatchHandler, mountStatusRoute, } from './createWalletServer';
|
|
17
|
-
import { mountHostingRoutes } from './hosting/routes';
|
|
16
|
+
import { mountHostingRoutes, } from './hosting/routes';
|
|
17
|
+
import { mountOpenApiRoutes } from './openapi';
|
|
18
18
|
import { checkHostingEntitlement } from './paymail/entitlement';
|
|
19
|
+
import { buildAuthMiddleware } from './sessions/redisSessionManager';
|
|
19
20
|
import { mountPaymailRoutes } from './paymail/routes';
|
|
20
21
|
export async function createHostServer(config) {
|
|
21
22
|
const app = express();
|
|
@@ -25,8 +26,9 @@ export async function createHostServer(config) {
|
|
|
25
26
|
const { wallet } = config;
|
|
26
27
|
// One authMiddleware instance for every authed surface (storage, account,
|
|
27
28
|
// hosting, messagebox), so a single /.well-known/auth handshake authenticates
|
|
28
|
-
// a client everywhere.
|
|
29
|
-
|
|
29
|
+
// a client everywhere. With a session store, sessions are mirrored to
|
|
30
|
+
// Redis and hydrated on demand so any instance can validate any session.
|
|
31
|
+
const authMiddleware = buildAuthMiddleware(wallet, config.sessionStore);
|
|
30
32
|
// --- public surface -------------------------------------------------------
|
|
31
33
|
if (config.paymail) {
|
|
32
34
|
await mountPaymailRoutes(app, config.paymail);
|
|
@@ -38,10 +40,23 @@ export async function createHostServer(config) {
|
|
|
38
40
|
return res.status(404).json({ error: 'hosting disabled' });
|
|
39
41
|
return res.json({
|
|
40
42
|
priceSats: cfg.priceSats,
|
|
43
|
+
...(cfg.priceUsd !== undefined && { priceUsd: cfg.priceUsd }),
|
|
41
44
|
periodSeconds: cfg.periodSeconds,
|
|
42
45
|
});
|
|
43
46
|
});
|
|
44
47
|
}
|
|
48
|
+
mountOpenApiRoutes(app, {
|
|
49
|
+
serverIdentityKey: config.serverIdentityKey,
|
|
50
|
+
surfaces: {
|
|
51
|
+
storage: true,
|
|
52
|
+
accounts: config.accounts != null,
|
|
53
|
+
hosting: config.hosting
|
|
54
|
+
? () => config.hosting.getConfig().enabled
|
|
55
|
+
: undefined,
|
|
56
|
+
paymail: config.paymail != null,
|
|
57
|
+
messagebox: config.messagebox != null,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
45
60
|
// --- auth surface ----------------------------------------------------------
|
|
46
61
|
const accountsDeps = config.accounts
|
|
47
62
|
? {
|
|
@@ -126,6 +141,10 @@ export async function createHostServer(config) {
|
|
|
126
141
|
// second handshake.
|
|
127
142
|
mbRouter.use(authMiddleware);
|
|
128
143
|
registerMessageBoxPostAuthRoutes(mbRouter, ctx);
|
|
144
|
+
// Canonical mount. The root mount is a deprecated alias kept for
|
|
145
|
+
// clients that predate the /messagebox prefix (yours-wallet); remove it
|
|
146
|
+
// once they've migrated.
|
|
147
|
+
app.use('/messagebox', mbRouter);
|
|
129
148
|
app.use(mbRouter);
|
|
130
149
|
const server = createServer(app);
|
|
131
150
|
const io = attachMessageBoxWebSockets(server, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHostServer.js","sourceRoot":"","sources":["../src/createHostServer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"createHostServer.js","sourceRoot":"","sources":["../src/createHostServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,14 @@ export interface WalletServerConfig {
|
|
|
36
36
|
hosting?: {
|
|
37
37
|
getConfig: HostingConfigProvider;
|
|
38
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* Redis-shared BRC-104 sessions for multi-instance deployments behind a
|
|
41
|
+
* load balancer. Unset = in-memory sessions (single instance).
|
|
42
|
+
*/
|
|
43
|
+
sessionStore?: {
|
|
44
|
+
redisUrl: string;
|
|
45
|
+
ttlSeconds?: number;
|
|
46
|
+
};
|
|
39
47
|
}
|
|
40
48
|
export interface WalletServerHandle {
|
|
41
49
|
app: Express;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWalletServer.d.ts","sourceRoot":"","sources":["../src/createWalletServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createWalletServer.d.ts","sourceRoot":"","sources":["../src/createWalletServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,OAAO,EAAE,EACf,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,OAAO,IAAI,cAAc,EAC9B,KAAK,QAAQ,IAAI,eAAe,EAChC,MAAM,SAAS,CAAA;AAQhB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAI9D,OAAO,KAAK,EACX,gBAAgB,EAEhB,qBAAqB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,EACN,KAAK,qBAAqB,EAE1B,MAAM,kBAAkB,CAAA;AAGzB,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,sBAAsB,CAAA;IACjC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IAClC;;;;;;OAMG;IACH,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,qBAAqB,CAAA;IAC9B;kCAC8B;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,oBAAoB,CAAA;IAC/B,4DAA4D;IAC5D,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,qBAAqB,CAAA;KAAE,CAAA;IAC9C;;;OAGG;IACH,YAAY,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACxD;AAED,MAAM,WAAW,kBAAkB;IAClC,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACrB;AAED,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,kBAAkB,GACxB,kBAAkB,CAsIpB;AA8BD,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,IAC3C,KAAK,oBAAoB,EAAE,KAAK,eAAe,qEAsD7D;AAED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,eAAe,GAC3B,IAAI,CA8EN;AAmCD,UAAU,oBAAqB,SAAQ,cAAc;IACpD,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9B;AAED,wBAAgB,cAAc,CAC7B,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,YAAY,GAChB,IAAI,CAUN"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { createAuthMiddleware } from '@bsv/auth-express-middleware';
|
|
2
1
|
import { createLogger } from 'evlog';
|
|
3
2
|
import { evlog, useLogger } from 'evlog/express';
|
|
4
3
|
import express from 'express';
|
|
@@ -7,6 +6,7 @@ import { createWalletRpcHandler } from './createWalletRpcHandler';
|
|
|
7
6
|
import { dispatch } from './dispatch';
|
|
8
7
|
import { bearerResolver } from './resolvers/bearer';
|
|
9
8
|
import { mountHostingRoutes, } from './hosting/routes';
|
|
9
|
+
import { buildAuthMiddleware } from './sessions/redisSessionManager';
|
|
10
10
|
export function createWalletServer(config) {
|
|
11
11
|
const publicPath = config.publicPath === undefined ? '/' : config.publicPath;
|
|
12
12
|
const internalPath = config.internalPath === undefined ? '/internal' : config.internalPath;
|
|
@@ -31,7 +31,7 @@ export function createWalletServer(config) {
|
|
|
31
31
|
}
|
|
32
32
|
: undefined;
|
|
33
33
|
if (publicPath) {
|
|
34
|
-
const authMiddleware =
|
|
34
|
+
const authMiddleware = buildAuthMiddleware(wallet, config.sessionStore);
|
|
35
35
|
// Public hosting price before blanket auth on publicPath.
|
|
36
36
|
if (config.hosting) {
|
|
37
37
|
const root = publicPath === '/' ? '' : publicPath.replace(/\/$/, '');
|
|
@@ -42,6 +42,7 @@ export function createWalletServer(config) {
|
|
|
42
42
|
}
|
|
43
43
|
return res.json({
|
|
44
44
|
priceSats: cfg.priceSats,
|
|
45
|
+
...(cfg.priceUsd !== undefined && { priceUsd: cfg.priceUsd }),
|
|
45
46
|
periodSeconds: cfg.periodSeconds,
|
|
46
47
|
});
|
|
47
48
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWalletServer.js","sourceRoot":"","sources":["../src/createWalletServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createWalletServer.js","sourceRoot":"","sources":["../src/createWalletServer.ts"],"names":[],"mappings":"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"}
|
package/dist/hosting/client.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type { WalletInterface } from '@bsv/sdk';
|
|
5
5
|
export interface HostingPrice {
|
|
6
6
|
priceSats: number;
|
|
7
|
+
priceUsd?: number;
|
|
7
8
|
periodSeconds: number;
|
|
8
9
|
}
|
|
9
10
|
export interface HostingStatus {
|
|
@@ -12,6 +13,7 @@ export interface HostingStatus {
|
|
|
12
13
|
active: boolean;
|
|
13
14
|
expiresAt?: number;
|
|
14
15
|
priceSats?: number;
|
|
16
|
+
priceUsd?: number;
|
|
15
17
|
periodSeconds?: number;
|
|
16
18
|
}
|
|
17
19
|
export interface HostingSubscribeResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/hosting/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,aAAa;IAExB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;gBADP,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,eAAe,YAAA;IAK3B,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAMjC,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAQnC,SAAS,IAAI,OAAO,CAAC,sBAAsB,CAAC;CAelD"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/hosting/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,aAAa;IAExB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;gBADP,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,eAAe,YAAA;IAK3B,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAMjC,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAQnC,SAAS,IAAI,OAAO,CAAC,sBAAsB,CAAC;CAelD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/hosting/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/hosting/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAyBpC,MAAM,OAAO,aAAa;IAEhB;IACA;IAFT,YACS,OAAe,EACf,MAAwB;QADxB,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAkB;QAEhC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAA;QACxD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,CAAC,IAAI,EAA2B,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS;QACd,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/D,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAA;QAC9D,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5D,OAAO,GAAG,CAAC,IAAI,EAA4B,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS;QACd,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClE,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,0DAA0D;QAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI;SACV,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAqC,CAAA;IACrD,CAAC;CACD"}
|
package/dist/hosting/routes.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ import type { Express, NextFunction, Request, Response } from 'express';
|
|
|
14
14
|
export interface HostingConfig {
|
|
15
15
|
enabled: boolean;
|
|
16
16
|
priceSats: number;
|
|
17
|
+
/** Operator's USD target price, surfaced verbatim on the pricing API. */
|
|
18
|
+
priceUsd?: number;
|
|
17
19
|
periodSeconds: number;
|
|
18
20
|
}
|
|
19
21
|
export type HostingConfigProvider = () => HostingConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/hosting/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAQN,KAAK,eAAe,EAGpB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGvE,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,aAAa,CAAA;AAIvD,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IACL,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,qBAAqB,CAAA;IAChC,cAAc,EAAE,CACf,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,KACd,OAAO,CAAA;CACZ,GACC,IAAI,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/hosting/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAQN,KAAK,eAAe,EAGpB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGvE,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,aAAa,CAAA;AAIvD,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IACL,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,qBAAqB,CAAA;IAChC,cAAc,EAAE,CACf,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,KACd,OAAO,CAAA;CACZ,GACC,IAAI,CA+EN"}
|
package/dist/hosting/routes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/hosting/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACN,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,IAAI,EACJ,KAAK,EACL,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,KAAK,GAIL,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/hosting/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,4 +23,8 @@ export { checkHostingEntitlement } from './paymail/entitlement';
|
|
|
23
23
|
export type { PaymailDeps, PendingPayment, PendingStore, ResolvedBind, } from './paymail/types';
|
|
24
24
|
export { mountHostingRoutes, type HostingConfig, type HostingConfigProvider, } from './hosting/routes';
|
|
25
25
|
export { HostingClient, type HostingPrice, type HostingStatus, type HostingSubscribeResult, } from './hosting/client';
|
|
26
|
+
export { buildOpenApiSpec, mountOpenApiRoutes } from './openapi';
|
|
27
|
+
export type { OpenApiOptions, OpenApiSurfaces } from './openapi';
|
|
28
|
+
export { RedisSessionManager, buildAuthMiddleware, createSessionRedis, wrapAuthWithSessionHydration, } from './sessions/redisSessionManager';
|
|
29
|
+
export type { RedisSessionManagerOptions, SessionRedis, SessionStoreConfig, } from './sessions/redisSessionManager';
|
|
26
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EACX,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,YAAY,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC3B,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EACX,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,YAAY,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC3B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC5B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,GAClB,MAAM,gCAAgC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -13,4 +13,6 @@ export { KnexPendingStore, DEFAULT_TTL_MS } from './paymail/pending';
|
|
|
13
13
|
export { checkHostingEntitlement } from './paymail/entitlement';
|
|
14
14
|
export { mountHostingRoutes, } from './hosting/routes';
|
|
15
15
|
export { HostingClient, } from './hosting/client';
|
|
16
|
+
export { buildOpenApiSpec, mountOpenApiRoutes } from './openapi';
|
|
17
|
+
export { RedisSessionManager, buildAuthMiddleware, createSessionRedis, wrapAuthWithSessionHydration, } from './sessions/redisSessionManager';
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAM3D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGzE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAiB1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAO/D,OAAO,EACN,kBAAkB,GAGlB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,GAIb,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAM3D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGzE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAiB1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAO/D,OAAO,EACN,kBAAkB,GAGlB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,GAIb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC5B,MAAM,gCAAgC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-surface OpenAPI path fragments. Each surface contributes its canonical
|
|
3
|
+
* paths only — legacy root-mounted messagebox aliases are intentionally
|
|
4
|
+
* undocumented. The assembler merges fragments for enabled surfaces.
|
|
5
|
+
*/
|
|
6
|
+
export type PathsFragment = Record<string, Record<string, unknown>>;
|
|
7
|
+
export interface TagDoc {
|
|
8
|
+
name: string;
|
|
9
|
+
'x-displayName': string;
|
|
10
|
+
description: string;
|
|
11
|
+
}
|
|
12
|
+
/** Tag metadata rendered as section headings + intros on the docs page. */
|
|
13
|
+
export declare const TAG_DOCS: TagDoc[];
|
|
14
|
+
export declare function authPaths(): PathsFragment;
|
|
15
|
+
export declare function storagePaths(): PathsFragment;
|
|
16
|
+
export declare function accountPaths(): PathsFragment;
|
|
17
|
+
export declare function hostingPaths(): PathsFragment;
|
|
18
|
+
export declare function messageboxPaths(): PathsFragment;
|
|
19
|
+
export declare function paymailPaths(): PathsFragment;
|
|
20
|
+
//# sourceMappingURL=fragments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../src/openapi/fragments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEnE,MAAM,WAAW,MAAM;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,EAAE,MAAM,EAqC5B,CAAA;AA6BD,wBAAgB,SAAS,IAAI,aAAa,CAczC;AAED,wBAAgB,YAAY,IAAI,aAAa,CAkC5C;AAED,wBAAgB,YAAY,IAAI,aAAa,CAiE5C;AAED,wBAAgB,YAAY,IAAI,aAAa,CAwF5C;AAED,wBAAgB,eAAe,IAAI,aAAa,CA6H/C;AAED,wBAAgB,YAAY,IAAI,aAAa,CAc5C"}
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-surface OpenAPI path fragments. Each surface contributes its canonical
|
|
3
|
+
* paths only — legacy root-mounted messagebox aliases are intentionally
|
|
4
|
+
* undocumented. The assembler merges fragments for enabled surfaces.
|
|
5
|
+
*/
|
|
6
|
+
/** Tag metadata rendered as section headings + intros on the docs page. */
|
|
7
|
+
export const TAG_DOCS = [
|
|
8
|
+
{
|
|
9
|
+
name: 'auth',
|
|
10
|
+
'x-displayName': 'Authentication',
|
|
11
|
+
description: 'BRC-103/104 mutual authentication. Complete one handshake here and the resulting peer session authenticates you on every authed endpoint below — storage, account, hosting, and messagebox.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'storage',
|
|
15
|
+
'x-displayName': 'Wallet storage',
|
|
16
|
+
description: 'Remote storage for BRC-100 wallets. A wallet-toolbox client connects here to persist and sync its outputs, actions, and certificates.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'account',
|
|
20
|
+
'x-displayName': 'Storage account (billing)',
|
|
21
|
+
description: 'Metered billing for the wallet storage surface above: every identity gets a free byte baseline, and additional capacity is purchased in fixed-size chunks for a block-window term. Unrelated to paymail/messagebox hosting, which has its own flat-rate subscription below.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'hosting',
|
|
25
|
+
'x-displayName': 'Paymail + messagebox hosting',
|
|
26
|
+
description: 'Flat-rate subscription that covers both paymail hosting and messagebox delivery for an identity. While the subscription is active, this server answers paymail lookups for your alias and stores inbound messages for you. Billed separately from the storage account above.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'paymail',
|
|
30
|
+
'x-displayName': 'Paymail (bsvalias)',
|
|
31
|
+
description: 'Public bsvalias surface for receiving payments at alias@domain. Endpoints beyond capability discovery are resolved from the capability document. When hosting is enabled, aliases resolve only for identities with an active hosting subscription.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'messagebox',
|
|
35
|
+
'x-displayName': 'Messagebox',
|
|
36
|
+
description: 'Store-and-forward message delivery between identity keys, with live WebSocket delivery to connected recipients. When hosting is enabled, recipients must hold an active hosting subscription.',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
const brc104 = [{ brc104: [] }];
|
|
40
|
+
const errorSchema = {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
status: { type: 'string', example: 'error' },
|
|
44
|
+
code: { type: 'string' },
|
|
45
|
+
description: { type: 'string' },
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
const paymentRequiredResponse = {
|
|
49
|
+
description: 'Payment required (BRC-41). Retry the request with an `x-bsv-payment` header containing `{derivationPrefix, derivationSuffix, transaction}` where `transaction` is a base64 AtomicBEEF paying the server.',
|
|
50
|
+
headers: {
|
|
51
|
+
'x-bsv-payment-satoshis-required': {
|
|
52
|
+
schema: { type: 'string' },
|
|
53
|
+
description: 'Sats owed for this request.',
|
|
54
|
+
},
|
|
55
|
+
'x-bsv-payment-derivation-prefix': {
|
|
56
|
+
schema: { type: 'string' },
|
|
57
|
+
description: 'Server nonce to use as the BRC-29 derivation prefix.',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
content: { 'application/json': { schema: errorSchema } },
|
|
61
|
+
};
|
|
62
|
+
export function authPaths() {
|
|
63
|
+
return {
|
|
64
|
+
'/.well-known/auth': {
|
|
65
|
+
post: {
|
|
66
|
+
tags: ['auth'],
|
|
67
|
+
summary: 'BRC-104 mutual-auth handshake',
|
|
68
|
+
description: 'Establishes a mutually authenticated peer session (BRC-103/104). One handshake authenticates the client for every authed surface on this server.',
|
|
69
|
+
responses: {
|
|
70
|
+
'200': { description: 'Handshake message accepted.' },
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export function storagePaths() {
|
|
77
|
+
return {
|
|
78
|
+
'/': {
|
|
79
|
+
post: {
|
|
80
|
+
tags: ['storage'],
|
|
81
|
+
summary: 'Wallet storage JSON-RPC',
|
|
82
|
+
description: 'JSON-RPC 2.0 endpoint exposing wallet-toolbox storage methods (`createAction`, `listOutputs`, `findOrInsertUser`, …) to remote BRC-100 wallets. When account metering is enabled, requests from over-capacity accounts fail with JSON-RPC error `-32005` (insufficient capacity).',
|
|
83
|
+
security: brc104,
|
|
84
|
+
requestBody: {
|
|
85
|
+
required: true,
|
|
86
|
+
content: {
|
|
87
|
+
'application/json': {
|
|
88
|
+
schema: {
|
|
89
|
+
type: 'object',
|
|
90
|
+
required: ['jsonrpc', 'id', 'method'],
|
|
91
|
+
properties: {
|
|
92
|
+
jsonrpc: { type: 'string', example: '2.0' },
|
|
93
|
+
id: { type: 'integer' },
|
|
94
|
+
method: { type: 'string' },
|
|
95
|
+
params: { type: 'array', items: {} },
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
responses: {
|
|
102
|
+
'200': {
|
|
103
|
+
description: 'JSON-RPC response (result or error object).',
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export function accountPaths() {
|
|
111
|
+
const status = {
|
|
112
|
+
type: 'object',
|
|
113
|
+
properties: {
|
|
114
|
+
identityKey: { type: 'string' },
|
|
115
|
+
serverIdentityKey: { type: 'string' },
|
|
116
|
+
accountsEnabled: { type: 'boolean' },
|
|
117
|
+
currentBlock: { type: 'integer' },
|
|
118
|
+
usedBytes: { type: 'integer' },
|
|
119
|
+
baselineBytes: { type: 'integer' },
|
|
120
|
+
paidBytes: { type: 'integer' },
|
|
121
|
+
capacityBytes: { type: 'integer' },
|
|
122
|
+
deficitBytes: { type: 'integer' },
|
|
123
|
+
paidThroughBlock: { type: 'integer', nullable: true },
|
|
124
|
+
pricing: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
properties: {
|
|
127
|
+
purchaseUnitBytes: { type: 'integer' },
|
|
128
|
+
satsPerUnit: { type: 'integer' },
|
|
129
|
+
durationBlocks: { type: 'integer' },
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
nextPayment: {
|
|
133
|
+
type: 'object',
|
|
134
|
+
properties: {
|
|
135
|
+
derivationPrefix: { type: 'string' },
|
|
136
|
+
derivationSuffix: { type: 'string' },
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
'/account/status': {
|
|
143
|
+
get: {
|
|
144
|
+
tags: ['account'],
|
|
145
|
+
summary: 'Storage account status and pricing',
|
|
146
|
+
description: 'Capacity, usage, and pricing for the authenticated identity. Capacity/pricing fields are present only when `accountsEnabled` is true.',
|
|
147
|
+
security: brc104,
|
|
148
|
+
responses: {
|
|
149
|
+
'200': {
|
|
150
|
+
description: 'Account status.',
|
|
151
|
+
content: { 'application/json': { schema: status } },
|
|
152
|
+
},
|
|
153
|
+
'401': { description: 'Unauthenticated.' },
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
'/account/payment': {
|
|
158
|
+
post: {
|
|
159
|
+
tags: ['account'],
|
|
160
|
+
summary: 'Purchase storage capacity',
|
|
161
|
+
description: 'BRC-41 payment endpoint. Call without payment to receive a 402 quote for the sats owed (full price for needed capacity minus prorated credit for the active payment), then retry with the `x-bsv-payment` header.',
|
|
162
|
+
security: brc104,
|
|
163
|
+
responses: {
|
|
164
|
+
'200': {
|
|
165
|
+
description: 'Payment accepted; returns updated account status.',
|
|
166
|
+
content: { 'application/json': { schema: status } },
|
|
167
|
+
},
|
|
168
|
+
'402': paymentRequiredResponse,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
export function hostingPaths() {
|
|
175
|
+
const statusSchema = {
|
|
176
|
+
type: 'object',
|
|
177
|
+
properties: {
|
|
178
|
+
enabled: { type: 'boolean' },
|
|
179
|
+
identityKey: { type: 'string' },
|
|
180
|
+
active: { type: 'boolean' },
|
|
181
|
+
expiresAt: {
|
|
182
|
+
type: 'integer',
|
|
183
|
+
description: 'Unix seconds when the subscription expires.',
|
|
184
|
+
},
|
|
185
|
+
priceSats: { type: 'integer' },
|
|
186
|
+
priceUsd: { type: 'number' },
|
|
187
|
+
periodSeconds: { type: 'integer' },
|
|
188
|
+
},
|
|
189
|
+
};
|
|
190
|
+
return {
|
|
191
|
+
'/hosting/price': {
|
|
192
|
+
get: {
|
|
193
|
+
tags: ['hosting'],
|
|
194
|
+
summary: 'Hosting subscription price',
|
|
195
|
+
description: 'Public. Current price of a paymail + messagebox hosting subscription. `priceUsd` is the configured USD target price and is present only when the operator sets one.',
|
|
196
|
+
responses: {
|
|
197
|
+
'200': {
|
|
198
|
+
description: 'Current price.',
|
|
199
|
+
content: {
|
|
200
|
+
'application/json': {
|
|
201
|
+
schema: {
|
|
202
|
+
type: 'object',
|
|
203
|
+
required: ['priceSats', 'periodSeconds'],
|
|
204
|
+
properties: {
|
|
205
|
+
priceSats: { type: 'integer' },
|
|
206
|
+
priceUsd: { type: 'number' },
|
|
207
|
+
periodSeconds: { type: 'integer' },
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
'404': { description: 'Hosting disabled on this server.' },
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
'/hosting/status': {
|
|
218
|
+
get: {
|
|
219
|
+
tags: ['hosting'],
|
|
220
|
+
summary: 'Hosting subscription status',
|
|
221
|
+
security: brc104,
|
|
222
|
+
responses: {
|
|
223
|
+
'200': {
|
|
224
|
+
description: 'Subscription status for the authenticated identity.',
|
|
225
|
+
content: { 'application/json': { schema: statusSchema } },
|
|
226
|
+
},
|
|
227
|
+
'401': { description: 'Unauthenticated.' },
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
'/hosting/subscribe': {
|
|
232
|
+
post: {
|
|
233
|
+
tags: ['hosting'],
|
|
234
|
+
summary: 'Buy or renew a hosting subscription',
|
|
235
|
+
description: 'BRC-41 payment endpoint (402 flow, price from `/hosting/price`). On success the server mints a receipt extending the subscription by one period from the later of now or the current expiry.',
|
|
236
|
+
security: brc104,
|
|
237
|
+
responses: {
|
|
238
|
+
'200': {
|
|
239
|
+
description: 'Subscription active.',
|
|
240
|
+
content: {
|
|
241
|
+
'application/json': {
|
|
242
|
+
schema: {
|
|
243
|
+
type: 'object',
|
|
244
|
+
properties: {
|
|
245
|
+
status: { type: 'string', example: 'ok' },
|
|
246
|
+
identityKey: { type: 'string' },
|
|
247
|
+
expiresAt: { type: 'integer' },
|
|
248
|
+
txid: { type: 'string' },
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
'402': paymentRequiredResponse,
|
|
255
|
+
'404': { description: 'Hosting disabled on this server.' },
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
export function messageboxPaths() {
|
|
262
|
+
return {
|
|
263
|
+
'/messagebox/sendMessage': {
|
|
264
|
+
post: {
|
|
265
|
+
tags: ['messagebox'],
|
|
266
|
+
summary: 'Send a message to a recipient inbox',
|
|
267
|
+
description: 'Stores a message for the recipient and delivers it live over WebSocket when connected. When hosting is enabled, every recipient must hold an active hosting subscription (403 `ERR_HOSTING_REQUIRED` otherwise).',
|
|
268
|
+
security: brc104,
|
|
269
|
+
requestBody: {
|
|
270
|
+
required: true,
|
|
271
|
+
content: {
|
|
272
|
+
'application/json': {
|
|
273
|
+
schema: {
|
|
274
|
+
type: 'object',
|
|
275
|
+
required: ['message'],
|
|
276
|
+
properties: {
|
|
277
|
+
message: {
|
|
278
|
+
type: 'object',
|
|
279
|
+
required: ['recipient', 'messageBox', 'messageId', 'body'],
|
|
280
|
+
properties: {
|
|
281
|
+
recipient: {
|
|
282
|
+
type: 'string',
|
|
283
|
+
description: 'Recipient identity key (hex).',
|
|
284
|
+
},
|
|
285
|
+
messageBox: {
|
|
286
|
+
type: 'string',
|
|
287
|
+
description: 'Inbox name, e.g. `payment_inbox`.',
|
|
288
|
+
},
|
|
289
|
+
messageId: { type: 'string' },
|
|
290
|
+
body: {
|
|
291
|
+
description: 'Message payload (string or object).',
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
responses: {
|
|
301
|
+
'200': { description: 'Message stored.' },
|
|
302
|
+
'403': {
|
|
303
|
+
description: 'Recipient has no active hosting subscription (`ERR_HOSTING_REQUIRED`).',
|
|
304
|
+
content: { 'application/json': { schema: errorSchema } },
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
'/messagebox/listMessages': {
|
|
310
|
+
post: {
|
|
311
|
+
tags: ['messagebox'],
|
|
312
|
+
summary: 'List messages in one of your inboxes',
|
|
313
|
+
security: brc104,
|
|
314
|
+
requestBody: {
|
|
315
|
+
required: true,
|
|
316
|
+
content: {
|
|
317
|
+
'application/json': {
|
|
318
|
+
schema: {
|
|
319
|
+
type: 'object',
|
|
320
|
+
required: ['messageBox'],
|
|
321
|
+
properties: { messageBox: { type: 'string' } },
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
responses: { '200': { description: 'Messages in the box.' } },
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
'/messagebox/acknowledgeMessage': {
|
|
330
|
+
post: {
|
|
331
|
+
tags: ['messagebox'],
|
|
332
|
+
summary: 'Acknowledge (delete) received messages',
|
|
333
|
+
security: brc104,
|
|
334
|
+
requestBody: {
|
|
335
|
+
required: true,
|
|
336
|
+
content: {
|
|
337
|
+
'application/json': {
|
|
338
|
+
schema: {
|
|
339
|
+
type: 'object',
|
|
340
|
+
required: ['messageIds'],
|
|
341
|
+
properties: {
|
|
342
|
+
messageIds: { type: 'array', items: { type: 'string' } },
|
|
343
|
+
},
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
},
|
|
347
|
+
},
|
|
348
|
+
responses: { '200': { description: 'Messages acknowledged.' } },
|
|
349
|
+
},
|
|
350
|
+
},
|
|
351
|
+
'/messagebox/registerDevice': {
|
|
352
|
+
post: {
|
|
353
|
+
tags: ['messagebox'],
|
|
354
|
+
summary: 'Register a device for push notifications',
|
|
355
|
+
security: brc104,
|
|
356
|
+
requestBody: {
|
|
357
|
+
required: true,
|
|
358
|
+
content: {
|
|
359
|
+
'application/json': {
|
|
360
|
+
schema: {
|
|
361
|
+
type: 'object',
|
|
362
|
+
required: ['fcmToken'],
|
|
363
|
+
properties: {
|
|
364
|
+
fcmToken: { type: 'string' },
|
|
365
|
+
deviceId: { type: 'string' },
|
|
366
|
+
platform: { type: 'string' },
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
},
|
|
371
|
+
},
|
|
372
|
+
responses: { '200': { description: 'Device registered.' } },
|
|
373
|
+
},
|
|
374
|
+
},
|
|
375
|
+
'/messagebox/devices': {
|
|
376
|
+
get: {
|
|
377
|
+
tags: ['messagebox'],
|
|
378
|
+
summary: 'List your registered devices',
|
|
379
|
+
security: brc104,
|
|
380
|
+
responses: { '200': { description: 'Registered devices.' } },
|
|
381
|
+
},
|
|
382
|
+
},
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
export function paymailPaths() {
|
|
386
|
+
return {
|
|
387
|
+
'/.well-known/bsvalias': {
|
|
388
|
+
get: {
|
|
389
|
+
tags: ['paymail'],
|
|
390
|
+
summary: 'Paymail capability discovery',
|
|
391
|
+
description: 'Public bsvalias capability document. Paymail clients discover the PKI, public-profile, payment-destination, and receive-transaction endpoint templates from here rather than hardcoding paths.',
|
|
392
|
+
responses: {
|
|
393
|
+
'200': { description: 'Capability document.' },
|
|
394
|
+
},
|
|
395
|
+
},
|
|
396
|
+
},
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=fragments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragments.js","sourceRoot":"","sources":["../../src/openapi/fragments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI assembly for the host server. The spec is built per request from
|
|
3
|
+
* the surfaces actually mounted, so a deployment's docs never advertise
|
|
4
|
+
* routes it doesn't serve. Canonical paths only — the legacy root-mounted
|
|
5
|
+
* messagebox aliases are undocumented by design.
|
|
6
|
+
*/
|
|
7
|
+
import type { Express } from 'express';
|
|
8
|
+
export interface OpenApiSurfaces {
|
|
9
|
+
storage?: boolean;
|
|
10
|
+
accounts?: boolean;
|
|
11
|
+
/** Getter so a live config toggle is reflected without restart. */
|
|
12
|
+
hosting?: () => boolean;
|
|
13
|
+
paymail?: boolean;
|
|
14
|
+
messagebox?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface OpenApiOptions {
|
|
17
|
+
serverIdentityKey: string;
|
|
18
|
+
surfaces: OpenApiSurfaces;
|
|
19
|
+
title?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
version?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function buildOpenApiSpec(options: OpenApiOptions): object;
|
|
24
|
+
export declare function mountOpenApiRoutes(app: Express, options: OpenApiOptions): void;
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/openapi/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAYtC,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAgDhE;AAuBD,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,cAAc,GACrB,IAAI,CAON"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI assembly for the host server. The spec is built per request from
|
|
3
|
+
* the surfaces actually mounted, so a deployment's docs never advertise
|
|
4
|
+
* routes it doesn't serve. Canonical paths only — the legacy root-mounted
|
|
5
|
+
* messagebox aliases are undocumented by design.
|
|
6
|
+
*/
|
|
7
|
+
import { TAG_DOCS, accountPaths, authPaths, hostingPaths, messageboxPaths, paymailPaths, storagePaths, } from './fragments';
|
|
8
|
+
export function buildOpenApiSpec(options) {
|
|
9
|
+
const paths = { ...authPaths() };
|
|
10
|
+
const tags = new Set(['auth']);
|
|
11
|
+
if (options.surfaces.storage) {
|
|
12
|
+
Object.assign(paths, storagePaths());
|
|
13
|
+
tags.add('storage');
|
|
14
|
+
}
|
|
15
|
+
if (options.surfaces.accounts) {
|
|
16
|
+
Object.assign(paths, accountPaths());
|
|
17
|
+
tags.add('account');
|
|
18
|
+
}
|
|
19
|
+
if (options.surfaces.hosting?.()) {
|
|
20
|
+
Object.assign(paths, hostingPaths());
|
|
21
|
+
tags.add('hosting');
|
|
22
|
+
}
|
|
23
|
+
if (options.surfaces.paymail) {
|
|
24
|
+
Object.assign(paths, paymailPaths());
|
|
25
|
+
tags.add('paymail');
|
|
26
|
+
}
|
|
27
|
+
if (options.surfaces.messagebox) {
|
|
28
|
+
Object.assign(paths, messageboxPaths());
|
|
29
|
+
tags.add('messagebox');
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
openapi: '3.0.3',
|
|
33
|
+
info: {
|
|
34
|
+
title: options.title ?? '1sat Wallet Host Server',
|
|
35
|
+
version: options.version ?? '1.0.0',
|
|
36
|
+
description: options.description ??
|
|
37
|
+
'BRC-100 wallet storage host. Authenticated surfaces use BRC-103/104 mutual auth (one handshake at POST /.well-known/auth covers all of them); paid surfaces use the BRC-41 402 payment flow.',
|
|
38
|
+
},
|
|
39
|
+
'x-server-identity-key': options.serverIdentityKey,
|
|
40
|
+
tags: TAG_DOCS.filter((t) => tags.has(t.name)),
|
|
41
|
+
components: {
|
|
42
|
+
securitySchemes: {
|
|
43
|
+
brc104: {
|
|
44
|
+
type: 'apiKey',
|
|
45
|
+
in: 'header',
|
|
46
|
+
name: 'x-bsv-auth-identity-key',
|
|
47
|
+
description: 'BRC-103/104 mutual authentication. Use an auth-capable client (e.g. AuthFetch from @bsv/sdk); requests are signed, not bearer-token authorized.',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
paths,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** Scalar shell — renders /openapi.json client-side. Needs internet for the CDN script; the API itself does not. */
|
|
55
|
+
function docsShellHtml(title) {
|
|
56
|
+
const safeTitle = title
|
|
57
|
+
.replace(/&/g, '&')
|
|
58
|
+
.replace(/</g, '<')
|
|
59
|
+
.replace(/>/g, '>');
|
|
60
|
+
return `<!doctype html>
|
|
61
|
+
<html lang="en">
|
|
62
|
+
<head>
|
|
63
|
+
<meta charset="utf-8">
|
|
64
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
65
|
+
<title>${safeTitle}</title>
|
|
66
|
+
</head>
|
|
67
|
+
<body>
|
|
68
|
+
<div id="app"></div>
|
|
69
|
+
<script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"></script>
|
|
70
|
+
<script>Scalar.createApiReference('#app', { url: '/openapi.json' })</script>
|
|
71
|
+
</body>
|
|
72
|
+
</html>`;
|
|
73
|
+
}
|
|
74
|
+
export function mountOpenApiRoutes(app, options) {
|
|
75
|
+
app.get('/openapi.json', (_req, res) => {
|
|
76
|
+
res.json(buildOpenApiSpec(options));
|
|
77
|
+
});
|
|
78
|
+
app.get('/', (_req, res) => {
|
|
79
|
+
res.type('html').send(docsShellHtml(options.title ?? '1sat Wallet Host Server'));
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/openapi/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redis-mirrored BRC-104 session store for multi-instance deployments.
|
|
3
|
+
*
|
|
4
|
+
* The SDK's SessionManager interface is synchronous, so Redis cannot sit on
|
|
5
|
+
* the read path directly. Instead this subclass keeps the normal in-memory
|
|
6
|
+
* maps for sync reads and mirrors every write to Redis; the express wrapper
|
|
7
|
+
* (`wrapAuthWithSessionHydration`) async-loads a peer's sessions from Redis
|
|
8
|
+
* into local memory before the auth middleware's sync lookups run.
|
|
9
|
+
*/
|
|
10
|
+
import { SessionManager, type WalletInterface } from '@bsv/sdk';
|
|
11
|
+
import type { NextFunction, Request, RequestHandler, Response } from 'express';
|
|
12
|
+
/** Peer session shape from @bsv/sdk (not exported by the package root). */
|
|
13
|
+
interface PeerSession {
|
|
14
|
+
isAuthenticated: boolean;
|
|
15
|
+
sessionNonce?: string;
|
|
16
|
+
peerNonce?: string;
|
|
17
|
+
peerIdentityKey?: string;
|
|
18
|
+
lastUpdate: number;
|
|
19
|
+
certificatesRequired?: boolean;
|
|
20
|
+
certificatesValidated?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** Minimal Redis surface used — lets tests substitute an in-memory fake. */
|
|
23
|
+
export interface SessionRedis {
|
|
24
|
+
hgetall(key: string): Promise<Record<string, string>>;
|
|
25
|
+
hset(key: string, field: string, value: string): Promise<unknown>;
|
|
26
|
+
hdel(key: string, field: string): Promise<unknown>;
|
|
27
|
+
expire(key: string, seconds: number): Promise<unknown>;
|
|
28
|
+
}
|
|
29
|
+
export interface RedisSessionManagerOptions {
|
|
30
|
+
/** Redis TTL per identity's session set, refreshed on every write. Default 24h. */
|
|
31
|
+
ttlSeconds?: number;
|
|
32
|
+
keyPrefix?: string;
|
|
33
|
+
/** Called when a background Redis write fails. Defaults to console.error. */
|
|
34
|
+
onError?: (err: Error) => void;
|
|
35
|
+
}
|
|
36
|
+
export declare class RedisSessionManager extends SessionManager {
|
|
37
|
+
private readonly redis;
|
|
38
|
+
private readonly ttlSeconds;
|
|
39
|
+
private readonly keyPrefix;
|
|
40
|
+
private readonly onError;
|
|
41
|
+
constructor(redis: SessionRedis, options?: RedisSessionManagerOptions);
|
|
42
|
+
private key;
|
|
43
|
+
addSession(session: PeerSession): void;
|
|
44
|
+
removeSession(session: PeerSession): void;
|
|
45
|
+
/**
|
|
46
|
+
* Load every Redis-stored session for this identity into local memory so
|
|
47
|
+
* subsequent synchronous lookups (by identity key or session nonce) hit.
|
|
48
|
+
*/
|
|
49
|
+
hydrate(identityKey: string): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Wrap the BRC-104 auth middleware so that a request referencing a session
|
|
53
|
+
* created on another instance is hydrated from Redis before the middleware's
|
|
54
|
+
* synchronous session lookups run. Requests without auth headers (handshake,
|
|
55
|
+
* public routes) pass straight through.
|
|
56
|
+
*/
|
|
57
|
+
export declare function wrapAuthWithSessionHydration(authMiddleware: RequestHandler, sessions: RedisSessionManager, onError?: (err: Error) => void): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
58
|
+
/** ioredis client for the session store. Connects on first command. */
|
|
59
|
+
export declare function createSessionRedis(url: string): SessionRedis;
|
|
60
|
+
export interface SessionStoreConfig {
|
|
61
|
+
redisUrl: string;
|
|
62
|
+
ttlSeconds?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* BRC-104 auth middleware with optional Redis-shared sessions. Without a
|
|
66
|
+
* store config this is exactly `createAuthMiddleware({ wallet })`.
|
|
67
|
+
*/
|
|
68
|
+
export declare function buildAuthMiddleware(wallet: WalletInterface, sessionStore?: SessionStoreConfig): RequestHandler;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=redisSessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redisSessionManager.d.ts","sourceRoot":"","sources":["../../src/sessions/redisSessionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAG9E,2EAA2E;AAC3E,UAAU,WAAW;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC5B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,0BAA0B;IAC1C,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC9B;AAID,qBAAa,mBAAoB,SAAQ,cAAc;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAElC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,0BAA+B;IAUzE,OAAO,CAAC,GAAG;IAIX,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAYtC,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQzC;;;OAGG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAajD;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC3C,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAC4B,GACnD,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAuBpE;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAE5D;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,eAAe,EACvB,YAAY,CAAC,EAAE,kBAAkB,GAC/B,cAAc,CAehB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redis-mirrored BRC-104 session store for multi-instance deployments.
|
|
3
|
+
*
|
|
4
|
+
* The SDK's SessionManager interface is synchronous, so Redis cannot sit on
|
|
5
|
+
* the read path directly. Instead this subclass keeps the normal in-memory
|
|
6
|
+
* maps for sync reads and mirrors every write to Redis; the express wrapper
|
|
7
|
+
* (`wrapAuthWithSessionHydration`) async-loads a peer's sessions from Redis
|
|
8
|
+
* into local memory before the auth middleware's sync lookups run.
|
|
9
|
+
*/
|
|
10
|
+
import { createAuthMiddleware } from '@bsv/auth-express-middleware';
|
|
11
|
+
import { SessionManager } from '@bsv/sdk';
|
|
12
|
+
import { Redis } from 'ioredis';
|
|
13
|
+
const DEFAULT_TTL_SECONDS = 86_400;
|
|
14
|
+
export class RedisSessionManager extends SessionManager {
|
|
15
|
+
redis;
|
|
16
|
+
ttlSeconds;
|
|
17
|
+
keyPrefix;
|
|
18
|
+
onError;
|
|
19
|
+
constructor(redis, options = {}) {
|
|
20
|
+
super();
|
|
21
|
+
this.redis = redis;
|
|
22
|
+
this.ttlSeconds = options.ttlSeconds ?? DEFAULT_TTL_SECONDS;
|
|
23
|
+
this.keyPrefix = options.keyPrefix ?? 'authsess:';
|
|
24
|
+
this.onError =
|
|
25
|
+
options.onError ??
|
|
26
|
+
((err) => console.error('[session-store] redis write failed', err));
|
|
27
|
+
}
|
|
28
|
+
key(identityKey) {
|
|
29
|
+
return `${this.keyPrefix}${identityKey}`;
|
|
30
|
+
}
|
|
31
|
+
addSession(session) {
|
|
32
|
+
super.addSession(session);
|
|
33
|
+
// Sessions without an identity key are mid-handshake and only
|
|
34
|
+
// meaningful on the instance running that handshake.
|
|
35
|
+
if (!session.peerIdentityKey || !session.sessionNonce)
|
|
36
|
+
return;
|
|
37
|
+
const key = this.key(session.peerIdentityKey);
|
|
38
|
+
this.redis
|
|
39
|
+
.hset(key, session.sessionNonce, JSON.stringify(session))
|
|
40
|
+
.then(() => this.redis.expire(key, this.ttlSeconds))
|
|
41
|
+
.catch((err) => this.onError(err));
|
|
42
|
+
}
|
|
43
|
+
removeSession(session) {
|
|
44
|
+
super.removeSession(session);
|
|
45
|
+
if (!session.peerIdentityKey || !session.sessionNonce)
|
|
46
|
+
return;
|
|
47
|
+
this.redis
|
|
48
|
+
.hdel(this.key(session.peerIdentityKey), session.sessionNonce)
|
|
49
|
+
.catch((err) => this.onError(err));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Load every Redis-stored session for this identity into local memory so
|
|
53
|
+
* subsequent synchronous lookups (by identity key or session nonce) hit.
|
|
54
|
+
*/
|
|
55
|
+
async hydrate(identityKey) {
|
|
56
|
+
const stored = await this.redis.hgetall(this.key(identityKey));
|
|
57
|
+
for (const json of Object.values(stored)) {
|
|
58
|
+
try {
|
|
59
|
+
const session = JSON.parse(json);
|
|
60
|
+
if (session.sessionNonce && !this.hasSession(session.sessionNonce)) {
|
|
61
|
+
super.addSession(session);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Skip unparseable entries; they age out via TTL.
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Wrap the BRC-104 auth middleware so that a request referencing a session
|
|
72
|
+
* created on another instance is hydrated from Redis before the middleware's
|
|
73
|
+
* synchronous session lookups run. Requests without auth headers (handshake,
|
|
74
|
+
* public routes) pass straight through.
|
|
75
|
+
*/
|
|
76
|
+
export function wrapAuthWithSessionHydration(authMiddleware, sessions, onError = (err) => console.error('[session-store] hydrate failed', err)) {
|
|
77
|
+
return async (req, res, next) => {
|
|
78
|
+
const identityKey = req.headers['x-bsv-auth-identity-key'];
|
|
79
|
+
const nonce = req.headers['x-bsv-auth-your-nonce'];
|
|
80
|
+
if (typeof identityKey === 'string' && identityKey !== '') {
|
|
81
|
+
// General messages are looked up by the server session nonce the
|
|
82
|
+
// client echoes back; fall back to identity key when absent.
|
|
83
|
+
const missing = typeof nonce === 'string' && nonce !== ''
|
|
84
|
+
? !sessions.hasSession(nonce)
|
|
85
|
+
: !sessions.hasSession(identityKey);
|
|
86
|
+
if (missing) {
|
|
87
|
+
try {
|
|
88
|
+
await sessions.hydrate(identityKey);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
// Auth still works for sessions this instance already
|
|
92
|
+
// holds; a failed hydrate just means a possible re-auth.
|
|
93
|
+
onError(err);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
authMiddleware(req, res, next);
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/** ioredis client for the session store. Connects on first command. */
|
|
101
|
+
export function createSessionRedis(url) {
|
|
102
|
+
return new Redis(url, { maxRetriesPerRequest: 2 });
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* BRC-104 auth middleware with optional Redis-shared sessions. Without a
|
|
106
|
+
* store config this is exactly `createAuthMiddleware({ wallet })`.
|
|
107
|
+
*/
|
|
108
|
+
export function buildAuthMiddleware(wallet, sessionStore) {
|
|
109
|
+
if (!sessionStore) {
|
|
110
|
+
return createAuthMiddleware({ wallet });
|
|
111
|
+
}
|
|
112
|
+
const sessions = new RedisSessionManager(createSessionRedis(sessionStore.redisUrl), { ttlSeconds: sessionStore.ttlSeconds });
|
|
113
|
+
return wrapAuthWithSessionHydration(createAuthMiddleware({
|
|
114
|
+
wallet,
|
|
115
|
+
sessionManager: sessions,
|
|
116
|
+
}), sessions);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=redisSessionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redisSessionManager.js","sourceRoot":"","sources":["../../src/sessions/redisSessionManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1sat/wallet-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.33",
|
|
4
4
|
"description": "BRC-100 wallet storage RPC server for 1Sat Ordinals SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -34,9 +34,10 @@
|
|
|
34
34
|
"@1sat/client": "0.0.45",
|
|
35
35
|
"@1sat/types": "0.0.36",
|
|
36
36
|
"@1sat/wallet": "0.0.96",
|
|
37
|
+
"@bopen-io/messagebox-server": "^1.3.2",
|
|
37
38
|
"evlog": "^2.13.0",
|
|
38
39
|
"express": "^4.21.2",
|
|
39
|
-
"
|
|
40
|
+
"ioredis": "^5.11.1"
|
|
40
41
|
},
|
|
41
42
|
"peerDependencies": {
|
|
42
43
|
"@bsv/auth-express-middleware": "^2.0.4",
|