@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,387 @@
1
+ import { t as APIError } from "./api-0pR_I-Nx.mjs";
2
+ import { n as symmetricEncrypt, t as symmetricDecrypt } from "./crypto-Bb42eMrH.mjs";
3
+ import { n as mergeSchema } from "./date-Cx2yCiC4.mjs";
4
+ import { u as sessionMiddleware } from "./session-Dgp133Yt.mjs";
5
+ import { PayvoAuthError } from "@gatwech/core/error";
6
+ import { createAuthEndpoint, createAuthMiddleware } from "@gatwech/core/api";
7
+ import * as z$1 from "zod";
8
+ import { SignJWT, exportJWK, generateKeyPair, importJWK } from "jose";
9
+ import { base64 } from "@gatwech/utils/base64";
10
+ import "@gatwech/utils";
11
+
12
+ //#region src/plugins/jwt/adapter.ts
13
+ const getJwksAdapter = (adapter, options) => {
14
+ return {
15
+ getAllKeys: async (ctx) => {
16
+ if (options?.adapter?.getJwks) return await options.adapter.getJwks(ctx);
17
+ return await adapter.findMany({ model: "jwks" });
18
+ },
19
+ getLatestKey: async (ctx) => {
20
+ if (options?.adapter?.getLatestKey) return await options.adapter.getLatestKey(ctx);
21
+ return (await adapter.findMany({
22
+ model: "jwks",
23
+ sortBy: {
24
+ field: "createdAt",
25
+ direction: "desc"
26
+ },
27
+ limit: 1
28
+ }))[0];
29
+ },
30
+ createJwk: async (ctx, webKey) => {
31
+ if (options?.adapter?.createJwk) return await options.adapter.createJwk(webKey, ctx);
32
+ return await adapter.create({
33
+ model: "jwks",
34
+ data: {
35
+ ...webKey,
36
+ createdAt: /* @__PURE__ */ new Date()
37
+ }
38
+ });
39
+ }
40
+ };
41
+ };
42
+
43
+ //#endregion
44
+ //#region src/plugins/jwt/schema.ts
45
+ const schema = { jwks: { fields: {
46
+ publicKey: {
47
+ type: "string",
48
+ required: true
49
+ },
50
+ privateKey: {
51
+ type: "string",
52
+ required: true
53
+ },
54
+ createdAt: {
55
+ type: "date",
56
+ required: true
57
+ }
58
+ } } };
59
+
60
+ //#endregion
61
+ //#region src/utils/time.ts
62
+ const minute = 60;
63
+ const hour = minute * 60;
64
+ const day = hour * 24;
65
+ const week = day * 7;
66
+ const year = day * 365.25;
67
+ const REGEX = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;
68
+ /**
69
+ * https://github.com/panva/jose/blob/723ee6152d7ee2fc81852d2d26777e86df6fce01/src/lib/secs.ts
70
+ */
71
+ function joseSecs(str) {
72
+ const matched = REGEX.exec(str);
73
+ if (!matched || matched[4] && matched[1]) throw new TypeError("Invalid time period format");
74
+ const value = parseFloat(matched[2]);
75
+ const unit = matched[3].toLowerCase();
76
+ let numericDate;
77
+ switch (unit) {
78
+ case "sec":
79
+ case "secs":
80
+ case "second":
81
+ case "seconds":
82
+ case "s":
83
+ numericDate = Math.round(value);
84
+ break;
85
+ case "minute":
86
+ case "minutes":
87
+ case "min":
88
+ case "mins":
89
+ case "m":
90
+ numericDate = Math.round(value * minute);
91
+ break;
92
+ case "hour":
93
+ case "hours":
94
+ case "hr":
95
+ case "hrs":
96
+ case "h":
97
+ numericDate = Math.round(value * hour);
98
+ break;
99
+ case "day":
100
+ case "days":
101
+ case "d":
102
+ numericDate = Math.round(value * day);
103
+ break;
104
+ case "week":
105
+ case "weeks":
106
+ case "w":
107
+ numericDate = Math.round(value * week);
108
+ break;
109
+ default:
110
+ numericDate = Math.round(value * year);
111
+ break;
112
+ }
113
+ if (matched[1] === "-" || matched[4] === "ago") return -numericDate;
114
+ return numericDate;
115
+ }
116
+
117
+ //#endregion
118
+ //#region src/plugins/jwt/utils.ts
119
+ /**
120
+ * Converts an expirationTime to ISO seconds expiration time (the format of JWT exp)
121
+ *
122
+ * See https://github.com/panva/jose/blob/main/src/lib/jwt_claims_set.ts#L245
123
+ *
124
+ * @param expirationTime - see options.jwt.expirationTime
125
+ * @param iat - the iat time to consolidate on
126
+ * @returns
127
+ */
128
+ function toExpJWT(expirationTime, iat) {
129
+ if (typeof expirationTime === "number") return expirationTime;
130
+ else if (expirationTime instanceof Date) return Math.floor(expirationTime.getTime() / 1e3);
131
+ else return iat + joseSecs(expirationTime);
132
+ }
133
+ async function generateExportedKeyPair(options) {
134
+ const { alg,...cfg } = options?.jwks?.keyPairConfig ?? {
135
+ alg: "EdDSA",
136
+ crv: "Ed25519"
137
+ };
138
+ const { publicKey, privateKey } = await generateKeyPair(alg, {
139
+ ...cfg,
140
+ extractable: true
141
+ });
142
+ return {
143
+ publicWebKey: await exportJWK(publicKey),
144
+ privateWebKey: await exportJWK(privateKey),
145
+ alg,
146
+ cfg
147
+ };
148
+ }
149
+ /**
150
+ * Creates a Jwk on the database
151
+ *
152
+ * @param ctx
153
+ * @param options
154
+ * @returns
155
+ */
156
+ async function createJwk(ctx, options) {
157
+ const { publicWebKey, privateWebKey, alg, cfg } = await generateExportedKeyPair(options);
158
+ const stringifiedPrivateWebKey = JSON.stringify(privateWebKey);
159
+ const privateKeyEncryptionEnabled = !options?.jwks?.disablePrivateKeyEncryption;
160
+ let jwk = {
161
+ alg,
162
+ ...cfg && "crv" in cfg ? { crv: cfg.crv } : {},
163
+ publicKey: JSON.stringify(publicWebKey),
164
+ privateKey: privateKeyEncryptionEnabled ? JSON.stringify(await symmetricEncrypt({
165
+ key: ctx.context.secret,
166
+ data: stringifiedPrivateWebKey
167
+ })) : stringifiedPrivateWebKey,
168
+ createdAt: /* @__PURE__ */ new Date()
169
+ };
170
+ return await getJwksAdapter(ctx.context.adapter, options).createJwk(ctx, jwk);
171
+ }
172
+
173
+ //#endregion
174
+ //#region src/plugins/jwt/sign.ts
175
+ async function signJWT(ctx, config) {
176
+ const { options, payload } = config;
177
+ const nowSeconds = Math.floor(Date.now() / 1e3);
178
+ const iat = payload.iat;
179
+ let exp = payload.exp;
180
+ const defaultExp = toExpJWT(options?.jwt?.expirationTime ?? "15m", iat ?? nowSeconds);
181
+ exp = exp ?? defaultExp;
182
+ const nbf = payload.nbf;
183
+ const iss = payload.iss;
184
+ const defaultIss = options?.jwt?.issuer ?? ctx.context.options.baseURL;
185
+ const aud = payload.aud;
186
+ const defaultAud = options?.jwt?.audience ?? ctx.context.options.baseURL;
187
+ if (options?.jwt?.sign) {
188
+ const jwtPayload = {
189
+ ...payload,
190
+ iat,
191
+ exp,
192
+ nbf,
193
+ iss: iss ?? defaultIss,
194
+ aud: aud ?? defaultAud
195
+ };
196
+ return options.jwt.sign(jwtPayload);
197
+ }
198
+ let key = await getJwksAdapter(ctx.context.adapter, options).getLatestKey(ctx);
199
+ if (!key) key = await createJwk(ctx, options);
200
+ const privateKeyEncryptionEnabled = !options?.jwks?.disablePrivateKeyEncryption;
201
+ if (key === void 0) key = await createJwk(ctx, options);
202
+ let privateWebKey = privateKeyEncryptionEnabled ? await symmetricDecrypt({
203
+ key: ctx.context.secret,
204
+ data: JSON.parse(key.privateKey)
205
+ }).catch(() => {
206
+ throw new PayvoAuthError("Failed to decrypt private key. Make sure the secret currently in use is the same as the one used to encrypt the private key. If you are using a different secret, either clean up your JWKS or disable private key encryption.");
207
+ }) : key.privateKey;
208
+ const alg = key.alg ?? options?.jwks?.keyPairConfig?.alg ?? "EdDSA";
209
+ const privateKey = await importJWK(JSON.parse(privateWebKey), alg);
210
+ const jwt$1 = new SignJWT(payload).setProtectedHeader({
211
+ alg,
212
+ kid: key.id
213
+ }).setExpirationTime(exp).setIssuer(iss ?? defaultIss).setAudience(aud ?? defaultAud);
214
+ if (iat) jwt$1.setIssuedAt(iat);
215
+ if (payload.sub) jwt$1.setSubject(payload.sub);
216
+ if (payload.nbf) jwt$1.setNotBefore(payload.nbf);
217
+ if (payload.jti) jwt$1.setJti(payload.jti);
218
+ return await jwt$1.sign(privateKey);
219
+ }
220
+ async function getJwtToken(ctx, options) {
221
+ const payload = !options?.jwt?.definePayload ? ctx.context.session.user : await options?.jwt.definePayload(ctx.context.session);
222
+ return await signJWT(ctx, {
223
+ options,
224
+ payload: {
225
+ iat: Math.floor(Date.now() / 1e3),
226
+ ...payload,
227
+ sub: await options?.jwt?.getSubject?.(ctx.context.session) ?? ctx.context.session.user.id
228
+ }
229
+ });
230
+ }
231
+
232
+ //#endregion
233
+ //#region src/plugins/jwt/index.ts
234
+ const jwt = (options) => {
235
+ if (options?.jwt?.sign && !options.jwks?.remoteUrl) throw new PayvoAuthError("jwks_config", "jwks.remoteUrl must be set when using jwt.sign");
236
+ if (options?.jwks?.remoteUrl && !options.jwks?.keyPairConfig?.alg) throw new PayvoAuthError("jwks_config", "must specify alg when using the oidc plugin and jwks.remoteUrl");
237
+ return {
238
+ id: "jwt",
239
+ options,
240
+ endpoints: {
241
+ getJwks: createAuthEndpoint("/jwks", {
242
+ method: "GET",
243
+ metadata: { openapi: {
244
+ description: "Get the JSON Web Key Set",
245
+ responses: { "200": {
246
+ description: "JSON Web Key Set retrieved successfully",
247
+ content: { "application/json": { schema: {
248
+ type: "object",
249
+ properties: { keys: {
250
+ type: "array",
251
+ description: "Array of public JSON Web Keys",
252
+ items: {
253
+ type: "object",
254
+ properties: {
255
+ kid: {
256
+ type: "string",
257
+ description: "Key ID uniquely identifying the key, corresponds to the 'id' from the stored Jwk"
258
+ },
259
+ kty: {
260
+ type: "string",
261
+ description: "Key type (e.g., 'RSA', 'EC', 'OKP')"
262
+ },
263
+ alg: {
264
+ type: "string",
265
+ description: "Algorithm intended for use with the key (e.g., 'EdDSA', 'RS256')"
266
+ },
267
+ use: {
268
+ type: "string",
269
+ description: "Intended use of the public key (e.g., 'sig' for signature)",
270
+ enum: ["sig"],
271
+ nullable: true
272
+ },
273
+ n: {
274
+ type: "string",
275
+ description: "Modulus for RSA keys (base64url-encoded)",
276
+ nullable: true
277
+ },
278
+ e: {
279
+ type: "string",
280
+ description: "Exponent for RSA keys (base64url-encoded)",
281
+ nullable: true
282
+ },
283
+ crv: {
284
+ type: "string",
285
+ description: "Curve name for elliptic curve keys (e.g., 'Ed25519', 'P-256')",
286
+ nullable: true
287
+ },
288
+ x: {
289
+ type: "string",
290
+ description: "X coordinate for elliptic curve keys (base64url-encoded)",
291
+ nullable: true
292
+ },
293
+ y: {
294
+ type: "string",
295
+ description: "Y coordinate for elliptic curve keys (base64url-encoded)",
296
+ nullable: true
297
+ }
298
+ },
299
+ required: [
300
+ "kid",
301
+ "kty",
302
+ "alg"
303
+ ]
304
+ }
305
+ } },
306
+ required: ["keys"]
307
+ } } }
308
+ } }
309
+ } }
310
+ }, async (ctx) => {
311
+ if (options?.jwks?.remoteUrl) throw new APIError("NOT_FOUND");
312
+ let keySets = await getJwksAdapter(ctx.context.adapter).getAllKeys(ctx);
313
+ if (!keySets || keySets?.length === 0) keySets = [await createJwk(ctx, options)];
314
+ if (!keySets?.length) throw new PayvoAuthError("No key sets found. Make sure you have a key in your database.");
315
+ const keyPairConfig = options?.jwks?.keyPairConfig;
316
+ const defaultCrv = keyPairConfig ? "crv" in keyPairConfig ? keyPairConfig.crv : void 0 : void 0;
317
+ return ctx.json({ keys: keySets.map((keySet) => {
318
+ return {
319
+ alg: keySet.alg ?? options?.jwks?.keyPairConfig?.alg ?? "EdDSA",
320
+ crv: keySet.crv ?? defaultCrv,
321
+ ...JSON.parse(keySet.publicKey),
322
+ kid: keySet.id
323
+ };
324
+ }) });
325
+ }),
326
+ getToken: createAuthEndpoint("/token", {
327
+ method: "GET",
328
+ requireHeaders: true,
329
+ use: [sessionMiddleware],
330
+ metadata: { openapi: {
331
+ description: "Get a JWT token",
332
+ responses: { 200: {
333
+ description: "Success",
334
+ content: { "application/json": { schema: {
335
+ type: "object",
336
+ properties: { token: { type: "string" } }
337
+ } } }
338
+ } }
339
+ } }
340
+ }, async (ctx) => {
341
+ const jwt$1 = await getJwtToken(ctx, options);
342
+ return ctx.json({ token: jwt$1 });
343
+ }),
344
+ signJWT: createAuthEndpoint("/sign-jwt", {
345
+ method: "POST",
346
+ metadata: {
347
+ SERVER_ONLY: true,
348
+ $Infer: { body: {} }
349
+ },
350
+ body: z$1.object({
351
+ payload: z$1.record(z$1.string(), z$1.any()),
352
+ overrideOptions: z$1.record(z$1.string(), z$1.any()).optional()
353
+ })
354
+ }, async (c) => {
355
+ const jwt$1 = await signJWT(c, {
356
+ options: {
357
+ ...options,
358
+ ...c.body.overrideOptions
359
+ },
360
+ payload: c.body.payload
361
+ });
362
+ return c.json({ token: jwt$1 });
363
+ })
364
+ },
365
+ hooks: { after: [{
366
+ matcher(context) {
367
+ return context.path === "/get-session";
368
+ },
369
+ handler: createAuthMiddleware(async (ctx) => {
370
+ if (options?.disableSettingJwtHeader) return;
371
+ const session = ctx.context.session || ctx.context.newSession;
372
+ if (session && session.session) {
373
+ const jwt$1 = await getJwtToken(ctx, options);
374
+ const exposedHeaders = ctx.context.responseHeaders?.get("access-control-expose-headers") || "";
375
+ const headersSet = new Set(exposedHeaders.split(",").map((header) => header.trim()).filter(Boolean));
376
+ headersSet.add("set-auth-jwt");
377
+ ctx.setHeader("set-auth-jwt", jwt$1);
378
+ ctx.setHeader("Access-Control-Expose-Headers", Array.from(headersSet).join(", "));
379
+ }
380
+ })
381
+ }] },
382
+ schema: mergeSchema(schema, options?.schema)
383
+ };
384
+ };
385
+
386
+ //#endregion
387
+ export { generateExportedKeyPair as i, getJwtToken as n, createJwk as r, jwt as t };
@@ -0,0 +1,181 @@
1
+ import { t as createAdapterFactory } from "./adapter-factory-BZ2Qiqpn.mjs";
2
+ import "kysely";
3
+
4
+ //#region src/adapters/kysely-adapter/kysely-adapter.ts
5
+ const kyselyAdapter = (db, config) => {
6
+ let lazyOptions = null;
7
+ const createCustomAdapter = (db$1) => {
8
+ return ({ getFieldName }) => {
9
+ const withReturning = async (values, builder, model, where) => {
10
+ let res;
11
+ if (config?.type === "mysql") {
12
+ await builder.execute();
13
+ const field = values.id ? "id" : where.length > 0 && where[0]?.field ? where[0].field : "id";
14
+ if (!values.id && where.length === 0) {
15
+ res = await db$1.selectFrom(model).selectAll().orderBy(getFieldName({
16
+ model,
17
+ field
18
+ }), "desc").limit(1).executeTakeFirst();
19
+ return res;
20
+ }
21
+ const value = values[field] || where[0]?.value;
22
+ res = await db$1.selectFrom(model).selectAll().orderBy(getFieldName({
23
+ model,
24
+ field
25
+ }), "desc").where(getFieldName({
26
+ model,
27
+ field
28
+ }), "=", value).limit(1).executeTakeFirst();
29
+ return res;
30
+ }
31
+ if (config?.type === "mssql") {
32
+ res = await builder.outputAll("inserted").executeTakeFirst();
33
+ return res;
34
+ }
35
+ res = await builder.returningAll().executeTakeFirst();
36
+ return res;
37
+ };
38
+ function convertWhereClause(model, w) {
39
+ if (!w) return {
40
+ and: null,
41
+ or: null
42
+ };
43
+ const conditions = {
44
+ and: [],
45
+ or: []
46
+ };
47
+ w.forEach((condition) => {
48
+ let { field: _field, value: _value, operator = "=", connector = "AND" } = condition;
49
+ let value = _value;
50
+ let field = getFieldName({
51
+ model,
52
+ field: _field
53
+ });
54
+ const expr = (eb) => {
55
+ if (operator.toLowerCase() === "in") return eb(field, "in", Array.isArray(value) ? value : [value]);
56
+ if (operator.toLowerCase() === "not_in") return eb(field, "not in", Array.isArray(value) ? value : [value]);
57
+ if (operator === "contains") return eb(field, "like", `%${value}%`);
58
+ if (operator === "starts_with") return eb(field, "like", `${value}%`);
59
+ if (operator === "ends_with") return eb(field, "like", `%${value}`);
60
+ if (operator === "eq") return eb(field, "=", value);
61
+ if (operator === "ne") return eb(field, "<>", value);
62
+ if (operator === "gt") return eb(field, ">", value);
63
+ if (operator === "gte") return eb(field, ">=", value);
64
+ if (operator === "lt") return eb(field, "<", value);
65
+ if (operator === "lte") return eb(field, "<=", value);
66
+ return eb(field, operator, value);
67
+ };
68
+ if (connector === "OR") conditions.or.push(expr);
69
+ else conditions.and.push(expr);
70
+ });
71
+ return {
72
+ and: conditions.and.length ? conditions.and : null,
73
+ or: conditions.or.length ? conditions.or : null
74
+ };
75
+ }
76
+ return {
77
+ async create({ data, model }) {
78
+ return await withReturning(data, db$1.insertInto(model).values(data), model, []);
79
+ },
80
+ async findOne({ model, where, select }) {
81
+ const { and, or } = convertWhereClause(model, where);
82
+ let query = db$1.selectFrom(model).selectAll();
83
+ if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
84
+ if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
85
+ const res = await query.executeTakeFirst();
86
+ if (!res) return null;
87
+ return res;
88
+ },
89
+ async findMany({ model, where, limit, offset, sortBy }) {
90
+ const { and, or } = convertWhereClause(model, where);
91
+ let query = db$1.selectFrom(model);
92
+ if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
93
+ if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
94
+ if (config?.type === "mssql") {
95
+ if (!offset) query = query.top(limit || 100);
96
+ } else query = query.limit(limit || 100);
97
+ if (sortBy) query = query.orderBy(getFieldName({
98
+ model,
99
+ field: sortBy.field
100
+ }), sortBy.direction);
101
+ if (offset) if (config?.type === "mssql") {
102
+ if (!sortBy) query = query.orderBy(getFieldName({
103
+ model,
104
+ field: "id"
105
+ }));
106
+ query = query.offset(offset).fetch(limit || 100);
107
+ } else query = query.offset(offset);
108
+ const res = await query.selectAll().execute();
109
+ if (!res) return [];
110
+ return res;
111
+ },
112
+ async update({ model, where, update: values }) {
113
+ const { and, or } = convertWhereClause(model, where);
114
+ let query = db$1.updateTable(model).set(values);
115
+ if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
116
+ if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
117
+ return await withReturning(values, query, model, where);
118
+ },
119
+ async updateMany({ model, where, update: values }) {
120
+ const { and, or } = convertWhereClause(model, where);
121
+ let query = db$1.updateTable(model).set(values);
122
+ if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
123
+ if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
124
+ return (await query.execute()).length;
125
+ },
126
+ async count({ model, where }) {
127
+ const { and, or } = convertWhereClause(model, where);
128
+ let query = db$1.selectFrom(model).select(db$1.fn.count("id").as("count"));
129
+ if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
130
+ if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
131
+ const res = await query.execute();
132
+ if (typeof res[0].count === "number") return res[0].count;
133
+ if (typeof res[0].count === "bigint") return Number(res[0].count);
134
+ return parseInt(res[0].count);
135
+ },
136
+ async delete({ model, where }) {
137
+ const { and, or } = convertWhereClause(model, where);
138
+ let query = db$1.deleteFrom(model);
139
+ if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
140
+ if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
141
+ await query.execute();
142
+ },
143
+ async deleteMany({ model, where }) {
144
+ const { and, or } = convertWhereClause(model, where);
145
+ let query = db$1.deleteFrom(model);
146
+ if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
147
+ if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
148
+ return (await query.execute()).length;
149
+ },
150
+ options: config
151
+ };
152
+ };
153
+ };
154
+ let adapterOptions = null;
155
+ adapterOptions = {
156
+ config: {
157
+ adapterId: "kysely",
158
+ adapterName: "Kysely Adapter",
159
+ usePlural: config?.usePlural,
160
+ debugLogs: config?.debugLogs,
161
+ supportsBooleans: config?.type === "sqlite" || config?.type === "mssql" || config?.type === "mysql" || !config?.type ? false : true,
162
+ supportsDates: config?.type === "sqlite" || config?.type === "mssql" || !config?.type ? false : true,
163
+ supportsJSON: false,
164
+ transaction: config?.transaction ?? false ? (cb) => db.transaction().execute((trx) => {
165
+ return cb(createAdapterFactory({
166
+ config: adapterOptions.config,
167
+ adapter: createCustomAdapter(trx)
168
+ })(lazyOptions));
169
+ }) : false
170
+ },
171
+ adapter: createCustomAdapter(db)
172
+ };
173
+ const adapter = createAdapterFactory(adapterOptions);
174
+ return (options) => {
175
+ lazyOptions = options;
176
+ return adapter(options);
177
+ };
178
+ };
179
+
180
+ //#endregion
181
+ export { kyselyAdapter as t };