gemi 0.161.0 → 0.163.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.
Files changed (43) hide show
  1. package/dist/ai/index.js +1 -1
  2. package/dist/auth/AuthManager.d.ts +31 -11
  3. package/dist/auth/AuthManager.d.ts.map +1 -1
  4. package/dist/auth/UserProvider.d.ts +7 -0
  5. package/dist/auth/UserProvider.d.ts.map +1 -1
  6. package/dist/auth/config.d.ts +10 -0
  7. package/dist/auth/config.d.ts.map +1 -1
  8. package/dist/{chunk-3yvdvv3d.js → chunk-6abrc83j.js} +1 -1
  9. package/dist/chunk-6atxvmvj.js +117 -0
  10. package/dist/{chunk-sadtazf5.js.map → chunk-6atxvmvj.js.map} +8 -8
  11. package/dist/{chunk-75ajptxk.js → chunk-my8hz9k0.js} +1 -1
  12. package/dist/chunk-p4ka241x.js +5 -0
  13. package/dist/{chunk-mp9hfbs3.js.map → chunk-p4ka241x.js.map} +3 -3
  14. package/dist/{chunk-cjefq3ry.js → chunk-qttv23e7.js} +1 -1
  15. package/dist/{chunk-jr7hdp5z.js → chunk-s7tn2t8x.js} +1 -1
  16. package/dist/{chunk-pg16c4nx.js → chunk-tx3t5qnt.js} +1 -1
  17. package/dist/{chunk-5z7mqgkp.js → chunk-y4bjsyt4.js} +1 -1
  18. package/dist/{chunk-36x1a1mz.js → chunk-yb41jbdc.js} +2 -2
  19. package/dist/{chunk-36x1a1mz.js.map → chunk-yb41jbdc.js.map} +1 -1
  20. package/dist/client/index.js +1 -1
  21. package/dist/client/index.js.map +1 -1
  22. package/dist/facades/index.js +1 -1
  23. package/dist/http/Metadata.d.ts +29 -1
  24. package/dist/http/Metadata.d.ts.map +1 -1
  25. package/dist/http/index.js +1 -1
  26. package/dist/i18n/index.js +1 -1
  27. package/dist/kernel/index.js +1 -1
  28. package/dist/orm/index.js +1 -1
  29. package/dist/server/index.js +1 -1
  30. package/dist/services/index.js +1 -1
  31. package/dist/services/router/ViewRouteDispatcher.d.ts +2 -0
  32. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  33. package/dist/services/router/config.d.ts +15 -1
  34. package/dist/services/router/config.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/chunk-mp9hfbs3.js +0 -5
  37. package/dist/chunk-sadtazf5.js +0 -117
  38. /package/dist/{chunk-3yvdvv3d.js.map → chunk-6abrc83j.js.map} +0 -0
  39. /package/dist/{chunk-75ajptxk.js.map → chunk-my8hz9k0.js.map} +0 -0
  40. /package/dist/{chunk-cjefq3ry.js.map → chunk-qttv23e7.js.map} +0 -0
  41. /package/dist/{chunk-jr7hdp5z.js.map → chunk-s7tn2t8x.js.map} +0 -0
  42. /package/dist/{chunk-pg16c4nx.js.map → chunk-tx3t5qnt.js.map} +0 -0
  43. /package/dist/{chunk-5z7mqgkp.js.map → chunk-y4bjsyt4.js.map} +0 -0
package/dist/ai/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{$b as rQ,$c as w0,Ac as g8,Bc as u8,Cc as N$,Ec as O$,Fc as S$,Gc as C$,Hc as _$,Ic as M$,Jc as A$,Kc as R$,Lc as T$,Mc as E$,Nc as j$,Oc as k$,Pc as q$,Rc as w,Sc as t$,Tc as n,Uc as E,Vc as J$,Wc as j0,Xc as k0,Yb as tQ,Yc as q0,Zb as W9,Zc as x0,_b as K9,_c as I0,ad as b0,bd as f0,cc as TJ,cd as v0,dc as S,dd as y0,ec as A,ed as h0,fd as mQ,gc as n$,gd as g0,hc as c$,hd as D9,ic as ZJ,id as u0,jc as E0,jd as c0,kc as g,kd as MJ,lc as eQ,ld as VQ,mc as X9,md as m0,nc as G9,nd as p0,oc as Y9,od as l0,pc as m,pd as d0,qc as V9,qd as i0,rc as lJ,rd as GQ,sc as H9,tc as z9,uc as dJ,vc as F$,wc as P$,yc as B$,zc as v}from"../chunk-5z7mqgkp.js";import{Jd as G$}from"../chunk-3tyqnh59.js";import"../chunk-nc1gstvq.js";import{$h as x,Eh as e8,Fi as $9,Hh as Q9,Ii as gQ,Mi as Z9,Xh as O8,Yh as A0,Zh as R0,_h as T0}from"../chunk-jr7hdp5z.js";import{Ni as J9,Pi as mJ,Qi as pJ}from"../chunk-kscwjycy.js";import{Zi as h}from"../chunk-mp9hfbs3.js";import"../chunk-1btx3kkv.js";import"../chunk-rh811v1f.js";import"../chunk-wamxfhh6.js";import{ak as LJ,bk as UJ,pk as D$}from"../chunk-cd847h0t.js";import"../chunk-zh0knwen.js";import{cl as k8}from"../chunk-vqar6ysw.js";import"../chunk-mxhy19a9.js";import"../chunk-yc2pnb1w.js";import"../chunk-7effp39a.js";import"../chunk-wgre66wq.js";import{readFileSync as U9}from"fs";import{isAbsolute as C9,join as nJ}from"path";var _9=/\{\{>\s*([\w./-]+)\s*\}\}/g,Z$=/\{\{(\w+)\}\}/g,M9=/^[\w-]+(\/[\w-]+)*$/,W$={dir:"app/agents",shared:"prompts"},PJ={},oJ=new Map;function K$(){return PJ.cache??Bun.env.NODE_ENV==="production"}function S9(J){if(!M9.test(J))throw Error(`"${J}" is not a prompt name. Use letters, digits, "-" and "_", with "/" between folders.`);let Q=PJ.dir??W$.dir,$=C9(Q)?Q:nJ(process.cwd(),Q),Z=J.includes("/")?`${J}.md`:nJ(PJ.shared??W$.shared,`${J}.md`);return nJ($,Z)}function A9(J){let Q=S9(J),$=K$()?oJ.get(Q):void 0;if($!==void 0)return $;let Z;try{Z=U9(Q,"utf8").replace(/\r?\n$/,"")}catch(W){if(W.code==="ENOENT")throw Error(`The prompt "${J}" does not exist (looked for ${Q}).`);throw W}if(K$())oJ.set(Q,Z);return Z}function sJ(J,Q){if(Q.includes(J))throw Error(`The prompt "${J}" includes itself: ${[...Q,J].join(" > ")}.`);return A9(J).replace(_9,($,Z)=>sJ(Z,[...Q,J]))}class X${static configure(J){PJ={...J},oJ.clear()}static render(J,Q={}){return sJ(J,[]).replace(Z$,($,Z)=>{if(!Object.hasOwn(Q,Z))throw Error(`The prompt "${J}" has no value for {{${Z}}}.`);return String(Q[Z])})}static placeholders(J){let Q=[...sJ(J,[]).matchAll(Z$)].map(($)=>$[1]);return[...new Set(Q)]}}class aJ extends G${name="AgentJobDeadlineSweep";cron="* * * * *";async callback(){while(await v.sweep({limit:100})===100);}}var BJ=20;function V$(J,Q){if(Q<=0||J.length===0)return null;let $=(K,X)=>X.createdAt-K.createdAt||(K.id<X.id?1:-1);return["<jobs>","Background jobs that tools started in this conversation, running ones first. A running job's result replaces its tool result when it finishes. Do not start the same work again while a job for it is running.",...[...J.filter((K)=>K.state==="running").sort($),...J.filter((K)=>K.state!=="running").sort($)].slice(0,Q).map((K)=>{let X=[`- ${K.id} (${K.toolName})`];if(K.state==="running")X.push(`running since ${tJ(K.createdAt)}`);else if(K.state==="ok")X.push(`finished at ${tJ(K.settledAt??K.updatedAt)}`);else{let Y=K.error?`${K.error.code}: ${Y$(K.error.message,200)}`:"failed";X.push(`failed at ${tJ(K.settledAt??K.updatedAt)} (${Y})`)}if(K.summary!==void 0)X.push(`summary: ${Y$(JSON.stringify(K.summary),300)}`);if(K.orphaned)X.push("its tool call was lost when the turn that started it was cut short");return X.join("; ")}),"</jobs>"].join(`
2
+ import{$b as rQ,$c as w0,Ac as g8,Bc as u8,Cc as N$,Ec as O$,Fc as S$,Gc as C$,Hc as _$,Ic as M$,Jc as A$,Kc as R$,Lc as T$,Mc as E$,Nc as j$,Oc as k$,Pc as q$,Rc as w,Sc as t$,Tc as n,Uc as E,Vc as J$,Wc as j0,Xc as k0,Yb as tQ,Yc as q0,Zb as W9,Zc as x0,_b as K9,_c as I0,ad as b0,bd as f0,cc as TJ,cd as v0,dc as S,dd as y0,ec as A,ed as h0,fd as mQ,gc as n$,gd as g0,hc as c$,hd as D9,ic as ZJ,id as u0,jc as E0,jd as c0,kc as g,kd as MJ,lc as eQ,ld as VQ,mc as X9,md as m0,nc as G9,nd as p0,oc as Y9,od as l0,pc as m,pd as d0,qc as V9,qd as i0,rc as lJ,rd as GQ,sc as H9,tc as z9,uc as dJ,vc as F$,wc as P$,yc as B$,zc as v}from"../chunk-y4bjsyt4.js";import{Jd as G$}from"../chunk-3tyqnh59.js";import"../chunk-nc1gstvq.js";import{$h as x,Eh as e8,Fi as $9,Hh as Q9,Ii as gQ,Mi as Z9,Xh as O8,Yh as A0,Zh as R0,_h as T0}from"../chunk-s7tn2t8x.js";import{Ni as J9,Pi as mJ,Qi as pJ}from"../chunk-kscwjycy.js";import{Zi as h}from"../chunk-p4ka241x.js";import"../chunk-1btx3kkv.js";import"../chunk-rh811v1f.js";import"../chunk-wamxfhh6.js";import{ak as LJ,bk as UJ,pk as D$}from"../chunk-cd847h0t.js";import"../chunk-zh0knwen.js";import{cl as k8}from"../chunk-vqar6ysw.js";import"../chunk-mxhy19a9.js";import"../chunk-yc2pnb1w.js";import"../chunk-7effp39a.js";import"../chunk-wgre66wq.js";import{readFileSync as U9}from"fs";import{isAbsolute as C9,join as nJ}from"path";var _9=/\{\{>\s*([\w./-]+)\s*\}\}/g,Z$=/\{\{(\w+)\}\}/g,M9=/^[\w-]+(\/[\w-]+)*$/,W$={dir:"app/agents",shared:"prompts"},PJ={},oJ=new Map;function K$(){return PJ.cache??Bun.env.NODE_ENV==="production"}function S9(J){if(!M9.test(J))throw Error(`"${J}" is not a prompt name. Use letters, digits, "-" and "_", with "/" between folders.`);let Q=PJ.dir??W$.dir,$=C9(Q)?Q:nJ(process.cwd(),Q),Z=J.includes("/")?`${J}.md`:nJ(PJ.shared??W$.shared,`${J}.md`);return nJ($,Z)}function A9(J){let Q=S9(J),$=K$()?oJ.get(Q):void 0;if($!==void 0)return $;let Z;try{Z=U9(Q,"utf8").replace(/\r?\n$/,"")}catch(W){if(W.code==="ENOENT")throw Error(`The prompt "${J}" does not exist (looked for ${Q}).`);throw W}if(K$())oJ.set(Q,Z);return Z}function sJ(J,Q){if(Q.includes(J))throw Error(`The prompt "${J}" includes itself: ${[...Q,J].join(" > ")}.`);return A9(J).replace(_9,($,Z)=>sJ(Z,[...Q,J]))}class X${static configure(J){PJ={...J},oJ.clear()}static render(J,Q={}){return sJ(J,[]).replace(Z$,($,Z)=>{if(!Object.hasOwn(Q,Z))throw Error(`The prompt "${J}" has no value for {{${Z}}}.`);return String(Q[Z])})}static placeholders(J){let Q=[...sJ(J,[]).matchAll(Z$)].map(($)=>$[1]);return[...new Set(Q)]}}class aJ extends G${name="AgentJobDeadlineSweep";cron="* * * * *";async callback(){while(await v.sweep({limit:100})===100);}}var BJ=20;function V$(J,Q){if(Q<=0||J.length===0)return null;let $=(K,X)=>X.createdAt-K.createdAt||(K.id<X.id?1:-1);return["<jobs>","Background jobs that tools started in this conversation, running ones first. A running job's result replaces its tool result when it finishes. Do not start the same work again while a job for it is running.",...[...J.filter((K)=>K.state==="running").sort($),...J.filter((K)=>K.state!=="running").sort($)].slice(0,Q).map((K)=>{let X=[`- ${K.id} (${K.toolName})`];if(K.state==="running")X.push(`running since ${tJ(K.createdAt)}`);else if(K.state==="ok")X.push(`finished at ${tJ(K.settledAt??K.updatedAt)}`);else{let Y=K.error?`${K.error.code}: ${Y$(K.error.message,200)}`:"failed";X.push(`failed at ${tJ(K.settledAt??K.updatedAt)} (${Y})`)}if(K.summary!==void 0)X.push(`summary: ${Y$(JSON.stringify(K.summary),300)}`);if(K.orphaned)X.push("its tool call was lost when the turn that started it was cut short");return X.join("; ")}),"</jobs>"].join(`
3
3
  `)}function tJ(J){return new Date(J).toISOString().replace(/\.\d{3}Z$/,"Z")}function Y$(J,Q){return J.length<=Q?J:`${J.slice(0,Q-1)}\u2026`}class eJ{table;sql;dialect;connection;constructor(J,Q={}){let $=Q.table??"gemi_agent_jobs";if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test($))throw Error(`The agent jobs table name "${$}" is not a plain identifier. Use letters, digits and underscores.`);this.table=$,this.sql=J.sql,this.dialect=J.dialect,this.connection=J.name}async createTable(){for(let J of R9(this.dialect,this.table))await this.sql.unsafe(J)}async transaction(J){if(this.connection===void 0||this.joinable())return J();return D$(this.sql,()=>J(),{connection:this.connection})}async create(J){let Q=this.q(),$=this.clock(Q);await Q`
4
4
  INSERT INTO ${this.name(Q)}
5
5
  (id, thread_id, run_id, tool_call_id, tool_name, owner, job, summary, state,
@@ -196,8 +196,12 @@ export declare class AuthManager {
196
196
  token?: undefined;
197
197
  }>;
198
198
  /**
199
- * Replaces any outstanding code for `email` with a new one and stores it
200
- * hashed. Writes whether or not a user has the address; callers decide that.
199
+ * Issues a new code for `email` and stores it hashed. Writes whether or not a
200
+ * user has the address; callers decide that.
201
+ *
202
+ * With `emailCode.activeCodes` at 1 (the default) it replaces any
203
+ * outstanding code. Above 1 it keeps the newest `activeCodes - 1` codes whose
204
+ * code or link can still be used, and deletes the rest.
201
205
  */
202
206
  issueOneTimeCode(email: string, length: number): Promise<{
203
207
  email: string;
@@ -205,14 +209,28 @@ export declare class AuthManager {
205
209
  token: string;
206
210
  }>;
207
211
  /**
208
- * Checks a typed code against the outstanding row for `email`, and on a
209
- * match deletes the row, so the code works once. Every guess counts against
210
- * `emailCode.maxAttempts`, the right one included, before the comparison;
211
- * the guess past the limit deletes the row. The comparison is of keyed
212
- * hashes, in constant time.
213
- *
214
- * `claim: false` leaves the row for the caller to claim (with
215
- * `userProvider.claimMagicLinkToken`) inside a transaction of its own.
212
+ * The rows a code or link for `email` is checked against, newest first: the
213
+ * newest one, or with `emailCode.activeCodes` above 1, the newest that many.
214
+ */
215
+ private oneTimeCodeRows;
216
+ /**
217
+ * Deletes row `id` and reports whether this call is the one that deleted it
218
+ * (`userProvider.claimMagicLinkToken`). With `emailCode.activeCodes` above 1,
219
+ * a successful claim also deletes every other code for `email`, so using one
220
+ * code ends them all. Callers that verified with `claim: false` claim here.
221
+ */
222
+ claimOneTimeCode(email: string, id: number): Promise<boolean>;
223
+ /**
224
+ * Checks a typed code against the outstanding codes for `email` (one, unless
225
+ * `emailCode.activeCodes` is above 1), and on a match deletes them, so a code
226
+ * works once. Every guess counts against `emailCode.maxAttempts`, the right
227
+ * one included, before the comparison; the guess past the limit deletes the
228
+ * codes. With several live codes, each guess counts against every one of
229
+ * them and is refused once any is spent, so they share one budget. The
230
+ * comparison is of keyed hashes, in constant time, against every live code.
231
+ *
232
+ * `claim: false` leaves the rows for the caller to claim (with
233
+ * `claimOneTimeCode`) inside a transaction of its own.
216
234
  */
217
235
  verifyOneTimeCode(email: string, code: unknown, options?: {
218
236
  claim?: boolean;
@@ -225,7 +243,9 @@ export declare class AuthManager {
225
243
  /**
226
244
  * The link counterpart of `verifyOneTimeCode`, for
227
245
  * `/auth/sign-in/magic-link`: valid for `emailCode.linkExpiresInMinutes`,
228
- * single use. Not attempt-counted: a 256-bit token is not guessed.
246
+ * single use. Not attempt-counted: a 256-bit token is not guessed. With
247
+ * `emailCode.activeCodes` above 1, the link of any outstanding code works,
248
+ * and using it deletes them all.
229
249
  */
230
250
  verifyMagicLinkToken(email: string, token: unknown): Promise<boolean>;
231
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../../auth/AuthManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../../auth/AuthManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAOlE,OAAO,EAIL,KAAK,UAAU,EAEhB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAgClE,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,SAAU;IAEtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAKtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C;;;;;;;;;;;;;;OAcG;gBAED,MAAM,GAAE,UAAe,EACvB,QAAQ,GAAE,YAAY,CAAC,GAAG,CAAsB;IAYlD;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAIhE;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7C;;;OAGG;IACH,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,+EAA+E;IAC/E,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB;IAcxF;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAKpB,4EAA4E;IAC5E,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS;IAgB5D;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAiCjD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,oBAAoB;IAiElC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM;IA0BvE,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB;IAK7B;;;;;;;;;;OAUG;YACW,YAAY;IA4B1B,OAAO,CAAC,aAAa;IASf,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAE/B,aAAa,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAI1D,YAAY,CAAC,KAAK,EAAE,MAAM;IA0B1B,uBAAuB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IAalE;;;;;;;;;;;;;;;;;;OAkBG;IACG,qBAAqB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IA4BhE;;;;;;;OAOG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;IAgBxC;;;;;;;OAOG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;IA2BpD;;;OAGG;YACW,eAAe;IAS7B;;;;;OAKG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUnE;;;;;;;;;;;OAWG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,EACb,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAChC,OAAO,CACN;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,GACxC;QAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAA;KAAE,CAC1D;IAmDD;;;;;;OAMG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAqB5E"}
@@ -224,6 +224,13 @@ export declare class UserProvider<TSession = SessionWithUser> {
224
224
  * row matching the code (#708).
225
225
  */
226
226
  findMagicLinkTokenByEmail(email: string): Promise<MagicLinkTokenRow | null>;
227
+ /**
228
+ * The newest `take` one-time-code rows for `email`, newest first. Read in
229
+ * place of `findMagicLinkTokenByEmail` when `emailCode.activeCodes` is above 1.
230
+ */
231
+ listMagicLinkTokensByEmail(email: string, take: number): Promise<MagicLinkTokenRow[]>;
232
+ /** Deletes every one-time-code row for `email` but the ones `keepIds` names. */
233
+ deleteMagicLinkTokensExcept(email: string, keepIds: number[]): Promise<void>;
227
234
  /**
228
235
  * Deletes row `id` and reports whether this call is the one that deleted it.
229
236
  * Two requests verifying the same code at once both match it; only the one
@@ -1 +1 @@
1
- {"version":3,"file":"UserProvider.d.ts","sourceRoot":"","sources":["../../auth/UserProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserProvider.d.ts","sourceRoot":"","sources":["../../auth/UserProvider.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,16 @@ export interface EmailCodeConfig {
51
51
  linkExpiresInMinutes?: number;
52
52
  /** Wrong guesses one code survives; the next one burns it. Default 5. */
53
53
  maxAttempts?: number;
54
+ /**
55
+ * How many codes (and their links) an address can hold at once, 1 to 5.
56
+ * Default 1: a new request replaces the outstanding code. Above 1, a new
57
+ * request keeps the newest `activeCodes - 1` codes that can still be used,
58
+ * so a code from a delayed email still works after the user asked again.
59
+ * Using any of them deletes them all. Guesses share one budget: each guess
60
+ * counts against every live code, and `maxAttempts` wrong ones delete them
61
+ * all, so more codes do not mean more guesses.
62
+ */
63
+ activeCodes?: number;
54
64
  /**
55
65
  * Requests for a code (`/auth/email-code` and `/auth/magic-link`).
56
66
  * Default `{ perEmail: [5, 900], perIp: [20, 900] }`. Over it: 429
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../auth/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../auth/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{X as w,Y as KJ,Z as LJ,_ as CJ}from"./chunk-36x1a1mz.js";import{pa as M,ta as F,ua as xJ}from"./chunk-bwg7genv.js";import"./chunk-s0z61m9j.js";import{Eg as UJ,Fg as VJ,Gg as zJ,je as s,vg as HJ,wg as B}from"./chunk-sadtazf5.js";import"./chunk-99be7vbh.js";import"./chunk-n3pc62tc.js";import{Lh as a,Mh as r,Ph as t}from"./chunk-jr7hdp5z.js";import{Ri as YJ}from"./chunk-kscwjycy.js";import"./chunk-mp9hfbs3.js";import"./chunk-hkp00b9x.js";import"./chunk-70kpm72z.js";import"./chunk-1btx3kkv.js";import"./chunk-egzfxdr1.js";import"./chunk-rh811v1f.js";import"./chunk-wamxfhh6.js";import"./chunk-cd847h0t.js";import"./chunk-zh0knwen.js";import"./chunk-04ffq2ge.js";import"./chunk-pfjky33c.js";import"./chunk-vqar6ysw.js";import"./chunk-mxhy19a9.js";import{hl as ZJ}from"./chunk-22jm6sn1.js";import"./chunk-yc2pnb1w.js";import{vl as OJ}from"./chunk-7effp39a.js";import{xl as R}from"./chunk-51fvpq55.js";import"./chunk-wgre66wq.js";import{createHash as Y2}from"crypto";import{join as v,resolve as FJ,sep as IJ}from"path";import{Duplex as vJ}from"stream";import{constants as N,createBrotliCompress as EJ,createGzip as gJ}from"zlib";var yJ=["br","gzip"],uJ=1024,fJ=5,mJ=19,hJ=6;function cJ(J){if(J===void 0)return 1;if(!/^\d+(\.\d{0,3})?$/.test(J.trim()))return 1;let $=Number(J.trim());return Number.isFinite($)?Math.min($,1):1}function pJ(J){if(J===null||J===void 0)return null;let $=new Map;for(let Z of J.split(",")){let[X,...W]=Z.split(";"),j=X.trim().toLowerCase();if(j==="")continue;let H=1;for(let Y of W){let O=Y.indexOf("=");if(O===-1)continue;if(Y.slice(0,O).trim().toLowerCase()==="q"){H=cJ(Y.slice(O+1));break}}$.set(j,H)}return $}function q(J,$=yJ){let Z=pJ(J);if(!Z)return null;let X=Z.get("*"),W=null,j=0;for(let H of $){let Y=Z.get(H)??X??0;if(Y>j)W=H,j=Y}return W}function dJ(J,$){if(!J)return!1;return J.split(",").some((Z)=>Z.trim().toLowerCase().split("=")[0].trim()===$)}function lJ(J,$){if(J==="HEAD")return!1;if($.status<200||$.status===204||$.status===206||$.status===304)return!1;if($.headers.has("Content-Range"))return!1;let Z=$.headers.get("Content-Type");if(!Z||!/^\s*text\/html\s*(;|$)/i.test(Z))return!1;if(!$.body)return!1;let X=$.headers.get("Content-Encoding");if(X&&X.trim().toLowerCase()!=="identity")return!1;if(dJ($.headers.get("Cache-Control"),"no-transform"))return!1;let W=$.headers.get("Content-Length");if(W!==null&&Number(W)<uJ)return!1;return!0}function oJ(J){let $=J==="br"?EJ({params:{[N.BROTLI_PARAM_QUALITY]:fJ,[N.BROTLI_PARAM_LGWIN]:mJ},flush:N.BROTLI_OPERATION_FLUSH}):gJ({level:hJ,flush:N.Z_SYNC_FLUSH});return vJ.toWeb($)}function nJ(J){let $=J.get("Vary");if(!$){J.set("Vary","Accept-Encoding");return}let Z=$.split(",").map((X)=>X.trim().toLowerCase());if(Z.includes("*")||Z.includes("accept-encoding"))return;J.append("Vary","Accept-Encoding")}function l(J,$){if(!lJ(J.method,$))return $;let Z=new Headers($.headers);nJ(Z);let X=q(J.headers.get("Accept-Encoding"));if(!X)return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z});let W;try{W=oJ(X)}catch{return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z})}return Z.set("Content-Encoding",X),Z.delete("Content-Length"),new Response($.body.pipeThrough(W),{status:$.status,statusText:$.statusText,headers:Z})}import{readdir as J2,stat as e}from"fs/promises";import{join as $2}from"path";import{mkdir as F2,readFile as iJ,stat as I2,writeFile as _2}from"fs/promises";import{dirname as P2,join as aJ}from"path";import{promisify as o}from"util";import{brotliCompress as rJ,constants as B2,gzip as tJ}from"zlib";var sJ=".vite/static-assets.json";var n={br:".br",gzip:".gz"},eJ=["br","gzip"],R2=o(rJ),D2=o(tJ);async function i(J){let $;try{$=await iJ(aJ(J,sJ),"utf8")}catch{return null}let Z;try{Z=JSON.parse($)?.files}catch{return null}if(!Z||typeof Z!=="object")return null;let X={files:{}};for(let[W,j]of Object.entries(Z)){if(!Array.isArray(j))continue;X.files[W]=eJ.filter((H)=>j.includes(H))}return X}function S(J){let $=J.toString(),Z=new Bun.CryptoHasher("sha1");return Z.update($),Z.digest("hex")}async function JJ(J){let $=new Set;async function Z(X,W){let j;try{j=await J2(X,{withFileTypes:!0})}catch{return}for(let H of j){if(H.name.startsWith("."))continue;if(W&&H.name==="assets")continue;let Y=$2(X,H.name),O=H.isDirectory(),U=H.isFile();if(H.isSymbolicLink())try{let K=await e(Y);O=K.isDirectory(),U=K.isFile()}catch{continue}if(U)$.add(Y);else if(O&&!H.isSymbolicLink())await Z(Y,!1)}}return await Z(J,!0),$}var Z2="public, max-age=31536000, must-revalidate",X2="public, max-age=31536000, immutable";async function Q2(J,$,Z){if(Z.length===0||J.headers.has("Range"))return null;let X=q(J.headers.get("Accept-Encoding"),Z);if(!X)return null;let W=$+n[X];try{let j=await e(W);return j.isFile()?{encoding:X,path:W,size:j.size}:null}catch{return null}}async function $J(J,$,Z={}){let X=Bun.file($),W=Z.encodings??[],j={"Content-Type":X.type||"application/octet-stream","Cache-Control":Z.immutable?X2:Z2,"Accept-Ranges":"bytes"};if(W.length>0)j.Vary="Accept-Encoding";let H=await Q2(J,$,W);if(H){let U=Bun.file(H.path);return new Response(U.stream(),{headers:{...j,"Content-Encoding":H.encoding,"Content-Length":String(H.size),ETag:`${S(U.lastModified)}-${H.encoding}`}})}let Y=X.size;j.ETag=S(X.lastModified);let O=a(J.headers.get("Range"));if(O){let U=r(O,Y);if(!U)return s(Y);return new Response(X.slice(U.start,U.end+1).stream(),{status:206,headers:{...j,"Content-Range":t(U.start,U.end,Y),"Content-Length":String(U.length)}})}return new Response(X.stream(),{headers:{...j,"Content-Length":String(Y)}})}import{stat as O2}from"fs/promises";var A="app/client.tsx";function XJ(J,$=M){let Z=J[A]?.file;if(!Z)return;return{module:F(Z,$),preload:C(J,A,$)}}function C(J,$,Z=M){let X=[],W=new Set,j=(H)=>{if(W.has(H))return;W.add(H);let Y=J[H];if(!Y?.file)return;X.push(F(Y.file,Z));for(let O of Y.imports??[])j(O)};return j($),X}function W2(J,$,Z=M){let X=new Set(C(J,$,Z)),W=[],j=new Set,H=(O)=>{if(j.has(O))return;j.add(O);let U=J[O];if(!U)return;for(let K of U.dynamicImports??[])if(!/(^|\/)node_modules\//.test(K)&&!W.includes(K))W.push(K);for(let K of U.imports??[])H(K)};H($);let Y=[];for(let O of W)for(let U of C(J,O,Z))if(!X.has(U))X.add(U),Y.push(U);return Y}function QJ(J,$){let Z=[],X=new Set,W=new Set,j=(H)=>{if(W.has(H))return;W.add(H);let Y=J[H];if(!Y)return;for(let O of Y.imports??[])j(O);for(let O of Y.css??[])if(!X.has(O))X.add(O),Z.push(O)};return j($),Z}function WJ(J,$=M){let Z=new Map;return(X)=>{if(!Z.has(X)){let W=`${X}${ZJ}`,j=J[W]?.file;Z.set(X,j?{src:F(j,$),preload:C(J,W,$),dynamicPreload:W2(J,W,$)}:void 0)}return Z.get(X)}}function jJ(J,$=30000){let Z=JSON.stringify("gemi:chunk-reload"),X=JSON.stringify(`Failed to fetch dynamically imported module: ${J}`);return`var r=!1;try{var s=window.sessionStorage,m=JSON.parse(s.getItem(${Z})||"null");var d=m?Date.now()-m.at:NaN;if(navigator.onLine!==!1&&!(d>=0&&d<${$})){s.setItem(${Z},JSON.stringify({url:window.location.href,at:Date.now()}));r=!0}}catch(e){}if(r)window.location.reload();else throw new Error(${X});export {}`}var j2=new RegExp(`^${HJ}/.+\\.m?js$`);function H2(J){return j2.test(J)}function GJ(J){if(H2(J))return new Response(jJ(J),{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store"}});if(B(J))return new Response("Not found",{status:404});return}var G2=`<!DOCTYPE html>
2
+ import{X as w,Y as KJ,Z as LJ,_ as CJ}from"./chunk-yb41jbdc.js";import{pa as M,ta as F,ua as xJ}from"./chunk-bwg7genv.js";import"./chunk-s0z61m9j.js";import{Eg as UJ,Fg as VJ,Gg as zJ,je as s,vg as HJ,wg as B}from"./chunk-6atxvmvj.js";import"./chunk-99be7vbh.js";import"./chunk-n3pc62tc.js";import{Lh as a,Mh as r,Ph as t}from"./chunk-s7tn2t8x.js";import{Ri as YJ}from"./chunk-kscwjycy.js";import"./chunk-p4ka241x.js";import"./chunk-hkp00b9x.js";import"./chunk-70kpm72z.js";import"./chunk-1btx3kkv.js";import"./chunk-egzfxdr1.js";import"./chunk-rh811v1f.js";import"./chunk-wamxfhh6.js";import"./chunk-cd847h0t.js";import"./chunk-zh0knwen.js";import"./chunk-04ffq2ge.js";import"./chunk-pfjky33c.js";import"./chunk-vqar6ysw.js";import"./chunk-mxhy19a9.js";import{hl as ZJ}from"./chunk-22jm6sn1.js";import"./chunk-yc2pnb1w.js";import{vl as OJ}from"./chunk-7effp39a.js";import{xl as R}from"./chunk-51fvpq55.js";import"./chunk-wgre66wq.js";import{createHash as Y2}from"crypto";import{join as v,resolve as FJ,sep as IJ}from"path";import{Duplex as vJ}from"stream";import{constants as N,createBrotliCompress as EJ,createGzip as gJ}from"zlib";var yJ=["br","gzip"],uJ=1024,fJ=5,mJ=19,hJ=6;function cJ(J){if(J===void 0)return 1;if(!/^\d+(\.\d{0,3})?$/.test(J.trim()))return 1;let $=Number(J.trim());return Number.isFinite($)?Math.min($,1):1}function pJ(J){if(J===null||J===void 0)return null;let $=new Map;for(let Z of J.split(",")){let[X,...W]=Z.split(";"),j=X.trim().toLowerCase();if(j==="")continue;let H=1;for(let Y of W){let O=Y.indexOf("=");if(O===-1)continue;if(Y.slice(0,O).trim().toLowerCase()==="q"){H=cJ(Y.slice(O+1));break}}$.set(j,H)}return $}function q(J,$=yJ){let Z=pJ(J);if(!Z)return null;let X=Z.get("*"),W=null,j=0;for(let H of $){let Y=Z.get(H)??X??0;if(Y>j)W=H,j=Y}return W}function dJ(J,$){if(!J)return!1;return J.split(",").some((Z)=>Z.trim().toLowerCase().split("=")[0].trim()===$)}function lJ(J,$){if(J==="HEAD")return!1;if($.status<200||$.status===204||$.status===206||$.status===304)return!1;if($.headers.has("Content-Range"))return!1;let Z=$.headers.get("Content-Type");if(!Z||!/^\s*text\/html\s*(;|$)/i.test(Z))return!1;if(!$.body)return!1;let X=$.headers.get("Content-Encoding");if(X&&X.trim().toLowerCase()!=="identity")return!1;if(dJ($.headers.get("Cache-Control"),"no-transform"))return!1;let W=$.headers.get("Content-Length");if(W!==null&&Number(W)<uJ)return!1;return!0}function oJ(J){let $=J==="br"?EJ({params:{[N.BROTLI_PARAM_QUALITY]:fJ,[N.BROTLI_PARAM_LGWIN]:mJ},flush:N.BROTLI_OPERATION_FLUSH}):gJ({level:hJ,flush:N.Z_SYNC_FLUSH});return vJ.toWeb($)}function nJ(J){let $=J.get("Vary");if(!$){J.set("Vary","Accept-Encoding");return}let Z=$.split(",").map((X)=>X.trim().toLowerCase());if(Z.includes("*")||Z.includes("accept-encoding"))return;J.append("Vary","Accept-Encoding")}function l(J,$){if(!lJ(J.method,$))return $;let Z=new Headers($.headers);nJ(Z);let X=q(J.headers.get("Accept-Encoding"));if(!X)return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z});let W;try{W=oJ(X)}catch{return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z})}return Z.set("Content-Encoding",X),Z.delete("Content-Length"),new Response($.body.pipeThrough(W),{status:$.status,statusText:$.statusText,headers:Z})}import{readdir as J2,stat as e}from"fs/promises";import{join as $2}from"path";import{mkdir as F2,readFile as iJ,stat as I2,writeFile as _2}from"fs/promises";import{dirname as P2,join as aJ}from"path";import{promisify as o}from"util";import{brotliCompress as rJ,constants as B2,gzip as tJ}from"zlib";var sJ=".vite/static-assets.json";var n={br:".br",gzip:".gz"},eJ=["br","gzip"],R2=o(rJ),D2=o(tJ);async function i(J){let $;try{$=await iJ(aJ(J,sJ),"utf8")}catch{return null}let Z;try{Z=JSON.parse($)?.files}catch{return null}if(!Z||typeof Z!=="object")return null;let X={files:{}};for(let[W,j]of Object.entries(Z)){if(!Array.isArray(j))continue;X.files[W]=eJ.filter((H)=>j.includes(H))}return X}function S(J){let $=J.toString(),Z=new Bun.CryptoHasher("sha1");return Z.update($),Z.digest("hex")}async function JJ(J){let $=new Set;async function Z(X,W){let j;try{j=await J2(X,{withFileTypes:!0})}catch{return}for(let H of j){if(H.name.startsWith("."))continue;if(W&&H.name==="assets")continue;let Y=$2(X,H.name),O=H.isDirectory(),U=H.isFile();if(H.isSymbolicLink())try{let K=await e(Y);O=K.isDirectory(),U=K.isFile()}catch{continue}if(U)$.add(Y);else if(O&&!H.isSymbolicLink())await Z(Y,!1)}}return await Z(J,!0),$}var Z2="public, max-age=31536000, must-revalidate",X2="public, max-age=31536000, immutable";async function Q2(J,$,Z){if(Z.length===0||J.headers.has("Range"))return null;let X=q(J.headers.get("Accept-Encoding"),Z);if(!X)return null;let W=$+n[X];try{let j=await e(W);return j.isFile()?{encoding:X,path:W,size:j.size}:null}catch{return null}}async function $J(J,$,Z={}){let X=Bun.file($),W=Z.encodings??[],j={"Content-Type":X.type||"application/octet-stream","Cache-Control":Z.immutable?X2:Z2,"Accept-Ranges":"bytes"};if(W.length>0)j.Vary="Accept-Encoding";let H=await Q2(J,$,W);if(H){let U=Bun.file(H.path);return new Response(U.stream(),{headers:{...j,"Content-Encoding":H.encoding,"Content-Length":String(H.size),ETag:`${S(U.lastModified)}-${H.encoding}`}})}let Y=X.size;j.ETag=S(X.lastModified);let O=a(J.headers.get("Range"));if(O){let U=r(O,Y);if(!U)return s(Y);return new Response(X.slice(U.start,U.end+1).stream(),{status:206,headers:{...j,"Content-Range":t(U.start,U.end,Y),"Content-Length":String(U.length)}})}return new Response(X.stream(),{headers:{...j,"Content-Length":String(Y)}})}import{stat as O2}from"fs/promises";var A="app/client.tsx";function XJ(J,$=M){let Z=J[A]?.file;if(!Z)return;return{module:F(Z,$),preload:C(J,A,$)}}function C(J,$,Z=M){let X=[],W=new Set,j=(H)=>{if(W.has(H))return;W.add(H);let Y=J[H];if(!Y?.file)return;X.push(F(Y.file,Z));for(let O of Y.imports??[])j(O)};return j($),X}function W2(J,$,Z=M){let X=new Set(C(J,$,Z)),W=[],j=new Set,H=(O)=>{if(j.has(O))return;j.add(O);let U=J[O];if(!U)return;for(let K of U.dynamicImports??[])if(!/(^|\/)node_modules\//.test(K)&&!W.includes(K))W.push(K);for(let K of U.imports??[])H(K)};H($);let Y=[];for(let O of W)for(let U of C(J,O,Z))if(!X.has(U))X.add(U),Y.push(U);return Y}function QJ(J,$){let Z=[],X=new Set,W=new Set,j=(H)=>{if(W.has(H))return;W.add(H);let Y=J[H];if(!Y)return;for(let O of Y.imports??[])j(O);for(let O of Y.css??[])if(!X.has(O))X.add(O),Z.push(O)};return j($),Z}function WJ(J,$=M){let Z=new Map;return(X)=>{if(!Z.has(X)){let W=`${X}${ZJ}`,j=J[W]?.file;Z.set(X,j?{src:F(j,$),preload:C(J,W,$),dynamicPreload:W2(J,W,$)}:void 0)}return Z.get(X)}}function jJ(J,$=30000){let Z=JSON.stringify("gemi:chunk-reload"),X=JSON.stringify(`Failed to fetch dynamically imported module: ${J}`);return`var r=!1;try{var s=window.sessionStorage,m=JSON.parse(s.getItem(${Z})||"null");var d=m?Date.now()-m.at:NaN;if(navigator.onLine!==!1&&!(d>=0&&d<${$})){s.setItem(${Z},JSON.stringify({url:window.location.href,at:Date.now()}));r=!0}}catch(e){}if(r)window.location.reload();else throw new Error(${X});export {}`}var j2=new RegExp(`^${HJ}/.+\\.m?js$`);function H2(J){return j2.test(J)}function GJ(J){if(H2(J))return new Response(jJ(J),{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store"}});if(B(J))return new Response("Not found",{status:404});return}var G2=`<!DOCTYPE html>
3
3
  <html lang="en">
4
4
  <head>
5
5
  <meta charset="UTF-8" />