@gatwech/auth 1.0.0-beta.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.
Files changed (422) hide show
  1. package/README.md +31 -0
  2. package/dist/access-BO2g7QVe.mjs +45 -0
  3. package/dist/access-C6O_osEz.mjs +79 -0
  4. package/dist/access-DT1f6l5k.mjs +51 -0
  5. package/dist/adapter-factory-BZ2Qiqpn.mjs +640 -0
  6. package/dist/adapters/drizzle-adapter/index.d.mts +47 -0
  7. package/dist/adapters/drizzle-adapter/index.mjs +208 -0
  8. package/dist/adapters/index.d.mts +132 -0
  9. package/dist/adapters/index.mjs +18 -0
  10. package/dist/adapters/kysely-adapter/index.d.mts +47 -0
  11. package/dist/adapters/kysely-adapter/index.mjs +11 -0
  12. package/dist/adapters/memory-adapter/index.d.mts +14 -0
  13. package/dist/adapters/memory-adapter/index.mjs +154 -0
  14. package/dist/adapters/mongodb-adapter/index.d.mts +35 -0
  15. package/dist/adapters/mongodb-adapter/index.mjs +315 -0
  16. package/dist/adapters/prisma-adapter/index.d.mts +34 -0
  17. package/dist/adapters/prisma-adapter/index.mjs +159 -0
  18. package/dist/adapters/test.d.mts +81 -0
  19. package/dist/adapters/test.mjs +793 -0
  20. package/dist/admin-Bcq53Nwj.mjs +743 -0
  21. package/dist/admin-DtfO1PLg.d.mts +1689 -0
  22. package/dist/anonymous-CRt1imBW.mjs +107 -0
  23. package/dist/api/index.d.mts +6 -0
  24. package/dist/api/index.mjs +17 -0
  25. package/dist/api-0pR_I-Nx.mjs +3139 -0
  26. package/dist/auth-CBUoBX6o.mjs +233 -0
  27. package/dist/bearer-Djf_awfo.mjs +63 -0
  28. package/dist/bun-sqlite-dialect-CeNvMaZz.mjs +155 -0
  29. package/dist/captcha-BqaMxlKC.mjs +178 -0
  30. package/dist/chunk-BK_LfMhE.mjs +40 -0
  31. package/dist/client/index.d.mts +186 -0
  32. package/dist/client/index.mjs +7 -0
  33. package/dist/client/plugins/index.d.mts +949 -0
  34. package/dist/client/plugins/index.mjs +539 -0
  35. package/dist/client/react/index.d.mts +179 -0
  36. package/dist/client/react/index.mjs +69 -0
  37. package/dist/client-BOX93C3d.d.mts +1250 -0
  38. package/dist/client-CNY0tn9g.d.mts +628 -0
  39. package/dist/client-CygJhqeB.mjs +29 -0
  40. package/dist/client-WiN43tAS.mjs +17 -0
  41. package/dist/client-aExCkfwm.mjs +30 -0
  42. package/dist/cookies/index.d.mts +7 -0
  43. package/dist/cookies/index.mjs +7 -0
  44. package/dist/cookies-cJObLwn1.mjs +597 -0
  45. package/dist/crypto/index.d.mts +44 -0
  46. package/dist/crypto/index.mjs +4 -0
  47. package/dist/crypto-Bb42eMrH.mjs +70 -0
  48. package/dist/custom-session-L3t7ecsd.mjs +67 -0
  49. package/dist/date-Cx2yCiC4.mjs +115 -0
  50. package/dist/db/index.d.mts +7 -0
  51. package/dist/db/index.mjs +15 -0
  52. package/dist/db-BrstmDhc.mjs +1124 -0
  53. package/dist/device-authorization-V4s3h4Mj.mjs +557 -0
  54. package/dist/dialect-CeddeGHf.mjs +72 -0
  55. package/dist/email-otp-BtDHSw14.mjs +592 -0
  56. package/dist/esm-C-QicDNz.mjs +4090 -0
  57. package/dist/generic-oauth-CL5X27ZI.mjs +445 -0
  58. package/dist/get-request-ip-DSjrEpGo.mjs +27 -0
  59. package/dist/get-tables-BQP7YW9c.mjs +249 -0
  60. package/dist/has-permission-BpAr7uCn.mjs +14 -0
  61. package/dist/haveibeenpwned-cMpJvmzI.mjs +43 -0
  62. package/dist/helper-tmxW3BHj.d.mts +21 -0
  63. package/dist/index-34ONrP8l.d.mts +503 -0
  64. package/dist/index-65G5U5DB-DSdjzreF.d.mts +2543 -0
  65. package/dist/index-B-XKqFvY.d.mts +30 -0
  66. package/dist/index-B3n8e37d.d.mts +165 -0
  67. package/dist/index-BBm8nQ9Q.d.mts +42 -0
  68. package/dist/index-BHoQlf7a.d.mts +7699 -0
  69. package/dist/index-BYMI9r_d.d.mts +257 -0
  70. package/dist/index-BqhKCbPH.d.mts +36 -0
  71. package/dist/index-Buhn3hkR.d.mts +433 -0
  72. package/dist/index-C-u1h_WX.d.mts +174 -0
  73. package/dist/index-C7fQuk-V.d.mts +41 -0
  74. package/dist/index-CM-CFWwr.d.mts +1919 -0
  75. package/dist/index-CuFzhoS6.d.mts +359 -0
  76. package/dist/index-Cxi7TbLE.d.mts +11347 -0
  77. package/dist/index-DB7t8whN.d.mts +1 -0
  78. package/dist/index-DKNNV1kb.d.mts +626 -0
  79. package/dist/index-DR0xXno9.d.mts +113 -0
  80. package/dist/index-D_k662QG.d.mts +833 -0
  81. package/dist/index-DaBcikv9.d.mts +118 -0
  82. package/dist/index-DlaMq1nb.d.mts +955 -0
  83. package/dist/index-DoXZYQpq.d.mts +290 -0
  84. package/dist/index-G6V0Z_Mn.d.mts +125 -0
  85. package/dist/index-z0KSvE5i.d.mts +246 -0
  86. package/dist/index-zjjNBRY2.d.mts +95 -0
  87. package/dist/index.d.mts +12 -0
  88. package/dist/index.mjs +33 -0
  89. package/dist/integrations/next-js.d.mts +21 -0
  90. package/dist/integrations/next-js.mjs +62 -0
  91. package/dist/integrations/node.d.mts +15 -0
  92. package/dist/integrations/node.mjs +15 -0
  93. package/dist/integrations/react-start.d.mts +15 -0
  94. package/dist/integrations/react-start.mjs +46 -0
  95. package/dist/json-D0TBLy4q.mjs +24 -0
  96. package/dist/jwt-CmxZAGe2.mjs +94 -0
  97. package/dist/jwt-lHV4QHpD.mjs +387 -0
  98. package/dist/kysely-adapter-DpzYO8Yf.mjs +181 -0
  99. package/dist/magic-link-Bk-ueorR.mjs +176 -0
  100. package/dist/misc-beA1w3XV.mjs +7 -0
  101. package/dist/multi-session-DRrLKrg9.mjs +144 -0
  102. package/dist/node-sqlite-dialect-BcKxBQnm.mjs +155 -0
  103. package/dist/oauth-proxy-D1sWh9B_.mjs +133 -0
  104. package/dist/oauth2/index.d.mts +60 -0
  105. package/dist/oauth2/index.mjs +19 -0
  106. package/dist/one-tap-DMswkTEc.mjs +113 -0
  107. package/dist/organization-BArHO_5v.mjs +3857 -0
  108. package/dist/parser-DcrIEuXE.mjs +73 -0
  109. package/dist/passkey-CcD4CnhM.mjs +558 -0
  110. package/dist/password-sVC4nePO.mjs +25 -0
  111. package/dist/permission-DLYUF3cW.mjs +15 -0
  112. package/dist/phone-number-rHDIlh-2.mjs +485 -0
  113. package/dist/plugin-helper-4L-lzsjZ.mjs +16 -0
  114. package/dist/plugins/access/index.d.mts +3 -0
  115. package/dist/plugins/access/index.mjs +3 -0
  116. package/dist/plugins/admin/access/index.d.mts +116 -0
  117. package/dist/plugins/admin/access/index.mjs +4 -0
  118. package/dist/plugins/admin/index.d.mts +9 -0
  119. package/dist/plugins/admin/index.mjs +22 -0
  120. package/dist/plugins/anonymous/index.d.mts +7 -0
  121. package/dist/plugins/anonymous/index.mjs +18 -0
  122. package/dist/plugins/bearer/index.d.mts +2 -0
  123. package/dist/plugins/bearer/index.mjs +8 -0
  124. package/dist/plugins/captcha/index.d.mts +2 -0
  125. package/dist/plugins/captcha/index.mjs +4 -0
  126. package/dist/plugins/custom-session/index.d.mts +7 -0
  127. package/dist/plugins/custom-session/index.mjs +19 -0
  128. package/dist/plugins/device-authorization/index.d.mts +4 -0
  129. package/dist/plugins/device-authorization/index.mjs +18 -0
  130. package/dist/plugins/email-otp/index.d.mts +3 -0
  131. package/dist/plugins/email-otp/index.mjs +19 -0
  132. package/dist/plugins/generic-oauth/index.d.mts +7 -0
  133. package/dist/plugins/generic-oauth/index.mjs +18 -0
  134. package/dist/plugins/haveibeenpwned/index.d.mts +2 -0
  135. package/dist/plugins/haveibeenpwned/index.mjs +18 -0
  136. package/dist/plugins/index.d.mts +139 -0
  137. package/dist/plugins/index.mjs +47 -0
  138. package/dist/plugins/jwt/index.d.mts +7 -0
  139. package/dist/plugins/jwt/index.mjs +18 -0
  140. package/dist/plugins/magic-link/index.d.mts +2 -0
  141. package/dist/plugins/magic-link/index.mjs +18 -0
  142. package/dist/plugins/multi-session/index.d.mts +3 -0
  143. package/dist/plugins/multi-session/index.mjs +18 -0
  144. package/dist/plugins/oauth-proxy/index.d.mts +2 -0
  145. package/dist/plugins/oauth-proxy/index.mjs +18 -0
  146. package/dist/plugins/one-tap/index.d.mts +2 -0
  147. package/dist/plugins/one-tap/index.mjs +18 -0
  148. package/dist/plugins/one-time-token/index.d.mts +7 -0
  149. package/dist/plugins/one-time-token/index.mjs +47 -0
  150. package/dist/plugins/organization/access/index.d.mts +4 -0
  151. package/dist/plugins/organization/access/index.mjs +4 -0
  152. package/dist/plugins/organization/index.d.mts +9 -0
  153. package/dist/plugins/organization/index.mjs +22 -0
  154. package/dist/plugins/passkey/index.d.mts +7 -0
  155. package/dist/plugins/passkey/index.mjs +18 -0
  156. package/dist/plugins/phone-number/index.d.mts +7 -0
  157. package/dist/plugins/phone-number/index.mjs +18 -0
  158. package/dist/plugins/two-factor/index.d.mts +7 -0
  159. package/dist/plugins/two-factor/index.mjs +20 -0
  160. package/dist/plugins/username/index.d.mts +4 -0
  161. package/dist/plugins/username/index.mjs +18 -0
  162. package/dist/plugins-3jfNste3.mjs +1544 -0
  163. package/dist/plugins-hFZT3hmK.d.mts +14 -0
  164. package/dist/promise-8rrEHRXd.mjs +23154 -0
  165. package/dist/proxy-CL9PZXJA.mjs +441 -0
  166. package/dist/session-Dgp133Yt.mjs +413 -0
  167. package/dist/social-providers/index.d.mts +1 -0
  168. package/dist/social-providers/index.mjs +3 -0
  169. package/dist/src/adapters/adapter-factory/index.d.ts +10 -0
  170. package/dist/src/adapters/adapter-factory/types.d.ts +124 -0
  171. package/dist/src/adapters/create-test-suite.d.ts +97 -0
  172. package/dist/src/adapters/drizzle-adapter/drizzle-adapter.d.ts +43 -0
  173. package/dist/src/adapters/drizzle-adapter/index.d.ts +1 -0
  174. package/dist/src/adapters/drizzle-adapter/test/generate-schema.d.ts +12 -0
  175. package/dist/src/adapters/index.d.ts +21 -0
  176. package/dist/src/adapters/kysely-adapter/bun-sqlite-dialect.d.ts +58 -0
  177. package/dist/src/adapters/kysely-adapter/dialect.d.ts +13 -0
  178. package/dist/src/adapters/kysely-adapter/index.d.ts +3 -0
  179. package/dist/src/adapters/kysely-adapter/kysely-adapter.d.ts +32 -0
  180. package/dist/src/adapters/kysely-adapter/node-sqlite-dialect.d.ts +58 -0
  181. package/dist/src/adapters/kysely-adapter/types.d.ts +1 -0
  182. package/dist/src/adapters/memory-adapter/index.d.ts +1 -0
  183. package/dist/src/adapters/memory-adapter/memory-adapter.d.ts +9 -0
  184. package/dist/src/adapters/mongodb-adapter/index.d.ts +1 -0
  185. package/dist/src/adapters/mongodb-adapter/mongodb-adapter.d.ts +31 -0
  186. package/dist/src/adapters/prisma-adapter/index.d.ts +1 -0
  187. package/dist/src/adapters/prisma-adapter/prisma-adapter.d.ts +32 -0
  188. package/dist/src/adapters/prisma-adapter/test/auth.d.ts +3 -0
  189. package/dist/src/adapters/prisma-adapter/test/generate-auth-config.d.ts +2 -0
  190. package/dist/src/adapters/prisma-adapter/test/generate-prisma-schema.d.ts +3 -0
  191. package/dist/src/adapters/prisma-adapter/test/get-prisma-client.d.ts +7 -0
  192. package/dist/src/adapters/prisma-adapter/test/push-prisma-schema.d.ts +1 -0
  193. package/dist/src/adapters/test-adapter.d.ts +61 -0
  194. package/dist/src/adapters/test.d.ts +78 -0
  195. package/dist/src/adapters/tests/auth-flow.d.ts +22 -0
  196. package/dist/src/adapters/tests/index.d.ts +5 -0
  197. package/dist/src/adapters/tests/normal.d.ts +87 -0
  198. package/dist/src/adapters/tests/number-id.d.ts +17 -0
  199. package/dist/src/adapters/tests/performance.d.ts +24 -0
  200. package/dist/src/adapters/tests/transactions.d.ts +20 -0
  201. package/dist/src/adapters/utils.d.ts +3 -0
  202. package/dist/src/api/index.d.ts +7150 -0
  203. package/dist/src/api/middlewares/index.d.ts +2 -0
  204. package/dist/src/api/middlewares/oauth.d.ts +15 -0
  205. package/dist/src/api/middlewares/origin-check.d.ts +8 -0
  206. package/dist/src/api/rate-limiter/index.d.ts +13 -0
  207. package/dist/src/api/routes/account.d.ts +623 -0
  208. package/dist/src/api/routes/callback.d.ts +68 -0
  209. package/dist/src/api/routes/email-verification.d.ts +266 -0
  210. package/dist/src/api/routes/error.d.ts +51 -0
  211. package/dist/src/api/routes/index.d.ts +11 -0
  212. package/dist/src/api/routes/ok.d.ts +61 -0
  213. package/dist/src/api/routes/reset-password.d.ts +203 -0
  214. package/dist/src/api/routes/session.d.ts +586 -0
  215. package/dist/src/api/routes/sign-in.d.ts +298 -0
  216. package/dist/src/api/routes/sign-out.d.ts +59 -0
  217. package/dist/src/api/routes/sign-up.d.ts +625 -0
  218. package/dist/src/api/routes/update-user.d.ts +862 -0
  219. package/dist/src/api/to-auth-endpoints.d.ts +3 -0
  220. package/dist/src/auth.d.ts +25 -0
  221. package/dist/src/client/broadcast-channel.d.ts +12 -0
  222. package/dist/src/client/config.d.ts +85 -0
  223. package/dist/src/client/fetch-plugins.d.ts +14 -0
  224. package/dist/src/client/index.d.ts +15 -0
  225. package/dist/src/client/parser.d.ts +12 -0
  226. package/dist/src/client/path-to-object.d.ts +63 -0
  227. package/dist/src/client/plugins/index.d.ts +21 -0
  228. package/dist/src/client/plugins/infer-plugin.d.ts +11 -0
  229. package/dist/src/client/proxy.d.ts +8 -0
  230. package/dist/src/client/query.d.ts +16 -0
  231. package/dist/src/client/react/index.d.ts +130 -0
  232. package/dist/src/client/react/react-store.d.ts +43 -0
  233. package/dist/src/client/session-atom.d.ts +18 -0
  234. package/dist/src/client/session-refresh.d.ts +17 -0
  235. package/dist/src/client/test-plugin.d.ts +147 -0
  236. package/dist/src/client/types.d.ts +49 -0
  237. package/dist/src/client/vanilla.d.ts +124 -0
  238. package/dist/src/cookies/check-cookies.d.ts +4 -0
  239. package/dist/src/cookies/cookie-utils.d.ts +16 -0
  240. package/dist/src/cookies/index.d.ts +56 -0
  241. package/dist/src/cookies/session-store.d.ts +43 -0
  242. package/dist/src/crypto/buffer.d.ts +4 -0
  243. package/dist/src/crypto/index.d.ts +14 -0
  244. package/dist/src/crypto/jwt.d.ts +4 -0
  245. package/dist/src/crypto/password.d.ts +5 -0
  246. package/dist/src/crypto/random.d.ts +1 -0
  247. package/dist/src/db/field.d.ts +97 -0
  248. package/dist/src/db/get-migration.d.ts +18 -0
  249. package/dist/src/db/get-schema.d.ts +6 -0
  250. package/dist/src/db/get-tables.d.ts +3 -0
  251. package/dist/src/db/index.d.ts +10 -0
  252. package/dist/src/db/internal-adapter.d.ts +9 -0
  253. package/dist/src/db/schema.d.ts +76 -0
  254. package/dist/src/db/to-zod.d.ts +31 -0
  255. package/dist/src/db/utils.d.ts +6 -0
  256. package/dist/src/db/with-hooks.d.ts +27 -0
  257. package/dist/src/index.d.ts +14 -0
  258. package/dist/src/init.d.ts +2 -0
  259. package/dist/src/integrations/next-js.d.ts +15 -0
  260. package/dist/src/integrations/node.d.ts +6 -0
  261. package/dist/src/integrations/react-start.d.ts +9 -0
  262. package/dist/src/oauth2/index.d.ts +4 -0
  263. package/dist/src/oauth2/link-account.d.ts +41 -0
  264. package/dist/src/oauth2/state.d.ts +21 -0
  265. package/dist/src/oauth2/utils.d.ts +3 -0
  266. package/dist/src/plugins/access/access.d.ts +25 -0
  267. package/dist/src/plugins/access/index.d.ts +2 -0
  268. package/dist/src/plugins/access/types.d.ts +14 -0
  269. package/dist/src/plugins/additional-fields/client.d.ts +91 -0
  270. package/dist/src/plugins/admin/access/index.d.ts +1 -0
  271. package/dist/src/plugins/admin/access/statement.d.ts +110 -0
  272. package/dist/src/plugins/admin/admin.d.ts +1570 -0
  273. package/dist/src/plugins/admin/client.d.ts +62 -0
  274. package/dist/src/plugins/admin/error-codes.d.ts +21 -0
  275. package/dist/src/plugins/admin/has-permission.d.ts +21 -0
  276. package/dist/src/plugins/admin/index.d.ts +2 -0
  277. package/dist/src/plugins/admin/schema.d.ts +36 -0
  278. package/dist/src/plugins/admin/types.d.ts +77 -0
  279. package/dist/src/plugins/anonymous/client.d.ts +8 -0
  280. package/dist/src/plugins/anonymous/index.d.ts +159 -0
  281. package/dist/src/plugins/api-key/client.d.ts +11 -0
  282. package/dist/src/plugins/api-key/index.d.ts +1431 -0
  283. package/dist/src/plugins/api-key/rate-limit.d.ts +20 -0
  284. package/dist/src/plugins/api-key/routes/create-api-key.d.ts +244 -0
  285. package/dist/src/plugins/api-key/routes/delete-all-expired-api-keys.d.ts +45 -0
  286. package/dist/src/plugins/api-key/routes/delete-api-key.d.ts +112 -0
  287. package/dist/src/plugins/api-key/routes/get-api-key.d.ts +234 -0
  288. package/dist/src/plugins/api-key/routes/index.d.ts +1136 -0
  289. package/dist/src/plugins/api-key/routes/list-api-keys.d.ts +231 -0
  290. package/dist/src/plugins/api-key/routes/update-api-key.d.ts +235 -0
  291. package/dist/src/plugins/api-key/routes/verify-api-key.d.ts +80 -0
  292. package/dist/src/plugins/api-key/schema.d.ts +188 -0
  293. package/dist/src/plugins/api-key/types.d.ts +285 -0
  294. package/dist/src/plugins/bearer/index.d.ts +31 -0
  295. package/dist/src/plugins/captcha/constants.d.ts +9 -0
  296. package/dist/src/plugins/captcha/error-codes.d.ts +9 -0
  297. package/dist/src/plugins/captcha/index.d.ts +7 -0
  298. package/dist/src/plugins/captcha/types.d.ts +23 -0
  299. package/dist/src/plugins/captcha/utils.d.ts +1 -0
  300. package/dist/src/plugins/captcha/verify-handlers/captchafox.d.ts +11 -0
  301. package/dist/src/plugins/captcha/verify-handlers/cloudflare-turnstile.d.ts +10 -0
  302. package/dist/src/plugins/captcha/verify-handlers/google-recaptcha.d.ts +11 -0
  303. package/dist/src/plugins/captcha/verify-handlers/h-captcha.d.ts +11 -0
  304. package/dist/src/plugins/captcha/verify-handlers/index.d.ts +4 -0
  305. package/dist/src/plugins/custom-session/client.d.ts +12 -0
  306. package/dist/src/plugins/custom-session/index.d.ts +89 -0
  307. package/dist/src/plugins/device-authorization/client.d.ts +12 -0
  308. package/dist/src/plugins/device-authorization/index.d.ts +568 -0
  309. package/dist/src/plugins/device-authorization/schema.d.ts +56 -0
  310. package/dist/src/plugins/email-otp/client.d.ts +9 -0
  311. package/dist/src/plugins/email-otp/index.d.ts +826 -0
  312. package/dist/src/plugins/email-otp/utils.d.ts +2 -0
  313. package/dist/src/plugins/generic-oauth/client.d.ts +5 -0
  314. package/dist/src/plugins/generic-oauth/index.d.ts +428 -0
  315. package/dist/src/plugins/haveibeenpwned/index.d.ts +25 -0
  316. package/dist/src/plugins/index.d.ts +28 -0
  317. package/dist/src/plugins/jwt/adapter.d.ts +8 -0
  318. package/dist/src/plugins/jwt/client.d.ts +5 -0
  319. package/dist/src/plugins/jwt/index.d.ts +276 -0
  320. package/dist/src/plugins/jwt/schema.d.ts +18 -0
  321. package/dist/src/plugins/jwt/sign.d.ts +8 -0
  322. package/dist/src/plugins/jwt/types.d.ts +175 -0
  323. package/dist/src/plugins/jwt/utils.d.ts +46 -0
  324. package/dist/src/plugins/last-login-method/client.d.ts +34 -0
  325. package/dist/src/plugins/last-login-method/index.d.ts +103 -0
  326. package/dist/src/plugins/magic-link/client.d.ts +5 -0
  327. package/dist/src/plugins/magic-link/index.d.ts +253 -0
  328. package/dist/src/plugins/magic-link/utils.d.ts +1 -0
  329. package/dist/src/plugins/multi-session/client.d.ts +9 -0
  330. package/dist/src/plugins/multi-session/index.d.ts +284 -0
  331. package/dist/src/plugins/oauth-proxy/index.d.ts +119 -0
  332. package/dist/src/plugins/one-tap/client.d.ts +81 -0
  333. package/dist/src/plugins/one-tap/index.d.ts +114 -0
  334. package/dist/src/plugins/one-time-token/client.d.ts +5 -0
  335. package/dist/src/plugins/one-time-token/index.d.ts +170 -0
  336. package/dist/src/plugins/one-time-token/utils.d.ts +1 -0
  337. package/dist/src/plugins/organization/access/index.d.ts +1 -0
  338. package/dist/src/plugins/organization/access/statement.d.ts +241 -0
  339. package/dist/src/plugins/organization/adapter.d.ts +685 -0
  340. package/dist/src/plugins/organization/call.d.ts +55 -0
  341. package/dist/src/plugins/organization/client.d.ts +344 -0
  342. package/dist/src/plugins/organization/error-codes.d.ts +58 -0
  343. package/dist/src/plugins/organization/has-permission.d.ts +13 -0
  344. package/dist/src/plugins/organization/index.d.ts +4 -0
  345. package/dist/src/plugins/organization/organization.d.ts +412 -0
  346. package/dist/src/plugins/organization/permission.d.ts +27 -0
  347. package/dist/src/plugins/organization/routes/crud-access-control.d.ts +701 -0
  348. package/dist/src/plugins/organization/routes/crud-invites.d.ts +1522 -0
  349. package/dist/src/plugins/organization/routes/crud-members.d.ts +1220 -0
  350. package/dist/src/plugins/organization/routes/crud-org.d.ts +1399 -0
  351. package/dist/src/plugins/organization/routes/crud-team.d.ts +1323 -0
  352. package/dist/src/plugins/organization/schema.d.ts +366 -0
  353. package/dist/src/plugins/organization/types.d.ts +737 -0
  354. package/dist/src/plugins/passkey/client.d.ts +190 -0
  355. package/dist/src/plugins/passkey/error-codes.d.ts +9 -0
  356. package/dist/src/plugins/passkey/index.d.ts +838 -0
  357. package/dist/src/plugins/passkey/schema.d.ts +50 -0
  358. package/dist/src/plugins/passkey/types.d.ts +69 -0
  359. package/dist/src/plugins/passkey/utils.d.ts +2 -0
  360. package/dist/src/plugins/phone-number/client.d.ts +9 -0
  361. package/dist/src/plugins/phone-number/index.d.ts +622 -0
  362. package/dist/src/plugins/phone-number/phone-number-error.d.ts +10 -0
  363. package/dist/src/plugins/two-factor/backup-codes/index.d.ts +387 -0
  364. package/dist/src/plugins/two-factor/client.d.ts +28 -0
  365. package/dist/src/plugins/two-factor/constant.d.ts +2 -0
  366. package/dist/src/plugins/two-factor/error-code.d.ts +11 -0
  367. package/dist/src/plugins/two-factor/index.d.ts +1014 -0
  368. package/dist/src/plugins/two-factor/otp/index.d.ts +282 -0
  369. package/dist/src/plugins/two-factor/schema.d.ts +35 -0
  370. package/dist/src/plugins/two-factor/totp/index.d.ts +298 -0
  371. package/dist/src/plugins/two-factor/types.d.ts +50 -0
  372. package/dist/src/plugins/two-factor/utils.d.ts +1 -0
  373. package/dist/src/plugins/two-factor/verify-two-factor.d.ts +59 -0
  374. package/dist/src/plugins/username/client.d.ts +5 -0
  375. package/dist/src/plugins/username/error-codes.d.ts +10 -0
  376. package/dist/src/plugins/username/index.d.ts +313 -0
  377. package/dist/src/plugins/username/schema.d.ts +27 -0
  378. package/dist/src/social-providers/index.d.ts +1 -0
  379. package/dist/src/test-utils/headers.d.ts +5 -0
  380. package/dist/src/test-utils/index.d.ts +2 -0
  381. package/dist/src/test-utils/test-instance.d.ts +17849 -0
  382. package/dist/src/types/adapter.d.ts +21 -0
  383. package/dist/src/types/api.d.ts +29 -0
  384. package/dist/src/types/helper.d.ts +32 -0
  385. package/dist/src/types/index.d.ts +7 -0
  386. package/dist/src/types/models.d.ts +13 -0
  387. package/dist/src/types/plugins.d.ts +14 -0
  388. package/dist/src/utils/await-object.d.ts +3 -0
  389. package/dist/src/utils/boolean.d.ts +1 -0
  390. package/dist/src/utils/clone.d.ts +1 -0
  391. package/dist/src/utils/constants.d.ts +1 -0
  392. package/dist/src/utils/date.d.ts +1 -0
  393. package/dist/src/utils/ensure-utc.d.ts +1 -0
  394. package/dist/src/utils/get-request-ip.d.ts +2 -0
  395. package/dist/src/utils/hashing.d.ts +6 -0
  396. package/dist/src/utils/hide-metadata.d.ts +3 -0
  397. package/dist/src/utils/id.d.ts +1 -0
  398. package/dist/src/utils/import-util.d.ts +1 -0
  399. package/dist/src/utils/index.d.ts +5 -0
  400. package/dist/src/utils/is-atom.d.ts +2 -0
  401. package/dist/src/utils/is-promise.d.ts +1 -0
  402. package/dist/src/utils/json.d.ts +1 -0
  403. package/dist/src/utils/merger.d.ts +1 -0
  404. package/dist/src/utils/middleware-response.d.ts +8 -0
  405. package/dist/src/utils/misc.d.ts +1 -0
  406. package/dist/src/utils/password.d.ts +6 -0
  407. package/dist/src/utils/plugin-helper.d.ts +5 -0
  408. package/dist/src/utils/shim.d.ts +3 -0
  409. package/dist/src/utils/time.d.ts +4 -0
  410. package/dist/src/utils/url.d.ts +4 -0
  411. package/dist/src/utils/wildcard.d.ts +45 -0
  412. package/dist/test-utils/index.d.mts +17870 -0
  413. package/dist/test-utils/index.mjs +272 -0
  414. package/dist/two-factor-ClUXxom2.mjs +914 -0
  415. package/dist/types/index.d.mts +6 -0
  416. package/dist/types/index.mjs +3 -0
  417. package/dist/types-B1OL7hyf.d.mts +4 -0
  418. package/dist/types-Bjn15Uy6.mjs +1 -0
  419. package/dist/url-VB2gAbTI.mjs +59 -0
  420. package/dist/username-DiGklOGl.mjs +278 -0
  421. package/dist/utils-SOMB4Px5.mjs +132 -0
  422. package/package.json +447 -0
@@ -0,0 +1,3 @@
1
+ import type { AuthContext } from "@gatwech/core";
2
+ import type { AuthEndpoint } from "@gatwech/core/api";
3
+ export declare function toAuthEndpoints<const E extends Record<string, Omit<AuthEndpoint, "wrap">>>(endpoints: E, ctx: AuthContext | Promise<AuthContext>): E;
@@ -0,0 +1,25 @@
1
+ import type { AuthContext, PayvoAuthOptions } from "@gatwech/core";
2
+ import { BASE_ERROR_CODES } from "@gatwech/core/error";
3
+ import { router } from "./api";
4
+ import type { InferAPI, InferPluginErrorCodes, InferPluginTypes, InferSession, InferUser } from "./types";
5
+ import type { Expand, PrettifyDeep } from "./types/helper";
6
+ export type WithJsDoc<T, D> = Expand<T & D>;
7
+ export declare const payvoAuth: <Options extends PayvoAuthOptions>(options: Options & Record<never, never>) => Auth<Options>;
8
+ export type Auth<Options extends PayvoAuthOptions = PayvoAuthOptions> = {
9
+ handler: (request: Request) => Promise<Response>;
10
+ api: InferAPI<ReturnType<typeof router<Options>>["endpoints"]>;
11
+ options: Options;
12
+ $ERROR_CODES: InferPluginErrorCodes<Options> & typeof BASE_ERROR_CODES;
13
+ $context: Promise<AuthContext>;
14
+ /**
15
+ * Share types
16
+ */
17
+ $Infer: InferPluginTypes<Options> extends {
18
+ Session: any;
19
+ } ? InferPluginTypes<Options> : {
20
+ Session: {
21
+ session: PrettifyDeep<InferSession<Options>>;
22
+ user: PrettifyDeep<InferUser<Options>>;
23
+ };
24
+ } & InferPluginTypes<Options>;
25
+ };
@@ -0,0 +1,12 @@
1
+ export interface BroadcastMessage {
2
+ event?: "session" | undefined;
3
+ data?: {
4
+ trigger?: "signout" | "getSession" | "updateUser";
5
+ } | undefined;
6
+ clientId: string;
7
+ timestamp: number;
8
+ }
9
+ export declare function createBroadcastChannel(name?: string): {
10
+ receive(onReceive: (message: BroadcastMessage) => void): () => void;
11
+ post(message: Record<string, unknown>): void;
12
+ };
@@ -0,0 +1,85 @@
1
+ import type { PayvoAuthClientOptions, ClientAtomListener } from "@gatwech/core";
2
+ import { type WritableAtom } from "nanostores";
3
+ export declare const getClientConfig: (options?: PayvoAuthClientOptions | undefined, loadEnv?: boolean | undefined) => {
4
+ readonly baseURL: string;
5
+ pluginsActions: Record<string, any>;
6
+ pluginsAtoms: Record<string, WritableAtom<any>>;
7
+ pluginPathMethods: Record<string, "GET" | "POST">;
8
+ atomListeners: ClientAtomListener[];
9
+ $fetch: import("@better-fetch/fetch").BetterFetch<{
10
+ plugins: (import("@better-fetch/fetch").BetterFetchPlugin | {
11
+ id: string;
12
+ name: string;
13
+ hooks: {
14
+ onSuccess(context: import("@better-fetch/fetch").SuccessContext<any>): void;
15
+ };
16
+ } | {
17
+ id: string;
18
+ name: string;
19
+ hooks: {
20
+ onRequest<T extends Record<string, any>>(context: import("@better-fetch/fetch").RequestContext<T>): void;
21
+ };
22
+ } | {
23
+ id: string;
24
+ name: string;
25
+ hooks: {
26
+ onSuccess: ((context: import("@better-fetch/fetch").SuccessContext<any>) => Promise<void> | void) | undefined;
27
+ onError: ((context: import("@better-fetch/fetch").ErrorContext) => Promise<void> | void) | undefined;
28
+ onRequest: (<T extends Record<string, any>>(context: import("@better-fetch/fetch").RequestContext<T>) => Promise<import("@better-fetch/fetch").RequestContext | void> | import("@better-fetch/fetch").RequestContext | void) | undefined;
29
+ onResponse: ((context: import("@better-fetch/fetch").ResponseContext) => Promise<Response | void | import("@better-fetch/fetch").ResponseContext> | Response | import("@better-fetch/fetch").ResponseContext | void) | undefined;
30
+ };
31
+ })[];
32
+ method: string;
33
+ headers?: (HeadersInit & (HeadersInit | {
34
+ accept: "application/json" | "text/plain" | "application/octet-stream";
35
+ "content-type": "application/json" | "text/plain" | "application/x-www-form-urlencoded" | "multipart/form-data" | "application/octet-stream";
36
+ authorization: "Bearer" | "Basic";
37
+ })) | undefined;
38
+ redirect?: RequestRedirect | undefined;
39
+ cache?: RequestCache | undefined;
40
+ credentials?: RequestCredentials;
41
+ integrity?: string | undefined;
42
+ keepalive?: boolean | undefined;
43
+ mode?: RequestMode | undefined;
44
+ priority?: RequestPriority | undefined;
45
+ referrer?: string | undefined;
46
+ referrerPolicy?: ReferrerPolicy | undefined;
47
+ signal?: (AbortSignal | null) | undefined;
48
+ window?: null | undefined;
49
+ onRetry?: ((response: import("@better-fetch/fetch").ResponseContext) => Promise<void> | void) | undefined;
50
+ hookOptions?: {
51
+ cloneResponse?: boolean;
52
+ } | undefined;
53
+ timeout?: number | undefined;
54
+ customFetchImpl: import("@better-fetch/fetch").FetchEsque;
55
+ baseURL: string;
56
+ throw?: boolean | undefined;
57
+ auth?: ({
58
+ type: "Bearer";
59
+ token: string | Promise<string | undefined> | (() => string | Promise<string | undefined> | undefined) | undefined;
60
+ } | {
61
+ type: "Basic";
62
+ username: string | (() => string | undefined) | undefined;
63
+ password: string | (() => string | undefined) | undefined;
64
+ } | {
65
+ type: "Custom";
66
+ prefix: string | (() => string | undefined) | undefined;
67
+ value: string | (() => string | undefined) | undefined;
68
+ }) | undefined;
69
+ body?: any;
70
+ query?: any;
71
+ params?: any;
72
+ duplex?: "full" | "half" | undefined;
73
+ jsonParser: (text: string) => Promise<any> | any;
74
+ retry?: import("@better-fetch/fetch").RetryOptions | undefined;
75
+ retryAttempt?: number | undefined;
76
+ output?: (import("@better-fetch/fetch").StandardSchemaV1 | typeof Blob | typeof File) | undefined;
77
+ errorSchema?: import("@better-fetch/fetch").StandardSchemaV1 | undefined;
78
+ disableValidation?: boolean | undefined;
79
+ }, unknown, unknown, {}>;
80
+ $store: {
81
+ notify: (signal?: (Omit<string, "$sessionSignal"> | "$sessionSignal") | undefined) => void;
82
+ listen: (signal: Omit<string, "$sessionSignal"> | "$sessionSignal", listener: (value: boolean, oldValue?: boolean | undefined) => void) => void;
83
+ atoms: Record<string, WritableAtom<any>>;
84
+ };
85
+ };
@@ -0,0 +1,14 @@
1
+ export declare const redirectPlugin: {
2
+ id: string;
3
+ name: string;
4
+ hooks: {
5
+ onSuccess(context: import("@better-fetch/fetch").SuccessContext<any>): void;
6
+ };
7
+ };
8
+ export declare const userAgentPlugin: {
9
+ id: string;
10
+ name: string;
11
+ hooks: {
12
+ onRequest<T extends Record<string, any>>(context: import("@better-fetch/fetch").RequestContext<T>): void;
13
+ };
14
+ };
@@ -0,0 +1,15 @@
1
+ import type { PayvoAuthOptions, PayvoAuthPlugin } from "@gatwech/core";
2
+ export * from "./broadcast-channel";
3
+ export * from "./query";
4
+ export * from "./session-refresh";
5
+ export * from "./types";
6
+ export * from "./vanilla";
7
+ export declare const InferPlugin: <T extends PayvoAuthPlugin>() => {
8
+ id: "infer-server-plugin";
9
+ $InferServerPlugin: T;
10
+ };
11
+ export declare function InferAuth<O extends {
12
+ options: PayvoAuthOptions;
13
+ }>(): O["options"];
14
+ export type * from "@better-fetch/fetch";
15
+ export type * from "nanostores";
@@ -0,0 +1,12 @@
1
+ type ParseOptions = {
2
+ /** Throw errors instead of returning the original value */
3
+ strict?: boolean | undefined;
4
+ /** Log warnings when suspicious patterns are detected */
5
+ warnings?: boolean | undefined;
6
+ /** Custom reviver function */
7
+ reviver?: ((key: string, value: any) => any) | undefined;
8
+ /** Automatically convert ISO date strings to Date objects */
9
+ parseDates?: boolean | undefined;
10
+ };
11
+ export declare function parseJSON<T = unknown>(value: unknown, options?: ParseOptions): T;
12
+ export default parseJSON;
@@ -0,0 +1,63 @@
1
+ import type { PayvoAuthClientOptions } from "@gatwech/core";
2
+ import type { BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch";
3
+ import type { Endpoint, InputContext, StandardSchemaV1 } from "better-call";
4
+ import type { HasRequiredKeys, Prettify, UnionToIntersection } from "../types/helper";
5
+ import type { InferAdditionalFromClient, InferSessionFromClient, InferUserFromClient } from "./types";
6
+ export type CamelCase<S extends string> = S extends `${infer P1}-${infer P2}${infer P3}` ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<P3>}` : Lowercase<S>;
7
+ export type PathToObject<T extends string, Fn extends (...args: any[]) => any> = T extends `/${infer Segment}/${infer Rest}` ? {
8
+ [K in CamelCase<Segment>]: PathToObject<`/${Rest}`, Fn>;
9
+ } : T extends `/${infer Segment}` ? {
10
+ [K in CamelCase<Segment>]: Fn;
11
+ } : never;
12
+ export type InferSignUpEmailCtx<ClientOpts extends PayvoAuthClientOptions, FetchOptions extends BetterFetchOption> = {
13
+ email: string;
14
+ name: string;
15
+ password: string;
16
+ image?: string | undefined;
17
+ callbackURL?: string | undefined;
18
+ fetchOptions?: FetchOptions | undefined;
19
+ } & UnionToIntersection<InferAdditionalFromClient<ClientOpts, "user", "input">>;
20
+ export type InferUserUpdateCtx<ClientOpts extends PayvoAuthClientOptions, FetchOptions extends BetterFetchOption> = {
21
+ image?: (string | null) | undefined;
22
+ name?: string | undefined;
23
+ fetchOptions?: FetchOptions | undefined;
24
+ } & Partial<UnionToIntersection<InferAdditionalFromClient<ClientOpts, "user", "input">>>;
25
+ export type InferCtx<C extends InputContext<any, any>, FetchOptions extends BetterFetchOption> = C["body"] extends Record<string, any> ? C["body"] & {
26
+ fetchOptions?: FetchOptions | undefined;
27
+ } : C["query"] extends Record<string, any> ? {
28
+ query: C["query"];
29
+ fetchOptions?: FetchOptions | undefined;
30
+ } : C["query"] extends Record<string, any> | undefined ? {
31
+ query?: C["query"] | undefined;
32
+ fetchOptions?: FetchOptions | undefined;
33
+ } : {
34
+ fetchOptions?: FetchOptions | undefined;
35
+ };
36
+ export type MergeRoutes<T> = UnionToIntersection<T>;
37
+ export type InferRoute<API, COpts extends PayvoAuthClientOptions> = API extends Record<string, infer T> ? T extends Endpoint ? T["options"]["metadata"] extends {
38
+ isAction: false;
39
+ } | {
40
+ SERVER_ONLY: true;
41
+ } ? {} : PathToObject<T["path"], T extends (ctx: infer C) => infer R ? C extends InputContext<any, any> ? <FetchOptions extends BetterFetchOption<Partial<C["body"]> & Record<string, any>, Partial<C["query"]> & Record<string, any>, C["params"]>>(...data: HasRequiredKeys<InferCtx<C, FetchOptions>> extends true ? [
42
+ Prettify<T["path"] extends `/sign-up/email` ? InferSignUpEmailCtx<COpts, FetchOptions> : InferCtx<C, FetchOptions>>,
43
+ FetchOptions?
44
+ ] : [
45
+ Prettify<T["path"] extends `/update-user` ? InferUserUpdateCtx<COpts, FetchOptions> : InferCtx<C, FetchOptions>>?,
46
+ FetchOptions?
47
+ ]) => Promise<BetterFetchResponse<T["options"]["metadata"] extends {
48
+ CUSTOM_SESSION: boolean;
49
+ } ? NonNullable<Awaited<R>> : T["path"] extends "/get-session" ? {
50
+ user: InferUserFromClient<COpts>;
51
+ session: InferSessionFromClient<COpts>;
52
+ } | null : NonNullable<Awaited<R>>, T["options"]["error"] extends StandardSchemaV1 ? NonNullable<T["options"]["error"]["~standard"]["types"]>["output"] : {
53
+ code?: string | undefined;
54
+ message?: string | undefined;
55
+ }, FetchOptions["throw"] extends true ? true : COpts["fetchOptions"] extends {
56
+ throw: true;
57
+ } ? true : false>> : never : never> : {} : never;
58
+ export type InferRoutes<API extends Record<string, Endpoint>, ClientOpts extends PayvoAuthClientOptions> = MergeRoutes<InferRoute<API, ClientOpts>>;
59
+ export type ProxyRequest = {
60
+ options?: BetterFetchOption<any, any> | undefined;
61
+ query?: any | undefined;
62
+ [key: string]: any;
63
+ };
@@ -0,0 +1,21 @@
1
+ export type * from "../../types/helper";
2
+ export * from "../../plugins/additional-fields/client";
3
+ export * from "../../plugins/admin/client";
4
+ export * from "../../plugins/anonymous/client";
5
+ export * from "../../plugins/api-key/client";
6
+ export * from "../../plugins/custom-session/client";
7
+ export * from "../../plugins/device-authorization/client";
8
+ export * from "../../plugins/email-otp/client";
9
+ export * from "../../plugins/generic-oauth/client";
10
+ export * from "../../plugins/jwt/client";
11
+ export * from "../../plugins/last-login-method/client";
12
+ export * from "../../plugins/magic-link/client";
13
+ export * from "../../plugins/multi-session/client";
14
+ export * from "../../plugins/one-tap/client";
15
+ export * from "../../plugins/one-time-token/client";
16
+ export * from "../../plugins/organization/client";
17
+ export * from "../../plugins/phone-number/client";
18
+ export * from "../../plugins/two-factor/client";
19
+ export * from "../../plugins/passkey/client";
20
+ export * from "../../plugins/username/client";
21
+ export * from "./infer-plugin";
@@ -0,0 +1,11 @@
1
+ import type { PayvoAuthOptions } from "@gatwech/core";
2
+ export declare const InferServerPlugin: <AuthOrOption extends PayvoAuthOptions | {
3
+ options: PayvoAuthOptions;
4
+ }, ID extends string>() => {
5
+ id: "infer-server-plugin";
6
+ $InferServerPlugin: (AuthOrOption extends {
7
+ options: infer O;
8
+ } ? O : AuthOrOption)["plugins"] extends (infer P)[] ? P extends {
9
+ id: ID;
10
+ } ? P : never : never;
11
+ };
@@ -0,0 +1,8 @@
1
+ import type { PayvoAuthClientPlugin } from "@gatwech/core";
2
+ import type { BetterFetch } from "@better-fetch/fetch";
3
+ import type { Atom, PreinitializedWritableAtom } from "nanostores";
4
+ export type AuthProxySignal = {
5
+ atom: PreinitializedWritableAtom<boolean>;
6
+ matcher: (path: string) => boolean;
7
+ };
8
+ export declare function createDynamicPathProxy<T extends Record<string, any>>(routes: T, client: BetterFetch, knownPathMethods: Record<string, "POST" | "GET">, atoms: Record<string, Atom>, atomListeners: PayvoAuthClientPlugin["atomListeners"]): T;
@@ -0,0 +1,16 @@
1
+ import { type BetterFetch, BetterFetchError, type BetterFetchOption } from "@better-fetch/fetch";
2
+ import { type PreinitializedWritableAtom } from "nanostores";
3
+ import type { SessionQueryParams } from "./types";
4
+ export declare const useAuthQuery: <T>(initializedAtom: PreinitializedWritableAtom<any> | PreinitializedWritableAtom<any>[], path: string, $fetch: BetterFetch, options?: (((value: {
5
+ data: null | T;
6
+ error: null | BetterFetchError;
7
+ isPending: boolean;
8
+ }) => BetterFetchOption) | BetterFetchOption) | undefined) => PreinitializedWritableAtom<{
9
+ data: null | T;
10
+ error: null | BetterFetchError;
11
+ isPending: boolean;
12
+ isRefetching: boolean;
13
+ refetch: (queryParams?: {
14
+ query?: SessionQueryParams;
15
+ } | undefined) => void;
16
+ }> & object;
@@ -0,0 +1,130 @@
1
+ import type { PayvoAuthClientOptions, PayvoAuthClientPlugin } from "@gatwech/core";
2
+ import type { BASE_ERROR_CODES } from "@gatwech/core/error";
3
+ import type { BetterFetchError } from "@better-fetch/fetch";
4
+ import type { PrettifyDeep, UnionToIntersection } from "../../types/helper";
5
+ import type { InferActions, InferClientAPI, InferErrorCodes, IsSignal, SessionQueryParams } from "../types";
6
+ import { useStore } from "./react-store";
7
+ export declare function capitalizeFirstLetter(str: string): string;
8
+ type InferResolvedHooks<O extends PayvoAuthClientOptions> = O extends {
9
+ plugins: Array<infer Plugin>;
10
+ } ? UnionToIntersection<Plugin extends PayvoAuthClientPlugin ? Plugin["getAtoms"] extends (fetch: any) => infer Atoms ? Atoms extends Record<string, any> ? {
11
+ [key in keyof Atoms as IsSignal<key> extends true ? never : key extends string ? `use${Capitalize<key>}` : never]: () => ReturnType<Atoms[key]["get"]>;
12
+ } : {} : {} : {}> : {};
13
+ export declare function createAuthClient<Option extends PayvoAuthClientOptions>(options?: Option | undefined): UnionToIntersection<InferResolvedHooks<Option>> & InferClientAPI<Option> & InferActions<Option> & {
14
+ useSession: () => {
15
+ data: InferClientAPI<Option> extends {
16
+ getSession: () => Promise<infer Res>;
17
+ } ? Res extends {
18
+ data: null;
19
+ error: {
20
+ message?: string | undefined;
21
+ status: number;
22
+ statusText: string;
23
+ };
24
+ } | {
25
+ data: infer S;
26
+ error: null;
27
+ } ? S : Res : never;
28
+ isPending: boolean;
29
+ isRefetching: boolean;
30
+ error: BetterFetchError | null;
31
+ refetch: (queryParams?: {
32
+ query?: SessionQueryParams;
33
+ } | undefined) => void;
34
+ };
35
+ $Infer: {
36
+ Session: NonNullable<InferClientAPI<Option> extends {
37
+ getSession: () => Promise<infer Res>;
38
+ } ? Res extends {
39
+ data: null;
40
+ error: {
41
+ message?: string | undefined;
42
+ status: number;
43
+ statusText: string;
44
+ };
45
+ } | {
46
+ data: infer S;
47
+ error: null;
48
+ } ? S : Res : never>;
49
+ };
50
+ $fetch: import("@better-fetch/fetch").BetterFetch<{
51
+ plugins: (import("@better-fetch/fetch").BetterFetchPlugin | {
52
+ id: string;
53
+ name: string;
54
+ hooks: {
55
+ onSuccess(context: import("@better-fetch/fetch").SuccessContext<any>): void;
56
+ };
57
+ } | {
58
+ id: string;
59
+ name: string;
60
+ hooks: {
61
+ onRequest<T extends Record<string, any>>(context: import("@better-fetch/fetch").RequestContext<T>): void;
62
+ };
63
+ } | {
64
+ id: string;
65
+ name: string;
66
+ hooks: {
67
+ onSuccess: ((context: import("@better-fetch/fetch").SuccessContext<any>) => Promise<void> | void) | undefined;
68
+ onError: ((context: import("@better-fetch/fetch").ErrorContext) => Promise<void> | void) | undefined;
69
+ onRequest: (<T extends Record<string, any>>(context: import("@better-fetch/fetch").RequestContext<T>) => Promise<import("@better-fetch/fetch").RequestContext | void> | import("@better-fetch/fetch").RequestContext | void) | undefined;
70
+ onResponse: ((context: import("@better-fetch/fetch").ResponseContext) => Promise<Response | void | import("@better-fetch/fetch").ResponseContext> | Response | import("@better-fetch/fetch").ResponseContext | void) | undefined;
71
+ };
72
+ })[];
73
+ method: string;
74
+ headers?: (HeadersInit & (HeadersInit | {
75
+ accept: "application/json" | "text/plain" | "application/octet-stream";
76
+ "content-type": "application/json" | "text/plain" | "application/x-www-form-urlencoded" | "multipart/form-data" | "application/octet-stream";
77
+ authorization: "Bearer" | "Basic";
78
+ })) | undefined;
79
+ redirect?: RequestRedirect | undefined;
80
+ cache?: RequestCache | undefined;
81
+ credentials?: RequestCredentials;
82
+ integrity?: string | undefined;
83
+ keepalive?: boolean | undefined;
84
+ mode?: RequestMode | undefined;
85
+ priority?: RequestPriority | undefined;
86
+ referrer?: string | undefined;
87
+ referrerPolicy?: ReferrerPolicy | undefined;
88
+ signal?: (AbortSignal | null) | undefined;
89
+ window?: null | undefined;
90
+ onRetry?: ((response: import("@better-fetch/fetch").ResponseContext) => Promise<void> | void) | undefined;
91
+ hookOptions?: {
92
+ cloneResponse?: boolean;
93
+ } | undefined;
94
+ timeout?: number | undefined;
95
+ customFetchImpl: import("@better-fetch/fetch").FetchEsque;
96
+ baseURL: string;
97
+ throw?: boolean | undefined;
98
+ auth?: ({
99
+ type: "Bearer";
100
+ token: string | Promise<string | undefined> | (() => string | Promise<string | undefined> | undefined) | undefined;
101
+ } | {
102
+ type: "Basic";
103
+ username: string | (() => string | undefined) | undefined;
104
+ password: string | (() => string | undefined) | undefined;
105
+ } | {
106
+ type: "Custom";
107
+ prefix: string | (() => string | undefined) | undefined;
108
+ value: string | (() => string | undefined) | undefined;
109
+ }) | undefined;
110
+ body?: any;
111
+ query?: any;
112
+ params?: any;
113
+ duplex?: "full" | "half" | undefined;
114
+ jsonParser: (text: string) => Promise<any> | any;
115
+ retry?: import("@better-fetch/fetch").RetryOptions | undefined;
116
+ retryAttempt?: number | undefined;
117
+ output?: (import("@better-fetch/fetch").StandardSchemaV1 | typeof Blob | typeof File) | undefined;
118
+ errorSchema?: import("@better-fetch/fetch").StandardSchemaV1 | undefined;
119
+ disableValidation?: boolean | undefined;
120
+ }, unknown, unknown, {}>;
121
+ $store: {
122
+ notify: (signal?: (Omit<string, "$sessionSignal"> | "$sessionSignal") | undefined) => void;
123
+ listen: (signal: Omit<string, "$sessionSignal"> | "$sessionSignal", listener: (value: boolean, oldValue?: boolean | undefined) => void) => void;
124
+ atoms: Record<string, import("nanostores").WritableAtom<any>>;
125
+ };
126
+ $ERROR_CODES: PrettifyDeep<InferErrorCodes<Option> & typeof BASE_ERROR_CODES>;
127
+ };
128
+ export { useStore };
129
+ export type * from "@better-fetch/fetch";
130
+ export type * from "nanostores";
@@ -0,0 +1,43 @@
1
+ import type { Store, StoreValue } from "nanostores";
2
+ import type { DependencyList } from "react";
3
+ type StoreKeys<T> = T extends {
4
+ setKey: (k: infer K, v: any) => unknown;
5
+ } ? K : never;
6
+ export interface UseStoreOptions<SomeStore> {
7
+ /**
8
+ * @default
9
+ * ```ts
10
+ * [store, options.keys]
11
+ * ```
12
+ */
13
+ deps?: DependencyList | undefined;
14
+ /**
15
+ * Will re-render components only on specific key changes.
16
+ */
17
+ keys?: StoreKeys<SomeStore>[] | undefined;
18
+ }
19
+ /**
20
+ * Subscribe to store changes and get store's value.
21
+ *
22
+ * Can be used with store builder too.
23
+ *
24
+ * ```js
25
+ * import { useStore } from 'nanostores/react'
26
+ *
27
+ * import { router } from '../store/router'
28
+ *
29
+ * export const Layout = () => {
30
+ * let page = useStore(router)
31
+ * if (page.route === 'home') {
32
+ * return <HomePage />
33
+ * } else {
34
+ * return <Error404 />
35
+ * }
36
+ * }
37
+ * ```
38
+ *
39
+ * @param store Store instance.
40
+ * @returns Store value.
41
+ */
42
+ export declare function useStore<SomeStore extends Store>(store: SomeStore, options?: UseStoreOptions<SomeStore>): StoreValue<SomeStore>;
43
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { PayvoAuthClientOptions } from "@gatwech/core";
2
+ import type { BetterFetch } from "@better-fetch/fetch";
3
+ import type { Session, User } from "../types";
4
+ export declare function getSessionAtom($fetch: BetterFetch, options?: PayvoAuthClientOptions | undefined): {
5
+ session: import("nanostores").PreinitializedWritableAtom<{
6
+ data: {
7
+ user: User;
8
+ session: Session;
9
+ } | null;
10
+ error: null | import("@better-fetch/fetch").BetterFetchError;
11
+ isPending: boolean;
12
+ isRefetching: boolean;
13
+ refetch: (queryParams?: {
14
+ query?: import("./types").SessionQueryParams;
15
+ } | undefined) => void;
16
+ }> & object;
17
+ $sessionSignal: import("nanostores").PreinitializedWritableAtom<boolean> & object;
18
+ };
@@ -0,0 +1,17 @@
1
+ import type { PayvoAuthClientOptions } from "@gatwech/core";
2
+ import type { BetterFetch } from "@better-fetch/fetch";
3
+ import type { WritableAtom } from "nanostores";
4
+ export interface SessionRefreshOptions {
5
+ sessionAtom: WritableAtom<any>;
6
+ sessionSignal: WritableAtom<boolean>;
7
+ $fetch: BetterFetch;
8
+ options?: PayvoAuthClientOptions | undefined;
9
+ }
10
+ export declare function createSessionRefreshManager(opts: SessionRefreshOptions): {
11
+ init: () => void;
12
+ cleanup: () => void;
13
+ triggerRefetch: (event?: {
14
+ event?: "poll" | "visibilitychange" | "storage";
15
+ } | undefined) => void;
16
+ broadcastSessionUpdate: (trigger: "signout" | "getSession" | "updateUser") => void;
17
+ };
@@ -0,0 +1,147 @@
1
+ import z from "zod";
2
+ declare const serverPlugin: {
3
+ id: "test";
4
+ endpoints: {
5
+ test: {
6
+ <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0?: ({
7
+ body?: undefined;
8
+ } & {
9
+ method?: "GET" | undefined;
10
+ } & {
11
+ query?: Record<string, any> | undefined;
12
+ } & {
13
+ params?: Record<string, any>;
14
+ } & {
15
+ request?: Request;
16
+ } & {
17
+ headers?: HeadersInit;
18
+ } & {
19
+ asResponse?: boolean;
20
+ returnHeaders?: boolean;
21
+ use?: import("better-call").Middleware[];
22
+ path?: string;
23
+ } & {
24
+ asResponse?: AsResponse | undefined;
25
+ returnHeaders?: ReturnHeaders | undefined;
26
+ }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? {
27
+ headers: Headers;
28
+ response: {
29
+ data: string;
30
+ };
31
+ } : {
32
+ data: string;
33
+ }>;
34
+ options: {
35
+ method: "GET";
36
+ error: z.ZodObject<{
37
+ code: z.ZodNumber;
38
+ message: z.ZodString;
39
+ test: z.ZodBoolean;
40
+ }, z.core.$strip>;
41
+ } & {
42
+ use: any[];
43
+ };
44
+ path: "/test";
45
+ };
46
+ testSignOut2: {
47
+ <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0?: ({
48
+ body?: undefined;
49
+ } & {
50
+ method?: "POST" | undefined;
51
+ } & {
52
+ query?: Record<string, any> | undefined;
53
+ } & {
54
+ params?: Record<string, any>;
55
+ } & {
56
+ request?: Request;
57
+ } & {
58
+ headers?: HeadersInit;
59
+ } & {
60
+ asResponse?: boolean;
61
+ returnHeaders?: boolean;
62
+ use?: import("better-call").Middleware[];
63
+ path?: string;
64
+ } & {
65
+ asResponse?: AsResponse | undefined;
66
+ returnHeaders?: ReturnHeaders | undefined;
67
+ }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? {
68
+ headers: Headers;
69
+ response: null;
70
+ } : null>;
71
+ options: {
72
+ method: "POST";
73
+ } & {
74
+ use: any[];
75
+ };
76
+ path: "/test-2/sign-out";
77
+ };
78
+ };
79
+ schema: {
80
+ user: {
81
+ fields: {
82
+ testField: {
83
+ type: "string";
84
+ required: false;
85
+ };
86
+ testField2: {
87
+ type: "number";
88
+ required: false;
89
+ };
90
+ testField3: {
91
+ type: "string";
92
+ returned: false;
93
+ };
94
+ testField4: {
95
+ type: "string";
96
+ defaultValue: string;
97
+ };
98
+ };
99
+ };
100
+ };
101
+ };
102
+ export declare const testClientPlugin: () => {
103
+ id: "test";
104
+ getActions($fetch: import("@better-fetch/fetch").BetterFetch): {
105
+ setTestAtom(value: boolean): void;
106
+ test: {
107
+ signOut: () => Promise<void>;
108
+ };
109
+ };
110
+ getAtoms($fetch: import("@better-fetch/fetch").BetterFetch): {
111
+ $test: import("nanostores").PreinitializedWritableAtom<boolean> & object;
112
+ $signal: import("nanostores").PreinitializedWritableAtom<boolean> & object;
113
+ computedAtom: import("nanostores").ReadableAtom<number>;
114
+ queryAtom: import("nanostores").PreinitializedWritableAtom<{
115
+ data: any;
116
+ error: null | import("@better-fetch/fetch").BetterFetchError;
117
+ isPending: boolean;
118
+ isRefetching: boolean;
119
+ refetch: (queryParams?: {
120
+ query?: import("./types").SessionQueryParams;
121
+ } | undefined) => void;
122
+ }> & object;
123
+ };
124
+ $InferServerPlugin: typeof serverPlugin;
125
+ atomListeners: ({
126
+ matcher: (path: string) => path is "/test";
127
+ signal: "$test";
128
+ } | {
129
+ matcher: (path: string) => path is "/test2/sign-out";
130
+ signal: "$sessionSignal";
131
+ })[];
132
+ };
133
+ export declare const testClientPlugin2: () => {
134
+ id: "test";
135
+ getAtoms($fetch: import("@better-fetch/fetch").BetterFetch): {
136
+ $test2: import("nanostores").PreinitializedWritableAtom<boolean> & object;
137
+ anotherAtom: import("nanostores").ReadableAtom<number>;
138
+ };
139
+ atomListeners: ({
140
+ matcher: (path: string) => path is "/test";
141
+ signal: "$test";
142
+ } | {
143
+ matcher: (path: string) => path is "/test2/sign-out";
144
+ signal: "$sessionSignal";
145
+ })[];
146
+ };
147
+ export {};