gemi 0.112.0 → 0.113.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 (192) hide show
  1. package/dist/ai/index.js +2 -2
  2. package/dist/ai/index.js.map +1 -1
  3. package/dist/app/index.js +1 -1
  4. package/dist/auth/AuthController.d.ts +19 -2
  5. package/dist/auth/AuthController.d.ts.map +1 -1
  6. package/dist/auth/config.d.ts +9 -0
  7. package/dist/auth/config.d.ts.map +1 -1
  8. package/dist/auth/oauth/GoogleOAuthProvider.d.ts +16 -17
  9. package/dist/auth/oauth/GoogleOAuthProvider.d.ts.map +1 -1
  10. package/dist/auth/oauth/OAuthProvider.d.ts +56 -7
  11. package/dist/auth/oauth/OAuthProvider.d.ts.map +1 -1
  12. package/dist/auth/oauth/XOAuthProvider.d.ts +10 -9
  13. package/dist/auth/oauth/XOAuthProvider.d.ts.map +1 -1
  14. package/dist/auth/oauth/oauthState.d.ts +70 -0
  15. package/dist/auth/oauth/oauthState.d.ts.map +1 -0
  16. package/dist/auth/routes.d.ts +3 -2
  17. package/dist/auth/routes.d.ts.map +1 -1
  18. package/dist/bun/plugin.js +1 -1
  19. package/dist/bun/preload.js +1 -1
  20. package/dist/{chunk-jdtn0zk2.js → chunk-01qd6xx3.js} +3 -3
  21. package/dist/{chunk-jdtn0zk2.js.map → chunk-01qd6xx3.js.map} +1 -1
  22. package/dist/{chunk-15a1mrdv.js → chunk-1p85fdrk.js} +2 -2
  23. package/dist/{chunk-15a1mrdv.js.map → chunk-1p85fdrk.js.map} +1 -1
  24. package/dist/{chunk-qyp652jz.js → chunk-1se4t9rg.js} +3 -3
  25. package/dist/{chunk-qyp652jz.js.map → chunk-1se4t9rg.js.map} +1 -1
  26. package/dist/{chunk-b7cqwcbm.js → chunk-3f1kq32g.js} +2 -2
  27. package/dist/{chunk-b7cqwcbm.js.map → chunk-3f1kq32g.js.map} +1 -1
  28. package/dist/{chunk-57edag57.js → chunk-4t1pbt9p.js} +3 -3
  29. package/dist/{chunk-57edag57.js.map → chunk-4t1pbt9p.js.map} +1 -1
  30. package/dist/{chunk-851k0b26.js → chunk-4tp2cr02.js} +2 -2
  31. package/dist/{chunk-851k0b26.js.map → chunk-4tp2cr02.js.map} +1 -1
  32. package/dist/{chunk-a9q2cr4w.js → chunk-571rvxe6.js} +2 -2
  33. package/dist/{chunk-a9q2cr4w.js.map → chunk-571rvxe6.js.map} +1 -1
  34. package/dist/{chunk-mx9y9mtx.js → chunk-5nqkwa2w.js} +1 -1
  35. package/dist/{chunk-d0trs736.js → chunk-5q4a7yqf.js} +2 -2
  36. package/dist/{chunk-d0trs736.js.map → chunk-5q4a7yqf.js.map} +1 -1
  37. package/dist/{chunk-dan79jab.js → chunk-5x0aacrn.js} +2 -2
  38. package/dist/{chunk-dan79jab.js.map → chunk-5x0aacrn.js.map} +1 -1
  39. package/dist/{chunk-bf1ets45.js → chunk-5zzhypmt.js} +2 -2
  40. package/dist/{chunk-bf1ets45.js.map → chunk-5zzhypmt.js.map} +1 -1
  41. package/dist/{chunk-18c3y8m3.js → chunk-68s1f5d5.js} +2 -2
  42. package/dist/{chunk-18c3y8m3.js.map → chunk-68s1f5d5.js.map} +1 -1
  43. package/dist/chunk-6g20zec2.js +46 -0
  44. package/dist/{chunk-4sb1484x.js.map → chunk-6g20zec2.js.map} +7 -5
  45. package/dist/{chunk-csbc1fxa.js → chunk-6wymbbes.js} +3 -3
  46. package/dist/{chunk-csbc1fxa.js.map → chunk-6wymbbes.js.map} +1 -1
  47. package/dist/{chunk-b7qjp7r1.js → chunk-7jnpnjth.js} +2 -2
  48. package/dist/{chunk-b7qjp7r1.js.map → chunk-7jnpnjth.js.map} +1 -1
  49. package/dist/{chunk-ddad3902.js → chunk-8mbyyh8j.js} +2 -2
  50. package/dist/{chunk-ddad3902.js.map → chunk-8mbyyh8j.js.map} +1 -1
  51. package/dist/{chunk-dx7wpz5b.js → chunk-9tpx9ag3.js} +2 -2
  52. package/dist/{chunk-dx7wpz5b.js.map → chunk-9tpx9ag3.js.map} +1 -1
  53. package/dist/{chunk-beks65me.js → chunk-9vsj0ksk.js} +2 -2
  54. package/dist/{chunk-beks65me.js.map → chunk-9vsj0ksk.js.map} +1 -1
  55. package/dist/{chunk-rx2shb3t.js → chunk-agw3anaf.js} +1 -1
  56. package/dist/{chunk-sj8jp4p9.js → chunk-atmzm0z3.js} +2 -2
  57. package/dist/{chunk-sj8jp4p9.js.map → chunk-atmzm0z3.js.map} +1 -1
  58. package/dist/{chunk-es487acc.js → chunk-bq5nqqeq.js} +1 -1
  59. package/dist/{chunk-b1mk12xg.js → chunk-c7mp2kyp.js} +2 -2
  60. package/dist/{chunk-b1mk12xg.js.map → chunk-c7mp2kyp.js.map} +1 -1
  61. package/dist/{chunk-j0sncgxc.js → chunk-cqnfp0n9.js} +3 -3
  62. package/dist/{chunk-j0sncgxc.js.map → chunk-cqnfp0n9.js.map} +1 -1
  63. package/dist/{chunk-kk502yk2.js → chunk-d04r0hdf.js} +2 -2
  64. package/dist/{chunk-kk502yk2.js.map → chunk-d04r0hdf.js.map} +1 -1
  65. package/dist/{chunk-2taa0brj.js → chunk-dbwhgyg3.js} +2 -2
  66. package/dist/{chunk-2taa0brj.js.map → chunk-dbwhgyg3.js.map} +1 -1
  67. package/dist/{chunk-nv7mv51r.js → chunk-de03dewf.js} +2 -2
  68. package/dist/{chunk-nv7mv51r.js.map → chunk-de03dewf.js.map} +1 -1
  69. package/dist/{chunk-qtbf3w6w.js → chunk-essqp1ek.js} +2 -2
  70. package/dist/{chunk-qtbf3w6w.js.map → chunk-essqp1ek.js.map} +1 -1
  71. package/dist/{chunk-5waxjsvv.js → chunk-fnkjmq94.js} +2 -2
  72. package/dist/{chunk-5waxjsvv.js.map → chunk-fnkjmq94.js.map} +1 -1
  73. package/dist/{chunk-8reepafh.js → chunk-fr0arqdj.js} +2 -2
  74. package/dist/{chunk-8reepafh.js.map → chunk-fr0arqdj.js.map} +1 -1
  75. package/dist/chunk-fsfbyg5e.js +5 -0
  76. package/dist/{chunk-d9an2nra.js.map → chunk-fsfbyg5e.js.map} +1 -1
  77. package/dist/{chunk-ga7c7tq0.js → chunk-g8kx549d.js} +2 -2
  78. package/dist/{chunk-ga7c7tq0.js.map → chunk-g8kx549d.js.map} +1 -1
  79. package/dist/{chunk-xs4c2nvz.js → chunk-g8sc6scv.js} +2 -2
  80. package/dist/{chunk-xs4c2nvz.js.map → chunk-g8sc6scv.js.map} +1 -1
  81. package/dist/{chunk-75ptmewf.js → chunk-k2fh4r0p.js} +2 -2
  82. package/dist/{chunk-75ptmewf.js.map → chunk-k2fh4r0p.js.map} +1 -1
  83. package/dist/{chunk-wexs11yy.js → chunk-kexsfyjj.js} +2 -2
  84. package/dist/{chunk-wexs11yy.js.map → chunk-kexsfyjj.js.map} +1 -1
  85. package/dist/{chunk-ryzcfxq7.js → chunk-kp7k4s5c.js} +2 -2
  86. package/dist/{chunk-ryzcfxq7.js.map → chunk-kp7k4s5c.js.map} +1 -1
  87. package/dist/{chunk-tmrmwthr.js → chunk-kz4yp5n7.js} +2 -2
  88. package/dist/{chunk-tmrmwthr.js.map → chunk-kz4yp5n7.js.map} +1 -1
  89. package/dist/{chunk-j9jqxv1d.js → chunk-mepaedy5.js} +2 -2
  90. package/dist/{chunk-j9jqxv1d.js.map → chunk-mepaedy5.js.map} +1 -1
  91. package/dist/{chunk-scbvv2e4.js → chunk-mk0rtgd1.js} +2 -2
  92. package/dist/{chunk-scbvv2e4.js.map → chunk-mk0rtgd1.js.map} +1 -1
  93. package/dist/{chunk-mvtgx1mr.js → chunk-nksn6xcd.js} +2 -2
  94. package/dist/{chunk-mvtgx1mr.js.map → chunk-nksn6xcd.js.map} +1 -1
  95. package/dist/{chunk-s9rfgxj5.js → chunk-nysqgzp1.js} +2 -2
  96. package/dist/{chunk-s9rfgxj5.js.map → chunk-nysqgzp1.js.map} +1 -1
  97. package/dist/{chunk-5az0mq4p.js → chunk-p3zmc8k8.js} +2 -2
  98. package/dist/{chunk-5az0mq4p.js.map → chunk-p3zmc8k8.js.map} +1 -1
  99. package/dist/{chunk-9hr0bcfy.js → chunk-qpttgn4k.js} +3 -3
  100. package/dist/{chunk-9hr0bcfy.js.map → chunk-qpttgn4k.js.map} +1 -1
  101. package/dist/{chunk-bhw7k8vp.js → chunk-qt8nvpqp.js} +2 -2
  102. package/dist/{chunk-bhw7k8vp.js.map → chunk-qt8nvpqp.js.map} +1 -1
  103. package/dist/{chunk-teny6xkw.js → chunk-r7b12dmm.js} +2 -2
  104. package/dist/{chunk-teny6xkw.js.map → chunk-r7b12dmm.js.map} +1 -1
  105. package/dist/{chunk-amvy4r59.js → chunk-rg4hhxj3.js} +2 -2
  106. package/dist/{chunk-amvy4r59.js.map → chunk-rg4hhxj3.js.map} +1 -1
  107. package/dist/{chunk-53bek7sp.js → chunk-rh2fad7n.js} +1 -1
  108. package/dist/{chunk-xv74rhay.js → chunk-sr18y2ck.js} +2 -2
  109. package/dist/{chunk-xv74rhay.js.map → chunk-sr18y2ck.js.map} +1 -1
  110. package/dist/{chunk-vgdcz7tk.js → chunk-szr1k584.js} +2 -2
  111. package/dist/{chunk-vgdcz7tk.js.map → chunk-szr1k584.js.map} +1 -1
  112. package/dist/{chunk-dm59ze55.js → chunk-v4gwmhtf.js} +2 -2
  113. package/dist/{chunk-dm59ze55.js.map → chunk-v4gwmhtf.js.map} +1 -1
  114. package/dist/{chunk-et3vhkbf.js → chunk-vc9phr57.js} +2 -2
  115. package/dist/{chunk-et3vhkbf.js.map → chunk-vc9phr57.js.map} +1 -1
  116. package/dist/{chunk-30yg31sz.js → chunk-vdwagp7y.js} +2 -2
  117. package/dist/{chunk-30yg31sz.js.map → chunk-vdwagp7y.js.map} +1 -1
  118. package/dist/{chunk-6w79zajj.js → chunk-vqa3agzw.js} +3 -3
  119. package/dist/{chunk-6w79zajj.js.map → chunk-vqa3agzw.js.map} +1 -1
  120. package/dist/{chunk-jn59bsww.js → chunk-vwprq300.js} +2 -2
  121. package/dist/{chunk-jn59bsww.js.map → chunk-vwprq300.js.map} +1 -1
  122. package/dist/{chunk-0z2h35d7.js → chunk-vzf5pbx3.js} +2 -2
  123. package/dist/{chunk-0z2h35d7.js.map → chunk-vzf5pbx3.js.map} +1 -1
  124. package/dist/{chunk-1pvkw2pq.js → chunk-w45agtch.js} +2 -2
  125. package/dist/{chunk-1pvkw2pq.js.map → chunk-w45agtch.js.map} +1 -1
  126. package/dist/{chunk-ck0v2kzw.js → chunk-wr3e4sez.js} +2 -2
  127. package/dist/{chunk-ck0v2kzw.js.map → chunk-wr3e4sez.js.map} +1 -1
  128. package/dist/{chunk-mrdarm2q.js → chunk-x5sert1k.js} +2 -2
  129. package/dist/{chunk-mrdarm2q.js.map → chunk-x5sert1k.js.map} +1 -1
  130. package/dist/{chunk-d8ekyng4.js → chunk-x5yq097b.js} +2 -2
  131. package/dist/{chunk-d8ekyng4.js.map → chunk-x5yq097b.js.map} +1 -1
  132. package/dist/{chunk-p2fhtf5r.js → chunk-xqwdn9kb.js} +3 -3
  133. package/dist/{chunk-p2fhtf5r.js.map → chunk-xqwdn9kb.js.map} +1 -1
  134. package/dist/{chunk-yv1psptb.js → chunk-y596ghpz.js} +2 -2
  135. package/dist/{chunk-yv1psptb.js.map → chunk-y596ghpz.js.map} +1 -1
  136. package/dist/{chunk-rend2sbk.js → chunk-y6frz1vm.js} +1 -1
  137. package/dist/{chunk-hfyxvdjj.js → chunk-y6v0x869.js} +2 -2
  138. package/dist/{chunk-hfyxvdjj.js.map → chunk-y6v0x869.js.map} +1 -1
  139. package/dist/{chunk-gcs9ydjv.js → chunk-yyzexrnb.js} +2 -2
  140. package/dist/{chunk-gcs9ydjv.js.map → chunk-yyzexrnb.js.map} +1 -1
  141. package/dist/{chunk-eazqda9z.js → chunk-z5hrymvn.js} +3 -3
  142. package/dist/{chunk-eazqda9z.js.map → chunk-z5hrymvn.js.map} +1 -1
  143. package/dist/{chunk-cptzbdn6.js → chunk-zng3qexn.js} +2 -2
  144. package/dist/{chunk-cptzbdn6.js.map → chunk-zng3qexn.js.map} +1 -1
  145. package/dist/{chunk-zfter1x0.js → chunk-zyer1g7k.js} +4 -4
  146. package/dist/{chunk-zfter1x0.js.map → chunk-zyer1g7k.js.map} +1 -1
  147. package/dist/client/ClientRouter.d.ts.map +1 -1
  148. package/dist/client/index.js +1 -1
  149. package/dist/client/index.js.map +1 -1
  150. package/dist/config/index.js +1 -1
  151. package/dist/console/run.js +2 -2
  152. package/dist/console/run.js.map +1 -1
  153. package/dist/container/index.js +2 -2
  154. package/dist/container/index.js.map +1 -1
  155. package/dist/database/index.js +2 -2
  156. package/dist/database/index.js.map +1 -1
  157. package/dist/email/index.js +2 -2
  158. package/dist/email/index.js.map +1 -1
  159. package/dist/facades/index.js +2 -2
  160. package/dist/facades/index.js.map +1 -1
  161. package/dist/foundation/index.js +2 -2
  162. package/dist/foundation/index.js.map +1 -1
  163. package/dist/http/index.js +2 -2
  164. package/dist/http/index.js.map +1 -1
  165. package/dist/i18n/dictionaryRuntime.js +2 -2
  166. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  167. package/dist/i18n/index.js +2 -2
  168. package/dist/i18n/index.js.map +1 -1
  169. package/dist/kernel/index.js +2 -2
  170. package/dist/kernel/index.js.map +1 -1
  171. package/dist/orm/index.js +2 -2
  172. package/dist/orm/index.js.map +1 -1
  173. package/dist/server/index.js +2 -2
  174. package/dist/server/index.js.map +1 -1
  175. package/dist/services/index.d.ts +2 -1
  176. package/dist/services/index.d.ts.map +1 -1
  177. package/dist/services/index.js +8 -8
  178. package/dist/services/index.js.map +5 -6
  179. package/dist/services/queue/work.js +2 -2
  180. package/dist/services/queue/work.js.map +1 -1
  181. package/dist/stats/route-table.js +1 -1
  182. package/dist/support/index.js +2 -2
  183. package/dist/support/index.js.map +1 -1
  184. package/dist/vitest/index.js +1 -1
  185. package/package.json +1 -1
  186. package/dist/chunk-4sb1484x.js +0 -46
  187. package/dist/chunk-d9an2nra.js +0 -5
  188. /package/dist/{chunk-mx9y9mtx.js.map → chunk-5nqkwa2w.js.map} +0 -0
  189. /package/dist/{chunk-rx2shb3t.js.map → chunk-agw3anaf.js.map} +0 -0
  190. /package/dist/{chunk-es487acc.js.map → chunk-bq5nqqeq.js.map} +0 -0
  191. /package/dist/{chunk-53bek7sp.js.map → chunk-rh2fad7n.js.map} +0 -0
  192. /package/dist/{chunk-rend2sbk.js.map → chunk-y6frz1vm.js.map} +0 -0
package/dist/app/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ha as a}from"../chunk-ryzcfxq7.js";import"../chunk-5waxjsvv.js";import"../chunk-ddad3902.js";export{a as App};
2
+ import{Ha as a}from"../chunk-kp7k4s5c.js";import"../chunk-fnkjmq94.js";import"../chunk-8mbyyh8j.js";export{a as App};
3
3
 
4
4
  //# debugId=288F3EAB17F12DE464756E2164756E21
@@ -109,12 +109,26 @@ export declare class AuthController extends Controller {
109
109
  destination: string;
110
110
  }>;
111
111
  oauthCallback(req?: HttpRequest<Record<string, never>, Record<string, never>>): Promise<{
112
- session: any;
113
- redirectTo?: undefined;
112
+ session: null;
113
+ error: string;
114
+ redirectTo: string | null;
114
115
  } | {
115
116
  session: import("./types").SessionWithUser;
116
117
  redirectTo: string;
117
118
  }>;
119
+ /**
120
+ * A refused OAuth callback: the reason code and the page the sign-in was
121
+ * meant to return to. With `auth.oauthFailurePath` set, the browser is
122
+ * redirected there as `?error=<code>&redirect=<page>`; otherwise the
123
+ * callback view renders with `{ session: null, error, redirectTo }`.
124
+ *
125
+ * Not a route — `protected` keeps it off the controller's public surface.
126
+ */
127
+ protected oauthFailure(req: HttpRequest<any, any>, error: string): {
128
+ session: null;
129
+ error: string;
130
+ redirectTo: string | null;
131
+ };
118
132
  /**
119
133
  * Step 2 of `oauthCallback`: an identity that resolved to nobody, matched by
120
134
  * email. Returns null when the callback must be refused.
@@ -124,7 +138,10 @@ export declare class AuthController extends Controller {
124
138
  protected linkOAuthAccount(args: {
125
139
  provider: string;
126
140
  providerId?: string;
141
+ /** Normalised: trimmed and lower-cased. */
127
142
  email: string;
143
+ /** As the provider returned it, for users stored before emails were normalised. */
144
+ rawEmail?: string;
128
145
  name?: string;
129
146
  username?: string;
130
147
  locale: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthController.d.ts","sourceRoot":"","sources":["../../auth/AuthController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASlD,OAAO,KAAK,EAAc,IAAI,EAAE,MAAM,SAAS,CAAC;AAuFhD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAItD;AAKD,cAAM,aAAc,SAAQ,WAAW,CACrC;IACE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,EACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB;IACC,MAAM;;;;;;;;;MASJ;CACH;AAED,cAAM,qBAAsB,SAAQ,WAAW,CAC7C;IACE,KAAK,EAAE,MAAM,CAAC;CACf,EACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB;IACC,MAAM;;;;;MAKJ;CACH;AAED,cAAM,oBAAqB,SAAQ,WAAW,CAC5C;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,EACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB;IACC,MAAM;;;;;MAKJ;CACH;AAED,qBAAa,cAAe,SAAQ,UAAU;IACtC,EAAE;IAUF,WAAW,CAAC,GAAG;eAA4B,MAAM;6BAAK;;;IAsBtD,mBAAmB,CAAC,GAAG,4DAAoB;;;;;;;IAwCjD;;;;;OAKG;YACW,gBAAgB;IA0BxB,eAAe,CACnB,GAAG;eAA4B,MAAM;aAAO,MAAM;6BAAK;IAqBnD,aAAa,CAAC,GAAG;eAA4B,MAAM;aAAO,MAAM;6BAAK;;;IAoBrE,QAAQ,CAAC,GAAG,gBAAsB;;;;;;;;;;IA+ClC,MAAM,CAAC,GAAG,gBAAsB;;;;;;;;;;IA+ChC,MAAM;IAyGN,OAAO,CAAC,GAAG,4DAAoB;IA8C/B,cAAc,CAAC,GAAG,wBAA8B;IAiChD,aAAa,CAAC,GAAG,uBAA6B;IAuD9C,cAAc,CAClB,GAAG;qBAAkC,MAAM;qBAAe,MAAM;6BAAK;IAuCjE,aAAa,CAAC,GAAG,4DAAoB;;;IA+BrC,aAAa,CAAC,GAAG,4DAAoB;;;;;;;IAoI3C;;;;;OAKG;cACa,gBAAgB,CAAC,IAAI,EAAE;QACrC,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAwFzD,oBAAoB,CAAC,GAAG;eAA4B,MAAM;6BAAK;;;IA0BrE;;;;;;;OAOG;IACG,gBAAgB,CAAC,GAAG;eAA4B,MAAM;6BAAK;;;IAuBjE;;;;;;;;;OASG;IACG,eAAe,CACnB,GAAG;eAA4B,MAAM;cAAQ,MAAM;eAAS,MAAM;6BAAK;;;;CAiF1E"}
1
+ {"version":3,"file":"AuthController.d.ts","sourceRoot":"","sources":["../../auth/AuthController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASlD,OAAO,KAAK,EAAc,IAAI,EAAE,MAAM,SAAS,CAAC;AA+FhD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAItD;AA2BD,cAAM,aAAc,SAAQ,WAAW,CACrC;IACE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,EACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB;IACC,MAAM;;;;;;;;;MASJ;CACH;AAED,cAAM,qBAAsB,SAAQ,WAAW,CAC7C;IACE,KAAK,EAAE,MAAM,CAAC;CACf,EACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB;IACC,MAAM;;;;;MAKJ;CACH;AAED,cAAM,oBAAqB,SAAQ,WAAW,CAC5C;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,EACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB;IACC,MAAM;;;;;MAKJ;CACH;AAED,qBAAa,cAAe,SAAQ,UAAU;IACtC,EAAE;IAUF,WAAW,CAAC,GAAG;eAA4B,MAAM;6BAAK;;;IAsBtD,mBAAmB,CAAC,GAAG,4DAAoB;;;;;;;IAwCjD;;;;;OAKG;YACW,gBAAgB;IA0BxB,eAAe,CACnB,GAAG;eAA4B,MAAM;aAAO,MAAM;6BAAK;IAqBnD,aAAa,CAAC,GAAG;eAA4B,MAAM;aAAO,MAAM;6BAAK;;;IAoBrE,QAAQ,CAAC,GAAG,gBAAsB;;;;;;;;;;IA+ClC,MAAM,CAAC,GAAG,gBAAsB;;;;;;;;;;IA+ChC,MAAM;IAyGN,OAAO,CAAC,GAAG,4DAAoB;IA8C/B,cAAc,CAAC,GAAG,wBAA8B;IAiChD,aAAa,CAAC,GAAG,uBAA6B;IAuD9C,cAAc,CAClB,GAAG;qBAAkC,MAAM;qBAAe,MAAM;6BAAK;IAuCjE,aAAa,CAAC,GAAG,4DAAoB;;;IAmDrC,aAAa,CAAC,GAAG,4DAAoB;iBA8M7B,IAAI;eAAS,MAAM;oBAAc,MAAM,GAAG,IAAI;;;;;IAX5D;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CACpB,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,MAAM,GACZ;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAuB9D;;;;;OAKG;cACa,gBAAgB,CAAC,IAAI,EAAE;QACrC,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,2CAA2C;QAC3C,KAAK,EAAE,MAAM,CAAC;QACd,mFAAmF;QACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IA+FzD,oBAAoB,CAAC,GAAG;eAA4B,MAAM;6BAAK;;;IA0BrE;;;;;;;OAOG;IACG,gBAAgB,CAAC,GAAG;eAA4B,MAAM;6BAAK;;;IAuBjE;;;;;;;;;OASG;IACG,eAAe,CACnB,GAAG;eAA4B,MAAM;cAAQ,MAAM;eAAS,MAAM;6BAAK;;;;CAiF1E"}
@@ -152,6 +152,15 @@ export interface AuthConfig {
152
152
  migrateLegacySession?: LegacySessionMigrator | null;
153
153
  signUpRequest?: new () => HttpRequest<any, any>;
154
154
  oauthProviders?: Record<string, OAuthProvider>;
155
+ /**
156
+ * Where a failed OAuth callback sends the browser, with the reason as
157
+ * `?error=` (`access_denied`, `invalid_state`, `email_not_verified`, …) and
158
+ * the page the sign-in was meant to return to as `?redirect=`, when there was
159
+ * one. A same-origin path, typically the sign-in page. `null`, the default,
160
+ * renders the callback view with `{ session: null, error, redirectTo }`
161
+ * instead.
162
+ */
163
+ oauthFailurePath?: string | null;
155
164
  verifyPassword?: (password: string, hash: string) => Promise<boolean>;
156
165
  hashPassword?: (password: string) => Promise<string>;
157
166
  generateForgotPasswordToken?: (user: User) => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../auth/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,iGAAiG;IACjG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,GAAG,CAAC;IACb,mFAAmF;IACnF,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3D,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE;IACH,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,KACE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAGhC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEvC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IAE7C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAEpD,aAAa,CAAC,EAAE,UAAU,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE/C,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,2BAA2B,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAGrE,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnD,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,GAAG,EACT,iBAAiB,EAAE,MAAM,KACtB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzD,kBAAkB,CAAC,EAAE,CACnB,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAChD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1B,gGAAgG;IAChG,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,CACb,KAAK,EAAE,MAAM,KACV,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAEpE;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACrE;AAcD,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,eAAoB,GAAG,QAAQ,CAAC,eAAe,CAAC,CAiCzF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE/D;AAID,wBAAgB,kBAAkB,CAChC,MAAM,GAAE,UAAe,GACtB,QAAQ,CAAC,UAAU,CAAC,CA4CtB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../auth/config.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,28 @@
1
1
  import type { HttpRequest } from "../../http/HttpRequest";
2
- import { OAuthProvider } from "./OAuthProvider";
2
+ import { type OAuthAuthorizationContext, type OAuthCallbackContext, OAuthProvider, type OAuthProfile } from "./OAuthProvider";
3
3
  type Config = {
4
4
  clientId: string;
5
5
  scope: string;
6
6
  clientSecret: string;
7
+ /**
8
+ * The callback path, on `HOST_NAME`. Used for the `redirect_uri` of both the
9
+ * authorization URL and the token exchange, which Google requires to match.
10
+ */
7
11
  redirectPath: string;
12
+ /**
13
+ * Extra parameters for Google's authorization URL, such as
14
+ * `{ prompt: "select_account" }` or `{ hd: "example.com" }`. They cannot
15
+ * replace `state`, the PKCE challenge, `redirect_uri` or `client_id`.
16
+ */
17
+ authorizationParams: Record<string, string>;
8
18
  };
9
19
  export declare class GoogleOAuthProvider extends OAuthProvider {
10
- config: {
11
- clientId: string;
12
- clientSecret: string;
13
- redirectPath: string;
14
- scope: string;
15
- };
20
+ config: Config;
16
21
  constructor(config?: Partial<Config>);
17
- getRedirectUrl(): string;
18
- onCallback(req: HttpRequest): Promise<{
19
- providerId?: undefined;
20
- name?: undefined;
21
- email?: undefined;
22
- } | {
23
- providerId: any;
24
- name: any;
25
- email: any;
26
- }>;
22
+ /** `HOST_NAME` + `redirectPath`, the same for the authorization and the exchange. */
23
+ redirectUri(): string;
24
+ getRedirectUrl(_req?: HttpRequest, ctx?: OAuthAuthorizationContext): string;
25
+ onCallback(req: HttpRequest, ctx?: OAuthCallbackContext): Promise<OAuthProfile>;
27
26
  }
28
27
  export {};
29
28
  //# sourceMappingURL=GoogleOAuthProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleOAuthProvider.d.ts","sourceRoot":"","sources":["../../../auth/oauth/GoogleOAuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAUF,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;gBACU,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IAKxC,cAAc;IAuBR,UAAU,CAAC,GAAG,EAAE,WAAW;;;;;;;;;CA+ClC"}
1
+ {"version":3,"file":"GoogleOAuthProvider.d.ts","sourceRoot":"","sources":["../../../auth/oauth/GoogleOAuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAEzB,aAAa,EACb,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C,CAAC;AAgBF,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,MAAM,EAAE,MAAM,CAAC;gBACH,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IAKxC,qFAAqF;IACrF,WAAW;IAIX,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,yBAAyB;IAuB5D,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;CAwDtF"}
@@ -1,6 +1,56 @@
1
1
  import { HttpRequest } from "../../http/HttpRequest";
2
+ /**
3
+ * What `oauthRedirect` hands `getRedirectUrl`: the round trip's `state` and
4
+ * PKCE challenge, which gemi has already stored for the callback to check.
5
+ *
6
+ * A provider puts `state` on the authorization URL **as is** — the callback is
7
+ * refused unless the provider echoes it back. `codeChallenge` goes on the URL
8
+ * too (with `code_challenge_method=S256`) for a provider that supports PKCE.
9
+ */
10
+ export interface OAuthAuthorizationContext {
11
+ state: string;
12
+ codeChallenge: string;
13
+ codeChallengeMethod: "S256";
14
+ }
15
+ /**
16
+ * What `oauthCallback` hands `onCallback`, once the `state` has been checked:
17
+ * the PKCE verifier to send with the token exchange.
18
+ */
19
+ export interface OAuthCallbackContext {
20
+ state: string;
21
+ codeVerifier: string;
22
+ }
23
+ export interface OAuthProfile {
24
+ email?: string;
25
+ /**
26
+ * Whether the provider says it has verified `email`. `false` refuses a
27
+ * callback that would sign in or create a user by that email; a provider that
28
+ * cannot tell leaves it undefined. Report it whenever the provider exposes it
29
+ * (Google's `email_verified`).
30
+ */
31
+ emailVerified?: boolean;
32
+ name?: string;
33
+ username?: string;
34
+ providerId?: string;
35
+ }
36
+ /**
37
+ * A failed callback, carrying the reason code the app is given (`?error=` on
38
+ * `auth.oauthFailurePath`, and `error` in the callback view's props). Throw it
39
+ * from `onCallback` for a failure with a known reason — `invalid_grant` from a
40
+ * token exchange, say. Any other error thrown there is reported as
41
+ * `provider_error`.
42
+ */
43
+ export declare class OAuthCallbackError extends Error {
44
+ code: string;
45
+ constructor(code: string, message?: string);
46
+ }
2
47
  export declare abstract class OAuthProvider {
3
- abstract getRedirectUrl(req: HttpRequest): string | Promise<string>;
48
+ /**
49
+ * The provider's authorization URL. Put `ctx.state` on it unchanged — a
50
+ * callback whose `state` does not match is refused — and `ctx.codeChallenge`
51
+ * when the provider supports PKCE.
52
+ */
53
+ abstract getRedirectUrl(req: HttpRequest, ctx?: OAuthAuthorizationContext): string | Promise<string>;
4
54
  /**
5
55
  * `providerId` is the provider's stable account identifier (Google's `sub`,
6
56
  * X's user id) — the value the callback recognises a returning account by.
@@ -8,12 +58,11 @@ export declare abstract class OAuthProvider {
8
58
  * email: those change, and a matching one is not the same account. A provider
9
59
  * that returns none falls back to matching by `email`, and no `SocialAccount`
10
60
  * is written for it.
61
+ *
62
+ * Called only once the round trip's `state` has been verified, and never for
63
+ * a callback carrying `?error=`. Send `ctx.codeVerifier` with the token
64
+ * exchange when the authorization URL carried a challenge.
11
65
  */
12
- abstract onCallback(req: HttpRequest): Promise<{
13
- email?: string;
14
- name?: string;
15
- username?: string;
16
- providerId?: string;
17
- }>;
66
+ abstract onCallback(req: HttpRequest, ctx?: OAuthCallbackContext): Promise<OAuthProfile>;
18
67
  }
19
68
  //# sourceMappingURL=OAuthProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthProvider.d.ts","sourceRoot":"","sources":["../../../auth/oauth/OAuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,8BAAsB,aAAa;IACjC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnE;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CACjB,GAAG,EAAE,WAAW,GACf,OAAO,CAAC;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH"}
1
+ {"version":3,"file":"OAuthProvider.d.ts","sourceRoot":"","sources":["../../../auth/oauth/OAuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,IAAI,EAAE,MAAM,CAAC;gBACD,IAAI,EAAE,MAAM,EAAE,OAAO,SAAmC;CAKrE;AAED,8BAAsB,aAAa;IACjC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CACrB,GAAG,EAAE,WAAW,EAChB,GAAG,CAAC,EAAE,yBAAyB,GAC9B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;CACzF"}
@@ -1,6 +1,6 @@
1
1
  import { type TOAuth2Scope, TwitterApi } from "twitter-api-v2";
2
2
  import { HttpRequest } from "../../http/HttpRequest";
3
- import { OAuthProvider } from "./OAuthProvider";
3
+ import { type OAuthAuthorizationContext, type OAuthCallbackContext, OAuthProvider, type OAuthProfile } from "./OAuthProvider";
4
4
  type Config = {
5
5
  clientId: string;
6
6
  scope: TOAuth2Scope[];
@@ -10,15 +10,16 @@ type Config = {
10
10
  export declare class XOAuthProvider extends OAuthProvider {
11
11
  config: Config;
12
12
  client: TwitterApi;
13
- private oauthStates;
14
13
  constructor(config?: Partial<Config>);
15
- getRedirectUrl(): string;
16
- onCallback(req: HttpRequest): Promise<{
17
- name: any;
18
- email: any;
19
- username: any;
20
- providerId: any;
21
- }>;
14
+ redirectUri(): string;
15
+ /**
16
+ * Built here rather than with `generateOAuth2AuthLink`, which mints its own
17
+ * state and verifier: the round trip's are gemi's, kept in a cookie so that
18
+ * any process can finish it. They used to be kept in a `Map` on this
19
+ * instance, which a callback reaching another process could not find.
20
+ */
21
+ getRedirectUrl(_req?: HttpRequest, ctx?: OAuthAuthorizationContext): string;
22
+ onCallback(req: HttpRequest, ctx?: OAuthCallbackContext): Promise<OAuthProfile>;
22
23
  }
23
24
  export {};
24
25
  //# sourceMappingURL=XOAuthProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XOAuthProvider.d.ts","sourceRoot":"","sources":["../../../auth/oauth/XOAuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAcF,qBAAa,cAAe,SAAQ,aAAa;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IAEnB,OAAO,CAAC,WAAW,CAAsC;gBAE7C,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IASxC,cAAc;IAaR,UAAU,CAAC,GAAG,EAAE,WAAW;;;;;;CA2BlC"}
1
+ {"version":3,"file":"XOAuthProvider.d.ts","sourceRoot":"","sources":["../../../auth/oauth/XOAuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAEzB,aAAa,EACb,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AASF,qBAAa,cAAe,SAAQ,aAAa;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;gBAEP,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IASxC,WAAW;IAIX;;;;;OAKG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,yBAAyB;IAoB5D,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;CAwBtF"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * The `state` and PKCE verifier of one OAuth round trip, kept in the browser
3
+ * that started it.
4
+ *
5
+ * `oauthRedirect` mints a random `state` and a PKCE `code_verifier`, sends the
6
+ * provider `state` and the verifier's S256 challenge, and writes both into a
7
+ * short-lived cookie. `oauthCallback` reads the cookie back, deletes it, and
8
+ * refuses the callback unless the `state` the provider echoed is the one in the
9
+ * cookie. That is what ties a callback to the browser that asked for it: a
10
+ * callback URL carrying someone else's `code` arrives without a matching cookie,
11
+ * and is refused instead of signing this browser into their account.
12
+ *
13
+ * The cookie, and not process memory: any process can finish a round trip any
14
+ * other process started.
15
+ *
16
+ * - **Signed** with the app's `SECRET` (HMAC-SHA256, domain-separated from the
17
+ * other uses of that secret), so a tampered or hand-written cookie is refused.
18
+ * - **`HttpOnly`**, so page script never sees the verifier.
19
+ * - **`SameSite=Lax`**: the callback is a top-level navigation from the
20
+ * provider's site, on which a `Strict` cookie is not sent.
21
+ * - **`__Host-` prefixed on https**: a browser accepts such a cookie only from
22
+ * this exact host, `Secure`, `Path=/` and without `Domain`, so a sibling
23
+ * subdomain cannot plant one of its own (cookie tossing).
24
+ * - **Ten minutes**, in the cookie's `Max-Age` and again in the signed payload.
25
+ * - **Single use**: the callback deletes it whatever the outcome, and a state
26
+ * that has been consumed is also remembered by this process until it would
27
+ * have expired.
28
+ */
29
+ export declare const OAUTH_STATE_TTL_SECONDS: number;
30
+ export declare function oauthStateCookieName(secure: boolean): string;
31
+ export interface OAuthStatePayload {
32
+ /** The provider key the round trip was started for. */
33
+ provider: string;
34
+ state: string;
35
+ codeVerifier: string;
36
+ /** Epoch milliseconds after which the round trip is refused. */
37
+ expiresAt: number;
38
+ }
39
+ /** A fresh `state` and PKCE pair. */
40
+ export declare function createOAuthState(provider: string, now?: number): {
41
+ state: string;
42
+ codeVerifier: string;
43
+ codeChallenge: string;
44
+ cookieValue: string;
45
+ };
46
+ /** RFC 7636 S256: base64url(sha256(verifier)). */
47
+ export declare function pkceChallenge(codeVerifier: string): string;
48
+ export declare function sealOAuthState(payload: OAuthStatePayload): string;
49
+ /** The payload of a cookie this app signed, or `null` for anything else. */
50
+ export declare function openOAuthState(value: string | null | undefined): OAuthStatePayload | null;
51
+ /** For tests. */
52
+ export declare function clearConsumedOAuthStates(): void;
53
+ export type OAuthStateCheck = {
54
+ ok: true;
55
+ payload: OAuthStatePayload;
56
+ } | {
57
+ ok: false;
58
+ reason: "missing_state" | "invalid_state" | "expired_state";
59
+ };
60
+ /**
61
+ * Whether `returnedState` (the callback's `?state=`) completes the round trip
62
+ * recorded in `cookieValue` for `provider`. A successful check consumes it.
63
+ */
64
+ export declare function verifyOAuthState(args: {
65
+ provider: string;
66
+ cookieValue: string | null | undefined;
67
+ returnedState: string | null | undefined;
68
+ now?: number;
69
+ }): OAuthStateCheck;
70
+ //# sourceMappingURL=oauthState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthState.d.ts","sourceRoot":"","sources":["../../../auth/oauth/oauthState.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,eAAO,MAAM,uBAAuB,QAAU,CAAC;AAK/C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;CACnB;AAiBD,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAa;;;;;EAYlE;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAGjE;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAwBzF;AAyBD,iBAAiB;AACjB,wBAAgB,wBAAwB,SAEvC;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,eAAe,GAAG,eAAe,CAAA;CAAE,CAAC;AAE/E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,eAAe,CAgBlB"}
@@ -8,8 +8,9 @@ declare class OAuthViewRouter extends ViewRouter {
8
8
  destination: string;
9
9
  }>, Record<string, never>>;
10
10
  "/:provider/callback": import("../http/ViewRouter").ViewRoute<Record<string, never>, Promise<{
11
- session: any;
12
- redirectTo?: undefined;
11
+ session: null;
12
+ error: string;
13
+ redirectTo: string | null;
13
14
  } | {
14
15
  session: import("./types").SessionWithUser;
15
16
  redirectTo: string;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../auth/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,cAAM,eAAgB,SAAQ,UAAU;IACtC,WAAW,WAAqB;IAChC,MAAM;;;;;;;;;;;MAMJ;CACH;AAED,qBAAa,cAAe,SAAQ,UAAU;IAC5C,WAAW,WAAqB;IAChC,MAAM;;;;;;;;;MAMJ;CACH;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,WAAW,WAAqB;IAChC,MAAM;;;;;;;;;;;;;;;MAiBJ;CACH"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../auth/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,cAAM,eAAgB,SAAQ,UAAU;IACtC,WAAW,WAAqB;IAChC,MAAM;;;;;;;;;;;;MAMJ;CACH;AAED,qBAAa,cAAe,SAAQ,UAAU;IAC5C,WAAW,WAAqB;IAChC,MAAM;;;;;;;;;MAMJ;CACH;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,WAAW,WAAqB;IAChC,MAAM;;;;;;;;;;;;;;;MAiBJ;CACH"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{da as a}from"../chunk-es487acc.js";import"../chunk-csbc1fxa.js";import"../chunk-amvy4r59.js";import"../chunk-a9q2cr4w.js";import"../chunk-ddad3902.js";export{a as gemiPlugin};
2
+ import{da as a}from"../chunk-bq5nqqeq.js";import"../chunk-6wymbbes.js";import"../chunk-rg4hhxj3.js";import"../chunk-571rvxe6.js";import"../chunk-8mbyyh8j.js";export{a as gemiPlugin};
3
3
 
4
4
  //# debugId=255F25075168278464756E2164756E21
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{da as k}from"../chunk-es487acc.js";import"../chunk-csbc1fxa.js";import"../chunk-amvy4r59.js";import"../chunk-a9q2cr4w.js";import{xa as j}from"../chunk-303mprnv.js";import"../chunk-ddad3902.js";var{plugin:q}=globalThis.Bun;q(k());var y=await j(process.cwd());for(let x of y.bun?.plugins??[])q(x);
2
+ import{da as k}from"../chunk-bq5nqqeq.js";import"../chunk-6wymbbes.js";import"../chunk-rg4hhxj3.js";import"../chunk-571rvxe6.js";import{xa as j}from"../chunk-303mprnv.js";import"../chunk-8mbyyh8j.js";var{plugin:q}=globalThis.Bun;q(k());var y=await j(process.cwd());for(let x of y.bun?.plugins??[])q(x);
3
3
 
4
4
  //# debugId=E7ABFC04ABC989B264756E2164756E21