@revealui/auth 0.0.1-pre.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/LICENSE +202 -0
  2. package/dist/better-auth/adapter/__tests__/transform.test.js +213 -0
  3. package/dist/better-auth/adapter/__tests__/transform.test.js.map +1 -0
  4. package/dist/better-auth/adapter/generate-schema/biome.d.js +2 -0
  5. package/dist/better-auth/adapter/generate-schema/biome.d.js.map +1 -0
  6. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +5 -0
  7. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +482 -0
  8. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js.map +1 -0
  9. package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +1 -0
  10. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js +42 -0
  11. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js.map +1 -0
  12. package/dist/better-auth/adapter/generate-schema/index.d.ts +4 -0
  13. package/dist/better-auth/adapter/generate-schema/index.js +19 -0
  14. package/dist/better-auth/adapter/generate-schema/index.js.map +1 -0
  15. package/dist/better-auth/adapter/generate-schema/utils.d.ts +2 -0
  16. package/dist/better-auth/adapter/generate-schema/utils.js +20 -0
  17. package/dist/better-auth/adapter/generate-schema/utils.js.map +1 -0
  18. package/dist/better-auth/adapter/index.d.ts +15 -0
  19. package/dist/better-auth/adapter/index.js +731 -0
  20. package/dist/better-auth/adapter/index.js.map +1 -0
  21. package/dist/better-auth/adapter/tests/adapter.test.js +174 -0
  22. package/dist/better-auth/adapter/tests/adapter.test.js.map +1 -0
  23. package/dist/better-auth/adapter/tests/base-collections-tests.js +575 -0
  24. package/dist/better-auth/adapter/tests/base-collections-tests.js.map +1 -0
  25. package/dist/better-auth/adapter/tests/dev/index.js +117 -0
  26. package/dist/better-auth/adapter/tests/dev/index.js.map +1 -0
  27. package/dist/better-auth/adapter/tests/dev/migrate.js +26 -0
  28. package/dist/better-auth/adapter/tests/dev/migrate.js.map +1 -0
  29. package/dist/better-auth/adapter/tests/dev/migrations/20250423_232936_init.js +218 -0
  30. package/dist/better-auth/adapter/tests/dev/migrations/20250423_232936_init.js.map +1 -0
  31. package/dist/better-auth/adapter/tests/dev/schema.js +160 -0
  32. package/dist/better-auth/adapter/tests/dev/schema.js.map +1 -0
  33. package/dist/better-auth/adapter/tests/plugins-tests.js +2 -0
  34. package/dist/better-auth/adapter/tests/plugins-tests.js.map +1 -0
  35. package/dist/better-auth/adapter/transform/index.d.ts +27 -0
  36. package/dist/better-auth/adapter/transform/index.js +664 -0
  37. package/dist/better-auth/adapter/transform/index.js.map +1 -0
  38. package/dist/better-auth/adapter/types.d.ts +10 -0
  39. package/dist/better-auth/adapter/types.js +3 -0
  40. package/dist/better-auth/adapter/types.js.map +1 -0
  41. package/dist/better-auth/generated-types.d.ts +285 -0
  42. package/dist/better-auth/index.d.ts +3 -0
  43. package/dist/better-auth/index.js +5 -0
  44. package/dist/better-auth/index.js.map +1 -0
  45. package/dist/better-auth/plugin/__tests__/plugin.test.js +162 -0
  46. package/dist/better-auth/plugin/__tests__/plugin.test.js.map +1 -0
  47. package/dist/better-auth/plugin/constants.d.ts +220 -0
  48. package/dist/better-auth/plugin/constants.js +249 -0
  49. package/dist/better-auth/plugin/constants.js.map +1 -0
  50. package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts +12 -0
  51. package/dist/better-auth/plugin/helpers/check-plugin-exists.js +14 -0
  52. package/dist/better-auth/plugin/helpers/check-plugin-exists.js.map +1 -0
  53. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +29 -0
  54. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +46 -0
  55. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js.map +1 -0
  56. package/dist/better-auth/plugin/helpers/get-admin-access.d.ts +7 -0
  57. package/dist/better-auth/plugin/helpers/get-admin-access.js +22 -0
  58. package/dist/better-auth/plugin/helpers/get-admin-access.js.map +1 -0
  59. package/dist/better-auth/plugin/helpers/get-all-roles.d.ts +5 -0
  60. package/dist/better-auth/plugin/helpers/get-all-roles.js +20 -0
  61. package/dist/better-auth/plugin/helpers/get-all-roles.js.map +1 -0
  62. package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts +18 -0
  63. package/dist/better-auth/plugin/helpers/get-better-auth-schema.js +70 -0
  64. package/dist/better-auth/plugin/helpers/get-better-auth-schema.js.map +1 -0
  65. package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts +5 -0
  66. package/dist/better-auth/plugin/helpers/get-collection-slug.js +20 -0
  67. package/dist/better-auth/plugin/helpers/get-collection-slug.js.map +1 -0
  68. package/dist/better-auth/plugin/helpers/get-collection.d.ts +15 -0
  69. package/dist/better-auth/plugin/helpers/get-collection.js +29 -0
  70. package/dist/better-auth/plugin/helpers/get-collection.js.map +1 -0
  71. package/dist/better-auth/plugin/helpers/get-ip.d.ts +2 -0
  72. package/dist/better-auth/plugin/helpers/get-ip.js +31 -0
  73. package/dist/better-auth/plugin/helpers/get-ip.js.map +1 -0
  74. package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts +2 -0
  75. package/dist/better-auth/plugin/helpers/get-signed-cookie.js +65 -0
  76. package/dist/better-auth/plugin/helpers/get-signed-cookie.js.map +1 -0
  77. package/dist/better-auth/plugin/helpers/index.d.ts +1 -0
  78. package/dist/better-auth/plugin/helpers/index.js +3 -0
  79. package/dist/better-auth/plugin/helpers/index.js.map +1 -0
  80. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +59 -0
  81. package/dist/better-auth/plugin/helpers/prepare-session-data.js +49 -0
  82. package/dist/better-auth/plugin/helpers/prepare-session-data.js.map +1 -0
  83. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.d.ts +20 -0
  84. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.js +67 -0
  85. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.js.map +1 -0
  86. package/dist/better-auth/plugin/index.d.ts +11 -0
  87. package/dist/better-auth/plugin/index.js +125 -0
  88. package/dist/better-auth/plugin/index.js.map +1 -0
  89. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.d.ts +12 -0
  90. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.js +87 -0
  91. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.js.map +1 -0
  92. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +3 -0
  93. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +60 -0
  94. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js.map +1 -0
  95. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +3 -0
  96. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +154 -0
  97. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js.map +1 -0
  98. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +5 -0
  99. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +11 -0
  100. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js.map +1 -0
  101. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts +2 -0
  102. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js +8 -0
  103. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js.map +1 -0
  104. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +6 -0
  105. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +119 -0
  106. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js.map +1 -0
  107. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +3 -0
  108. package/dist/better-auth/plugin/lib/build-collections/api-keys.js +177 -0
  109. package/dist/better-auth/plugin/lib/build-collections/api-keys.js.map +1 -0
  110. package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts +3 -0
  111. package/dist/better-auth/plugin/lib/build-collections/device-code.js +50 -0
  112. package/dist/better-auth/plugin/lib/build-collections/device-code.js.map +1 -0
  113. package/dist/better-auth/plugin/lib/build-collections/index.d.ts +10 -0
  114. package/dist/better-auth/plugin/lib/build-collections/index.js +73 -0
  115. package/dist/better-auth/plugin/lib/build-collections/index.js.map +1 -0
  116. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +3 -0
  117. package/dist/better-auth/plugin/lib/build-collections/invitations.js +94 -0
  118. package/dist/better-auth/plugin/lib/build-collections/invitations.js.map +1 -0
  119. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +3 -0
  120. package/dist/better-auth/plugin/lib/build-collections/jwks.js +59 -0
  121. package/dist/better-auth/plugin/lib/build-collections/jwks.js.map +1 -0
  122. package/dist/better-auth/plugin/lib/build-collections/members.d.ts +3 -0
  123. package/dist/better-auth/plugin/lib/build-collections/members.js +73 -0
  124. package/dist/better-auth/plugin/lib/build-collections/members.js.map +1 -0
  125. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +3 -0
  126. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +107 -0
  127. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js.map +1 -0
  128. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +3 -0
  129. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +118 -0
  130. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js.map +1 -0
  131. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +3 -0
  132. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +89 -0
  133. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js.map +1 -0
  134. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +3 -0
  135. package/dist/better-auth/plugin/lib/build-collections/organizations.js +70 -0
  136. package/dist/better-auth/plugin/lib/build-collections/organizations.js.map +1 -0
  137. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +3 -0
  138. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +115 -0
  139. package/dist/better-auth/plugin/lib/build-collections/passkeys.js.map +1 -0
  140. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +3 -0
  141. package/dist/better-auth/plugin/lib/build-collections/sessions.js +170 -0
  142. package/dist/better-auth/plugin/lib/build-collections/sessions.js.map +1 -0
  143. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +3 -0
  144. package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +81 -0
  145. package/dist/better-auth/plugin/lib/build-collections/sso-providers.js.map +1 -0
  146. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts +3 -0
  147. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +111 -0
  148. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js.map +1 -0
  149. package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts +3 -0
  150. package/dist/better-auth/plugin/lib/build-collections/team-members.js +57 -0
  151. package/dist/better-auth/plugin/lib/build-collections/team-members.js.map +1 -0
  152. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +3 -0
  153. package/dist/better-auth/plugin/lib/build-collections/teams.js +76 -0
  154. package/dist/better-auth/plugin/lib/build-collections/teams.js.map +1 -0
  155. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +3 -0
  156. package/dist/better-auth/plugin/lib/build-collections/two-factors.js +67 -0
  157. package/dist/better-auth/plugin/lib/build-collections/two-factors.js.map +1 -0
  158. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts +7 -0
  159. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +53 -0
  160. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js.map +1 -0
  161. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts +11 -0
  162. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +75 -0
  163. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js.map +1 -0
  164. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +4 -0
  165. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +6 -0
  166. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js.map +1 -0
  167. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts +2 -0
  168. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +115 -0
  169. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js.map +1 -0
  170. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts +3 -0
  171. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +64 -0
  172. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js.map +1 -0
  173. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +3 -0
  174. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +80 -0
  175. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js.map +1 -0
  176. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +6 -0
  177. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +79 -0
  178. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js.map +1 -0
  179. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts +2 -0
  180. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +82 -0
  181. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js.map +1 -0
  182. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +2 -0
  183. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +54 -0
  184. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js.map +1 -0
  185. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +6 -0
  186. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +15 -0
  187. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js.map +1 -0
  188. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts +6 -0
  189. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js +8 -0
  190. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js.map +1 -0
  191. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +2 -0
  192. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +17 -0
  193. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js.map +1 -0
  194. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +2 -0
  195. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +91 -0
  196. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js.map +1 -0
  197. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +3 -0
  198. package/dist/better-auth/plugin/lib/build-collections/users/index.js +341 -0
  199. package/dist/better-auth/plugin/lib/build-collections/users/index.js.map +1 -0
  200. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts +15 -0
  201. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js +24 -0
  202. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js.map +1 -0
  203. package/dist/better-auth/plugin/lib/build-collections/utils/filter-duplicate-fields.d.ts +10 -0
  204. package/dist/better-auth/plugin/lib/build-collections/utils/filter-duplicate-fields.js +67 -0
  205. package/dist/better-auth/plugin/lib/build-collections/utils/filter-duplicate-fields.js.map +1 -0
  206. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts +9 -0
  207. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.js +94 -0
  208. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.js.map +1 -0
  209. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +7 -0
  210. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +35 -0
  211. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js.map +1 -0
  212. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +12 -0
  213. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js +25 -0
  214. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js.map +1 -0
  215. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts +14 -0
  216. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +67 -0
  217. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js.map +1 -0
  218. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +20 -0
  219. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js +98 -0
  220. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js.map +1 -0
  221. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +3 -0
  222. package/dist/better-auth/plugin/lib/build-collections/verifications.js +87 -0
  223. package/dist/better-auth/plugin/lib/build-collections/verifications.js.map +1 -0
  224. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +5 -0
  225. package/dist/better-auth/plugin/lib/get-payload-auth.js +9 -0
  226. package/dist/better-auth/plugin/lib/get-payload-auth.js.map +1 -0
  227. package/dist/better-auth/plugin/lib/init-better-auth.d.ts +7 -0
  228. package/dist/better-auth/plugin/lib/init-better-auth.js +46 -0
  229. package/dist/better-auth/plugin/lib/init-better-auth.js.map +1 -0
  230. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +2 -0
  231. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +9 -0
  232. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js.map +1 -0
  233. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -0
  234. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +10 -0
  235. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js.map +1 -0
  236. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts +2 -0
  237. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.js +8 -0
  238. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.js.map +1 -0
  239. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +10 -0
  240. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +156 -0
  241. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js.map +1 -0
  242. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -0
  243. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +18 -0
  244. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js.map +1 -0
  245. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -0
  246. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +34 -0
  247. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js.map +1 -0
  248. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -0
  249. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +11 -0
  250. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js.map +1 -0
  251. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -0
  252. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +10 -0
  253. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js.map +1 -0
  254. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts +2 -0
  255. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js +11 -0
  256. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js.map +1 -0
  257. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts +7 -0
  258. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +23 -0
  259. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js.map +1 -0
  260. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts +25 -0
  261. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +62 -0
  262. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js.map +1 -0
  263. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +9 -0
  264. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +47 -0
  265. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js.map +1 -0
  266. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts +15 -0
  267. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +42 -0
  268. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js.map +1 -0
  269. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +9 -0
  270. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +63 -0
  271. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js.map +1 -0
  272. package/dist/better-auth/plugin/lib/set-login-methods.d.ts +4 -0
  273. package/dist/better-auth/plugin/lib/set-login-methods.js +14 -0
  274. package/dist/better-auth/plugin/lib/set-login-methods.js.map +1 -0
  275. package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +9 -0
  276. package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +143 -0
  277. package/dist/better-auth/plugin/payload/components/admin-buttons/index.js.map +1 -0
  278. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +10 -0
  279. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +219 -0
  280. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js.map +1 -0
  281. package/dist/better-auth/plugin/payload/components/logout-button.d.ts +4 -0
  282. package/dist/better-auth/plugin/payload/components/logout-button.js +24 -0
  283. package/dist/better-auth/plugin/payload/components/logout-button.js.map +1 -0
  284. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts +8 -0
  285. package/dist/better-auth/plugin/payload/components/passkeys/add-button.js +117 -0
  286. package/dist/better-auth/plugin/payload/components/passkeys/add-button.js.map +1 -0
  287. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts +3 -0
  288. package/dist/better-auth/plugin/payload/components/passkeys/client.js +66 -0
  289. package/dist/better-auth/plugin/payload/components/passkeys/client.js.map +1 -0
  290. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts +4 -0
  291. package/dist/better-auth/plugin/payload/components/passkeys/index.js +52 -0
  292. package/dist/better-auth/plugin/payload/components/passkeys/index.js.map +1 -0
  293. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts +8 -0
  294. package/dist/better-auth/plugin/payload/components/passkeys/list.js +57 -0
  295. package/dist/better-auth/plugin/payload/components/passkeys/list.js.map +1 -0
  296. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts +22 -0
  297. package/dist/better-auth/plugin/payload/components/passkeys/types.js +3 -0
  298. package/dist/better-auth/plugin/payload/components/passkeys/types.js.map +1 -0
  299. package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +6 -0
  300. package/dist/better-auth/plugin/payload/components/rsc-redirect.js +7 -0
  301. package/dist/better-auth/plugin/payload/components/rsc-redirect.js.map +1 -0
  302. package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.d.ts +15 -0
  303. package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.js +157 -0
  304. package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.js.map +1 -0
  305. package/dist/better-auth/plugin/payload/components/token-field.d.ts +4 -0
  306. package/dist/better-auth/plugin/payload/components/token-field.js +31 -0
  307. package/dist/better-auth/plugin/payload/components/token-field.js.map +1 -0
  308. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.d.ts +8 -0
  309. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.js +300 -0
  310. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.js.map +1 -0
  311. package/dist/better-auth/plugin/payload/exports/client.d.ts +6 -0
  312. package/dist/better-auth/plugin/payload/exports/client.js +8 -0
  313. package/dist/better-auth/plugin/payload/exports/client.js.map +1 -0
  314. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +8 -0
  315. package/dist/better-auth/plugin/payload/exports/rsc.js +10 -0
  316. package/dist/better-auth/plugin/payload/exports/rsc.js.map +1 -0
  317. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts +2 -0
  318. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js +9 -0
  319. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js.map +1 -0
  320. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts +1 -0
  321. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js +22 -0
  322. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js.map +1 -0
  323. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +19 -0
  324. package/dist/better-auth/plugin/payload/views/admin-login/client.js +226 -0
  325. package/dist/better-auth/plugin/payload/views/admin-login/client.js.map +1 -0
  326. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts +10 -0
  327. package/dist/better-auth/plugin/payload/views/admin-login/index.js +150 -0
  328. package/dist/better-auth/plugin/payload/views/admin-login/index.js.map +1 -0
  329. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +16 -0
  330. package/dist/better-auth/plugin/payload/views/admin-signup/client.js +299 -0
  331. package/dist/better-auth/plugin/payload/views/admin-signup/client.js.map +1 -0
  332. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +9 -0
  333. package/dist/better-auth/plugin/payload/views/admin-signup/index.js +104 -0
  334. package/dist/better-auth/plugin/payload/views/admin-signup/index.js.map +1 -0
  335. package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts +7 -0
  336. package/dist/better-auth/plugin/payload/views/forgot-password/client.js +119 -0
  337. package/dist/better-auth/plugin/payload/views/forgot-password/client.js.map +1 -0
  338. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +8 -0
  339. package/dist/better-auth/plugin/payload/views/forgot-password/index.js +78 -0
  340. package/dist/better-auth/plugin/payload/views/forgot-password/index.js.map +1 -0
  341. package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts +10 -0
  342. package/dist/better-auth/plugin/payload/views/reset-password/client.js +144 -0
  343. package/dist/better-auth/plugin/payload/views/reset-password/client.js.map +1 -0
  344. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts +8 -0
  345. package/dist/better-auth/plugin/payload/views/reset-password/index.js +96 -0
  346. package/dist/better-auth/plugin/payload/views/reset-password/index.js.map +1 -0
  347. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.d.ts +6 -0
  348. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.js +96 -0
  349. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.js.map +1 -0
  350. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts +9 -0
  351. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +56 -0
  352. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js.map +1 -0
  353. package/dist/better-auth/plugin/types.d.ts +429 -0
  354. package/dist/better-auth/plugin/types.js +3 -0
  355. package/dist/better-auth/plugin/types.js.map +1 -0
  356. package/dist/better-auth/plugin/utils/set.d.ts +39 -0
  357. package/dist/better-auth/plugin/utils/set.js +103 -0
  358. package/dist/better-auth/plugin/utils/set.js.map +1 -0
  359. package/dist/better-auth/scripts/generate-types.d.ts +1 -0
  360. package/dist/better-auth/scripts/generate-types.js +234 -0
  361. package/dist/better-auth/scripts/generate-types.js.map +1 -0
  362. package/dist/better-auth/types.d.ts +2 -0
  363. package/dist/better-auth/types.js +4 -0
  364. package/dist/better-auth/types.js.map +1 -0
  365. package/dist/index.d.ts +1 -0
  366. package/dist/index.js +4 -0
  367. package/dist/index.js.map +1 -0
  368. package/dist/shared/components/icons.d.ts +7 -0
  369. package/dist/shared/components/icons.js +442 -0
  370. package/dist/shared/components/icons.js.map +1 -0
  371. package/dist/shared/components/logo.d.ts +3 -0
  372. package/dist/shared/components/logo.js +24 -0
  373. package/dist/shared/components/logo.js.map +1 -0
  374. package/dist/shared/form/components/submit.d.ts +7 -0
  375. package/dist/shared/form/components/submit.js +16 -0
  376. package/dist/shared/form/components/submit.js.map +1 -0
  377. package/dist/shared/form/fields/text-field.d.ts +8 -0
  378. package/dist/shared/form/fields/text-field.js +37 -0
  379. package/dist/shared/form/fields/text-field.js.map +1 -0
  380. package/dist/shared/form/index.d.ts +4 -0
  381. package/dist/shared/form/index.js +8 -0
  382. package/dist/shared/form/index.js.map +1 -0
  383. package/dist/shared/form/ui/header/index.d.ts +8 -0
  384. package/dist/shared/form/ui/header/index.js +24 -0
  385. package/dist/shared/form/ui/header/index.js.map +1 -0
  386. package/dist/shared/form/ui/index.d.ts +31 -0
  387. package/dist/shared/form/ui/index.js +57 -0
  388. package/dist/shared/form/ui/index.js.map +1 -0
  389. package/dist/shared/form/validation.d.ts +51 -0
  390. package/dist/shared/form/validation.js +127 -0
  391. package/dist/shared/form/validation.js.map +1 -0
  392. package/dist/shared/index.d.ts +2 -0
  393. package/dist/shared/index.js +4 -0
  394. package/dist/shared/index.js.map +1 -0
  395. package/dist/shared/payload/fields/field-copy-button/index.d.ts +3 -0
  396. package/dist/shared/payload/fields/field-copy-button/index.js +38 -0
  397. package/dist/shared/payload/fields/field-copy-button/index.js.map +1 -0
  398. package/dist/shared/payload/fields/generate-uuid-button/index.d.ts +3 -0
  399. package/dist/shared/payload/fields/generate-uuid-button/index.js +26 -0
  400. package/dist/shared/payload/fields/generate-uuid-button/index.js.map +1 -0
  401. package/dist/shared/payload/fields/index.d.ts +2 -0
  402. package/dist/shared/payload/fields/index.js +4 -0
  403. package/dist/shared/payload/fields/index.js.map +1 -0
  404. package/dist/shared/utils/regex.d.ts +2 -0
  405. package/dist/shared/utils/regex.js +4 -0
  406. package/dist/shared/utils/regex.js.map +1 -0
  407. package/dist/shared/utils/try-catch.d.ts +11 -0
  408. package/dist/shared/utils/try-catch.js +17 -0
  409. package/dist/shared/utils/try-catch.js.map +1 -0
  410. package/dist/shared/utils/value-or-default.d.ts +9 -0
  411. package/dist/shared/utils/value-or-default.js +12 -0
  412. package/dist/shared/utils/value-or-default.js.map +1 -0
  413. package/package.json +122 -0
@@ -0,0 +1,731 @@
1
+ import { BetterAuthError } from "..";
2
+ import { generateSchema } from "./generate-schema";
3
+ import { createTransform } from "./transform";
4
+ export const BETTER_AUTH_CONTEXT_KEY = 'payload-db-adapter';
5
+ const PAYLOAD_QUERY_DEPTH = 0;
6
+ const DEBUG_LOG_PREFIX = '[payload-db-adapter]';
7
+ /**
8
+ * Payload adapter for Better Auth
9
+ *
10
+ * This adapter connects Better Auth to Payload CMS, allowing authentication
11
+ * operations to be performed against Payload collections.
12
+ *
13
+ * @param payloadClient - The Payload CMS client instance or a function that returns it
14
+ * @param config - Configuration options for the adapter
15
+ * @returns A function that creates a Better Auth adapter
16
+ */ const payloadAdapter = ({ payloadClient, adapterConfig })=>{
17
+ /**
18
+ * Logs debug messages if debug logging is enabled
19
+ * @param message - The message to log
20
+ */ function debugLog(message) {
21
+ if (adapterConfig.enableDebugLogs) {
22
+ // Use payload logger if available, otherwise fall back to console for package compatibility
23
+ if (typeof payloadClient !== 'function' && payloadClient && 'logger' in payloadClient) {
24
+ const payload = payloadClient;
25
+ if (payload.logger) {
26
+ payload.logger.debug(DEBUG_LOG_PREFIX, {
27
+ message
28
+ });
29
+ } else {
30
+ console.log(DEBUG_LOG_PREFIX, ...message);
31
+ }
32
+ } else {
33
+ console.log(DEBUG_LOG_PREFIX, ...message);
34
+ }
35
+ }
36
+ }
37
+ /**
38
+ * Logs error messages
39
+ * @param message - The error message to log
40
+ */ function errorLog(message) {
41
+ // Use payload logger if available, otherwise fall back to console for package compatibility
42
+ if (typeof payloadClient !== 'function' && payloadClient && 'logger' in payloadClient) {
43
+ const payload = payloadClient;
44
+ if (payload.logger) {
45
+ payload.logger.error(DEBUG_LOG_PREFIX, {
46
+ message
47
+ });
48
+ } else {
49
+ console.error(DEBUG_LOG_PREFIX, ...message);
50
+ }
51
+ } else {
52
+ console.error(DEBUG_LOG_PREFIX, ...message);
53
+ }
54
+ }
55
+ /**
56
+ * Throws an error when a collection slug doesn't exist
57
+ * @param model - The model name that couldn't be found
58
+ * @throws {BetterAuthError} When the collection doesn't exist
59
+ * @returns Never - Function always throws
60
+ */ function collectionSlugError(model) {
61
+ throw new BetterAuthError(`Collection ${model} does not exist. Please check your payload collection slugs match the better auth schema`);
62
+ }
63
+ // Normalizes PayloadCMS delete result which can have multiple return structures
64
+ function normalizePayloadDocumentResult(response) {
65
+ if (!response) {
66
+ return null;
67
+ }
68
+ if (typeof response === 'object' && 'docs' in response) {
69
+ // PayloadCMS delete can return docs array with dynamic document structures
70
+ // Using Record<string, unknown> because document structure varies by collection and cannot be strictly typed
71
+ const docs = response.docs;
72
+ if (Array.isArray(docs) && docs.length > 0) {
73
+ return docs[0] ?? null;
74
+ }
75
+ return null;
76
+ }
77
+ // PayloadCMS delete result can be a single document with dynamic structure
78
+ return response;
79
+ }
80
+ /**
81
+ * Validates that a collection exists in Payload
82
+ * @param payload - The Payload client instance
83
+ * @param collectionSlug - The collection slug to validate
84
+ * @param model - The model name for error messages
85
+ * @throws {BetterAuthError} When the collection doesn't exist
86
+ */ async function validateCollection(payload, collectionSlug, model) {
87
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
88
+ collectionSlugError(model);
89
+ }
90
+ }
91
+ /**
92
+ * Creates a context object for Payload operations
93
+ * @param data - Data to include in the context
94
+ * @returns The context object with Better Auth metadata
95
+ */ // PayloadCMS context accepts dynamic metadata structures for adapter tracking
96
+ const createAdapterContext = (// Using Record<string, unknown> because context data structure varies by operation and cannot be strictly typed
97
+ data)=>({
98
+ [BETTER_AUTH_CONTEXT_KEY]: {
99
+ ...data
100
+ }
101
+ });
102
+ /**
103
+ * Resolves the Payload client, handling both function and direct references
104
+ * @returns The resolved Payload client
105
+ * @throws {BetterAuthError} When Better Auth plugin is not configured
106
+ */ async function resolvePayloadClient() {
107
+ const payload = typeof payloadClient === 'function' ? await payloadClient() : await payloadClient;
108
+ if (!payload.config?.custom?.hasBetterAuthPlugin) {
109
+ throw new BetterAuthError('Payload is not configured with the better-auth plugin. Please add the plugin to your payload config.');
110
+ }
111
+ return payload;
112
+ }
113
+ /**
114
+ * Creates and returns a Better Auth adapter for Payload
115
+ * @param options - Better Auth options
116
+ * @returns A Better Auth adapter implementation
117
+ */ return (options)=>{
118
+ const { transformInput, transformOutput, convertWhereClause, convertSelect, convertSort, getCollectionSlug, singleIdQuery } = createTransform(options, adapterConfig.enableDebugLogs ?? false);
119
+ return {
120
+ id: 'payload-adapter',
121
+ async transaction (callback) {
122
+ return await callback(this);
123
+ },
124
+ // Better Auth create accepts dynamic data structures that vary by model
125
+ async create ({ model, data: values, select }) {
126
+ const start = Date.now();
127
+ const payload = await resolvePayloadClient();
128
+ const collectionSlug = getCollectionSlug(model);
129
+ // Validate collection exists before proceeding
130
+ await validateCollection(payload, collectionSlug, model);
131
+ const transformedInput = transformInput({
132
+ data: values,
133
+ model: model,
134
+ idType: adapterConfig.idType
135
+ });
136
+ debugLog([
137
+ 'create',
138
+ {
139
+ collectionSlug,
140
+ transformedInput,
141
+ select
142
+ }
143
+ ]);
144
+ try {
145
+ // PayloadCMS create accepts dynamic options (data, context, depth, select)
146
+ const createOptions = {
147
+ collection: collectionSlug,
148
+ data: transformedInput,
149
+ context: createAdapterContext({
150
+ model,
151
+ operation: 'create'
152
+ }),
153
+ depth: PAYLOAD_QUERY_DEPTH
154
+ };
155
+ const convertedSelect = convertSelect(model, select);
156
+ if (convertedSelect) {
157
+ createOptions.select = convertedSelect;
158
+ }
159
+ const rawResult = await payload.create(createOptions);
160
+ const transformedResult = transformOutput({
161
+ doc: rawResult,
162
+ model: model
163
+ });
164
+ debugLog([
165
+ 'create result',
166
+ {
167
+ collectionSlug,
168
+ transformedResult,
169
+ duration: `${Date.now() - start}ms`
170
+ }
171
+ ]);
172
+ return transformedResult;
173
+ } catch (error) {
174
+ errorLog([
175
+ 'Error in creating:',
176
+ model,
177
+ error
178
+ ]);
179
+ return null;
180
+ }
181
+ },
182
+ async findOne ({ model, where, select }) {
183
+ const start = Date.now();
184
+ const payload = await resolvePayloadClient();
185
+ const collectionSlug = getCollectionSlug(model);
186
+ // Validate collection exists before proceeding
187
+ await validateCollection(payload, collectionSlug, model);
188
+ const payloadWhere = convertWhereClause({
189
+ idType: adapterConfig.idType,
190
+ model: model,
191
+ where: where ?? []
192
+ });
193
+ debugLog([
194
+ 'findOne',
195
+ {
196
+ collectionSlug
197
+ }
198
+ ]);
199
+ try {
200
+ const singleId = singleIdQuery(payloadWhere);
201
+ let result = null;
202
+ if (singleId) {
203
+ debugLog([
204
+ 'findOneByID',
205
+ {
206
+ collectionSlug,
207
+ id: singleId
208
+ }
209
+ ]);
210
+ // PayloadCMS findByID accepts dynamic options (context, depth, select)
211
+ const findByIdOptions = {
212
+ collection: collectionSlug,
213
+ id: singleId,
214
+ context: createAdapterContext({
215
+ model,
216
+ operation: 'findOneByID'
217
+ }),
218
+ depth: PAYLOAD_QUERY_DEPTH
219
+ };
220
+ const convertedSelect = convertSelect(model, select);
221
+ if (convertedSelect) {
222
+ findByIdOptions.select = convertedSelect;
223
+ }
224
+ result = await payload.findByID(findByIdOptions);
225
+ } else {
226
+ debugLog([
227
+ 'findOneByWhere',
228
+ {
229
+ collectionSlug,
230
+ payloadWhere
231
+ }
232
+ ]);
233
+ // PayloadCMS find accepts dynamic options (where, context, depth, select, limit)
234
+ const findOptions = {
235
+ collection: collectionSlug,
236
+ where: payloadWhere,
237
+ context: createAdapterContext({
238
+ model,
239
+ operation: 'findOneByWhere'
240
+ }),
241
+ depth: PAYLOAD_QUERY_DEPTH,
242
+ limit: 1
243
+ };
244
+ const convertedSelect = convertSelect(model, select);
245
+ if (convertedSelect) {
246
+ findOptions.select = convertedSelect;
247
+ }
248
+ const docs = await payload.find(findOptions);
249
+ result = docs.docs[0] ?? null;
250
+ }
251
+ const transformedResult = transformOutput({
252
+ doc: result,
253
+ model: model
254
+ });
255
+ debugLog([
256
+ 'findOne result',
257
+ {
258
+ collectionSlug,
259
+ transformedResult,
260
+ duration: `${Date.now() - start}ms`
261
+ }
262
+ ]);
263
+ return transformedResult;
264
+ } catch (error) {
265
+ if (error instanceof Error && 'status' in error && error.status === 404) {
266
+ return null;
267
+ }
268
+ errorLog([
269
+ 'Error in findOne: ',
270
+ error
271
+ ]);
272
+ return null;
273
+ }
274
+ },
275
+ async findMany ({ model, where, limit = 10, sortBy, offset = 0 }) {
276
+ const start = Date.now();
277
+ const payload = await resolvePayloadClient();
278
+ const collectionSlug = getCollectionSlug(model);
279
+ // Validate collection exists before proceeding
280
+ await validateCollection(payload, collectionSlug, model);
281
+ const payloadWhere = convertWhereClause({
282
+ idType: adapterConfig.idType,
283
+ model: model,
284
+ where: where ?? []
285
+ });
286
+ debugLog([
287
+ 'findMany',
288
+ {
289
+ collectionSlug,
290
+ sortBy,
291
+ limit,
292
+ offset
293
+ }
294
+ ]);
295
+ try {
296
+ let result = null;
297
+ const singleId = singleIdQuery(payloadWhere);
298
+ if (singleId) {
299
+ debugLog([
300
+ 'findManyBySingleID',
301
+ {
302
+ collectionSlug,
303
+ id: singleId
304
+ }
305
+ ]);
306
+ const doc = await payload.findByID({
307
+ collection: collectionSlug,
308
+ id: singleId,
309
+ depth: PAYLOAD_QUERY_DEPTH,
310
+ context: createAdapterContext({
311
+ model,
312
+ operation: 'findManyBySingleID'
313
+ })
314
+ });
315
+ result = {
316
+ docs: doc ? [
317
+ doc
318
+ ] : [],
319
+ totalDocs: doc ? 1 : 0
320
+ };
321
+ } else {
322
+ debugLog([
323
+ 'findManyByWhere',
324
+ {
325
+ collectionSlug,
326
+ payloadWhere
327
+ }
328
+ ]);
329
+ const spill = offset % limit;
330
+ const page = Math.floor(offset / limit) + 1;
331
+ const fetchLimit = spill ? limit + spill : limit;
332
+ const convertedSort = convertSort(model, sortBy);
333
+ // PayloadCMS find accepts dynamic arguments (where, sort, limit, page, depth, context)
334
+ const findArgs = {
335
+ collection: collectionSlug,
336
+ where: payloadWhere,
337
+ limit: fetchLimit,
338
+ page,
339
+ depth: PAYLOAD_QUERY_DEPTH,
340
+ context: createAdapterContext({
341
+ model,
342
+ operation: 'findManyByWhere'
343
+ })
344
+ };
345
+ if (convertedSort) {
346
+ findArgs.sort = convertedSort;
347
+ }
348
+ const res = await payload.find(findArgs);
349
+ result = {
350
+ docs: res.docs.slice(spill, spill + limit),
351
+ totalDocs: res.totalDocs
352
+ };
353
+ }
354
+ const transformedResult = result?.docs.map((doc)=>transformOutput({
355
+ doc,
356
+ model: model
357
+ })) ?? [];
358
+ debugLog([
359
+ 'findMany result',
360
+ {
361
+ collectionSlug,
362
+ transformedResult,
363
+ duration: `${Date.now() - start}ms`
364
+ }
365
+ ]);
366
+ return transformedResult;
367
+ } catch (error) {
368
+ if (error instanceof Error && 'status' in error && error.status === 404) {
369
+ return [];
370
+ }
371
+ errorLog([
372
+ 'Error in findMany: ',
373
+ error
374
+ ]);
375
+ return [];
376
+ }
377
+ },
378
+ async update ({ model, where, update }) {
379
+ const start = Date.now();
380
+ const payload = await resolvePayloadClient();
381
+ const collectionSlug = getCollectionSlug(model);
382
+ // Validate collection exists before proceeding
383
+ await validateCollection(payload, collectionSlug, model);
384
+ const payloadWhere = convertWhereClause({
385
+ idType: adapterConfig.idType,
386
+ model: model,
387
+ where: where ?? []
388
+ });
389
+ const transformedInput = transformInput({
390
+ data: update,
391
+ model: model,
392
+ idType: adapterConfig.idType
393
+ });
394
+ debugLog([
395
+ 'update',
396
+ {
397
+ collectionSlug,
398
+ update
399
+ }
400
+ ]);
401
+ try {
402
+ let result = null;
403
+ const id = singleIdQuery(payloadWhere);
404
+ if (id) {
405
+ debugLog([
406
+ 'updateByID',
407
+ {
408
+ collectionSlug,
409
+ id
410
+ }
411
+ ]);
412
+ const updateResponse = await payload.update({
413
+ collection: collectionSlug,
414
+ id,
415
+ data: transformedInput,
416
+ depth: PAYLOAD_QUERY_DEPTH,
417
+ context: createAdapterContext({
418
+ model,
419
+ operation: 'updateByID'
420
+ })
421
+ });
422
+ result = normalizePayloadDocumentResult(updateResponse);
423
+ } else {
424
+ debugLog([
425
+ 'updateByWhere',
426
+ {
427
+ collectionSlug,
428
+ payloadWhere
429
+ }
430
+ ]);
431
+ const updateResponse = await payload.update({
432
+ collection: collectionSlug,
433
+ where: payloadWhere,
434
+ data: transformedInput,
435
+ depth: PAYLOAD_QUERY_DEPTH,
436
+ context: createAdapterContext({
437
+ model,
438
+ operation: 'updateByWhere'
439
+ })
440
+ });
441
+ result = normalizePayloadDocumentResult(updateResponse);
442
+ }
443
+ const transformedResult = transformOutput({
444
+ doc: result,
445
+ model: model
446
+ });
447
+ debugLog([
448
+ 'update-result',
449
+ {
450
+ collectionSlug,
451
+ transformedResult,
452
+ duration: `${Date.now() - start}ms`
453
+ }
454
+ ]);
455
+ return transformedResult;
456
+ } catch (error) {
457
+ if (error instanceof Error && 'status' in error && error.status === 404) {
458
+ return null;
459
+ }
460
+ errorLog([
461
+ 'Error in update: ',
462
+ error
463
+ ]);
464
+ return null;
465
+ }
466
+ },
467
+ async updateMany ({ model, where, update }) {
468
+ const start = Date.now();
469
+ const payload = await resolvePayloadClient();
470
+ const collectionSlug = getCollectionSlug(model);
471
+ // Validate collection exists before proceeding
472
+ await validateCollection(payload, collectionSlug, model);
473
+ const payloadWhere = convertWhereClause({
474
+ idType: adapterConfig.idType,
475
+ model: model,
476
+ where: where ?? []
477
+ });
478
+ const transformedInput = transformInput({
479
+ data: update,
480
+ model: model,
481
+ idType: adapterConfig.idType
482
+ });
483
+ debugLog([
484
+ 'updateMany',
485
+ {
486
+ collectionSlug,
487
+ payloadWhere,
488
+ update
489
+ }
490
+ ]);
491
+ try {
492
+ const updateResponse = await payload.update({
493
+ collection: collectionSlug,
494
+ where: payloadWhere,
495
+ data: transformedInput,
496
+ depth: PAYLOAD_QUERY_DEPTH,
497
+ context: createAdapterContext({
498
+ model,
499
+ operation: 'updateMany'
500
+ })
501
+ });
502
+ // PayloadCMS updateMany can return docs array with dynamic document structures
503
+ // Using Record<string, unknown> because document structure varies by collection and cannot be strictly typed
504
+ const updateDocs = updateResponse && typeof updateResponse === 'object' && 'docs' in updateResponse && Array.isArray(updateResponse.docs) ? updateResponse.docs ?? [] : [];
505
+ debugLog([
506
+ 'updateMany result',
507
+ {
508
+ collectionSlug,
509
+ result: updateDocs,
510
+ duration: `${Date.now() - start}ms`
511
+ }
512
+ ]);
513
+ return updateDocs.length;
514
+ } catch (error) {
515
+ if (error instanceof Error && 'status' in error && error.status === 404) {
516
+ return 0;
517
+ }
518
+ errorLog([
519
+ 'Error in updateMany: ',
520
+ error
521
+ ]);
522
+ return 0;
523
+ }
524
+ },
525
+ async delete ({ model, where }) {
526
+ const start = Date.now();
527
+ const payload = await resolvePayloadClient();
528
+ const collectionSlug = getCollectionSlug(model);
529
+ // Validate collection exists before proceeding
530
+ await validateCollection(payload, collectionSlug, model);
531
+ const payloadWhere = convertWhereClause({
532
+ idType: adapterConfig.idType,
533
+ model: model,
534
+ where: where ?? []
535
+ });
536
+ debugLog([
537
+ 'delete',
538
+ {
539
+ collectionSlug
540
+ }
541
+ ]);
542
+ try {
543
+ let deleteResult = null;
544
+ const singleId = singleIdQuery(payloadWhere);
545
+ if (singleId) {
546
+ debugLog([
547
+ 'deleteByID',
548
+ {
549
+ collectionSlug,
550
+ id: singleId
551
+ }
552
+ ]);
553
+ const deleteResponse = await payload.delete({
554
+ collection: collectionSlug,
555
+ id: singleId,
556
+ depth: PAYLOAD_QUERY_DEPTH,
557
+ context: createAdapterContext({
558
+ model,
559
+ operation: 'deleteByID'
560
+ })
561
+ });
562
+ const deletedDoc = normalizePayloadDocumentResult(deleteResponse);
563
+ deleteResult = {
564
+ doc: deletedDoc,
565
+ errors: []
566
+ };
567
+ } else {
568
+ debugLog([
569
+ 'deleteByWhere',
570
+ {
571
+ collectionSlug,
572
+ payloadWhere
573
+ }
574
+ ]);
575
+ const deleteResponse = await payload.delete({
576
+ collection: collectionSlug,
577
+ where: payloadWhere,
578
+ depth: PAYLOAD_QUERY_DEPTH,
579
+ context: createAdapterContext({
580
+ model,
581
+ operation: 'deleteByWhere'
582
+ })
583
+ });
584
+ const deletedDoc = normalizePayloadDocumentResult(deleteResponse);
585
+ deleteResult = {
586
+ doc: deletedDoc,
587
+ errors: []
588
+ };
589
+ }
590
+ debugLog([
591
+ 'delete result',
592
+ {
593
+ collectionSlug,
594
+ result: deleteResult,
595
+ duration: `${Date.now() - start}ms`
596
+ }
597
+ ]);
598
+ } catch (error) {
599
+ if (error instanceof Error && 'status' in error && error.status === 404) {
600
+ return;
601
+ }
602
+ errorLog([
603
+ 'Error in delete: ',
604
+ error
605
+ ]);
606
+ }
607
+ },
608
+ async deleteMany ({ model, where }) {
609
+ const start = Date.now();
610
+ const payload = await resolvePayloadClient();
611
+ const collectionSlug = getCollectionSlug(model);
612
+ // Validate collection exists before proceeding
613
+ await validateCollection(payload, collectionSlug, model);
614
+ const payloadWhere = convertWhereClause({
615
+ idType: adapterConfig.idType,
616
+ model: model,
617
+ where: where ?? []
618
+ });
619
+ debugLog([
620
+ 'deleteMany',
621
+ {
622
+ collectionSlug,
623
+ payloadWhere
624
+ }
625
+ ]);
626
+ try {
627
+ const deleteResponse = await payload.delete({
628
+ collection: collectionSlug,
629
+ where: payloadWhere,
630
+ depth: PAYLOAD_QUERY_DEPTH,
631
+ context: createAdapterContext({
632
+ model,
633
+ operation: 'deleteMany'
634
+ })
635
+ });
636
+ const deleteDocsLength = (()=>{
637
+ if (!deleteResponse) {
638
+ return 0;
639
+ }
640
+ // PayloadCMS deleteMany can return docs array with dynamic document structures
641
+ // Using Record<string, unknown> because document structure varies by collection and cannot be strictly typed
642
+ if (typeof deleteResponse === 'object' && 'docs' in deleteResponse && Array.isArray(deleteResponse.docs)) {
643
+ return (deleteResponse.docs ?? []).length;
644
+ }
645
+ return 1;
646
+ })();
647
+ debugLog([
648
+ 'deleteMany result',
649
+ {
650
+ collectionSlug,
651
+ result: deleteResponse,
652
+ duration: `${Date.now() - start}ms`
653
+ }
654
+ ]);
655
+ return deleteDocsLength;
656
+ } catch (error) {
657
+ if (error instanceof Error && 'status' in error && error.status === 404) {
658
+ return 0;
659
+ }
660
+ errorLog([
661
+ 'Error in deleteMany: ',
662
+ error
663
+ ]);
664
+ return 0;
665
+ }
666
+ },
667
+ async count ({ model, where }) {
668
+ const start = Date.now();
669
+ const payload = await resolvePayloadClient();
670
+ const collectionSlug = getCollectionSlug(model);
671
+ // Validate collection exists before proceeding
672
+ await validateCollection(payload, collectionSlug, model);
673
+ const payloadWhere = convertWhereClause({
674
+ idType: adapterConfig.idType,
675
+ model: model,
676
+ where: where ?? []
677
+ });
678
+ debugLog([
679
+ 'count',
680
+ {
681
+ collectionSlug,
682
+ payloadWhere
683
+ }
684
+ ]);
685
+ try {
686
+ const result = await payload.count({
687
+ collection: collectionSlug,
688
+ where: payloadWhere,
689
+ depth: PAYLOAD_QUERY_DEPTH,
690
+ context: createAdapterContext({
691
+ model,
692
+ operation: 'count'
693
+ })
694
+ });
695
+ debugLog([
696
+ 'count result',
697
+ {
698
+ collectionSlug,
699
+ result: {
700
+ totalDocs: result.totalDocs
701
+ },
702
+ duration: `${Date.now() - start}ms`
703
+ }
704
+ ]);
705
+ return result.totalDocs;
706
+ } catch (error) {
707
+ if (error instanceof Error && 'status' in error && error.status === 404) {
708
+ return 0;
709
+ }
710
+ errorLog([
711
+ 'Error in count: ',
712
+ error
713
+ ]);
714
+ return 0;
715
+ }
716
+ },
717
+ createSchema: async (options, file)=>{
718
+ const schemaCode = await generateSchema(options);
719
+ return {
720
+ code: schemaCode,
721
+ path: file || 'schema.ts',
722
+ append: false,
723
+ overwrite: true
724
+ };
725
+ }
726
+ };
727
+ };
728
+ };
729
+ export { generateSchema, payloadAdapter };
730
+
731
+ //# sourceMappingURL=index.js.map