payload 4.0.0-internal.e7d4ebc → 4.0.0-internal.f05c47f

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 (456) hide show
  1. package/dist/admin/RichText.d.ts +1 -1
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/admin/adapters/devReload.d.ts +13 -0
  5. package/dist/admin/adapters/devReload.d.ts.map +1 -1
  6. package/dist/admin/adapters/devReload.js +14 -1
  7. package/dist/admin/adapters/devReload.js.map +1 -1
  8. package/dist/admin/functions/index.d.ts +10 -1
  9. package/dist/admin/functions/index.d.ts.map +1 -1
  10. package/dist/admin/functions/index.js.map +1 -1
  11. package/dist/admin/types.d.ts +1 -1
  12. package/dist/admin/types.d.ts.map +1 -1
  13. package/dist/admin/types.js.map +1 -1
  14. package/dist/admin/views/index.d.ts +1 -1
  15. package/dist/admin/views/index.d.ts.map +1 -1
  16. package/dist/admin/views/index.js.map +1 -1
  17. package/dist/auth/endpoints/login.d.ts.map +1 -1
  18. package/dist/auth/endpoints/login.js +2 -11
  19. package/dist/auth/endpoints/login.js.map +1 -1
  20. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  21. package/dist/auth/endpoints/refresh.js +4 -6
  22. package/dist/auth/endpoints/refresh.js.map +1 -1
  23. package/dist/auth/executeAccess.d.ts +1 -1
  24. package/dist/auth/executeAccess.d.ts.map +1 -1
  25. package/dist/auth/executeAccess.js.map +1 -1
  26. package/dist/auth/getLoginOptions.js.map +1 -1
  27. package/dist/auth/loginWithCookie.d.ts +33 -0
  28. package/dist/auth/loginWithCookie.d.ts.map +1 -0
  29. package/dist/auth/loginWithCookie.js +34 -0
  30. package/dist/auth/loginWithCookie.js.map +1 -0
  31. package/dist/auth/operations/me.d.ts +0 -7
  32. package/dist/auth/operations/me.d.ts.map +1 -1
  33. package/dist/auth/operations/me.js +0 -6
  34. package/dist/auth/operations/me.js.map +1 -1
  35. package/dist/auth/operations/refresh.d.ts +0 -7
  36. package/dist/auth/operations/refresh.d.ts.map +1 -1
  37. package/dist/auth/operations/refresh.js +0 -6
  38. package/dist/auth/operations/refresh.js.map +1 -1
  39. package/dist/auth/serverFunctions/cookies.d.ts +47 -0
  40. package/dist/auth/serverFunctions/cookies.d.ts.map +1 -0
  41. package/dist/auth/serverFunctions/cookies.js +52 -0
  42. package/dist/auth/serverFunctions/cookies.js.map +1 -0
  43. package/dist/auth/serverFunctions/login.d.ts +29 -0
  44. package/dist/auth/serverFunctions/login.d.ts.map +1 -0
  45. package/dist/auth/serverFunctions/login.js +63 -0
  46. package/dist/auth/serverFunctions/login.js.map +1 -0
  47. package/dist/auth/serverFunctions/logout.d.ts +17 -0
  48. package/dist/auth/serverFunctions/logout.d.ts.map +1 -0
  49. package/dist/auth/serverFunctions/logout.js +58 -0
  50. package/dist/auth/serverFunctions/logout.js.map +1 -0
  51. package/dist/auth/serverFunctions/refresh.d.ts +17 -0
  52. package/dist/auth/serverFunctions/refresh.d.ts.map +1 -0
  53. package/dist/auth/serverFunctions/refresh.js +61 -0
  54. package/dist/auth/serverFunctions/refresh.js.map +1 -0
  55. package/dist/auth/types.d.ts +9 -14
  56. package/dist/auth/types.d.ts.map +1 -1
  57. package/dist/auth/types.js.map +1 -1
  58. package/dist/branching/appendBranchFilter.d.ts +28 -0
  59. package/dist/branching/appendBranchFilter.d.ts.map +1 -0
  60. package/dist/branching/appendBranchFilter.js +84 -0
  61. package/dist/branching/appendBranchFilter.js.map +1 -0
  62. package/dist/branching/appendBranchFilter.spec.js +166 -0
  63. package/dist/branching/appendBranchFilter.spec.js.map +1 -0
  64. package/dist/branching/branchIDs.d.ts +34 -0
  65. package/dist/branching/branchIDs.d.ts.map +1 -0
  66. package/dist/branching/branchIDs.js +87 -0
  67. package/dist/branching/branchIDs.js.map +1 -0
  68. package/dist/branching/branchIDs.spec.js +167 -0
  69. package/dist/branching/branchIDs.spec.js.map +1 -0
  70. package/dist/branching/collections.d.ts +6 -0
  71. package/dist/branching/collections.d.ts.map +1 -0
  72. package/dist/branching/collections.js +184 -0
  73. package/dist/branching/collections.js.map +1 -0
  74. package/dist/branching/endpoints/merge.d.ts +11 -0
  75. package/dist/branching/endpoints/merge.d.ts.map +1 -0
  76. package/dist/branching/endpoints/merge.js +50 -0
  77. package/dist/branching/endpoints/merge.js.map +1 -0
  78. package/dist/branching/forkDocument.d.ts +18 -0
  79. package/dist/branching/forkDocument.d.ts.map +1 -0
  80. package/dist/branching/forkDocument.js +123 -0
  81. package/dist/branching/forkDocument.js.map +1 -0
  82. package/dist/branching/globals.d.ts +49 -0
  83. package/dist/branching/globals.d.ts.map +1 -0
  84. package/dist/branching/globals.js +145 -0
  85. package/dist/branching/globals.js.map +1 -0
  86. package/dist/branching/hooks.d.ts +29 -0
  87. package/dist/branching/hooks.d.ts.map +1 -0
  88. package/dist/branching/hooks.js +82 -0
  89. package/dist/branching/hooks.js.map +1 -0
  90. package/dist/branching/injectBranchFields.d.ts +44 -0
  91. package/dist/branching/injectBranchFields.d.ts.map +1 -0
  92. package/dist/branching/injectBranchFields.js +132 -0
  93. package/dist/branching/injectBranchFields.js.map +1 -0
  94. package/dist/branching/merge.d.ts +65 -0
  95. package/dist/branching/merge.d.ts.map +1 -0
  96. package/dist/branching/merge.js +297 -0
  97. package/dist/branching/merge.js.map +1 -0
  98. package/dist/branching/preflight.d.ts +53 -0
  99. package/dist/branching/preflight.d.ts.map +1 -0
  100. package/dist/branching/preflight.js +156 -0
  101. package/dist/branching/preflight.js.map +1 -0
  102. package/dist/branching/resolveBranch.d.ts +37 -0
  103. package/dist/branching/resolveBranch.d.ts.map +1 -0
  104. package/dist/branching/resolveBranch.js +126 -0
  105. package/dist/branching/resolveBranch.js.map +1 -0
  106. package/dist/branching/resolveBranchQuery.d.ts +43 -0
  107. package/dist/branching/resolveBranchQuery.d.ts.map +1 -0
  108. package/dist/branching/resolveBranchQuery.js +87 -0
  109. package/dist/branching/resolveBranchQuery.js.map +1 -0
  110. package/dist/branching/resolveBranchRowID.d.ts +22 -0
  111. package/dist/branching/resolveBranchRowID.d.ts.map +1 -0
  112. package/dist/branching/resolveBranchRowID.js +51 -0
  113. package/dist/branching/resolveBranchRowID.js.map +1 -0
  114. package/dist/branching/sanitizeBranchingConfig.d.ts +31 -0
  115. package/dist/branching/sanitizeBranchingConfig.d.ts.map +1 -0
  116. package/dist/branching/sanitizeBranchingConfig.js +94 -0
  117. package/dist/branching/sanitizeBranchingConfig.js.map +1 -0
  118. package/dist/branching/tombstone.d.ts +28 -0
  119. package/dist/branching/tombstone.d.ts.map +1 -0
  120. package/dist/branching/tombstone.js +152 -0
  121. package/dist/branching/tombstone.js.map +1 -0
  122. package/dist/branching/types.d.ts +77 -0
  123. package/dist/branching/types.d.ts.map +1 -0
  124. package/dist/branching/types.js +15 -0
  125. package/dist/branching/types.js.map +1 -0
  126. package/dist/branching/versions.d.ts +39 -0
  127. package/dist/branching/versions.d.ts.map +1 -0
  128. package/dist/branching/versions.js +117 -0
  129. package/dist/branching/versions.js.map +1 -0
  130. package/dist/collections/config/defaults.d.ts +4 -4
  131. package/dist/collections/config/defaults.d.ts.map +1 -1
  132. package/dist/collections/config/defaults.js +37 -32
  133. package/dist/collections/config/defaults.js.map +1 -1
  134. package/dist/collections/config/sanitize.d.ts +4 -8
  135. package/dist/collections/config/sanitize.d.ts.map +1 -1
  136. package/dist/collections/config/sanitize.js +4 -21
  137. package/dist/collections/config/sanitize.js.map +1 -1
  138. package/dist/collections/config/types.d.ts +66 -49
  139. package/dist/collections/config/types.d.ts.map +1 -1
  140. package/dist/collections/config/types.js.map +1 -1
  141. package/dist/collections/config/useAsTitle.spec.js +27 -27
  142. package/dist/collections/config/useAsTitle.spec.js.map +1 -1
  143. package/dist/collections/operations/create.d.ts.map +1 -1
  144. package/dist/collections/operations/create.js +10 -0
  145. package/dist/collections/operations/create.js.map +1 -1
  146. package/dist/collections/operations/findByID.d.ts.map +1 -1
  147. package/dist/collections/operations/findByID.js +6 -0
  148. package/dist/collections/operations/findByID.js.map +1 -1
  149. package/dist/collections/operations/local/count.d.ts +9 -4
  150. package/dist/collections/operations/local/count.d.ts.map +1 -1
  151. package/dist/collections/operations/local/count.js.map +1 -1
  152. package/dist/collections/operations/local/create.d.ts +9 -4
  153. package/dist/collections/operations/local/create.d.ts.map +1 -1
  154. package/dist/collections/operations/local/create.js.map +1 -1
  155. package/dist/collections/operations/local/delete.d.ts +9 -4
  156. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  157. package/dist/collections/operations/local/delete.js.map +1 -1
  158. package/dist/collections/operations/local/find.d.ts +9 -4
  159. package/dist/collections/operations/local/find.d.ts.map +1 -1
  160. package/dist/collections/operations/local/find.js.map +1 -1
  161. package/dist/collections/operations/local/findByID.d.ts +9 -4
  162. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  163. package/dist/collections/operations/local/findByID.js.map +1 -1
  164. package/dist/collections/operations/local/update.d.ts +9 -4
  165. package/dist/collections/operations/local/update.d.ts.map +1 -1
  166. package/dist/collections/operations/local/update.js.map +1 -1
  167. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  168. package/dist/collections/operations/restoreVersion.js +7 -4
  169. package/dist/collections/operations/restoreVersion.js.map +1 -1
  170. package/dist/collections/operations/updateByID.d.ts +7 -0
  171. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  172. package/dist/collections/operations/updateByID.js +2 -0
  173. package/dist/collections/operations/updateByID.js.map +1 -1
  174. package/dist/collections/operations/utilities/update.d.ts +9 -1
  175. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  176. package/dist/collections/operations/utilities/update.js +9 -7
  177. package/dist/collections/operations/utilities/update.js.map +1 -1
  178. package/dist/config/build.js +1 -1
  179. package/dist/config/build.js.map +1 -1
  180. package/dist/config/client.d.ts +3 -1
  181. package/dist/config/client.d.ts.map +1 -1
  182. package/dist/config/client.js +9 -0
  183. package/dist/config/client.js.map +1 -1
  184. package/dist/config/defaults.d.ts.map +1 -1
  185. package/dist/config/defaults.js +48 -41
  186. package/dist/config/defaults.js.map +1 -1
  187. package/dist/config/orderable/index.d.ts +1 -1
  188. package/dist/config/orderable/index.d.ts.map +1 -1
  189. package/dist/config/orderable/index.js +2 -2
  190. package/dist/config/orderable/index.js.map +1 -1
  191. package/dist/config/sanitize.d.ts +1 -1
  192. package/dist/config/sanitize.d.ts.map +1 -1
  193. package/dist/config/sanitize.js +62 -32
  194. package/dist/config/sanitize.js.map +1 -1
  195. package/dist/config/sanitize.spec.js +101 -0
  196. package/dist/config/sanitize.spec.js.map +1 -0
  197. package/dist/config/types.d.ts +417 -404
  198. package/dist/config/types.d.ts.map +1 -1
  199. package/dist/config/types.js.map +1 -1
  200. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  201. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  202. package/dist/database/createDatabaseAdapter.js +0 -2
  203. package/dist/database/createDatabaseAdapter.js.map +1 -1
  204. package/dist/database/types.d.ts +50 -0
  205. package/dist/database/types.d.ts.map +1 -1
  206. package/dist/database/types.js.map +1 -1
  207. package/dist/exports/auth.d.ts +5 -0
  208. package/dist/exports/auth.d.ts.map +1 -0
  209. package/dist/exports/auth.js +6 -0
  210. package/dist/exports/auth.js.map +1 -0
  211. package/dist/exports/shared.d.ts +1 -0
  212. package/dist/exports/shared.d.ts.map +1 -1
  213. package/dist/exports/shared.js +1 -0
  214. package/dist/exports/shared.js.map +1 -1
  215. package/dist/fields/baseFields/slug/duplicateContext.d.ts +11 -0
  216. package/dist/fields/baseFields/slug/duplicateContext.d.ts.map +1 -0
  217. package/dist/fields/baseFields/slug/duplicateContext.js +21 -0
  218. package/dist/fields/baseFields/slug/duplicateContext.js.map +1 -0
  219. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts +22 -0
  220. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts.map +1 -0
  221. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js +63 -0
  222. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js.map +1 -0
  223. package/dist/fields/baseFields/slug/generateSlug.d.ts +12 -18
  224. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  225. package/dist/fields/baseFields/slug/generateSlug.js +97 -40
  226. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  227. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts +18 -0
  228. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts.map +1 -0
  229. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js +20 -0
  230. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js.map +1 -0
  231. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts +22 -0
  232. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts.map +1 -0
  233. package/dist/fields/baseFields/slug/getSlugFallbackValue.js +23 -0
  234. package/dist/fields/baseFields/slug/getSlugFallbackValue.js.map +1 -0
  235. package/dist/fields/baseFields/slug/hasValue.d.ts +3 -0
  236. package/dist/fields/baseFields/slug/hasValue.d.ts.map +1 -0
  237. package/dist/fields/baseFields/slug/hasValue.js +3 -0
  238. package/dist/fields/baseFields/slug/hasValue.js.map +1 -0
  239. package/dist/fields/config/reservedFieldNames.spec.js +18 -18
  240. package/dist/fields/config/reservedFieldNames.spec.js.map +1 -1
  241. package/dist/fields/config/sanitize.d.ts +6 -6
  242. package/dist/fields/config/sanitize.d.ts.map +1 -1
  243. package/dist/fields/config/sanitize.js +32 -22
  244. package/dist/fields/config/sanitize.js.map +1 -1
  245. package/dist/fields/config/sanitize.spec.js +105 -105
  246. package/dist/fields/config/sanitize.spec.js.map +1 -1
  247. package/dist/fields/config/types.d.ts +4 -3
  248. package/dist/fields/config/types.d.ts.map +1 -1
  249. package/dist/fields/config/types.js +1 -1
  250. package/dist/fields/config/types.js.map +1 -1
  251. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  252. package/dist/fields/hooks/beforeValidate/traverseFields.js +2 -0
  253. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  254. package/dist/fields/validations.d.ts.map +1 -1
  255. package/dist/fields/validations.js +7 -8
  256. package/dist/fields/validations.js.map +1 -1
  257. package/dist/fields/validations.spec.js +61 -37
  258. package/dist/fields/validations.spec.js.map +1 -1
  259. package/dist/globals/config/sanitize.d.ts +3 -7
  260. package/dist/globals/config/sanitize.d.ts.map +1 -1
  261. package/dist/globals/config/sanitize.js +3 -6
  262. package/dist/globals/config/sanitize.js.map +1 -1
  263. package/dist/globals/config/sanitize.spec.js +6 -6
  264. package/dist/globals/config/sanitize.spec.js.map +1 -1
  265. package/dist/globals/config/types.d.ts +5 -0
  266. package/dist/globals/config/types.d.ts.map +1 -1
  267. package/dist/globals/config/types.js.map +1 -1
  268. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  269. package/dist/globals/operations/countGlobalVersions.js +1 -0
  270. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  271. package/dist/globals/operations/local/findOne.d.ts +5 -0
  272. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  273. package/dist/globals/operations/local/findOne.js.map +1 -1
  274. package/dist/globals/operations/local/findVersions.d.ts +5 -0
  275. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  276. package/dist/globals/operations/local/findVersions.js.map +1 -1
  277. package/dist/globals/operations/local/update.d.ts +5 -0
  278. package/dist/globals/operations/local/update.d.ts.map +1 -1
  279. package/dist/globals/operations/local/update.js.map +1 -1
  280. package/dist/index.bundled.d.ts +1497 -797
  281. package/dist/index.d.ts +98 -33
  282. package/dist/index.d.ts.map +1 -1
  283. package/dist/index.js +79 -57
  284. package/dist/index.js.map +1 -1
  285. package/dist/preferences/keys.d.ts +7 -0
  286. package/dist/preferences/keys.d.ts.map +1 -1
  287. package/dist/preferences/keys.js +6 -0
  288. package/dist/preferences/keys.js.map +1 -1
  289. package/dist/query-presets/constraints.js +1 -1
  290. package/dist/query-presets/constraints.js.map +1 -1
  291. package/dist/queues/config/collection.d.ts.map +1 -1
  292. package/dist/queues/config/collection.js +37 -43
  293. package/dist/queues/config/collection.js.map +1 -1
  294. package/dist/queues/config/global.d.ts +5 -6
  295. package/dist/queues/config/global.d.ts.map +1 -1
  296. package/dist/queues/config/global.js +1 -1
  297. package/dist/queues/config/global.js.map +1 -1
  298. package/dist/queues/config/types/index.d.ts +29 -24
  299. package/dist/queues/config/types/index.d.ts.map +1 -1
  300. package/dist/queues/config/types/index.js.map +1 -1
  301. package/dist/queues/config/types/taskTypes.d.ts +4 -7
  302. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  303. package/dist/queues/config/types/taskTypes.js.map +1 -1
  304. package/dist/queues/config/types/workflowJSONTypes.d.ts +10 -9
  305. package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -1
  306. package/dist/queues/config/types/workflowJSONTypes.js.map +1 -1
  307. package/dist/queues/config/types/workflowTypes.d.ts +11 -58
  308. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
  309. package/dist/queues/config/types/workflowTypes.js.map +1 -1
  310. package/dist/queues/endpoints/handleSchedules.js +1 -1
  311. package/dist/queues/endpoints/handleSchedules.js.map +1 -1
  312. package/dist/queues/errors/handleTaskError.js +4 -4
  313. package/dist/queues/errors/handleTaskError.js.map +1 -1
  314. package/dist/queues/errors/handleWorkflowError.js +1 -1
  315. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  316. package/dist/queues/errors/index.d.ts +6 -0
  317. package/dist/queues/errors/index.d.ts.map +1 -1
  318. package/dist/queues/errors/index.js +5 -0
  319. package/dist/queues/errors/index.js.map +1 -1
  320. package/dist/queues/localAPI.d.ts +4 -4
  321. package/dist/queues/localAPI.d.ts.map +1 -1
  322. package/dist/queues/localAPI.js +63 -66
  323. package/dist/queues/localAPI.js.map +1 -1
  324. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts +4 -4
  325. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts.map +1 -1
  326. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.js.map +1 -1
  327. package/dist/queues/operations/handleSchedules/index.d.ts +1 -1
  328. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  329. package/dist/queues/operations/handleSchedules/index.js +1 -1
  330. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  331. package/dist/queues/operations/runJobs/heartbeat.d.ts +13 -0
  332. package/dist/queues/operations/runJobs/heartbeat.d.ts.map +1 -0
  333. package/dist/queues/operations/runJobs/heartbeat.js +66 -0
  334. package/dist/queues/operations/runJobs/heartbeat.js.map +1 -0
  335. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  336. package/dist/queues/operations/runJobs/index.js +133 -84
  337. package/dist/queues/operations/runJobs/index.js.map +1 -1
  338. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  339. package/dist/queues/operations/runJobs/runJSONJob/index.js +6 -3
  340. package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -1
  341. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +5 -5
  342. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  343. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +2 -1
  344. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  345. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +39 -8
  346. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  347. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -1
  348. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  349. package/dist/queues/operations/runJobs/runJob/index.js +4 -4
  350. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
  351. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  352. package/dist/queues/utilities/updateJob.js +3 -0
  353. package/dist/queues/utilities/updateJob.js.map +1 -1
  354. package/dist/types/index.d.ts +12 -1
  355. package/dist/types/index.d.ts.map +1 -1
  356. package/dist/types/index.js.map +1 -1
  357. package/dist/uploads/cropImage.d.ts +1 -1
  358. package/dist/uploads/cropImage.d.ts.map +1 -1
  359. package/dist/uploads/cropImage.js.map +1 -1
  360. package/dist/uploads/generateFileData.js +4 -1
  361. package/dist/uploads/generateFileData.js.map +1 -1
  362. package/dist/uploads/getImageSize.d.ts +12 -1
  363. package/dist/uploads/getImageSize.d.ts.map +1 -1
  364. package/dist/uploads/getImageSize.js +20 -18
  365. package/dist/uploads/getImageSize.js.map +1 -1
  366. package/dist/uploads/getImageSize.spec.js +298 -0
  367. package/dist/uploads/getImageSize.spec.js.map +1 -0
  368. package/dist/uploads/probeImageSize.d.ts +39 -0
  369. package/dist/uploads/probeImageSize.d.ts.map +1 -0
  370. package/dist/uploads/probeImageSize.js +374 -0
  371. package/dist/uploads/probeImageSize.js.map +1 -0
  372. package/dist/uploads/probeImageSize.spec.js +366 -0
  373. package/dist/uploads/probeImageSize.spec.js.map +1 -0
  374. package/dist/uploads/types.d.ts +28 -6
  375. package/dist/uploads/types.d.ts.map +1 -1
  376. package/dist/uploads/types.js.map +1 -1
  377. package/dist/utilities/appendNonTrashedFilter.d.ts +1 -1
  378. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  379. package/dist/utilities/appendNonTrashedFilter.js.map +1 -1
  380. package/dist/utilities/configToJSONSchema.spec.js +33 -33
  381. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  382. package/dist/utilities/createLocalReq.d.ts +5 -0
  383. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  384. package/dist/utilities/createLocalReq.js +8 -1
  385. package/dist/utilities/createLocalReq.js.map +1 -1
  386. package/dist/utilities/fieldValueExists.d.ts +29 -0
  387. package/dist/utilities/fieldValueExists.d.ts.map +1 -0
  388. package/dist/utilities/fieldValueExists.js +27 -0
  389. package/dist/utilities/fieldValueExists.js.map +1 -0
  390. package/dist/utilities/getNextVersion.d.ts +7 -0
  391. package/dist/utilities/getNextVersion.d.ts.map +1 -0
  392. package/dist/utilities/getNextVersion.js +20 -0
  393. package/dist/utilities/getNextVersion.js.map +1 -0
  394. package/dist/utilities/getNextVersion.spec.js +16 -0
  395. package/dist/utilities/getNextVersion.spec.js.map +1 -0
  396. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  397. package/dist/utilities/getRequestOrigin.js.map +1 -1
  398. package/dist/utilities/getUniqueFieldValue.d.ts +27 -0
  399. package/dist/utilities/getUniqueFieldValue.d.ts.map +1 -0
  400. package/dist/utilities/getUniqueFieldValue.js +26 -0
  401. package/dist/utilities/getUniqueFieldValue.js.map +1 -0
  402. package/dist/utilities/headersWithCors.js +1 -1
  403. package/dist/utilities/headersWithCors.js.map +1 -1
  404. package/dist/utilities/logError.d.ts.map +1 -1
  405. package/dist/utilities/logError.js +5 -2
  406. package/dist/utilities/logError.js.map +1 -1
  407. package/dist/utilities/nextJsDevReloadStrategy.d.ts +7 -0
  408. package/dist/utilities/nextJsDevReloadStrategy.d.ts.map +1 -0
  409. package/dist/utilities/nextJsDevReloadStrategy.js +59 -0
  410. package/dist/utilities/nextJsDevReloadStrategy.js.map +1 -0
  411. package/dist/utilities/nextJsDevReloadStrategy.spec.js +123 -0
  412. package/dist/utilities/nextJsDevReloadStrategy.spec.js.map +1 -0
  413. package/dist/utilities/traverseFields.d.ts.map +1 -1
  414. package/dist/utilities/traverseFields.js +20 -22
  415. package/dist/utilities/traverseFields.js.map +1 -1
  416. package/dist/utilities/traverseFields.spec.js +112 -0
  417. package/dist/utilities/traverseFields.spec.js.map +1 -1
  418. package/dist/utilities/unflattenData.d.ts +3 -0
  419. package/dist/utilities/unflattenData.d.ts.map +1 -0
  420. package/dist/utilities/unflattenData.js +14 -0
  421. package/dist/utilities/unflattenData.js.map +1 -0
  422. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  423. package/dist/versions/buildCollectionFields.js +23 -0
  424. package/dist/versions/buildCollectionFields.js.map +1 -1
  425. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  426. package/dist/versions/buildGlobalFields.js +14 -0
  427. package/dist/versions/buildGlobalFields.js.map +1 -1
  428. package/dist/versions/deleteScheduledPublishJobs.js +2 -2
  429. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  430. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  431. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +8 -1
  432. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  433. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  434. package/dist/versions/getLatestCollectionVersion.js +10 -2
  435. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  436. package/package.json +11 -5
  437. package/skills/payload/SKILL.md +517 -0
  438. package/skills/payload/reference/ACCESS-CONTROL-ADVANCED.md +704 -0
  439. package/skills/payload/reference/ACCESS-CONTROL.md +696 -0
  440. package/skills/payload/reference/ADAPTERS.md +305 -0
  441. package/skills/payload/reference/ADVANCED.md +386 -0
  442. package/skills/payload/reference/COLLECTIONS.md +301 -0
  443. package/skills/payload/reference/ENDPOINTS.md +634 -0
  444. package/skills/payload/reference/FIELD-TYPE-GUARDS.md +553 -0
  445. package/skills/payload/reference/FIELDS.md +739 -0
  446. package/skills/payload/reference/HOOKS.md +186 -0
  447. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +1436 -0
  448. package/skills/payload/reference/QUERIES.md +274 -0
  449. package/dist/database/defaultUpdateJobs.d.ts +0 -3
  450. package/dist/database/defaultUpdateJobs.d.ts.map +0 -1
  451. package/dist/database/defaultUpdateJobs.js +0 -41
  452. package/dist/database/defaultUpdateJobs.js.map +0 -1
  453. package/dist/uploads/tempFile.d.ts +0 -7
  454. package/dist/uploads/tempFile.d.ts.map +0 -1
  455. package/dist/uploads/tempFile.js +0 -39
  456. package/dist/uploads/tempFile.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/executeAccess.ts"],"sourcesContent":["import type { Access, AccessResult } from '../config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { Forbidden } from '../errors/index.js'\n\ntype OperationArgs = {\n data?: any\n disableErrors?: boolean\n id?: number | string\n isReadingStaticFile?: boolean\n req: PayloadRequest\n}\nexport const executeAccess = async (\n { id, data, disableErrors, isReadingStaticFile = false, req }: OperationArgs,\n access: Access,\n): Promise<AccessResult> => {\n if (access) {\n const resolvedConstraint = await access({\n id,\n data,\n isReadingStaticFile,\n req,\n })\n\n if (!resolvedConstraint) {\n if (!disableErrors) {\n throw new Forbidden(req.t)\n }\n }\n\n return resolvedConstraint\n }\n\n if (req.user) {\n return true\n }\n\n if (!disableErrors) {\n throw new Forbidden(req.t)\n }\n return false\n}\n"],"names":["Forbidden","executeAccess","id","data","disableErrors","isReadingStaticFile","req","access","resolvedConstraint","t","user"],"mappings":"AAGA,SAASA,SAAS,QAAQ,qBAAoB;AAS9C,OAAO,MAAMC,gBAAgB,OAC3B,EAAEC,EAAE,EAAEC,IAAI,EAAEC,aAAa,EAAEC,sBAAsB,KAAK,EAAEC,GAAG,EAAiB,EAC5EC;IAEA,IAAIA,QAAQ;QACV,MAAMC,qBAAqB,MAAMD,OAAO;YACtCL;YACAC;YACAE;YACAC;QACF;QAEA,IAAI,CAACE,oBAAoB;YACvB,IAAI,CAACJ,eAAe;gBAClB,MAAM,IAAIJ,UAAUM,IAAIG,CAAC;YAC3B;QACF;QAEA,OAAOD;IACT;IAEA,IAAIF,IAAII,IAAI,EAAE;QACZ,OAAO;IACT;IAEA,IAAI,CAACN,eAAe;QAClB,MAAM,IAAIJ,UAAUM,IAAIG,CAAC;IAC3B;IACA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/auth/executeAccess.ts"],"sourcesContent":["import type { Access, AccessResult } from '../config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { Forbidden } from '../errors/index.js'\n\ntype OperationArgs = {\n data?: any\n disableErrors?: boolean\n id?: number | string\n isReadingStaticFile?: boolean\n req: PayloadRequest\n}\nexport const executeAccess = async (\n { id, data, disableErrors, isReadingStaticFile = false, req }: OperationArgs,\n access?: Access,\n): Promise<AccessResult> => {\n if (access) {\n const resolvedConstraint = await access({\n id,\n data,\n isReadingStaticFile,\n req,\n })\n\n if (!resolvedConstraint) {\n if (!disableErrors) {\n throw new Forbidden(req.t)\n }\n }\n\n return resolvedConstraint\n }\n\n if (req.user) {\n return true\n }\n\n if (!disableErrors) {\n throw new Forbidden(req.t)\n }\n return false\n}\n"],"names":["Forbidden","executeAccess","id","data","disableErrors","isReadingStaticFile","req","access","resolvedConstraint","t","user"],"mappings":"AAGA,SAASA,SAAS,QAAQ,qBAAoB;AAS9C,OAAO,MAAMC,gBAAgB,OAC3B,EAAEC,EAAE,EAAEC,IAAI,EAAEC,aAAa,EAAEC,sBAAsB,KAAK,EAAEC,GAAG,EAAiB,EAC5EC;IAEA,IAAIA,QAAQ;QACV,MAAMC,qBAAqB,MAAMD,OAAO;YACtCL;YACAC;YACAE;YACAC;QACF;QAEA,IAAI,CAACE,oBAAoB;YACvB,IAAI,CAACJ,eAAe;gBAClB,MAAM,IAAIJ,UAAUM,IAAIG,CAAC;YAC3B;QACF;QAEA,OAAOD;IACT;IAEA,IAAIF,IAAII,IAAI,EAAE;QACZ,OAAO;IACT;IAEA,IAAI,CAACN,eAAe;QAClB,MAAM,IAAIJ,UAAUM,IAAIG,CAAC;IAC3B;IACA,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/getLoginOptions.ts"],"sourcesContent":["import type { Auth } from './types.js'\n\nexport const getLoginOptions = (\n loginWithUsername: Auth['loginWithUsername'],\n): {\n canLoginWithEmail: boolean\n canLoginWithUsername: boolean\n} => {\n return {\n canLoginWithEmail: !loginWithUsername || loginWithUsername.allowEmailLogin!,\n canLoginWithUsername: Boolean(loginWithUsername),\n }\n}\n"],"names":["getLoginOptions","loginWithUsername","canLoginWithEmail","allowEmailLogin","canLoginWithUsername","Boolean"],"mappings":"AAEA,OAAO,MAAMA,kBAAkB,CAC7BC;IAKA,OAAO;QACLC,mBAAmB,CAACD,qBAAqBA,kBAAkBE,eAAe;QAC1EC,sBAAsBC,QAAQJ;IAChC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/auth/getLoginOptions.ts"],"sourcesContent":["import type { Auth } from './types.js'\n\nexport const getLoginOptions = (\n loginWithUsername: Auth['loginWithUsername'],\n): {\n canLoginWithEmail: boolean\n canLoginWithUsername: boolean\n} => {\n return {\n canLoginWithEmail: !loginWithUsername || loginWithUsername.allowEmailLogin,\n canLoginWithUsername: Boolean(loginWithUsername),\n }\n}\n"],"names":["getLoginOptions","loginWithUsername","canLoginWithEmail","allowEmailLogin","canLoginWithUsername","Boolean"],"mappings":"AAEA,OAAO,MAAMA,kBAAkB,CAC7BC;IAKA,OAAO;QACLC,mBAAmB,CAACD,qBAAqBA,kBAAkBE,eAAe;QAC1EC,sBAAsBC,QAAQJ;IAChC;AACF,EAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Collection } from '../collections/config/types.js';
2
+ import type { AuthCollectionSlug } from '../index.js';
3
+ import type { PayloadRequest } from '../types/index.js';
4
+ import type { generateCookie } from './cookies.js';
5
+ import type { LoginResult } from './operations/login.js';
6
+ import { loginOperation } from './operations/login.js';
7
+ type CookieObject = Extract<ReturnType<typeof generateCookie<true>>, {
8
+ name: string;
9
+ }>;
10
+ type LoginWithCookieArgs<TReturnCookieAsObject extends boolean> = {
11
+ collection: Collection;
12
+ data: Parameters<typeof loginOperation>[0]['data'];
13
+ depth?: number;
14
+ overrideAccess?: boolean;
15
+ req: PayloadRequest;
16
+ /** Return the cookie as parts rather than a serialized header string. */
17
+ returnCookieAsObject?: TReturnCookieAsObject;
18
+ };
19
+ /**
20
+ * Runs the login operation and builds the auth cookie from its token, then
21
+ * applies `auth.removeTokenFromResponses` to the returned result.
22
+ *
23
+ * The order matters: the token has to be read before the flag strips it, or the
24
+ * caller ends up returning a user with no way to establish a session. Shared by
25
+ * the REST login handler and the framework adapters' `login` server function so
26
+ * that ordering only exists in one place.
27
+ */
28
+ export declare const loginWithCookie: <TSlug extends AuthCollectionSlug, TReturnCookieAsObject extends boolean = false>({ collection, data, depth, overrideAccess, req, returnCookieAsObject, }: LoginWithCookieArgs<TReturnCookieAsObject>) => Promise<{
29
+ cookie: TReturnCookieAsObject extends true ? CookieObject : string;
30
+ result: LoginResult<TSlug>;
31
+ }>;
32
+ export {};
33
+ //# sourceMappingURL=loginWithCookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginWithCookie.d.ts","sourceRoot":"","sources":["../../src/auth/loginWithCookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,KAAK,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEtF,KAAK,mBAAmB,CAAC,qBAAqB,SAAS,OAAO,IAAI;IAChE,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,qBAAqB,CAAA;CAC7C,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,kBAAkB,EAChC,qBAAqB,SAAS,OAAO,GAAG,KAAK,2EAQ5C,mBAAmB,CAAC,qBAAqB,CAAC,KAAG,OAAO,CAAC;IACtD,MAAM,EAAE,qBAAqB,SAAS,IAAI,GAAG,YAAY,GAAG,MAAM,CAAA;IAClE,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;CAC3B,CAqBA,CAAA"}
@@ -0,0 +1,34 @@
1
+ import { generatePayloadCookie } from './cookies.js';
2
+ import { loginOperation } from './operations/login.js';
3
+ /**
4
+ * Runs the login operation and builds the auth cookie from its token, then
5
+ * applies `auth.removeTokenFromResponses` to the returned result.
6
+ *
7
+ * The order matters: the token has to be read before the flag strips it, or the
8
+ * caller ends up returning a user with no way to establish a session. Shared by
9
+ * the REST login handler and the framework adapters' `login` server function so
10
+ * that ordering only exists in one place.
11
+ */ export const loginWithCookie = async ({ collection, data, depth, overrideAccess, req, returnCookieAsObject })=>{
12
+ const result = await loginOperation({
13
+ collection,
14
+ data,
15
+ depth,
16
+ overrideAccess,
17
+ req
18
+ });
19
+ const cookie = generatePayloadCookie({
20
+ collectionAuthConfig: collection.config.auth,
21
+ cookiePrefix: req.payload.config.cookiePrefix,
22
+ returnCookieAsObject: returnCookieAsObject ?? false,
23
+ token: result.token
24
+ });
25
+ if (collection.config.auth.removeTokenFromResponses) {
26
+ delete result.token;
27
+ }
28
+ return {
29
+ cookie,
30
+ result
31
+ };
32
+ };
33
+
34
+ //# sourceMappingURL=loginWithCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/auth/loginWithCookie.ts"],"sourcesContent":["import type { Collection } from '../collections/config/types.js'\nimport type { AuthCollectionSlug } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\nimport type { generateCookie } from './cookies.js'\nimport type { LoginResult } from './operations/login.js'\n\nimport { generatePayloadCookie } from './cookies.js'\nimport { loginOperation } from './operations/login.js'\n\ntype CookieObject = Extract<ReturnType<typeof generateCookie<true>>, { name: string }>\n\ntype LoginWithCookieArgs<TReturnCookieAsObject extends boolean> = {\n collection: Collection\n data: Parameters<typeof loginOperation>[0]['data']\n depth?: number\n overrideAccess?: boolean\n req: PayloadRequest\n /** Return the cookie as parts rather than a serialized header string. */\n returnCookieAsObject?: TReturnCookieAsObject\n}\n\n/**\n * Runs the login operation and builds the auth cookie from its token, then\n * applies `auth.removeTokenFromResponses` to the returned result.\n *\n * The order matters: the token has to be read before the flag strips it, or the\n * caller ends up returning a user with no way to establish a session. Shared by\n * the REST login handler and the framework adapters' `login` server function so\n * that ordering only exists in one place.\n */\nexport const loginWithCookie = async <\n TSlug extends AuthCollectionSlug,\n TReturnCookieAsObject extends boolean = false,\n>({\n collection,\n data,\n depth,\n overrideAccess,\n req,\n returnCookieAsObject,\n}: LoginWithCookieArgs<TReturnCookieAsObject>): Promise<{\n cookie: TReturnCookieAsObject extends true ? CookieObject : string\n result: LoginResult<TSlug>\n}> => {\n const result = await loginOperation({\n collection,\n data,\n depth,\n overrideAccess,\n req,\n })\n\n const cookie = generatePayloadCookie({\n collectionAuthConfig: collection.config.auth,\n cookiePrefix: req.payload.config.cookiePrefix,\n returnCookieAsObject: returnCookieAsObject ?? false,\n token: result.token!,\n }) as TReturnCookieAsObject extends true ? CookieObject : string\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return { cookie, result }\n}\n"],"names":["generatePayloadCookie","loginOperation","loginWithCookie","collection","data","depth","overrideAccess","req","returnCookieAsObject","result","cookie","collectionAuthConfig","config","auth","cookiePrefix","payload","token","removeTokenFromResponses"],"mappings":"AAMA,SAASA,qBAAqB,QAAQ,eAAc;AACpD,SAASC,cAAc,QAAQ,wBAAuB;AActD;;;;;;;;CAQC,GACD,OAAO,MAAMC,kBAAkB,OAG7B,EACAC,UAAU,EACVC,IAAI,EACJC,KAAK,EACLC,cAAc,EACdC,GAAG,EACHC,oBAAoB,EACuB;IAI3C,MAAMC,SAAS,MAAMR,eAAe;QAClCE;QACAC;QACAC;QACAC;QACAC;IACF;IAEA,MAAMG,SAASV,sBAAsB;QACnCW,sBAAsBR,WAAWS,MAAM,CAACC,IAAI;QAC5CC,cAAcP,IAAIQ,OAAO,CAACH,MAAM,CAACE,YAAY;QAC7CN,sBAAsBA,wBAAwB;QAC9CQ,OAAOP,OAAOO,KAAK;IACrB;IAEA,IAAIb,WAAWS,MAAM,CAACC,IAAI,CAACI,wBAAwB,EAAE;QACnD,OAAOR,OAAOO,KAAK;IACrB;IAEA,OAAO;QAAEN;QAAQD;IAAO;AAC1B,EAAC"}
@@ -4,13 +4,6 @@ import type { JoinQuery, PayloadRequest, PopulateType, SelectType } from '../../
4
4
  export type MeOperationResult = {
5
5
  collection?: string;
6
6
  exp?: number;
7
- /** @deprecated
8
- * use:
9
- * ```ts
10
- * user._strategy
11
- * ```
12
- */
13
- strategy?: string;
14
7
  token?: string;
15
8
  user?: AuthenticatedUser | null;
16
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/me.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE/F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,WAAW,SAAgB,SAAS,KAAG,OAAO,CAAC,iBAAiB,CA2F5E,CAAA"}
1
+ {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/me.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE/F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,WAAW,SAAgB,SAAS,KAAG,OAAO,CAAC,iBAAiB,CAoF5E,CAAA"}
@@ -43,12 +43,6 @@ export const meOperation = async (args)=>{
43
43
  }
44
44
  }
45
45
  result.collection = req.user.collection;
46
- /** @deprecated
47
- * use:
48
- * ```ts
49
- * user._strategy
50
- * ```
51
- */ result.strategy = req.user._strategy;
52
46
  if (!result.user) {
53
47
  result.user = user;
54
48
  if (currentToken) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/me.ts"],"sourcesContent":["import { decodeJwt } from 'jose'\n\nimport type { Collection } from '../../collections/config/types.js'\nimport type { AuthenticatedUser } from '../../index.js'\nimport type { JoinQuery, PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\n\nexport type MeOperationResult = {\n collection?: string\n exp?: number\n /** @deprecated\n * use:\n * ```ts\n * user._strategy\n * ```\n */\n strategy?: string\n token?: string\n user?: AuthenticatedUser | null\n}\n\nexport type Arguments = {\n collection: Collection\n currentToken?: string\n depth?: number\n draft?: boolean\n joins?: JoinQuery\n populate?: PopulateType\n req: PayloadRequest\n select?: SelectType\n}\n\nexport const meOperation = async (args: Arguments): Promise<MeOperationResult> => {\n const { collection, currentToken, depth, draft, joins, populate, req, select } = args\n\n let result: MeOperationResult = {\n user: null!,\n }\n\n if (req.user) {\n if (req.user.collection !== collection.config.slug) {\n return {\n user: null!,\n }\n }\n\n const { pathname } = req\n const isGraphQL = pathname === `/api${req.payload.config.routes.graphQL}`\n\n const user = (await req.payload.findByID({\n id: req.user.id,\n collection: collection.config.slug,\n depth: isGraphQL ? 0 : (depth ?? collection.config.auth.depth),\n draft,\n joins,\n overrideAccess: false,\n populate,\n req,\n select,\n showHiddenFields: false,\n })) as AuthenticatedUser\n\n if (user) {\n user.collection = collection.config.slug\n user._strategy = req.user._strategy\n }\n\n // /////////////////////////////////////\n // me hook - Collection\n // /////////////////////////////////////\n\n for (const meHook of collection.config.hooks.me) {\n const hookResult = await meHook({ args, user })\n\n if (hookResult) {\n result.user = hookResult.user\n result.exp = hookResult.exp\n\n break\n }\n }\n\n result.collection = req.user.collection\n /** @deprecated\n * use:\n * ```ts\n * user._strategy\n * ```\n */\n result.strategy = req.user._strategy\n\n if (!result.user) {\n result.user = user\n\n if (currentToken) {\n const decoded = decodeJwt(currentToken)\n if (decoded) {\n result.exp = decoded.exp\n }\n if (!collection.config.auth.removeTokenFromResponses) {\n result.token = currentToken\n }\n }\n }\n }\n\n // /////////////////////////////////////\n // After Me - Collection\n // /////////////////////////////////////\n\n if (collection.config.hooks?.afterMe?.length) {\n for (const hook of collection.config.hooks.afterMe) {\n result =\n (await hook({\n collection: collection?.config,\n context: req.context,\n req,\n response: result,\n })) || result\n }\n }\n\n return result\n}\n"],"names":["decodeJwt","meOperation","args","collection","currentToken","depth","draft","joins","populate","req","select","result","user","config","slug","pathname","isGraphQL","payload","routes","graphQL","findByID","id","auth","overrideAccess","showHiddenFields","_strategy","meHook","hooks","me","hookResult","exp","strategy","decoded","removeTokenFromResponses","token","afterMe","length","hook","context","response"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAM;AA+BhC,OAAO,MAAMC,cAAc,OAAOC;IAChC,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGR;IAEjF,IAAIS,SAA4B;QAC9BC,MAAM;IACR;IAEA,IAAIH,IAAIG,IAAI,EAAE;QACZ,IAAIH,IAAIG,IAAI,CAACT,UAAU,KAAKA,WAAWU,MAAM,CAACC,IAAI,EAAE;YAClD,OAAO;gBACLF,MAAM;YACR;QACF;QAEA,MAAM,EAAEG,QAAQ,EAAE,GAAGN;QACrB,MAAMO,YAAYD,aAAa,CAAC,IAAI,EAAEN,IAAIQ,OAAO,CAACJ,MAAM,CAACK,MAAM,CAACC,OAAO,EAAE;QAEzE,MAAMP,OAAQ,MAAMH,IAAIQ,OAAO,CAACG,QAAQ,CAAC;YACvCC,IAAIZ,IAAIG,IAAI,CAACS,EAAE;YACflB,YAAYA,WAAWU,MAAM,CAACC,IAAI;YAClCT,OAAOW,YAAY,IAAKX,SAASF,WAAWU,MAAM,CAACS,IAAI,CAACjB,KAAK;YAC7DC;YACAC;YACAgB,gBAAgB;YAChBf;YACAC;YACAC;YACAc,kBAAkB;QACpB;QAEA,IAAIZ,MAAM;YACRA,KAAKT,UAAU,GAAGA,WAAWU,MAAM,CAACC,IAAI;YACxCF,KAAKa,SAAS,GAAGhB,IAAIG,IAAI,CAACa,SAAS;QACrC;QAEA,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QAExC,KAAK,MAAMC,UAAUvB,WAAWU,MAAM,CAACc,KAAK,CAACC,EAAE,CAAE;YAC/C,MAAMC,aAAa,MAAMH,OAAO;gBAAExB;gBAAMU;YAAK;YAE7C,IAAIiB,YAAY;gBACdlB,OAAOC,IAAI,GAAGiB,WAAWjB,IAAI;gBAC7BD,OAAOmB,GAAG,GAAGD,WAAWC,GAAG;gBAE3B;YACF;QACF;QAEAnB,OAAOR,UAAU,GAAGM,IAAIG,IAAI,CAACT,UAAU;QACvC;;;;;KAKC,GACDQ,OAAOoB,QAAQ,GAAGtB,IAAIG,IAAI,CAACa,SAAS;QAEpC,IAAI,CAACd,OAAOC,IAAI,EAAE;YAChBD,OAAOC,IAAI,GAAGA;YAEd,IAAIR,cAAc;gBAChB,MAAM4B,UAAUhC,UAAUI;gBAC1B,IAAI4B,SAAS;oBACXrB,OAAOmB,GAAG,GAAGE,QAAQF,GAAG;gBAC1B;gBACA,IAAI,CAAC3B,WAAWU,MAAM,CAACS,IAAI,CAACW,wBAAwB,EAAE;oBACpDtB,OAAOuB,KAAK,GAAG9B;gBACjB;YACF;QACF;IACF;IAEA,wCAAwC;IACxC,wBAAwB;IACxB,wCAAwC;IAExC,IAAID,WAAWU,MAAM,CAACc,KAAK,EAAEQ,SAASC,QAAQ;QAC5C,KAAK,MAAMC,QAAQlC,WAAWU,MAAM,CAACc,KAAK,CAACQ,OAAO,CAAE;YAClDxB,SACE,AAAC,MAAM0B,KAAK;gBACVlC,YAAYA,YAAYU;gBACxByB,SAAS7B,IAAI6B,OAAO;gBACpB7B;gBACA8B,UAAU5B;YACZ,MAAOA;QACX;IACF;IAEA,OAAOA;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/auth/operations/me.ts"],"sourcesContent":["import { decodeJwt } from 'jose'\n\nimport type { Collection } from '../../collections/config/types.js'\nimport type { AuthenticatedUser } from '../../index.js'\nimport type { JoinQuery, PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\n\nexport type MeOperationResult = {\n collection?: string\n exp?: number\n token?: string\n user?: AuthenticatedUser | null\n}\n\nexport type Arguments = {\n collection: Collection\n currentToken?: string\n depth?: number\n draft?: boolean\n joins?: JoinQuery\n populate?: PopulateType\n req: PayloadRequest\n select?: SelectType\n}\n\nexport const meOperation = async (args: Arguments): Promise<MeOperationResult> => {\n const { collection, currentToken, depth, draft, joins, populate, req, select } = args\n\n let result: MeOperationResult = {\n user: null!,\n }\n\n if (req.user) {\n if (req.user.collection !== collection.config.slug) {\n return {\n user: null!,\n }\n }\n\n const { pathname } = req\n const isGraphQL = pathname === `/api${req.payload.config.routes.graphQL}`\n\n const user = (await req.payload.findByID({\n id: req.user.id,\n collection: collection.config.slug,\n depth: isGraphQL ? 0 : (depth ?? collection.config.auth.depth),\n draft,\n joins,\n overrideAccess: false,\n populate,\n req,\n select,\n showHiddenFields: false,\n })) as AuthenticatedUser\n\n if (user) {\n user.collection = collection.config.slug\n user._strategy = req.user._strategy\n }\n\n // /////////////////////////////////////\n // me hook - Collection\n // /////////////////////////////////////\n\n for (const meHook of collection.config.hooks.me) {\n const hookResult = await meHook({ args, user })\n\n if (hookResult) {\n result.user = hookResult.user\n result.exp = hookResult.exp\n\n break\n }\n }\n\n result.collection = req.user.collection\n\n if (!result.user) {\n result.user = user\n\n if (currentToken) {\n const decoded = decodeJwt(currentToken)\n if (decoded) {\n result.exp = decoded.exp\n }\n if (!collection.config.auth.removeTokenFromResponses) {\n result.token = currentToken\n }\n }\n }\n }\n\n // /////////////////////////////////////\n // After Me - Collection\n // /////////////////////////////////////\n\n if (collection.config.hooks?.afterMe?.length) {\n for (const hook of collection.config.hooks.afterMe) {\n result =\n (await hook({\n collection: collection?.config,\n context: req.context,\n req,\n response: result,\n })) || result\n }\n }\n\n return result\n}\n"],"names":["decodeJwt","meOperation","args","collection","currentToken","depth","draft","joins","populate","req","select","result","user","config","slug","pathname","isGraphQL","payload","routes","graphQL","findByID","id","auth","overrideAccess","showHiddenFields","_strategy","meHook","hooks","me","hookResult","exp","decoded","removeTokenFromResponses","token","afterMe","length","hook","context","response"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAM;AAwBhC,OAAO,MAAMC,cAAc,OAAOC;IAChC,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGR;IAEjF,IAAIS,SAA4B;QAC9BC,MAAM;IACR;IAEA,IAAIH,IAAIG,IAAI,EAAE;QACZ,IAAIH,IAAIG,IAAI,CAACT,UAAU,KAAKA,WAAWU,MAAM,CAACC,IAAI,EAAE;YAClD,OAAO;gBACLF,MAAM;YACR;QACF;QAEA,MAAM,EAAEG,QAAQ,EAAE,GAAGN;QACrB,MAAMO,YAAYD,aAAa,CAAC,IAAI,EAAEN,IAAIQ,OAAO,CAACJ,MAAM,CAACK,MAAM,CAACC,OAAO,EAAE;QAEzE,MAAMP,OAAQ,MAAMH,IAAIQ,OAAO,CAACG,QAAQ,CAAC;YACvCC,IAAIZ,IAAIG,IAAI,CAACS,EAAE;YACflB,YAAYA,WAAWU,MAAM,CAACC,IAAI;YAClCT,OAAOW,YAAY,IAAKX,SAASF,WAAWU,MAAM,CAACS,IAAI,CAACjB,KAAK;YAC7DC;YACAC;YACAgB,gBAAgB;YAChBf;YACAC;YACAC;YACAc,kBAAkB;QACpB;QAEA,IAAIZ,MAAM;YACRA,KAAKT,UAAU,GAAGA,WAAWU,MAAM,CAACC,IAAI;YACxCF,KAAKa,SAAS,GAAGhB,IAAIG,IAAI,CAACa,SAAS;QACrC;QAEA,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QAExC,KAAK,MAAMC,UAAUvB,WAAWU,MAAM,CAACc,KAAK,CAACC,EAAE,CAAE;YAC/C,MAAMC,aAAa,MAAMH,OAAO;gBAAExB;gBAAMU;YAAK;YAE7C,IAAIiB,YAAY;gBACdlB,OAAOC,IAAI,GAAGiB,WAAWjB,IAAI;gBAC7BD,OAAOmB,GAAG,GAAGD,WAAWC,GAAG;gBAE3B;YACF;QACF;QAEAnB,OAAOR,UAAU,GAAGM,IAAIG,IAAI,CAACT,UAAU;QAEvC,IAAI,CAACQ,OAAOC,IAAI,EAAE;YAChBD,OAAOC,IAAI,GAAGA;YAEd,IAAIR,cAAc;gBAChB,MAAM2B,UAAU/B,UAAUI;gBAC1B,IAAI2B,SAAS;oBACXpB,OAAOmB,GAAG,GAAGC,QAAQD,GAAG;gBAC1B;gBACA,IAAI,CAAC3B,WAAWU,MAAM,CAACS,IAAI,CAACU,wBAAwB,EAAE;oBACpDrB,OAAOsB,KAAK,GAAG7B;gBACjB;YACF;QACF;IACF;IAEA,wCAAwC;IACxC,wBAAwB;IACxB,wCAAwC;IAExC,IAAID,WAAWU,MAAM,CAACc,KAAK,EAAEO,SAASC,QAAQ;QAC5C,KAAK,MAAMC,QAAQjC,WAAWU,MAAM,CAACc,KAAK,CAACO,OAAO,CAAE;YAClDvB,SACE,AAAC,MAAMyB,KAAK;gBACVjC,YAAYA,YAAYU;gBACxBwB,SAAS5B,IAAI4B,OAAO;gBACpB5B;gBACA6B,UAAU3B;YACZ,MAAOA;QACX;IACF;IAEA,OAAOA;AACT,EAAC"}
@@ -4,13 +4,6 @@ export type Result = {
4
4
  exp: number;
5
5
  refreshedToken: string;
6
6
  setCookie?: boolean;
7
- /** @deprecated
8
- * use:
9
- * ```ts
10
- * user._strategy
11
- * ```
12
- */
13
- strategy?: string;
14
7
  user: Document;
15
8
  };
16
9
  export type Arguments = {
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAYpE,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gBAAgB,iBAAwB,SAAS,KAAG,OAAO,CAAC,MAAM,CAgL9E,CAAA"}
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAYpE,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gBAAgB,iBAAwB,SAAS,KAAG,OAAO,CAAC,MAAM,CAyK9E,CAAA"}
@@ -106,12 +106,6 @@ export const refreshOperation = async (incomingArgs)=>{
106
106
  exp,
107
107
  refreshedToken,
108
108
  setCookie: true,
109
- /** @deprecated
110
- * use:
111
- * ```ts
112
- * user._strategy
113
- * ```
114
- */ strategy: args.req.user._strategy,
115
109
  user
116
110
  };
117
111
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/refresh.ts"],"sourcesContent":["import type { Collection } from '../../collections/config/types.js'\nimport type { AuthenticatedUser } from '../../index.js'\nimport type { Document, PayloadRequest } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport { Forbidden } from '../../errors/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { getFieldsToSign } from '../getFieldsToSign.js'\nimport { jwtSign } from '../jwt.js'\nimport { removeExpiredSessions } from '../sessions.js'\n\nexport type Result = {\n exp: number\n refreshedToken: string\n setCookie?: boolean\n /** @deprecated\n * use:\n * ```ts\n * user._strategy\n * ```\n */\n strategy?: string\n user: Document\n}\n\nexport type Arguments = {\n collection: Collection\n req: PayloadRequest\n}\n\nexport const refreshOperation = async (incomingArgs: Arguments): Promise<Result> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'refresh',\n overrideAccess: false,\n })\n\n // /////////////////////////////////////\n // Refresh\n // /////////////////////////////////////\n\n const {\n collection: { config: collectionConfig },\n req,\n req: {\n payload: { config, secret },\n },\n } = args\n\n if (!args.req.user) {\n throw new Forbidden(args.req.t)\n }\n\n const pathname = new URL(args.req.url!).pathname\n\n const isGraphQL = pathname === config.routes.graphQL\n\n let user = await req.payload.db.findOne<AuthenticatedUser>({\n collection: collectionConfig.slug,\n req,\n where: { id: { equals: args.req.user.id } },\n })\n\n if (!user) {\n throw new Forbidden(args.req.t)\n }\n\n const sid = args.req.user._sid\n\n if (collectionConfig.auth.useSessions && !collectionConfig.auth.disableLocalStrategy) {\n if (!Array.isArray(user.sessions) || !sid) {\n throw new Forbidden(args.req.t)\n }\n\n const existingSession = user.sessions.find(({ id }) => id === sid)\n\n if (!existingSession) {\n throw new Forbidden(args.req.t)\n }\n\n const now = new Date()\n const tokenExpInMs = collectionConfig.auth.tokenExpiration * 1000\n existingSession.expiresAt = new Date(now.getTime() + tokenExpInMs)\n\n await req.payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: {\n ...user,\n // Prevent updatedAt from being updated when only refreshing a session\n sessions: removeExpiredSessions(user.sessions),\n updatedAt: null,\n },\n req,\n returning: false,\n })\n }\n\n user = (await req.payload.findByID({\n id: user.id,\n collection: collectionConfig.slug,\n depth: isGraphQL ? 0 : args.collection.config.auth.depth,\n req: args.req,\n })) as AuthenticatedUser\n\n if (user) {\n user.collection = args.req.user.collection\n user._strategy = args.req.user._strategy\n }\n\n let result!: Result\n\n // /////////////////////////////////////\n // refresh hook - Collection\n // /////////////////////////////////////\n\n for (const refreshHook of args.collection.config.hooks.refresh) {\n const hookResult = await refreshHook({ args, user })\n\n if (hookResult) {\n result = hookResult\n break\n }\n }\n\n if (!result) {\n const fieldsToSign = getFieldsToSign({\n collectionConfig,\n email: user?.email as string,\n sid,\n user: args?.req?.user,\n })\n\n const { exp, token: refreshedToken } = await jwtSign({\n fieldsToSign,\n secret,\n tokenExpiration: collectionConfig.auth.tokenExpiration,\n })\n\n result = {\n exp,\n refreshedToken,\n setCookie: true,\n /** @deprecated\n * use:\n * ```ts\n * user._strategy\n * ```\n */\n strategy: args.req.user._strategy,\n user,\n }\n }\n\n // /////////////////////////////////////\n // After Refresh - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRefresh?.length) {\n for (const hook of collectionConfig.hooks.afterRefresh) {\n result =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n exp: result.exp,\n req: args.req,\n token: result.refreshedToken,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'refresh',\n overrideAccess: false,\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["buildAfterOperation","buildBeforeOperation","Forbidden","commitTransaction","initTransaction","killTransaction","getFieldsToSign","jwtSign","removeExpiredSessions","refreshOperation","incomingArgs","args","shouldCommit","req","collection","config","operation","overrideAccess","collectionConfig","payload","secret","user","t","pathname","URL","url","isGraphQL","routes","graphQL","db","findOne","slug","where","id","equals","sid","_sid","auth","useSessions","disableLocalStrategy","Array","isArray","sessions","existingSession","find","now","Date","tokenExpInMs","tokenExpiration","expiresAt","getTime","updateOne","data","updatedAt","returning","findByID","depth","_strategy","result","refreshHook","hooks","refresh","hookResult","fieldsToSign","email","exp","token","refreshedToken","setCookie","strategy","afterRefresh","length","hook","context","error"],"mappings":"AAIA,SAASA,mBAAmB,QAAQ,gEAA+D;AACnG,SAASC,oBAAoB,QAAQ,iEAAgE;AACrG,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,OAAO,QAAQ,YAAW;AACnC,SAASC,qBAAqB,QAAQ,iBAAgB;AAqBtD,OAAO,MAAMC,mBAAmB,OAAOC;IACrC,IAAIC,OAAOD;IAEX,IAAI;QACF,MAAME,eAAe,MAAMR,gBAAgBO,KAAKE,GAAG;QAEnD,wCAAwC;QACxC,+BAA+B;QAC/B,wCAAwC;QAExCF,OAAO,MAAMV,qBAAqB;YAChCU;YACAG,YAAYH,KAAKG,UAAU,CAACC,MAAM;YAClCC,WAAW;YACXC,gBAAgB;QAClB;QAEA,wCAAwC;QACxC,UAAU;QACV,wCAAwC;QAExC,MAAM,EACJH,YAAY,EAAEC,QAAQG,gBAAgB,EAAE,EACxCL,GAAG,EACHA,KAAK,EACHM,SAAS,EAAEJ,MAAM,EAAEK,MAAM,EAAE,EAC5B,EACF,GAAGT;QAEJ,IAAI,CAACA,KAAKE,GAAG,CAACQ,IAAI,EAAE;YAClB,MAAM,IAAInB,UAAUS,KAAKE,GAAG,CAACS,CAAC;QAChC;QAEA,MAAMC,WAAW,IAAIC,IAAIb,KAAKE,GAAG,CAACY,GAAG,EAAGF,QAAQ;QAEhD,MAAMG,YAAYH,aAAaR,OAAOY,MAAM,CAACC,OAAO;QAEpD,IAAIP,OAAO,MAAMR,IAAIM,OAAO,CAACU,EAAE,CAACC,OAAO,CAAoB;YACzDhB,YAAYI,iBAAiBa,IAAI;YACjClB;YACAmB,OAAO;gBAAEC,IAAI;oBAAEC,QAAQvB,KAAKE,GAAG,CAACQ,IAAI,CAACY,EAAE;gBAAC;YAAE;QAC5C;QAEA,IAAI,CAACZ,MAAM;YACT,MAAM,IAAInB,UAAUS,KAAKE,GAAG,CAACS,CAAC;QAChC;QAEA,MAAMa,MAAMxB,KAAKE,GAAG,CAACQ,IAAI,CAACe,IAAI;QAE9B,IAAIlB,iBAAiBmB,IAAI,CAACC,WAAW,IAAI,CAACpB,iBAAiBmB,IAAI,CAACE,oBAAoB,EAAE;YACpF,IAAI,CAACC,MAAMC,OAAO,CAACpB,KAAKqB,QAAQ,KAAK,CAACP,KAAK;gBACzC,MAAM,IAAIjC,UAAUS,KAAKE,GAAG,CAACS,CAAC;YAChC;YAEA,MAAMqB,kBAAkBtB,KAAKqB,QAAQ,CAACE,IAAI,CAAC,CAAC,EAAEX,EAAE,EAAE,GAAKA,OAAOE;YAE9D,IAAI,CAACQ,iBAAiB;gBACpB,MAAM,IAAIzC,UAAUS,KAAKE,GAAG,CAACS,CAAC;YAChC;YAEA,MAAMuB,MAAM,IAAIC;YAChB,MAAMC,eAAe7B,iBAAiBmB,IAAI,CAACW,eAAe,GAAG;YAC7DL,gBAAgBM,SAAS,GAAG,IAAIH,KAAKD,IAAIK,OAAO,KAAKH;YAErD,MAAMlC,IAAIM,OAAO,CAACU,EAAE,CAACsB,SAAS,CAAC;gBAC7BlB,IAAIZ,KAAKY,EAAE;gBACXnB,YAAYI,iBAAiBa,IAAI;gBACjCqB,MAAM;oBACJ,GAAG/B,IAAI;oBACP,sEAAsE;oBACtEqB,UAAUlC,sBAAsBa,KAAKqB,QAAQ;oBAC7CW,WAAW;gBACb;gBACAxC;gBACAyC,WAAW;YACb;QACF;QAEAjC,OAAQ,MAAMR,IAAIM,OAAO,CAACoC,QAAQ,CAAC;YACjCtB,IAAIZ,KAAKY,EAAE;YACXnB,YAAYI,iBAAiBa,IAAI;YACjCyB,OAAO9B,YAAY,IAAIf,KAAKG,UAAU,CAACC,MAAM,CAACsB,IAAI,CAACmB,KAAK;YACxD3C,KAAKF,KAAKE,GAAG;QACf;QAEA,IAAIQ,MAAM;YACRA,KAAKP,UAAU,GAAGH,KAAKE,GAAG,CAACQ,IAAI,CAACP,UAAU;YAC1CO,KAAKoC,SAAS,GAAG9C,KAAKE,GAAG,CAACQ,IAAI,CAACoC,SAAS;QAC1C;QAEA,IAAIC;QAEJ,wCAAwC;QACxC,4BAA4B;QAC5B,wCAAwC;QAExC,KAAK,MAAMC,eAAehD,KAAKG,UAAU,CAACC,MAAM,CAAC6C,KAAK,CAACC,OAAO,CAAE;YAC9D,MAAMC,aAAa,MAAMH,YAAY;gBAAEhD;gBAAMU;YAAK;YAElD,IAAIyC,YAAY;gBACdJ,SAASI;gBACT;YACF;QACF;QAEA,IAAI,CAACJ,QAAQ;YACX,MAAMK,eAAezD,gBAAgB;gBACnCY;gBACA8C,OAAO3C,MAAM2C;gBACb7B;gBACAd,MAAMV,MAAME,KAAKQ;YACnB;YAEA,MAAM,EAAE4C,GAAG,EAAEC,OAAOC,cAAc,EAAE,GAAG,MAAM5D,QAAQ;gBACnDwD;gBACA3C;gBACA4B,iBAAiB9B,iBAAiBmB,IAAI,CAACW,eAAe;YACxD;YAEAU,SAAS;gBACPO;gBACAE;gBACAC,WAAW;gBACX;;;;;SAKC,GACDC,UAAU1D,KAAKE,GAAG,CAACQ,IAAI,CAACoC,SAAS;gBACjCpC;YACF;QACF;QAEA,wCAAwC;QACxC,6BAA6B;QAC7B,wCAAwC;QAExC,IAAIH,iBAAiB0C,KAAK,EAAEU,cAAcC,QAAQ;YAChD,KAAK,MAAMC,QAAQtD,iBAAiB0C,KAAK,CAACU,YAAY,CAAE;gBACtDZ,SACE,AAAC,MAAMc,KAAK;oBACV1D,YAAYH,KAAKG,UAAU,EAAEC;oBAC7B0D,SAAS9D,KAAKE,GAAG,CAAC4D,OAAO;oBACzBR,KAAKP,OAAOO,GAAG;oBACfpD,KAAKF,KAAKE,GAAG;oBACbqD,OAAOR,OAAOS,cAAc;gBAC9B,MAAOT;YACX;QACF;QAEA,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExCA,SAAS,MAAM1D,oBAAoB;YACjCW;YACAG,YAAYH,KAAKG,UAAU,EAAEC;YAC7BC,WAAW;YACXC,gBAAgB;YAChByC;QACF;QAEA,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,IAAI9C,cAAc;YAChB,MAAMT,kBAAkBU;QAC1B;QAEA,OAAO6C;IACT,EAAE,OAAOgB,OAAgB;QACvB,MAAMrE,gBAAgBM,KAAKE,GAAG;QAC9B,MAAM6D;IACR;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/auth/operations/refresh.ts"],"sourcesContent":["import type { Collection } from '../../collections/config/types.js'\nimport type { AuthenticatedUser } from '../../index.js'\nimport type { Document, PayloadRequest } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport { Forbidden } from '../../errors/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { getFieldsToSign } from '../getFieldsToSign.js'\nimport { jwtSign } from '../jwt.js'\nimport { removeExpiredSessions } from '../sessions.js'\n\nexport type Result = {\n exp: number\n refreshedToken: string\n setCookie?: boolean\n user: Document\n}\n\nexport type Arguments = {\n collection: Collection\n req: PayloadRequest\n}\n\nexport const refreshOperation = async (incomingArgs: Arguments): Promise<Result> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'refresh',\n overrideAccess: false,\n })\n\n // /////////////////////////////////////\n // Refresh\n // /////////////////////////////////////\n\n const {\n collection: { config: collectionConfig },\n req,\n req: {\n payload: { config, secret },\n },\n } = args\n\n if (!args.req.user) {\n throw new Forbidden(args.req.t)\n }\n\n const pathname = new URL(args.req.url!).pathname\n\n const isGraphQL = pathname === config.routes.graphQL\n\n let user = await req.payload.db.findOne<AuthenticatedUser>({\n collection: collectionConfig.slug,\n req,\n where: { id: { equals: args.req.user.id } },\n })\n\n if (!user) {\n throw new Forbidden(args.req.t)\n }\n\n const sid = args.req.user._sid\n\n if (collectionConfig.auth.useSessions && !collectionConfig.auth.disableLocalStrategy) {\n if (!Array.isArray(user.sessions) || !sid) {\n throw new Forbidden(args.req.t)\n }\n\n const existingSession = user.sessions.find(({ id }) => id === sid)\n\n if (!existingSession) {\n throw new Forbidden(args.req.t)\n }\n\n const now = new Date()\n const tokenExpInMs = collectionConfig.auth.tokenExpiration * 1000\n existingSession.expiresAt = new Date(now.getTime() + tokenExpInMs)\n\n await req.payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: {\n ...user,\n // Prevent updatedAt from being updated when only refreshing a session\n sessions: removeExpiredSessions(user.sessions),\n updatedAt: null,\n },\n req,\n returning: false,\n })\n }\n\n user = (await req.payload.findByID({\n id: user.id,\n collection: collectionConfig.slug,\n depth: isGraphQL ? 0 : args.collection.config.auth.depth,\n req: args.req,\n })) as AuthenticatedUser\n\n if (user) {\n user.collection = args.req.user.collection\n user._strategy = args.req.user._strategy\n }\n\n let result!: Result\n\n // /////////////////////////////////////\n // refresh hook - Collection\n // /////////////////////////////////////\n\n for (const refreshHook of args.collection.config.hooks.refresh) {\n const hookResult = await refreshHook({ args, user })\n\n if (hookResult) {\n result = hookResult\n break\n }\n }\n\n if (!result) {\n const fieldsToSign = getFieldsToSign({\n collectionConfig,\n email: user?.email as string,\n sid,\n user: args?.req?.user,\n })\n\n const { exp, token: refreshedToken } = await jwtSign({\n fieldsToSign,\n secret,\n tokenExpiration: collectionConfig.auth.tokenExpiration,\n })\n\n result = {\n exp,\n refreshedToken,\n setCookie: true,\n user,\n }\n }\n\n // /////////////////////////////////////\n // After Refresh - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRefresh?.length) {\n for (const hook of collectionConfig.hooks.afterRefresh) {\n result =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n exp: result.exp,\n req: args.req,\n token: result.refreshedToken,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'refresh',\n overrideAccess: false,\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["buildAfterOperation","buildBeforeOperation","Forbidden","commitTransaction","initTransaction","killTransaction","getFieldsToSign","jwtSign","removeExpiredSessions","refreshOperation","incomingArgs","args","shouldCommit","req","collection","config","operation","overrideAccess","collectionConfig","payload","secret","user","t","pathname","URL","url","isGraphQL","routes","graphQL","db","findOne","slug","where","id","equals","sid","_sid","auth","useSessions","disableLocalStrategy","Array","isArray","sessions","existingSession","find","now","Date","tokenExpInMs","tokenExpiration","expiresAt","getTime","updateOne","data","updatedAt","returning","findByID","depth","_strategy","result","refreshHook","hooks","refresh","hookResult","fieldsToSign","email","exp","token","refreshedToken","setCookie","afterRefresh","length","hook","context","error"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ServerAdapter } from '../../admin/adapters/server.js';
2
+ import type { Auth } from '../types.js';
3
+ /**
4
+ * Object form returned by `generatePayloadCookie`/`generateExpiredPayloadCookie`
5
+ * when `returnCookieAsObject` is `true`.
6
+ */
7
+ export type GeneratedCookie = {
8
+ domain?: string;
9
+ expires?: string;
10
+ httpOnly?: boolean;
11
+ maxAge?: number;
12
+ name: string;
13
+ path?: string;
14
+ sameSite?: 'Lax' | 'None' | 'Strict';
15
+ secure?: boolean;
16
+ value: string | undefined;
17
+ };
18
+ type AuthCookieArgs = {
19
+ authConfig: Auth;
20
+ cookiePrefix: string;
21
+ serverAdapter: ServerAdapter;
22
+ };
23
+ /** Writes an already-generated cookie through the framework's cookie API. */
24
+ export declare function applyAuthCookie({ cookie, serverAdapter, }: {
25
+ cookie: GeneratedCookie;
26
+ serverAdapter: ServerAdapter;
27
+ }): Promise<void>;
28
+ /** Writes the Payload auth cookie for `token` through the framework's cookie API. */
29
+ export declare function setAuthCookie({ authConfig, cookiePrefix, serverAdapter, token, }: {
30
+ token: string;
31
+ } & AuthCookieArgs): Promise<void>;
32
+ /**
33
+ * Expires the Payload auth cookie. Written with the same `domain`/`path`/`secure`
34
+ * attributes it was set with — a mismatched `domain` leaves the original cookie
35
+ * in place.
36
+ */
37
+ export declare function clearAuthCookie({ authConfig, cookiePrefix, serverAdapter, }: AuthCookieArgs): Promise<void>;
38
+ /** Reads the request's existing Payload auth cookie, if any. */
39
+ export declare function getExistingAuthToken({ cookiePrefix, serverAdapter, }: {
40
+ cookiePrefix: string;
41
+ serverAdapter: ServerAdapter;
42
+ }): Promise<{
43
+ name: string;
44
+ value: string;
45
+ } | undefined>;
46
+ export {};
47
+ //# sourceMappingURL=cookies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../../src/auth/serverFunctions/cookies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAIvC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACpC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,CAAA;AAcD,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,IAAI,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,aAAa,CAAA;CAC7B,CAAA;AAED,6EAA6E;AAC7E,wBAAsB,eAAe,CAAC,EACpC,MAAM,EACN,aAAa,GACd,EAAE;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhB;AAED,qFAAqF;AACrF,wBAAsB,aAAa,CAAC,EAClC,UAAU,EACV,YAAY,EACZ,aAAa,EACb,KAAK,GACN,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,YAAY,EACZ,aAAa,GACd,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhC;AAED,gEAAgE;AAChE,wBAAsB,oBAAoB,CAAC,EACzC,YAAY,EACZ,aAAa,GACd,EAAE;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,aAAa,CAAA;CAC7B,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CASvD"}
@@ -0,0 +1,52 @@
1
+ import { generateExpiredPayloadCookie, generatePayloadCookie } from '../cookies.js';
2
+ // `generateCookie` emits capitalized `SameSite` values (as they appear in the
3
+ // header); `CookieOptions` takes the lowercase form.
4
+ const toCookieOptions = (cookie)=>({
5
+ domain: cookie.domain,
6
+ expires: cookie.expires ? new Date(cookie.expires) : undefined,
7
+ httpOnly: cookie.httpOnly,
8
+ maxAge: cookie.maxAge,
9
+ path: cookie.path,
10
+ sameSite: cookie.sameSite?.toLowerCase(),
11
+ secure: cookie.secure
12
+ });
13
+ /** Writes an already-generated cookie through the framework's cookie API. */ export async function applyAuthCookie({ cookie, serverAdapter }) {
14
+ if (!cookie.value) {
15
+ return;
16
+ }
17
+ await serverAdapter.setCookie(cookie.name, cookie.value, toCookieOptions(cookie));
18
+ }
19
+ /** Writes the Payload auth cookie for `token` through the framework's cookie API. */ export async function setAuthCookie({ authConfig, cookiePrefix, serverAdapter, token }) {
20
+ const cookie = generatePayloadCookie({
21
+ collectionAuthConfig: authConfig,
22
+ cookiePrefix,
23
+ returnCookieAsObject: true,
24
+ token
25
+ });
26
+ await applyAuthCookie({
27
+ cookie,
28
+ serverAdapter
29
+ });
30
+ }
31
+ /**
32
+ * Expires the Payload auth cookie. Written with the same `domain`/`path`/`secure`
33
+ * attributes it was set with — a mismatched `domain` leaves the original cookie
34
+ * in place.
35
+ */ export async function clearAuthCookie({ authConfig, cookiePrefix, serverAdapter }) {
36
+ const cookie = generateExpiredPayloadCookie({
37
+ collectionAuthConfig: authConfig,
38
+ cookiePrefix,
39
+ returnCookieAsObject: true
40
+ });
41
+ await serverAdapter.setCookie(cookie.name, '', toCookieOptions(cookie));
42
+ }
43
+ /** Reads the request's existing Payload auth cookie, if any. */ export async function getExistingAuthToken({ cookiePrefix, serverAdapter }) {
44
+ const store = await serverAdapter.getCookies();
45
+ const allCookies = store.getAll?.();
46
+ if (allCookies) {
47
+ return allCookies.find((cookie)=>cookie.name.startsWith(cookiePrefix));
48
+ }
49
+ return store.get(`${cookiePrefix}-token`) ?? undefined;
50
+ }
51
+
52
+ //# sourceMappingURL=cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/auth/serverFunctions/cookies.ts"],"sourcesContent":["import type { CookieOptions } from '../../admin/adapters/cookies.js'\nimport type { ServerAdapter } from '../../admin/adapters/server.js'\nimport type { Auth } from '../types.js'\n\nimport { generateExpiredPayloadCookie, generatePayloadCookie } from '../cookies.js'\n\n/**\n * Object form returned by `generatePayloadCookie`/`generateExpiredPayloadCookie`\n * when `returnCookieAsObject` is `true`.\n */\nexport type GeneratedCookie = {\n domain?: string\n expires?: string\n httpOnly?: boolean\n maxAge?: number\n name: string\n path?: string\n sameSite?: 'Lax' | 'None' | 'Strict'\n secure?: boolean\n value: string | undefined\n}\n\n// `generateCookie` emits capitalized `SameSite` values (as they appear in the\n// header); `CookieOptions` takes the lowercase form.\nconst toCookieOptions = (cookie: GeneratedCookie): CookieOptions => ({\n domain: cookie.domain,\n expires: cookie.expires ? new Date(cookie.expires) : undefined,\n httpOnly: cookie.httpOnly,\n maxAge: cookie.maxAge,\n path: cookie.path,\n sameSite: cookie.sameSite?.toLowerCase() as CookieOptions['sameSite'],\n secure: cookie.secure,\n})\n\ntype AuthCookieArgs = {\n authConfig: Auth\n cookiePrefix: string\n serverAdapter: ServerAdapter\n}\n\n/** Writes an already-generated cookie through the framework's cookie API. */\nexport async function applyAuthCookie({\n cookie,\n serverAdapter,\n}: {\n cookie: GeneratedCookie\n serverAdapter: ServerAdapter\n}): Promise<void> {\n if (!cookie.value) {\n return\n }\n\n await serverAdapter.setCookie(cookie.name, cookie.value, toCookieOptions(cookie))\n}\n\n/** Writes the Payload auth cookie for `token` through the framework's cookie API. */\nexport async function setAuthCookie({\n authConfig,\n cookiePrefix,\n serverAdapter,\n token,\n}: { token: string } & AuthCookieArgs): Promise<void> {\n const cookie = generatePayloadCookie({\n collectionAuthConfig: authConfig,\n cookiePrefix,\n returnCookieAsObject: true,\n token,\n }) as GeneratedCookie\n\n await applyAuthCookie({ cookie, serverAdapter })\n}\n\n/**\n * Expires the Payload auth cookie. Written with the same `domain`/`path`/`secure`\n * attributes it was set with — a mismatched `domain` leaves the original cookie\n * in place.\n */\nexport async function clearAuthCookie({\n authConfig,\n cookiePrefix,\n serverAdapter,\n}: AuthCookieArgs): Promise<void> {\n const cookie = generateExpiredPayloadCookie({\n collectionAuthConfig: authConfig,\n cookiePrefix,\n returnCookieAsObject: true,\n }) as GeneratedCookie\n\n await serverAdapter.setCookie(cookie.name, '', toCookieOptions(cookie))\n}\n\n/** Reads the request's existing Payload auth cookie, if any. */\nexport async function getExistingAuthToken({\n cookiePrefix,\n serverAdapter,\n}: {\n cookiePrefix: string\n serverAdapter: ServerAdapter\n}): Promise<{ name: string; value: string } | undefined> {\n const store = await serverAdapter.getCookies()\n const allCookies = store.getAll?.()\n\n if (allCookies) {\n return allCookies.find((cookie) => cookie.name.startsWith(cookiePrefix))\n }\n\n return store.get(`${cookiePrefix}-token`) ?? undefined\n}\n"],"names":["generateExpiredPayloadCookie","generatePayloadCookie","toCookieOptions","cookie","domain","expires","Date","undefined","httpOnly","maxAge","path","sameSite","toLowerCase","secure","applyAuthCookie","serverAdapter","value","setCookie","name","setAuthCookie","authConfig","cookiePrefix","token","collectionAuthConfig","returnCookieAsObject","clearAuthCookie","getExistingAuthToken","store","getCookies","allCookies","getAll","find","startsWith","get"],"mappings":"AAIA,SAASA,4BAA4B,EAAEC,qBAAqB,QAAQ,gBAAe;AAkBnF,8EAA8E;AAC9E,qDAAqD;AACrD,MAAMC,kBAAkB,CAACC,SAA4C,CAAA;QACnEC,QAAQD,OAAOC,MAAM;QACrBC,SAASF,OAAOE,OAAO,GAAG,IAAIC,KAAKH,OAAOE,OAAO,IAAIE;QACrDC,UAAUL,OAAOK,QAAQ;QACzBC,QAAQN,OAAOM,MAAM;QACrBC,MAAMP,OAAOO,IAAI;QACjBC,UAAUR,OAAOQ,QAAQ,EAAEC;QAC3BC,QAAQV,OAAOU,MAAM;IACvB,CAAA;AAQA,2EAA2E,GAC3E,OAAO,eAAeC,gBAAgB,EACpCX,MAAM,EACNY,aAAa,EAId;IACC,IAAI,CAACZ,OAAOa,KAAK,EAAE;QACjB;IACF;IAEA,MAAMD,cAAcE,SAAS,CAACd,OAAOe,IAAI,EAAEf,OAAOa,KAAK,EAAEd,gBAAgBC;AAC3E;AAEA,mFAAmF,GACnF,OAAO,eAAegB,cAAc,EAClCC,UAAU,EACVC,YAAY,EACZN,aAAa,EACbO,KAAK,EAC8B;IACnC,MAAMnB,SAASF,sBAAsB;QACnCsB,sBAAsBH;QACtBC;QACAG,sBAAsB;QACtBF;IACF;IAEA,MAAMR,gBAAgB;QAAEX;QAAQY;IAAc;AAChD;AAEA;;;;CAIC,GACD,OAAO,eAAeU,gBAAgB,EACpCL,UAAU,EACVC,YAAY,EACZN,aAAa,EACE;IACf,MAAMZ,SAASH,6BAA6B;QAC1CuB,sBAAsBH;QACtBC;QACAG,sBAAsB;IACxB;IAEA,MAAMT,cAAcE,SAAS,CAACd,OAAOe,IAAI,EAAE,IAAIhB,gBAAgBC;AACjE;AAEA,8DAA8D,GAC9D,OAAO,eAAeuB,qBAAqB,EACzCL,YAAY,EACZN,aAAa,EAId;IACC,MAAMY,QAAQ,MAAMZ,cAAca,UAAU;IAC5C,MAAMC,aAAaF,MAAMG,MAAM;IAE/B,IAAID,YAAY;QACd,OAAOA,WAAWE,IAAI,CAAC,CAAC5B,SAAWA,OAAOe,IAAI,CAACc,UAAU,CAACX;IAC5D;IAEA,OAAOM,MAAMM,GAAG,CAAC,GAAGZ,aAAa,MAAM,CAAC,KAAKd;AAC/C"}
@@ -0,0 +1,29 @@
1
+ import type { ServerAdapter } from '../../admin/adapters/server.js';
2
+ import type { SanitizedConfig } from '../../config/types.js';
3
+ import type { AuthCollectionSlug } from '../../index.js';
4
+ import type { MaybePromise } from '../../types/index.js';
5
+ import type { LoginResult } from '../operations/login.js';
6
+ export type LoginArgs<TSlug extends AuthCollectionSlug> = {
7
+ collection: TSlug;
8
+ config: MaybePromise<SanitizedConfig>;
9
+ password: string;
10
+ serverAdapter: ServerAdapter;
11
+ } & ({
12
+ email: string;
13
+ username?: never;
14
+ } | {
15
+ email?: never;
16
+ username: string;
17
+ });
18
+ /**
19
+ * `LoginArgs` as the adapters expose it — they bind `serverAdapter` themselves.
20
+ * Distributes over the email/username union so the either-or survives; a plain
21
+ * `Omit` collapses the union and accepts both keys at once.
22
+ */
23
+ export type LoginArgsWithoutServerAdapter<TSlug extends AuthCollectionSlug> = LoginArgs<TSlug> extends infer TArgs ? TArgs extends unknown ? Omit<TArgs, 'serverAdapter'> : never : never;
24
+ /**
25
+ * Logs a user in and writes the auth cookie through the supplied `serverAdapter`,
26
+ * so the function is framework-agnostic; each adapter binds its own.
27
+ */
28
+ export declare function login<TSlug extends AuthCollectionSlug>({ collection, config, email, password, serverAdapter, username, }: LoginArgs<TSlug>): Promise<LoginResult<TSlug>>;
29
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/auth/serverFunctions/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAOzD,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,kBAAkB,IAAI;IACxD,UAAU,EAAE,KAAK,CAAA;IACjB,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;CAC7B,GAAG,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE/E;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,CAAC,KAAK,SAAS,kBAAkB,IACxE,SAAS,CAAC,KAAK,CAAC,SAAS,MAAM,KAAK,GAChC,KAAK,SAAS,OAAO,GACnB,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,GAC5B,KAAK,GACP,KAAK,CAAA;AAEX;;;GAGG;AACH,wBAAsB,KAAK,CAAC,KAAK,SAAS,kBAAkB,EAAE,EAC5D,UAAU,EACV,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,QAAQ,GACT,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAgDhD"}
@@ -0,0 +1,63 @@
1
+ import { getPayload } from '../../index.js';
2
+ import { createLocalReq } from '../../utilities/createLocalReq.js';
3
+ import { loginWithCookie } from '../loginWithCookie.js';
4
+ import { applyAuthCookie } from './cookies.js';
5
+ /**
6
+ * Logs a user in and writes the auth cookie through the supplied `serverAdapter`,
7
+ * so the function is framework-agnostic; each adapter binds its own.
8
+ */ export async function login({ collection, config, email, password, serverAdapter, username }) {
9
+ const payload = await getPayload({
10
+ config,
11
+ cron: true
12
+ });
13
+ const authConfig = payload.collections[collection]?.config.auth;
14
+ if (!authConfig) {
15
+ throw new Error(`No auth config found for collection: ${collection}`);
16
+ }
17
+ const loginWithUsername = authConfig.loginWithUsername ?? false;
18
+ if (loginWithUsername) {
19
+ if (loginWithUsername.allowEmailLogin) {
20
+ if (!email && !username) {
21
+ throw new Error('Email or username is required.');
22
+ }
23
+ } else {
24
+ if (!username) {
25
+ throw new Error('Username is required.');
26
+ }
27
+ }
28
+ } else {
29
+ if (!email) {
30
+ throw new Error('Email is required.');
31
+ }
32
+ }
33
+ let loginData;
34
+ if (loginWithUsername) {
35
+ loginData = username ? {
36
+ password,
37
+ username
38
+ } : {
39
+ email,
40
+ password
41
+ };
42
+ } else {
43
+ loginData = {
44
+ email,
45
+ password
46
+ };
47
+ }
48
+ const collectionConfig = payload.collections[collection];
49
+ const { cookie, result } = await loginWithCookie({
50
+ collection: collectionConfig,
51
+ data: loginData,
52
+ overrideAccess: true,
53
+ req: await createLocalReq({}, payload),
54
+ returnCookieAsObject: true
55
+ });
56
+ await applyAuthCookie({
57
+ cookie,
58
+ serverAdapter
59
+ });
60
+ return result;
61
+ }
62
+
63
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/auth/serverFunctions/login.ts"],"sourcesContent":["import type { ServerAdapter } from '../../admin/adapters/server.js'\nimport type { SanitizedConfig } from '../../config/types.js'\nimport type { AuthCollectionSlug } from '../../index.js'\nimport type { MaybePromise } from '../../types/index.js'\nimport type { LoginResult } from '../operations/login.js'\n\nimport { getPayload } from '../../index.js'\nimport { createLocalReq } from '../../utilities/createLocalReq.js'\nimport { loginWithCookie } from '../loginWithCookie.js'\nimport { applyAuthCookie } from './cookies.js'\n\nexport type LoginArgs<TSlug extends AuthCollectionSlug> = {\n collection: TSlug\n config: MaybePromise<SanitizedConfig>\n password: string\n serverAdapter: ServerAdapter\n} & ({ email: string; username?: never } | { email?: never; username: string })\n\n/**\n * `LoginArgs` as the adapters expose it — they bind `serverAdapter` themselves.\n * Distributes over the email/username union so the either-or survives; a plain\n * `Omit` collapses the union and accepts both keys at once.\n */\nexport type LoginArgsWithoutServerAdapter<TSlug extends AuthCollectionSlug> =\n LoginArgs<TSlug> extends infer TArgs\n ? TArgs extends unknown\n ? Omit<TArgs, 'serverAdapter'>\n : never\n : never\n\n/**\n * Logs a user in and writes the auth cookie through the supplied `serverAdapter`,\n * so the function is framework-agnostic; each adapter binds its own.\n */\nexport async function login<TSlug extends AuthCollectionSlug>({\n collection,\n config,\n email,\n password,\n serverAdapter,\n username,\n}: LoginArgs<TSlug>): Promise<LoginResult<TSlug>> {\n const payload = await getPayload({ config, cron: true })\n\n const authConfig = payload.collections[collection]?.config.auth\n\n if (!authConfig) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const loginWithUsername = authConfig.loginWithUsername ?? false\n\n if (loginWithUsername) {\n if (loginWithUsername.allowEmailLogin) {\n if (!email && !username) {\n throw new Error('Email or username is required.')\n }\n } else {\n if (!username) {\n throw new Error('Username is required.')\n }\n }\n } else {\n if (!email) {\n throw new Error('Email is required.')\n }\n }\n\n let loginData\n\n if (loginWithUsername) {\n loginData = username ? { password, username } : { email, password }\n } else {\n loginData = { email, password }\n }\n\n const collectionConfig = payload.collections[collection]!\n\n const { cookie, result } = await loginWithCookie({\n collection: collectionConfig,\n data: loginData as Parameters<typeof loginWithCookie>[0]['data'],\n overrideAccess: true,\n req: await createLocalReq({}, payload),\n returnCookieAsObject: true,\n })\n\n await applyAuthCookie({ cookie, serverAdapter })\n\n return result as LoginResult<TSlug>\n}\n"],"names":["getPayload","createLocalReq","loginWithCookie","applyAuthCookie","login","collection","config","email","password","serverAdapter","username","payload","cron","authConfig","collections","auth","Error","loginWithUsername","allowEmailLogin","loginData","collectionConfig","cookie","result","data","overrideAccess","req","returnCookieAsObject"],"mappings":"AAMA,SAASA,UAAU,QAAQ,iBAAgB;AAC3C,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,eAAe,QAAQ,eAAc;AAqB9C;;;CAGC,GACD,OAAO,eAAeC,MAAwC,EAC5DC,UAAU,EACVC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,aAAa,EACbC,QAAQ,EACS;IACjB,MAAMC,UAAU,MAAMX,WAAW;QAAEM;QAAQM,MAAM;IAAK;IAEtD,MAAMC,aAAaF,QAAQG,WAAW,CAACT,WAAW,EAAEC,OAAOS;IAE3D,IAAI,CAACF,YAAY;QACf,MAAM,IAAIG,MAAM,CAAC,qCAAqC,EAAEX,YAAY;IACtE;IAEA,MAAMY,oBAAoBJ,WAAWI,iBAAiB,IAAI;IAE1D,IAAIA,mBAAmB;QACrB,IAAIA,kBAAkBC,eAAe,EAAE;YACrC,IAAI,CAACX,SAAS,CAACG,UAAU;gBACvB,MAAM,IAAIM,MAAM;YAClB;QACF,OAAO;YACL,IAAI,CAACN,UAAU;gBACb,MAAM,IAAIM,MAAM;YAClB;QACF;IACF,OAAO;QACL,IAAI,CAACT,OAAO;YACV,MAAM,IAAIS,MAAM;QAClB;IACF;IAEA,IAAIG;IAEJ,IAAIF,mBAAmB;QACrBE,YAAYT,WAAW;YAAEF;YAAUE;QAAS,IAAI;YAAEH;YAAOC;QAAS;IACpE,OAAO;QACLW,YAAY;YAAEZ;YAAOC;QAAS;IAChC;IAEA,MAAMY,mBAAmBT,QAAQG,WAAW,CAACT,WAAW;IAExD,MAAM,EAAEgB,MAAM,EAAEC,MAAM,EAAE,GAAG,MAAMpB,gBAAgB;QAC/CG,YAAYe;QACZG,MAAMJ;QACNK,gBAAgB;QAChBC,KAAK,MAAMxB,eAAe,CAAC,GAAGU;QAC9Be,sBAAsB;IACxB;IAEA,MAAMvB,gBAAgB;QAAEkB;QAAQZ;IAAc;IAE9C,OAAOa;AACT"}
@@ -0,0 +1,17 @@
1
+ import type { ServerAdapter } from '../../admin/adapters/server.js';
2
+ import type { SanitizedConfig } from '../../config/types.js';
3
+ import type { MaybePromise } from '../../types/index.js';
4
+ export type LogoutArgs = {
5
+ allSessions?: boolean;
6
+ config: MaybePromise<SanitizedConfig>;
7
+ serverAdapter: ServerAdapter;
8
+ };
9
+ /**
10
+ * Logs the current user out and expires the auth cookie through the supplied
11
+ * `serverAdapter`, so the function is framework-agnostic; each adapter binds its own.
12
+ */
13
+ export declare function logout({ allSessions, config, serverAdapter, }: LogoutArgs): Promise<{
14
+ message: string;
15
+ success: boolean;
16
+ }>;
17
+ //# sourceMappingURL=logout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/auth/serverFunctions/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOxD,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;IACrC,aAAa,EAAE,aAAa,CAAA;CAC7B,CAAA;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,EAC3B,WAAmB,EACnB,MAAM,EACN,aAAa,GACd,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAoC7D"}
@@ -0,0 +1,58 @@
1
+ import { getPayload } from '../../index.js';
2
+ import { createLocalReq } from '../../utilities/createLocalReq.js';
3
+ import { logoutOperation } from '../operations/logout.js';
4
+ import { clearAuthCookie } from './cookies.js';
5
+ /**
6
+ * Logs the current user out and expires the auth cookie through the supplied
7
+ * `serverAdapter`, so the function is framework-agnostic; each adapter binds its own.
8
+ */ export async function logout({ allSessions = false, config, serverAdapter }) {
9
+ const payload = await getPayload({
10
+ config,
11
+ cron: true
12
+ });
13
+ const headers = await serverAdapter.getHeaders();
14
+ const authResult = await payload.auth({
15
+ headers
16
+ });
17
+ if (!authResult.user) {
18
+ return {
19
+ message: 'User already logged out',
20
+ success: true
21
+ };
22
+ }
23
+ const { user } = authResult;
24
+ const req = await createLocalReq({
25
+ user
26
+ }, payload);
27
+ const collection = payload.collections[user.collection];
28
+ if (!collection) {
29
+ return {
30
+ message: 'Collection not found',
31
+ success: false
32
+ };
33
+ }
34
+ const logoutResult = await logoutOperation({
35
+ allSessions,
36
+ collection,
37
+ req
38
+ });
39
+ if (!logoutResult) {
40
+ return {
41
+ message: 'Logout failed',
42
+ success: false
43
+ };
44
+ }
45
+ if (collection.config.auth) {
46
+ await clearAuthCookie({
47
+ authConfig: collection.config.auth,
48
+ cookiePrefix: payload.config.cookiePrefix,
49
+ serverAdapter
50
+ });
51
+ }
52
+ return {
53
+ message: 'User logged out successfully',
54
+ success: true
55
+ };
56
+ }
57
+
58
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/auth/serverFunctions/logout.ts"],"sourcesContent":["import type { ServerAdapter } from '../../admin/adapters/server.js'\nimport type { SanitizedConfig } from '../../config/types.js'\nimport type { MaybePromise } from '../../types/index.js'\n\nimport { getPayload } from '../../index.js'\nimport { createLocalReq } from '../../utilities/createLocalReq.js'\nimport { logoutOperation } from '../operations/logout.js'\nimport { clearAuthCookie } from './cookies.js'\n\nexport type LogoutArgs = {\n allSessions?: boolean\n config: MaybePromise<SanitizedConfig>\n serverAdapter: ServerAdapter\n}\n\n/**\n * Logs the current user out and expires the auth cookie through the supplied\n * `serverAdapter`, so the function is framework-agnostic; each adapter binds its own.\n */\nexport async function logout({\n allSessions = false,\n config,\n serverAdapter,\n}: LogoutArgs): Promise<{ message: string; success: boolean }> {\n const payload = await getPayload({ config, cron: true })\n const headers = await serverAdapter.getHeaders()\n const authResult = await payload.auth({ headers })\n\n if (!authResult.user) {\n return { message: 'User already logged out', success: true }\n }\n\n const { user } = authResult\n const req = await createLocalReq({ user }, payload)\n const collection = payload.collections[user.collection]\n\n if (!collection) {\n return { message: 'Collection not found', success: false }\n }\n\n const logoutResult = await logoutOperation({\n allSessions,\n collection,\n req,\n })\n\n if (!logoutResult) {\n return { message: 'Logout failed', success: false }\n }\n\n if (collection.config.auth) {\n await clearAuthCookie({\n authConfig: collection.config.auth,\n cookiePrefix: payload.config.cookiePrefix,\n serverAdapter,\n })\n }\n\n return { message: 'User logged out successfully', success: true }\n}\n"],"names":["getPayload","createLocalReq","logoutOperation","clearAuthCookie","logout","allSessions","config","serverAdapter","payload","cron","headers","getHeaders","authResult","auth","user","message","success","req","collection","collections","logoutResult","authConfig","cookiePrefix"],"mappings":"AAIA,SAASA,UAAU,QAAQ,iBAAgB;AAC3C,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,eAAe,QAAQ,0BAAyB;AACzD,SAASC,eAAe,QAAQ,eAAc;AAQ9C;;;CAGC,GACD,OAAO,eAAeC,OAAO,EAC3BC,cAAc,KAAK,EACnBC,MAAM,EACNC,aAAa,EACF;IACX,MAAMC,UAAU,MAAMR,WAAW;QAAEM;QAAQG,MAAM;IAAK;IACtD,MAAMC,UAAU,MAAMH,cAAcI,UAAU;IAC9C,MAAMC,aAAa,MAAMJ,QAAQK,IAAI,CAAC;QAAEH;IAAQ;IAEhD,IAAI,CAACE,WAAWE,IAAI,EAAE;QACpB,OAAO;YAAEC,SAAS;YAA2BC,SAAS;QAAK;IAC7D;IAEA,MAAM,EAAEF,IAAI,EAAE,GAAGF;IACjB,MAAMK,MAAM,MAAMhB,eAAe;QAAEa;IAAK,GAAGN;IAC3C,MAAMU,aAAaV,QAAQW,WAAW,CAACL,KAAKI,UAAU,CAAC;IAEvD,IAAI,CAACA,YAAY;QACf,OAAO;YAAEH,SAAS;YAAwBC,SAAS;QAAM;IAC3D;IAEA,MAAMI,eAAe,MAAMlB,gBAAgB;QACzCG;QACAa;QACAD;IACF;IAEA,IAAI,CAACG,cAAc;QACjB,OAAO;YAAEL,SAAS;YAAiBC,SAAS;QAAM;IACpD;IAEA,IAAIE,WAAWZ,MAAM,CAACO,IAAI,EAAE;QAC1B,MAAMV,gBAAgB;YACpBkB,YAAYH,WAAWZ,MAAM,CAACO,IAAI;YAClCS,cAAcd,QAAQF,MAAM,CAACgB,YAAY;YACzCf;QACF;IACF;IAEA,OAAO;QAAEQ,SAAS;QAAgCC,SAAS;IAAK;AAClE"}
@@ -0,0 +1,17 @@
1
+ import type { ServerAdapter } from '../../admin/adapters/server.js';
2
+ import type { SanitizedConfig } from '../../config/types.js';
3
+ import type { MaybePromise } from '../../types/index.js';
4
+ export type RefreshArgs = {
5
+ config: MaybePromise<SanitizedConfig>;
6
+ serverAdapter: ServerAdapter;
7
+ };
8
+ /**
9
+ * Refreshes the current user's auth token and rewrites the cookie through the
10
+ * supplied `serverAdapter`, so the function is framework-agnostic; each adapter
11
+ * binds its own.
12
+ */
13
+ export declare function refresh({ config, serverAdapter, }: RefreshArgs): Promise<{
14
+ message: string;
15
+ success: boolean;
16
+ }>;
17
+ //# sourceMappingURL=refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/auth/serverFunctions/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOxD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;IACrC,aAAa,EAAE,aAAa,CAAA;CAC7B,CAAA;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,EAC5B,MAAM,EACN,aAAa,GACd,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA4C9D"}