@parlor/auth 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +25 -2
- package/dist/account.d.ts +52 -0
- package/dist/account.d.ts.map +1 -0
- package/dist/account.js +114 -0
- package/dist/account.js.map +1 -0
- package/dist/audit.d.ts +10 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +130 -0
- package/dist/audit.js.map +1 -0
- package/dist/better-auth.d.ts +41 -0
- package/dist/better-auth.d.ts.map +1 -0
- package/dist/better-auth.js +118 -0
- package/dist/better-auth.js.map +1 -0
- package/dist/client/index.d.ts +43 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +465 -0
- package/dist/client/index.js.map +1 -0
- package/dist/database.d.ts +7 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +11 -0
- package/dist/database.js.map +1 -0
- package/dist/devices.d.ts +157 -0
- package/dist/devices.d.ts.map +1 -0
- package/dist/devices.js +398 -0
- package/dist/devices.js.map +1 -0
- package/dist/es256.d.ts +4 -0
- package/dist/es256.d.ts.map +1 -0
- package/dist/es256.js +44 -0
- package/dist/es256.js.map +1 -0
- package/dist/grants.d.ts +4 -0
- package/dist/grants.d.ts.map +1 -0
- package/dist/grants.js +6 -0
- package/dist/grants.js.map +1 -0
- package/dist/hosts.d.ts +116 -0
- package/dist/hosts.d.ts.map +1 -0
- package/dist/hosts.js +530 -0
- package/dist/hosts.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations.d.ts +3 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +17 -0
- package/dist/migrations.js.map +1 -0
- package/dist/pages.d.ts +4 -0
- package/dist/pages.d.ts.map +1 -0
- package/dist/pages.js +53 -0
- package/dist/pages.js.map +1 -0
- package/dist/provider.d.ts +74 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +286 -0
- package/dist/provider.js.map +1 -0
- package/dist/revocation.d.ts +51 -0
- package/dist/revocation.d.ts.map +1 -0
- package/dist/revocation.js +233 -0
- package/dist/revocation.js.map +1 -0
- package/dist/routes.d.ts +15 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +116 -0
- package/dist/routes.js.map +1 -0
- package/dist/schema.d.ts +2970 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +308 -0
- package/dist/schema.js.map +1 -0
- package/dist/statements.d.ts +92 -0
- package/dist/statements.d.ts.map +1 -0
- package/dist/statements.js +199 -0
- package/dist/statements.js.map +1 -0
- package/dist/tokens.d.ts +69 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +134 -0
- package/dist/tokens.js.map +1 -0
- package/dist/turn-keys.d.ts +16 -0
- package/dist/turn-keys.d.ts.map +1 -0
- package/dist/turn-keys.js +108 -0
- package/dist/turn-keys.js.map +1 -0
- package/package.json +57 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosts.js","sourceRoot":"","sources":["../src/hosts.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AGENTS_TAG, type ConnectedAgent, SESSIONS_TAG, type SignedInSession, } from "./account.js";
|
|
2
|
+
export { type AccountSummary, type ApprovingDevice, type ConnectedHost, createGrantKeys, type GrantKey, type GrantKeysOptions, type GrantKeys, HOST_ASSERTION_TTL_MS, HOST_CLIENT_ID, type HostAccountActions, hostAccountActions, type HostAssertionClaims, type HostAuthorizeRequest, type HostGrantDeps, type HostGrantResponse, type HostKeyExchange, hostPrincipalOf, type HostRedirect, hostRoutes, HOSTS_MIGRATION, HOSTS_TAG, MATCHING_CODE, verifyHostAssertion, } from "./hosts.js";
|
|
3
|
+
export { type ConnectedDevice, createDeviceRegistry, type DeviceAccountActions, deviceAccountActions, type DeviceActionDeps, type DeviceRegistry, DEVICE_LINKING_MIGRATION, type PendingDevice, DEVICES_MIGRATION, DEVICES_TAG, type PresenceKey, type RegisteredDevice, } from "./devices.js";
|
|
4
|
+
export { AUTH_BASE_PATH, MCP_SCOPE, parlorAuth, type ParlorAuthOptions, } from "./better-auth.js";
|
|
5
|
+
export { type BetterAuthInstance, betterAuthProvider, type BetterAuthProviderOptions, } from "./provider.js";
|
|
6
|
+
export { REVOCATION_CHANNEL, type RevocationMode, type RevocationNotice, RevocationSet, type RevocationSetOptions, } from "./revocation.js";
|
|
7
|
+
export { agentPrincipalOf, type Credential, credentialOf, delegate, HOST_ASSERTION_TYP, HOST_AUDIENCE, type HostAssertion, type Jws, MAX_TURN_TOKEN_TTL_MS, type TokenAudience, TURN_AUDIENCE, TURN_TOKEN_TYP, type TurnToken, type TurnTokenClaims, type TurnTokenKeys, verifyTurnToken, } from "./tokens.js";
|
|
8
|
+
export { answerStatement, type AnswerStatement, type PinnedDevice, promptStatement, type PromptStatement, removeStatement, type RemoveStatement, type Signed, checkPairingProof, deviceCommitment, formatLinkCode, HOST_PAIRING_FRAGMENT, LINK_CODE_LENGTH, linkCode, normalizeLinkCode, pairingProof, signedPrompt, type Statement, statementBytes, type VerifyOptions, type VerifyOutcome, verifyStatement, vouchStatement, type VouchStatement, } from "./statements.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,cAAc,EACnB,YAAY,EACZ,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,qBAAqB,EACrB,cAAc,EACd,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,YAAY,EACjB,UAAU,EACV,eAAe,EACf,SAAS,EACT,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,wBAAwB,EACxB,KAAK,aAAa,EAClB,iBAAiB,EACjB,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,GAAG,EACR,qBAAqB,EACrB,KAAK,aAAa,EAClB,aAAa,EACb,cAAc,EACd,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,eAAe,EACf,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,KAAK,SAAS,EACd,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,eAAe,EACf,cAAc,EACd,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AGENTS_TAG, SESSIONS_TAG, } from "./account.js";
|
|
2
|
+
export { createGrantKeys, HOST_ASSERTION_TTL_MS, HOST_CLIENT_ID, hostAccountActions, hostPrincipalOf, hostRoutes, HOSTS_MIGRATION, HOSTS_TAG, MATCHING_CODE, verifyHostAssertion, } from "./hosts.js";
|
|
3
|
+
export { createDeviceRegistry, deviceAccountActions, DEVICE_LINKING_MIGRATION, DEVICES_MIGRATION, DEVICES_TAG, } from "./devices.js";
|
|
4
|
+
export { AUTH_BASE_PATH, MCP_SCOPE, parlorAuth, } from "./better-auth.js";
|
|
5
|
+
export { betterAuthProvider, } from "./provider.js";
|
|
6
|
+
export { REVOCATION_CHANNEL, RevocationSet, } from "./revocation.js";
|
|
7
|
+
export { agentPrincipalOf, credentialOf, delegate, HOST_ASSERTION_TYP, HOST_AUDIENCE, MAX_TURN_TOKEN_TTL_MS, TURN_AUDIENCE, TURN_TOKEN_TYP, verifyTurnToken, } from "./tokens.js";
|
|
8
|
+
export { answerStatement, promptStatement, removeStatement, checkPairingProof, deviceCommitment, formatLinkCode, HOST_PAIRING_FRAGMENT, LINK_CODE_LENGTH, linkCode, normalizeLinkCode, pairingProof, signedPrompt, statementBytes, verifyStatement, vouchStatement, } from "./statements.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,YAAY,GAEb,MAAM,cAAc,CAAC;AACtB,OAAO,EAIL,eAAe,EAIf,qBAAqB,EACrB,cAAc,EAEd,kBAAkB,EAMlB,eAAe,EAEf,UAAU,EACV,eAAe,EACf,SAAS,EACT,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,oBAAoB,EAEpB,oBAAoB,EAGpB,wBAAwB,EAExB,iBAAiB,EACjB,WAAW,GAGZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,GAEX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,kBAAkB,GAEnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAGlB,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,aAAa,EAGb,qBAAqB,EAErB,aAAa,EACb,cAAc,EAId,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EAGf,eAAe,EAEf,eAAe,EAGf,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,EAEZ,cAAc,EAGd,eAAe,EACf,cAAc,GAEf,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,eAAO,MAAM,eAAe,EAAE,SAAS,SAAS,EAe/C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const AUTH_MIGRATIONS = [
|
|
2
|
+
{
|
|
3
|
+
id: "auth/0001_revocations",
|
|
4
|
+
sql: `
|
|
5
|
+
create table parlor_auth_revocations (
|
|
6
|
+
kind text not null,
|
|
7
|
+
id text not null,
|
|
8
|
+
revoked_at timestamptz not null,
|
|
9
|
+
primary key (kind, id)
|
|
10
|
+
)`,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
id: "auth/0002_revocations_revoked_at",
|
|
14
|
+
sql: "create index parlor_auth_revocations_revoked_at on parlor_auth_revocations (revoked_at)",
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAyB;IACnD;QACE,EAAE,EAAE,uBAAuB;QAC3B,GAAG,EAAE;;;;;;QAMD;KACL;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,GAAG,EAAE,yFAAyF;KAC/F;CACF,CAAC"}
|
package/dist/pages.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,SAAU,MAAM,WAKhC,CAAC;AAsBJ,wBAAgB,IAAI,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,QAAQ,CA2BV;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAOjE"}
|
package/dist/pages.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export const escape = (text) => text.replace(/[&<>"']/g, (char) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[char]);
|
|
3
|
+
const STYLE = `
|
|
4
|
+
:root { color-scheme: light dark; --bg: #f6f6f4; --card: #fff; --text: #1d1d1b; --muted: #5f5f5a; --line: #e2e2dc; --accent: #1d1d1b; --on-accent: #fff; }
|
|
5
|
+
@media (prefers-color-scheme: dark) { :root { --bg: #151514; --card: #1f1f1d; --text: #ededea; --muted: #a3a39d; --line: #34342f; --accent: #ededea; --on-accent: #151514; } }
|
|
6
|
+
* { box-sizing: border-box; }
|
|
7
|
+
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 16px; background: var(--bg); color: var(--text); font: 15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; }
|
|
8
|
+
main { width: 100%; max-width: 420px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 28px; }
|
|
9
|
+
h1 { font-size: 20px; line-height: 1.3; margin: 0 0 8px; }
|
|
10
|
+
p { margin: 0 0 12px; color: var(--muted); }
|
|
11
|
+
ul { margin: 0 0 20px; padding-left: 20px; }
|
|
12
|
+
li { margin-bottom: 6px; }
|
|
13
|
+
strong { color: var(--text); font-weight: 600; }
|
|
14
|
+
code { font: 0.9em ui-monospace, "SF Mono", Menlo, monospace; color: var(--text); }
|
|
15
|
+
form { display: flex; gap: 8px; justify-content: flex-end; margin: 0; }
|
|
16
|
+
button { font: inherit; font-weight: 600; padding: 9px 18px; border-radius: 8px; border: 1px solid var(--line); background: transparent; color: var(--text); cursor: pointer; }
|
|
17
|
+
button[value="true"], button[value="connect"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
|
|
18
|
+
button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
19
|
+
`;
|
|
20
|
+
const STYLE_HASH = createHash("sha256").update(STYLE).digest("base64");
|
|
21
|
+
export function page(title, body, formAction) {
|
|
22
|
+
const html = `<!doctype html>
|
|
23
|
+
<html lang="en">
|
|
24
|
+
<head>
|
|
25
|
+
<meta charset="utf-8">
|
|
26
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
27
|
+
<title>${escape(title)}</title>
|
|
28
|
+
<style>${STYLE}</style>
|
|
29
|
+
</head>
|
|
30
|
+
<body><main>${body}</main></body>
|
|
31
|
+
</html>`;
|
|
32
|
+
return new Response(html, {
|
|
33
|
+
headers: {
|
|
34
|
+
"content-type": "text/html; charset=utf-8",
|
|
35
|
+
"cache-control": "no-store",
|
|
36
|
+
"content-security-policy": [
|
|
37
|
+
"default-src 'none'",
|
|
38
|
+
`style-src 'sha256-${STYLE_HASH}'`,
|
|
39
|
+
`form-action ${formAction.join(" ")}`,
|
|
40
|
+
"frame-ancestors 'none'",
|
|
41
|
+
"base-uri 'none'",
|
|
42
|
+
].join("; "),
|
|
43
|
+
"x-content-type-options": "nosniff",
|
|
44
|
+
// no-referrer would make the form POST carry `Origin: null`.
|
|
45
|
+
"referrer-policy": "same-origin",
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export function failure(message, status) {
|
|
50
|
+
const response = page("Authorization failed", `<h1>Authorization failed</h1><p>${escape(message)}</p>`, ["'none'"]);
|
|
51
|
+
return new Response(response.body, { status, headers: response.headers });
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CACV,UAAU,EACV,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAE,CACnF,CAAC;AAEJ,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEF,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvE,MAAM,UAAU,IAAI,CAClB,KAAa,EACb,IAAY,EACZ,UAA6B;IAE7B,MAAM,IAAI,GAAG;;;;;SAKN,MAAM,CAAC,KAAK,CAAC;SACb,KAAK;;cAEA,IAAI;QACV,CAAC;IACP,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;QACxB,OAAO,EAAE;YACP,cAAc,EAAE,0BAA0B;YAC1C,eAAe,EAAE,UAAU;YAC3B,yBAAyB,EAAE;gBACzB,oBAAoB;gBACpB,qBAAqB,UAAU,GAAG;gBAClC,eAAe,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACrC,wBAAwB;gBACxB,iBAAiB;aAClB,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,wBAAwB,EAAE,SAAS;YACnC,6DAA6D;YAC7D,iBAAiB,EAAE,aAAa;SACjC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,MAAc;IACrD,MAAM,QAAQ,GAAG,IAAI,CACnB,sBAAsB,EACtB,mCAAmC,MAAM,CAAC,OAAO,CAAC,MAAM,EACxD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { type AuthProvider } from "@parlor/server";
|
|
2
|
+
import type { BetterAuthOptions } from "better-auth";
|
|
3
|
+
/** The slice of a Better Auth instance Parlor relies on. */
|
|
4
|
+
export interface BetterAuthInstance {
|
|
5
|
+
readonly options: BetterAuthOptions;
|
|
6
|
+
handler(request: Request): Promise<Response>;
|
|
7
|
+
readonly api: {
|
|
8
|
+
getSession(input: {
|
|
9
|
+
headers: Headers;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
readonly session: {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly userId: string;
|
|
14
|
+
};
|
|
15
|
+
readonly user: {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly email: string;
|
|
19
|
+
};
|
|
20
|
+
} | null>;
|
|
21
|
+
};
|
|
22
|
+
readonly $context: Promise<BetterAuthContext>;
|
|
23
|
+
}
|
|
24
|
+
interface Where {
|
|
25
|
+
readonly field: string;
|
|
26
|
+
readonly value: string;
|
|
27
|
+
}
|
|
28
|
+
export interface BetterAuthContext {
|
|
29
|
+
readonly authCookies: {
|
|
30
|
+
readonly sessionToken: {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
readonly adapter: {
|
|
35
|
+
findMany<T>(input: {
|
|
36
|
+
model: string;
|
|
37
|
+
where?: Where[];
|
|
38
|
+
}): Promise<T[]>;
|
|
39
|
+
findOne<T>(input: {
|
|
40
|
+
model: string;
|
|
41
|
+
where: Where[];
|
|
42
|
+
}): Promise<T | null>;
|
|
43
|
+
deleteMany(input: {
|
|
44
|
+
model: string;
|
|
45
|
+
where: Where[];
|
|
46
|
+
}): Promise<number>;
|
|
47
|
+
};
|
|
48
|
+
readonly secret: string;
|
|
49
|
+
readonly internalAdapter: {
|
|
50
|
+
listSessions(userId: string): Promise<StoredSession[]>;
|
|
51
|
+
deleteSession(token: string): Promise<void>;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export interface StoredSession {
|
|
55
|
+
readonly id: string;
|
|
56
|
+
readonly token: string;
|
|
57
|
+
readonly userId: string;
|
|
58
|
+
readonly createdAt: Date;
|
|
59
|
+
readonly updatedAt: Date;
|
|
60
|
+
readonly expiresAt: Date;
|
|
61
|
+
readonly ipAddress?: string | null | undefined;
|
|
62
|
+
readonly userAgent?: string | null | undefined;
|
|
63
|
+
}
|
|
64
|
+
export interface BetterAuthProviderOptions {
|
|
65
|
+
readonly instance: BetterAuthInstance;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sessions become user principals: a cookie on the same-origin web, a bearer token in
|
|
69
|
+
* native shells. Access tokens Better Auth issued to MCP clients become agent principals
|
|
70
|
+
* without a turn.
|
|
71
|
+
*/
|
|
72
|
+
export declare function betterAuthProvider({ instance, }: BetterAuthProviderOptions): AuthProvider;
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.js
ADDED
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { ANONYMOUS, asId, } from "@parlor/core";
|
|
2
|
+
import { createRegistry } from "@parlor/core/registry";
|
|
3
|
+
import { AuthFailure, REVOCATION_HORIZON_MS, } from "@parlor/server";
|
|
4
|
+
import { createLocalJWKSet, decodeProtectedHeader, errors, jwtVerify, } from "jose";
|
|
5
|
+
import { accountActions } from "./account.js";
|
|
6
|
+
import { AUDIT_MIGRATION, createAuditLog } from "./audit.js";
|
|
7
|
+
import { AUTH_PLUGIN, bridgeOf, MCP_SCOPE, } from "./better-auth.js";
|
|
8
|
+
import { createDeviceRegistry, deviceAccountActions, DEVICE_LINKING_MIGRATION, DEVICES_MIGRATION, } from "./devices.js";
|
|
9
|
+
import { grantIdOf } from "./grants.js";
|
|
10
|
+
import { createGrantKeys, hostAccountActions, hostPrincipalOf, HOSTS_MIGRATION, hostRoutes, verifyHostAssertion, } from "./hosts.js";
|
|
11
|
+
import { AUTH_MIGRATIONS } from "./migrations.js";
|
|
12
|
+
import { RevocationSet } from "./revocation.js";
|
|
13
|
+
import { authRoutes } from "./routes.js";
|
|
14
|
+
import { agentPrincipalOf, credentialOf, delegate, verifyTurnToken, } from "./tokens.js";
|
|
15
|
+
import { createTurnKeyStore, TURN_KEYS_MIGRATION, } from "./turn-keys.js";
|
|
16
|
+
function hasCookie(request, name) {
|
|
17
|
+
const cookie = request.headers.get("cookie");
|
|
18
|
+
if (!cookie)
|
|
19
|
+
return false;
|
|
20
|
+
return cookie.split(";").some((part) => part.trim().startsWith(`${name}=`));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Sessions become user principals: a cookie on the same-origin web, a bearer token in
|
|
24
|
+
* native shells. Access tokens Better Auth issued to MCP clients become agent principals
|
|
25
|
+
* without a turn.
|
|
26
|
+
*/
|
|
27
|
+
export function betterAuthProvider({ instance, }) {
|
|
28
|
+
const bridge = bridgeOf(instance.options);
|
|
29
|
+
const settings = bridge.settings;
|
|
30
|
+
let revocations;
|
|
31
|
+
let keys;
|
|
32
|
+
let grantKeys;
|
|
33
|
+
let turnKeys;
|
|
34
|
+
let devices;
|
|
35
|
+
const clientNames = new Map();
|
|
36
|
+
const authenticatedAt = new WeakMap();
|
|
37
|
+
const installed = () => {
|
|
38
|
+
if (!grantKeys || !turnKeys || !devices) {
|
|
39
|
+
throw new Error("The auth provider is not installed.");
|
|
40
|
+
}
|
|
41
|
+
return { grantKeys, turnKeys, devices };
|
|
42
|
+
};
|
|
43
|
+
const started = () => {
|
|
44
|
+
if (!revocations)
|
|
45
|
+
throw new Error("The auth provider is not installed.");
|
|
46
|
+
return revocations;
|
|
47
|
+
};
|
|
48
|
+
let preparingTurnKeys = false;
|
|
49
|
+
const ready = async () => {
|
|
50
|
+
await started().ready();
|
|
51
|
+
if (!preparingTurnKeys) {
|
|
52
|
+
preparingTurnKeys = true;
|
|
53
|
+
installed()
|
|
54
|
+
.turnKeys.keys()
|
|
55
|
+
.catch(() => {
|
|
56
|
+
preparingTurnKeys = false;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const loadKeys = async () => {
|
|
61
|
+
const response = await instance.handler(new Request(`${settings.baseURL}/jwks`));
|
|
62
|
+
if (!response.ok)
|
|
63
|
+
throw new Error(`Better Auth answered /jwks with ${response.status}`);
|
|
64
|
+
return createLocalJWKSet((await response.json()));
|
|
65
|
+
};
|
|
66
|
+
const verify = async (token) => {
|
|
67
|
+
const options = {
|
|
68
|
+
issuer: settings.baseURL,
|
|
69
|
+
audience: settings.resource,
|
|
70
|
+
typ: "at+jwt",
|
|
71
|
+
};
|
|
72
|
+
keys ??= await loadKeys();
|
|
73
|
+
try {
|
|
74
|
+
return (await jwtVerify(token, keys, options)).payload;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
if (!(error instanceof errors.JWKSNoMatchingKey))
|
|
78
|
+
throw error;
|
|
79
|
+
keys = await loadKeys();
|
|
80
|
+
return (await jwtVerify(token, keys, options)).payload;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const clientName = (clientId) => {
|
|
84
|
+
let name = clientNames.get(clientId);
|
|
85
|
+
if (!name) {
|
|
86
|
+
name = instance.$context
|
|
87
|
+
.then((context) => context.adapter.findOne({
|
|
88
|
+
model: "oauthClient",
|
|
89
|
+
where: [{ field: "clientId", value: clientId }],
|
|
90
|
+
}))
|
|
91
|
+
.then((client) => client?.name || clientId);
|
|
92
|
+
name.catch(() => clientNames.delete(clientId));
|
|
93
|
+
clientNames.set(clientId, name);
|
|
94
|
+
}
|
|
95
|
+
return name;
|
|
96
|
+
};
|
|
97
|
+
const agentOf = async (token) => {
|
|
98
|
+
let payload;
|
|
99
|
+
try {
|
|
100
|
+
payload = await verify(token);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error instanceof errors.JWTExpired) {
|
|
104
|
+
throw new AuthFailure("expired", "The access token expired.");
|
|
105
|
+
}
|
|
106
|
+
throw new AuthFailure("invalid", "The access token is invalid.");
|
|
107
|
+
}
|
|
108
|
+
const { sub, iat } = payload;
|
|
109
|
+
const clientId = payload.client_id;
|
|
110
|
+
const scopes = typeof payload.scope === "string" ? payload.scope.split(" ") : [];
|
|
111
|
+
if (typeof sub !== "string" || typeof clientId !== "string" || iat === undefined) {
|
|
112
|
+
throw new AuthFailure("invalid", "The access token is missing claims.");
|
|
113
|
+
}
|
|
114
|
+
if (!scopes.includes(MCP_SCOPE)) {
|
|
115
|
+
throw new AuthFailure("invalid", `The access token lacks the "${MCP_SCOPE}" scope.`);
|
|
116
|
+
}
|
|
117
|
+
const grantId = grantIdOf(sub, clientId);
|
|
118
|
+
if (await started().isRevoked({ kind: "grant", id: grantId }, iat * 1000)) {
|
|
119
|
+
throw new AuthFailure("revoked", "Access for this agent was revoked.");
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
kind: "agent",
|
|
123
|
+
userId: asId("user", sub),
|
|
124
|
+
grantId,
|
|
125
|
+
agent: {
|
|
126
|
+
name: await clientName(clientId),
|
|
127
|
+
verified: clientId.startsWith("https://"),
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
const userOf = async (request) => {
|
|
132
|
+
const found = await instance.api.getSession({ headers: request.headers });
|
|
133
|
+
if (!found)
|
|
134
|
+
return undefined;
|
|
135
|
+
return {
|
|
136
|
+
kind: "user",
|
|
137
|
+
userId: asId("user", found.user.id),
|
|
138
|
+
sessionId: found.session.id,
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
const publicUrlOf = (request) => new URL(new URL(request.url).pathname, settings.origin).href;
|
|
142
|
+
const hostOf = async (request, assertion) => {
|
|
143
|
+
const grant = await verifyHostAssertion(assertion, { method: request.method, url: publicUrlOf(request) }, installed().grantKeys, Date.now());
|
|
144
|
+
if (await started().isRevoked({ kind: "grant", id: grant.grantId })) {
|
|
145
|
+
throw new AuthFailure("revoked", "This computer was disconnected.");
|
|
146
|
+
}
|
|
147
|
+
return hostPrincipalOf(grant);
|
|
148
|
+
};
|
|
149
|
+
const turnOf = async (token) => {
|
|
150
|
+
const store = installed().turnKeys;
|
|
151
|
+
let turnTokenKeys = await store.keys();
|
|
152
|
+
const kid = decodeProtectedHeader(token).kid;
|
|
153
|
+
if (kid !== undefined && !turnTokenKeys.publicKeys.has(kid)) {
|
|
154
|
+
turnTokenKeys = await store.refresh();
|
|
155
|
+
}
|
|
156
|
+
const claims = await verifyTurnToken(turnTokenKeys, token, Date.now());
|
|
157
|
+
if (await started().isRevoked({ kind: "grant", id: claims.gid })) {
|
|
158
|
+
throw new AuthFailure("revoked", "This computer was disconnected.");
|
|
159
|
+
}
|
|
160
|
+
return agentPrincipalOf(claims);
|
|
161
|
+
};
|
|
162
|
+
const authenticateRequest = async (request) => {
|
|
163
|
+
await ready();
|
|
164
|
+
const credential = credentialOf(request.headers.get("authorization"));
|
|
165
|
+
switch (credential?.kind) {
|
|
166
|
+
case "host":
|
|
167
|
+
return hostOf(request, credential.assertion);
|
|
168
|
+
case "turn":
|
|
169
|
+
return turnOf(credential.token);
|
|
170
|
+
case "access":
|
|
171
|
+
return agentOf(credential.token);
|
|
172
|
+
case "session": {
|
|
173
|
+
const user = await userOf(request);
|
|
174
|
+
if (!user)
|
|
175
|
+
throw new AuthFailure("invalid", "The session is invalid or has ended.");
|
|
176
|
+
return user;
|
|
177
|
+
}
|
|
178
|
+
case undefined:
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
const { authCookies } = await instance.$context;
|
|
182
|
+
if (!hasCookie(request, authCookies.sessionToken.name))
|
|
183
|
+
return ANONYMOUS;
|
|
184
|
+
return (await userOf(request)) ?? ANONYMOUS;
|
|
185
|
+
};
|
|
186
|
+
return {
|
|
187
|
+
name: AUTH_PLUGIN,
|
|
188
|
+
migrations: [
|
|
189
|
+
...AUTH_MIGRATIONS,
|
|
190
|
+
HOSTS_MIGRATION,
|
|
191
|
+
DEVICES_MIGRATION,
|
|
192
|
+
TURN_KEYS_MIGRATION,
|
|
193
|
+
AUDIT_MIGRATION,
|
|
194
|
+
DEVICE_LINKING_MIGRATION,
|
|
195
|
+
],
|
|
196
|
+
enforcing: true,
|
|
197
|
+
setup(host) {
|
|
198
|
+
const { database } = host;
|
|
199
|
+
if (!database)
|
|
200
|
+
throw new Error("The auth plugin needs a database.");
|
|
201
|
+
const set = new RevocationSet({
|
|
202
|
+
database,
|
|
203
|
+
horizonMs: REVOCATION_HORIZON_MS,
|
|
204
|
+
});
|
|
205
|
+
revocations = set;
|
|
206
|
+
const auditLog = createAuditLog(database);
|
|
207
|
+
bridge.revoke = (notice) => database.transaction((tx) => RevocationSet.revoke(tx, notice));
|
|
208
|
+
grantKeys = createGrantKeys(database);
|
|
209
|
+
devices = createDeviceRegistry(database);
|
|
210
|
+
turnKeys = createTurnKeyStore({
|
|
211
|
+
database,
|
|
212
|
+
issuer: settings.baseURL,
|
|
213
|
+
secret: async () => (await instance.$context).secret,
|
|
214
|
+
});
|
|
215
|
+
const hostDeps = {
|
|
216
|
+
host,
|
|
217
|
+
settings,
|
|
218
|
+
};
|
|
219
|
+
return {
|
|
220
|
+
actions: createRegistry({
|
|
221
|
+
...accountActions({ instance, host, revoke: bridge.revoke }).actions,
|
|
222
|
+
...hostAccountActions(hostDeps).actions,
|
|
223
|
+
...deviceAccountActions({ host, registry: devices }).actions,
|
|
224
|
+
}),
|
|
225
|
+
routes: [...authRoutes({ instance, settings, host }), ...hostRoutes(hostDeps)],
|
|
226
|
+
audit: (record) => auditLog.record(record),
|
|
227
|
+
close: async () => {
|
|
228
|
+
await Promise.all([set.stop(), auditLog.stop()]);
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
},
|
|
232
|
+
async authenticate(request) {
|
|
233
|
+
const startedAt = Date.now();
|
|
234
|
+
const principal = await authenticateRequest(request);
|
|
235
|
+
if (principal.kind !== "anonymous")
|
|
236
|
+
authenticatedAt.set(principal, startedAt);
|
|
237
|
+
return principal;
|
|
238
|
+
},
|
|
239
|
+
challenge() {
|
|
240
|
+
const metadata = `${settings.origin}/.well-known/oauth-protected-resource${new URL(settings.resource).pathname}`;
|
|
241
|
+
return Response.json({ error: { code: "unauthenticated", message: "Sign in through OAuth first." } }, {
|
|
242
|
+
status: 401,
|
|
243
|
+
headers: {
|
|
244
|
+
"www-authenticate": `Bearer resource_metadata="${metadata}", scope="${MCP_SCOPE}"`,
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
},
|
|
248
|
+
async delegate(host, turn) {
|
|
249
|
+
await ready();
|
|
250
|
+
return delegate(await installed().turnKeys.keys(), host, turn, Date.now());
|
|
251
|
+
},
|
|
252
|
+
async hostActive(grantId) {
|
|
253
|
+
const revoked = await started().isRevoked({ kind: "grant", id: grantId });
|
|
254
|
+
return !revoked && (await installed().grantKeys.get(grantId)) !== undefined;
|
|
255
|
+
},
|
|
256
|
+
async device(userId, deviceId) {
|
|
257
|
+
const registered = await installed().devices.get(userId, deviceId);
|
|
258
|
+
if (!registered)
|
|
259
|
+
return undefined;
|
|
260
|
+
const { id, name, platform, signingKey, presenceKey, vouches } = registered;
|
|
261
|
+
return {
|
|
262
|
+
id,
|
|
263
|
+
name,
|
|
264
|
+
platform,
|
|
265
|
+
signingKey,
|
|
266
|
+
presenceKey,
|
|
267
|
+
...(vouches ? { vouches } : {}),
|
|
268
|
+
};
|
|
269
|
+
},
|
|
270
|
+
async account(userId) {
|
|
271
|
+
const { adapter } = await instance.$context;
|
|
272
|
+
const user = await adapter.findOne({
|
|
273
|
+
model: "user",
|
|
274
|
+
where: [{ field: "id", value: userId }],
|
|
275
|
+
});
|
|
276
|
+
return user ? { name: user.name, email: user.email } : undefined;
|
|
277
|
+
},
|
|
278
|
+
revoked(principal) {
|
|
279
|
+
const notice = principal.kind === "user"
|
|
280
|
+
? { kind: "session", id: principal.sessionId }
|
|
281
|
+
: { kind: "grant", id: principal.grantId };
|
|
282
|
+
return started().signal([notice], authenticatedAt.get(principal));
|
|
283
|
+
},
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { DataProvider } from "@parlor/core";
|
|
2
|
+
export declare const REVOCATION_CHANNEL = "parlor_auth";
|
|
3
|
+
/** NOTIFY payload. Ids only, never content. */
|
|
4
|
+
export interface RevocationNotice {
|
|
5
|
+
readonly kind: "session" | "grant";
|
|
6
|
+
readonly id: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RevocationSetOptions {
|
|
9
|
+
readonly database: DataProvider;
|
|
10
|
+
/**
|
|
11
|
+
* The longest any credential this set guards stays valid. Older revocations are
|
|
12
|
+
* forgotten: nothing they revoke can still verify.
|
|
13
|
+
*/
|
|
14
|
+
readonly horizonMs: number;
|
|
15
|
+
readonly now?: (() => number) | undefined;
|
|
16
|
+
readonly relistenBaseMs?: number | undefined;
|
|
17
|
+
readonly relistenMaxMs?: number | undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* `following` answers from memory, kept current by NOTIFY. `checking` answers with one
|
|
21
|
+
* primary-key lookup per call: poll-only providers always do, and a following set falls
|
|
22
|
+
* back to it while its LISTEN connection is down.
|
|
23
|
+
*/
|
|
24
|
+
export type RevocationMode = "starting" | "following" | "checking";
|
|
25
|
+
/**
|
|
26
|
+
* Every instance's view of what was revoked within the horizon. It loads before it
|
|
27
|
+
* admits anyone, and whenever its LISTEN connection drops it checks the table per call
|
|
28
|
+
* until it listens again and reloads, because a NOTIFY sent meanwhile is lost.
|
|
29
|
+
*/
|
|
30
|
+
export declare class RevocationSet {
|
|
31
|
+
#private;
|
|
32
|
+
constructor(options: RevocationSetOptions);
|
|
33
|
+
get mode(): RevocationMode;
|
|
34
|
+
/** Resolves once the set can answer; a failed start is retried by the next call. */
|
|
35
|
+
ready(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Revoked when a revocation of the notice is at or after `issuedAt`; without it, when
|
|
38
|
+
* any revocation of the notice is within the horizon.
|
|
39
|
+
*/
|
|
40
|
+
isRevoked(notice: RevocationNotice, issuedAt?: number): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Aborts when any of the notices is revoked at or after `since` (default: now). The
|
|
43
|
+
* watch is registered first and the revocations already known are checked after, so one
|
|
44
|
+
* that landed between `since` and this call still aborts it.
|
|
45
|
+
*/
|
|
46
|
+
signal(notices: readonly RevocationNotice[], since?: number): AbortSignal;
|
|
47
|
+
/** Records the revocation in the caller's transaction; the NOTIFY goes out on commit. */
|
|
48
|
+
static revoke(tx: unknown, notice: RevocationNotice, at?: number): Promise<void>;
|
|
49
|
+
stop(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=revocation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revocation.d.ts","sourceRoot":"","sources":["../src/revocation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAEhD,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAWnE;;;;GAIG;AACH,qBAAa,aAAa;;IAkBxB,YAAY,OAAO,EAAE,oBAAoB,EAMxC;IAED,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,oFAAoF;IACpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrB;IAED;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxE;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EAAE,KAAK,GAAE,MAAoB,GAAG,WAAW,CAcrF;IAED,yFAAyF;IACzF,OAAa,MAAM,CACjB,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,gBAAgB,EACxB,EAAE,GAAE,MAAmB,GACtB,OAAO,CAAC,IAAI,CAAC,CAUf;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAO1B;CAwJF"}
|