@opendatalabs/personal-server-ts-server 0.2.0 → 1.0.1
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/api-auth.d.ts +16 -0
- package/dist/api-auth.d.ts.map +1 -0
- package/dist/api-auth.js +97 -0
- package/dist/api-auth.js.map +1 -0
- package/dist/api.d.ts +4 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +3 -0
- package/dist/api.js.map +1 -1
- package/dist/app.d.ts +46 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +102 -30
- package/dist/app.js.map +1 -1
- package/dist/bootstrap.d.ts +11 -3
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +266 -33
- package/dist/bootstrap.js.map +1 -1
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +368 -0
- package/dist/client.js.map +1 -0
- package/dist/config/defaults.d.ts +12 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +14 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +8 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +74 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +9 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +22 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/hono-context.d.ts +14 -0
- package/dist/hono-context.d.ts.map +1 -0
- package/dist/hono-context.js +2 -0
- package/dist/hono-context.js.map +1 -0
- package/dist/index.js +64 -12
- package/dist/index.js.map +1 -1
- package/dist/keys/server-account.d.ts +28 -0
- package/dist/keys/server-account.d.ts.map +1 -0
- package/dist/keys/server-account.js +48 -0
- package/dist/keys/server-account.js.map +1 -0
- package/dist/logger/index.d.ts +5 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +9 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logging/access-log.d.ts +15 -0
- package/dist/logging/access-log.d.ts.map +1 -0
- package/dist/logging/access-log.js +25 -0
- package/dist/logging/access-log.js.map +1 -0
- package/dist/logging/access-reader.d.ts +19 -0
- package/dist/logging/access-reader.d.ts.map +1 -0
- package/dist/logging/access-reader.js +50 -0
- package/dist/logging/access-reader.js.map +1 -0
- package/dist/middleware/access-log.d.ts.map +1 -1
- package/dist/middleware/access-log.js +8 -2
- package/dist/middleware/access-log.js.map +1 -1
- package/dist/middleware/builder-check.d.ts +2 -2
- package/dist/middleware/builder-check.d.ts.map +1 -1
- package/dist/middleware/builder-check.js +7 -2
- package/dist/middleware/builder-check.js.map +1 -1
- package/dist/middleware/owner-check.js +1 -1
- package/dist/middleware/owner-check.js.map +1 -1
- package/dist/middleware/web3-auth.d.ts +12 -0
- package/dist/middleware/web3-auth.d.ts.map +1 -1
- package/dist/middleware/web3-auth.js +27 -31
- package/dist/middleware/web3-auth.js.map +1 -1
- package/dist/migrations/local-state.d.ts +21 -0
- package/dist/migrations/local-state.d.ts.map +1 -0
- package/dist/migrations/local-state.js +106 -0
- package/dist/migrations/local-state.js.map +1 -0
- package/dist/routes/access-logs.d.ts +7 -0
- package/dist/routes/access-logs.d.ts.map +1 -1
- package/dist/routes/access-logs.js +11 -17
- package/dist/routes/access-logs.js.map +1 -1
- package/dist/routes/auth-device.d.ts +49 -0
- package/dist/routes/auth-device.d.ts.map +1 -0
- package/dist/routes/auth-device.js +581 -0
- package/dist/routes/auth-device.js.map +1 -0
- package/dist/routes/data.d.ts +42 -1
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +36 -201
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/grants.d.ts +9 -2
- package/dist/routes/grants.d.ts.map +1 -1
- package/dist/routes/grants.js +18 -196
- package/dist/routes/grants.js.map +1 -1
- package/dist/routes/health.d.ts +7 -1
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +39 -2
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/mcp.d.ts +93 -6
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +526 -53
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/oauth-token.d.ts +56 -0
- package/dist/routes/oauth-token.d.ts.map +1 -0
- package/dist/routes/oauth-token.js +49 -0
- package/dist/routes/oauth-token.js.map +1 -0
- package/dist/routes/sync.d.ts +7 -0
- package/dist/routes/sync.d.ts.map +1 -1
- package/dist/routes/sync.js +12 -39
- package/dist/routes/sync.js.map +1 -1
- package/dist/routes/ui-config.d.ts.map +1 -1
- package/dist/routes/ui-config.js +17 -82
- package/dist/routes/ui-config.js.map +1 -1
- package/dist/routes/ui-registration.d.ts +9 -0
- package/dist/routes/ui-registration.d.ts.map +1 -0
- package/dist/routes/ui-registration.js +217 -0
- package/dist/routes/ui-registration.js.map +1 -0
- package/dist/routes/ui.d.ts +1 -0
- package/dist/routes/ui.d.ts.map +1 -1
- package/dist/routes/ui.js +46 -4
- package/dist/routes/ui.js.map +1 -1
- package/dist/storage/hierarchy.d.ts +29 -0
- package/dist/storage/hierarchy.d.ts.map +1 -0
- package/dist/storage/hierarchy.js +241 -0
- package/dist/storage/hierarchy.js.map +1 -0
- package/dist/storage/index-manager.d.ts +53 -0
- package/dist/storage/index-manager.d.ts.map +1 -0
- package/dist/storage/index-manager.js +167 -0
- package/dist/storage/index-manager.js.map +1 -0
- package/dist/storage/index-schema.d.ts +5 -0
- package/dist/storage/index-schema.d.ts.map +1 -0
- package/dist/storage/index-schema.js +62 -0
- package/dist/storage/index-schema.js.map +1 -0
- package/dist/storage/node-data-storage.d.ts +9 -0
- package/dist/storage/node-data-storage.d.ts.map +1 -0
- package/dist/storage/node-data-storage.js +84 -0
- package/dist/storage/node-data-storage.js.map +1 -0
- package/dist/sync-cursor.d.ts +15 -0
- package/dist/sync-cursor.d.ts.map +1 -0
- package/dist/sync-cursor.js +110 -0
- package/dist/sync-cursor.js.map +1 -0
- package/dist/token-store.d.ts +22 -0
- package/dist/token-store.d.ts.map +1 -0
- package/dist/token-store.js +120 -0
- package/dist/token-store.js.map +1 -0
- package/dist/tunnel/auth.d.ts +4 -0
- package/dist/tunnel/auth.d.ts.map +1 -1
- package/dist/tunnel/auth.js +2 -1
- package/dist/tunnel/auth.js.map +1 -1
- package/dist/tunnel/config.d.ts +1 -0
- package/dist/tunnel/config.d.ts.map +1 -1
- package/dist/tunnel/config.js +1 -1
- package/dist/tunnel/config.js.map +1 -1
- package/dist/tunnel/manager.d.ts +21 -1
- package/dist/tunnel/manager.d.ts.map +1 -1
- package/dist/tunnel/manager.js +78 -23
- package/dist/tunnel/manager.js.map +1 -1
- package/dist/tunnel/verify.d.ts +1 -1
- package/dist/tunnel/verify.d.ts.map +1 -1
- package/dist/tunnel/verify.js +8 -2
- package/dist/tunnel/verify.js.map +1 -1
- package/dist/ui/browser_tls_rustls_bg.wasm +0 -0
- package/dist/ui/index.html +2192 -0
- package/dist/ui/ps-lite-debug.d.ts +93 -0
- package/dist/ui/ps-lite-debug.d.ts.map +1 -0
- package/dist/ui/ps-lite-debug.js +129415 -0
- package/dist/ui/ps-lite-debug.js.map +1 -0
- package/package.json +20 -8
- package/dist/middleware/grant-check.d.ts +0 -12
- package/dist/middleware/grant-check.d.ts.map +0 -1
- package/dist/middleware/grant-check.js +0 -90
- package/dist/middleware/grant-check.js.map +0 -1
- package/dist/oauth/provider.d.ts +0 -55
- package/dist/oauth/provider.d.ts.map +0 -1
- package/dist/oauth/provider.js +0 -160
- package/dist/oauth/provider.js.map +0 -1
- package/dist/oauth/routes.d.ts +0 -10
- package/dist/oauth/routes.d.ts.map +0 -1
- package/dist/oauth/routes.js +0 -206
- package/dist/oauth/routes.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ps-lite-debug.js","sourceRoot":"","sources":["../../src/ui/ps-lite-debug.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendatalabs/personal-server-ts-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Hono HTTP server for the Vana Personal Server — routes, middleware, composition root",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
"types": "./dist/api.d.ts",
|
|
21
21
|
"import": "./dist/api.js"
|
|
22
22
|
},
|
|
23
|
+
"./config": {
|
|
24
|
+
"types": "./dist/config/index.d.ts",
|
|
25
|
+
"import": "./dist/config/index.js"
|
|
26
|
+
},
|
|
23
27
|
"./runtime": {
|
|
24
28
|
"types": "./dist/index.d.ts",
|
|
25
29
|
"import": "./dist/index.js"
|
|
@@ -32,16 +36,24 @@
|
|
|
32
36
|
"dist"
|
|
33
37
|
],
|
|
34
38
|
"scripts": {
|
|
35
|
-
"copy-ui": "mkdir -p dist/ui && cp src/ui/index.html dist/ui/index.html",
|
|
36
|
-
"
|
|
39
|
+
"copy-ui": "mkdir -p dist/ui && cp src/ui/index.html dist/ui/index.html && cp ../lite/src/browser-tls-rustls/browser_tls_rustls_bg.wasm dist/ui/browser_tls_rustls_bg.wasm",
|
|
40
|
+
"bundle-ui": "esbuild src/ui/ps-lite-debug.ts --bundle --format=esm --platform=browser --target=es2022 --outfile=dist/ui/ps-lite-debug.js",
|
|
41
|
+
"build": "tsc --build && npm run copy-ui && npm run bundle-ui",
|
|
37
42
|
"start": "node dist/index.js",
|
|
38
43
|
"dev": "node --watch dist/index.js"
|
|
39
44
|
},
|
|
40
45
|
"dependencies": {
|
|
41
|
-
"@
|
|
42
|
-
"@opendatalabs/personal-server-ts-
|
|
43
|
-
"@
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
+
"@hono/node-server": "^1.19.13",
|
|
47
|
+
"@opendatalabs/personal-server-ts-core": "1.0.1",
|
|
48
|
+
"@opendatalabs/personal-server-ts-lite": "1.0.1",
|
|
49
|
+
"@opendatalabs/vana-sdk": "3.13.0",
|
|
50
|
+
"better-sqlite3": "^12.11.1",
|
|
51
|
+
"hono": "^4.12.27",
|
|
52
|
+
"pino": "^10.3.1",
|
|
53
|
+
"pino-pretty": "^13.0.0",
|
|
54
|
+
"viem": "^2.54.2"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@types/better-sqlite3": "^7.6.0"
|
|
46
58
|
}
|
|
47
59
|
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { MiddlewareHandler } from "hono";
|
|
2
|
-
import type { GatewayClient } from "@opendatalabs/personal-server-ts-core/gateway";
|
|
3
|
-
/**
|
|
4
|
-
* Enforces grant for data reads. Must run AFTER web3-auth middleware.
|
|
5
|
-
* Fetches grant from Gateway, checks revocation/expiry/scope/grantee.
|
|
6
|
-
* Sets c.set('grant', grantResponse).
|
|
7
|
-
*/
|
|
8
|
-
export declare function createGrantCheckMiddleware(params: {
|
|
9
|
-
gateway: GatewayClient;
|
|
10
|
-
serverOwner?: `0x${string}`;
|
|
11
|
-
}): MiddlewareHandler;
|
|
12
|
-
//# sourceMappingURL=grant-check.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grant-check.d.ts","sourceRoot":"","sources":["../../src/middleware/grant-check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAmCnF;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CAC7B,GAAG,iBAAiB,CAyEpB"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { scopeCoveredByGrant } from "@opendatalabs/personal-server-ts-core/scopes";
|
|
2
|
-
import { GrantRequiredError, GrantRevokedError, GrantExpiredError, ScopeMismatchError, InvalidSignatureError, ProtocolError, } from "@opendatalabs/personal-server-ts-core/errors";
|
|
3
|
-
/**
|
|
4
|
-
* Parse the opaque `grant` string from the gateway response.
|
|
5
|
-
* The grant field is a JSON-serialized EIP-712 grant payload containing
|
|
6
|
-
* { user, builder, scopes, expiresAt, nonce }.
|
|
7
|
-
*/
|
|
8
|
-
function parseGrantPayload(grantString) {
|
|
9
|
-
try {
|
|
10
|
-
const parsed = JSON.parse(grantString);
|
|
11
|
-
return {
|
|
12
|
-
scopes: Array.isArray(parsed.scopes) ? parsed.scopes : [],
|
|
13
|
-
expiresAt: typeof parsed.expiresAt === "number" ? parsed.expiresAt : 0,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
return { scopes: [], expiresAt: 0 };
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Enforces grant for data reads. Must run AFTER web3-auth middleware.
|
|
22
|
-
* Fetches grant from Gateway, checks revocation/expiry/scope/grantee.
|
|
23
|
-
* Sets c.set('grant', grantResponse).
|
|
24
|
-
*/
|
|
25
|
-
export function createGrantCheckMiddleware(params) {
|
|
26
|
-
const { gateway } = params;
|
|
27
|
-
return async (c, next) => {
|
|
28
|
-
if (c.get("devBypass")) {
|
|
29
|
-
await next();
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const auth = c.get("auth");
|
|
33
|
-
try {
|
|
34
|
-
// 1. Extract grantId from auth payload
|
|
35
|
-
const grantId = auth.payload.grantId;
|
|
36
|
-
if (!grantId) {
|
|
37
|
-
throw new GrantRequiredError({
|
|
38
|
-
reason: "No grantId in authorization payload",
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
// 2. Fetch grant from Gateway
|
|
42
|
-
const grant = await gateway.getGrant(grantId);
|
|
43
|
-
if (!grant) {
|
|
44
|
-
throw new GrantRequiredError({ reason: "Grant not found", grantId });
|
|
45
|
-
}
|
|
46
|
-
// 3. Check revocation — gateway uses revokedAt (null = not revoked)
|
|
47
|
-
if (grant.revokedAt !== null) {
|
|
48
|
-
throw new GrantRevokedError({ grantId: grant.id });
|
|
49
|
-
}
|
|
50
|
-
// 4. Parse the opaque grant string to extract scopes and expiresAt
|
|
51
|
-
const grantPayload = parseGrantPayload(grant.grant);
|
|
52
|
-
// 5. Check expiry (expiresAt > 0 && expiresAt < now means expired)
|
|
53
|
-
if (grantPayload.expiresAt > 0) {
|
|
54
|
-
const now = Math.floor(Date.now() / 1000);
|
|
55
|
-
if (grantPayload.expiresAt < now) {
|
|
56
|
-
throw new GrantExpiredError({ expiresAt: grantPayload.expiresAt });
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
// 6. Check scope coverage — extract scope from route param
|
|
60
|
-
const scope = c.req.param("scope");
|
|
61
|
-
if (scope && !scopeCoveredByGrant(scope, grantPayload.scopes)) {
|
|
62
|
-
throw new ScopeMismatchError({
|
|
63
|
-
requestedScope: scope,
|
|
64
|
-
grantedScopes: grantPayload.scopes,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
// 7. Check grantee — signer must be the grant's builder.
|
|
68
|
-
// Gateway returns granteeId (bytes32 builderId), not an address.
|
|
69
|
-
// Look up builder by signer address, then compare builder.id === grant.granteeId.
|
|
70
|
-
const builder = await gateway.getBuilder(auth.signer);
|
|
71
|
-
if (!builder || builder.id !== grant.granteeId) {
|
|
72
|
-
throw new InvalidSignatureError({
|
|
73
|
-
reason: "Request signer is not the grant builder",
|
|
74
|
-
expected: grant.granteeId,
|
|
75
|
-
actual: auth.signer,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
// Set grant on context for downstream handlers
|
|
79
|
-
c.set("grant", grant);
|
|
80
|
-
await next();
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
if (err instanceof ProtocolError) {
|
|
84
|
-
return c.json(err.toJSON(), err.code);
|
|
85
|
-
}
|
|
86
|
-
throw err;
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=grant-check.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grant-check.js","sourceRoot":"","sources":["../../src/middleware/grant-check.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,GACd,MAAM,8CAA8C,CAAC;AAEtD;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,WAAmB;IAI5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAGpC,CAAC;QACF,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACzD,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACvE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAG1C;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAiB,CAAC;QAE3C,IAAI,CAAC;YACH,uCAAuC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,kBAAkB,CAAC;oBAC3B,MAAM,EAAE,qCAAqC;iBAC9C,CAAC,CAAC;YACL,CAAC;YAED,8BAA8B;YAC9B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,oEAAoE;YACpE,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,mEAAmE;YACnE,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEpD,mEAAmE;YACnE,IAAI,YAAY,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC1C,IAAI,YAAY,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;oBACjC,MAAM,IAAI,iBAAiB,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,2DAA2D;YAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,kBAAkB,CAAC;oBAC3B,cAAc,EAAE,KAAK;oBACrB,aAAa,EAAE,YAAY,CAAC,MAAM;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,yDAAyD;YACzD,oEAAoE;YACpE,qFAAqF;YACrF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC/C,MAAM,IAAI,qBAAqB,CAAC;oBAC9B,MAAM,EAAE,yCAAyC;oBACjD,QAAQ,EAAE,KAAK,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,+CAA+C;YAC/C,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtB,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,IAAiB,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/oauth/provider.d.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { AuthInfo } from "@modelcontextprotocol/sdk/server/auth/types.js";
|
|
2
|
-
export interface OAuthClientMetadata {
|
|
3
|
-
redirect_uris: string[];
|
|
4
|
-
client_name?: string;
|
|
5
|
-
token_endpoint_auth_method?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface OAuthClient {
|
|
8
|
-
client_id: string;
|
|
9
|
-
client_secret: string;
|
|
10
|
-
redirect_uris: string[];
|
|
11
|
-
client_name?: string;
|
|
12
|
-
client_id_issued_at: number;
|
|
13
|
-
}
|
|
14
|
-
export declare class OAuthProvider {
|
|
15
|
-
private readonly serverOwner;
|
|
16
|
-
private clients;
|
|
17
|
-
private pendingAuths;
|
|
18
|
-
private tokens;
|
|
19
|
-
private refreshTokens;
|
|
20
|
-
constructor(serverOwner: `0x${string}`);
|
|
21
|
-
registerClient(metadata: OAuthClientMetadata): OAuthClient;
|
|
22
|
-
getClient(clientId: string): OAuthClient | undefined;
|
|
23
|
-
createPendingAuth(opts: {
|
|
24
|
-
clientId: string;
|
|
25
|
-
redirectUri: string;
|
|
26
|
-
codeChallenge: string;
|
|
27
|
-
codeChallengeMethod: "S256";
|
|
28
|
-
state: string | null;
|
|
29
|
-
scopes: string[];
|
|
30
|
-
}): string;
|
|
31
|
-
completeAuth(authCode: string, walletAddress: `0x${string}`): {
|
|
32
|
-
redirectUri: string;
|
|
33
|
-
state: string | null;
|
|
34
|
-
};
|
|
35
|
-
exchangeCode(authCode: string, codeVerifier: string, clientId: string): {
|
|
36
|
-
access_token: string;
|
|
37
|
-
token_type: string;
|
|
38
|
-
expires_in: number;
|
|
39
|
-
refresh_token: string;
|
|
40
|
-
};
|
|
41
|
-
verifyToken(token: string): AuthInfo | null;
|
|
42
|
-
refreshAccessToken(refreshToken: string, clientId: string): {
|
|
43
|
-
access_token: string;
|
|
44
|
-
token_type: string;
|
|
45
|
-
expires_in: number;
|
|
46
|
-
refresh_token: string;
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Check if a wallet has access (is the owner or has a grant).
|
|
50
|
-
* For now, only the server owner gets full access.
|
|
51
|
-
*/
|
|
52
|
-
isAuthorizedWallet(walletAddress: `0x${string}`): boolean;
|
|
53
|
-
private verifyCodeChallenge;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/oauth/provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AA2BD,qBAAa,aAAa;IASZ,OAAO,CAAC,QAAQ,CAAC,WAAW;IARxC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,aAAa,CAGjB;gBAEyB,WAAW,EAAE,KAAK,MAAM,EAAE;IAEvD,cAAc,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW;IAiB1D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIpD,iBAAiB,CAAC,IAAI,EAAE;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,GAAG,MAAM;IAqBV,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,KAAK,MAAM,EAAE,GAC3B;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAOhD,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACvB;IA2CD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAgB3C,kBAAkB,CAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACvB;IAiCD;;;OAGG;IACH,kBAAkB,CAAC,aAAa,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO;IAIzD,OAAO,CAAC,mBAAmB;CAa5B"}
|
package/dist/oauth/provider.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { randomBytes, createHash } from "node:crypto";
|
|
2
|
-
function generateId() {
|
|
3
|
-
return randomBytes(32).toString("hex");
|
|
4
|
-
}
|
|
5
|
-
const TOKEN_TTL_MS = 60 * 60 * 1000; // 1 hour
|
|
6
|
-
const AUTH_CODE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
7
|
-
export class OAuthProvider {
|
|
8
|
-
serverOwner;
|
|
9
|
-
clients = new Map();
|
|
10
|
-
pendingAuths = new Map();
|
|
11
|
-
tokens = new Map();
|
|
12
|
-
refreshTokens = new Map();
|
|
13
|
-
constructor(serverOwner) {
|
|
14
|
-
this.serverOwner = serverOwner;
|
|
15
|
-
}
|
|
16
|
-
registerClient(metadata) {
|
|
17
|
-
if (!metadata.redirect_uris || metadata.redirect_uris.length === 0) {
|
|
18
|
-
throw new Error("redirect_uris is required");
|
|
19
|
-
}
|
|
20
|
-
const client = {
|
|
21
|
-
client_id: generateId(),
|
|
22
|
-
client_secret: generateId(),
|
|
23
|
-
redirect_uris: metadata.redirect_uris,
|
|
24
|
-
client_name: metadata.client_name,
|
|
25
|
-
client_id_issued_at: Math.floor(Date.now() / 1000),
|
|
26
|
-
};
|
|
27
|
-
this.clients.set(client.client_id, client);
|
|
28
|
-
return client;
|
|
29
|
-
}
|
|
30
|
-
getClient(clientId) {
|
|
31
|
-
return this.clients.get(clientId);
|
|
32
|
-
}
|
|
33
|
-
createPendingAuth(opts) {
|
|
34
|
-
const client = this.clients.get(opts.clientId);
|
|
35
|
-
if (!client)
|
|
36
|
-
throw new Error("Unknown client");
|
|
37
|
-
if (!client.redirect_uris.includes(opts.redirectUri)) {
|
|
38
|
-
throw new Error("Invalid redirect_uri");
|
|
39
|
-
}
|
|
40
|
-
const authCode = generateId();
|
|
41
|
-
this.pendingAuths.set(authCode, {
|
|
42
|
-
clientId: opts.clientId,
|
|
43
|
-
redirectUri: opts.redirectUri,
|
|
44
|
-
codeChallenge: opts.codeChallenge,
|
|
45
|
-
codeChallengeMethod: opts.codeChallengeMethod,
|
|
46
|
-
state: opts.state,
|
|
47
|
-
scopes: opts.scopes,
|
|
48
|
-
createdAt: Date.now(),
|
|
49
|
-
});
|
|
50
|
-
return authCode;
|
|
51
|
-
}
|
|
52
|
-
completeAuth(authCode, walletAddress) {
|
|
53
|
-
const pending = this.pendingAuths.get(authCode);
|
|
54
|
-
if (!pending)
|
|
55
|
-
throw new Error("Unknown auth code");
|
|
56
|
-
pending.walletAddress = walletAddress;
|
|
57
|
-
return { redirectUri: pending.redirectUri, state: pending.state };
|
|
58
|
-
}
|
|
59
|
-
exchangeCode(authCode, codeVerifier, clientId) {
|
|
60
|
-
const pending = this.pendingAuths.get(authCode);
|
|
61
|
-
if (!pending)
|
|
62
|
-
throw new Error("Invalid authorization code");
|
|
63
|
-
if (pending.clientId !== clientId)
|
|
64
|
-
throw new Error("Client mismatch");
|
|
65
|
-
if (!pending.walletAddress)
|
|
66
|
-
throw new Error("Authorization not completed");
|
|
67
|
-
if (Date.now() - pending.createdAt > AUTH_CODE_TTL_MS) {
|
|
68
|
-
this.pendingAuths.delete(authCode);
|
|
69
|
-
throw new Error("Authorization code expired");
|
|
70
|
-
}
|
|
71
|
-
// Verify PKCE challenge
|
|
72
|
-
if (!this.verifyCodeChallenge(codeVerifier, pending.codeChallenge)) {
|
|
73
|
-
throw new Error("Invalid code_verifier");
|
|
74
|
-
}
|
|
75
|
-
// Single-use: remove the auth code
|
|
76
|
-
this.pendingAuths.delete(authCode);
|
|
77
|
-
const accessToken = generateId();
|
|
78
|
-
const refreshToken = generateId();
|
|
79
|
-
const expiresIn = Math.floor(TOKEN_TTL_MS / 1000);
|
|
80
|
-
this.tokens.set(accessToken, {
|
|
81
|
-
clientId,
|
|
82
|
-
walletAddress: pending.walletAddress,
|
|
83
|
-
scopes: pending.scopes,
|
|
84
|
-
expiresAt: Date.now() + TOKEN_TTL_MS,
|
|
85
|
-
});
|
|
86
|
-
this.refreshTokens.set(refreshToken, {
|
|
87
|
-
clientId,
|
|
88
|
-
walletAddress: pending.walletAddress,
|
|
89
|
-
scopes: pending.scopes,
|
|
90
|
-
});
|
|
91
|
-
return {
|
|
92
|
-
access_token: accessToken,
|
|
93
|
-
token_type: "bearer",
|
|
94
|
-
expires_in: expiresIn,
|
|
95
|
-
refresh_token: refreshToken,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
verifyToken(token) {
|
|
99
|
-
const record = this.tokens.get(token);
|
|
100
|
-
if (!record)
|
|
101
|
-
return null;
|
|
102
|
-
if (Date.now() > record.expiresAt) {
|
|
103
|
-
this.tokens.delete(token);
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
token,
|
|
108
|
-
clientId: record.clientId,
|
|
109
|
-
scopes: record.scopes,
|
|
110
|
-
expiresAt: Math.floor(record.expiresAt / 1000),
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
refreshAccessToken(refreshToken, clientId) {
|
|
114
|
-
const record = this.refreshTokens.get(refreshToken);
|
|
115
|
-
if (!record)
|
|
116
|
-
throw new Error("Invalid refresh token");
|
|
117
|
-
if (record.clientId !== clientId)
|
|
118
|
-
throw new Error("Client mismatch");
|
|
119
|
-
// Rotate: remove old refresh token
|
|
120
|
-
this.refreshTokens.delete(refreshToken);
|
|
121
|
-
const newAccessToken = generateId();
|
|
122
|
-
const newRefreshToken = generateId();
|
|
123
|
-
const expiresIn = Math.floor(TOKEN_TTL_MS / 1000);
|
|
124
|
-
this.tokens.set(newAccessToken, {
|
|
125
|
-
clientId,
|
|
126
|
-
walletAddress: record.walletAddress,
|
|
127
|
-
scopes: record.scopes,
|
|
128
|
-
expiresAt: Date.now() + TOKEN_TTL_MS,
|
|
129
|
-
});
|
|
130
|
-
this.refreshTokens.set(newRefreshToken, {
|
|
131
|
-
clientId,
|
|
132
|
-
walletAddress: record.walletAddress,
|
|
133
|
-
scopes: record.scopes,
|
|
134
|
-
});
|
|
135
|
-
return {
|
|
136
|
-
access_token: newAccessToken,
|
|
137
|
-
token_type: "bearer",
|
|
138
|
-
expires_in: expiresIn,
|
|
139
|
-
refresh_token: newRefreshToken,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Check if a wallet has access (is the owner or has a grant).
|
|
144
|
-
* For now, only the server owner gets full access.
|
|
145
|
-
*/
|
|
146
|
-
isAuthorizedWallet(walletAddress) {
|
|
147
|
-
return walletAddress.toLowerCase() === this.serverOwner.toLowerCase();
|
|
148
|
-
}
|
|
149
|
-
verifyCodeChallenge(codeVerifier, codeChallenge) {
|
|
150
|
-
// S256: BASE64URL(SHA256(code_verifier)) === code_challenge
|
|
151
|
-
const hash = createHash("sha256").update(codeVerifier).digest();
|
|
152
|
-
const computed = hash
|
|
153
|
-
.toString("base64")
|
|
154
|
-
.replace(/\+/g, "-")
|
|
155
|
-
.replace(/\//g, "_")
|
|
156
|
-
.replace(/=+$/, "");
|
|
157
|
-
return computed === codeChallenge;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/oauth/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth/routes.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Hono } from "hono";
|
|
2
|
-
import type { OAuthProvider } from "./provider.js";
|
|
3
|
-
export interface OAuthRouteDeps {
|
|
4
|
-
oauthProvider: OAuthProvider;
|
|
5
|
-
serverOwner: `0x${string}`;
|
|
6
|
-
accountPortalOrigin?: string;
|
|
7
|
-
serverOrigin?: string | (() => string);
|
|
8
|
-
}
|
|
9
|
-
export declare function oauthRoutes(deps: OAuthRouteDeps): Hono;
|
|
10
|
-
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/oauth/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACxC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CA2QtD"}
|
package/dist/oauth/routes.js
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { Hono } from "hono";
|
|
2
|
-
import { recoverServerOwner } from "@opendatalabs/personal-server-ts-core/keys";
|
|
3
|
-
const DEFAULT_ACCOUNT_PORTAL_ORIGIN = "https://account.vana.org";
|
|
4
|
-
export function oauthRoutes(deps) {
|
|
5
|
-
const app = new Hono();
|
|
6
|
-
const { oauthProvider } = deps;
|
|
7
|
-
const accountPortalOrigin = deps.accountPortalOrigin ?? DEFAULT_ACCOUNT_PORTAL_ORIGIN;
|
|
8
|
-
/** Resolve the public-facing origin (tunnel URL when available, else request origin). */
|
|
9
|
-
function getPublicOrigin(c) {
|
|
10
|
-
if (deps.serverOrigin) {
|
|
11
|
-
const origin = typeof deps.serverOrigin === "function"
|
|
12
|
-
? deps.serverOrigin()
|
|
13
|
-
: deps.serverOrigin;
|
|
14
|
-
if (origin)
|
|
15
|
-
return origin;
|
|
16
|
-
}
|
|
17
|
-
return new URL(c.req.url).origin;
|
|
18
|
-
}
|
|
19
|
-
// --- Discovery endpoints ---
|
|
20
|
-
app.get("/.well-known/oauth-authorization-server", (c) => {
|
|
21
|
-
const issuer = getPublicOrigin(c);
|
|
22
|
-
return c.json({
|
|
23
|
-
issuer,
|
|
24
|
-
authorization_endpoint: `${issuer}/authorize`,
|
|
25
|
-
token_endpoint: `${issuer}/token`,
|
|
26
|
-
registration_endpoint: `${issuer}/register`,
|
|
27
|
-
response_types_supported: ["code"],
|
|
28
|
-
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
29
|
-
token_endpoint_auth_methods_supported: ["client_secret_post"],
|
|
30
|
-
code_challenge_methods_supported: ["S256"],
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
app.get("/.well-known/oauth-protected-resource", (c) => {
|
|
34
|
-
const origin = getPublicOrigin(c);
|
|
35
|
-
return c.json({
|
|
36
|
-
resource: origin,
|
|
37
|
-
authorization_servers: [origin],
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
// --- Dynamic Client Registration (RFC 7591) ---
|
|
41
|
-
app.post("/register", async (c) => {
|
|
42
|
-
try {
|
|
43
|
-
const body = await c.req.json();
|
|
44
|
-
const client = oauthProvider.registerClient({
|
|
45
|
-
redirect_uris: body.redirect_uris,
|
|
46
|
-
client_name: body.client_name,
|
|
47
|
-
token_endpoint_auth_method: body.token_endpoint_auth_method,
|
|
48
|
-
});
|
|
49
|
-
return c.json({
|
|
50
|
-
client_id: client.client_id,
|
|
51
|
-
client_secret: client.client_secret,
|
|
52
|
-
redirect_uris: client.redirect_uris,
|
|
53
|
-
client_name: client.client_name,
|
|
54
|
-
client_id_issued_at: client.client_id_issued_at,
|
|
55
|
-
}, 201);
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
return c.json({ error: "invalid_client_metadata", error_description: String(err) }, 400);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
// --- Authorization endpoint ---
|
|
62
|
-
app.get("/authorize", (c) => {
|
|
63
|
-
const clientId = c.req.query("client_id");
|
|
64
|
-
const redirectUri = c.req.query("redirect_uri");
|
|
65
|
-
const codeChallenge = c.req.query("code_challenge");
|
|
66
|
-
const codeChallengeMethod = c.req.query("code_challenge_method");
|
|
67
|
-
const state = c.req.query("state") ?? null;
|
|
68
|
-
const scope = c.req.query("scope") ?? "";
|
|
69
|
-
const responseType = c.req.query("response_type");
|
|
70
|
-
if (responseType !== "code") {
|
|
71
|
-
return c.json({ error: "unsupported_response_type" }, 400);
|
|
72
|
-
}
|
|
73
|
-
if (!clientId || !redirectUri || !codeChallenge) {
|
|
74
|
-
return c.json({
|
|
75
|
-
error: "invalid_request",
|
|
76
|
-
error_description: "Missing required parameters",
|
|
77
|
-
}, 400);
|
|
78
|
-
}
|
|
79
|
-
if (codeChallengeMethod !== "S256") {
|
|
80
|
-
return c.json({
|
|
81
|
-
error: "invalid_request",
|
|
82
|
-
error_description: "Only S256 code_challenge_method is supported",
|
|
83
|
-
}, 400);
|
|
84
|
-
}
|
|
85
|
-
const client = oauthProvider.getClient(clientId);
|
|
86
|
-
if (!client) {
|
|
87
|
-
return c.json({ error: "invalid_client" }, 400);
|
|
88
|
-
}
|
|
89
|
-
if (!client.redirect_uris.includes(redirectUri)) {
|
|
90
|
-
return c.json({
|
|
91
|
-
error: "invalid_request",
|
|
92
|
-
error_description: "redirect_uri not registered",
|
|
93
|
-
}, 400);
|
|
94
|
-
}
|
|
95
|
-
const scopes = scope ? scope.split(" ") : [];
|
|
96
|
-
let authCode;
|
|
97
|
-
try {
|
|
98
|
-
authCode = oauthProvider.createPendingAuth({
|
|
99
|
-
clientId,
|
|
100
|
-
redirectUri,
|
|
101
|
-
codeChallenge,
|
|
102
|
-
codeChallengeMethod: "S256",
|
|
103
|
-
state,
|
|
104
|
-
scopes,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
catch (err) {
|
|
108
|
-
return c.json({ error: "server_error", error_description: String(err) }, 500);
|
|
109
|
-
}
|
|
110
|
-
// Redirect to Account Portal for identity verification.
|
|
111
|
-
// The callback URL points back to our /oauth/callback with the auth code as state.
|
|
112
|
-
const callbackUrl = `${getPublicOrigin(c)}/oauth/callback`;
|
|
113
|
-
const portalParams = new URLSearchParams({
|
|
114
|
-
// Use a placeholder sessionId — the Account Portal requires one to render the connect page.
|
|
115
|
-
// We pass the authCode via the redirect_uri so it comes back to us.
|
|
116
|
-
sessionId: `mcp-oauth-${authCode.slice(0, 8)}`,
|
|
117
|
-
redirect_uri: callbackUrl,
|
|
118
|
-
oauth_state: authCode,
|
|
119
|
-
appName: client.client_name ?? "MCP Client",
|
|
120
|
-
});
|
|
121
|
-
return c.redirect(`${accountPortalOrigin}/connect?${portalParams.toString()}`);
|
|
122
|
-
});
|
|
123
|
-
// --- OAuth callback (receives wallet proof from Account Portal) ---
|
|
124
|
-
app.get("/oauth/callback", async (c) => {
|
|
125
|
-
const masterKeySig = c.req.query("masterKeySig");
|
|
126
|
-
const authCode = c.req.query("oauth_state");
|
|
127
|
-
if (!masterKeySig || !authCode) {
|
|
128
|
-
return c.text("Missing masterKeySig or oauth_state parameter", 400);
|
|
129
|
-
}
|
|
130
|
-
// Recover wallet address from the master key signature
|
|
131
|
-
let walletAddress;
|
|
132
|
-
try {
|
|
133
|
-
walletAddress = await recoverServerOwner(masterKeySig);
|
|
134
|
-
}
|
|
135
|
-
catch {
|
|
136
|
-
return c.text("Invalid master key signature", 400);
|
|
137
|
-
}
|
|
138
|
-
// Check authorization: must be the server owner
|
|
139
|
-
if (!oauthProvider.isAuthorizedWallet(walletAddress)) {
|
|
140
|
-
return c.text("Unauthorized: wallet is not the server owner", 403);
|
|
141
|
-
}
|
|
142
|
-
// Complete the pending auth with the verified wallet
|
|
143
|
-
let authResult;
|
|
144
|
-
try {
|
|
145
|
-
authResult = oauthProvider.completeAuth(authCode, walletAddress);
|
|
146
|
-
}
|
|
147
|
-
catch (err) {
|
|
148
|
-
return c.text(`Authorization failed: ${err}`, 400);
|
|
149
|
-
}
|
|
150
|
-
// Redirect back to the OAuth client (e.g., Claude) with the auth code
|
|
151
|
-
const redirectUrl = new URL(authResult.redirectUri);
|
|
152
|
-
redirectUrl.searchParams.set("code", authCode);
|
|
153
|
-
if (authResult.state) {
|
|
154
|
-
redirectUrl.searchParams.set("state", authResult.state);
|
|
155
|
-
}
|
|
156
|
-
return c.redirect(redirectUrl.toString());
|
|
157
|
-
});
|
|
158
|
-
// --- Token endpoint ---
|
|
159
|
-
app.post("/token", async (c) => {
|
|
160
|
-
const contentType = c.req.header("content-type") ?? "";
|
|
161
|
-
let body;
|
|
162
|
-
if (contentType.includes("application/x-www-form-urlencoded")) {
|
|
163
|
-
const formData = await c.req.parseBody();
|
|
164
|
-
body = Object.fromEntries(Object.entries(formData).map(([k, v]) => [k, String(v)]));
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
body = await c.req.json();
|
|
168
|
-
}
|
|
169
|
-
const grantType = body.grant_type;
|
|
170
|
-
const clientId = body.client_id;
|
|
171
|
-
if (!clientId) {
|
|
172
|
-
return c.json({ error: "invalid_client", error_description: "Missing client_id" }, 400);
|
|
173
|
-
}
|
|
174
|
-
try {
|
|
175
|
-
if (grantType === "authorization_code") {
|
|
176
|
-
const code = body.code;
|
|
177
|
-
const codeVerifier = body.code_verifier;
|
|
178
|
-
if (!code || !codeVerifier) {
|
|
179
|
-
return c.json({
|
|
180
|
-
error: "invalid_request",
|
|
181
|
-
error_description: "Missing code or code_verifier",
|
|
182
|
-
}, 400);
|
|
183
|
-
}
|
|
184
|
-
const tokens = oauthProvider.exchangeCode(code, codeVerifier, clientId);
|
|
185
|
-
return c.json(tokens);
|
|
186
|
-
}
|
|
187
|
-
if (grantType === "refresh_token") {
|
|
188
|
-
const refreshToken = body.refresh_token;
|
|
189
|
-
if (!refreshToken) {
|
|
190
|
-
return c.json({
|
|
191
|
-
error: "invalid_request",
|
|
192
|
-
error_description: "Missing refresh_token",
|
|
193
|
-
}, 400);
|
|
194
|
-
}
|
|
195
|
-
const tokens = oauthProvider.refreshAccessToken(refreshToken, clientId);
|
|
196
|
-
return c.json(tokens);
|
|
197
|
-
}
|
|
198
|
-
return c.json({ error: "unsupported_grant_type" }, 400);
|
|
199
|
-
}
|
|
200
|
-
catch (err) {
|
|
201
|
-
return c.json({ error: "invalid_grant", error_description: String(err) }, 400);
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
return app;
|
|
205
|
-
}
|
|
206
|
-
//# sourceMappingURL=routes.js.map
|