@parlor/auth 0.1.0 → 0.3.0
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/account.d.ts +8 -1
- package/dist/account.d.ts.map +1 -1
- package/dist/account.js +13 -0
- package/dist/account.js.map +1 -1
- package/dist/audit.js.map +1 -1
- package/dist/better-auth.d.ts +5 -0
- package/dist/better-auth.d.ts.map +1 -1
- package/dist/better-auth.js +5 -3
- package/dist/better-auth.js.map +1 -1
- package/dist/client/index.d.ts +40 -4
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +105 -5
- package/dist/client/index.js.map +1 -1
- package/dist/database.js.map +1 -1
- package/dist/devices.d.ts.map +1 -1
- package/dist/devices.js +6 -1
- package/dist/devices.js.map +1 -1
- package/dist/es256.js.map +1 -1
- package/dist/grants.js.map +1 -1
- package/dist/hosts.d.ts +6 -1
- package/dist/hosts.d.ts.map +1 -1
- package/dist/hosts.js +53 -5
- package/dist/hosts.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations.js.map +1 -1
- package/dist/native-sign-in.d.ts +45 -0
- package/dist/native-sign-in.d.ts.map +1 -0
- package/dist/native-sign-in.js +183 -0
- package/dist/native-sign-in.js.map +1 -0
- package/dist/pages.d.ts +1 -1
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +8 -4
- package/dist/pages.js.map +1 -1
- package/dist/provider.d.ts +11 -4
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +36 -2
- package/dist/provider.js.map +1 -1
- package/dist/revocation.js.map +1 -1
- package/dist/routes.js.map +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/statements.d.ts +2 -0
- package/dist/statements.d.ts.map +1 -1
- package/dist/statements.js +2 -0
- package/dist/statements.js.map +1 -1
- package/dist/tokens.d.ts +27 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +82 -3
- package/dist/tokens.js.map +1 -1
- package/dist/turn-keys.js.map +1 -1
- package/package.json +7 -7
package/dist/provider.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ANONYMOUS, asId, } from "@parlor/core";
|
|
2
2
|
import { createRegistry } from "@parlor/core/registry";
|
|
3
3
|
import { AuthFailure, REVOCATION_HORIZON_MS, } from "@parlor/server";
|
|
4
|
+
import { betterAuth } from "better-auth";
|
|
4
5
|
import { createLocalJWKSet, decodeProtectedHeader, errors, jwtVerify, } from "jose";
|
|
5
6
|
import { accountActions } from "./account.js";
|
|
6
7
|
import { AUDIT_MIGRATION, createAuditLog } from "./audit.js";
|
|
@@ -11,8 +12,21 @@ import { createGrantKeys, hostAccountActions, hostPrincipalOf, HOSTS_MIGRATION,
|
|
|
11
12
|
import { AUTH_MIGRATIONS } from "./migrations.js";
|
|
12
13
|
import { RevocationSet } from "./revocation.js";
|
|
13
14
|
import { authRoutes } from "./routes.js";
|
|
14
|
-
import { agentPrincipalOf, credentialOf, delegate, verifyTurnToken, } from "./tokens.js";
|
|
15
|
+
import { agentPrincipalOf, credentialOf, delegate, delegateAgent, outsideAgentPrincipalOf, verifyAgentToken, verifyTurnToken, } from "./tokens.js";
|
|
15
16
|
import { createTurnKeyStore, TURN_KEYS_MIGRATION, } from "./turn-keys.js";
|
|
17
|
+
/** Stands in for the instance until the first call needs it. */
|
|
18
|
+
function deferredInstance(options) {
|
|
19
|
+
let created;
|
|
20
|
+
const current = () => (created ??= betterAuth(options));
|
|
21
|
+
return {
|
|
22
|
+
options,
|
|
23
|
+
handler: (request) => current().handler(request),
|
|
24
|
+
api: { getSession: (input) => current().api.getSession(input) },
|
|
25
|
+
get $context() {
|
|
26
|
+
return current().$context;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
16
30
|
function hasCookie(request, name) {
|
|
17
31
|
const cookie = request.headers.get("cookie");
|
|
18
32
|
if (!cookie)
|
|
@@ -24,7 +38,8 @@ function hasCookie(request, name) {
|
|
|
24
38
|
* native shells. Access tokens Better Auth issued to MCP clients become agent principals
|
|
25
39
|
* without a turn.
|
|
26
40
|
*/
|
|
27
|
-
export function betterAuthProvider(
|
|
41
|
+
export function betterAuthProvider(provided) {
|
|
42
|
+
const instance = "instance" in provided ? provided.instance : deferredInstance(provided.options);
|
|
28
43
|
const bridge = bridgeOf(instance.options);
|
|
29
44
|
const settings = bridge.settings;
|
|
30
45
|
let revocations;
|
|
@@ -159,6 +174,19 @@ export function betterAuthProvider({ instance, }) {
|
|
|
159
174
|
}
|
|
160
175
|
return agentPrincipalOf(claims);
|
|
161
176
|
};
|
|
177
|
+
const outsideAgentOf = async (token) => {
|
|
178
|
+
const store = installed().turnKeys;
|
|
179
|
+
let turnTokenKeys = await store.keys();
|
|
180
|
+
const kid = decodeProtectedHeader(token).kid;
|
|
181
|
+
if (kid !== undefined && !turnTokenKeys.publicKeys.has(kid)) {
|
|
182
|
+
turnTokenKeys = await store.refresh();
|
|
183
|
+
}
|
|
184
|
+
const claims = await verifyAgentToken(turnTokenKeys, token, Date.now());
|
|
185
|
+
if (await started().isRevoked({ kind: "grant", id: claims.gid })) {
|
|
186
|
+
throw new AuthFailure("revoked", "This computer was disconnected.");
|
|
187
|
+
}
|
|
188
|
+
return outsideAgentPrincipalOf(claims);
|
|
189
|
+
};
|
|
162
190
|
const authenticateRequest = async (request) => {
|
|
163
191
|
await ready();
|
|
164
192
|
const credential = credentialOf(request.headers.get("authorization"));
|
|
@@ -167,6 +195,8 @@ export function betterAuthProvider({ instance, }) {
|
|
|
167
195
|
return hostOf(request, credential.assertion);
|
|
168
196
|
case "turn":
|
|
169
197
|
return turnOf(credential.token);
|
|
198
|
+
case "agent":
|
|
199
|
+
return outsideAgentOf(credential.token);
|
|
170
200
|
case "access":
|
|
171
201
|
return agentOf(credential.token);
|
|
172
202
|
case "session": {
|
|
@@ -249,6 +279,10 @@ export function betterAuthProvider({ instance, }) {
|
|
|
249
279
|
await ready();
|
|
250
280
|
return delegate(await installed().turnKeys.keys(), host, turn, Date.now());
|
|
251
281
|
},
|
|
282
|
+
async delegateAgent(host, agent) {
|
|
283
|
+
await ready();
|
|
284
|
+
return delegateAgent(await installed().turnKeys.keys(), host, agent, Date.now());
|
|
285
|
+
},
|
|
252
286
|
async hostActive(grantId) {
|
|
253
287
|
const revoked = await started().isRevoked({ kind: "grant", id: grantId });
|
|
254
288
|
return !revoked && (await installed().grantKeys.get(grantId)) !== undefined;
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type AgentPrincipal,\n ANONYMOUS,\n asId,\n type AuthenticatedPrincipal,\n type DeviceId,\n type GrantId,\n type HostPrincipal,\n type Principal,\n type UserId,\n type UserPrincipal,\n} from \"@parlor/core\";\nimport { createRegistry } from \"@parlor/core/registry\";\nimport {\n type AccountProfile,\n AuthFailure,\n type AuthProvider,\n type Delegation,\n type DeviceKeys,\n type PluginHost,\n REVOCATION_HORIZON_MS,\n type TurnDelegation,\n type AgentDelegation,\n} from \"@parlor/server\";\nimport { betterAuth, type BetterAuthOptions } from \"better-auth\";\nimport {\n createLocalJWKSet,\n decodeProtectedHeader,\n errors,\n type JSONWebKeySet,\n type JWTPayload,\n jwtVerify,\n} from \"jose\";\n\nimport { accountActions } from \"./account.js\";\nimport { AUDIT_MIGRATION, createAuditLog } from \"./audit.js\";\nimport {\n AUTH_PLUGIN,\n bridgeOf,\n MCP_SCOPE,\n type ParlorAuthSettings,\n} from \"./better-auth.js\";\nimport {\n createDeviceRegistry,\n type DeviceRegistry,\n deviceAccountActions,\n DEVICE_LINKING_MIGRATION,\n DEVICES_MIGRATION,\n} from \"./devices.js\";\nimport { grantIdOf } from \"./grants.js\";\nimport {\n createGrantKeys,\n type GrantKeys,\n hostAccountActions,\n hostPrincipalOf,\n HOSTS_MIGRATION,\n hostRoutes,\n verifyHostAssertion,\n} from \"./hosts.js\";\nimport { AUTH_MIGRATIONS } from \"./migrations.js\";\nimport { RevocationSet } from \"./revocation.js\";\nimport { authRoutes } from \"./routes.js\";\nimport {\n type AgentToken,\n agentPrincipalOf,\n credentialOf,\n delegate,\n delegateAgent,\n type HostAssertion,\n outsideAgentPrincipalOf,\n type TurnToken,\n verifyAgentToken,\n verifyTurnToken,\n} from \"./tokens.js\";\nimport {\n createTurnKeyStore,\n TURN_KEYS_MIGRATION,\n type TurnKeyStore,\n} from \"./turn-keys.js\";\n\n/** The slice of a Better Auth instance Parlor relies on. */\nexport interface BetterAuthInstance {\n readonly options: BetterAuthOptions;\n handler(request: Request): Promise<Response>;\n readonly api: {\n getSession(input: { headers: Headers }): Promise<{\n readonly session: { readonly id: string; readonly userId: string };\n readonly user: {\n readonly id: string;\n readonly name: string;\n readonly email: string;\n };\n } | null>;\n };\n readonly $context: Promise<BetterAuthContext>;\n}\n\ninterface Where {\n readonly field: string;\n readonly value: string;\n}\n\nexport interface BetterAuthContext {\n readonly authCookies: { readonly sessionToken: { readonly name: string } };\n readonly adapter: {\n findMany<T>(input: { model: string; where?: Where[] }): Promise<T[]>;\n findOne<T>(input: { model: string; where: Where[] }): Promise<T | null>;\n deleteMany(input: { model: string; where: Where[] }): Promise<number>;\n };\n readonly secret: string;\n readonly internalAdapter: {\n listSessions(userId: string): Promise<StoredSession[]>;\n deleteSession(token: string): Promise<void>;\n };\n}\n\nexport interface StoredSession {\n readonly id: string;\n readonly token: string;\n readonly userId: string;\n readonly createdAt: Date;\n readonly updatedAt: Date;\n readonly expiresAt: Date;\n readonly ipAddress?: string | null | undefined;\n readonly userAgent?: string | null | undefined;\n}\n\nexport type BetterAuthProviderOptions =\n | { readonly instance: BetterAuthInstance }\n | {\n /**\n * The options for `betterAuth()`, which the provider calls on the first request.\n * Better Auth starts querying the database as soon as it is created, and some\n * runtimes, such as Cloudflare's, allow no I/O while the app loads.\n */\n readonly options: BetterAuthOptions;\n };\n\n/** Stands in for the instance until the first call needs it. */\nfunction deferredInstance(options: BetterAuthOptions): BetterAuthInstance {\n let created: BetterAuthInstance | undefined;\n const current = () =>\n (created ??= betterAuth(options) as unknown as BetterAuthInstance);\n return {\n options,\n handler: (request) => current().handler(request),\n api: { getSession: (input) => current().api.getSession(input) },\n get $context() {\n return current().$context;\n },\n };\n}\n\nfunction hasCookie(request: Request, name: string): boolean {\n const cookie = request.headers.get(\"cookie\");\n if (!cookie) return false;\n return cookie.split(\";\").some((part) => part.trim().startsWith(`${name}=`));\n}\n\n/**\n * Sessions become user principals: a cookie on the same-origin web, a bearer token in\n * native shells. Access tokens Better Auth issued to MCP clients become agent principals\n * without a turn.\n */\nexport function betterAuthProvider(provided: BetterAuthProviderOptions): AuthProvider {\n const instance =\n \"instance\" in provided ? provided.instance : deferredInstance(provided.options);\n const bridge = bridgeOf(instance.options);\n const settings: ParlorAuthSettings = bridge.settings;\n let revocations: RevocationSet | undefined;\n let keys: ReturnType<typeof createLocalJWKSet> | undefined;\n let grantKeys: GrantKeys | undefined;\n let turnKeys: TurnKeyStore | undefined;\n let devices: DeviceRegistry | undefined;\n const clientNames = new Map<string, Promise<string>>();\n const authenticatedAt = new WeakMap<object, number>();\n\n const installed = () => {\n if (!grantKeys || !turnKeys || !devices) {\n throw new Error(\"The auth provider is not installed.\");\n }\n return { grantKeys, turnKeys, devices };\n };\n\n const started = () => {\n if (!revocations) throw new Error(\"The auth provider is not installed.\");\n return revocations;\n };\n\n let preparingTurnKeys = false;\n const ready = async (): Promise<void> => {\n await started().ready();\n if (!preparingTurnKeys) {\n preparingTurnKeys = true;\n installed()\n .turnKeys.keys()\n .catch(() => {\n preparingTurnKeys = false;\n });\n }\n };\n\n const loadKeys = async () => {\n const response = await instance.handler(new Request(`${settings.baseURL}/jwks`));\n if (!response.ok)\n throw new Error(`Better Auth answered /jwks with ${response.status}`);\n return createLocalJWKSet((await response.json()) as JSONWebKeySet);\n };\n\n const verify = async (token: string): Promise<JWTPayload> => {\n const options = {\n issuer: settings.baseURL,\n audience: settings.resource,\n typ: \"at+jwt\",\n };\n keys ??= await loadKeys();\n try {\n return (await jwtVerify(token, keys, options)).payload;\n } catch (error) {\n if (!(error instanceof errors.JWKSNoMatchingKey)) throw error;\n keys = await loadKeys();\n return (await jwtVerify(token, keys, options)).payload;\n }\n };\n\n const clientName = (clientId: string): Promise<string> => {\n let name = clientNames.get(clientId);\n if (!name) {\n name = instance.$context\n .then((context) =>\n context.adapter.findOne<{ name?: string | null }>({\n model: \"oauthClient\",\n where: [{ field: \"clientId\", value: clientId }],\n }),\n )\n .then((client) => client?.name || clientId);\n name.catch(() => clientNames.delete(clientId));\n clientNames.set(clientId, name);\n }\n return name;\n };\n\n const agentOf = async (token: string): Promise<AgentPrincipal> => {\n let payload: JWTPayload;\n try {\n payload = await verify(token);\n } catch (error) {\n if (error instanceof errors.JWTExpired) {\n throw new AuthFailure(\"expired\", \"The access token expired.\");\n }\n throw new AuthFailure(\"invalid\", \"The access token is invalid.\");\n }\n const { sub, iat } = payload;\n const clientId = payload.client_id;\n const scopes = typeof payload.scope === \"string\" ? payload.scope.split(\" \") : [];\n if (typeof sub !== \"string\" || typeof clientId !== \"string\" || iat === undefined) {\n throw new AuthFailure(\"invalid\", \"The access token is missing claims.\");\n }\n if (!scopes.includes(MCP_SCOPE)) {\n throw new AuthFailure(\n \"invalid\",\n `The access token lacks the \"${MCP_SCOPE}\" scope.`,\n );\n }\n const grantId = grantIdOf(sub, clientId);\n if (await started().isRevoked({ kind: \"grant\", id: grantId }, iat * 1000)) {\n throw new AuthFailure(\"revoked\", \"Access for this agent was revoked.\");\n }\n return {\n kind: \"agent\",\n userId: asId(\"user\", sub),\n grantId,\n agent: {\n name: await clientName(clientId),\n verified: clientId.startsWith(\"https://\"),\n },\n };\n };\n\n const userOf = async (request: Request): Promise<UserPrincipal | undefined> => {\n const found = await instance.api.getSession({ headers: request.headers });\n if (!found) return undefined;\n return {\n kind: \"user\",\n userId: asId(\"user\", found.user.id),\n sessionId: found.session.id,\n };\n };\n\n const publicUrlOf = (request: Request): string =>\n new URL(new URL(request.url).pathname, settings.origin).href;\n\n const hostOf = async (\n request: Request,\n assertion: HostAssertion,\n ): Promise<HostPrincipal> => {\n const grant = await verifyHostAssertion(\n assertion,\n { method: request.method, url: publicUrlOf(request) },\n installed().grantKeys,\n Date.now(),\n );\n if (await started().isRevoked({ kind: \"grant\", id: grant.grantId })) {\n throw new AuthFailure(\"revoked\", \"This computer was disconnected.\");\n }\n return hostPrincipalOf(grant);\n };\n\n const turnOf = async (token: TurnToken): Promise<AgentPrincipal> => {\n const store = installed().turnKeys;\n let turnTokenKeys = await store.keys();\n const kid = decodeProtectedHeader(token).kid;\n if (kid !== undefined && !turnTokenKeys.publicKeys.has(kid)) {\n turnTokenKeys = await store.refresh();\n }\n const claims = await verifyTurnToken(turnTokenKeys, token, Date.now());\n if (await started().isRevoked({ kind: \"grant\", id: claims.gid })) {\n throw new AuthFailure(\"revoked\", \"This computer was disconnected.\");\n }\n return agentPrincipalOf(claims);\n };\n\n const outsideAgentOf = async (token: AgentToken): Promise<AgentPrincipal> => {\n const store = installed().turnKeys;\n let turnTokenKeys = await store.keys();\n const kid = decodeProtectedHeader(token).kid;\n if (kid !== undefined && !turnTokenKeys.publicKeys.has(kid)) {\n turnTokenKeys = await store.refresh();\n }\n const claims = await verifyAgentToken(turnTokenKeys, token, Date.now());\n if (await started().isRevoked({ kind: \"grant\", id: claims.gid })) {\n throw new AuthFailure(\"revoked\", \"This computer was disconnected.\");\n }\n return outsideAgentPrincipalOf(claims);\n };\n\n const authenticateRequest = async (request: Request): Promise<Principal> => {\n await ready();\n const credential = credentialOf(request.headers.get(\"authorization\"));\n switch (credential?.kind) {\n case \"host\":\n return hostOf(request, credential.assertion);\n case \"turn\":\n return turnOf(credential.token);\n case \"agent\":\n return outsideAgentOf(credential.token);\n case \"access\":\n return agentOf(credential.token);\n case \"session\": {\n const user = await userOf(request);\n if (!user)\n throw new AuthFailure(\"invalid\", \"The session is invalid or has ended.\");\n return user;\n }\n case undefined:\n break;\n }\n const { authCookies } = await instance.$context;\n if (!hasCookie(request, authCookies.sessionToken.name)) return ANONYMOUS;\n return (await userOf(request)) ?? ANONYMOUS;\n };\n\n return {\n name: AUTH_PLUGIN,\n migrations: [\n ...AUTH_MIGRATIONS,\n HOSTS_MIGRATION,\n DEVICES_MIGRATION,\n TURN_KEYS_MIGRATION,\n AUDIT_MIGRATION,\n DEVICE_LINKING_MIGRATION,\n ],\n enforcing: true,\n setup(host: PluginHost) {\n const { database } = host;\n if (!database) throw new Error(\"The auth plugin needs a database.\");\n const set = new RevocationSet({\n database,\n horizonMs: REVOCATION_HORIZON_MS,\n });\n revocations = set;\n const auditLog = createAuditLog(database);\n bridge.revoke = (notice) =>\n database.transaction((tx) => RevocationSet.revoke(tx, notice));\n grantKeys = createGrantKeys(database);\n devices = createDeviceRegistry(database);\n turnKeys = createTurnKeyStore({\n database,\n issuer: settings.baseURL,\n secret: async () => (await instance.$context).secret,\n });\n const hostDeps = {\n host,\n settings,\n };\n return {\n actions: createRegistry({\n ...accountActions({ instance, host, revoke: bridge.revoke }).actions,\n ...hostAccountActions(hostDeps).actions,\n ...deviceAccountActions({ host, registry: devices }).actions,\n }),\n routes: [...authRoutes({ instance, settings, host }), ...hostRoutes(hostDeps)],\n audit: (record) => auditLog.record(record),\n close: async () => {\n await Promise.all([set.stop(), auditLog.stop()]);\n },\n };\n },\n async authenticate(request: Request): Promise<Principal> {\n const startedAt = Date.now();\n const principal = await authenticateRequest(request);\n if (principal.kind !== \"anonymous\") authenticatedAt.set(principal, startedAt);\n return principal;\n },\n challenge(): Response {\n const metadata = `${settings.origin}/.well-known/oauth-protected-resource${new URL(settings.resource).pathname}`;\n return Response.json(\n { error: { code: \"unauthenticated\", message: \"Sign in through OAuth first.\" } },\n {\n status: 401,\n headers: {\n \"www-authenticate\": `Bearer resource_metadata=\"${metadata}\", scope=\"${MCP_SCOPE}\"`,\n },\n },\n );\n },\n async delegate(host: HostPrincipal, turn: TurnDelegation): Promise<Delegation> {\n await ready();\n return delegate(await installed().turnKeys.keys(), host, turn, Date.now());\n },\n async delegateAgent(\n host: HostPrincipal,\n agent: AgentDelegation,\n ): Promise<Delegation> {\n await ready();\n return delegateAgent(await installed().turnKeys.keys(), host, agent, Date.now());\n },\n async hostActive(grantId: GrantId): Promise<boolean> {\n const revoked = await started().isRevoked({ kind: \"grant\", id: grantId });\n return !revoked && (await installed().grantKeys.get(grantId)) !== undefined;\n },\n async device(userId: UserId, deviceId: DeviceId): Promise<DeviceKeys | undefined> {\n const registered = await installed().devices.get(userId, deviceId);\n if (!registered) return undefined;\n const { id, name, platform, signingKey, presenceKey, vouches } = registered;\n return {\n id,\n name,\n platform,\n signingKey,\n presenceKey,\n ...(vouches ? { vouches } : {}),\n };\n },\n async account(userId: UserId): Promise<AccountProfile | undefined> {\n const { adapter } = await instance.$context;\n const user = await adapter.findOne<{ name: string; email: string }>({\n model: \"user\",\n where: [{ field: \"id\", value: userId }],\n });\n return user ? { name: user.name, email: user.email } : undefined;\n },\n revoked(principal: AuthenticatedPrincipal): AbortSignal {\n const notice =\n principal.kind === \"user\"\n ? ({ kind: \"session\", id: principal.sessionId } as const)\n : ({ kind: \"grant\", id: principal.grantId } as const);\n return started().signal([notice], authenticatedAt.get(principal));\n },\n };\n}\n"]}
|
package/dist/revocation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../src/revocation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../src/revocation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataProvider } from \"@parlor/core\";\nimport { sql } from \"drizzle-orm\";\n\nimport { type Database, rowsOf } from \"./database.js\";\n\nexport const REVOCATION_CHANNEL = \"parlor_auth\";\n\n/** NOTIFY payload. Ids only, never content. */\nexport interface RevocationNotice {\n readonly kind: \"session\" | \"grant\";\n readonly id: string;\n}\n\ninterface Revocation extends RevocationNotice {\n readonly at: number;\n}\n\nexport interface RevocationSetOptions {\n readonly database: DataProvider;\n /**\n * The longest any credential this set guards stays valid. Older revocations are\n * forgotten: nothing they revoke can still verify.\n */\n readonly horizonMs: number;\n readonly now?: (() => number) | undefined;\n readonly relistenBaseMs?: number | undefined;\n readonly relistenMaxMs?: number | undefined;\n}\n\n/**\n * `following` answers from memory, kept current by NOTIFY. `checking` answers with one\n * primary-key lookup per call: poll-only providers always do, and a following set falls\n * back to it while its LISTEN connection is down.\n */\nexport type RevocationMode = \"starting\" | \"following\" | \"checking\";\n\nconst keyOf = ({ kind, id }: RevocationNotice) => `${kind}:${id}`;\n\ninterface Watch {\n readonly controllers: Set<WeakRef<AbortController>>;\n since: number;\n}\n\nconst owner = Symbol(\"parlor.revocation.owner\");\n\n/**\n * Every instance's view of what was revoked within the horizon. It loads before it\n * admits anyone, and whenever its LISTEN connection drops it checks the table per call\n * until it listens again and reloads, because a NOTIFY sent meanwhile is lost.\n */\nexport class RevocationSet {\n readonly #database: DataProvider;\n readonly #horizonMs: number;\n readonly #now: () => number;\n readonly #relistenBaseMs: number;\n readonly #relistenMaxMs: number;\n readonly #revoked = new Map<string, number>();\n readonly #watches = new Map<string, Watch>();\n readonly #forget = new FinalizationRegistry<string>((key) => this.#sweepWatch(key));\n #mode: RevocationMode = \"starting\";\n #ready: Promise<void> | undefined;\n #generation = 0;\n #unlisten: (() => Promise<void>) | undefined;\n #reconnecting = false;\n #retry: ReturnType<typeof setTimeout> | undefined;\n #sweptAt = 0;\n #stopped = false;\n\n constructor(options: RevocationSetOptions) {\n this.#database = options.database;\n this.#horizonMs = options.horizonMs;\n this.#now = options.now ?? Date.now;\n this.#relistenBaseMs = options.relistenBaseMs ?? 1000;\n this.#relistenMaxMs = options.relistenMaxMs ?? 30_000;\n }\n\n get mode(): RevocationMode {\n return this.#mode;\n }\n\n /** Resolves once the set can answer; a failed start is retried by the next call. */\n ready(): Promise<void> {\n this.#ready ??= this.#start().catch((error: unknown) => {\n this.#ready = undefined;\n throw error;\n });\n return this.#ready;\n }\n\n /**\n * Revoked when a revocation of the notice is at or after `issuedAt`; without it, when\n * any revocation of the notice is within the horizon.\n */\n async isRevoked(notice: RevocationNotice, issuedAt = 0): Promise<boolean> {\n await this.ready();\n const at =\n this.#mode === \"following\"\n ? this.#revoked.get(keyOf(notice))\n : await this.#lookup(notice);\n return at !== undefined && at >= Math.max(issuedAt, this.#now() - this.#horizonMs);\n }\n\n /**\n * Aborts when any of the notices is revoked at or after `since` (default: now). The\n * watch is registered first and the revocations already known are checked after, so one\n * that landed between `since` and this call still aborts it.\n */\n signal(notices: readonly RevocationNotice[], since: number = this.#now()): AbortSignal {\n const controller = new AbortController();\n // The signal pins its controller, so a watch lives exactly as long as its holder.\n Object.defineProperty(controller.signal, owner, { value: controller });\n for (const notice of notices) {\n const key = keyOf(notice);\n const watch = this.#watches.get(key);\n if (watch) watch.since = Math.min(watch.since, since);\n else this.#watches.set(key, { controllers: new Set(), since });\n this.#watches.get(key)!.controllers.add(new WeakRef(controller));\n this.#forget.register(controller.signal, key);\n }\n this.#abortIfRevoked(controller, notices, since);\n return controller.signal;\n }\n\n /** Records the revocation in the caller's transaction; the NOTIFY goes out on commit. */\n static async revoke(\n tx: unknown,\n notice: RevocationNotice,\n at: number = Date.now(),\n ): Promise<void> {\n const db = tx as Database;\n await db.execute(sql`\n insert into parlor_auth_revocations (kind, id, revoked_at)\n values (${notice.kind}, ${notice.id}, ${new Date(at).toISOString()})\n on conflict (kind, id) do update set revoked_at = excluded.revoked_at`);\n const payload: Revocation = { kind: notice.kind, id: notice.id, at };\n await db.execute(\n sql`select pg_notify(${REVOCATION_CHANNEL}, ${JSON.stringify(payload)})`,\n );\n }\n\n async stop(): Promise<void> {\n this.#stopped = true;\n this.#generation += 1;\n if (this.#retry !== undefined) clearTimeout(this.#retry);\n const unlisten = this.#unlisten;\n this.#unlisten = undefined;\n await unlisten?.().catch(() => {});\n }\n\n async #start(): Promise<void> {\n await this.#prune();\n if (!this.#database.listen) {\n this.#mode = \"checking\";\n return;\n }\n try {\n await this.#connect(this.#now() - this.#horizonMs);\n } catch (error) {\n console.warn(\"[parlor] revocations: LISTEN failed, checking per call:\", error);\n this.#mode = \"checking\";\n this.#reconnect(this.#now());\n }\n }\n\n async #connect(since: number): Promise<void> {\n const generation = ++this.#generation;\n const unlisten = await this.#database.listen!(\n REVOCATION_CHANNEL,\n (payload) => this.#receive(payload),\n { onLost: () => this.#lost(generation) },\n );\n if (generation !== this.#generation) {\n await unlisten().catch(() => {});\n return;\n }\n this.#unlisten = unlisten;\n const revocations = await this.#load(since);\n if (generation !== this.#generation) return;\n for (const revocation of revocations) this.#apply(revocation);\n this.#mode = \"following\";\n }\n\n #lost(generation: number): void {\n if (generation !== this.#generation || this.#stopped) return;\n this.#generation += 1;\n this.#unlisten = undefined;\n this.#mode = \"checking\";\n this.#reconnect(this.#now());\n }\n\n #reconnect(lostAt: number): void {\n if (this.#reconnecting) return;\n this.#reconnecting = true;\n let delay = this.#relistenBaseMs;\n const attempt = async () => {\n this.#retry = undefined;\n if (this.#stopped) return;\n try {\n await this.#connect(Math.min(lostAt, this.#now() - this.#horizonMs));\n this.#reconnecting = false;\n } catch (error) {\n console.warn(\"[parlor] revocations: LISTEN failed, retrying:\", error);\n this.#retry = setTimeout(attempt, delay);\n delay = Math.min(delay * 2, this.#relistenMaxMs);\n }\n };\n this.#retry = setTimeout(attempt, 0);\n }\n\n #receive(payload: string): void {\n try {\n this.#apply(JSON.parse(payload) as Revocation);\n } catch {\n console.warn(\"[parlor] revocations: ignored a malformed notice\");\n }\n }\n\n #apply(revocation: Revocation): void {\n const key = keyOf(revocation);\n const known = this.#revoked.get(key);\n if (known === undefined || revocation.at > known)\n this.#revoked.set(key, revocation.at);\n this.#sweepExpired();\n const watch = this.#watches.get(key);\n if (!watch || revocation.at < watch.since) return;\n this.#watches.delete(key);\n for (const ref of watch.controllers) ref.deref()?.abort();\n }\n\n #abortIfRevoked(\n controller: AbortController,\n notices: readonly RevocationNotice[],\n since: number,\n ): void {\n const floor = Math.max(since, this.#now() - this.#horizonMs);\n if (this.#mode === \"following\") {\n const hit = notices.some(\n (notice) => (this.#revoked.get(keyOf(notice)) ?? -1) >= floor,\n );\n if (hit) controller.abort();\n return;\n }\n Promise.all(notices.map((notice) => this.#lookup(notice))).then(\n (found) => {\n if (found.some((at) => at !== undefined && at >= floor)) controller.abort();\n },\n () => controller.abort(),\n );\n }\n\n #sweepExpired(): void {\n const now = this.#now();\n if (now - this.#sweptAt < this.#horizonMs) return;\n this.#sweptAt = now;\n for (const [key, at] of this.#revoked) {\n if (at < now - this.#horizonMs) this.#revoked.delete(key);\n }\n }\n\n #sweepWatch(key: string): void {\n const watch = this.#watches.get(key);\n if (!watch) return;\n for (const ref of watch.controllers) if (!ref.deref()) watch.controllers.delete(ref);\n if (watch.controllers.size === 0) this.#watches.delete(key);\n }\n\n async #lookup(notice: RevocationNotice): Promise<number | undefined> {\n const rows = rowsOf<{ revoked_at: string | Date }>(\n await (this.#database.read() as Database).execute(sql`\n select revoked_at from parlor_auth_revocations\n where kind = ${notice.kind} and id = ${notice.id}`),\n );\n const row = rows[0];\n return row ? new Date(row.revoked_at).getTime() : undefined;\n }\n\n async #load(since: number): Promise<Revocation[]> {\n const rows = rowsOf<{\n kind: Revocation[\"kind\"];\n id: string;\n revoked_at: string | Date;\n }>(\n await (this.#database.read() as Database).execute(sql`\n select kind, id, revoked_at from parlor_auth_revocations\n where revoked_at >= ${new Date(since).toISOString()}`),\n );\n return rows.map((row) => ({\n kind: row.kind,\n id: row.id,\n at: new Date(row.revoked_at).getTime(),\n }));\n }\n\n async #prune(): Promise<void> {\n const cutoff = new Date(this.#now() - this.#horizonMs).toISOString();\n await (this.#database.read() as Database).execute(\n sql`delete from parlor_auth_revocations where revoked_at < ${cutoff}`,\n );\n }\n}\n"]}
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type AnyPluginRoute,\n type PluginHost,\n pluginRoute,\n type PublicPluginRoute,\n} from \"@parlor/server\";\n\nimport { AUTH_PLUGIN, CONSENT_PATH, type ParlorAuthSettings } from \"./better-auth.js\";\nimport { escape, failure, page } from \"./pages.js\";\nimport type { BetterAuthInstance } from \"./provider.js\";\n\ninterface RouteDeps {\n readonly instance: BetterAuthInstance;\n readonly settings: ParlorAuthSettings;\n readonly host: PluginHost;\n}\n\n/** A client's name is self-declared; only an https client id proves who publishes it. */\nfunction publisherOf(clientId: string): string {\n if (!clientId.startsWith(\"https://\"))\n return \"This agent named itself; its publisher is not verified.\";\n return `Published by <strong>${escape(new URL(clientId).host)}</strong>.`;\n}\n\nfunction redirectOrigin(query: URLSearchParams): string | undefined {\n try {\n return new URL(query.get(\"redirect_uri\") ?? \"\").origin;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Better Auth's endpoints under `/_parlor/auth`, the OAuth discovery documents MCP clients\n * read at the origin root, and the consent page an MCP client's authorization stops at.\n */\nexport function authRoutes({ instance, settings, host }: RouteDeps): AnyPluginRoute[] {\n const forward = (method: \"GET\" | \"POST\", path: `/${string}`): PublicPluginRoute => ({\n method,\n path,\n access: \"public\",\n handle: (request) => instance.handler(request),\n });\n const appName = () => instance.options.appName ?? new URL(settings.origin).host;\n\n const consentPage = pluginRoute({\n method: \"GET\",\n path: CONSENT_PATH,\n access: [\"user\"],\n handle: async (request) => {\n const query = new URL(request.url).searchParams;\n const clientId = query.get(\"client_id\");\n const target = redirectOrigin(query);\n if (!clientId || !target || !query.get(\"sig\")) {\n return failure(\"This authorization request is incomplete.\", 400);\n }\n const session = await instance.api.getSession({ headers: request.headers });\n if (!session) return failure(\"Sign in again to continue.\", 401);\n const { adapter } = await instance.$context;\n const client = await adapter.findOne<{ name?: string | null }>({\n model: \"oauthClient\",\n where: [{ field: \"clientId\", value: clientId }],\n });\n if (!client) return failure(\"This agent is not registered.\", 400);\n const agent = client.name || clientId;\n const app = appName();\n const offline = (query.get(\"scope\") ?? \"\").split(\" \").includes(\"offline_access\");\n const body = `\n<h1>Allow ${escape(agent)} to use ${escape(app)}?</h1>\n<p>${publisherOf(clientId)}</p>\n<p>Signed in as <strong>${escape(session.user.email)}</strong>.</p>\n<ul>\n<li>It can do anything you can do in ${escape(app)}, as you. Actions that ask for confirmation still ask you first.</li>\n<li>${offline ? \"It stays connected until you revoke it in your account settings.\" : \"Its access ends after a few minutes.\"}</li>\n<li>You will be sent back to <strong>${escape(new URL(target).host)}</strong>.</li>\n</ul>\n<form method=\"post\" action=\"${escape(`${host.basePath}/${AUTH_PLUGIN}${CONSENT_PATH}`)}\">\n<input type=\"hidden\" name=\"oauth_query\" value=\"${escape(query.toString())}\">\n<button type=\"submit\" name=\"accept\" value=\"false\">Deny</button>\n<button type=\"submit\" name=\"accept\" value=\"true\" autofocus>Allow</button>\n</form>`;\n return page(`Allow ${agent}?`, body, [\"'self'\", target]);\n },\n });\n\n const consentAnswer = pluginRoute({\n method: \"POST\",\n path: CONSENT_PATH,\n access: [\"user\"],\n handle: async (request) => {\n if (request.headers.get(\"origin\") !== settings.origin) {\n return failure(\"This answer did not come from the consent page.\", 403);\n }\n const form = new URLSearchParams(await request.text());\n const oauthQuery = form.get(\"oauth_query\");\n const accept = form.get(\"accept\");\n if (!oauthQuery || (accept !== \"true\" && accept !== \"false\")) {\n return failure(\"This answer is incomplete.\", 400);\n }\n const headers = new Headers({\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n origin: settings.origin,\n });\n const cookie = request.headers.get(\"cookie\");\n if (cookie) headers.set(\"cookie\", cookie);\n const answer = await instance.handler(\n new Request(`${settings.baseURL}/oauth2/consent`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ accept: accept === \"true\", oauth_query: oauthQuery }),\n }),\n );\n const result = (await answer.json().catch(() => undefined)) as\n | { url?: string; redirect_uri?: string; message?: string }\n | undefined;\n const location = result?.url ?? result?.redirect_uri;\n if (!answer.ok || !location) {\n return failure(\n result?.message ?? \"The authorization could not be completed.\",\n 400,\n );\n }\n return new Response(null, { status: 303, headers: { location } });\n },\n });\n\n return [\n forward(\"GET\", \"/**\"),\n forward(\"POST\", \"/**\"),\n forward(\"GET\", \"/.well-known/oauth-protected-resource\"),\n forward(\"GET\", \"/.well-known/oauth-protected-resource/**\"),\n forward(\"GET\", \"/.well-known/oauth-authorization-server/**\"),\n consentPage,\n consentAnswer,\n ];\n}\n"]}
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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","sourcesContent":["// The Better Auth tables for parlorAuth() defaults, as `auth generate` writes them for better-auth 1.7.7.\n// `schema.spec.ts` regenerates them and fails on any difference, so a Better Auth bump updates this file.\nimport { relations } from \"drizzle-orm\";\nimport {\n pgTable,\n text,\n timestamp,\n boolean,\n integer,\n jsonb,\n index,\n uniqueIndex,\n} from \"drizzle-orm/pg-core\";\n\nexport const user = pgTable(\"user\", {\n id: text(\"id\").primaryKey(),\n name: text(\"name\").notNull(),\n email: text(\"email\").notNull().unique(),\n emailVerified: boolean(\"email_verified\").default(false).notNull(),\n image: text(\"image\"),\n createdAt: timestamp(\"created_at\").defaultNow().notNull(),\n updatedAt: timestamp(\"updated_at\")\n .defaultNow()\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n});\n\nexport const session = pgTable(\n \"session\",\n {\n id: text(\"id\").primaryKey(),\n expiresAt: timestamp(\"expires_at\").notNull(),\n token: text(\"token\").notNull().unique(),\n createdAt: timestamp(\"created_at\").defaultNow().notNull(),\n updatedAt: timestamp(\"updated_at\")\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n ipAddress: text(\"ip_address\"),\n userAgent: text(\"user_agent\"),\n userId: text(\"user_id\")\n .notNull()\n .references(() => user.id, { onDelete: \"cascade\" }),\n },\n (table) => [index(\"session_userId_idx\").on(table.userId)],\n);\n\nexport const account = pgTable(\n \"account\",\n {\n id: text(\"id\").primaryKey(),\n accountId: text(\"account_id\").notNull(),\n providerId: text(\"provider_id\").notNull(),\n userId: text(\"user_id\")\n .notNull()\n .references(() => user.id, { onDelete: \"cascade\" }),\n accessToken: text(\"access_token\"),\n refreshToken: text(\"refresh_token\"),\n idToken: text(\"id_token\"),\n accessTokenExpiresAt: timestamp(\"access_token_expires_at\"),\n refreshTokenExpiresAt: timestamp(\"refresh_token_expires_at\"),\n scope: text(\"scope\"),\n password: text(\"password\"),\n createdAt: timestamp(\"created_at\").defaultNow().notNull(),\n updatedAt: timestamp(\"updated_at\")\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n },\n (table) => [index(\"account_userId_idx\").on(table.userId)],\n);\n\nexport const verification = pgTable(\n \"verification\",\n {\n id: text(\"id\").primaryKey(),\n identifier: text(\"identifier\").notNull(),\n value: text(\"value\").notNull(),\n expiresAt: timestamp(\"expires_at\").notNull(),\n createdAt: timestamp(\"created_at\").defaultNow().notNull(),\n updatedAt: timestamp(\"updated_at\")\n .defaultNow()\n .$onUpdate(() => /* @__PURE__ */ new Date())\n .notNull(),\n },\n (table) => [index(\"verification_identifier_idx\").on(table.identifier)],\n);\n\nexport const jwks = pgTable(\"jwks\", {\n id: text(\"id\").primaryKey(),\n publicKey: text(\"public_key\").notNull(),\n privateKey: text(\"private_key\").notNull(),\n createdAt: timestamp(\"created_at\").notNull(),\n expiresAt: timestamp(\"expires_at\"),\n alg: text(\"alg\"),\n crv: text(\"crv\"),\n});\n\nexport const oauthClient = pgTable(\n \"oauth_client\",\n {\n id: text(\"id\").primaryKey(),\n clientId: text(\"client_id\").notNull().unique(),\n clientSecret: text(\"client_secret\"),\n clientDiscoveryId: text(\"client_discovery_id\"),\n disabled: boolean(\"disabled\").default(false),\n skipConsent: boolean(\"skip_consent\"),\n enableEndSession: boolean(\"enable_end_session\"),\n subjectType: text(\"subject_type\"),\n scopes: text(\"scopes\").array(),\n clientCredentialsScopes: text(\"client_credentials_scopes\").array().default([]),\n userId: text(\"user_id\").references(() => user.id, { onDelete: \"cascade\" }),\n createdAt: timestamp(\"created_at\"),\n updatedAt: timestamp(\"updated_at\"),\n name: text(\"name\"),\n uri: text(\"uri\"),\n icon: text(\"icon\"),\n contacts: text(\"contacts\").array(),\n tos: text(\"tos\"),\n policy: text(\"policy\"),\n softwareId: text(\"software_id\"),\n softwareVersion: text(\"software_version\"),\n softwareStatement: text(\"software_statement\"),\n redirectUris: text(\"redirect_uris\").array().notNull(),\n postLogoutRedirectUris: text(\"post_logout_redirect_uris\").array(),\n backchannelLogoutUri: text(\"backchannel_logout_uri\"),\n backchannelLogoutSessionRequired: boolean(\"backchannel_logout_session_required\"),\n tokenEndpointAuthMethod: text(\"token_endpoint_auth_method\"),\n applicationType: text(\"application_type\"),\n jwks: text(\"jwks\"),\n jwksUri: text(\"jwks_uri\"),\n grantTypes: text(\"grant_types\").array(),\n responseTypes: text(\"response_types\").array(),\n requirePKCE: boolean(\"require_pkce\"),\n dpopBoundAccessTokens: boolean(\"dpop_bound_access_tokens\").default(false),\n referenceId: text(\"reference_id\"),\n metadata: jsonb(\"metadata\"),\n },\n (table) => [index(\"oauthClient_userId_idx\").on(table.userId)],\n);\n\nexport const oauthResource = pgTable(\"oauth_resource\", {\n id: text(\"id\").primaryKey(),\n identifier: text(\"identifier\").notNull().unique(),\n name: text(\"name\").notNull(),\n accessTokenTtl: integer(\"access_token_ttl\"),\n refreshTokenTtl: integer(\"refresh_token_ttl\"),\n signingAlgorithm: text(\"signing_algorithm\"),\n signingKeyId: text(\"signing_key_id\"),\n allowedScopes: text(\"allowed_scopes\").array(),\n customClaims: jsonb(\"custom_claims\"),\n dpopBoundAccessTokensRequired: boolean(\"dpop_bound_access_tokens_required\").default(\n false,\n ),\n disabled: boolean(\"disabled\").default(false),\n createdAt: timestamp(\"created_at\"),\n updatedAt: timestamp(\"updated_at\"),\n policyVersion: integer(\"policy_version\").default(1),\n metadata: jsonb(\"metadata\"),\n});\n\nexport const oauthClientResource = pgTable(\n \"oauth_client_resource\",\n {\n id: text(\"id\").primaryKey(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => oauthClient.clientId, { onDelete: \"cascade\" }),\n resourceId: text(\"resource_id\")\n .notNull()\n .references(() => oauthResource.identifier, { onDelete: \"cascade\" }),\n metadata: jsonb(\"metadata\"),\n createdAt: timestamp(\"created_at\"),\n },\n (table) => [\n uniqueIndex(\"oauthClientResource_clientId_resourceId_uidx\").on(\n table.clientId,\n table.resourceId,\n ),\n index(\"oauthClientResource_clientId_idx\").on(table.clientId),\n index(\"oauthClientResource_resourceId_idx\").on(table.resourceId),\n ],\n);\n\nexport const oauthRefreshToken = pgTable(\n \"oauth_refresh_token\",\n {\n id: text(\"id\").primaryKey(),\n token: text(\"token\").notNull().unique(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => oauthClient.clientId, { onDelete: \"cascade\" }),\n sessionId: text(\"session_id\").references(() => session.id, {\n onDelete: \"set null\",\n }),\n userId: text(\"user_id\")\n .notNull()\n .references(() => user.id, { onDelete: \"cascade\" }),\n referenceId: text(\"reference_id\"),\n authorizationCodeId: text(\"authorization_code_id\"),\n resources: text(\"resources\").array(),\n requestedUserInfoClaims: text(\"requested_user_info_claims\").array(),\n expiresAt: timestamp(\"expires_at\").notNull(),\n createdAt: timestamp(\"created_at\").notNull(),\n revoked: timestamp(\"revoked\"),\n rotatedAt: timestamp(\"rotated_at\"),\n rotationReplayResponse: text(\"rotation_replay_response\"),\n rotationReplayExpiresAt: timestamp(\"rotation_replay_expires_at\"),\n authTime: timestamp(\"auth_time\"),\n confirmation: jsonb(\"confirmation\"),\n scopes: text(\"scopes\").array().notNull(),\n },\n (table) => [\n index(\"oauthRefreshToken_clientId_idx\").on(table.clientId),\n index(\"oauthRefreshToken_sessionId_idx\").on(table.sessionId),\n index(\"oauthRefreshToken_userId_idx\").on(table.userId),\n index(\"oauthRefreshToken_authorizationCodeId_idx\").on(table.authorizationCodeId),\n ],\n);\n\nexport const oauthAccessToken = pgTable(\n \"oauth_access_token\",\n {\n id: text(\"id\").primaryKey(),\n token: text(\"token\").notNull().unique(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => oauthClient.clientId, { onDelete: \"cascade\" }),\n sessionId: text(\"session_id\").references(() => session.id, {\n onDelete: \"set null\",\n }),\n userId: text(\"user_id\").references(() => user.id, { onDelete: \"cascade\" }),\n referenceId: text(\"reference_id\"),\n authorizationCodeId: text(\"authorization_code_id\"),\n resources: text(\"resources\").array(),\n requestedUserInfoClaims: text(\"requested_user_info_claims\").array(),\n refreshId: text(\"refresh_id\").references(() => oauthRefreshToken.id, {\n onDelete: \"cascade\",\n }),\n expiresAt: timestamp(\"expires_at\").notNull(),\n createdAt: timestamp(\"created_at\").notNull(),\n revoked: timestamp(\"revoked\"),\n confirmation: jsonb(\"confirmation\"),\n scopes: text(\"scopes\").array().notNull(),\n },\n (table) => [\n index(\"oauthAccessToken_clientId_idx\").on(table.clientId),\n index(\"oauthAccessToken_sessionId_idx\").on(table.sessionId),\n index(\"oauthAccessToken_userId_idx\").on(table.userId),\n index(\"oauthAccessToken_authorizationCodeId_idx\").on(table.authorizationCodeId),\n index(\"oauthAccessToken_refreshId_idx\").on(table.refreshId),\n ],\n);\n\nexport const oauthConsent = pgTable(\n \"oauth_consent\",\n {\n id: text(\"id\").primaryKey(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => oauthClient.clientId, { onDelete: \"cascade\" }),\n userId: text(\"user_id\").references(() => user.id, { onDelete: \"cascade\" }),\n referenceId: text(\"reference_id\"),\n resources: text(\"resources\").array(),\n requestedUserInfoClaims: text(\"requested_user_info_claims\").array(),\n scopes: text(\"scopes\").array().notNull(),\n createdAt: timestamp(\"created_at\").notNull(),\n updatedAt: timestamp(\"updated_at\").notNull(),\n },\n (table) => [\n index(\"oauthConsent_clientId_idx\").on(table.clientId),\n index(\"oauthConsent_userId_idx\").on(table.userId),\n ],\n);\n\nexport const oauthClientAssertion = pgTable(\"oauth_client_assertion\", {\n id: text(\"id\").primaryKey(),\n expiresAt: timestamp(\"expires_at\").notNull(),\n});\n\nexport const userRelations = relations(user, ({ many }) => ({\n sessions: many(session),\n accounts: many(account),\n oauthClients: many(oauthClient),\n oauthRefreshTokens: many(oauthRefreshToken),\n oauthAccessTokens: many(oauthAccessToken),\n oauthConsents: many(oauthConsent),\n}));\n\nexport const sessionRelations = relations(session, ({ one, many }) => ({\n user: one(user, {\n fields: [session.userId],\n references: [user.id],\n }),\n oauthRefreshTokens: many(oauthRefreshToken),\n oauthAccessTokens: many(oauthAccessToken),\n}));\n\nexport const accountRelations = relations(account, ({ one }) => ({\n user: one(user, {\n fields: [account.userId],\n references: [user.id],\n }),\n}));\n\nexport const oauthClientRelations = relations(oauthClient, ({ one, many }) => ({\n user: one(user, {\n fields: [oauthClient.userId],\n references: [user.id],\n }),\n oauthClientResources: many(oauthClientResource),\n oauthRefreshTokens: many(oauthRefreshToken),\n oauthAccessTokens: many(oauthAccessToken),\n oauthConsents: many(oauthConsent),\n}));\n\nexport const oauthResourceRelations = relations(oauthResource, ({ many }) => ({\n oauthClientResources: many(oauthClientResource),\n}));\n\nexport const oauthClientResourceRelations = relations(oauthClientResource, ({ one }) => ({\n oauthClient: one(oauthClient, {\n fields: [oauthClientResource.clientId],\n references: [oauthClient.clientId],\n }),\n oauthResource: one(oauthResource, {\n fields: [oauthClientResource.resourceId],\n references: [oauthResource.identifier],\n }),\n}));\n\nexport const oauthRefreshTokenRelations = relations(\n oauthRefreshToken,\n ({ one, many }) => ({\n oauthClient: one(oauthClient, {\n fields: [oauthRefreshToken.clientId],\n references: [oauthClient.clientId],\n }),\n session: one(session, {\n fields: [oauthRefreshToken.sessionId],\n references: [session.id],\n }),\n user: one(user, {\n fields: [oauthRefreshToken.userId],\n references: [user.id],\n }),\n oauthAccessTokens: many(oauthAccessToken),\n }),\n);\n\nexport const oauthAccessTokenRelations = relations(oauthAccessToken, ({ one }) => ({\n oauthClient: one(oauthClient, {\n fields: [oauthAccessToken.clientId],\n references: [oauthClient.clientId],\n }),\n session: one(session, {\n fields: [oauthAccessToken.sessionId],\n references: [session.id],\n }),\n user: one(user, {\n fields: [oauthAccessToken.userId],\n references: [user.id],\n }),\n oauthRefreshToken: one(oauthRefreshToken, {\n fields: [oauthAccessToken.refreshId],\n references: [oauthRefreshToken.id],\n }),\n}));\n\nexport const oauthConsentRelations = relations(oauthConsent, ({ one }) => ({\n oauthClient: one(oauthClient, {\n fields: [oauthConsent.clientId],\n references: [oauthClient.clientId],\n }),\n user: one(user, {\n fields: [oauthConsent.userId],\n references: [user.id],\n }),\n}));\n"]}
|
package/dist/statements.d.ts
CHANGED
|
@@ -82,6 +82,8 @@ export declare function vouchStatement(app: string, voucher: string, device: str
|
|
|
82
82
|
export declare function removeStatement(app: string, actor: string, device: string, at: number): RemoveStatement;
|
|
83
83
|
/** The fragment Parlor Host's loopback redirect carries back to the browser that approved `connect`. */
|
|
84
84
|
export declare const HOST_PAIRING_FRAGMENT = "parlor-host-pairing";
|
|
85
|
+
/** Where a browser keeps that secret, for its first prompt to prove. */
|
|
86
|
+
export declare const HOST_PAIRING_KEY = "parlor:host-pairing";
|
|
85
87
|
/**
|
|
86
88
|
* The browser that approved `connect` gets the host's pairing secret through the loopback
|
|
87
89
|
* redirect, never through the app; this binds it to one device's keys.
|
package/dist/statements.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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"}
|
package/dist/statements.js
CHANGED
|
@@ -102,6 +102,8 @@ export function removeStatement(app, actor, device, at) {
|
|
|
102
102
|
}
|
|
103
103
|
/** The fragment Parlor Host's loopback redirect carries back to the browser that approved `connect`. */
|
|
104
104
|
export const HOST_PAIRING_FRAGMENT = "parlor-host-pairing";
|
|
105
|
+
/** Where a browser keeps that secret, for its first prompt to prove. */
|
|
106
|
+
export const HOST_PAIRING_KEY = "parlor:host-pairing";
|
|
105
107
|
const pairingKey = (secret) => crypto.subtle.importKey("raw", new Uint8Array(decodeBase64url(secret)), { name: "HMAC", hash: "SHA-256" }, false, ["sign", "verify"]);
|
|
106
108
|
const pairingBytes = (deviceId, signingKey) => canonicalBytes({
|
|
107
109
|
v: 1,
|
package/dist/statements.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DeviceSignature, PresenceSignature } from \"@parlor/capabilities\";\nimport {\n canonicalBytes,\n decodeBase64url,\n encodeBase64url,\n} from \"@parlor/capabilities/encoding\";\nimport type { AnswerToSign, LoggedItem, PromptToSign } from \"@parlor/chat\";\nimport type { DeviceId } from \"@parlor/core\";\nimport type { PresenceKey } from \"@parlor/server\";\n\nimport { derToRaw, verifyEs256 } from \"./es256.js\";\n\nexport interface PromptStatement {\n readonly v: 1;\n readonly kind: \"prompt\";\n /** The app's origin: a statement for one app is worthless to another. */\n readonly app: string;\n readonly threadId: string;\n readonly turnId: string;\n /** `<hostId>/<agentId>`: a prompt cannot be replayed to another agent. */\n readonly agent: string;\n /** base64url SHA-256 of the prompt text */\n readonly digest: string;\n readonly at: number;\n}\n\nexport interface AnswerStatement {\n readonly v: 1;\n readonly kind: \"answer\";\n readonly app: string;\n readonly threadId: string;\n readonly askId: string;\n /** An option id, `\"declined\"`, or the digest of a form's values. */\n readonly choice: string;\n readonly at: number;\n}\n\n/** A linked device's word that the device behind `commitment` is the user's. */\nexport interface VouchStatement {\n readonly v: 1;\n readonly kind: \"vouch\";\n readonly app: string;\n readonly voucher: string;\n readonly device: string;\n /** `deviceCommitment` of the new device's keys, as the voucher checked it. */\n readonly commitment: string;\n readonly at: number;\n}\n\n/** A linked device's word, with presence, that `device` should no longer use the user's agents. */\nexport interface RemoveStatement {\n readonly v: 1;\n readonly kind: \"remove\";\n readonly app: string;\n readonly actor: string;\n readonly device: string;\n readonly at: number;\n}\n\nexport type Statement =\n | PromptStatement\n | AnswerStatement\n | VouchStatement\n | RemoveStatement;\n\nexport interface Signed<S extends Statement> {\n readonly statement: S;\n readonly deviceId: DeviceId;\n readonly signature: S extends AnswerStatement\n ? DeviceSignature | PresenceSignature\n : S extends VouchStatement | RemoveStatement\n ? PresenceSignature\n : DeviceSignature;\n}\n\n/** A device key the verifier pinned itself, never one that travelled with the statement. */\nexport interface PinnedDevice {\n readonly deviceId: DeviceId;\n readonly signingKey: JsonWebKey;\n readonly presenceKey?: PresenceKey | undefined;\n}\n\nexport type VerifyOutcome = \"valid\" | \"invalid\" | \"stale\" | \"presence_required\";\n\nconst FUTURE_SKEW_MS = 5 * 60_000;\nconst USER_PRESENT = 0x01;\nconst USER_VERIFIED = 0x04;\nconst AUTH_DATA_MIN_BYTES = 37;\n\nexport interface VerifyOptions {\n readonly requirePresence: boolean;\n readonly now: number;\n readonly maxAgeMs: number;\n}\n\nconst sha256 = async (bytes: Uint8Array): Promise<Uint8Array> =>\n new Uint8Array(await crypto.subtle.digest(\"SHA-256\", new Uint8Array(bytes)));\n\nconst digestOf = async (bytes: Uint8Array) => encodeBase64url(await sha256(bytes));\n\nexport async function promptStatement(\n app: string,\n prompt: PromptToSign,\n at: number,\n): Promise<PromptStatement> {\n return {\n v: 1,\n kind: \"prompt\",\n app,\n threadId: prompt.threadId,\n turnId: prompt.turnId,\n agent: `${prompt.agent.hostId}/${prompt.agent.agentId}`,\n digest: await digestOf(new TextEncoder().encode(prompt.text)),\n at,\n };\n}\n\nexport async function answerStatement(\n app: string,\n answer: AnswerToSign,\n at: number,\n): Promise<AnswerStatement> {\n return {\n v: 1,\n kind: \"answer\",\n app,\n threadId: answer.threadId,\n askId: answer.askId,\n choice:\n answer.values === undefined\n ? answer.choice\n : await digestOf(\n canonicalBytes({ choice: answer.choice, values: answer.values }),\n ),\n at,\n };\n}\n\nexport async function signedPrompt(\n app: string,\n item: LoggedItem<\"prompt\">,\n): Promise<Signed<PromptStatement> | undefined> {\n const { signed, agent, text } = item.body;\n if (!signed) return undefined;\n return {\n statement: await promptStatement(\n app,\n { threadId: item.threadId, turnId: item.turnId, agent, text },\n signed.at,\n ),\n deviceId: signed.deviceId,\n signature: signed.signature,\n };\n}\n\nexport function statementBytes(statement: Statement): Uint8Array {\n return canonicalBytes(statement);\n}\n\nconst CROCKFORD = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\nexport const LINK_CODE_LENGTH = 10;\n\n/**\n * What a new device shows to be linked: a hash of its keys, so whoever links it checks the\n * keys the backend hands over are the ones this device holds.\n */\nexport async function deviceCommitment(\n app: string,\n deviceId: string,\n signingKey: JsonWebKey,\n presenceKey: JsonWebKey | undefined,\n): Promise<string> {\n const point = (key: JsonWebKey) => ({ crv: key.crv, kty: key.kty, x: key.x, y: key.y });\n return digestOf(\n canonicalBytes({\n v: 1,\n kind: \"device\",\n app: new URL(app).origin,\n deviceId,\n signing: point(signingKey),\n presence: presenceKey ? point(presenceKey) : null,\n }),\n );\n}\n\n/** The commitment's first 50 bits in Crockford base32, short enough to type. */\nexport function linkCode(commitment: string): string {\n const bytes = decodeBase64url(commitment);\n let bits = 0n;\n for (let index = 0; index < 7; index += 1) bits = (bits << 8n) | BigInt(bytes[index]!);\n bits >>= 6n;\n let code = \"\";\n for (let index = 0; index < LINK_CODE_LENGTH; index += 1) {\n code = CROCKFORD[Number(bits & 31n)]! + code;\n bits >>= 5n;\n }\n return code;\n}\n\n/** Upper case, no separators, the letters Crockford reads as digits mapped back. */\nexport function normalizeLinkCode(typed: string): string {\n return typed\n .toUpperCase()\n .replace(/[\\s-]/g, \"\")\n .replace(/O/g, \"0\")\n .replace(/[IL]/g, \"1\");\n}\n\nexport function formatLinkCode(code: string): string {\n return `${code.slice(0, 4)}-${code.slice(4, 8)}-${code.slice(8)}`;\n}\n\nexport function vouchStatement(\n app: string,\n voucher: string,\n device: string,\n commitment: string,\n at: number,\n): VouchStatement {\n return {\n v: 1,\n kind: \"vouch\",\n app: new URL(app).origin,\n voucher,\n device,\n commitment,\n at,\n };\n}\n\nexport function removeStatement(\n app: string,\n actor: string,\n device: string,\n at: number,\n): RemoveStatement {\n return { v: 1, kind: \"remove\", app: new URL(app).origin, actor, device, at };\n}\n\n/** The fragment Parlor Host's loopback redirect carries back to the browser that approved `connect`. */\nexport const HOST_PAIRING_FRAGMENT = \"parlor-host-pairing\";\n\n/** Where a browser keeps that secret, for its first prompt to prove. */\nexport const HOST_PAIRING_KEY = \"parlor:host-pairing\";\n\nconst pairingKey = (secret: string) =>\n crypto.subtle.importKey(\n \"raw\",\n new Uint8Array(decodeBase64url(secret)),\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n [\"sign\", \"verify\"],\n );\n\nconst pairingBytes = (deviceId: string, signingKey: JsonWebKey) =>\n canonicalBytes({\n v: 1,\n kind: \"pairing\",\n deviceId,\n signingKey: {\n crv: signingKey.crv,\n kty: signingKey.kty,\n x: signingKey.x,\n y: signingKey.y,\n },\n });\n\n/**\n * The browser that approved `connect` gets the host's pairing secret through the loopback\n * redirect, never through the app; this binds it to one device's keys.\n */\nexport async function pairingProof(\n secret: string,\n deviceId: string,\n signingKey: JsonWebKey,\n): Promise<string> {\n const mac = await crypto.subtle.sign(\n \"HMAC\",\n await pairingKey(secret),\n new Uint8Array(pairingBytes(deviceId, signingKey)),\n );\n return encodeBase64url(new Uint8Array(mac));\n}\n\nexport async function checkPairingProof(\n secret: string,\n proof: string,\n deviceId: string,\n signingKey: JsonWebKey,\n): Promise<boolean> {\n try {\n return await crypto.subtle.verify(\n \"HMAC\",\n await pairingKey(secret),\n new Uint8Array(decodeBase64url(proof)),\n new Uint8Array(pairingBytes(deviceId, signingKey)),\n );\n } catch {\n return false;\n }\n}\n\ninterface ClientData {\n readonly type?: unknown;\n readonly challenge?: unknown;\n readonly origin?: unknown;\n readonly crossOrigin?: unknown;\n}\n\nasync function assertionHolds(\n statement: Statement,\n signature: DeviceSignature,\n presenceKey: PinnedDevice[\"presenceKey\"],\n): Promise<boolean> {\n if (presenceKey?.format !== \"webauthn\" || signature.presence !== \"user\") return false;\n if (\n signature.authenticatorData === undefined ||\n signature.clientDataJSON === undefined\n ) {\n return false;\n }\n if (signature.keyId !== presenceKey.credentialId) return false;\n if (new URL(statement.app).hostname !== presenceKey.rpId) return false;\n const clientDataBytes = decodeBase64url(signature.clientDataJSON);\n const clientData = JSON.parse(new TextDecoder().decode(clientDataBytes)) as ClientData;\n const challenge = await digestOf(statementBytes(statement));\n if (\n clientData.type !== \"webauthn.get\" ||\n clientData.challenge !== challenge ||\n clientData.origin !== statement.app ||\n clientData.crossOrigin === true\n ) {\n return false;\n }\n const authData = decodeBase64url(signature.authenticatorData);\n const flags = authData[32];\n if (authData.length < AUTH_DATA_MIN_BYTES || flags === undefined) return false;\n if ((flags & USER_PRESENT) === 0 || (flags & USER_VERIFIED) === 0) return false;\n const rpIdHash = await sha256(new TextEncoder().encode(presenceKey.rpId));\n if (encodeBase64url(authData.slice(0, 32)) !== encodeBase64url(rpIdHash)) return false;\n const raw = derToRaw(decodeBase64url(signature.signature));\n if (!raw) return false;\n const signed = new Uint8Array([...authData, ...(await sha256(clientDataBytes))]);\n return verifyEs256(presenceKey.publicKey, raw, signed);\n}\n\nasync function signatureHolds(\n statement: Statement,\n signature: DeviceSignature,\n pinned: PinnedDevice,\n): Promise<boolean> {\n if (signature.format === \"webauthn\") {\n return assertionHolds(statement, signature, pinned.presenceKey);\n }\n const bytes = statementBytes(statement);\n const raw = decodeBase64url(signature.signature);\n if (signature.presence === \"none\") return verifyEs256(pinned.signingKey, raw, bytes);\n const { presenceKey } = pinned;\n return presenceKey?.format === \"es256-raw\"\n ? verifyEs256(presenceKey.publicKey, raw, bytes)\n : false;\n}\n\nexport async function verifyStatement(\n signed: Signed<Statement>,\n pinned: PinnedDevice,\n options: VerifyOptions,\n): Promise<VerifyOutcome> {\n const { statement, signature } = signed;\n if (signed.deviceId !== pinned.deviceId) return \"invalid\";\n if (options.now - statement.at > options.maxAgeMs) return \"stale\";\n if (statement.at - options.now > FUTURE_SKEW_MS) return \"invalid\";\n if (options.requirePresence && signature.presence !== \"user\") {\n return \"presence_required\";\n }\n try {\n return (await signatureHolds(statement, signature, pinned)) ? \"valid\" : \"invalid\";\n } catch {\n return \"invalid\";\n }\n}\n"]}
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type AgentPrincipal, type HostPrincipal, type TurnBinding } from "@parlor/core";
|
|
2
|
-
import { type Delegation, type TurnDelegation } from "@parlor/server";
|
|
2
|
+
import { type AgentDelegation, type Delegation, type TurnDelegation } from "@parlor/server";
|
|
3
3
|
/** A host assertion's audience: signed by the computer's own key, per request. */
|
|
4
4
|
export declare const HOST_AUDIENCE = "parlor:host";
|
|
5
5
|
/** A turn token's audience: signed by the server, carried by the host's MCP proxy. */
|
|
6
6
|
export declare const TURN_AUDIENCE = "parlor:mcp";
|
|
7
7
|
export declare const HOST_ASSERTION_TYP = "parlor-host+jwt";
|
|
8
8
|
export declare const TURN_TOKEN_TYP = "parlor-turn+jwt";
|
|
9
|
+
/** An agent on the host's computer outside any turn: Claude Code or Codex in a terminal. */
|
|
10
|
+
export declare const AGENT_TOKEN_TYP = "parlor-agent+jwt";
|
|
9
11
|
/**
|
|
10
12
|
* A turn token never outlives the revocation horizon, or a revoked grant's token could
|
|
11
13
|
* verify after `RevocationSet` forgot the revocation.
|
|
@@ -19,6 +21,11 @@ export type Jws<A extends TokenAudience> = string & {
|
|
|
19
21
|
};
|
|
20
22
|
export type HostAssertion = Jws<typeof HOST_AUDIENCE>;
|
|
21
23
|
export type TurnToken = Jws<typeof TURN_AUDIENCE>;
|
|
24
|
+
declare const outsideTurns: unique symbol;
|
|
25
|
+
/** Same audience as a turn token, never mistaken for one: no turn, so no screen to drive. */
|
|
26
|
+
export type AgentToken = Jws<typeof TURN_AUDIENCE> & {
|
|
27
|
+
readonly [outsideTurns]: true;
|
|
28
|
+
};
|
|
22
29
|
/** What an `authorization` header carries, sorted by scheme and shape before any verification. */
|
|
23
30
|
export type Credential = {
|
|
24
31
|
readonly kind: "host";
|
|
@@ -26,6 +33,9 @@ export type Credential = {
|
|
|
26
33
|
} | {
|
|
27
34
|
readonly kind: "turn";
|
|
28
35
|
readonly token: TurnToken;
|
|
36
|
+
} | {
|
|
37
|
+
readonly kind: "agent";
|
|
38
|
+
readonly token: AgentToken;
|
|
29
39
|
} | {
|
|
30
40
|
readonly kind: "access";
|
|
31
41
|
readonly token: string;
|
|
@@ -65,5 +75,21 @@ export declare function verifyTurnToken(keys: TurnTokenKeys, token: TurnToken, n
|
|
|
65
75
|
export declare function agentPrincipalOf(claims: TurnTokenClaims): AgentPrincipal & {
|
|
66
76
|
readonly turn: TurnBinding;
|
|
67
77
|
};
|
|
78
|
+
export interface AgentTokenClaims {
|
|
79
|
+
readonly aud: typeof TURN_AUDIENCE;
|
|
80
|
+
readonly iss: string;
|
|
81
|
+
readonly sub: string;
|
|
82
|
+
readonly gid: string;
|
|
83
|
+
readonly hid: string;
|
|
84
|
+
readonly agt: string;
|
|
85
|
+
readonly iat: number;
|
|
86
|
+
readonly exp: number;
|
|
87
|
+
}
|
|
88
|
+
/** Mints a token for an agent on `host`'s computer outside any turn; the provider's `delegateAgent`. */
|
|
89
|
+
export declare function delegateAgent(keys: TurnTokenKeys, host: HostPrincipal, agent: AgentDelegation, now: number): Promise<Delegation>;
|
|
90
|
+
/** Signature, `aud`, `iss` and `exp` only; the caller then asks `RevocationSet` about `gid`. */
|
|
91
|
+
export declare function verifyAgentToken(keys: TurnTokenKeys, token: AgentToken, now: number): Promise<AgentTokenClaims>;
|
|
92
|
+
/** An external agent of the user: no turn, so `ui_*` reaches no screen and confirms go to the app. */
|
|
93
|
+
export declare function outsideAgentPrincipalOf(claims: AgentTokenClaims): AgentPrincipal;
|
|
68
94
|
export {};
|
|
69
95
|
//# sourceMappingURL=tokens.d.ts.map
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|