payload-auth 1.0.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 (200) hide show
  1. package/LICENSE.md +17 -0
  2. package/dist/authjs/index.d.ts +1 -0
  3. package/dist/authjs/index.js +3 -0
  4. package/dist/authjs/index.js.map +1 -0
  5. package/dist/better-auth/adapter/dev/bin/run.d.ts +1 -0
  6. package/dist/better-auth/adapter/dev/bin/run.js +64 -0
  7. package/dist/better-auth/adapter/dev/bin/run.js.map +1 -0
  8. package/dist/better-auth/adapter/dev/bin/schema.d.ts +22 -0
  9. package/dist/better-auth/adapter/dev/bin/schema.js +160 -0
  10. package/dist/better-auth/adapter/dev/bin/schema.js.map +1 -0
  11. package/dist/better-auth/adapter/dev/collections.d.ts +3 -0
  12. package/dist/better-auth/adapter/dev/collections.js +212 -0
  13. package/dist/better-auth/adapter/dev/collections.js.map +1 -0
  14. package/dist/better-auth/adapter/dev/index.d.ts +3 -0
  15. package/dist/better-auth/adapter/dev/index.js +168 -0
  16. package/dist/better-auth/adapter/dev/index.js.map +1 -0
  17. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +23 -0
  18. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +326 -0
  19. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js.map +1 -0
  20. package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +1 -0
  21. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js +23 -0
  22. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js.map +1 -0
  23. package/dist/better-auth/adapter/generate-schema/index.d.ts +4 -0
  24. package/dist/better-auth/adapter/generate-schema/index.js +19 -0
  25. package/dist/better-auth/adapter/generate-schema/index.js.map +1 -0
  26. package/dist/better-auth/adapter/generate-schema/utils.d.ts +2 -0
  27. package/dist/better-auth/adapter/generate-schema/utils.js +20 -0
  28. package/dist/better-auth/adapter/generate-schema/utils.js.map +1 -0
  29. package/dist/better-auth/adapter/index.d.ts +5 -0
  30. package/dist/better-auth/adapter/index.js +578 -0
  31. package/dist/better-auth/adapter/index.js.map +1 -0
  32. package/dist/better-auth/adapter/test/adapter.test.d.ts +1 -0
  33. package/dist/better-auth/adapter/test/adapter.test.js +181 -0
  34. package/dist/better-auth/adapter/test/adapter.test.js.map +1 -0
  35. package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts +7 -0
  36. package/dist/better-auth/adapter/test/better-auth-adapter-test.js +425 -0
  37. package/dist/better-auth/adapter/test/better-auth-adapter-test.js.map +1 -0
  38. package/dist/better-auth/adapter/test/schema.test.d.ts +1 -0
  39. package/dist/better-auth/adapter/test/schema.test.js +796 -0
  40. package/dist/better-auth/adapter/test/schema.test.js.map +1 -0
  41. package/dist/better-auth/adapter/test/test_payload1/schema.d.ts +23 -0
  42. package/dist/better-auth/adapter/test/test_payload1/schema.js +177 -0
  43. package/dist/better-auth/adapter/test/test_payload1/schema.js.map +1 -0
  44. package/dist/better-auth/adapter/test/test_payload2/schema.d.ts +23 -0
  45. package/dist/better-auth/adapter/test/test_payload2/schema.js +167 -0
  46. package/dist/better-auth/adapter/test/test_payload2/schema.js.map +1 -0
  47. package/dist/better-auth/adapter/test/test_payload3/schema.d.ts +23 -0
  48. package/dist/better-auth/adapter/test/test_payload3/schema.js +198 -0
  49. package/dist/better-auth/adapter/test/test_payload3/schema.js.map +1 -0
  50. package/dist/better-auth/adapter/transform/index.d.ts +16 -0
  51. package/dist/better-auth/adapter/transform/index.js +252 -0
  52. package/dist/better-auth/adapter/transform/index.js.map +1 -0
  53. package/dist/better-auth/adapter/types.d.ts +6 -0
  54. package/dist/better-auth/adapter/types.js +3 -0
  55. package/dist/better-auth/adapter/types.js.map +1 -0
  56. package/dist/better-auth/index.d.ts +6 -0
  57. package/dist/better-auth/index.js +8 -0
  58. package/dist/better-auth/index.js.map +1 -0
  59. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.d.ts +7 -0
  60. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js +47 -0
  61. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js.map +1 -0
  62. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts +6 -0
  63. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js +106 -0
  64. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js.map +1 -0
  65. package/dist/better-auth/plugin/collections/users/hooks/after-login.d.ts +11 -0
  66. package/dist/better-auth/plugin/collections/users/hooks/after-login.js +71 -0
  67. package/dist/better-auth/plugin/collections/users/hooks/after-login.js.map +1 -0
  68. package/dist/better-auth/plugin/collections/users/hooks/after-logout.d.ts +6 -0
  69. package/dist/better-auth/plugin/collections/users/hooks/after-logout.js +49 -0
  70. package/dist/better-auth/plugin/collections/users/hooks/after-logout.js.map +1 -0
  71. package/dist/better-auth/plugin/collections/users/hooks/before-login.d.ts +5 -0
  72. package/dist/better-auth/plugin/collections/users/hooks/before-login.js +18 -0
  73. package/dist/better-auth/plugin/collections/users/hooks/before-login.js.map +1 -0
  74. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts +5 -0
  75. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js +33 -0
  76. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js.map +1 -0
  77. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts +2 -0
  78. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js +14 -0
  79. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js.map +1 -0
  80. package/dist/better-auth/plugin/collections/users/hooks/sync-account.d.ts +7 -0
  81. package/dist/better-auth/plugin/collections/users/hooks/sync-account.js +82 -0
  82. package/dist/better-auth/plugin/collections/users/hooks/sync-account.js.map +1 -0
  83. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +29 -0
  84. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +46 -0
  85. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js.map +1 -0
  86. package/dist/better-auth/plugin/helpers/get-ip.d.ts +2 -0
  87. package/dist/better-auth/plugin/helpers/get-ip.js +31 -0
  88. package/dist/better-auth/plugin/helpers/get-ip.js.map +1 -0
  89. package/dist/better-auth/plugin/helpers/index.d.ts +1 -0
  90. package/dist/better-auth/plugin/helpers/index.js +3 -0
  91. package/dist/better-auth/plugin/helpers/index.js.map +1 -0
  92. package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts +104 -0
  93. package/dist/better-auth/plugin/helpers/serialize-cookie.js +186 -0
  94. package/dist/better-auth/plugin/helpers/serialize-cookie.js.map +1 -0
  95. package/dist/better-auth/plugin/index.d.ts +7 -0
  96. package/dist/better-auth/plugin/index.js +64 -0
  97. package/dist/better-auth/plugin/index.js.map +1 -0
  98. package/dist/better-auth/plugin/lib/auth-strategy.d.ts +8 -0
  99. package/dist/better-auth/plugin/lib/auth-strategy.js +48 -0
  100. package/dist/better-auth/plugin/lib/auth-strategy.js.map +1 -0
  101. package/dist/better-auth/plugin/lib/build-collection-configs.d.ts +11 -0
  102. package/dist/better-auth/plugin/lib/build-collection-configs.js +1558 -0
  103. package/dist/better-auth/plugin/lib/build-collection-configs.js.map +1 -0
  104. package/dist/better-auth/plugin/lib/config.d.ts +41 -0
  105. package/dist/better-auth/plugin/lib/config.js +43 -0
  106. package/dist/better-auth/plugin/lib/config.js.map +1 -0
  107. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.d.ts +7 -0
  108. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js +24 -0
  109. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js.map +1 -0
  110. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +5 -0
  111. package/dist/better-auth/plugin/lib/get-payload-auth.js +9 -0
  112. package/dist/better-auth/plugin/lib/get-payload-auth.js.map +1 -0
  113. package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +9 -0
  114. package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +52 -0
  115. package/dist/better-auth/plugin/lib/get-required-collection-slugs.js.map +1 -0
  116. package/dist/better-auth/plugin/lib/init-better-auth.d.ts +6 -0
  117. package/dist/better-auth/plugin/lib/init-better-auth.js +13 -0
  118. package/dist/better-auth/plugin/lib/init-better-auth.js.map +1 -0
  119. package/dist/better-auth/plugin/lib/password.d.ts +25 -0
  120. package/dist/better-auth/plugin/lib/password.js +63 -0
  121. package/dist/better-auth/plugin/lib/password.js.map +1 -0
  122. package/dist/better-auth/plugin/lib/payload-access.d.ts +14 -0
  123. package/dist/better-auth/plugin/lib/payload-access.js +64 -0
  124. package/dist/better-auth/plugin/lib/payload-access.js.map +1 -0
  125. package/dist/better-auth/plugin/lib/prepare-session-data.d.ts +21 -0
  126. package/dist/better-auth/plugin/lib/prepare-session-data.js +42 -0
  127. package/dist/better-auth/plugin/lib/prepare-session-data.js.map +1 -0
  128. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.d.ts +15 -0
  129. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js +30 -0
  130. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js.map +1 -0
  131. package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts +5 -0
  132. package/dist/better-auth/plugin/lib/sanitize-auth-options.js +298 -0
  133. package/dist/better-auth/plugin/lib/sanitize-auth-options.js.map +1 -0
  134. package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts +5 -0
  135. package/dist/better-auth/plugin/payload/components/admin-buttons.js +222 -0
  136. package/dist/better-auth/plugin/payload/components/admin-buttons.js.map +1 -0
  137. package/dist/better-auth/plugin/payload/components/login-redirect.d.ts +1 -0
  138. package/dist/better-auth/plugin/payload/components/login-redirect.js +6 -0
  139. package/dist/better-auth/plugin/payload/components/login-redirect.js.map +1 -0
  140. package/dist/better-auth/plugin/payload/components/logo.d.ts +1 -0
  141. package/dist/better-auth/plugin/payload/components/logo.js +36 -0
  142. package/dist/better-auth/plugin/payload/components/logo.js.map +1 -0
  143. package/dist/better-auth/plugin/payload/components/logout.d.ts +1 -0
  144. package/dist/better-auth/plugin/payload/components/logout.js +61 -0
  145. package/dist/better-auth/plugin/payload/components/logout.js.map +1 -0
  146. package/dist/better-auth/plugin/payload/components/sign-in.d.ts +3 -0
  147. package/dist/better-auth/plugin/payload/components/sign-in.js +384 -0
  148. package/dist/better-auth/plugin/payload/components/sign-in.js.map +1 -0
  149. package/dist/better-auth/plugin/payload/components/sign-up.d.ts +6 -0
  150. package/dist/better-auth/plugin/payload/components/sign-up.js +502 -0
  151. package/dist/better-auth/plugin/payload/components/sign-up.js.map +1 -0
  152. package/dist/better-auth/plugin/payload/components/styles.css +73 -0
  153. package/dist/better-auth/plugin/payload/components/ui/button.d.ts +10 -0
  154. package/dist/better-auth/plugin/payload/components/ui/button.js +42 -0
  155. package/dist/better-auth/plugin/payload/components/ui/button.js.map +1 -0
  156. package/dist/better-auth/plugin/payload/components/ui/card.d.ts +9 -0
  157. package/dist/better-auth/plugin/payload/components/ui/card.js +55 -0
  158. package/dist/better-auth/plugin/payload/components/ui/card.js.map +1 -0
  159. package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts +4 -0
  160. package/dist/better-auth/plugin/payload/components/ui/checkbox.js +23 -0
  161. package/dist/better-auth/plugin/payload/components/ui/checkbox.js.map +1 -0
  162. package/dist/better-auth/plugin/payload/components/ui/cn.d.ts +2 -0
  163. package/dist/better-auth/plugin/payload/components/ui/cn.js +7 -0
  164. package/dist/better-auth/plugin/payload/components/ui/cn.js.map +1 -0
  165. package/dist/better-auth/plugin/payload/components/ui/input.d.ts +3 -0
  166. package/dist/better-auth/plugin/payload/components/ui/input.js +14 -0
  167. package/dist/better-auth/plugin/payload/components/ui/input.js.map +1 -0
  168. package/dist/better-auth/plugin/payload/components/ui/label.d.ts +4 -0
  169. package/dist/better-auth/plugin/payload/components/ui/label.js +15 -0
  170. package/dist/better-auth/plugin/payload/components/ui/label.js.map +1 -0
  171. package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts +2 -0
  172. package/dist/better-auth/plugin/payload/components/ui/password-input.js +55 -0
  173. package/dist/better-auth/plugin/payload/components/ui/password-input.js.map +1 -0
  174. package/dist/better-auth/plugin/payload/exports/client.d.ts +3 -0
  175. package/dist/better-auth/plugin/payload/exports/client.js +5 -0
  176. package/dist/better-auth/plugin/payload/exports/client.js.map +1 -0
  177. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +5 -0
  178. package/dist/better-auth/plugin/payload/exports/rsc.js +7 -0
  179. package/dist/better-auth/plugin/payload/exports/rsc.js.map +1 -0
  180. package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts +4 -0
  181. package/dist/better-auth/plugin/payload/views/create-first-admin/index.js +112 -0
  182. package/dist/better-auth/plugin/payload/views/create-first-admin/index.js.map +1 -0
  183. package/dist/better-auth/plugin/payload/views/login/index.d.ts +4 -0
  184. package/dist/better-auth/plugin/payload/views/login/index.js +78 -0
  185. package/dist/better-auth/plugin/payload/views/login/index.js.map +1 -0
  186. package/dist/better-auth/plugin/types.d.ts +224 -0
  187. package/dist/better-auth/plugin/types.js +3 -0
  188. package/dist/better-auth/plugin/types.js.map +1 -0
  189. package/dist/better-auth/types.d.ts +2 -0
  190. package/dist/better-auth/types.js +4 -0
  191. package/dist/better-auth/types.js.map +1 -0
  192. package/dist/clerk/index.d.ts +1 -0
  193. package/dist/clerk/index.js +3 -0
  194. package/dist/clerk/index.js.map +1 -0
  195. package/dist/index.js +7 -0
  196. package/dist/index.js.map +1 -0
  197. package/dist/kinde/index.d.ts +1 -0
  198. package/dist/kinde/index.js +3 -0
  199. package/dist/kinde/index.js.map +1 -0
  200. package/package.json +87 -0
@@ -0,0 +1,20 @@
1
+ import path from 'node:path';
2
+ export function padding(str, indent = 2) {
3
+ if (str.trim() === '') return '';
4
+ return str.split('\n').map((x)=>x.length > 0 ? `${' '.repeat(indent)}${x}` : x).join('\n');
5
+ }
6
+ export function getPayloadPath(provided_payload_dir_path) {
7
+ const base_path = process.cwd();
8
+ // If no path provided, use default "convex" in current directory
9
+ if (!provided_payload_dir_path) {
10
+ return path.join(base_path, 'payload');
11
+ }
12
+ // If it's already an absolute path and exists, use it directly
13
+ if (path.isAbsolute(provided_payload_dir_path)) {
14
+ return provided_payload_dir_path;
15
+ }
16
+ // Otherwise, treat it as relative to current directory
17
+ return path.join(base_path, provided_payload_dir_path);
18
+ }
19
+
20
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapter/generate-schema/utils.ts"],"sourcesContent":["import path from 'node:path'\n\nexport function padding(str: string, indent = 2) {\n if (str.trim() === '') return ''\n return str\n .split('\\n')\n .map((x) => (x.length > 0 ? `${' '.repeat(indent)}${x}` : x))\n .join('\\n')\n}\n\nexport function getPayloadPath(provided_payload_dir_path?: string) {\n const base_path = process.cwd()\n\n // If no path provided, use default \"convex\" in current directory\n if (!provided_payload_dir_path) {\n return path.join(base_path, 'payload')\n }\n\n // If it's already an absolute path and exists, use it directly\n if (path.isAbsolute(provided_payload_dir_path)) {\n return provided_payload_dir_path\n }\n\n // Otherwise, treat it as relative to current directory\n return path.join(base_path, provided_payload_dir_path)\n}\n"],"names":["path","padding","str","indent","trim","split","map","x","length","repeat","join","getPayloadPath","provided_payload_dir_path","base_path","process","cwd","isAbsolute"],"mappings":"AAAA,OAAOA,UAAU,YAAW;AAE5B,OAAO,SAASC,QAAQC,GAAW,EAAEC,SAAS,CAAC;IAC7C,IAAID,IAAIE,IAAI,OAAO,IAAI,OAAO;IAC9B,OAAOF,IACJG,KAAK,CAAC,MACNC,GAAG,CAAC,CAACC,IAAOA,EAAEC,MAAM,GAAG,IAAI,GAAG,IAAIC,MAAM,CAACN,UAAUI,GAAG,GAAGA,GACzDG,IAAI,CAAC;AACV;AAEA,OAAO,SAASC,eAAeC,yBAAkC;IAC/D,MAAMC,YAAYC,QAAQC,GAAG;IAE7B,iEAAiE;IACjE,IAAI,CAACH,2BAA2B;QAC9B,OAAOZ,KAAKU,IAAI,CAACG,WAAW;IAC9B;IAEA,+DAA+D;IAC/D,IAAIb,KAAKgB,UAAU,CAACJ,4BAA4B;QAC9C,OAAOA;IACT;IAEA,uDAAuD;IACvD,OAAOZ,KAAKU,IAAI,CAACG,WAAWD;AAC9B"}
@@ -0,0 +1,5 @@
1
+ import { generateSchema } from 'payload-auth/better-auth/adapter/generate-schema';
2
+ import type { PayloadAdapter } from 'payload-auth/better-auth/adapter/types';
3
+ export declare const BETTER_AUTH_CONTEXT_KEY = "payload-db-adapter";
4
+ declare const payloadAdapter: PayloadAdapter;
5
+ export { generateSchema, payloadAdapter };
@@ -0,0 +1,578 @@
1
+ import { BetterAuthError } from 'better-auth';
2
+ import { generateSchema } from 'payload-auth/better-auth/adapter/generate-schema';
3
+ import { createTransform } from 'payload-auth/better-auth/adapter/transform';
4
+ export const BETTER_AUTH_CONTEXT_KEY = 'payload-db-adapter';
5
+ const PAYLOAD_QUERY_DEPTH = 2;
6
+ const payloadAdapter = (payloadClient, config = {})=>{
7
+ function debugLog(message) {
8
+ if (config.enableDebugLogs) {
9
+ console.log('[payload-db-adapter]', ...message);
10
+ }
11
+ }
12
+ function errorLog(message) {
13
+ console.error(`[payload-db-adapter]`, ...message);
14
+ }
15
+ function collectionSlugError(model) {
16
+ throw new BetterAuthError(`Collection ${model} does not exist. Please check your payload collection slugs match the better auth schema`);
17
+ }
18
+ const createAdapterContext = (data)=>({
19
+ [BETTER_AUTH_CONTEXT_KEY]: {
20
+ ...data
21
+ }
22
+ });
23
+ async function resolvePayloadClient() {
24
+ const payload = typeof payloadClient === 'function' ? await payloadClient() : await payloadClient;
25
+ if (!payload.config?.custom?.hasBetterAuthPlugin) {
26
+ throw new BetterAuthError(`Payload is not configured with the better-auth plugin. Please add the plugin to your payload config.`);
27
+ }
28
+ return payload;
29
+ }
30
+ return (options)=>{
31
+ const { transformInput, transformOutput, convertWhereClause, convertSelect, convertSort, getModelName, singleIdQuery, multipleIdsQuery } = createTransform(options, config.enableDebugLogs ?? false);
32
+ return {
33
+ id: 'payload',
34
+ async create (data) {
35
+ const start = Date.now();
36
+ const { model, data: values, select } = data;
37
+ const collectionSlug = getModelName(model);
38
+ const transformed = transformInput(values, model, 'create');
39
+ debugLog([
40
+ 'create',
41
+ {
42
+ collectionSlug,
43
+ transformed,
44
+ select
45
+ }
46
+ ]);
47
+ try {
48
+ const payload = await resolvePayloadClient();
49
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
50
+ collectionSlugError(model);
51
+ }
52
+ const result = await payload.create({
53
+ collection: collectionSlug,
54
+ data: transformed,
55
+ select: convertSelect(model, select),
56
+ context: createAdapterContext({
57
+ model,
58
+ operation: 'create'
59
+ }),
60
+ depth: PAYLOAD_QUERY_DEPTH
61
+ });
62
+ const transformedResult = transformOutput(result);
63
+ debugLog([
64
+ 'create result',
65
+ {
66
+ collectionSlug,
67
+ transformedResult,
68
+ duration: `${Date.now() - start}ms`
69
+ }
70
+ ]);
71
+ return transformedResult;
72
+ } catch (error) {
73
+ errorLog([
74
+ 'Error in creating:',
75
+ model,
76
+ error
77
+ ]);
78
+ return null;
79
+ }
80
+ },
81
+ async findOne (data) {
82
+ const start = Date.now();
83
+ const { model, where, select } = data;
84
+ const collectionSlug = getModelName(model);
85
+ const payloadWhere = convertWhereClause(model, where);
86
+ debugLog([
87
+ 'findOne',
88
+ {
89
+ collectionSlug
90
+ }
91
+ ]);
92
+ try {
93
+ const payload = await resolvePayloadClient();
94
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
95
+ collectionSlugError(model);
96
+ }
97
+ const id = singleIdQuery(payloadWhere);
98
+ let result = null;
99
+ if (id) {
100
+ debugLog([
101
+ 'findOneByID',
102
+ {
103
+ collectionSlug,
104
+ id
105
+ }
106
+ ]);
107
+ const doc = await payload.findByID({
108
+ collection: collectionSlug,
109
+ id,
110
+ select: convertSelect(model, select),
111
+ context: createAdapterContext({
112
+ model,
113
+ operation: 'findOneByID'
114
+ }),
115
+ depth: PAYLOAD_QUERY_DEPTH
116
+ });
117
+ result = doc;
118
+ } else {
119
+ debugLog([
120
+ 'findOneByWhere',
121
+ {
122
+ collectionSlug,
123
+ payloadWhere
124
+ }
125
+ ]);
126
+ const docs = await payload.find({
127
+ collection: collectionSlug,
128
+ where: payloadWhere,
129
+ select: convertSelect(model, select),
130
+ context: createAdapterContext({
131
+ model,
132
+ operation: 'findOneByWhere'
133
+ }),
134
+ depth: PAYLOAD_QUERY_DEPTH,
135
+ limit: 1
136
+ });
137
+ result = docs.docs[0];
138
+ }
139
+ const transformedResult = result ? transformOutput(result) : null;
140
+ debugLog([
141
+ 'findOne result',
142
+ {
143
+ collectionSlug,
144
+ transformedResult,
145
+ duration: `${Date.now() - start}ms`
146
+ }
147
+ ]);
148
+ return transformedResult;
149
+ } catch (error) {
150
+ errorLog([
151
+ 'Error in findOne: ',
152
+ error
153
+ ]);
154
+ return null;
155
+ }
156
+ },
157
+ async findMany (data) {
158
+ const start = Date.now();
159
+ const { model, where, sortBy, limit, offset } = data;
160
+ const collectionSlug = getModelName(model);
161
+ const payloadWhere = convertWhereClause(model, where);
162
+ debugLog([
163
+ 'findMany',
164
+ {
165
+ collectionSlug,
166
+ sortBy,
167
+ limit,
168
+ offset
169
+ }
170
+ ]);
171
+ try {
172
+ const payload = await resolvePayloadClient();
173
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
174
+ collectionSlugError(model);
175
+ }
176
+ let result = null;
177
+ const multipleIds = where && multipleIdsQuery(payloadWhere);
178
+ const singleId = where && singleIdQuery(payloadWhere);
179
+ if (multipleIds && multipleIds.length > 0) {
180
+ debugLog([
181
+ 'findManyByMultipleIDs',
182
+ {
183
+ collectionSlug,
184
+ ids: multipleIds
185
+ }
186
+ ]);
187
+ const res = {
188
+ docs: [],
189
+ totalDocs: 0
190
+ };
191
+ for (const id of multipleIds){
192
+ const doc = await payload.findByID({
193
+ collection: collectionSlug,
194
+ id,
195
+ depth: PAYLOAD_QUERY_DEPTH,
196
+ context: createAdapterContext({
197
+ model,
198
+ operation: 'findManyByMultipleIDs'
199
+ })
200
+ });
201
+ res.docs.push(doc);
202
+ res.totalDocs++;
203
+ }
204
+ result = {
205
+ docs: res.docs,
206
+ totalDocs: res.totalDocs
207
+ };
208
+ } else if (singleId) {
209
+ debugLog([
210
+ 'findManyBySingleID',
211
+ {
212
+ collectionSlug,
213
+ id: singleId
214
+ }
215
+ ]);
216
+ const doc = await payload.findByID({
217
+ collection: collectionSlug,
218
+ id: singleId,
219
+ depth: PAYLOAD_QUERY_DEPTH,
220
+ context: createAdapterContext({
221
+ model,
222
+ operation: 'findManyBySingleID'
223
+ })
224
+ });
225
+ result = {
226
+ docs: doc ? [
227
+ doc
228
+ ] : [],
229
+ totalDocs: doc ? 1 : 0
230
+ };
231
+ } else {
232
+ debugLog([
233
+ 'findManyByWhere',
234
+ {
235
+ collectionSlug,
236
+ payloadWhere
237
+ }
238
+ ]);
239
+ const res = await payload.find({
240
+ collection: collectionSlug,
241
+ where: payloadWhere,
242
+ limit: limit,
243
+ page: offset ? Math.floor(offset / (limit || 10)) + 1 : 1,
244
+ sort: convertSort(model, sortBy),
245
+ depth: PAYLOAD_QUERY_DEPTH,
246
+ context: createAdapterContext({
247
+ model,
248
+ operation: 'findManyByWhere'
249
+ })
250
+ });
251
+ result = {
252
+ docs: res.docs,
253
+ totalDocs: res.totalDocs
254
+ };
255
+ }
256
+ const transformedResult = result?.docs.map((doc)=>transformOutput(doc)) ?? null;
257
+ debugLog([
258
+ 'findMany result',
259
+ {
260
+ collectionSlug,
261
+ transformedResult,
262
+ duration: `${Date.now() - start}ms`
263
+ }
264
+ ]);
265
+ return transformedResult;
266
+ } catch (error) {
267
+ errorLog([
268
+ 'Error in findMany: ',
269
+ error
270
+ ]);
271
+ return [];
272
+ }
273
+ },
274
+ async update (data) {
275
+ const start = Date.now();
276
+ const { model, where, update } = data;
277
+ const collectionSlug = getModelName(model);
278
+ const payloadWhere = convertWhereClause(model, where);
279
+ debugLog([
280
+ 'update',
281
+ {
282
+ collectionSlug,
283
+ update
284
+ }
285
+ ]);
286
+ try {
287
+ const payload = await resolvePayloadClient();
288
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
289
+ collectionSlugError(model);
290
+ }
291
+ let result = null;
292
+ const id = singleIdQuery(payloadWhere);
293
+ if (id) {
294
+ debugLog([
295
+ 'updateByID',
296
+ {
297
+ collectionSlug,
298
+ id
299
+ }
300
+ ]);
301
+ const doc = await payload.update({
302
+ collection: collectionSlug,
303
+ id,
304
+ data: update,
305
+ depth: PAYLOAD_QUERY_DEPTH,
306
+ context: createAdapterContext({
307
+ model,
308
+ operation: 'updateByID'
309
+ })
310
+ });
311
+ result = doc;
312
+ } else {
313
+ debugLog([
314
+ 'updateByWhere',
315
+ {
316
+ collectionSlug,
317
+ payloadWhere
318
+ }
319
+ ]);
320
+ const doc = await payload.update({
321
+ collection: collectionSlug,
322
+ where: payloadWhere,
323
+ data: update,
324
+ depth: PAYLOAD_QUERY_DEPTH,
325
+ context: createAdapterContext({
326
+ model,
327
+ operation: 'updateByWhere'
328
+ })
329
+ });
330
+ result = doc.docs[0];
331
+ }
332
+ const transformedResult = transformOutput(result) ?? null;
333
+ debugLog([
334
+ 'update result',
335
+ {
336
+ collectionSlug,
337
+ transformedResult,
338
+ duration: `${Date.now() - start}ms`
339
+ }
340
+ ]);
341
+ return transformedResult;
342
+ } catch (error) {
343
+ errorLog([
344
+ 'Error in update: ',
345
+ error
346
+ ]);
347
+ return null;
348
+ }
349
+ },
350
+ async updateMany (data) {
351
+ const start = Date.now();
352
+ const { model, where, update } = data;
353
+ const collectionSlug = getModelName(model);
354
+ const payloadWhere = convertWhereClause(model, where);
355
+ debugLog([
356
+ 'updateMany',
357
+ {
358
+ collectionSlug,
359
+ payloadWhere,
360
+ update
361
+ }
362
+ ]);
363
+ try {
364
+ const payload = await resolvePayloadClient();
365
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
366
+ collectionSlugError(model);
367
+ }
368
+ const { docs: updateResult } = await payload.update({
369
+ collection: collectionSlug,
370
+ where: payloadWhere,
371
+ data: update,
372
+ depth: PAYLOAD_QUERY_DEPTH,
373
+ context: createAdapterContext({
374
+ model,
375
+ operation: 'updateMany'
376
+ })
377
+ });
378
+ debugLog([
379
+ 'updateMany result',
380
+ {
381
+ collectionSlug,
382
+ result: updateResult,
383
+ duration: `${Date.now() - start}ms`
384
+ }
385
+ ]);
386
+ return updateResult?.length || 0;
387
+ } catch (error) {
388
+ errorLog([
389
+ 'Error in updateMany: ',
390
+ error
391
+ ]);
392
+ return 0;
393
+ }
394
+ },
395
+ async delete (data) {
396
+ const start = Date.now();
397
+ const { model, where } = data;
398
+ const collectionSlug = getModelName(model);
399
+ const payloadWhere = convertWhereClause(model, where);
400
+ debugLog([
401
+ 'delete',
402
+ {
403
+ collectionSlug
404
+ }
405
+ ]);
406
+ try {
407
+ const payload = await resolvePayloadClient();
408
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
409
+ collectionSlugError(model);
410
+ }
411
+ let deleteResult = null;
412
+ const id = singleIdQuery(payloadWhere);
413
+ if (id) {
414
+ debugLog([
415
+ 'deleteByID',
416
+ {
417
+ collectionSlug,
418
+ id
419
+ }
420
+ ]);
421
+ const doc = await payload.delete({
422
+ collection: collectionSlug,
423
+ id,
424
+ depth: PAYLOAD_QUERY_DEPTH,
425
+ context: createAdapterContext({
426
+ model,
427
+ operation: 'deleteByID'
428
+ })
429
+ });
430
+ deleteResult = {
431
+ doc,
432
+ errors: []
433
+ };
434
+ } else {
435
+ debugLog([
436
+ 'deleteByWhere',
437
+ {
438
+ collectionSlug,
439
+ payloadWhere
440
+ }
441
+ ]);
442
+ const doc = await payload.delete({
443
+ collection: collectionSlug,
444
+ where: payloadWhere,
445
+ depth: PAYLOAD_QUERY_DEPTH,
446
+ context: createAdapterContext({
447
+ model,
448
+ operation: 'deleteByWhere'
449
+ })
450
+ });
451
+ deleteResult = {
452
+ doc: doc.docs[0],
453
+ errors: []
454
+ };
455
+ }
456
+ debugLog([
457
+ 'delete result',
458
+ {
459
+ collectionSlug,
460
+ result: deleteResult,
461
+ duration: `${Date.now() - start}ms`
462
+ }
463
+ ]);
464
+ return;
465
+ } catch (error) {
466
+ errorLog([
467
+ 'Error in delete: ',
468
+ error
469
+ ]);
470
+ return;
471
+ }
472
+ },
473
+ async deleteMany (data) {
474
+ const start = Date.now();
475
+ const { model, where } = data;
476
+ const collectionSlug = getModelName(model);
477
+ const payloadWhere = convertWhereClause(model, where);
478
+ debugLog([
479
+ 'deleteMany',
480
+ {
481
+ collectionSlug,
482
+ payloadWhere
483
+ }
484
+ ]);
485
+ try {
486
+ const payload = await resolvePayloadClient();
487
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
488
+ collectionSlugError(model);
489
+ }
490
+ const deleteResult = await payload.delete({
491
+ collection: collectionSlug,
492
+ where: payloadWhere,
493
+ depth: PAYLOAD_QUERY_DEPTH,
494
+ context: createAdapterContext({
495
+ model,
496
+ operation: 'deleteMany'
497
+ })
498
+ });
499
+ debugLog([
500
+ 'deleteMany result',
501
+ {
502
+ collectionSlug,
503
+ result: deleteResult,
504
+ duration: `${Date.now() - start}ms`
505
+ }
506
+ ]);
507
+ return deleteResult.docs.length;
508
+ } catch (error) {
509
+ errorLog([
510
+ 'Error in deleteMany: ',
511
+ error
512
+ ]);
513
+ return 0;
514
+ }
515
+ },
516
+ async count (data) {
517
+ const start = Date.now();
518
+ const { model, where } = data;
519
+ const collectionSlug = getModelName(model);
520
+ const payloadWhere = convertWhereClause(model, where);
521
+ debugLog([
522
+ 'count',
523
+ {
524
+ collectionSlug,
525
+ payloadWhere
526
+ }
527
+ ]);
528
+ try {
529
+ const payload = await resolvePayloadClient();
530
+ if (!collectionSlug || !(collectionSlug in payload.collections)) {
531
+ collectionSlugError(model);
532
+ }
533
+ const result = await payload.count({
534
+ collection: collectionSlug,
535
+ where: payloadWhere,
536
+ depth: PAYLOAD_QUERY_DEPTH,
537
+ context: createAdapterContext({
538
+ model,
539
+ operation: 'count'
540
+ })
541
+ });
542
+ debugLog([
543
+ 'count result',
544
+ {
545
+ collectionSlug,
546
+ result: {
547
+ totalDocs: result.totalDocs
548
+ },
549
+ duration: `${Date.now() - start}ms`
550
+ }
551
+ ]);
552
+ return result.totalDocs;
553
+ } catch (error) {
554
+ errorLog([
555
+ 'Error in count: ',
556
+ error
557
+ ]);
558
+ return 0;
559
+ }
560
+ },
561
+ createSchema: async (options, file)=>{
562
+ const schemaCode = await generateSchema(options);
563
+ return {
564
+ code: schemaCode,
565
+ path: file || 'schema.ts',
566
+ append: false,
567
+ overwrite: true
568
+ };
569
+ },
570
+ options: {
571
+ enableDebugLogs: config.enableDebugLogs
572
+ }
573
+ };
574
+ };
575
+ };
576
+ export { generateSchema, payloadAdapter };
577
+
578
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/adapter/index.ts"],"sourcesContent":["import { BetterAuthError } from 'better-auth'\nimport type { Adapter, BetterAuthOptions, Where } from 'better-auth'\nimport { generateSchema } from 'payload-auth/better-auth/adapter/generate-schema'\nimport { createTransform } from 'payload-auth/better-auth/adapter/transform'\nimport type { PayloadAdapter } from 'payload-auth/better-auth/adapter/types'\n\nexport const BETTER_AUTH_CONTEXT_KEY = 'payload-db-adapter'\nconst PAYLOAD_QUERY_DEPTH = 2\n\nconst payloadAdapter: PayloadAdapter = (payloadClient, config = {}) => {\n function debugLog(message: any[]) {\n if (config.enableDebugLogs) {\n console.log('[payload-db-adapter]', ...message)\n }\n }\n\n function errorLog(message: any[]) {\n console.error(`[payload-db-adapter]`, ...message)\n }\n\n function collectionSlugError(model: string) {\n throw new BetterAuthError(\n `Collection ${model} does not exist. Please check your payload collection slugs match the better auth schema`,\n )\n }\n\n const createAdapterContext = (data: Record<string, any>) => ({\n [BETTER_AUTH_CONTEXT_KEY]: { ...data },\n })\n\n async function resolvePayloadClient() {\n const payload =\n typeof payloadClient === 'function' ? await payloadClient() : await payloadClient\n if (!payload.config?.custom?.hasBetterAuthPlugin) {\n throw new BetterAuthError(\n `Payload is not configured with the better-auth plugin. Please add the plugin to your payload config.`,\n )\n }\n return payload\n }\n\n return (options: BetterAuthOptions): Adapter => {\n const {\n transformInput,\n transformOutput,\n convertWhereClause,\n convertSelect,\n convertSort,\n getModelName,\n singleIdQuery,\n multipleIdsQuery,\n } = createTransform(options, config.enableDebugLogs ?? false)\n\n return {\n id: 'payload',\n async create<T extends Record<string, any>, R = T>(data: {\n model: string\n data: T\n select?: string[]\n }): Promise<R> {\n const start = Date.now()\n const { model, data: values, select } = data\n const collectionSlug = getModelName(model)\n const transformed = transformInput(values, model, 'create')\n debugLog(['create', { collectionSlug, transformed, select }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const result = await payload.create({\n collection: collectionSlug,\n data: transformed,\n select: convertSelect(model, select),\n context: createAdapterContext({ model, operation: 'create' }),\n depth: PAYLOAD_QUERY_DEPTH,\n })\n const transformedResult = transformOutput(result)\n debugLog([\n 'create result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as R\n } catch (error) {\n errorLog(['Error in creating:', model, error])\n return null as R\n }\n },\n async findOne<T>(data: {\n model: string\n where: Where[]\n select?: string[]\n }): Promise<T | null> {\n const start = Date.now()\n const { model, where, select } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['findOne', { collectionSlug }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const id = singleIdQuery(payloadWhere)\n let result: Record<string, any> | null = null\n if (id) {\n debugLog(['findOneByID', { collectionSlug, id }])\n const doc = await payload.findByID({\n collection: collectionSlug,\n id,\n select: convertSelect(model, select),\n context: createAdapterContext({\n model,\n operation: 'findOneByID',\n }),\n depth: PAYLOAD_QUERY_DEPTH,\n })\n result = doc\n } else {\n debugLog(['findOneByWhere', { collectionSlug, payloadWhere }])\n const docs = await payload.find({\n collection: collectionSlug,\n where: payloadWhere,\n select: convertSelect(model, select),\n context: createAdapterContext({\n model,\n operation: 'findOneByWhere',\n }),\n depth: PAYLOAD_QUERY_DEPTH,\n limit: 1,\n })\n result = docs.docs[0]\n }\n const transformedResult = result ? transformOutput(result) : null\n debugLog([\n 'findOne result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as T\n } catch (error) {\n errorLog(['Error in findOne: ', error])\n return null\n }\n },\n async findMany<T>(data: {\n model: string\n where?: Where[]\n limit?: number\n sortBy?: {\n field: string\n direction: 'asc' | 'desc'\n }\n offset?: number\n }): Promise<T[]> {\n const start = Date.now()\n const { model, where, sortBy, limit, offset } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['findMany', { collectionSlug, sortBy, limit, offset }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n let result: {\n docs: Record<string, any>[]\n totalDocs: number\n } | null = null\n const multipleIds = where && multipleIdsQuery(payloadWhere)\n const singleId = where && singleIdQuery(payloadWhere)\n if (multipleIds && multipleIds.length > 0) {\n debugLog(['findManyByMultipleIDs', { collectionSlug, ids: multipleIds }])\n const res = {\n docs: [] as Record<string, any>[],\n totalDocs: 0,\n }\n for (const id of multipleIds) {\n const doc = await payload.findByID({\n collection: collectionSlug,\n id,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'findManyByMultipleIDs',\n }),\n })\n res.docs.push(doc)\n res.totalDocs++\n }\n result = { docs: res.docs, totalDocs: res.totalDocs }\n } else if (singleId) {\n debugLog(['findManyBySingleID', { collectionSlug, id: singleId }])\n const doc = await payload.findByID({\n collection: collectionSlug,\n id: singleId,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'findManyBySingleID',\n }),\n })\n result = { docs: doc ? [doc] : [], totalDocs: doc ? 1 : 0 }\n } else {\n debugLog(['findManyByWhere', { collectionSlug, payloadWhere }])\n const res = await payload.find({\n collection: collectionSlug,\n where: payloadWhere,\n limit: limit,\n page: offset ? Math.floor(offset / (limit || 10)) + 1 : 1,\n sort: convertSort(model, sortBy),\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'findManyByWhere',\n }),\n })\n result = { docs: res.docs, totalDocs: res.totalDocs }\n }\n const transformedResult = result?.docs.map((doc) => transformOutput(doc)) ?? null\n debugLog([\n 'findMany result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as T[]\n } catch (error) {\n errorLog(['Error in findMany: ', error])\n return [] as T[]\n }\n },\n async update<T>(data: {\n model: string\n where: Where[]\n update: Record<string, unknown>\n }): Promise<T | null> {\n const start = Date.now()\n const { model, where, update } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['update', { collectionSlug, update }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n let result: Record<string, any> | null = null\n const id = singleIdQuery(payloadWhere)\n if (id) {\n debugLog(['updateByID', { collectionSlug, id }])\n const doc = await payload.update({\n collection: collectionSlug,\n id,\n data: update,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'updateByID' }),\n })\n result = doc\n } else {\n debugLog(['updateByWhere', { collectionSlug, payloadWhere }])\n const doc = await payload.update({\n collection: collectionSlug,\n where: payloadWhere,\n data: update,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'updateByWhere',\n }),\n })\n result = doc.docs[0]\n }\n const transformedResult = transformOutput(result) ?? null\n debugLog([\n 'update result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as T\n } catch (error) {\n errorLog(['Error in update: ', error])\n return null\n }\n },\n async updateMany(data: {\n model: string\n where: Where[]\n update: Record<string, unknown>\n }): Promise<number> {\n const start = Date.now()\n const { model, where, update } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['updateMany', { collectionSlug, payloadWhere, update }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const { docs: updateResult } = await payload.update({\n collection: collectionSlug,\n where: payloadWhere,\n data: update,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'updateMany' }),\n })\n debugLog([\n 'updateMany result',\n {\n collectionSlug,\n result: updateResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return updateResult?.length || 0\n } catch (error) {\n errorLog(['Error in updateMany: ', error])\n return 0\n }\n },\n async delete(data: { model: string; where: Where[] }): Promise<void> {\n const start = Date.now()\n const { model, where } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['delete', { collectionSlug }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n let deleteResult: {\n doc: Record<string, any> | null\n errors: any[]\n } | null = null\n const id = singleIdQuery(payloadWhere)\n if (id) {\n debugLog(['deleteByID', { collectionSlug, id }])\n const doc = await payload.delete({\n collection: collectionSlug,\n id,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'deleteByID' }),\n })\n deleteResult = { doc, errors: [] }\n } else {\n debugLog(['deleteByWhere', { collectionSlug, payloadWhere }])\n const doc = await payload.delete({\n collection: collectionSlug,\n where: payloadWhere,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'deleteByWhere',\n }),\n })\n deleteResult = { doc: doc.docs[0], errors: [] }\n }\n debugLog([\n 'delete result',\n {\n collectionSlug,\n result: deleteResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return\n } catch (error) {\n errorLog(['Error in delete: ', error])\n return\n }\n },\n async deleteMany(data: { model: string; where: Where[] }): Promise<number> {\n const start = Date.now()\n const { model, where } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['deleteMany', { collectionSlug, payloadWhere }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const deleteResult = await payload.delete({\n collection: collectionSlug,\n where: payloadWhere,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'deleteMany' }),\n })\n debugLog([\n 'deleteMany result',\n {\n collectionSlug,\n result: deleteResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return deleteResult.docs.length\n } catch (error) {\n errorLog(['Error in deleteMany: ', error])\n return 0\n }\n },\n async count(data: { model: string; where?: Where[] }): Promise<number> {\n const start = Date.now()\n const { model, where } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['count', { collectionSlug, payloadWhere }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const result = await payload.count({\n collection: collectionSlug,\n where: payloadWhere,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'count' }),\n })\n debugLog([\n 'count result',\n {\n collectionSlug,\n result: { totalDocs: result.totalDocs },\n duration: `${Date.now() - start}ms`,\n },\n ])\n return result.totalDocs\n } catch (error) {\n errorLog(['Error in count: ', error])\n return 0\n }\n },\n createSchema: async (options, file) => {\n const schemaCode = await generateSchema(options)\n\n return {\n code: schemaCode,\n path: file || 'schema.ts',\n append: false,\n overwrite: true,\n }\n },\n options: {\n enableDebugLogs: config.enableDebugLogs,\n },\n }\n }\n}\n\nexport { generateSchema, payloadAdapter }\n"],"names":["BetterAuthError","generateSchema","createTransform","BETTER_AUTH_CONTEXT_KEY","PAYLOAD_QUERY_DEPTH","payloadAdapter","payloadClient","config","debugLog","message","enableDebugLogs","console","log","errorLog","error","collectionSlugError","model","createAdapterContext","data","resolvePayloadClient","payload","custom","hasBetterAuthPlugin","options","transformInput","transformOutput","convertWhereClause","convertSelect","convertSort","getModelName","singleIdQuery","multipleIdsQuery","id","create","start","Date","now","values","select","collectionSlug","transformed","collections","result","collection","context","operation","depth","transformedResult","duration","findOne","where","payloadWhere","doc","findByID","docs","find","limit","findMany","sortBy","offset","multipleIds","singleId","length","ids","res","totalDocs","push","page","Math","floor","sort","map","update","updateMany","updateResult","delete","deleteResult","errors","deleteMany","count","createSchema","file","schemaCode","code","path","append","overwrite"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};