@payloadcms/figma 0.0.1-alpha.1 → 0.0.1-alpha.11

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 (316) hide show
  1. package/dist/api/control-plane.d.ts.map +1 -1
  2. package/dist/api/control-plane.js +11 -16
  3. package/dist/api/control-plane.js.map +1 -1
  4. package/dist/api/figma-api.js +3 -3
  5. package/dist/api/figma-api.js.map +1 -1
  6. package/dist/auth/jwt-validator.js.map +1 -1
  7. package/dist/auth/oauth-flow.d.ts.map +1 -1
  8. package/dist/auth/oauth-flow.js +3 -6
  9. package/dist/auth/oauth-flow.js.map +1 -1
  10. package/dist/auth/project-token.d.ts.map +1 -1
  11. package/dist/auth/project-token.js +1 -4
  12. package/dist/auth/project-token.js.map +1 -1
  13. package/dist/auth/refresh.d.ts.map +1 -1
  14. package/dist/auth/refresh.js +19 -28
  15. package/dist/auth/refresh.js.map +1 -1
  16. package/dist/auth/types.d.ts +1 -1
  17. package/dist/auth/types.d.ts.map +1 -1
  18. package/dist/auth/types.js.map +1 -1
  19. package/dist/cli.js +1 -3
  20. package/dist/cli.js.map +1 -1
  21. package/dist/commands/deploy.d.ts.map +1 -1
  22. package/dist/commands/deploy.js +17 -10
  23. package/dist/commands/deploy.js.map +1 -1
  24. package/dist/commands/init.d.ts +4 -0
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +21 -85
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/list-tokens.d.ts +1 -1
  29. package/dist/commands/list-tokens.d.ts.map +1 -1
  30. package/dist/commands/list-tokens.js +6 -5
  31. package/dist/commands/list-tokens.js.map +1 -1
  32. package/dist/commands/login.d.ts +2 -11
  33. package/dist/commands/login.d.ts.map +1 -1
  34. package/dist/commands/login.js +4 -7
  35. package/dist/commands/login.js.map +1 -1
  36. package/dist/commands/logout.d.ts +1 -1
  37. package/dist/commands/logout.js +1 -1
  38. package/dist/commands/logout.js.map +1 -1
  39. package/dist/db-adapter.d.ts +17 -0
  40. package/dist/db-adapter.d.ts.map +1 -0
  41. package/dist/db-adapter.js +757 -0
  42. package/dist/db-adapter.js.map +1 -0
  43. package/dist/endpoints/health.d.ts +3 -0
  44. package/dist/endpoints/health.d.ts.map +1 -0
  45. package/dist/endpoints/health.js +11 -0
  46. package/dist/endpoints/health.js.map +1 -0
  47. package/dist/exports/client.d.ts +3 -0
  48. package/dist/exports/client.d.ts.map +1 -0
  49. package/dist/exports/client.js +4 -0
  50. package/dist/exports/client.js.map +1 -0
  51. package/dist/oauth/components/LoginButton/index.d.ts +9 -0
  52. package/dist/oauth/components/LoginButton/index.d.ts.map +1 -0
  53. package/dist/oauth/components/LoginButton/index.js +52 -0
  54. package/dist/oauth/components/LoginButton/index.js.map +1 -0
  55. package/dist/oauth/components/LoginButton/index.scss +10 -0
  56. package/dist/oauth/components/LogoutButton/index.d.ts +7 -0
  57. package/dist/oauth/components/LogoutButton/index.d.ts.map +1 -0
  58. package/dist/oauth/components/LogoutButton/index.js +67 -0
  59. package/dist/oauth/components/LogoutButton/index.js.map +1 -0
  60. package/dist/oauth/components/LogoutButton/index.scss +10 -0
  61. package/dist/oauth/defaults.d.ts +10 -0
  62. package/dist/oauth/defaults.d.ts.map +1 -0
  63. package/dist/oauth/defaults.js +91 -0
  64. package/dist/oauth/defaults.js.map +1 -0
  65. package/dist/oauth/endpoints/getLoginEndpoint.d.ts +13 -0
  66. package/dist/oauth/endpoints/getLoginEndpoint.d.ts.map +1 -0
  67. package/dist/oauth/endpoints/getLoginEndpoint.js +237 -0
  68. package/dist/oauth/endpoints/getLoginEndpoint.js.map +1 -0
  69. package/dist/oauth/endpoints/getLogoutEndpoint.d.ts +12 -0
  70. package/dist/oauth/endpoints/getLogoutEndpoint.d.ts.map +1 -0
  71. package/dist/oauth/endpoints/getLogoutEndpoint.js +99 -0
  72. package/dist/oauth/endpoints/getLogoutEndpoint.js.map +1 -0
  73. package/dist/oauth/endpoints/getMetaEndpoint.d.ts +13 -0
  74. package/dist/oauth/endpoints/getMetaEndpoint.d.ts.map +1 -0
  75. package/dist/oauth/endpoints/getMetaEndpoint.js +25 -0
  76. package/dist/oauth/endpoints/getMetaEndpoint.js.map +1 -0
  77. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.d.ts +13 -0
  78. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.d.ts.map +1 -0
  79. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.js +21 -0
  80. package/dist/oauth/endpoints/getRedirectToLoginEndpoint.js.map +1 -0
  81. package/dist/oauth/exports/client.d.ts +3 -0
  82. package/dist/oauth/exports/client.d.ts.map +1 -0
  83. package/dist/oauth/exports/client.js +4 -0
  84. package/dist/oauth/exports/client.js.map +1 -0
  85. package/dist/oauth/hooks/afterLogout.d.ts +8 -0
  86. package/dist/oauth/hooks/afterLogout.d.ts.map +1 -0
  87. package/dist/oauth/hooks/afterLogout.js +27 -0
  88. package/dist/oauth/hooks/afterLogout.js.map +1 -0
  89. package/dist/oauth/hooks/me.d.ts +5 -0
  90. package/dist/oauth/hooks/me.d.ts.map +1 -0
  91. package/dist/oauth/hooks/me.js +55 -0
  92. package/dist/oauth/hooks/me.js.map +1 -0
  93. package/dist/oauth/hooks/refresh.d.ts +8 -0
  94. package/dist/oauth/hooks/refresh.d.ts.map +1 -0
  95. package/dist/oauth/hooks/refresh.js +91 -0
  96. package/dist/oauth/hooks/refresh.js.map +1 -0
  97. package/dist/oauth/index.d.ts +4 -0
  98. package/dist/oauth/index.d.ts.map +1 -0
  99. package/dist/oauth/index.js +222 -0
  100. package/dist/oauth/index.js.map +1 -0
  101. package/dist/oauth/strategy/index.d.ts +54 -0
  102. package/dist/oauth/strategy/index.d.ts.map +1 -0
  103. package/dist/oauth/strategy/index.js +280 -0
  104. package/dist/oauth/strategy/index.js.map +1 -0
  105. package/dist/oauth/types.d.ts +192 -0
  106. package/dist/oauth/types.d.ts.map +1 -0
  107. package/dist/oauth/types.js +3 -0
  108. package/dist/oauth/types.js.map +1 -0
  109. package/dist/oauth/utilities/clearCookie.d.ts +9 -0
  110. package/dist/oauth/utilities/clearCookie.d.ts.map +1 -0
  111. package/dist/oauth/utilities/clearCookie.js +21 -0
  112. package/dist/oauth/utilities/clearCookie.js.map +1 -0
  113. package/dist/oauth/utilities/createCookieOptions.d.ts +10 -0
  114. package/dist/oauth/utilities/createCookieOptions.d.ts.map +1 -0
  115. package/dist/oauth/utilities/createCookieOptions.js +42 -0
  116. package/dist/oauth/utilities/createCookieOptions.js.map +1 -0
  117. package/dist/oauth/utilities/createDebugLogger.d.ts +4 -0
  118. package/dist/oauth/utilities/createDebugLogger.d.ts.map +1 -0
  119. package/dist/oauth/utilities/createDebugLogger.js +16 -0
  120. package/dist/oauth/utilities/createDebugLogger.js.map +1 -0
  121. package/dist/oauth/utilities/extractOrigin.d.ts +2 -0
  122. package/dist/oauth/utilities/extractOrigin.d.ts.map +1 -0
  123. package/dist/oauth/utilities/extractOrigin.js +12 -0
  124. package/dist/oauth/utilities/extractOrigin.js.map +1 -0
  125. package/dist/oauth/utilities/getAdminCollectionSlug.d.ts +3 -0
  126. package/dist/oauth/utilities/getAdminCollectionSlug.d.ts.map +1 -0
  127. package/dist/oauth/utilities/getAdminCollectionSlug.js +18 -0
  128. package/dist/oauth/utilities/getAdminCollectionSlug.js.map +1 -0
  129. package/dist/oauth/utilities/getAdminPath.d.ts +8 -0
  130. package/dist/oauth/utilities/getAdminPath.d.ts.map +1 -0
  131. package/dist/oauth/utilities/getAdminPath.js +9 -0
  132. package/dist/oauth/utilities/getAdminPath.js.map +1 -0
  133. package/dist/oauth/utilities/getAuthorizeURL.d.ts +17 -0
  134. package/dist/oauth/utilities/getAuthorizeURL.d.ts.map +1 -0
  135. package/dist/oauth/utilities/getAuthorizeURL.js +45 -0
  136. package/dist/oauth/utilities/getAuthorizeURL.js.map +1 -0
  137. package/dist/oauth/utilities/getCookieExpiration.d.ts +4 -0
  138. package/dist/oauth/utilities/getCookieExpiration.d.ts.map +1 -0
  139. package/dist/oauth/utilities/getCookieExpiration.js +11 -0
  140. package/dist/oauth/utilities/getCookieExpiration.js.map +1 -0
  141. package/dist/oauth/utilities/getSecondsFromTokenExp.d.ts +2 -0
  142. package/dist/oauth/utilities/getSecondsFromTokenExp.d.ts.map +1 -0
  143. package/dist/oauth/utilities/getSecondsFromTokenExp.js +7 -0
  144. package/dist/oauth/utilities/getSecondsFromTokenExp.js.map +1 -0
  145. package/dist/oauth/utilities/getTokenExp.d.ts +6 -0
  146. package/dist/oauth/utilities/getTokenExp.d.ts.map +1 -0
  147. package/dist/oauth/utilities/getTokenExp.js +20 -0
  148. package/dist/oauth/utilities/getTokenExp.js.map +1 -0
  149. package/dist/oauth/utilities/getUsernameField.d.ts +9 -0
  150. package/dist/oauth/utilities/getUsernameField.d.ts.map +1 -0
  151. package/dist/oauth/utilities/getUsernameField.js +20 -0
  152. package/dist/oauth/utilities/getUsernameField.js.map +1 -0
  153. package/dist/oauth/utilities/hasUserTokenPropsChanged.d.ts +8 -0
  154. package/dist/oauth/utilities/hasUserTokenPropsChanged.d.ts.map +1 -0
  155. package/dist/oauth/utilities/hasUserTokenPropsChanged.js +25 -0
  156. package/dist/oauth/utilities/hasUserTokenPropsChanged.js.map +1 -0
  157. package/dist/oauth/utilities/mergeHeaders.d.ts +2 -0
  158. package/dist/oauth/utilities/mergeHeaders.d.ts.map +1 -0
  159. package/dist/oauth/utilities/mergeHeaders.js +37 -0
  160. package/dist/oauth/utilities/mergeHeaders.js.map +1 -0
  161. package/dist/oauth/utilities/refreshTokens.d.ts +16 -0
  162. package/dist/oauth/utilities/refreshTokens.d.ts.map +1 -0
  163. package/dist/oauth/utilities/refreshTokens.js +67 -0
  164. package/dist/oauth/utilities/refreshTokens.js.map +1 -0
  165. package/dist/plugin/build-config.d.ts +7 -1
  166. package/dist/plugin/build-config.d.ts.map +1 -1
  167. package/dist/plugin/build-config.js +53 -3
  168. package/dist/plugin/build-config.js.map +1 -1
  169. package/dist/types/config.d.ts +0 -11
  170. package/dist/types/config.d.ts.map +1 -1
  171. package/dist/types/config.js +1 -1
  172. package/dist/types/config.js.map +1 -1
  173. package/dist/utils/config.d.ts +0 -22
  174. package/dist/utils/config.d.ts.map +1 -1
  175. package/dist/utils/config.js +0 -46
  176. package/dist/utils/config.js.map +1 -1
  177. package/dist/utils/messages.js +11 -11
  178. package/dist/utils/messages.js.map +1 -1
  179. package/dist/utils/payload-config-ast.d.ts +17 -1
  180. package/dist/utils/payload-config-ast.d.ts.map +1 -1
  181. package/dist/utils/payload-config-ast.js +166 -14
  182. package/dist/utils/payload-config-ast.js.map +1 -1
  183. package/dist/utils/payload-config-modifier.d.ts +2 -1
  184. package/dist/utils/payload-config-modifier.d.ts.map +1 -1
  185. package/dist/utils/payload-config-modifier.js +50 -79
  186. package/dist/utils/payload-config-modifier.js.map +1 -1
  187. package/dist/utils/payload-package-check.d.ts.map +1 -1
  188. package/dist/utils/payload-package-check.js +14 -33
  189. package/dist/utils/payload-package-check.js.map +1 -1
  190. package/dist/utils/project.d.ts +1 -1
  191. package/dist/utils/project.d.ts.map +1 -1
  192. package/dist/utils/project.js +3 -5
  193. package/dist/utils/project.js.map +1 -1
  194. package/dist/utils/s3-upload.d.ts.map +1 -1
  195. package/dist/utils/s3-upload.js +3 -8
  196. package/dist/utils/s3-upload.js.map +1 -1
  197. package/dist/utils/token-display.d.ts.map +1 -1
  198. package/dist/utils/token-display.js +3 -2
  199. package/dist/utils/token-display.js.map +1 -1
  200. package/package.json +9 -3
  201. package/dist/api/control-plane.spec.d.ts +0 -2
  202. package/dist/api/control-plane.spec.d.ts.map +0 -1
  203. package/dist/api/control-plane.spec.js +0 -296
  204. package/dist/api/control-plane.spec.js.map +0 -1
  205. package/dist/api/figma-api.spec.d.ts +0 -14
  206. package/dist/api/figma-api.spec.d.ts.map +0 -1
  207. package/dist/api/figma-api.spec.js +0 -201
  208. package/dist/api/figma-api.spec.js.map +0 -1
  209. package/dist/auth/__tests__/fixtures.d.ts +0 -26
  210. package/dist/auth/__tests__/fixtures.d.ts.map +0 -1
  211. package/dist/auth/__tests__/fixtures.js +0 -67
  212. package/dist/auth/__tests__/fixtures.js.map +0 -1
  213. package/dist/auth/__tests__/mocks.d.ts +0 -33
  214. package/dist/auth/__tests__/mocks.d.ts.map +0 -1
  215. package/dist/auth/__tests__/mocks.js +0 -63
  216. package/dist/auth/__tests__/mocks.js.map +0 -1
  217. package/dist/auth/callback-server.spec.d.ts +0 -2
  218. package/dist/auth/callback-server.spec.d.ts.map +0 -1
  219. package/dist/auth/callback-server.spec.js +0 -85
  220. package/dist/auth/callback-server.spec.js.map +0 -1
  221. package/dist/auth/crypto-utils.spec.d.ts +0 -2
  222. package/dist/auth/crypto-utils.spec.d.ts.map +0 -1
  223. package/dist/auth/crypto-utils.spec.js +0 -36
  224. package/dist/auth/crypto-utils.spec.js.map +0 -1
  225. package/dist/auth/jwt-validator.spec.d.ts +0 -10
  226. package/dist/auth/jwt-validator.spec.d.ts.map +0 -1
  227. package/dist/auth/jwt-validator.spec.js +0 -236
  228. package/dist/auth/jwt-validator.spec.js.map +0 -1
  229. package/dist/auth/oauth-flow.spec.d.ts +0 -2
  230. package/dist/auth/oauth-flow.spec.d.ts.map +0 -1
  231. package/dist/auth/oauth-flow.spec.js +0 -134
  232. package/dist/auth/oauth-flow.spec.js.map +0 -1
  233. package/dist/auth/pkce.spec.d.ts +0 -2
  234. package/dist/auth/pkce.spec.d.ts.map +0 -1
  235. package/dist/auth/pkce.spec.js +0 -32
  236. package/dist/auth/pkce.spec.js.map +0 -1
  237. package/dist/auth/project-token.spec.d.ts +0 -2
  238. package/dist/auth/project-token.spec.d.ts.map +0 -1
  239. package/dist/auth/project-token.spec.js +0 -332
  240. package/dist/auth/project-token.spec.js.map +0 -1
  241. package/dist/auth/refresh.spec.d.ts +0 -2
  242. package/dist/auth/refresh.spec.d.ts.map +0 -1
  243. package/dist/auth/refresh.spec.js +0 -105
  244. package/dist/auth/refresh.spec.js.map +0 -1
  245. package/dist/auth/token-store.spec.d.ts +0 -2
  246. package/dist/auth/token-store.spec.d.ts.map +0 -1
  247. package/dist/auth/token-store.spec.js +0 -276
  248. package/dist/auth/token-store.spec.js.map +0 -1
  249. package/dist/commands/__tests__/test-utils.d.ts +0 -28
  250. package/dist/commands/__tests__/test-utils.d.ts.map +0 -1
  251. package/dist/commands/__tests__/test-utils.js +0 -34
  252. package/dist/commands/__tests__/test-utils.js.map +0 -1
  253. package/dist/commands/deploy.spec.d.ts +0 -2
  254. package/dist/commands/deploy.spec.d.ts.map +0 -1
  255. package/dist/commands/deploy.spec.js +0 -18
  256. package/dist/commands/deploy.spec.js.map +0 -1
  257. package/dist/commands/init.spec.d.ts +0 -2
  258. package/dist/commands/init.spec.d.ts.map +0 -1
  259. package/dist/commands/init.spec.js +0 -283
  260. package/dist/commands/init.spec.js.map +0 -1
  261. package/dist/plugin/build-config.spec.d.ts +0 -2
  262. package/dist/plugin/build-config.spec.d.ts.map +0 -1
  263. package/dist/plugin/build-config.spec.js +0 -72
  264. package/dist/plugin/build-config.spec.js.map +0 -1
  265. package/dist/utils/asset-collection.spec.d.ts +0 -2
  266. package/dist/utils/asset-collection.spec.d.ts.map +0 -1
  267. package/dist/utils/asset-collection.spec.js +0 -155
  268. package/dist/utils/asset-collection.spec.js.map +0 -1
  269. package/dist/utils/build-detection.spec.d.ts +0 -2
  270. package/dist/utils/build-detection.spec.d.ts.map +0 -1
  271. package/dist/utils/build-detection.spec.js +0 -110
  272. package/dist/utils/build-detection.spec.js.map +0 -1
  273. package/dist/utils/config.spec.d.ts +0 -2
  274. package/dist/utils/config.spec.d.ts.map +0 -1
  275. package/dist/utils/config.spec.js +0 -167
  276. package/dist/utils/config.spec.js.map +0 -1
  277. package/dist/utils/download-template.spec.d.ts +0 -2
  278. package/dist/utils/download-template.spec.d.ts.map +0 -1
  279. package/dist/utils/download-template.spec.js +0 -76
  280. package/dist/utils/download-template.spec.js.map +0 -1
  281. package/dist/utils/env-management.spec.d.ts +0 -2
  282. package/dist/utils/env-management.spec.d.ts.map +0 -1
  283. package/dist/utils/env-management.spec.js +0 -123
  284. package/dist/utils/env-management.spec.js.map +0 -1
  285. package/dist/utils/git.spec.d.ts +0 -2
  286. package/dist/utils/git.spec.d.ts.map +0 -1
  287. package/dist/utils/git.spec.js +0 -99
  288. package/dist/utils/git.spec.js.map +0 -1
  289. package/dist/utils/lambda-config.spec.d.ts +0 -2
  290. package/dist/utils/lambda-config.spec.d.ts.map +0 -1
  291. package/dist/utils/lambda-config.spec.js +0 -141
  292. package/dist/utils/lambda-config.spec.js.map +0 -1
  293. package/dist/utils/payload-config-ast.spec.d.ts +0 -2
  294. package/dist/utils/payload-config-ast.spec.d.ts.map +0 -1
  295. package/dist/utils/payload-config-ast.spec.js +0 -303
  296. package/dist/utils/payload-config-ast.spec.js.map +0 -1
  297. package/dist/utils/payload-config-modifier.int.spec.d.ts +0 -2
  298. package/dist/utils/payload-config-modifier.int.spec.d.ts.map +0 -1
  299. package/dist/utils/payload-config-modifier.int.spec.js +0 -116
  300. package/dist/utils/payload-config-modifier.int.spec.js.map +0 -1
  301. package/dist/utils/payload-config-modifier.spec.d.ts +0 -2
  302. package/dist/utils/payload-config-modifier.spec.d.ts.map +0 -1
  303. package/dist/utils/payload-config-modifier.spec.js +0 -162
  304. package/dist/utils/payload-config-modifier.spec.js.map +0 -1
  305. package/dist/utils/payload-package-check.spec.d.ts +0 -2
  306. package/dist/utils/payload-package-check.spec.d.ts.map +0 -1
  307. package/dist/utils/payload-package-check.spec.js +0 -148
  308. package/dist/utils/payload-package-check.spec.js.map +0 -1
  309. package/dist/utils/project.spec.d.ts +0 -2
  310. package/dist/utils/project.spec.d.ts.map +0 -1
  311. package/dist/utils/project.spec.js +0 -222
  312. package/dist/utils/project.spec.js.map +0 -1
  313. package/dist/utils/s3-upload.spec.d.ts +0 -2
  314. package/dist/utils/s3-upload.spec.d.ts.map +0 -1
  315. package/dist/utils/s3-upload.spec.js +0 -140
  316. package/dist/utils/s3-upload.spec.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/db-adapter.ts"],"sourcesContent":["import type {\n BaseDatabaseAdapter,\n BeginTransaction,\n Collection,\n CollectionSlug,\n CommitTransaction,\n Config,\n Count,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateGlobal,\n CreateGlobalVersion,\n CreateVersion,\n DatabaseAdapterObj,\n DeleteMany,\n DeleteOne,\n DeleteVersions,\n Find,\n FindDistinct,\n FindGlobal,\n FindGlobalVersions,\n FindOne,\n FindVersions,\n FlattenedField,\n QueryDrafts,\n SanitizedConfig,\n SanitizedGlobalConfig,\n UpdateGlobal,\n UpdateGlobalVersion,\n UpdateMany,\n UpdateOne,\n UpdateVersion,\n Upsert,\n Where,\n} from 'payload'\n\nimport { randomUUID } from 'crypto'\nimport {\n buildVersionCollectionFields,\n buildVersionGlobalFields,\n combineQueries,\n createArrayFromCommaDelineated,\n createDatabaseAdapter,\n getFieldByPath,\n} from 'payload'\n// import { fieldShouldBeLocalized } from 'payload/shared'\n// import { db, uuid } from './db'\n\ninterface ContentAPIDatabaseAdapterOptions {\n contentApiKey: string\n contentApiUrl: string\n contentSystemId: string\n projectToken: string\n}\n\nexport type ContentAPIAdapter = {\n contentApiKey: string\n contentApiUrl: string\n contentSystemId: string\n projectToken: string\n request<T = any>(path: string, body?: any): Promise<T>\n} & BaseDatabaseAdapter\n\nconst slugIsGlobal = (slug: string) => slug.startsWith('_global-')\n\nconst getGlobalSlug = (slug: string) => `_global-${slug}`\n\n// Transform Payload Where format to Content API WhereClause format\nfunction transformWhereClause(where: undefined | Where): any {\n if (!where) {\n return undefined\n }\n\n // Handle and/or logical operators\n if (where.and) {\n return {\n and: where.and.map(transformWhereClause).filter(Boolean),\n }\n }\n\n if (where.or) {\n return {\n or: where.or.map(transformWhereClause).filter(Boolean),\n }\n }\n\n // Transform field conditions\n const transformedClauses: any[] = []\n\n for (const [field, condition] of Object.entries(where)) {\n if (field === 'and' || field === 'or') {\n continue\n }\n\n if (Array.isArray(condition)) {\n // Handle nested and/or arrays\n transformedClauses.push({\n [field]: condition.map(transformWhereClause).filter(Boolean),\n })\n } else if (typeof condition === 'object' && condition !== null) {\n // Handle field operators like { equals: 'value' }, { greater_than: 10 }\n for (const [operator, value] of Object.entries(condition)) {\n transformedClauses.push({\n operator: operator as any, // Map Payload operators to Content API operators\n path: field,\n value,\n })\n }\n } else {\n // Handle direct field values like { status: 'published' }\n transformedClauses.push({\n operator: 'equals',\n path: field,\n value: condition,\n })\n }\n }\n\n if (transformedClauses.length === 1) {\n return transformedClauses[0]\n } else if (transformedClauses.length > 1) {\n return {\n and: transformedClauses,\n }\n }\n\n return undefined\n}\n\nconst formatDocument = (doc: any) => {\n if (!doc) {\n return null\n }\n\n const { id, data, ...meta } = doc\n\n return {\n id,\n _meta: meta,\n ...data,\n }\n}\n\nasync function init(this: ContentAPIAdapter) {\n console.log('🔍 [DB_CONTENT_API] init() called')\n console.log('🔍 [DB_CONTENT_API] this:', this)\n console.log(\n '🔍 [DB_CONTENT_API] payload collections:',\n this.payload.config.collections.map((c) => c.slug),\n )\n\n // Create collections in content API\n for (const collection of this.payload.config.collections) {\n try {\n console.log(`🔧 [DB_CONTENT_API] Creating collection: ${collection.slug}`)\n const response = await this.request('/api/v0/collections', {\n contentSystemId: this.contentSystemId,\n key: collection.slug,\n })\n\n if (response.error) {\n console.error(\n `[DB_CONTENT_API] create collection ${collection.slug} failure`,\n response.error,\n )\n } else {\n console.log(`✅ [DB_CONTENT_API] Created collection: ${collection.slug}`)\n }\n } catch (error) {\n console.warn(`⚠️ [DB_CONTENT_API] Failed to create collection ${collection.slug}:`, error)\n }\n }\n\n // Create globals as collections (with _global- prefix)\n for (const global of this.payload.config.globals) {\n try {\n const globalKey = getGlobalSlug(global.slug)\n console.log(`🔧 [DB_CONTENT_API] Creating global collection: ${globalKey}`)\n const response = await this.request('/api/v0/collections', {\n contentSystemId: this.contentSystemId,\n key: globalKey,\n })\n\n if (response.error) {\n console.error(\n `[DB_CONTENT_API] create global collection ${globalKey} failure`,\n response.error,\n )\n } else {\n console.log(`✅ [DB_CONTENT_API] Created global collection: ${globalKey}`)\n }\n } catch (error) {\n console.warn(`⚠️ [DB_CONTENT_API] Failed to create global collection ${global.slug}:`, error)\n }\n }\n\n console.log(\n '🔍 [DB_CONTENT_API] payload globals:',\n this.payload.config.globals.map((g) => g.slug),\n )\n}\n\nconst find: Find = async function find(\n this: ContentAPIAdapter,\n { collection, limit, page = 1, req, sort, where, ...args },\n) {\n console.log(\n '🔍 [DB_CONTENT_API] find() called with:',\n collection,\n JSON.stringify(transformWhereClause(where), null, 2),\n { limit, page, sort, ...args },\n )\n\n try {\n const response = await this.request<any>('/api/v0/documents:find', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n limit,\n offset: (page - 1) * (limit || 10),\n sort: sort\n ? [sort].flat().map((s: any) => ({\n direction: Object.values(s)[0] === -1 ? 'dsc' : 'asc',\n path: Object.keys(s)[0],\n }))\n : undefined,\n where: transformWhereClause(where),\n })\n\n if (response.error) {\n console.error('[DB_CONTENT_API] find() failure', response.error?.message || response.error)\n }\n\n const docs = response.result?.data || []\n const pagination = response.result?.pagination\n const totalDocs = pagination?.total || docs.length\n const actualLimit = limit || 10\n const totalPages = Math.ceil(totalDocs / actualLimit)\n const hasNextPage = page < totalPages\n\n const result = {\n docs: docs.map(formatDocument),\n hasNextPage,\n hasPrevPage: page > 1,\n limit: actualLimit,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter: 1,\n prevPage: page > 1 ? page - 1 : null,\n totalDocs,\n totalPages,\n }\n console.log('[DB_CONTENT_API] find() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in find():`, error)\n const docs: any[] = []\n const hasNextPage = false\n const totalPages = 1\n\n return {\n docs,\n hasNextPage,\n hasPrevPage: page > 1,\n limit: limit || docs.length,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter: 1,\n prevPage: page > 1 ? page - 1 : null,\n totalDocs: docs.length,\n totalPages,\n }\n }\n}\n\nconst findVersions: FindVersions = async function findVersions(\n this: ContentAPIAdapter,\n { collection, limit, page = 1, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] findVersions() called with:', {\n collection,\n limit,\n page,\n where,\n ...args,\n })\n\n const docs: any[] = []\n const hasNextPage = false\n const result = {\n docs,\n hasNextPage,\n hasPrevPage: page > 1,\n limit: limit || docs.length,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter: 1,\n prevPage: page > 1 ? page - 1 : null,\n totalDocs: docs.length,\n totalPages: limit && docs.length ? Math.ceil(docs.length / limit) : 1,\n }\n console.log('[DB_CONTENT_API] findVersions() result:', result)\n return result\n}\n\nconst queryDrafts: QueryDrafts = async function queryDrafts(\n this: ContentAPIAdapter,\n { collection, limit, page = 1, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] queryDrafts() called with:', {\n collection,\n limit,\n page,\n where,\n ...args,\n })\n\n const docs: any[] = []\n const hasNextPage = false\n const result = {\n docs,\n hasNextPage,\n hasPrevPage: page > 1,\n limit: limit || docs.length,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter: 1,\n prevPage: page > 1 ? page - 1 : null,\n totalDocs: docs.length,\n totalPages: limit && docs.length ? Math.ceil(docs.length / limit) : 1,\n }\n console.log('[DB_CONTENT_API] queryDrafts() result:', result)\n return result\n}\n\nconst createVersion: CreateVersion = async function createVersion(\n this: ContentAPIAdapter,\n { collectionSlug, req, versionData, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] createVersion() called with:', {\n collectionSlug,\n versionData,\n ...args,\n })\n\n const result = {} as any\n console.log('[DB_CONTENT_API] createVersion() result:', result)\n return result\n}\n\nconst updateVersion: UpdateVersion = async function updateVersion(\n this: ContentAPIAdapter,\n { id, collection, req, versionData, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] updateVersion() called with:', {\n id,\n collection,\n versionData,\n ...args,\n })\n\n const result = {} as any\n console.log('[DB_CONTENT_API] updateVersion() result:', result)\n return result\n}\n\nconst deleteVersions: DeleteVersions = async function deleteVersions(\n this: ContentAPIAdapter,\n { collection, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] deleteVersions() called with:', { collection, where, ...args })\n\n const versionsToDelete: any[] = []\n const versionCollection = 'versions'\n\n console.log(\n `🗑️ [DB_CONTENT_API] Deleted ${versionsToDelete.length} versions from ${versionCollection}`,\n )\n\n // return versionsToDelete.length\n}\n\nconst findOne: FindOne = async function findOne(\n this: ContentAPIAdapter,\n { collection, req, where, ...args },\n) {\n console.log(\n '🔍 [DB_CONTENT_API] findOne() called with:',\n collection,\n JSON.stringify(transformWhereClause(where), null, 2),\n args,\n req?.body,\n )\n\n try {\n const response = await this.request<any>('/api/v0/documents:find', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n limit: 1,\n offset: 0,\n where: transformWhereClause(where),\n })\n\n if (response.error) {\n console.error('[DB_CONTENT_API] findOne() failure', response.error?.message || response.error)\n }\n\n const docs = response.result?.data || []\n const result = docs.length > 0 ? docs[0] : null\n console.log('[DB_CONTENT_API] findOne() result:', result)\n return formatDocument(result)\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in findOne():`, error)\n return null\n }\n}\n\nconst updateMany: UpdateMany = async function updateMany(\n this: ContentAPIAdapter,\n { collection, data, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] updateMany() called with:', { collection, data, where, ...args })\n try {\n const response = await this.request<any>('/api/v0/documents:update', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n data,\n where: transformWhereClause(where),\n })\n\n if (response.error) {\n console.error(\n '[DB_CONTENT_API] updateMany() failure',\n response.error?.message || response.error,\n )\n }\n\n // Return array of updated documents if available, otherwise return placeholder\n const result = response.result?.data || []\n console.log('[DB_CONTENT_API] updateMany() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in updateMany():`, error)\n return []\n }\n}\n\nconst updateOne: UpdateOne = async function updateOne(\n this: ContentAPIAdapter,\n { id, collection, data, req, where = {}, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] updateOne() called with:', {\n id,\n collection,\n data,\n where,\n ...args,\n })\n try {\n const whereClause = id\n ? { operator: 'equals', path: 'id', value: id }\n : transformWhereClause(where)\n const response = await this.request<any>('/api/v0/documents:update', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n data,\n returning: { exclude: [] },\n where: whereClause,\n })\n\n if (response.error) {\n console.error(\n '[DB_CONTENT_API] updateOne() failure',\n response.error?.message || response.error,\n )\n }\n\n const result = response.result?.data || { id, ...data }\n console.log('[DB_CONTENT_API] updateOne() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in updateOne():`, error)\n return { id, ...data }\n }\n}\n\nconst deleteMany: DeleteMany = async function deleteMany(\n this: ContentAPIAdapter,\n { collection, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] deleteMany() called with:', { collection, where, ...args })\n try {\n const response = await this.request<any>('/api/v0/documents:delete', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n returning: false,\n where: transformWhereClause(where),\n })\n\n if (response.error) {\n console.error(\n '[DB_CONTENT_API] deleteMany() failure',\n response.error?.message || response.error,\n )\n }\n\n const deletedCount = response.result?.count || 0\n console.log(`🗑️ [DB_CONTENT_API] Deleted ${deletedCount} documents from ${collection}`)\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in deleteMany():`, error)\n }\n}\n\nconst deleteOne: DeleteOne = async function deleteOne(\n this: ContentAPIAdapter,\n { collection, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] deleteOne() called with:', { collection, where, ...args })\n try {\n const response = await this.request<any>('/api/v0/documents:delete', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n returning: { exclude: [] },\n where: transformWhereClause(where),\n })\n\n if (response.error) {\n console.error(\n '[DB_CONTENT_API] deleteOne() failure',\n response.error?.message || response.error,\n )\n }\n\n const deletedDocs = response.result?.data || []\n const docId = deletedDocs.length > 0 ? deletedDocs[0].id : 'unknown'\n const result = deletedDocs.length > 0 ? deletedDocs[0] : {}\n\n console.log(`🗑️ [DB_CONTENT_API] Deleted document ${docId} from ${collection}`)\n console.log('[DB_CONTENT_API] deleteOne() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in deleteOne():`, error)\n return {}\n }\n}\n\nconst create: Create = async function create(\n this: ContentAPIAdapter,\n { collection, data, req, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] create() called with:', { collection, data, ...args })\n try {\n const randomKey = randomUUID()\n const response = await this.request<any>('/api/v0/documents:create', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n data,\n key: data.key || data.id || `doc-${randomKey}`,\n })\n\n if (response.error) {\n console.error('[DB_CONTENT_API] create() failure', response.error?.message || response.error)\n }\n\n const result = response.result?.data || response.result || { id: `doc-${randomKey}`, ...data }\n console.log('[DB_CONTENT_API] create() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in create():`, error)\n return { id: `doc-${randomUUID()}`, ...data }\n }\n}\n\nconst count: Count = async function count(\n this: ContentAPIAdapter,\n { collection, req, where = {}, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] count() called with:', { collection, where, ...args })\n try {\n const response = await this.request<any>('/api/v0/documents:count', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n where: transformWhereClause(where),\n })\n\n if (response.error) {\n console.error('[DB_CONTENT_API] count() failure', response.error?.message || response.error)\n }\n\n const result = { totalDocs: response.result?.count || 0 }\n console.log('[DB_CONTENT_API] count() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in count():`, error)\n return { totalDocs: 0 }\n }\n}\n\nconst countVersions: CountVersions = async function countVersions(\n this: ContentAPIAdapter,\n { collection, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] countVersions() called with:', { collection, where, ...args })\n\n const result = { totalDocs: 0 }\n console.log('[DB_CONTENT_API] countVersions() result:', result)\n return result\n}\n\nconst upsert: Upsert = async function upsert(\n this: ContentAPIAdapter,\n { collection, data, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] upsert() called with:', { collection, data, where, ...args })\n try {\n // Try to update first\n const updateResponse = await this.request<any>('/api/v0/documents:update', {\n collectionKey: collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: { documentKey: `upsert-${Date.now()}` },\n data,\n returning: { exclude: [] },\n where: transformWhereClause(where),\n })\n\n if (!updateResponse.success) {\n console.log('[DB_CONTENT_API] upsert() failure', updateResponse.error)\n }\n\n const result = updateResponse.result?.data || { ...data }\n console.log('[DB_CONTENT_API] upsert() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in upsert():`, error)\n return { ...data }\n }\n}\n\nconst createGlobal: CreateGlobal = async function createGlobal(\n this: ContentAPIAdapter,\n { slug, data, req, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] createGlobal() called with:', { slug, data, ...args })\n\n try {\n const globalKey = getGlobalSlug(slug)\n const response = await this.request<any>('/api/v0/documents:create', {\n collectionKey: globalKey,\n contentSystemId: this.contentSystemId,\n data,\n key: `global-${slug}`,\n })\n\n if (response.error) {\n console.error(\n '[DB_CONTENT_API] createGlobal() failure',\n response.error?.message || response.error,\n )\n }\n\n const result = response.result?.data || response.result || { id: `global-${slug}`, ...data }\n console.log('[DB_CONTENT_API] createGlobal() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in createGlobal():`, error)\n return { id: `global-${slug}`, ...data }\n }\n}\n\nconst findGlobal: FindGlobal = async function findGlobal(\n this: ContentAPIAdapter,\n { slug, req, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] findGlobal() called with:', { slug, ...args })\n\n try {\n const globalKey = getGlobalSlug(slug)\n const response = await this.request<any>('/api/v0/documents:find', {\n collectionKey: globalKey,\n contentSystemId: this.contentSystemId,\n limit: 1,\n offset: 0,\n })\n\n if (response.error) {\n console.error(\n '[DB_CONTENT_API] findGlobal() failure',\n response.error?.message || response.error,\n )\n }\n\n const docs = response.result?.data || []\n const result = docs.length > 0 ? docs[0] : null\n console.log('[DB_CONTENT_API] findGlobal() result:', result)\n return formatDocument(result)\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in findGlobal():`, error)\n return null\n }\n}\n\nconst findDistinct: FindDistinct = async function findDistinct(\n this: ContentAPIAdapter,\n { collection, field, limit, page = 1, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] findDistinct() called with:', {\n collection,\n field,\n limit,\n page,\n where,\n ...args,\n })\n\n const distinctValues: any[] = []\n const paginatedValues: any[] = []\n const endIndex = 0\n const totalDocs = 0\n\n console.log(\n `📊 [DB_CONTENT_API] findDistinct result: ${distinctValues.length} distinct values for ${field}`,\n )\n\n return {\n hasNextPage: limit ? endIndex < totalDocs : false,\n hasPrevPage: page > 1,\n limit: limit || totalDocs,\n nextPage: limit && endIndex < totalDocs ? page + 1 : null,\n page,\n pagingCounter: 1,\n prevPage: page > 1 ? page - 1 : null,\n totalDocs,\n totalPages: limit ? Math.ceil(totalDocs / limit) : 1,\n values: paginatedValues,\n }\n}\n\nconst updateGlobal: UpdateGlobal = async function updateGlobal(\n this: ContentAPIAdapter,\n { slug, data, req, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] updateGlobal() called with:', { slug, data, ...args })\n\n try {\n const globalKey = getGlobalSlug(slug)\n const response = await this.request<any>('/api/v0/documents:update', {\n collectionKey: globalKey,\n contentSystemId: this.contentSystemId,\n createOnMissing: { documentKey: `global-${slug}` },\n data,\n returning: { exclude: [] },\n where: { operator: 'equals', path: 'key', value: `global-${slug}` },\n })\n\n if (response.error) {\n console.error(\n '[DB_CONTENT_API] updateGlobal() failure',\n response.error?.message || response.error,\n )\n }\n\n const result = response.result?.data || { id: `global-${slug}`, ...data }\n console.log('[DB_CONTENT_API] updateGlobal() result:', result)\n return result\n } catch (error) {\n console.error(`❌ [DB_CONTENT_API] Error in updateGlobal():`, error)\n return { id: `global-${slug}`, ...data }\n }\n}\n\nconst findGlobalVersions: FindGlobalVersions = async function findGlobalVersions(\n this: ContentAPIAdapter,\n { limit, page = 1, req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] findGlobalVersions() called with:', {\n limit,\n page,\n where,\n ...args,\n })\n\n const docs: any[] = []\n const hasNextPage = false\n const result = {\n docs,\n hasNextPage,\n hasPrevPage: page > 1,\n limit: limit || docs.length,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter: 1,\n prevPage: page > 1 ? page - 1 : null,\n totalDocs: docs.length,\n totalPages: limit && docs.length ? Math.ceil(docs.length / limit) : 1,\n }\n console.log('[DB_CONTENT_API] findGlobalVersions() result:', result)\n return result\n}\n\nconst createGlobalVersion: CreateGlobalVersion = async function createGlobalVersion(\n this: ContentAPIAdapter,\n { req, versionData, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] createGlobalVersion() called with:', { versionData, ...args })\n\n const result = {} as any\n console.log('[DB_CONTENT_API] createGlobalVersion() result:', result)\n return result\n}\n\nconst updateGlobalVersion: UpdateGlobalVersion = async function updateGlobalVersion(\n this: ContentAPIAdapter,\n { id, req, versionData, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] updateGlobalVersion() called with:', {\n id,\n versionData,\n ...args,\n })\n\n const result = {} as any\n console.log('[DB_CONTENT_API] updateGlobalVersion() result:', result)\n return result\n}\n\nconst countGlobalVersions: CountGlobalVersions = async function countGlobalVersions(\n this: ContentAPIAdapter,\n { req, where, ...args },\n) {\n console.log('🔍 [DB_CONTENT_API] countGlobalVersions() called with:', { where, ...args })\n\n const totalDocs = 0\n const globalVersionsSlug = 'global-versions'\n\n console.log(\n `📊 [DB_CONTENT_API] countGlobalVersions result: ${totalDocs} versions in ${globalVersionsSlug}`,\n )\n\n const result = { totalDocs }\n console.log('[DB_CONTENT_API] countGlobalVersions() result:', result)\n return result\n}\n\nconst request = async function <T = any>(\n this: ContentAPIAdapter,\n path: string,\n body = {},\n): Promise<T> {\n console.log('🔍 [DB_CONTENT_API] request() called with:', { body, path })\n const res = await fetch(`${this.contentApiUrl}${path}`, {\n body: JSON.stringify({\n contentSystemId: this.contentSystemId,\n ...body,\n }),\n headers: {\n Authorization: `Bearer ${this.projectToken}`,\n 'Content-Type': 'application/json',\n 'X-Api-Key': this.contentApiKey,\n },\n method: 'POST',\n })\n\n return res.json() as T\n}\n\nconst beginTransaction: BeginTransaction = async function (options?: Record<string, any>) {\n console.log('🔍 [DB_CONTENT_API] beginTransaction() called', options)\n return null\n}\n\nconst commitTransaction: CommitTransaction = async function (\n id: number | Promise<number | string> | string,\n) {\n console.log('🔍 [DB_CONTENT_API] commitTransaction() called', id)\n}\n\nexport const contentAPIAdapter = (opts: ContentAPIDatabaseAdapterOptions): DatabaseAdapterObj => {\n return {\n name: 'content_api',\n defaultIDType: 'text',\n init: ({ payload }) => {\n return createDatabaseAdapter<ContentAPIAdapter>({\n name: 'content_api',\n beginTransaction,\n commitTransaction,\n contentApiKey: opts.contentApiKey,\n contentApiUrl: opts.contentApiUrl,\n contentSystemId: opts.contentSystemId,\n count,\n countGlobalVersions,\n countVersions,\n create,\n createGlobal,\n createGlobalVersion,\n createVersion,\n defaultIDType: 'text',\n deleteMany,\n deleteOne,\n deleteVersions,\n find,\n findDistinct,\n findGlobal,\n findGlobalVersions,\n findOne,\n findVersions,\n init,\n packageName: '@payloadcms/db-content-api',\n payload,\n projectToken: opts.projectToken,\n queryDrafts,\n request,\n rollbackTransaction: async () => {},\n updateGlobal,\n updateGlobalVersion,\n updateMany,\n updateOne,\n updateVersion,\n upsert,\n })\n },\n }\n}\n"],"names":["randomUUID","createDatabaseAdapter","slugIsGlobal","slug","startsWith","getGlobalSlug","transformWhereClause","where","undefined","and","map","filter","Boolean","or","transformedClauses","field","condition","Object","entries","Array","isArray","push","operator","value","path","length","formatDocument","doc","id","data","meta","_meta","init","console","log","payload","config","collections","c","collection","response","request","contentSystemId","key","error","warn","global","globals","globalKey","g","find","limit","page","req","sort","args","JSON","stringify","collectionKey","offset","flat","s","direction","values","keys","message","docs","result","pagination","totalDocs","total","actualLimit","totalPages","Math","ceil","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","findVersions","queryDrafts","createVersion","collectionSlug","versionData","updateVersion","deleteVersions","versionsToDelete","versionCollection","findOne","body","updateMany","createOnMissing","updateOne","whereClause","returning","exclude","deleteMany","deletedCount","count","deleteOne","deletedDocs","docId","create","randomKey","countVersions","upsert","updateResponse","documentKey","Date","now","success","createGlobal","findGlobal","findDistinct","distinctValues","paginatedValues","endIndex","updateGlobal","findGlobalVersions","createGlobalVersion","updateGlobalVersion","countGlobalVersions","globalVersionsSlug","res","fetch","contentApiUrl","headers","Authorization","projectToken","contentApiKey","method","json","beginTransaction","options","commitTransaction","contentAPIAdapter","opts","name","defaultIDType","packageName","rollbackTransaction"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Endpoint } from 'payload';
2
+ export declare const health: Endpoint;
3
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/endpoints/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,eAAO,MAAM,MAAM,EAAE,QAMpB,CAAA"}
@@ -0,0 +1,11 @@
1
+ export const health = {
2
+ handler: ()=>{
3
+ return Response.json({
4
+ status: 200
5
+ });
6
+ },
7
+ method: 'get',
8
+ path: '/health'
9
+ };
10
+
11
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/endpoints/health.ts"],"sourcesContent":["import type { Endpoint } from 'payload'\n\nexport const health: Endpoint = {\n handler: () => {\n return Response.json({ status: 200 })\n },\n method: 'get',\n path: '/health',\n}\n"],"names":["health","handler","Response","json","status","method","path"],"mappings":"AAEA,OAAO,MAAMA,SAAmB;IAC9BC,SAAS;QACP,OAAOC,SAASC,IAAI,CAAC;YAAEC,QAAQ;QAAI;IACrC;IACAC,QAAQ;IACRC,MAAM;AACR,EAAC"}
@@ -0,0 +1,3 @@
1
+ export { DefaultLoginButton } from '../oauth/components/LoginButton/index.js';
2
+ export { LogoutButton } from '../oauth/components/LogoutButton/index.js';
3
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { DefaultLoginButton } from '../oauth/components/LoginButton/index.js';
2
+ export { LogoutButton } from '../oauth/components/LogoutButton/index.js';
3
+
4
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export { DefaultLoginButton } from '../oauth/components/LoginButton/index.js'\nexport { LogoutButton } from '../oauth/components/LogoutButton/index.js'\n"],"names":["DefaultLoginButton","LogoutButton"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,2CAA0C;AAC7E,SAASC,YAAY,QAAQ,4CAA2C"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ type DefaultLoginButtonProps = {
4
+ disabled?: boolean;
5
+ endpointSlug: string;
6
+ };
7
+ export declare const DefaultLoginButton: React.FC<DefaultLoginButtonProps>;
8
+ export {};
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/oauth/components/LoginButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,cAAc,CAAA;AAIrB,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAoDhE,CAAA"}
@@ -0,0 +1,52 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Button, useConfig } from '@payloadcms/ui';
4
+ import { useSearchParams } from 'next/navigation.js';
5
+ import React, { useEffect, useState } from 'react';
6
+ import './index.scss';
7
+ const baseClass = 'oauth-login';
8
+ export const DefaultLoginButton = ({ disabled, endpointSlug })=>{
9
+ const { config: { admin: { user: userSlug }, routes: { api }, serverURL } } = useConfig();
10
+ const [authorizeURL, setAuthorizeURL] = useState('');
11
+ const searchParams = useSearchParams();
12
+ const payloadRedirect = searchParams.get('redirect');
13
+ useEffect(()=>{
14
+ if (payloadRedirect && !disabled) {
15
+ // set cookie to redirect to the original page
16
+ document.cookie = `payloadRedirect=${payloadRedirect}; path=/`;
17
+ }
18
+ }, [
19
+ payloadRedirect,
20
+ disabled
21
+ ]);
22
+ useEffect(()=>{
23
+ const getAuthorizeURL = async ()=>{
24
+ const serverURLFromWindow = window.location.origin;
25
+ const data = await fetch(`${serverURL}${api}/${userSlug}/${endpointSlug}/meta?serverURL=${serverURLFromWindow}`).then((res)=>res.json());
26
+ if (!disabled) {
27
+ setAuthorizeURL(data.authorizeURL);
28
+ }
29
+ };
30
+ void getAuthorizeURL();
31
+ }, [
32
+ api,
33
+ serverURL,
34
+ userSlug,
35
+ disabled,
36
+ endpointSlug
37
+ ]);
38
+ if (disabled) {
39
+ return null;
40
+ }
41
+ return /*#__PURE__*/ _jsx("div", {
42
+ className: baseClass,
43
+ children: /*#__PURE__*/ _jsx(Button, {
44
+ className: `${baseClass}__btn`,
45
+ el: "anchor",
46
+ url: authorizeURL,
47
+ children: "Log in"
48
+ })
49
+ });
50
+ };
51
+
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/oauth/components/LoginButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { Button, useConfig } from '@payloadcms/ui'\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { useEffect, useState } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'oauth-login'\n\ntype DefaultLoginButtonProps = {\n disabled?: boolean\n endpointSlug: string\n}\n\nexport const DefaultLoginButton: React.FC<DefaultLoginButtonProps> = ({\n disabled,\n endpointSlug,\n}: {\n disabled?: boolean\n endpointSlug: string\n}) => {\n const {\n config: {\n admin: { user: userSlug },\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const [authorizeURL, setAuthorizeURL] = useState('')\n\n const searchParams = useSearchParams()\n const payloadRedirect = searchParams.get('redirect')\n\n useEffect(() => {\n if (payloadRedirect && !disabled) {\n // set cookie to redirect to the original page\n document.cookie = `payloadRedirect=${payloadRedirect}; path=/`\n }\n }, [payloadRedirect, disabled])\n\n useEffect(() => {\n const getAuthorizeURL = async () => {\n const serverURLFromWindow = window.location.origin\n const data = await fetch(\n `${serverURL}${api}/${userSlug}/${endpointSlug}/meta?serverURL=${serverURLFromWindow}`,\n ).then((res) => res.json())\n\n if (!disabled) {\n setAuthorizeURL(data.authorizeURL)\n }\n }\n\n void getAuthorizeURL()\n }, [api, serverURL, userSlug, disabled, endpointSlug])\n\n if (disabled) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <Button className={`${baseClass}__btn`} el=\"anchor\" url={authorizeURL}>\n Log in\n </Button>\n </div>\n )\n}\n"],"names":["Button","useConfig","useSearchParams","React","useEffect","useState","baseClass","DefaultLoginButton","disabled","endpointSlug","config","admin","user","userSlug","routes","api","serverURL","authorizeURL","setAuthorizeURL","searchParams","payloadRedirect","get","document","cookie","getAuthorizeURL","serverURLFromWindow","window","location","origin","data","fetch","then","res","json","div","className","el","url"],"mappings":"AAAA;;AAEA,SAASA,MAAM,EAAEC,SAAS,QAAQ,iBAAgB;AAClD,SAASC,eAAe,QAAQ,qBAAoB;AACpD,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAOlB,OAAO,MAAMC,qBAAwD,CAAC,EACpEC,QAAQ,EACRC,YAAY,EAIb;IACC,MAAM,EACJC,QAAQ,EACNC,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EACzBC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,EACF,GAAGf;IACJ,MAAM,CAACgB,cAAcC,gBAAgB,GAAGb,SAAS;IAEjD,MAAMc,eAAejB;IACrB,MAAMkB,kBAAkBD,aAAaE,GAAG,CAAC;IAEzCjB,UAAU;QACR,IAAIgB,mBAAmB,CAACZ,UAAU;YAChC,8CAA8C;YAC9Cc,SAASC,MAAM,GAAG,CAAC,gBAAgB,EAAEH,gBAAgB,QAAQ,CAAC;QAChE;IACF,GAAG;QAACA;QAAiBZ;KAAS;IAE9BJ,UAAU;QACR,MAAMoB,kBAAkB;YACtB,MAAMC,sBAAsBC,OAAOC,QAAQ,CAACC,MAAM;YAClD,MAAMC,OAAO,MAAMC,MACjB,GAAGd,YAAYD,IAAI,CAAC,EAAEF,SAAS,CAAC,EAAEJ,aAAa,gBAAgB,EAAEgB,qBAAqB,EACtFM,IAAI,CAAC,CAACC,MAAQA,IAAIC,IAAI;YAExB,IAAI,CAACzB,UAAU;gBACbU,gBAAgBW,KAAKZ,YAAY;YACnC;QACF;QAEA,KAAKO;IACP,GAAG;QAACT;QAAKC;QAAWH;QAAUL;QAAUC;KAAa;IAErD,IAAID,UAAU;QACZ,OAAO;IACT;IAEA,qBACE,KAAC0B;QAAIC,WAAW7B;kBACd,cAAA,KAACN;YAAOmC,WAAW,GAAG7B,UAAU,KAAK,CAAC;YAAE8B,IAAG;YAASC,KAAKpB;sBAAc;;;AAK7E,EAAC"}
@@ -0,0 +1,10 @@
1
+ .oauth-login {
2
+ display: flex;
3
+ justify-content: center;
4
+
5
+ &__btn:focus {
6
+ .btn__icon {
7
+ background: none;
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export declare const LogoutButton: React.FC<{
4
+ disabled?: boolean;
5
+ endpointSlug: string;
6
+ }>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/oauth/components/LogoutButton/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA2D/E,CAAA"}
@@ -0,0 +1,67 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Logout, useConfig } from '@payloadcms/ui';
4
+ import React from 'react';
5
+ import { getAdminPath } from '../../utilities/getAdminPath.js';
6
+ import './index.scss';
7
+ const baseClass = 'oauth-logout';
8
+ export const LogoutButton = ({ disabled, endpointSlug })=>{
9
+ const { config, config: { admin: { user: userSlug }, routes: { api }, serverURL } } = useConfig();
10
+ const [redirect, setRedirect] = React.useState('');
11
+ React.useEffect(()=>{
12
+ const protocol = window.location.protocol;
13
+ const domain = window.location.hostname;
14
+ const port = window.location.port;
15
+ let redirectToSet = `${protocol}//${domain}`;
16
+ if (port) {
17
+ redirectToSet += `:${port}`;
18
+ }
19
+ redirectToSet += getAdminPath(config);
20
+ // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
21
+ setRedirect(redirectToSet);
22
+ }, [
23
+ config
24
+ ]);
25
+ if (!redirect) {
26
+ return null;
27
+ }
28
+ if (disabled) {
29
+ return /*#__PURE__*/ _jsx(Logout, {});
30
+ }
31
+ return /*#__PURE__*/ _jsx("div", {
32
+ className: baseClass,
33
+ children: /*#__PURE__*/ _jsx("a", {
34
+ "aria-label": "Logout",
35
+ href: `${serverURL}${api}/${userSlug}/${endpointSlug}/logout?redirect=${redirect}`,
36
+ children: /*#__PURE__*/ _jsxs("svg", {
37
+ className: "icon icon--logout",
38
+ fill: "none",
39
+ viewBox: "0 0 25 25",
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ children: [
42
+ /*#__PURE__*/ _jsx("path", {
43
+ className: "stroke",
44
+ d: "M10 5H18V19H10"
45
+ }),
46
+ /*#__PURE__*/ _jsxs("g", {
47
+ children: [
48
+ /*#__PURE__*/ _jsx("path", {
49
+ className: "stroke",
50
+ d: "M8 8.5L4.46447 12.0355L8 15.5711"
51
+ }),
52
+ /*#__PURE__*/ _jsx("line", {
53
+ className: "stroke",
54
+ x1: "5",
55
+ x2: "13",
56
+ y1: "12",
57
+ y2: "12"
58
+ })
59
+ ]
60
+ })
61
+ ]
62
+ })
63
+ })
64
+ });
65
+ };
66
+
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/oauth/components/LogoutButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { Logout, useConfig } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { getAdminPath } from '../../utilities/getAdminPath.js'\nimport './index.scss'\n\nconst baseClass = 'oauth-logout'\n\nexport const LogoutButton: React.FC<{ disabled?: boolean; endpointSlug: string }> = ({\n disabled,\n endpointSlug,\n}) => {\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const [redirect, setRedirect] = React.useState('')\n React.useEffect(() => {\n const protocol = window.location.protocol\n const domain = window.location.hostname\n const port = window.location.port\n\n let redirectToSet = `${protocol}//${domain}`\n if (port) {\n redirectToSet += `:${port}`\n }\n\n redirectToSet += getAdminPath(config)\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setRedirect(redirectToSet)\n }, [config])\n\n if (!redirect) {\n return null\n }\n\n if (disabled) {\n return <Logout />\n }\n\n return (\n <div className={baseClass}>\n <a\n aria-label=\"Logout\"\n href={`${serverURL}${api}/${userSlug}/${endpointSlug}/logout?redirect=${redirect}`}\n >\n <svg\n className=\"icon icon--logout\"\n fill=\"none\"\n viewBox=\"0 0 25 25\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path className=\"stroke\" d=\"M10 5H18V19H10\" />\n <g>\n <path className=\"stroke\" d=\"M8 8.5L4.46447 12.0355L8 15.5711\" />\n <line className=\"stroke\" x1=\"5\" x2=\"13\" y1=\"12\" y2=\"12\" />\n </g>\n </svg>\n </a>\n </div>\n )\n}\n"],"names":["Logout","useConfig","React","getAdminPath","baseClass","LogoutButton","disabled","endpointSlug","config","admin","user","userSlug","routes","api","serverURL","redirect","setRedirect","useState","useEffect","protocol","window","location","domain","hostname","port","redirectToSet","div","className","a","aria-label","href","svg","fill","viewBox","xmlns","path","d","g","line","x1","x2","y1","y2"],"mappings":"AAAA;;AAEA,SAASA,MAAM,EAAEC,SAAS,QAAQ,iBAAgB;AAClD,OAAOC,WAAW,QAAO;AAEzB,SAASC,YAAY,QAAQ,kCAAiC;AAC9D,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,eAAuE,CAAC,EACnFC,QAAQ,EACRC,YAAY,EACb;IACC,MAAM,EACJC,MAAM,EACNA,QAAQ,EACNC,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EACzBC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,EACF,GAAGb;IAEJ,MAAM,CAACc,UAAUC,YAAY,GAAGd,MAAMe,QAAQ,CAAC;IAC/Cf,MAAMgB,SAAS,CAAC;QACd,MAAMC,WAAWC,OAAOC,QAAQ,CAACF,QAAQ;QACzC,MAAMG,SAASF,OAAOC,QAAQ,CAACE,QAAQ;QACvC,MAAMC,OAAOJ,OAAOC,QAAQ,CAACG,IAAI;QAEjC,IAAIC,gBAAgB,GAAGN,SAAS,EAAE,EAAEG,QAAQ;QAC5C,IAAIE,MAAM;YACRC,iBAAiB,CAAC,CAAC,EAAED,MAAM;QAC7B;QAEAC,iBAAiBtB,aAAaK;QAE9B,uFAAuF;QACvFQ,YAAYS;IACd,GAAG;QAACjB;KAAO;IAEX,IAAI,CAACO,UAAU;QACb,OAAO;IACT;IAEA,IAAIT,UAAU;QACZ,qBAAO,KAACN;IACV;IAEA,qBACE,KAAC0B;QAAIC,WAAWvB;kBACd,cAAA,KAACwB;YACCC,cAAW;YACXC,MAAM,GAAGhB,YAAYD,IAAI,CAAC,EAAEF,SAAS,CAAC,EAAEJ,aAAa,iBAAiB,EAAEQ,UAAU;sBAElF,cAAA,MAACgB;gBACCJ,WAAU;gBACVK,MAAK;gBACLC,SAAQ;gBACRC,OAAM;;kCAEN,KAACC;wBAAKR,WAAU;wBAASS,GAAE;;kCAC3B,MAACC;;0CACC,KAACF;gCAAKR,WAAU;gCAASS,GAAE;;0CAC3B,KAACE;gCAAKX,WAAU;gCAASY,IAAG;gCAAIC,IAAG;gCAAKC,IAAG;gCAAKC,IAAG;;;;;;;;AAM/D,EAAC"}
@@ -0,0 +1,10 @@
1
+ .oauth-logout {
2
+ display: flex;
3
+ justify-content: center;
4
+
5
+ &__btn:focus {
6
+ .btn__icon {
7
+ background: none;
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ import type { CollectionConfig, EmailField, TextField } from 'payload';
2
+ import type { VerifyFunction } from './types.js';
3
+ export declare const defaultScope: string[];
4
+ export declare const defaultUsernameField: TextField;
5
+ export declare const defaultVerify: ({ collection, strategyName, usernameField, }: {
6
+ collection: CollectionConfig;
7
+ strategyName: string;
8
+ usernameField: EmailField | TextField;
9
+ }) => VerifyFunction;
10
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/oauth/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAQ,MAAM,SAAS,CAAA;AAI5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,YAAY,UAAiC,CAAA;AAE1D,eAAO,MAAM,oBAAoB,EAAE,SAQlC,CAAA;AAED,eAAO,MAAM,aAAa,iDAKrB;IACD,UAAU,EAAE,gBAAgB,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,UAAU,GAAG,SAAS,CAAA;CACtC,KAAG,cAiFH,CAAA"}
@@ -0,0 +1,91 @@
1
+ import { v4 as uuid } from 'uuid';
2
+ import { hasUserTokenPropsChanged } from './utilities/hasUserTokenPropsChanged.js';
3
+ export const defaultScope = [
4
+ 'openid',
5
+ 'profile',
6
+ 'email'
7
+ ];
8
+ export const defaultUsernameField = {
9
+ name: 'preferredUsername',
10
+ type: 'text',
11
+ admin: {
12
+ position: 'sidebar',
13
+ readOnly: true
14
+ },
15
+ unique: true
16
+ };
17
+ export const defaultVerify = ({ collection, strategyName, usernameField })=>async ({ payload, token })=>{
18
+ let tokenUsername = 'preferred_username';
19
+ if (usernameField.name !== 'preferredUsername') {
20
+ tokenUsername = usernameField.name;
21
+ }
22
+ if (!token[tokenUsername]) {
23
+ return {
24
+ user: null
25
+ };
26
+ }
27
+ let user = null;
28
+ const depth = typeof collection.auth === 'object' ? collection.auth.depth : undefined;
29
+ try {
30
+ const results = await payload.find({
31
+ collection: collection.slug,
32
+ depth,
33
+ limit: 1,
34
+ pagination: false,
35
+ where: {
36
+ [usernameField.name]: {
37
+ equals: token[tokenUsername]
38
+ }
39
+ }
40
+ });
41
+ if (results.docs.length > 0) {
42
+ user = results.docs[0];
43
+ // Update user with new token data
44
+ if (hasUserTokenPropsChanged(user, token)) {
45
+ user = await payload.update({
46
+ id: user.id,
47
+ collection: collection.slug,
48
+ data: {
49
+ ...token
50
+ },
51
+ depth
52
+ });
53
+ }
54
+ } else {
55
+ const newUser = {
56
+ email: token.preferredUsername || token.email,
57
+ [usernameField.name]: token[tokenUsername],
58
+ ...token
59
+ };
60
+ if (typeof collection.auth === 'object' && !collection.auth.disableLocalStrategy) {
61
+ newUser.password = uuid();
62
+ }
63
+ user = await payload.create({
64
+ collection: collection.slug,
65
+ data: newUser,
66
+ depth
67
+ });
68
+ }
69
+ } catch (err) {
70
+ payload.logger.error({
71
+ err,
72
+ msg: 'Error verifying user from defaultVerify.'
73
+ });
74
+ return {
75
+ user: null
76
+ };
77
+ }
78
+ if (user) {
79
+ user.collection = collection.slug;
80
+ user._strategy = strategyName;
81
+ user.exp = token.exp;
82
+ return {
83
+ user
84
+ };
85
+ }
86
+ return {
87
+ user: null
88
+ };
89
+ };
90
+
91
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/oauth/defaults.ts"],"sourcesContent":["import type { CollectionConfig, EmailField, TextField, User } from 'payload'\n\nimport { v4 as uuid } from 'uuid'\n\nimport type { VerifyFunction } from './types.js'\n\nimport { hasUserTokenPropsChanged } from './utilities/hasUserTokenPropsChanged.js'\n\nexport const defaultScope = ['openid', 'profile', 'email']\n\nexport const defaultUsernameField: TextField = {\n name: 'preferredUsername',\n type: 'text',\n admin: {\n position: 'sidebar',\n readOnly: true,\n },\n unique: true,\n}\n\nexport const defaultVerify =\n ({\n collection,\n strategyName,\n usernameField,\n }: {\n collection: CollectionConfig\n strategyName: string\n usernameField: EmailField | TextField\n }): VerifyFunction =>\n async ({ payload, token }) => {\n let tokenUsername = 'preferred_username'\n\n if (usernameField.name !== 'preferredUsername') {\n tokenUsername = usernameField.name\n }\n\n if (!token[tokenUsername]) {\n return {\n user: null,\n }\n }\n\n let user: null | User = null\n const depth = typeof collection.auth === 'object' ? collection.auth.depth : undefined\n\n try {\n const results = await payload.find({\n collection: collection.slug,\n depth,\n limit: 1,\n pagination: false,\n where: {\n [usernameField.name]: { equals: token[tokenUsername] },\n },\n })\n\n if (results.docs.length > 0) {\n user = results.docs[0] as User\n // Update user with new token data\n if (hasUserTokenPropsChanged(user, token)) {\n user = (await payload.update({\n id: user.id,\n collection: collection.slug,\n data: {\n ...token,\n },\n depth,\n })) as User\n }\n } else {\n const newUser = {\n email: token.preferredUsername || token.email,\n [usernameField.name]: token[tokenUsername],\n ...token,\n }\n\n if (typeof collection.auth === 'object' && !collection.auth.disableLocalStrategy) {\n newUser.password = uuid()\n }\n\n user = (await payload.create({\n collection: collection.slug,\n data: newUser,\n depth,\n })) as User\n }\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: 'Error verifying user from defaultVerify.',\n })\n return {\n user: null,\n }\n }\n\n if (user) {\n user.collection = collection.slug\n user._strategy = strategyName\n user.exp = token.exp\n\n return {\n user,\n }\n }\n\n return {\n user: null,\n }\n }\n"],"names":["v4","uuid","hasUserTokenPropsChanged","defaultScope","defaultUsernameField","name","type","admin","position","readOnly","unique","defaultVerify","collection","strategyName","usernameField","payload","token","tokenUsername","user","depth","auth","undefined","results","find","slug","limit","pagination","where","equals","docs","length","update","id","data","newUser","email","preferredUsername","disableLocalStrategy","password","create","err","logger","error","msg","_strategy","exp"],"mappings":"AAEA,SAASA,MAAMC,IAAI,QAAQ,OAAM;AAIjC,SAASC,wBAAwB,QAAQ,0CAAyC;AAElF,OAAO,MAAMC,eAAe;IAAC;IAAU;IAAW;CAAQ,CAAA;AAE1D,OAAO,MAAMC,uBAAkC;IAC7CC,MAAM;IACNC,MAAM;IACNC,OAAO;QACLC,UAAU;QACVC,UAAU;IACZ;IACAC,QAAQ;AACV,EAAC;AAED,OAAO,MAAMC,gBACX,CAAC,EACCC,UAAU,EACVC,YAAY,EACZC,aAAa,EAKd,GACD,OAAO,EAAEC,OAAO,EAAEC,KAAK,EAAE;QACvB,IAAIC,gBAAgB;QAEpB,IAAIH,cAAcT,IAAI,KAAK,qBAAqB;YAC9CY,gBAAgBH,cAAcT,IAAI;QACpC;QAEA,IAAI,CAACW,KAAK,CAACC,cAAc,EAAE;YACzB,OAAO;gBACLC,MAAM;YACR;QACF;QAEA,IAAIA,OAAoB;QACxB,MAAMC,QAAQ,OAAOP,WAAWQ,IAAI,KAAK,WAAWR,WAAWQ,IAAI,CAACD,KAAK,GAAGE;QAE5E,IAAI;YACF,MAAMC,UAAU,MAAMP,QAAQQ,IAAI,CAAC;gBACjCX,YAAYA,WAAWY,IAAI;gBAC3BL;gBACAM,OAAO;gBACPC,YAAY;gBACZC,OAAO;oBACL,CAACb,cAAcT,IAAI,CAAC,EAAE;wBAAEuB,QAAQZ,KAAK,CAACC,cAAc;oBAAC;gBACvD;YACF;YAEA,IAAIK,QAAQO,IAAI,CAACC,MAAM,GAAG,GAAG;gBAC3BZ,OAAOI,QAAQO,IAAI,CAAC,EAAE;gBACtB,kCAAkC;gBAClC,IAAI3B,yBAAyBgB,MAAMF,QAAQ;oBACzCE,OAAQ,MAAMH,QAAQgB,MAAM,CAAC;wBAC3BC,IAAId,KAAKc,EAAE;wBACXpB,YAAYA,WAAWY,IAAI;wBAC3BS,MAAM;4BACJ,GAAGjB,KAAK;wBACV;wBACAG;oBACF;gBACF;YACF,OAAO;gBACL,MAAMe,UAAU;oBACdC,OAAOnB,MAAMoB,iBAAiB,IAAIpB,MAAMmB,KAAK;oBAC7C,CAACrB,cAAcT,IAAI,CAAC,EAAEW,KAAK,CAACC,cAAc;oBAC1C,GAAGD,KAAK;gBACV;gBAEA,IAAI,OAAOJ,WAAWQ,IAAI,KAAK,YAAY,CAACR,WAAWQ,IAAI,CAACiB,oBAAoB,EAAE;oBAChFH,QAAQI,QAAQ,GAAGrC;gBACrB;gBAEAiB,OAAQ,MAAMH,QAAQwB,MAAM,CAAC;oBAC3B3B,YAAYA,WAAWY,IAAI;oBAC3BS,MAAMC;oBACNf;gBACF;YACF;QACF,EAAE,OAAOqB,KAAc;YACrBzB,QAAQ0B,MAAM,CAACC,KAAK,CAAC;gBACnBF;gBACAG,KAAK;YACP;YACA,OAAO;gBACLzB,MAAM;YACR;QACF;QAEA,IAAIA,MAAM;YACRA,KAAKN,UAAU,GAAGA,WAAWY,IAAI;YACjCN,KAAK0B,SAAS,GAAG/B;YACjBK,KAAK2B,GAAG,GAAG7B,MAAM6B,GAAG;YAEpB,OAAO;gBACL3B;YACF;QACF;QAEA,OAAO;YACLA,MAAM;QACR;IACF,EAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CollectionConfig, Endpoint } from 'payload';
2
+ import type { Strategy } from '../strategy/index.js';
3
+ import type { CollectionOptions, PluginOptions } from '../types.js';
4
+ interface Args {
5
+ collection: CollectionConfig;
6
+ collectionOptions: CollectionOptions;
7
+ endpointSlug: string;
8
+ pluginOptions: PluginOptions;
9
+ strategy: Strategy;
10
+ }
11
+ export declare const getLoginEndpoint: ({ collection, collectionOptions, endpointSlug, pluginOptions, strategy, }: Args) => Endpoint;
12
+ export {};
13
+ //# sourceMappingURL=getLoginEndpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLoginEndpoint.d.ts","sourceRoot":"","sources":["../../../src/oauth/endpoints/getLoginEndpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAMzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAEV,iBAAiB,EACjB,aAAa,EAEd,MAAM,aAAa,CAAA;AAcpB,UAAU,IAAI;IACZ,UAAU,EAAE,gBAAgB,CAAA;IAC5B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAID,eAAO,MAAM,gBAAgB,8EAM1B,IAAI,KAAG,QAkPR,CAAA"}