@aotter/mantle-cloudflare 0.0.11-alpha.15 → 0.0.11-alpha.18

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.
@@ -1,2 +1,2 @@
1
- export declare const AOTTER_FAVICON_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n <rect width=\"128\" height=\"128\" rx=\"28\" fill=\"#1a3062\"/>\n <path fill=\"#f7fafc\" d=\"M111.76,52.77c-4.05-6.75-13.09-19.07-28.16-25.67-.97-.43-9.36-4.13-19.6-4.13s-18.63,3.7-19.6,4.13c-15.08,6.59-24.12,18.91-28.16,25.67-6.57,10.92-6.56,17.8-6.03,20.94,1.45,8.52,35.82,16.09,33.19,19.03-3.96,4.86-1.12,12.29,7.1,12.29h26.99c8.22,0,11.06-7.44,7.1-12.29-2.63-2.94,31.74-10.5,33.19-19.03.53-3.14.54-10.01-6.03-20.94ZM101.76,64.08c-8.92,11.77-25.79,25.56-25.93,25.68-1.1,1.23-.4,2.67.21,3.94.72,1.5,1.15,2.54.53,3.38-.47.64-.75.83-1.22.83h-22.95c-.46,0-.75-.2-1.22-.83-.61-.84-.19-1.88.53-3.38.61-1.27,1.31-2.71.21-3.94-.15-.11-15.88-13.29-24.81-25.07-.46-.6-.61-1.51-.42-2.54.36-2.03,1.85-4.15,3.8-5.4,1.28-.82,2.75-1.22,4.12-1.22,1.71,0,3.25.63,4.03,1.83,1.16,1.8,14.73,23.3,16.48,26.48,1.3,2.35,2.68,3.27,4.08,2.7,1.4-.56,1-3.17-.57-12.12-1.28-7.28-3.03-22.92-3.03-31.19,0-2.17,2.62-4.45,6.45-5.08v-.03c.57-.08,3.04-.08,3.62,0v.03c3.84.63,6.45,2.91,6.45,5.08,0,8.27-1.75,23.91-3.03,31.19-1.57,8.95-1.96,11.55-.57,12.12,1.4.57,2.77-.34,4.08-2.7,1.75-3.17,16.45-25.28,17.61-27.09.77-1.2,2.32-1.83,4.03-1.83,1.37,0,2.84.4,4.12,1.22,1.95,1.25,3.45,3.38,3.8,5.4.18,1.04.03,1.94-.42,2.54Z\"/>\n</svg>";
1
+ export declare const AOTTER_FAVICON_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n <rect width=\"128\" height=\"128\" rx=\"28\" fill=\"#1a3062\"/>\n <path fill=\"#f7fafc\" d=\"M62.27,18.91c-24.86,0-45.09,20.23-45.09,45.09s20.23,45.09,45.09,45.09,45.09-20.23,45.09-45.09-20.23-45.09-45.09-45.09ZM65.07,102.86v-18.98h5.49c1.26,0,2.29-1.03,2.29-2.29v-4.47h11.6c1.26,0,2.29-1.03,2.29-2.29v-20.57c0-1.26-1.03-2.29-2.29-2.29h-5.13v-12.73c0-1.55-1.26-2.8-2.8-2.8s-2.8,1.26-2.8,2.8v12.73h-22.89v-12.73c0-1.55-1.26-2.8-2.81-2.8s-2.8,1.26-2.8,2.8v12.73h-5.13c-1.26,0-2.29,1.03-2.29,2.29v20.57c0,1.26,1.03,2.29,2.29,2.29h11.6v4.47c0,1.26,1.03,2.29,2.29,2.29h5.49v18.98c-20.32-1.45-36.16-18.42-36.16-38.86,0-21.49,17.48-38.97,38.97-38.97s38.97,17.48,38.97,38.97-15.84,37.42-36.16,38.86ZM41.89,73.03v-16.96h14.46c1.94,2.28,5.02,5.87,5.11,5.97.19.19.39.23.52.23s.34-.04.54-.25c.07-.06,1.33-1.44,4.33-4.69.4-.44.8-.87,1.17-1.26h14.63v16.96h-40.75ZM55.78,79.79v-3.15h12.98v3.15h-12.98Z\"/>\n</svg>";
2
2
  //# sourceMappingURL=aotterFavicon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aotterFavicon.d.ts","sourceRoot":"","sources":["../../src/assets/aotterFavicon.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,2vCAGxB,CAAC"}
1
+ {"version":3,"file":"aotterFavicon.d.ts","sourceRoot":"","sources":["../../src/assets/aotterFavicon.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,88BAGxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export const AOTTER_FAVICON_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
2
2
  <rect width="128" height="128" rx="28" fill="#1a3062"/>
3
- <path fill="#f7fafc" d="M111.76,52.77c-4.05-6.75-13.09-19.07-28.16-25.67-.97-.43-9.36-4.13-19.6-4.13s-18.63,3.7-19.6,4.13c-15.08,6.59-24.12,18.91-28.16,25.67-6.57,10.92-6.56,17.8-6.03,20.94,1.45,8.52,35.82,16.09,33.19,19.03-3.96,4.86-1.12,12.29,7.1,12.29h26.99c8.22,0,11.06-7.44,7.1-12.29-2.63-2.94,31.74-10.5,33.19-19.03.53-3.14.54-10.01-6.03-20.94ZM101.76,64.08c-8.92,11.77-25.79,25.56-25.93,25.68-1.1,1.23-.4,2.67.21,3.94.72,1.5,1.15,2.54.53,3.38-.47.64-.75.83-1.22.83h-22.95c-.46,0-.75-.2-1.22-.83-.61-.84-.19-1.88.53-3.38.61-1.27,1.31-2.71.21-3.94-.15-.11-15.88-13.29-24.81-25.07-.46-.6-.61-1.51-.42-2.54.36-2.03,1.85-4.15,3.8-5.4,1.28-.82,2.75-1.22,4.12-1.22,1.71,0,3.25.63,4.03,1.83,1.16,1.8,14.73,23.3,16.48,26.48,1.3,2.35,2.68,3.27,4.08,2.7,1.4-.56,1-3.17-.57-12.12-1.28-7.28-3.03-22.92-3.03-31.19,0-2.17,2.62-4.45,6.45-5.08v-.03c.57-.08,3.04-.08,3.62,0v.03c3.84.63,6.45,2.91,6.45,5.08,0,8.27-1.75,23.91-3.03,31.19-1.57,8.95-1.96,11.55-.57,12.12,1.4.57,2.77-.34,4.08-2.7,1.75-3.17,16.45-25.28,17.61-27.09.77-1.2,2.32-1.83,4.03-1.83,1.37,0,2.84.4,4.12,1.22,1.95,1.25,3.45,3.38,3.8,5.4.18,1.04.03,1.94-.42,2.54Z"/>
3
+ <path fill="#f7fafc" d="M62.27,18.91c-24.86,0-45.09,20.23-45.09,45.09s20.23,45.09,45.09,45.09,45.09-20.23,45.09-45.09-20.23-45.09-45.09-45.09ZM65.07,102.86v-18.98h5.49c1.26,0,2.29-1.03,2.29-2.29v-4.47h11.6c1.26,0,2.29-1.03,2.29-2.29v-20.57c0-1.26-1.03-2.29-2.29-2.29h-5.13v-12.73c0-1.55-1.26-2.8-2.8-2.8s-2.8,1.26-2.8,2.8v12.73h-22.89v-12.73c0-1.55-1.26-2.8-2.81-2.8s-2.8,1.26-2.8,2.8v12.73h-5.13c-1.26,0-2.29,1.03-2.29,2.29v20.57c0,1.26,1.03,2.29,2.29,2.29h11.6v4.47c0,1.26,1.03,2.29,2.29,2.29h5.49v18.98c-20.32-1.45-36.16-18.42-36.16-38.86,0-21.49,17.48-38.97,38.97-38.97s38.97,17.48,38.97,38.97-15.84,37.42-36.16,38.86ZM41.89,73.03v-16.96h14.46c1.94,2.28,5.02,5.87,5.11,5.97.19.19.39.23.52.23s.34-.04.54-.25c.07-.06,1.33-1.44,4.33-4.69.4-.44.8-.87,1.17-1.26h14.63v16.96h-40.75ZM55.78,79.79v-3.15h12.98v3.15h-12.98Z"/>
4
4
  </svg>`;
5
5
  //# sourceMappingURL=aotterFavicon.js.map
@@ -1,7 +1,12 @@
1
1
  import type { EmailSender } from "@aotter/mantle-runtime";
2
- export declare const ADMIN_ROLES: readonly ["contributor", "editor", "owner"];
3
- export type AdminRole = (typeof ADMIN_ROLES)[number];
4
- export declare const ADMIN_ROLE_SET: ReadonlySet<string>;
2
+ import { STAFF_ROLES, type StaffRole } from "@aotter/mantle-spec";
3
+ export { STAFF_ROLES, type StaffRole };
4
+ /**
5
+ * Set lookup for "is this role string a staff role?" — handlers/MCP
6
+ * gating reach for this every request, so the Set form is worth the
7
+ * one-time allocation over `STAFF_ROLES.includes(x)`.
8
+ */
9
+ export declare const STAFF_ROLE_SET: ReadonlySet<string>;
5
10
  /**
6
11
  * Provider id for the `kind: "social"` method. Mirrors Better Auth's
7
12
  * own `socialProviders` block keys for 1.6.9. Adding a provider that
@@ -107,6 +112,73 @@ export type BootstrapOwnerRule = {
107
112
  readonly match: "email";
108
113
  readonly value: string;
109
114
  };
115
+ /**
116
+ * Account-linking policy forwarded verbatim to Better Auth's
117
+ * `account.accountLinking`. All fields optional — omitted keys fall
118
+ * back to Better Auth's defaults (`enabled: true`,
119
+ * `allowDifferentEmails: false`, `trustedProviders: []`,
120
+ * `updateUserInfoOnLink: false`).
121
+ *
122
+ * Trusted providers bypass email-verification before linking — only
123
+ * use when the upstream IDP guarantees a verified email (Google /
124
+ * Apple / GitHub). `allowDifferentEmails: true` weakens the default
125
+ * email-match guard and meaningfully widens the takeover surface;
126
+ * default to false unless you have a specific use case (e.g. a
127
+ * provider that doesn't return email at all).
128
+ *
129
+ * Better Auth does NOT merge two pre-existing user rows; this config
130
+ * controls behavior at sign-in / link time, not after-the-fact
131
+ * reconciliation. See Better Auth issues #6126 / #2062 for the
132
+ * upstream stance.
133
+ */
134
+ export interface AccountLinkingConfig {
135
+ readonly enabled?: boolean;
136
+ readonly trustedProviders?: ReadonlyArray<SocialProviderId>;
137
+ readonly allowDifferentEmails?: boolean;
138
+ readonly updateUserInfoOnLink?: boolean;
139
+ }
140
+ /**
141
+ * Session policy forwarded to Better Auth's `session` config. All
142
+ * fields optional. `expiresIn` controls absolute session lifetime
143
+ * (Better Auth default 7 days). `updateAge` is the sliding-renewal
144
+ * window — sessions whose age exceeds `updateAge` get their expiry
145
+ * extended on the next request (Better Auth default 1 day). All
146
+ * values in seconds.
147
+ *
148
+ * `cookieCache.enabled: true` lets Better Auth attach a short-TTL
149
+ * signed cookie carrying the session row so `getSession` can skip
150
+ * the D1 read on every request; `maxAge` caps that cache (Better
151
+ * Auth default 5 minutes). Use with care — invalidating a session
152
+ * via `signOut` doesn't clear cached copies in flight.
153
+ */
154
+ export interface SessionConfig {
155
+ readonly expiresIn?: number;
156
+ readonly updateAge?: number;
157
+ readonly cookieCache?: {
158
+ readonly enabled: boolean;
159
+ readonly maxAge?: number;
160
+ };
161
+ }
162
+ /**
163
+ * Email-verification policy forwarded to Better Auth's
164
+ * `emailVerification`. Decoupled from `email-otp` / `magic-link`
165
+ * methods — this controls the verification-token flow that fires
166
+ * separately when Better Auth has a `sendVerificationEmail` callback
167
+ * configured. All optional; omitted keys use Better Auth's defaults.
168
+ *
169
+ * **`sendOnSignUp` only delivers mail when a `sendVerificationEmail`
170
+ * callback is wired into Better Auth.** This config does NOT expose
171
+ * that callback — adopters who flip `sendOnSignUp: true` without
172
+ * providing a sender will see the flag set in Better Auth but no
173
+ * email leaves the worker. Wiring the callback is a follow-up SDK
174
+ * surface; for now the flag is useful for the
175
+ * `autoSignInAfterVerification` knob and forward-compat.
176
+ */
177
+ export interface EmailVerificationConfig {
178
+ readonly sendOnSignUp?: boolean;
179
+ readonly autoSignInAfterVerification?: boolean;
180
+ readonly expiresIn?: number;
181
+ }
110
182
  export interface CreateAuthConfig {
111
183
  readonly database: D1Database;
112
184
  readonly baseURL: string;
@@ -122,6 +194,15 @@ export interface CreateAuthConfig {
122
194
  readonly window: number;
123
195
  readonly max: number;
124
196
  };
197
+ /** Forwarded to Better Auth's `account.accountLinking`. Omit for
198
+ * Better Auth's defaults (linking enabled, same-email required). */
199
+ readonly accountLinking?: AccountLinkingConfig;
200
+ /** Forwarded to Better Auth's `session`. Omit for Better Auth's
201
+ * defaults (7 day expiry, 1 day update age, no cookie cache). */
202
+ readonly session?: SessionConfig;
203
+ /** Forwarded to Better Auth's `emailVerification`. Omit for Better
204
+ * Auth's defaults. */
205
+ readonly emailVerification?: EmailVerificationConfig;
125
206
  }
126
207
  /**
127
208
  * Method kind exposed to clients. Mirrors `AuthMethodConfig["kind"]`
@@ -144,6 +225,47 @@ export type AuthMethodInfo = {
144
225
  readonly kind: "social";
145
226
  readonly provider: SocialProviderId;
146
227
  };
228
+ /**
229
+ * Linked-account row as exposed to consumers. Mirrors the BA `account`
230
+ * table's identity columns; OAuth tokens and other secret-shaped
231
+ * columns are intentionally excluded — callers should never need them
232
+ * to render a "signed in via <provider>" list.
233
+ */
234
+ export interface LinkedAccountInfo {
235
+ readonly id: string;
236
+ readonly providerId: string;
237
+ readonly accountId: string;
238
+ readonly createdAt: Date;
239
+ readonly updatedAt: Date;
240
+ }
241
+ /**
242
+ * User row as exposed to the staff-management surface. Mirrors the BA
243
+ * `user` table's identity columns; password hashes, ban metadata, and
244
+ * other secret-shaped columns are intentionally excluded.
245
+ *
246
+ * `emailVerified: false` + a `null` role is the resting state of an
247
+ * *invitation* (a row pre-created by `inviteUser` that nobody has
248
+ * signed in to yet) — the admin SPA renders those as "invited".
249
+ */
250
+ export interface StaffUserInfo {
251
+ readonly id: string;
252
+ readonly email: string;
253
+ readonly name: string;
254
+ readonly role: string | null;
255
+ readonly githubLogin: string | null;
256
+ readonly emailVerified: boolean;
257
+ readonly createdAt: Date;
258
+ }
259
+ /** Result of `inviteUser`. `exists` carries the prior row's id so the
260
+ * caller can point the operator at the existing user instead of
261
+ * surfacing a bare failure. */
262
+ export type InviteUserResult = {
263
+ readonly kind: "created";
264
+ readonly id: string;
265
+ } | {
266
+ readonly kind: "exists";
267
+ readonly id: string;
268
+ };
147
269
  export interface Auth {
148
270
  readonly handler: (request: Request) => Promise<Response>;
149
271
  readonly getSession: (request: Request) => Promise<{
@@ -171,6 +293,47 @@ export interface Auth {
171
293
  * them. `social` methods carry the upstream `provider` id for
172
294
  * per-provider rendering. */
173
295
  readonly methods: ReadonlyArray<AuthMethodInfo>;
296
+ /** List a user's linked social/credential accounts. Ordered by
297
+ * `createdAt` ascending so the UI can render "linked since" in a
298
+ * stable order across reloads. Read-only — uses the underlying D1
299
+ * binding directly, no Better Auth API call. */
300
+ readonly listLinkedAccounts: (userId: string) => Promise<readonly LinkedAccountInfo[]>;
301
+ /** Unlink a single account by `(userId, providerId)`. Returns true if
302
+ * a row was deleted, false if no matching account existed. Does NOT
303
+ * guard against unlinking the user's only sign-in method — the
304
+ * caller knows their auth method mix and decides whether the
305
+ * resulting state is sign-in-able. The runtime can't, because
306
+ * email-OTP / magic-link sign-ins do not write to the `account`
307
+ * table at all, so "rows left" is not a reliable indicator. */
308
+ readonly unlinkAccount: (userId: string, providerId: string) => Promise<boolean>;
309
+ /** List every user row for the staff-management surface, ordered by
310
+ * `createdAt` ascending. Read-only — uses the underlying D1 binding
311
+ * directly. Owner-only enforcement is the mount layer's job
312
+ * (`/admin/api/staff`); this method does not gate. */
313
+ readonly listUsers: () => Promise<readonly StaffUserInfo[]>;
314
+ /** Assign or clear a user's staff role. `null` revokes staff access
315
+ * (the row keeps existing — the user can still sign in, but every
316
+ * staff-gated surface 403s). Returns false when no row matched.
317
+ * Throws on a non-staff role string — programmer error, not an
318
+ * operator input path (endpoints validate before calling). Does NOT
319
+ * guard self-demotion; that's session-aware and lives in the mount
320
+ * layer. */
321
+ readonly setUserRole: (userId: string, role: StaffRole | null) => Promise<boolean>;
322
+ /** Invite a staff member by email: pre-create the user row
323
+ * (`emailVerified: 0`) with the role already assigned, so the
324
+ * invitee's FIRST sign-in with that email lands with the role in
325
+ * effect — no second assignment step. Magic-link / email-OTP
326
+ * sign-ins match the row by email; social sign-ins with the same
327
+ * email link onto it only when the provider is listed in
328
+ * `accountLinking.trustedProviders` (document this to operators).
329
+ * Email is normalized (trim + lowercase). Returns `exists` instead
330
+ * of throwing when the email already has a row. */
331
+ readonly inviteUser: (email: string, role: StaffRole) => Promise<InviteUserResult>;
332
+ /** Delete an invitation row. Guarded to rows nobody ever signed in
333
+ * to (`emailVerified = 0` AND no linked `account` row) so a real
334
+ * user with sessions/accounts can never be cascade-deleted through
335
+ * this path. Returns false when the row didn't match the guard. */
336
+ readonly revokeInvite: (userId: string) => Promise<boolean>;
174
337
  }
175
338
  export declare function createAuth(config: CreateAuthConfig): Auth;
176
339
  //# sourceMappingURL=createAuth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAuth.d.ts","sourceRoot":"","sources":["../../src/auth/createAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAuth.d.ts","sourceRoot":"","sources":["../../src/auth/createAuth.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,14 @@ import { betterAuth } from "better-auth";
2
2
  import { admin, emailOTP, magicLink } from "better-auth/plugins";
3
3
  import { createAccessControl } from "better-auth/plugins/access";
4
4
  import { defaultStatements } from "better-auth/plugins/admin/access";
5
- export const ADMIN_ROLES = ["contributor", "editor", "owner"];
6
- export const ADMIN_ROLE_SET = new Set(ADMIN_ROLES);
5
+ import { STAFF_ROLES } from "@aotter/mantle-spec";
6
+ export { STAFF_ROLES };
7
+ /**
8
+ * Set lookup for "is this role string a staff role?" — handlers/MCP
9
+ * gating reach for this every request, so the Set form is worth the
10
+ * one-time allocation over `STAFF_ROLES.includes(x)`.
11
+ */
12
+ export const STAFF_ROLE_SET = new Set(STAFF_ROLES);
7
13
  const ac = createAccessControl(defaultStatements);
8
14
  const ownerAc = ac.newRole({
9
15
  user: defaultStatements.user,
@@ -41,9 +47,23 @@ export function buildSocialProviders(methods) {
41
47
  // signature, so we build through a plain map and cast once at the
42
48
  // return. The runtime shape matches Better Auth's expectations.
43
49
  const out = {};
50
+ // Duplicate-provider guard: catch the case where two `social`
51
+ // methods declare the same `provider` id. Better Auth would
52
+ // silently keep the latter (Record overwrite); for SDK adopters —
53
+ // and especially for the upcoming feature-overlay path where a
54
+ // feature can contribute auth methods into the same starter's
55
+ // `methods[]` array — that silent overwrite is a footgun. Throw at
56
+ // construction with a clear message so the conflict surfaces
57
+ // before the first sign-in.
58
+ const seenProviders = new Set();
44
59
  for (const method of methods) {
45
60
  if (method.kind !== "social")
46
61
  continue;
62
+ if (seenProviders.has(method.provider)) {
63
+ throw new Error(`createAuth: social provider '${method.provider}' is registered more than once; ` +
64
+ `each provider can have only one methods[] entry. Remove the redundant entry or pick a different provider.`);
65
+ }
66
+ seenProviders.add(method.provider);
47
67
  if (method.extras) {
48
68
  for (const key of Object.keys(method.extras)) {
49
69
  if (SOCIAL_EXTRAS_RESERVED_KEYS.has(key)) {
@@ -249,7 +269,7 @@ function buildAuth(config) {
249
269
  const sdkPlugins = [
250
270
  admin({
251
271
  defaultRole: "user",
252
- adminRoles: [...ADMIN_ROLES],
272
+ adminRoles: [...STAFF_ROLES],
253
273
  ac,
254
274
  roles: {
255
275
  owner: ownerAc,
@@ -303,21 +323,21 @@ function buildAuth(config) {
303
323
  if (!shouldPromoteToOwner(bootstrap, u))
304
324
  return;
305
325
  // Atomic check-then-promote: the `NOT EXISTS` is a GLOBAL guard —
306
- // it asks "does any user already hold an admin role?". The whole
326
+ // it asks "does any user already hold a staff role?". The whole
307
327
  // statement runs as one D1 op, so two concurrent first signups
308
- // can't both win: the loser's UPDATE finds an admin in the
328
+ // can't both win: the loser's UPDATE finds a staff user in the
309
329
  // subquery and silently writes zero rows.
310
- const placeholders = ADMIN_ROLES.map(() => "?").join(",");
330
+ const placeholders = STAFF_ROLES.map(() => "?").join(",");
311
331
  const result = await config.database
312
332
  .prepare(`UPDATE user SET role = ? WHERE id = ? AND NOT EXISTS (SELECT 1 FROM user WHERE role IN (${placeholders}))`)
313
- .bind("owner", u.id, ...ADMIN_ROLES)
333
+ .bind("owner", u.id, ...STAFF_ROLES)
314
334
  .run();
315
335
  if ((result.meta?.changes ?? 0) === 0) {
316
336
  // Operator-visible signal that the rule matched but a prior
317
- // admin already exists — otherwise the silent no-op makes a
337
+ // staff user already exists — otherwise the silent no-op makes a
318
338
  // misconfigured bootstrap rule indistinguishable from a working
319
339
  // first-promotion.
320
- console.warn(`[bootstrap] user ${u.id} matched bootstrapOwner rule but promotion was blocked — an admin user already exists.`);
340
+ console.warn(`[bootstrap] user ${u.id} matched bootstrapOwner rule but promotion was blocked — a staff user already exists.`);
321
341
  }
322
342
  };
323
343
  const databaseHooks = {
@@ -325,6 +345,69 @@ function buildAuth(config) {
325
345
  create: { after: sdkUserCreateAfter },
326
346
  },
327
347
  };
348
+ // Forward adopter-supplied optional Better Auth config. We do NOT
349
+ // first-class every BA option — only the ones adopters routinely
350
+ // need (account-linking policy, session lifetime, email-verification
351
+ // behavior). Omitted keys flow through to Better Auth defaults.
352
+ const accountConfig = config.accountLinking
353
+ ? {
354
+ account: {
355
+ accountLinking: {
356
+ ...(config.accountLinking.enabled !== undefined
357
+ ? { enabled: config.accountLinking.enabled }
358
+ : {}),
359
+ ...(config.accountLinking.trustedProviders
360
+ ? { trustedProviders: [...config.accountLinking.trustedProviders] }
361
+ : {}),
362
+ ...(config.accountLinking.allowDifferentEmails !== undefined
363
+ ? { allowDifferentEmails: config.accountLinking.allowDifferentEmails }
364
+ : {}),
365
+ ...(config.accountLinking.updateUserInfoOnLink !== undefined
366
+ ? { updateUserInfoOnLink: config.accountLinking.updateUserInfoOnLink }
367
+ : {}),
368
+ },
369
+ },
370
+ }
371
+ : {};
372
+ const sessionConfig = config.session
373
+ ? {
374
+ session: {
375
+ ...(config.session.expiresIn !== undefined
376
+ ? { expiresIn: config.session.expiresIn }
377
+ : {}),
378
+ ...(config.session.updateAge !== undefined
379
+ ? { updateAge: config.session.updateAge }
380
+ : {}),
381
+ ...(config.session.cookieCache
382
+ ? {
383
+ cookieCache: {
384
+ enabled: config.session.cookieCache.enabled,
385
+ ...(config.session.cookieCache.maxAge !== undefined
386
+ ? { maxAge: config.session.cookieCache.maxAge }
387
+ : {}),
388
+ },
389
+ }
390
+ : {}),
391
+ },
392
+ }
393
+ : {};
394
+ const emailVerificationConfig = config.emailVerification
395
+ ? {
396
+ emailVerification: {
397
+ ...(config.emailVerification.sendOnSignUp !== undefined
398
+ ? { sendOnSignUp: config.emailVerification.sendOnSignUp }
399
+ : {}),
400
+ ...(config.emailVerification.autoSignInAfterVerification !== undefined
401
+ ? {
402
+ autoSignInAfterVerification: config.emailVerification.autoSignInAfterVerification,
403
+ }
404
+ : {}),
405
+ ...(config.emailVerification.expiresIn !== undefined
406
+ ? { expiresIn: config.emailVerification.expiresIn }
407
+ : {}),
408
+ },
409
+ }
410
+ : {};
328
411
  return betterAuth({
329
412
  database: config.database,
330
413
  secret: config.secret,
@@ -332,6 +415,9 @@ function buildAuth(config) {
332
415
  socialProviders,
333
416
  user: userConfig,
334
417
  ...(rateLimit ? { rateLimit } : {}),
418
+ ...accountConfig,
419
+ ...sessionConfig,
420
+ ...emailVerificationConfig,
335
421
  trustedOrigins,
336
422
  advanced: advancedConfig,
337
423
  plugins: sdkPlugins,
@@ -355,6 +441,92 @@ export function createAuth(config) {
355
441
  methods: config.methods.map((m) => m.kind === "social"
356
442
  ? { kind: "social", provider: m.provider }
357
443
  : { kind: m.kind }),
444
+ listLinkedAccounts: async (userId) => {
445
+ const result = await config.database
446
+ .prepare("SELECT id, providerId, accountId, createdAt, updatedAt FROM account WHERE userId = ? ORDER BY createdAt ASC, id ASC")
447
+ .bind(userId)
448
+ .all();
449
+ return (result.results ?? []).map((row) => ({
450
+ id: row.id,
451
+ providerId: row.providerId,
452
+ accountId: row.accountId,
453
+ createdAt: new Date(row.createdAt),
454
+ updatedAt: new Date(row.updatedAt),
455
+ }));
456
+ },
457
+ unlinkAccount: async (userId, providerId) => {
458
+ const result = await config.database
459
+ .prepare("DELETE FROM account WHERE userId = ? AND providerId = ?")
460
+ .bind(userId, providerId)
461
+ .run();
462
+ return (result.meta?.changes ?? 0) > 0;
463
+ },
464
+ listUsers: async () => {
465
+ const result = await config.database
466
+ .prepare("SELECT id, email, name, role, githubLogin, emailVerified, createdAt FROM user ORDER BY createdAt ASC, id ASC")
467
+ .all();
468
+ return (result.results ?? []).map((row) => ({
469
+ id: row.id,
470
+ email: row.email,
471
+ name: row.name,
472
+ role: row.role,
473
+ githubLogin: row.githubLogin,
474
+ emailVerified: row.emailVerified !== 0,
475
+ createdAt: new Date(row.createdAt),
476
+ }));
477
+ },
478
+ setUserRole: async (userId, role) => {
479
+ if (role !== null && !STAFF_ROLE_SET.has(role)) {
480
+ throw new Error(`setUserRole: '${role}' is not a staff role — expected one of [${STAFF_ROLES.join(", ")}] or null.`);
481
+ }
482
+ const result = await config.database
483
+ .prepare("UPDATE user SET role = ?, updatedAt = ? WHERE id = ?")
484
+ .bind(role, new Date().toISOString(), userId)
485
+ .run();
486
+ return (result.meta?.changes ?? 0) > 0;
487
+ },
488
+ inviteUser: async (email, role) => {
489
+ if (!STAFF_ROLE_SET.has(role)) {
490
+ throw new Error(`inviteUser: '${role}' is not a staff role — expected one of [${STAFF_ROLES.join(", ")}].`);
491
+ }
492
+ const normalized = email.trim().toLowerCase();
493
+ const existing = await config.database
494
+ .prepare("SELECT id FROM user WHERE email = ? LIMIT 1")
495
+ .bind(normalized)
496
+ .first();
497
+ if (existing)
498
+ return { kind: "exists", id: existing.id };
499
+ const id = generateUserId();
500
+ const now = new Date().toISOString();
501
+ // `name` defaults to the address's local part — Better Auth
502
+ // requires NOT NULL, and the invitee's real display name arrives
503
+ // with their first sign-in (social) or stays editable later.
504
+ await config.database
505
+ .prepare("INSERT INTO user (id, name, email, emailVerified, createdAt, updatedAt, role) VALUES (?, ?, ?, 0, ?, ?, ?)")
506
+ .bind(id, normalized.split("@")[0] ?? normalized, normalized, now, now, role)
507
+ .run();
508
+ return { kind: "created", id };
509
+ },
510
+ revokeInvite: async (userId) => {
511
+ const result = await config.database
512
+ .prepare("DELETE FROM user WHERE id = ? AND emailVerified = 0 AND NOT EXISTS (SELECT 1 FROM account WHERE account.userId = user.id)")
513
+ .bind(userId)
514
+ .run();
515
+ return (result.meta?.changes ?? 0) > 0;
516
+ },
358
517
  };
359
518
  }
519
+ /** Random 32-char alphanumeric id, shaped like Better Auth's own user
520
+ * ids so invited rows are indistinguishable from organically-created
521
+ * ones. Modulo bias over 62 symbols is irrelevant here — ids need
522
+ * uniqueness, not uniform entropy. */
523
+ function generateUserId() {
524
+ const alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
525
+ const bytes = new Uint8Array(32);
526
+ crypto.getRandomValues(bytes);
527
+ let id = "";
528
+ for (const b of bytes)
529
+ id += alphabet[b % alphabet.length];
530
+ return id;
531
+ }
360
532
  //# sourceMappingURL=createAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAuth.js","sourceRoot":"","sources":["../../src/auth/createAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAuth.js","sourceRoot":"","sources":["../../src/auth/createAuth.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export interface CreateMcpApiHandlerOptions {
20
20
  * The OAuthProvider lib verifies the bearer token, decrypts grant
21
21
  * props, and sets `ctx.props` BEFORE calling this handler. We read
22
22
  * `ctx.props.{userId, role}` (stashed at consent time by
23
- * `mountAuthorize`) and gate staff surfaces on the D1 admin role.
23
+ * `mountAuthorize`) and gate staff surfaces on the D1 staff role.
24
24
  *
25
25
  * Note: OAuth scope distinction (`mcp:read` vs `mcp:staff`) used to
26
26
  * differentiate surfaces here. Removed because claude.ai's MCP client
@@ -1 +1 @@
1
- {"version":3,"file":"mountMcp.d.ts","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;CACtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2E1C"}
1
+ {"version":3,"file":"mountMcp.d.ts","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;CACtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6E1C"}