payload 4.0.0-internal.4cbdd50 → 4.0.0-internal.4e1f822

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 (1347) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +14 -10
  3. package/dist/__testing__/predefinedMigration.d.ts +4 -3
  4. package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
  5. package/dist/admin/RichText.d.ts +2 -22
  6. package/dist/admin/RichText.d.ts.map +1 -1
  7. package/dist/admin/RichText.js.map +1 -1
  8. package/dist/admin/adapters/devReload.d.ts +13 -0
  9. package/dist/admin/adapters/devReload.d.ts.map +1 -1
  10. package/dist/admin/adapters/devReload.js +14 -1
  11. package/dist/admin/adapters/devReload.js.map +1 -1
  12. package/dist/admin/adapters/router.d.ts +8 -0
  13. package/dist/admin/adapters/router.d.ts.map +1 -1
  14. package/dist/admin/adapters/router.js.map +1 -1
  15. package/dist/admin/forms/Field.d.ts +2 -2
  16. package/dist/admin/forms/Field.d.ts.map +1 -1
  17. package/dist/admin/forms/Field.js.map +1 -1
  18. package/dist/admin/forms/Form.d.ts +0 -29
  19. package/dist/admin/forms/Form.d.ts.map +1 -1
  20. package/dist/admin/forms/Form.js.map +1 -1
  21. package/dist/admin/functions/index.d.ts +12 -10
  22. package/dist/admin/functions/index.d.ts.map +1 -1
  23. package/dist/admin/functions/index.js.map +1 -1
  24. package/dist/admin/types.d.ts +4 -3
  25. package/dist/admin/types.d.ts.map +1 -1
  26. package/dist/admin/types.js.map +1 -1
  27. package/dist/admin/views/index.d.ts +2 -2
  28. package/dist/admin/views/index.d.ts.map +1 -1
  29. package/dist/admin/views/index.js.map +1 -1
  30. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  31. package/dist/auth/baseFields/apiKey.js +16 -1
  32. package/dist/auth/baseFields/apiKey.js.map +1 -1
  33. package/dist/auth/cookies.d.ts +2 -2
  34. package/dist/auth/cookies.d.ts.map +1 -1
  35. package/dist/auth/crypto.d.ts +73 -2
  36. package/dist/auth/crypto.d.ts.map +1 -1
  37. package/dist/auth/crypto.js +90 -13
  38. package/dist/auth/crypto.js.map +1 -1
  39. package/dist/auth/defaultAccess.d.ts.map +1 -1
  40. package/dist/auth/endpoints/login.d.ts.map +1 -1
  41. package/dist/auth/endpoints/login.js +2 -11
  42. package/dist/auth/endpoints/login.js.map +1 -1
  43. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  44. package/dist/auth/endpoints/refresh.js +4 -6
  45. package/dist/auth/endpoints/refresh.js.map +1 -1
  46. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
  47. package/dist/auth/executeAccess.d.ts +2 -1
  48. package/dist/auth/executeAccess.d.ts.map +1 -1
  49. package/dist/auth/executeAccess.js +2 -1
  50. package/dist/auth/executeAccess.js.map +1 -1
  51. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  52. package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
  53. package/dist/auth/extractJWT.d.ts +1 -1
  54. package/dist/auth/extractJWT.d.ts.map +1 -1
  55. package/dist/auth/getAccessResults.js +1 -0
  56. package/dist/auth/getAccessResults.js.map +1 -1
  57. package/dist/auth/getAuthFields.d.ts.map +1 -1
  58. package/dist/auth/getFieldsToSign.d.ts +1 -1
  59. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  60. package/dist/auth/getLoginOptions.d.ts +1 -1
  61. package/dist/auth/getLoginOptions.d.ts.map +1 -1
  62. package/dist/auth/getLoginOptions.js.map +1 -1
  63. package/dist/auth/isUserLocked.d.ts.map +1 -1
  64. package/dist/auth/jwt.d.ts.map +1 -1
  65. package/dist/auth/loginWithCookie.d.ts +33 -0
  66. package/dist/auth/loginWithCookie.d.ts.map +1 -0
  67. package/dist/auth/loginWithCookie.js +34 -0
  68. package/dist/auth/loginWithCookie.js.map +1 -0
  69. package/dist/auth/operations/access.d.ts.map +1 -1
  70. package/dist/auth/operations/access.js +3 -9
  71. package/dist/auth/operations/access.js.map +1 -1
  72. package/dist/auth/operations/auth.d.ts +2 -2
  73. package/dist/auth/operations/auth.d.ts.map +1 -1
  74. package/dist/auth/operations/auth.js +15 -21
  75. package/dist/auth/operations/auth.js.map +1 -1
  76. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  77. package/dist/auth/operations/init.d.ts.map +1 -1
  78. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  79. package/dist/auth/operations/login.d.ts +2 -1
  80. package/dist/auth/operations/login.d.ts.map +1 -1
  81. package/dist/auth/operations/login.js.map +1 -1
  82. package/dist/auth/operations/logout.d.ts.map +1 -1
  83. package/dist/auth/operations/me.d.ts +2 -9
  84. package/dist/auth/operations/me.d.ts.map +1 -1
  85. package/dist/auth/operations/me.js +0 -6
  86. package/dist/auth/operations/me.js.map +1 -1
  87. package/dist/auth/operations/refresh.d.ts +0 -7
  88. package/dist/auth/operations/refresh.d.ts.map +1 -1
  89. package/dist/auth/operations/refresh.js +9 -9
  90. package/dist/auth/operations/refresh.js.map +1 -1
  91. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  92. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  93. package/dist/auth/operations/resetPassword.js.map +1 -1
  94. package/dist/auth/operations/unlock.d.ts.map +1 -1
  95. package/dist/auth/operations/unlock.js +1 -0
  96. package/dist/auth/operations/unlock.js.map +1 -1
  97. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  98. package/dist/auth/rotateSecret.d.ts +51 -0
  99. package/dist/auth/rotateSecret.d.ts.map +1 -0
  100. package/dist/auth/rotateSecret.js +131 -0
  101. package/dist/auth/rotateSecret.js.map +1 -0
  102. package/dist/auth/sendVerificationEmail.d.ts +2 -2
  103. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  104. package/dist/auth/sendVerificationEmail.js +1 -1
  105. package/dist/auth/sendVerificationEmail.js.map +1 -1
  106. package/dist/auth/serverFunctions/cookies.d.ts +47 -0
  107. package/dist/auth/serverFunctions/cookies.d.ts.map +1 -0
  108. package/dist/auth/serverFunctions/cookies.js +52 -0
  109. package/dist/auth/serverFunctions/cookies.js.map +1 -0
  110. package/dist/auth/serverFunctions/login.d.ts +29 -0
  111. package/dist/auth/serverFunctions/login.d.ts.map +1 -0
  112. package/dist/auth/serverFunctions/login.js +63 -0
  113. package/dist/auth/serverFunctions/login.js.map +1 -0
  114. package/dist/auth/serverFunctions/logout.d.ts +17 -0
  115. package/dist/auth/serverFunctions/logout.d.ts.map +1 -0
  116. package/dist/auth/serverFunctions/logout.js +58 -0
  117. package/dist/auth/serverFunctions/logout.js.map +1 -0
  118. package/dist/auth/serverFunctions/refresh.d.ts +17 -0
  119. package/dist/auth/serverFunctions/refresh.d.ts.map +1 -0
  120. package/dist/auth/serverFunctions/refresh.js +61 -0
  121. package/dist/auth/serverFunctions/refresh.js.map +1 -0
  122. package/dist/auth/sessions.d.ts +4 -5
  123. package/dist/auth/sessions.d.ts.map +1 -1
  124. package/dist/auth/sessions.js +5 -3
  125. package/dist/auth/sessions.js.map +1 -1
  126. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  127. package/dist/auth/strategies/apiKey.js +5 -3
  128. package/dist/auth/strategies/apiKey.js.map +1 -1
  129. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  130. package/dist/auth/strategies/jwt.js +23 -2
  131. package/dist/auth/strategies/jwt.js.map +1 -1
  132. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  133. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  134. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  135. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  136. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  137. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  138. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  139. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  140. package/dist/auth/types.d.ts +34 -35
  141. package/dist/auth/types.d.ts.map +1 -1
  142. package/dist/auth/types.js.map +1 -1
  143. package/dist/auth/withBaseAccess.d.ts +22 -0
  144. package/dist/auth/withBaseAccess.d.ts.map +1 -0
  145. package/dist/auth/withBaseAccess.js +61 -0
  146. package/dist/auth/withBaseAccess.js.map +1 -0
  147. package/dist/cli/commands/build/build.d.ts +44 -0
  148. package/dist/cli/commands/build/build.d.ts.map +1 -0
  149. package/dist/cli/commands/build/build.js +225 -0
  150. package/dist/cli/commands/build/build.js.map +1 -0
  151. package/dist/cli/commands/build/build.spec.js +582 -0
  152. package/dist/cli/commands/build/build.spec.js.map +1 -0
  153. package/dist/cli/commands/build/index.d.ts +2 -0
  154. package/dist/cli/commands/build/index.d.ts.map +1 -0
  155. package/dist/cli/commands/build/index.js +26 -0
  156. package/dist/cli/commands/build/index.js.map +1 -0
  157. package/dist/cli/commands/collections/countDocuments.d.ts +2 -0
  158. package/dist/cli/commands/collections/countDocuments.d.ts.map +1 -0
  159. package/dist/cli/commands/collections/countDocuments.js +37 -0
  160. package/dist/cli/commands/collections/countDocuments.js.map +1 -0
  161. package/dist/cli/commands/collections/countVersions.d.ts +2 -0
  162. package/dist/cli/commands/collections/countVersions.d.ts.map +1 -0
  163. package/dist/cli/commands/collections/countVersions.js +36 -0
  164. package/dist/cli/commands/collections/countVersions.js.map +1 -0
  165. package/dist/cli/commands/collections/createDocuments.d.ts +2 -0
  166. package/dist/cli/commands/collections/createDocuments.d.ts.map +1 -0
  167. package/dist/cli/commands/collections/createDocuments.js +126 -0
  168. package/dist/cli/commands/collections/createDocuments.js.map +1 -0
  169. package/dist/cli/commands/collections/deleteDocuments.d.ts +2 -0
  170. package/dist/cli/commands/collections/deleteDocuments.d.ts.map +1 -0
  171. package/dist/cli/commands/collections/deleteDocuments.js +60 -0
  172. package/dist/cli/commands/collections/deleteDocuments.js.map +1 -0
  173. package/dist/cli/commands/collections/duplicateDocument.d.ts +2 -0
  174. package/dist/cli/commands/collections/duplicateDocument.d.ts.map +1 -0
  175. package/dist/cli/commands/collections/duplicateDocument.js +103 -0
  176. package/dist/cli/commands/collections/duplicateDocument.js.map +1 -0
  177. package/dist/cli/commands/collections/findDistinct.d.ts +2 -0
  178. package/dist/cli/commands/collections/findDistinct.d.ts.map +1 -0
  179. package/dist/cli/commands/collections/findDistinct.js +52 -0
  180. package/dist/cli/commands/collections/findDistinct.js.map +1 -0
  181. package/dist/cli/commands/collections/findDocuments.d.ts +2 -0
  182. package/dist/cli/commands/collections/findDocuments.d.ts.map +1 -0
  183. package/dist/cli/commands/collections/findDocuments.js +75 -0
  184. package/dist/cli/commands/collections/findDocuments.js.map +1 -0
  185. package/dist/cli/commands/collections/findVersionByID.d.ts +2 -0
  186. package/dist/cli/commands/collections/findVersionByID.d.ts.map +1 -0
  187. package/dist/cli/commands/collections/findVersionByID.js +49 -0
  188. package/dist/cli/commands/collections/findVersionByID.js.map +1 -0
  189. package/dist/cli/commands/collections/findVersions.d.ts +2 -0
  190. package/dist/cli/commands/collections/findVersions.d.ts.map +1 -0
  191. package/dist/cli/commands/collections/findVersions.js +57 -0
  192. package/dist/cli/commands/collections/findVersions.js.map +1 -0
  193. package/dist/cli/commands/collections/getCollectionSchema.d.ts +2 -0
  194. package/dist/cli/commands/collections/getCollectionSchema.d.ts.map +1 -0
  195. package/dist/cli/commands/collections/getCollectionSchema.js +49 -0
  196. package/dist/cli/commands/collections/getCollectionSchema.js.map +1 -0
  197. package/dist/cli/commands/collections/restoreVersion.d.ts +2 -0
  198. package/dist/cli/commands/collections/restoreVersion.d.ts.map +1 -0
  199. package/dist/cli/commands/collections/restoreVersion.js +48 -0
  200. package/dist/cli/commands/collections/restoreVersion.js.map +1 -0
  201. package/dist/cli/commands/collections/updateDocument.d.ts +2 -0
  202. package/dist/cli/commands/collections/updateDocument.d.ts.map +1 -0
  203. package/dist/cli/commands/collections/updateDocument.js +178 -0
  204. package/dist/cli/commands/collections/updateDocument.js.map +1 -0
  205. package/dist/cli/commands/data/input.d.ts +10 -0
  206. package/dist/cli/commands/data/input.d.ts.map +1 -0
  207. package/dist/cli/commands/data/input.js +57 -0
  208. package/dist/cli/commands/data/input.js.map +1 -0
  209. package/dist/cli/commands/data/utilities.d.ts +65 -0
  210. package/dist/cli/commands/data/utilities.d.ts.map +1 -0
  211. package/dist/cli/commands/data/utilities.js +67 -0
  212. package/dist/cli/commands/data/utilities.js.map +1 -0
  213. package/dist/cli/commands/generateDBSchema.d.ts +2 -0
  214. package/dist/cli/commands/generateDBSchema.d.ts.map +1 -0
  215. package/dist/cli/commands/generateDBSchema.js +29 -0
  216. package/dist/cli/commands/generateDBSchema.js.map +1 -0
  217. package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts +8 -0
  218. package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts.map +1 -0
  219. package/dist/cli/commands/generateImportMap/frameworkConventions.js +8 -0
  220. package/dist/cli/commands/generateImportMap/frameworkConventions.js.map +1 -0
  221. package/dist/{bin/generateImportMap/index.d.ts → cli/commands/generateImportMap/generateImportMap.d.ts} +8 -4
  222. package/dist/cli/commands/generateImportMap/generateImportMap.d.ts.map +1 -0
  223. package/dist/{bin/generateImportMap/index.js → cli/commands/generateImportMap/generateImportMap.js} +9 -4
  224. package/dist/cli/commands/generateImportMap/generateImportMap.js.map +1 -0
  225. package/dist/cli/commands/generateImportMap/generateImportMap.spec.js.map +1 -0
  226. package/dist/cli/commands/generateImportMap/index.d.ts +2 -0
  227. package/dist/cli/commands/generateImportMap/index.d.ts.map +1 -0
  228. package/dist/cli/commands/generateImportMap/index.js +18 -0
  229. package/dist/cli/commands/generateImportMap/index.js.map +1 -0
  230. package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.d.ts +3 -3
  231. package/dist/cli/commands/generateImportMap/iterateCollections.d.ts.map +1 -0
  232. package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.js +10 -0
  233. package/dist/cli/commands/generateImportMap/iterateCollections.js.map +1 -0
  234. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.d.ts +2 -2
  235. package/dist/cli/commands/generateImportMap/iterateConfig.d.ts.map +1 -0
  236. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.js +1 -1
  237. package/dist/cli/commands/generateImportMap/iterateConfig.js.map +1 -0
  238. package/dist/{bin → cli/commands}/generateImportMap/iterateFields.d.ts +3 -3
  239. package/dist/cli/commands/generateImportMap/iterateFields.d.ts.map +1 -0
  240. package/dist/cli/commands/generateImportMap/iterateFields.js.map +1 -0
  241. package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.d.ts +3 -3
  242. package/dist/cli/commands/generateImportMap/iterateGlobals.d.ts.map +1 -0
  243. package/dist/cli/commands/generateImportMap/iterateGlobals.js.map +1 -0
  244. package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts +2 -2
  245. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +1 -0
  246. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +1 -0
  247. package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.d.ts +2 -2
  248. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -0
  249. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.js.map +1 -0
  250. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +1 -0
  251. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +1 -0
  252. package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.d.ts +1 -1
  253. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.d.ts.map +1 -0
  254. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.js.map +1 -0
  255. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -0
  256. package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.js +5 -4
  257. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -0
  258. package/dist/cli/commands/generateTypes.d.ts +12 -0
  259. package/dist/cli/commands/generateTypes.d.ts.map +1 -0
  260. package/dist/{bin → cli/commands}/generateTypes.js +33 -7
  261. package/dist/cli/commands/generateTypes.js.map +1 -0
  262. package/dist/cli/commands/getConfigInfo.d.ts +2 -0
  263. package/dist/cli/commands/getConfigInfo.d.ts.map +1 -0
  264. package/dist/cli/commands/getConfigInfo.js +23 -0
  265. package/dist/cli/commands/getConfigInfo.js.map +1 -0
  266. package/dist/cli/commands/globals/countGlobalVersions.d.ts +2 -0
  267. package/dist/cli/commands/globals/countGlobalVersions.d.ts.map +1 -0
  268. package/dist/cli/commands/globals/countGlobalVersions.js +36 -0
  269. package/dist/cli/commands/globals/countGlobalVersions.js.map +1 -0
  270. package/dist/cli/commands/globals/findGlobal.d.ts +2 -0
  271. package/dist/cli/commands/globals/findGlobal.d.ts.map +1 -0
  272. package/dist/cli/commands/globals/findGlobal.js +42 -0
  273. package/dist/cli/commands/globals/findGlobal.js.map +1 -0
  274. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts +2 -0
  275. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts.map +1 -0
  276. package/dist/cli/commands/globals/findGlobalVersionByID.js +47 -0
  277. package/dist/cli/commands/globals/findGlobalVersionByID.js.map +1 -0
  278. package/dist/cli/commands/globals/findGlobalVersions.d.ts +2 -0
  279. package/dist/cli/commands/globals/findGlobalVersions.d.ts.map +1 -0
  280. package/dist/cli/commands/globals/findGlobalVersions.js +55 -0
  281. package/dist/cli/commands/globals/findGlobalVersions.js.map +1 -0
  282. package/dist/cli/commands/globals/getGlobalSchema.d.ts +2 -0
  283. package/dist/cli/commands/globals/getGlobalSchema.d.ts.map +1 -0
  284. package/dist/cli/commands/globals/getGlobalSchema.js +34 -0
  285. package/dist/cli/commands/globals/getGlobalSchema.js.map +1 -0
  286. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts +2 -0
  287. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts.map +1 -0
  288. package/dist/cli/commands/globals/restoreGlobalVersion.js +47 -0
  289. package/dist/cli/commands/globals/restoreGlobalVersion.js.map +1 -0
  290. package/dist/cli/commands/globals/updateGlobal.d.ts +2 -0
  291. package/dist/cli/commands/globals/updateGlobal.d.ts.map +1 -0
  292. package/dist/cli/commands/globals/updateGlobal.js +93 -0
  293. package/dist/cli/commands/globals/updateGlobal.js.map +1 -0
  294. package/dist/cli/commands/help.d.ts +2 -0
  295. package/dist/cli/commands/help.d.ts.map +1 -0
  296. package/dist/cli/commands/help.js +40 -0
  297. package/dist/cli/commands/help.js.map +1 -0
  298. package/dist/cli/commands/info.d.ts +2 -0
  299. package/dist/cli/commands/info.d.ts.map +1 -0
  300. package/dist/cli/commands/info.js +78 -0
  301. package/dist/cli/commands/info.js.map +1 -0
  302. package/dist/cli/commands/jobs/handleSchedules.d.ts +2 -0
  303. package/dist/cli/commands/jobs/handleSchedules.d.ts.map +1 -0
  304. package/dist/cli/commands/jobs/handleSchedules.js +17 -0
  305. package/dist/cli/commands/jobs/handleSchedules.js.map +1 -0
  306. package/dist/cli/commands/jobs/run.d.ts +2 -0
  307. package/dist/cli/commands/jobs/run.d.ts.map +1 -0
  308. package/dist/cli/commands/jobs/run.js +29 -0
  309. package/dist/cli/commands/jobs/run.js.map +1 -0
  310. package/dist/cli/commands/migrate/create.d.ts +2 -0
  311. package/dist/cli/commands/migrate/create.d.ts.map +1 -0
  312. package/dist/cli/commands/migrate/create.js +44 -0
  313. package/dist/cli/commands/migrate/create.js.map +1 -0
  314. package/dist/cli/commands/migrate/down.d.ts +2 -0
  315. package/dist/cli/commands/migrate/down.d.ts.map +1 -0
  316. package/dist/cli/commands/migrate/down.js +22 -0
  317. package/dist/cli/commands/migrate/down.js.map +1 -0
  318. package/dist/cli/commands/migrate/fresh.d.ts +2 -0
  319. package/dist/cli/commands/migrate/fresh.d.ts.map +1 -0
  320. package/dist/cli/commands/migrate/fresh.js +28 -0
  321. package/dist/cli/commands/migrate/fresh.js.map +1 -0
  322. package/dist/cli/commands/migrate/initialize.d.ts +11 -0
  323. package/dist/cli/commands/migrate/initialize.d.ts.map +1 -0
  324. package/dist/cli/commands/migrate/initialize.js +17 -0
  325. package/dist/cli/commands/migrate/initialize.js.map +1 -0
  326. package/dist/cli/commands/migrate/refresh.d.ts +2 -0
  327. package/dist/cli/commands/migrate/refresh.d.ts.map +1 -0
  328. package/dist/cli/commands/migrate/refresh.js +22 -0
  329. package/dist/cli/commands/migrate/refresh.js.map +1 -0
  330. package/dist/cli/commands/migrate/reset.d.ts +2 -0
  331. package/dist/cli/commands/migrate/reset.d.ts.map +1 -0
  332. package/dist/cli/commands/migrate/reset.js +22 -0
  333. package/dist/cli/commands/migrate/reset.js.map +1 -0
  334. package/dist/cli/commands/migrate/run.d.ts +2 -0
  335. package/dist/cli/commands/migrate/run.d.ts.map +1 -0
  336. package/dist/cli/commands/migrate/run.js +28 -0
  337. package/dist/cli/commands/migrate/run.js.map +1 -0
  338. package/dist/cli/commands/migrate/status.d.ts +2 -0
  339. package/dist/cli/commands/migrate/status.d.ts.map +1 -0
  340. package/dist/cli/commands/migrate/status.js +22 -0
  341. package/dist/cli/commands/migrate/status.js.map +1 -0
  342. package/dist/cli/commands/run.d.ts +2 -0
  343. package/dist/cli/commands/run.d.ts.map +1 -0
  344. package/dist/cli/commands/run.js +45 -0
  345. package/dist/cli/commands/run.js.map +1 -0
  346. package/dist/cli/defineCLICommand.d.ts +32 -0
  347. package/dist/cli/defineCLICommand.d.ts.map +1 -0
  348. package/dist/cli/defineCLICommand.js +26 -0
  349. package/dist/cli/defineCLICommand.js.map +1 -0
  350. package/dist/cli/index.d.ts +5 -0
  351. package/dist/cli/index.d.ts.map +1 -0
  352. package/dist/cli/index.js +73 -0
  353. package/dist/cli/index.js.map +1 -0
  354. package/dist/cli/index.spec.js +402 -0
  355. package/dist/cli/index.spec.js.map +1 -0
  356. package/dist/cli/program/createHelp.d.ts +8 -0
  357. package/dist/cli/program/createHelp.d.ts.map +1 -0
  358. package/dist/cli/program/createHelp.js +22 -0
  359. package/dist/cli/program/createHelp.js.map +1 -0
  360. package/dist/cli/program/loadCommands.d.ts +12 -0
  361. package/dist/cli/program/loadCommands.d.ts.map +1 -0
  362. package/dist/cli/program/loadCommands.js +62 -0
  363. package/dist/cli/program/loadCommands.js.map +1 -0
  364. package/dist/cli/program/normalizeHelpArguments.d.ts +12 -0
  365. package/dist/cli/program/normalizeHelpArguments.d.ts.map +1 -0
  366. package/dist/cli/program/normalizeHelpArguments.js +36 -0
  367. package/dist/cli/program/normalizeHelpArguments.js.map +1 -0
  368. package/dist/cli/program/registerCommand.d.ts +10 -0
  369. package/dist/cli/program/registerCommand.d.ts.map +1 -0
  370. package/dist/cli/program/registerCommand.js +185 -0
  371. package/dist/cli/program/registerCommand.js.map +1 -0
  372. package/dist/cli/runtime/createRuntime.d.ts +9 -0
  373. package/dist/cli/runtime/createRuntime.d.ts.map +1 -0
  374. package/dist/cli/runtime/createRuntime.js +66 -0
  375. package/dist/cli/runtime/createRuntime.js.map +1 -0
  376. package/dist/cli/runtime/getCommandInput.d.ts +13 -0
  377. package/dist/cli/runtime/getCommandInput.d.ts.map +1 -0
  378. package/dist/cli/runtime/getCommandInput.js +78 -0
  379. package/dist/cli/runtime/getCommandInput.js.map +1 -0
  380. package/dist/cli/runtime/invokeCommand.d.ts +23 -0
  381. package/dist/cli/runtime/invokeCommand.d.ts.map +1 -0
  382. package/dist/cli/runtime/invokeCommand.js +117 -0
  383. package/dist/cli/runtime/invokeCommand.js.map +1 -0
  384. package/dist/cli/runtime/loadEnv.d.ts.map +1 -0
  385. package/dist/{bin → cli/runtime}/loadEnv.js +1 -1
  386. package/dist/cli/runtime/loadEnv.js.map +1 -0
  387. package/dist/cli/runtime/output.d.ts +42 -0
  388. package/dist/cli/runtime/output.d.ts.map +1 -0
  389. package/dist/cli/runtime/output.js +91 -0
  390. package/dist/cli/runtime/output.js.map +1 -0
  391. package/dist/cli/runtime/redirectOutputToStderr.d.ts +3 -0
  392. package/dist/cli/runtime/redirectOutputToStderr.d.ts.map +1 -0
  393. package/dist/cli/runtime/redirectOutputToStderr.js +17 -0
  394. package/dist/cli/runtime/redirectOutputToStderr.js.map +1 -0
  395. package/dist/collections/config/client.d.ts +11 -5
  396. package/dist/collections/config/client.d.ts.map +1 -1
  397. package/dist/collections/config/client.js +7 -1
  398. package/dist/collections/config/client.js.map +1 -1
  399. package/dist/collections/config/defaults.d.ts +4 -8
  400. package/dist/collections/config/defaults.d.ts.map +1 -1
  401. package/dist/collections/config/defaults.js +37 -47
  402. package/dist/collections/config/defaults.js.map +1 -1
  403. package/dist/collections/config/sanitize.d.ts +4 -8
  404. package/dist/collections/config/sanitize.d.ts.map +1 -1
  405. package/dist/collections/config/sanitize.js +31 -21
  406. package/dist/collections/config/sanitize.js.map +1 -1
  407. package/dist/collections/config/sanitize.spec.js +363 -1
  408. package/dist/collections/config/sanitize.spec.js.map +1 -1
  409. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  410. package/dist/collections/config/types.d.ts +62 -51
  411. package/dist/collections/config/types.d.ts.map +1 -1
  412. package/dist/collections/config/types.js.map +1 -1
  413. package/dist/collections/config/useAsTitle.d.ts.map +1 -1
  414. package/dist/collections/config/useAsTitle.spec.js +27 -27
  415. package/dist/collections/config/useAsTitle.spec.js.map +1 -1
  416. package/dist/collections/dataloader.d.ts +1 -1
  417. package/dist/collections/dataloader.d.ts.map +1 -1
  418. package/dist/collections/operations/count.d.ts.map +1 -1
  419. package/dist/collections/operations/count.js +65 -70
  420. package/dist/collections/operations/count.js.map +1 -1
  421. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  422. package/dist/collections/operations/countVersions.js +61 -66
  423. package/dist/collections/operations/countVersions.js.map +1 -1
  424. package/dist/collections/operations/create.d.ts.map +1 -1
  425. package/dist/collections/operations/create.js +22 -0
  426. package/dist/collections/operations/create.js.map +1 -1
  427. package/dist/collections/operations/delete.d.ts.map +1 -1
  428. package/dist/collections/operations/delete.js +1 -0
  429. package/dist/collections/operations/delete.js.map +1 -1
  430. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  431. package/dist/collections/operations/deleteByID.js +1 -0
  432. package/dist/collections/operations/deleteByID.js.map +1 -1
  433. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  434. package/dist/collections/operations/docAccess.js +19 -25
  435. package/dist/collections/operations/docAccess.js.map +1 -1
  436. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  437. package/dist/collections/operations/find.d.ts.map +1 -1
  438. package/dist/collections/operations/find.js +248 -246
  439. package/dist/collections/operations/find.js.map +1 -1
  440. package/dist/collections/operations/findByID.d.ts.map +1 -1
  441. package/dist/collections/operations/findByID.js +215 -220
  442. package/dist/collections/operations/findByID.js.map +1 -1
  443. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  444. package/dist/collections/operations/findDistinct.js +161 -158
  445. package/dist/collections/operations/findDistinct.js.map +1 -1
  446. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  447. package/dist/collections/operations/findVersionByID.js +131 -136
  448. package/dist/collections/operations/findVersionByID.js.map +1 -1
  449. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  450. package/dist/collections/operations/findVersions.js +152 -149
  451. package/dist/collections/operations/findVersions.js.map +1 -1
  452. package/dist/collections/operations/inputSchemas.d.ts +877 -0
  453. package/dist/collections/operations/inputSchemas.d.ts.map +1 -0
  454. package/dist/collections/operations/inputSchemas.js +217 -0
  455. package/dist/collections/operations/inputSchemas.js.map +1 -0
  456. package/dist/collections/operations/local/count.d.ts +3 -3
  457. package/dist/collections/operations/local/count.d.ts.map +1 -1
  458. package/dist/collections/operations/local/count.js.map +1 -1
  459. package/dist/collections/operations/local/countVersions.d.ts +3 -3
  460. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  461. package/dist/collections/operations/local/countVersions.js.map +1 -1
  462. package/dist/collections/operations/local/create.d.ts +3 -3
  463. package/dist/collections/operations/local/create.d.ts.map +1 -1
  464. package/dist/collections/operations/local/create.js.map +1 -1
  465. package/dist/collections/operations/local/delete.d.ts +3 -3
  466. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  467. package/dist/collections/operations/local/delete.js.map +1 -1
  468. package/dist/collections/operations/local/duplicate.d.ts +3 -3
  469. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  470. package/dist/collections/operations/local/duplicate.js.map +1 -1
  471. package/dist/collections/operations/local/find.d.ts +3 -3
  472. package/dist/collections/operations/local/find.d.ts.map +1 -1
  473. package/dist/collections/operations/local/find.js.map +1 -1
  474. package/dist/collections/operations/local/findByID.d.ts +3 -3
  475. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  476. package/dist/collections/operations/local/findByID.js.map +1 -1
  477. package/dist/collections/operations/local/findDistinct.d.ts +2 -2
  478. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  479. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  480. package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
  481. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  482. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  483. package/dist/collections/operations/local/findVersions.d.ts +3 -3
  484. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  485. package/dist/collections/operations/local/findVersions.js.map +1 -1
  486. package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
  487. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  488. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  489. package/dist/collections/operations/local/update.d.ts +3 -3
  490. package/dist/collections/operations/local/update.d.ts.map +1 -1
  491. package/dist/collections/operations/local/update.js.map +1 -1
  492. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  493. package/dist/collections/operations/restoreVersion.js +8 -4
  494. package/dist/collections/operations/restoreVersion.js.map +1 -1
  495. package/dist/collections/operations/update.d.ts.map +1 -1
  496. package/dist/collections/operations/update.js +20 -1
  497. package/dist/collections/operations/update.js.map +1 -1
  498. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  499. package/dist/collections/operations/updateByID.js +13 -0
  500. package/dist/collections/operations/updateByID.js.map +1 -1
  501. package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
  502. package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
  503. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -1
  504. package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
  505. package/dist/collections/operations/utilities/types.d.ts +20 -29
  506. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  507. package/dist/collections/operations/utilities/types.js.map +1 -1
  508. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  509. package/dist/config/build.js +1 -1
  510. package/dist/config/build.js.map +1 -1
  511. package/dist/config/client.d.ts +4 -4
  512. package/dist/config/client.d.ts.map +1 -1
  513. package/dist/config/client.js +2 -1
  514. package/dist/config/client.js.map +1 -1
  515. package/dist/config/client.spec.js +20 -0
  516. package/dist/config/client.spec.js.map +1 -0
  517. package/dist/config/defaults.d.ts +0 -4
  518. package/dist/config/defaults.d.ts.map +1 -1
  519. package/dist/config/defaults.js +94 -119
  520. package/dist/config/defaults.js.map +1 -1
  521. package/dist/config/definePlugin.d.ts +10 -10
  522. package/dist/config/definePlugin.d.ts.map +1 -1
  523. package/dist/config/definePlugin.js +7 -11
  524. package/dist/config/definePlugin.js.map +1 -1
  525. package/dist/config/orderable/fractional-indexing.d.ts +23 -23
  526. package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
  527. package/dist/config/orderable/index.d.ts +1 -1
  528. package/dist/config/orderable/index.d.ts.map +1 -1
  529. package/dist/config/orderable/index.js +3 -2
  530. package/dist/config/orderable/index.js.map +1 -1
  531. package/dist/config/sanitize.d.ts +1 -1
  532. package/dist/config/sanitize.d.ts.map +1 -1
  533. package/dist/config/sanitize.js +172 -38
  534. package/dist/config/sanitize.js.map +1 -1
  535. package/dist/config/sanitize.spec.js +105 -0
  536. package/dist/config/sanitize.spec.js.map +1 -0
  537. package/dist/config/types.d.ts +500 -399
  538. package/dist/config/types.d.ts.map +1 -1
  539. package/dist/config/types.js.map +1 -1
  540. package/dist/database/combineQueries.d.ts.map +1 -1
  541. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  542. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  543. package/dist/database/createDatabaseAdapter.js +0 -2
  544. package/dist/database/createDatabaseAdapter.js.map +1 -1
  545. package/dist/database/isNestedRelationshipQuery.d.ts +14 -0
  546. package/dist/database/isNestedRelationshipQuery.d.ts.map +1 -0
  547. package/dist/database/isNestedRelationshipQuery.js +19 -0
  548. package/dist/database/isNestedRelationshipQuery.js.map +1 -0
  549. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  550. package/dist/database/migrations/createMigration.js +4 -0
  551. package/dist/database/migrations/createMigration.js.map +1 -1
  552. package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
  553. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  554. package/dist/database/migrations/getPredefinedMigration.js +2 -2
  555. package/dist/database/migrations/getPredefinedMigration.js.map +1 -1
  556. package/dist/database/migrations/migrate.d.ts.map +1 -1
  557. package/dist/database/migrations/migrate.js +9 -0
  558. package/dist/database/migrations/migrate.js.map +1 -1
  559. package/dist/database/migrations/migrateDown.d.ts +2 -2
  560. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  561. package/dist/database/migrations/migrateDown.js +12 -2
  562. package/dist/database/migrations/migrateDown.js.map +1 -1
  563. package/dist/database/migrations/migrateRefresh.d.ts +2 -2
  564. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  565. package/dist/database/migrations/migrateRefresh.js +10 -2
  566. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  567. package/dist/database/migrations/migrateReset.d.ts +2 -2
  568. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  569. package/dist/database/migrations/migrateReset.js +11 -1
  570. package/dist/database/migrations/migrateReset.js.map +1 -1
  571. package/dist/database/migrations/migrateStatus.d.ts +2 -2
  572. package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
  573. package/dist/database/migrations/migrateStatus.js +11 -6
  574. package/dist/database/migrations/migrateStatus.js.map +1 -1
  575. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  576. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
  577. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  578. package/dist/database/queryValidation/validateQueryPaths.js +8 -1
  579. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  580. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  581. package/dist/database/queryValidation/validateSearchParams.js +21 -4
  582. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  583. package/dist/database/queryValidation/validateSortQuery.d.ts +23 -0
  584. package/dist/database/queryValidation/validateSortQuery.d.ts.map +1 -0
  585. package/dist/database/queryValidation/validateSortQuery.js +54 -0
  586. package/dist/database/queryValidation/validateSortQuery.js.map +1 -0
  587. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  588. package/dist/database/sanitizeJoinQuery.js +7 -0
  589. package/dist/database/sanitizeJoinQuery.js.map +1 -1
  590. package/dist/database/sanitizeWhereQuery.d.ts +1 -1
  591. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  592. package/dist/database/sanitizeWhereQuery.js +44 -1
  593. package/dist/database/sanitizeWhereQuery.js.map +1 -1
  594. package/dist/database/types.d.ts +37 -13
  595. package/dist/database/types.d.ts.map +1 -1
  596. package/dist/database/types.js.map +1 -1
  597. package/dist/duplicateDocument/index.d.ts.map +1 -1
  598. package/dist/duplicateDocument/index.js +1 -0
  599. package/dist/duplicateDocument/index.js.map +1 -1
  600. package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
  601. package/dist/errors/APIError.d.ts.map +1 -1
  602. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  603. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  604. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  605. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  606. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  607. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  608. package/dist/errors/FileUploadError.d.ts.map +1 -1
  609. package/dist/errors/Forbidden.d.ts.map +1 -1
  610. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  611. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  612. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  613. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  614. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  615. package/dist/errors/Locked.d.ts.map +1 -1
  616. package/dist/errors/LockedAuth.d.ts.map +1 -1
  617. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  618. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  619. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  620. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  621. package/dist/errors/MissingFile.d.ts.map +1 -1
  622. package/dist/errors/NotFound.d.ts.map +1 -1
  623. package/dist/errors/QueryError.d.ts.map +1 -1
  624. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  625. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  626. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  627. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  628. package/dist/errors/ValidationError.d.ts.map +1 -1
  629. package/dist/exports/auth.d.ts +5 -0
  630. package/dist/exports/auth.d.ts.map +1 -0
  631. package/dist/exports/auth.js +6 -0
  632. package/dist/exports/auth.js.map +1 -0
  633. package/dist/exports/cli.d.ts +4 -0
  634. package/dist/exports/cli.d.ts.map +1 -0
  635. package/dist/exports/cli.js +4 -0
  636. package/dist/exports/cli.js.map +1 -0
  637. package/dist/exports/cliBuiltin.d.ts +37 -0
  638. package/dist/exports/cliBuiltin.d.ts.map +1 -0
  639. package/dist/exports/cliBuiltin.js +38 -0
  640. package/dist/exports/cliBuiltin.js.map +1 -0
  641. package/dist/exports/internal.d.ts +6 -0
  642. package/dist/exports/internal.d.ts.map +1 -1
  643. package/dist/exports/internal.js +7 -1
  644. package/dist/exports/internal.js.map +1 -1
  645. package/dist/exports/node.d.ts +2 -2
  646. package/dist/exports/node.d.ts.map +1 -1
  647. package/dist/exports/node.js +2 -2
  648. package/dist/exports/node.js.map +1 -1
  649. package/dist/exports/shared.d.ts +8 -5
  650. package/dist/exports/shared.d.ts.map +1 -1
  651. package/dist/exports/shared.js +6 -4
  652. package/dist/exports/shared.js.map +1 -1
  653. package/dist/fields/baseFields/slug/duplicateContext.d.ts +11 -0
  654. package/dist/fields/baseFields/slug/duplicateContext.d.ts.map +1 -0
  655. package/dist/fields/baseFields/slug/duplicateContext.js +21 -0
  656. package/dist/fields/baseFields/slug/duplicateContext.js.map +1 -0
  657. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts +23 -0
  658. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts.map +1 -0
  659. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js +65 -0
  660. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js.map +1 -0
  661. package/dist/fields/baseFields/slug/generateSlug.d.ts +19 -7
  662. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  663. package/dist/fields/baseFields/slug/generateSlug.js +111 -74
  664. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  665. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts +18 -0
  666. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts.map +1 -0
  667. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js +20 -0
  668. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js.map +1 -0
  669. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts +23 -0
  670. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts.map +1 -0
  671. package/dist/fields/baseFields/slug/getSlugFallbackValue.js +24 -0
  672. package/dist/fields/baseFields/slug/getSlugFallbackValue.js.map +1 -0
  673. package/dist/fields/baseFields/slug/hasValue.d.ts +3 -0
  674. package/dist/fields/baseFields/slug/hasValue.d.ts.map +1 -0
  675. package/dist/fields/baseFields/slug/hasValue.js +3 -0
  676. package/dist/fields/baseFields/slug/hasValue.js.map +1 -0
  677. package/dist/fields/baseFields/slug/types.d.ts +14 -0
  678. package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
  679. package/dist/fields/baseFields/slug/types.js +6 -0
  680. package/dist/fields/baseFields/slug/types.js.map +1 -0
  681. package/dist/fields/config/client.d.ts +5 -5
  682. package/dist/fields/config/client.d.ts.map +1 -1
  683. package/dist/fields/config/client.js +3 -2
  684. package/dist/fields/config/client.js.map +1 -1
  685. package/dist/fields/config/reservedFieldNames.spec.js +18 -18
  686. package/dist/fields/config/reservedFieldNames.spec.js.map +1 -1
  687. package/dist/fields/config/sanitize.d.ts +6 -6
  688. package/dist/fields/config/sanitize.d.ts.map +1 -1
  689. package/dist/fields/config/sanitize.js +68 -19
  690. package/dist/fields/config/sanitize.js.map +1 -1
  691. package/dist/fields/config/sanitize.spec.js +105 -105
  692. package/dist/fields/config/sanitize.spec.js.map +1 -1
  693. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  694. package/dist/fields/config/types.d.ts +50 -12
  695. package/dist/fields/config/types.d.ts.map +1 -1
  696. package/dist/fields/config/types.js +1 -1
  697. package/dist/fields/config/types.js.map +1 -1
  698. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  699. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  700. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  701. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  702. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  703. package/dist/fields/hooks/afterRead/promise.js +11 -1
  704. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  705. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  706. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  707. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  708. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  709. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  710. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  711. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  712. package/dist/fields/hooks/beforeChange/promise.js +1 -0
  713. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  714. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  715. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
  716. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  717. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
  718. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  719. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  720. package/dist/fields/hooks/beforeValidate/promise.js +15 -4
  721. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  722. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts +10 -0
  723. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts.map +1 -0
  724. package/dist/fields/hooks/beforeValidate/stripNullRows.js +18 -0
  725. package/dist/fields/hooks/beforeValidate/stripNullRows.js.map +1 -0
  726. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  727. package/dist/fields/hooks/beforeValidate/traverseFields.js +2 -0
  728. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  729. package/dist/fields/isFieldDisabled.d.ts.map +1 -1
  730. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  731. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
  732. package/dist/fields/setDefaultBeforeDuplicate.js +1 -0
  733. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  734. package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
  735. package/dist/fields/sortableFieldTypes.js +1 -0
  736. package/dist/fields/sortableFieldTypes.js.map +1 -1
  737. package/dist/fields/validations.d.ts +4 -1
  738. package/dist/fields/validations.d.ts.map +1 -1
  739. package/dist/fields/validations.js +8 -2
  740. package/dist/fields/validations.js.map +1 -1
  741. package/dist/fields/validations.spec.js +61 -37
  742. package/dist/fields/validations.spec.js.map +1 -1
  743. package/dist/globals/config/client.d.ts +5 -5
  744. package/dist/globals/config/client.d.ts.map +1 -1
  745. package/dist/globals/config/client.js.map +1 -1
  746. package/dist/globals/config/sanitize.d.ts +3 -7
  747. package/dist/globals/config/sanitize.d.ts.map +1 -1
  748. package/dist/globals/config/sanitize.js +26 -6
  749. package/dist/globals/config/sanitize.js.map +1 -1
  750. package/dist/globals/config/sanitize.spec.js +227 -8
  751. package/dist/globals/config/sanitize.spec.js.map +1 -1
  752. package/dist/globals/config/types.d.ts +21 -16
  753. package/dist/globals/config/types.d.ts.map +1 -1
  754. package/dist/globals/config/types.js.map +1 -1
  755. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  756. package/dist/globals/operations/countGlobalVersions.js +51 -55
  757. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  758. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  759. package/dist/globals/operations/docAccess.js +19 -25
  760. package/dist/globals/operations/docAccess.js.map +1 -1
  761. package/dist/globals/operations/findOne.d.ts.map +1 -1
  762. package/dist/globals/operations/findOne.js +169 -174
  763. package/dist/globals/operations/findOne.js.map +1 -1
  764. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  765. package/dist/globals/operations/findVersionByID.js +104 -109
  766. package/dist/globals/operations/findVersionByID.js.map +1 -1
  767. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  768. package/dist/globals/operations/findVersions.js +112 -109
  769. package/dist/globals/operations/findVersions.js.map +1 -1
  770. package/dist/globals/operations/inputSchemas.d.ts +365 -0
  771. package/dist/globals/operations/inputSchemas.d.ts.map +1 -0
  772. package/dist/globals/operations/inputSchemas.js +104 -0
  773. package/dist/globals/operations/inputSchemas.js.map +1 -0
  774. package/dist/globals/operations/local/countVersions.d.ts +3 -3
  775. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  776. package/dist/globals/operations/local/countVersions.js.map +1 -1
  777. package/dist/globals/operations/local/findOne.d.ts +3 -3
  778. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  779. package/dist/globals/operations/local/findOne.js.map +1 -1
  780. package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
  781. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  782. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  783. package/dist/globals/operations/local/findVersions.d.ts +3 -3
  784. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  785. package/dist/globals/operations/local/findVersions.js.map +1 -1
  786. package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
  787. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  788. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  789. package/dist/globals/operations/local/update.d.ts +3 -3
  790. package/dist/globals/operations/local/update.d.ts.map +1 -1
  791. package/dist/globals/operations/local/update.js.map +1 -1
  792. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  793. package/dist/globals/operations/restoreVersion.js +1 -0
  794. package/dist/globals/operations/restoreVersion.js.map +1 -1
  795. package/dist/globals/operations/update.d.ts.map +1 -1
  796. package/dist/globals/operations/update.js +1 -0
  797. package/dist/globals/operations/update.js.map +1 -1
  798. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  799. package/dist/hierarchy/addHierarchyToCollection.js +2 -0
  800. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  801. package/dist/hierarchy/buildParentField.d.ts.map +1 -1
  802. package/dist/hierarchy/constants.d.ts.map +1 -1
  803. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  804. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  805. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
  806. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
  807. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  808. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
  809. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  810. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
  811. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
  812. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
  813. package/dist/index.bundled.d.ts +6085 -4339
  814. package/dist/index.d.ts +158 -55
  815. package/dist/index.d.ts.map +1 -1
  816. package/dist/index.js +85 -65
  817. package/dist/index.js.map +1 -1
  818. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  819. package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
  820. package/dist/locked-documents/config.d.ts.map +1 -1
  821. package/dist/preferences/config.d.ts.map +1 -1
  822. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  823. package/dist/preferences/keys.d.ts +8 -4
  824. package/dist/preferences/keys.d.ts.map +1 -1
  825. package/dist/preferences/keys.js +4 -1
  826. package/dist/preferences/keys.js.map +1 -1
  827. package/dist/preferences/types.d.ts +15 -0
  828. package/dist/preferences/types.d.ts.map +1 -1
  829. package/dist/preferences/types.js +3 -1
  830. package/dist/preferences/types.js.map +1 -1
  831. package/dist/query-presets/access.d.ts.map +1 -1
  832. package/dist/query-presets/config.d.ts.map +1 -1
  833. package/dist/query-presets/constraints.d.ts.map +1 -1
  834. package/dist/query-presets/constraints.js +1 -1
  835. package/dist/query-presets/constraints.js.map +1 -1
  836. package/dist/query-presets/types.d.ts +1 -1
  837. package/dist/query-presets/types.d.ts.map +1 -1
  838. package/dist/queues/config/collection.d.ts.map +1 -1
  839. package/dist/queues/config/collection.js +43 -43
  840. package/dist/queues/config/collection.js.map +1 -1
  841. package/dist/queues/config/global.d.ts +5 -6
  842. package/dist/queues/config/global.d.ts.map +1 -1
  843. package/dist/queues/config/global.js +1 -1
  844. package/dist/queues/config/global.js.map +1 -1
  845. package/dist/queues/config/types/index.d.ts +31 -24
  846. package/dist/queues/config/types/index.d.ts.map +1 -1
  847. package/dist/queues/config/types/index.js.map +1 -1
  848. package/dist/queues/config/types/taskTypes.d.ts +4 -7
  849. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  850. package/dist/queues/config/types/taskTypes.js.map +1 -1
  851. package/dist/queues/config/types/workflowJSONTypes.d.ts +10 -9
  852. package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -1
  853. package/dist/queues/config/types/workflowJSONTypes.js.map +1 -1
  854. package/dist/queues/config/types/workflowTypes.d.ts +11 -58
  855. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
  856. package/dist/queues/config/types/workflowTypes.js.map +1 -1
  857. package/dist/queues/endpoints/handleSchedules.d.ts.map +1 -1
  858. package/dist/queues/endpoints/handleSchedules.js +3 -2
  859. package/dist/queues/endpoints/handleSchedules.js.map +1 -1
  860. package/dist/queues/endpoints/run.d.ts.map +1 -1
  861. package/dist/queues/endpoints/run.js +2 -1
  862. package/dist/queues/endpoints/run.js.map +1 -1
  863. package/dist/queues/errors/handleTaskError.js +4 -4
  864. package/dist/queues/errors/handleTaskError.js.map +1 -1
  865. package/dist/queues/errors/handleWorkflowError.js +1 -1
  866. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  867. package/dist/queues/errors/index.d.ts +6 -0
  868. package/dist/queues/errors/index.d.ts.map +1 -1
  869. package/dist/queues/errors/index.js +5 -0
  870. package/dist/queues/errors/index.js.map +1 -1
  871. package/dist/queues/localAPI.d.ts +9 -9
  872. package/dist/queues/localAPI.d.ts.map +1 -1
  873. package/dist/queues/localAPI.js +63 -66
  874. package/dist/queues/localAPI.js.map +1 -1
  875. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts +4 -4
  876. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts.map +1 -1
  877. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.js.map +1 -1
  878. package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
  879. package/dist/queues/operations/handleSchedules/index.d.ts +1 -1
  880. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  881. package/dist/queues/operations/handleSchedules/index.js +1 -1
  882. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  883. package/dist/queues/operations/runJobs/heartbeat.d.ts +13 -0
  884. package/dist/queues/operations/runJobs/heartbeat.d.ts.map +1 -0
  885. package/dist/queues/operations/runJobs/heartbeat.js +66 -0
  886. package/dist/queues/operations/runJobs/heartbeat.js.map +1 -0
  887. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  888. package/dist/queues/operations/runJobs/index.js +133 -84
  889. package/dist/queues/operations/runJobs/index.js.map +1 -1
  890. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  891. package/dist/queues/operations/runJobs/runJSONJob/index.js +6 -3
  892. package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -1
  893. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  894. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +5 -5
  895. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  896. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +2 -1
  897. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  898. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +39 -8
  899. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  900. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
  901. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
  902. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -1
  903. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  904. package/dist/queues/operations/runJobs/runJob/index.js +4 -4
  905. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
  906. package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
  907. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  908. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  909. package/dist/queues/utilities/updateJob.js +3 -0
  910. package/dist/queues/utilities/updateJob.js.map +1 -1
  911. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  912. package/dist/types/constants.d.ts +23 -2
  913. package/dist/types/constants.d.ts.map +1 -1
  914. package/dist/types/constants.js +23 -0
  915. package/dist/types/constants.js.map +1 -1
  916. package/dist/types/index.d.ts +12 -10
  917. package/dist/types/index.d.ts.map +1 -1
  918. package/dist/types/index.js.map +1 -1
  919. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  920. package/dist/uploads/checkFileAccess.js +1 -0
  921. package/dist/uploads/checkFileAccess.js.map +1 -1
  922. package/dist/uploads/checkFileRestrictions.d.ts +1 -1
  923. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  924. package/dist/uploads/checkFileRestrictions.js +15 -1
  925. package/dist/uploads/checkFileRestrictions.js.map +1 -1
  926. package/dist/uploads/cropImage.d.ts +1 -1
  927. package/dist/uploads/cropImage.d.ts.map +1 -1
  928. package/dist/uploads/cropImage.js +2 -5
  929. package/dist/uploads/cropImage.js.map +1 -1
  930. package/dist/uploads/cropImage.spec.js +71 -0
  931. package/dist/uploads/cropImage.spec.js.map +1 -0
  932. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  933. package/dist/uploads/endpoints/getFileFromURL.js +2 -0
  934. package/dist/uploads/endpoints/getFileFromURL.js.map +1 -1
  935. package/dist/uploads/endpoints/uploadInstructions.d.ts +15 -0
  936. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -0
  937. package/dist/uploads/endpoints/uploadInstructions.js +84 -0
  938. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -0
  939. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
  940. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js +1 -2
  941. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  942. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js +28 -0
  943. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js.map +1 -1
  944. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  945. package/dist/uploads/fetchAPI-multipart/processMultipart.js +3 -12
  946. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  947. package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
  948. package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
  949. package/dist/uploads/fileExists.d.ts.map +1 -1
  950. package/dist/uploads/generateFileData.d.ts +9 -0
  951. package/dist/uploads/generateFileData.d.ts.map +1 -1
  952. package/dist/uploads/generateFileData.js +60 -46
  953. package/dist/uploads/generateFileData.js.map +1 -1
  954. package/dist/uploads/generateFileData.spec.js +207 -0
  955. package/dist/uploads/generateFileData.spec.js.map +1 -0
  956. package/dist/uploads/generateFileData.tempFileBuffering.spec.js +81 -0
  957. package/dist/uploads/generateFileData.tempFileBuffering.spec.js.map +1 -0
  958. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  959. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  960. package/dist/uploads/getFileByPath.d.ts +1 -1
  961. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  962. package/dist/uploads/getFileContentRequirement.d.ts +32 -0
  963. package/dist/uploads/getFileContentRequirement.d.ts.map +1 -0
  964. package/dist/uploads/getFileContentRequirement.js +40 -0
  965. package/dist/uploads/getFileContentRequirement.js.map +1 -0
  966. package/dist/uploads/getFileContentRequirement.spec.js +125 -0
  967. package/dist/uploads/getFileContentRequirement.spec.js.map +1 -0
  968. package/dist/uploads/getFileFromUploadInstructions.d.ts +8 -0
  969. package/dist/uploads/getFileFromUploadInstructions.d.ts.map +1 -0
  970. package/dist/uploads/getFileFromUploadInstructions.js +232 -0
  971. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -0
  972. package/dist/uploads/getFileFromUploadInstructions.spec.js +378 -0
  973. package/dist/uploads/getFileFromUploadInstructions.spec.js.map +1 -0
  974. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  975. package/dist/uploads/getImageSize.d.ts +12 -1
  976. package/dist/uploads/getImageSize.d.ts.map +1 -1
  977. package/dist/uploads/getImageSize.js +20 -18
  978. package/dist/uploads/getImageSize.js.map +1 -1
  979. package/dist/uploads/getImageSize.spec.js +298 -0
  980. package/dist/uploads/getImageSize.spec.js.map +1 -0
  981. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  982. package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
  983. package/dist/uploads/image-resizing/createImageSizes.d.ts.map +1 -1
  984. package/dist/uploads/image-resizing/createImageSizes.js +2 -5
  985. package/dist/uploads/image-resizing/createImageSizes.js.map +1 -1
  986. package/dist/uploads/image-resizing/createImageSizes.spec.js +80 -0
  987. package/dist/uploads/image-resizing/createImageSizes.spec.js.map +1 -0
  988. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
  989. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +1 -1
  990. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
  991. package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
  992. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
  993. package/dist/uploads/isAnimatedImage.d.ts +8 -0
  994. package/dist/uploads/isAnimatedImage.d.ts.map +1 -0
  995. package/dist/uploads/isAnimatedImage.js +22 -0
  996. package/dist/uploads/isAnimatedImage.js.map +1 -0
  997. package/dist/uploads/isAnimatedImage.spec.js +19 -0
  998. package/dist/uploads/isAnimatedImage.spec.js.map +1 -0
  999. package/dist/uploads/matchMimeType.d.ts +8 -0
  1000. package/dist/uploads/matchMimeType.d.ts.map +1 -0
  1001. package/dist/uploads/matchMimeType.js +19 -0
  1002. package/dist/uploads/matchMimeType.js.map +1 -0
  1003. package/dist/uploads/matchMimeType.spec.js +66 -0
  1004. package/dist/uploads/matchMimeType.spec.js.map +1 -0
  1005. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  1006. package/dist/uploads/probeImageSize.d.ts +39 -0
  1007. package/dist/uploads/probeImageSize.d.ts.map +1 -0
  1008. package/dist/uploads/probeImageSize.js +374 -0
  1009. package/dist/uploads/probeImageSize.js.map +1 -0
  1010. package/dist/uploads/probeImageSize.spec.js +366 -0
  1011. package/dist/uploads/probeImageSize.spec.js.map +1 -0
  1012. package/dist/uploads/safeFetch.d.ts.map +1 -1
  1013. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  1014. package/dist/uploads/stagedUpload.d.ts +27 -0
  1015. package/dist/uploads/stagedUpload.d.ts.map +1 -0
  1016. package/dist/uploads/stagedUpload.js +197 -0
  1017. package/dist/uploads/stagedUpload.js.map +1 -0
  1018. package/dist/uploads/types.d.ts +112 -7
  1019. package/dist/uploads/types.d.ts.map +1 -1
  1020. package/dist/uploads/types.js.map +1 -1
  1021. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  1022. package/dist/uploads/unlinkTempFiles.js +6 -2
  1023. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  1024. package/dist/uploads/unlinkTempFiles.spec.js +71 -0
  1025. package/dist/uploads/unlinkTempFiles.spec.js.map +1 -0
  1026. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  1027. package/dist/uploads/uploadFiles.js +7 -2
  1028. package/dist/uploads/uploadFiles.js.map +1 -1
  1029. package/dist/uploads/uploadFiles.spec.js +44 -0
  1030. package/dist/uploads/uploadFiles.spec.js.map +1 -0
  1031. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  1032. package/dist/utilities/addDataAndFileToRequest.js +12 -39
  1033. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  1034. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  1035. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  1036. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
  1037. package/dist/utilities/appendNonTrashedFilter.d.ts +1 -1
  1038. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  1039. package/dist/utilities/appendNonTrashedFilter.js.map +1 -1
  1040. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  1041. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  1042. package/dist/utilities/canAccessAdmin.js +1 -0
  1043. package/dist/utilities/canAccessAdmin.js.map +1 -1
  1044. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  1045. package/dist/utilities/configToJSONSchema.d.ts +13 -4
  1046. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  1047. package/dist/utilities/configToJSONSchema.js +139 -61
  1048. package/dist/utilities/configToJSONSchema.js.map +1 -1
  1049. package/dist/utilities/configToJSONSchema.spec.js +378 -22
  1050. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  1051. package/dist/utilities/createLocalReq.d.ts +2 -2
  1052. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  1053. package/dist/utilities/createLocalReq.js.map +1 -1
  1054. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  1055. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  1056. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
  1057. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts +30 -0
  1058. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts.map +1 -0
  1059. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js +71 -0
  1060. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js.map +1 -0
  1061. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts +13 -0
  1062. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts.map +1 -0
  1063. package/dist/utilities/entityInputSchema/getEntityInputSchema.js +66 -0
  1064. package/dist/utilities/entityInputSchema/getEntityInputSchema.js.map +1 -0
  1065. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts +10 -0
  1066. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts.map +1 -0
  1067. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js +384 -0
  1068. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js.map +1 -0
  1069. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.spec.js +133 -0
  1070. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.spec.js.map +1 -0
  1071. package/dist/utilities/entityInputSchema/types.d.ts +16 -0
  1072. package/dist/utilities/entityInputSchema/types.d.ts.map +1 -0
  1073. package/dist/utilities/entityInputSchema/types.js +3 -0
  1074. package/dist/utilities/entityInputSchema/types.js.map +1 -0
  1075. package/dist/utilities/entityInputSchema/validateEntityData.d.ts +13 -0
  1076. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -0
  1077. package/dist/utilities/entityInputSchema/validateEntityData.js +138 -0
  1078. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -0
  1079. package/dist/utilities/escapeRegExp.d.ts.map +1 -1
  1080. package/dist/utilities/extractID.d.ts.map +1 -1
  1081. package/dist/utilities/fieldValueExists.d.ts +29 -0
  1082. package/dist/utilities/fieldValueExists.d.ts.map +1 -0
  1083. package/dist/utilities/fieldValueExists.js +37 -0
  1084. package/dist/utilities/fieldValueExists.js.map +1 -0
  1085. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  1086. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  1087. package/dist/utilities/formatErrors.d.ts.map +1 -1
  1088. package/dist/utilities/formatLabels.d.ts.map +1 -1
  1089. package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
  1090. package/dist/utilities/getBlockSelect.d.ts.map +1 -1
  1091. package/dist/utilities/getDataByPath.d.ts.map +1 -1
  1092. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  1093. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +3 -0
  1094. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  1095. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
  1096. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  1097. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +19 -2
  1098. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  1099. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  1100. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  1101. package/dist/utilities/getNextVersion.d.ts +7 -0
  1102. package/dist/utilities/getNextVersion.d.ts.map +1 -0
  1103. package/dist/utilities/getNextVersion.js +20 -0
  1104. package/dist/utilities/getNextVersion.js.map +1 -0
  1105. package/dist/utilities/getNextVersion.spec.js +16 -0
  1106. package/dist/utilities/getNextVersion.spec.js.map +1 -0
  1107. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  1108. package/dist/utilities/getRequestEntity.d.ts.map +1 -1
  1109. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  1110. package/dist/utilities/getRequestOrigin.d.ts +2 -2
  1111. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  1112. package/dist/utilities/getRequestOrigin.js.map +1 -1
  1113. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  1114. package/dist/utilities/getSafeRedirect.js +16 -9
  1115. package/dist/utilities/getSafeRedirect.js.map +1 -1
  1116. package/dist/utilities/getSafeRedirect.spec.js +96 -2
  1117. package/dist/utilities/getSafeRedirect.spec.js.map +1 -1
  1118. package/dist/utilities/getSelectMode.d.ts.map +1 -1
  1119. package/dist/utilities/getSiblingData.d.ts.map +1 -1
  1120. package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
  1121. package/dist/utilities/getUniqueFieldValue.d.ts +28 -0
  1122. package/dist/utilities/getUniqueFieldValue.d.ts.map +1 -0
  1123. package/dist/utilities/getUniqueFieldValue.js +27 -0
  1124. package/dist/utilities/getUniqueFieldValue.js.map +1 -0
  1125. package/dist/utilities/getVersionsConfig.d.ts +1 -1
  1126. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  1127. package/dist/utilities/getVirtualFieldNames.d.ts +14 -0
  1128. package/dist/utilities/getVirtualFieldNames.d.ts.map +1 -0
  1129. package/dist/utilities/getVirtualFieldNames.js +35 -0
  1130. package/dist/utilities/getVirtualFieldNames.js.map +1 -0
  1131. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  1132. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  1133. package/dist/utilities/headersWithCors.js +1 -1
  1134. package/dist/utilities/headersWithCors.js.map +1 -1
  1135. package/dist/utilities/isEntityHidden.d.ts +2 -2
  1136. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  1137. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  1138. package/dist/utilities/isURLAllowed.js +9 -3
  1139. package/dist/utilities/isURLAllowed.js.map +1 -1
  1140. package/dist/utilities/isURLAllowed.spec.js +78 -0
  1141. package/dist/utilities/isURLAllowed.spec.js.map +1 -0
  1142. package/dist/utilities/isValidID.d.ts +1 -1
  1143. package/dist/utilities/isValidID.d.ts.map +1 -1
  1144. package/dist/utilities/killTransaction.d.ts +7 -0
  1145. package/dist/utilities/killTransaction.d.ts.map +1 -1
  1146. package/dist/utilities/killTransaction.js +7 -0
  1147. package/dist/utilities/killTransaction.js.map +1 -1
  1148. package/dist/utilities/logError.d.ts.map +1 -1
  1149. package/dist/utilities/logError.js +5 -2
  1150. package/dist/utilities/logError.js.map +1 -1
  1151. package/dist/utilities/logger.d.ts +1 -1
  1152. package/dist/utilities/logger.d.ts.map +1 -1
  1153. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  1154. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
  1155. package/dist/utilities/miniChalk.d.ts.map +1 -1
  1156. package/dist/utilities/nextJsDevReloadStrategy.d.ts +7 -0
  1157. package/dist/utilities/nextJsDevReloadStrategy.d.ts.map +1 -0
  1158. package/dist/utilities/nextJsDevReloadStrategy.js +59 -0
  1159. package/dist/utilities/nextJsDevReloadStrategy.js.map +1 -0
  1160. package/dist/utilities/nextJsDevReloadStrategy.spec.js +123 -0
  1161. package/dist/utilities/nextJsDevReloadStrategy.spec.js.map +1 -0
  1162. package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
  1163. package/dist/utilities/parseBooleanString.d.ts.map +1 -1
  1164. package/dist/utilities/parseCookies.d.ts +1 -1
  1165. package/dist/utilities/parseCookies.d.ts.map +1 -1
  1166. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  1167. package/dist/utilities/profiling.d.ts.map +1 -1
  1168. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  1169. package/dist/utilities/resolveSelect.d.ts.map +1 -1
  1170. package/dist/utilities/routeError.d.ts.map +1 -1
  1171. package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
  1172. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  1173. package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
  1174. package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
  1175. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  1176. package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
  1177. package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
  1178. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  1179. package/dist/utilities/sharedInputSchemas.d.ts +52 -0
  1180. package/dist/utilities/sharedInputSchemas.d.ts.map +1 -0
  1181. package/dist/utilities/sharedInputSchemas.js +101 -0
  1182. package/dist/utilities/sharedInputSchemas.js.map +1 -0
  1183. package/dist/utilities/slugify.d.ts.map +1 -1
  1184. package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
  1185. package/dist/utilities/telemetry/conf/envPaths.d.ts.map +1 -1
  1186. package/dist/utilities/telemetry/conf/envPaths.js +40 -31
  1187. package/dist/utilities/telemetry/conf/envPaths.js.map +1 -1
  1188. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  1189. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  1190. package/dist/utilities/telemetry/events/adminInit.js +2 -3
  1191. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  1192. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  1193. package/dist/utilities/telemetry/events/serverInit.js +2 -3
  1194. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  1195. package/dist/utilities/telemetry/getProjectContext.d.ts +16 -0
  1196. package/dist/utilities/telemetry/getProjectContext.d.ts.map +1 -0
  1197. package/dist/utilities/telemetry/getProjectContext.js +43 -0
  1198. package/dist/utilities/telemetry/getProjectContext.js.map +1 -0
  1199. package/dist/utilities/telemetry/index.d.ts +18 -4
  1200. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  1201. package/dist/utilities/telemetry/index.js +13 -1
  1202. package/dist/utilities/telemetry/index.js.map +1 -1
  1203. package/dist/utilities/telemetry/index.spec.js +43 -0
  1204. package/dist/utilities/telemetry/index.spec.js.map +1 -0
  1205. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  1206. package/dist/utilities/timestamp.d.ts.map +1 -1
  1207. package/dist/utilities/toKebabCase.d.ts.map +1 -1
  1208. package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
  1209. package/dist/utilities/transformPointDataToPayload.d.ts +7 -0
  1210. package/dist/utilities/transformPointDataToPayload.d.ts.map +1 -0
  1211. package/dist/utilities/transformPointDataToPayload.js +28 -0
  1212. package/dist/utilities/transformPointDataToPayload.js.map +1 -0
  1213. package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
  1214. package/dist/utilities/traverseFields.d.ts.map +1 -1
  1215. package/dist/utilities/traverseFields.js +20 -22
  1216. package/dist/utilities/traverseFields.js.map +1 -1
  1217. package/dist/utilities/traverseFields.spec.js +112 -0
  1218. package/dist/utilities/traverseFields.spec.js.map +1 -1
  1219. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  1220. package/dist/utilities/unflatten.d.ts.map +1 -1
  1221. package/dist/utilities/unflattenData.d.ts +3 -0
  1222. package/dist/utilities/unflattenData.d.ts.map +1 -0
  1223. package/dist/utilities/unflattenData.js +14 -0
  1224. package/dist/utilities/unflattenData.js.map +1 -0
  1225. package/dist/utilities/validateMimeType.d.ts.map +1 -1
  1226. package/dist/utilities/validateTimezones.d.ts.map +1 -1
  1227. package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
  1228. package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
  1229. package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
  1230. package/dist/utilities/zod.d.ts +5 -0
  1231. package/dist/utilities/zod.d.ts.map +1 -0
  1232. package/dist/utilities/zod.js +21 -0
  1233. package/dist/utilities/zod.js.map +1 -0
  1234. package/dist/versions/baseFields.d.ts.map +1 -1
  1235. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  1236. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  1237. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  1238. package/dist/versions/defaults.d.ts.map +1 -1
  1239. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  1240. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  1241. package/dist/versions/deleteScheduledPublishJobs.js +2 -2
  1242. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  1243. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  1244. package/dist/versions/drafts/appendVersionToQueryKey.js +1 -3
  1245. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  1246. package/dist/versions/drafts/appendVersionToQueryKey.spec.js +28 -0
  1247. package/dist/versions/drafts/appendVersionToQueryKey.spec.js.map +1 -0
  1248. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
  1249. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  1250. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  1251. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  1252. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  1253. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  1254. package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
  1255. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  1256. package/dist/versions/payloadPackageList.js +0 -1
  1257. package/dist/versions/payloadPackageList.js.map +1 -1
  1258. package/dist/versions/schedule/job.d.ts.map +1 -1
  1259. package/dist/versions/schedule/job.js +4 -1
  1260. package/dist/versions/schedule/job.js.map +1 -1
  1261. package/package.json +24 -7
  1262. package/skills/payload/SKILL.md +526 -0
  1263. package/skills/payload/reference/ACCESS-CONTROL-ADVANCED.md +704 -0
  1264. package/skills/payload/reference/ACCESS-CONTROL.md +696 -0
  1265. package/skills/payload/reference/ADAPTERS.md +305 -0
  1266. package/skills/payload/reference/ADVANCED.md +386 -0
  1267. package/skills/payload/reference/COLLECTIONS.md +333 -0
  1268. package/skills/payload/reference/ENDPOINTS.md +634 -0
  1269. package/skills/payload/reference/FIELD-TYPE-GUARDS.md +553 -0
  1270. package/skills/payload/reference/FIELDS.md +745 -0
  1271. package/skills/payload/reference/HOOKS.md +186 -0
  1272. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +1436 -0
  1273. package/skills/payload/reference/QUERIES.md +274 -0
  1274. package/dist/bin/build.d.ts +0 -25
  1275. package/dist/bin/build.d.ts.map +0 -1
  1276. package/dist/bin/build.js +0 -80
  1277. package/dist/bin/build.js.map +0 -1
  1278. package/dist/bin/build.spec.js +0 -170
  1279. package/dist/bin/build.spec.js.map +0 -1
  1280. package/dist/bin/generateImportMap/generateImportMap.spec.js.map +0 -1
  1281. package/dist/bin/generateImportMap/index.d.ts.map +0 -1
  1282. package/dist/bin/generateImportMap/index.js.map +0 -1
  1283. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +0 -1
  1284. package/dist/bin/generateImportMap/iterateCollections.js.map +0 -1
  1285. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +0 -1
  1286. package/dist/bin/generateImportMap/iterateConfig.js.map +0 -1
  1287. package/dist/bin/generateImportMap/iterateFields.d.ts.map +0 -1
  1288. package/dist/bin/generateImportMap/iterateFields.js.map +0 -1
  1289. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +0 -1
  1290. package/dist/bin/generateImportMap/iterateGlobals.js.map +0 -1
  1291. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +0 -1
  1292. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +0 -1
  1293. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +0 -1
  1294. package/dist/bin/generateImportMap/utilities/getFromImportMap.js.map +0 -1
  1295. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +0 -1
  1296. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +0 -1
  1297. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.d.ts.map +0 -1
  1298. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.js.map +0 -1
  1299. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +0 -1
  1300. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +0 -1
  1301. package/dist/bin/generateTypes.d.ts +0 -6
  1302. package/dist/bin/generateTypes.d.ts.map +0 -1
  1303. package/dist/bin/generateTypes.js.map +0 -1
  1304. package/dist/bin/index.d.ts +0 -2
  1305. package/dist/bin/index.d.ts.map +0 -1
  1306. package/dist/bin/index.js +0 -200
  1307. package/dist/bin/index.js.map +0 -1
  1308. package/dist/bin/info.d.ts +0 -2
  1309. package/dist/bin/info.d.ts.map +0 -1
  1310. package/dist/bin/info.js +0 -56
  1311. package/dist/bin/info.js.map +0 -1
  1312. package/dist/bin/loadEnv.d.ts.map +0 -1
  1313. package/dist/bin/loadEnv.js.map +0 -1
  1314. package/dist/bin/migrate.d.ts +0 -15
  1315. package/dist/bin/migrate.d.ts.map +0 -1
  1316. package/dist/bin/migrate.js +0 -102
  1317. package/dist/bin/migrate.js.map +0 -1
  1318. package/dist/database/defaultUpdateJobs.d.ts +0 -3
  1319. package/dist/database/defaultUpdateJobs.d.ts.map +0 -1
  1320. package/dist/database/defaultUpdateJobs.js +0 -41
  1321. package/dist/database/defaultUpdateJobs.js.map +0 -1
  1322. package/dist/fields/baseFields/slug/countVersions.d.ts +0 -13
  1323. package/dist/fields/baseFields/slug/countVersions.d.ts.map +0 -1
  1324. package/dist/fields/baseFields/slug/countVersions.js +0 -29
  1325. package/dist/fields/baseFields/slug/countVersions.js.map +0 -1
  1326. package/dist/fields/baseFields/slug/index.d.ts +0 -89
  1327. package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
  1328. package/dist/fields/baseFields/slug/index.js +0 -81
  1329. package/dist/fields/baseFields/slug/index.js.map +0 -1
  1330. package/dist/uploads/tempFile.d.ts +0 -7
  1331. package/dist/uploads/tempFile.d.ts.map +0 -1
  1332. package/dist/uploads/tempFile.js +0 -39
  1333. package/dist/uploads/tempFile.js.map +0 -1
  1334. package/dist/utilities/isRSCEnabled.d.ts +0 -12
  1335. package/dist/utilities/isRSCEnabled.d.ts.map +0 -1
  1336. package/dist/utilities/isRSCEnabled.js +0 -14
  1337. package/dist/utilities/isRSCEnabled.js.map +0 -1
  1338. /package/dist/{bin → cli/commands}/generateImportMap/generateImportMap.spec.js +0 -0
  1339. /package/dist/{bin → cli/commands}/generateImportMap/iterateFields.js +0 -0
  1340. /package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.js +0 -0
  1341. /package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.js +0 -0
  1342. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.js +0 -0
  1343. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts +0 -0
  1344. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.js +0 -0
  1345. /package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.js +0 -0
  1346. /package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.d.ts +0 -0
  1347. /package/dist/{bin → cli/runtime}/loadEnv.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/login.ts"],"sourcesContent":["import type {\n AuthOperationsFromCollectionSlug,\n Collection,\n DataFromCollectionSlug,\n} from '../../collections/config/types.js'\nimport type { AuthCollectionSlug, TypedUser } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport {\n AuthenticationError,\n LockedAuth,\n UnverifiedEmail,\n ValidationError,\n} from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction, Forbidden, initTransaction } from '../../index.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeInternalFields } from '../../utilities/sanitizeInternalFields.js'\nimport { getFieldsToSign } from '../getFieldsToSign.js'\nimport { getLoginOptions } from '../getLoginOptions.js'\nimport { isUserLocked } from '../isUserLocked.js'\nimport { jwtSign } from '../jwt.js'\nimport { addSessionToUser, revokeSession } from '../sessions.js'\nimport { authenticateLocalStrategy } from '../strategies/local/authenticate.js'\nimport { incrementLoginAttempts } from '../strategies/local/incrementLoginAttempts.js'\nimport { resetLoginAttempts } from '../strategies/local/resetLoginAttempts.js'\n\nexport type LoginResult<TSlug extends AuthCollectionSlug> = {\n exp?: number\n token?: string\n user?: DataFromCollectionSlug<TSlug>\n}\n\nexport type Arguments<TSlug extends AuthCollectionSlug> = {\n collection: Collection\n data: AuthOperationsFromCollectionSlug<TSlug>['login']\n depth?: number\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\ntype CheckLoginPermissionArgs<TSlug extends AuthCollectionSlug> = {\n loggingInWithUsername?: boolean\n req: PayloadRequest\n user: DataFromCollectionSlug<TSlug>\n}\n\n/**\n * Throws an error if the user is locked or does not exist.\n * This does not check the login attempts, only the lock status. Whoever increments login attempts\n * is responsible for locking the user properly, not whoever checks the login permission.\n */\nexport const checkLoginPermission = <TSlug extends AuthCollectionSlug>({\n loggingInWithUsername,\n req,\n user,\n}: CheckLoginPermissionArgs<TSlug>) => {\n if (!user) {\n throw new AuthenticationError(req.t, Boolean(loggingInWithUsername))\n }\n\n if (isUserLocked(new Date(user.lockUntil))) {\n throw new LockedAuth(req.t)\n }\n}\n\nexport const loginOperation = async <TSlug extends AuthCollectionSlug>(\n incomingArgs: Arguments<TSlug>,\n): Promise<LoginResult<TSlug>> => {\n let args = incomingArgs\n\n if (args.collection.config.auth.disableLocalStrategy) {\n throw new Forbidden(args.req.t)\n }\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'login',\n overrideAccess: args.overrideAccess!,\n })\n\n const {\n collection: { config: collectionConfig },\n data,\n depth,\n overrideAccess = false,\n req,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { secret },\n },\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Login\n // /////////////////////////////////////\n\n const { email: unsanitizedEmail, password } = data\n const loginWithUsername = collectionConfig.auth.loginWithUsername\n\n const sanitizedEmail =\n typeof unsanitizedEmail === 'string' ? unsanitizedEmail.toLowerCase().trim() : null\n const sanitizedUsername =\n 'username' in data && typeof data?.username === 'string'\n ? data.username.toLowerCase().trim()\n : null\n\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(loginWithUsername)\n\n // cannot login with email, did not provide username\n if (!canLoginWithEmail && !sanitizedUsername) {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [{ message: req.i18n.t('validation:required'), path: 'username' }],\n })\n }\n\n // cannot login with username, did not provide email\n if (!canLoginWithUsername && !sanitizedEmail) {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [{ message: req.i18n.t('validation:required'), path: 'email' }],\n })\n }\n\n // can login with either email or username, did not provide either\n if (!sanitizedUsername && !sanitizedEmail) {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [\n { message: req.i18n.t('validation:required'), path: 'email' },\n { message: req.i18n.t('validation:required'), path: 'username' },\n ],\n })\n }\n\n // did not provide password for login\n if (typeof password !== 'string' || password.trim() === '') {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [{ message: req.i18n.t('validation:required'), path: 'password' }],\n })\n }\n\n let whereConstraint: Where = {}\n const emailConstraint: Where = {\n email: {\n equals: sanitizedEmail,\n },\n }\n const usernameConstraint: Where = {\n username: {\n equals: sanitizedUsername,\n },\n }\n\n if (canLoginWithEmail && canLoginWithUsername && (sanitizedUsername || sanitizedEmail)) {\n if (sanitizedUsername) {\n whereConstraint = {\n or: [\n usernameConstraint,\n {\n email: {\n equals: sanitizedUsername,\n },\n },\n ],\n }\n } else {\n whereConstraint = {\n or: [\n emailConstraint,\n {\n username: {\n equals: sanitizedEmail,\n },\n },\n ],\n }\n }\n } else if (canLoginWithEmail && sanitizedEmail) {\n whereConstraint = emailConstraint\n } else if (canLoginWithUsername && sanitizedUsername) {\n whereConstraint = usernameConstraint\n }\n\n // Exclude trashed users\n whereConstraint = appendNonTrashedFilter({\n enableTrash: collectionConfig.trash,\n trash: false,\n where: whereConstraint,\n })\n\n let user = (await payload.db.findOne<TypedUser>({\n collection: collectionConfig.slug,\n req,\n where: whereConstraint,\n })) as TypedUser\n\n checkLoginPermission({\n loggingInWithUsername: Boolean(canLoginWithUsername && sanitizedUsername),\n req,\n user,\n })\n\n user.collection = collectionConfig.slug\n user._strategy = 'local-jwt'\n\n const authResult = await authenticateLocalStrategy({ doc: user, password })\n user = sanitizeInternalFields(user)\n\n const maxLoginAttemptsEnabled = args.collection.config.auth.maxLoginAttempts > 0\n\n if (!authResult) {\n if (maxLoginAttemptsEnabled) {\n await incrementLoginAttempts({\n collection: collectionConfig,\n payload: req.payload,\n user,\n })\n\n // Re-check login permissions and max attempts after incrementing attempts, in case parallel updates occurred\n checkLoginPermission({\n loggingInWithUsername: Boolean(canLoginWithUsername && sanitizedUsername),\n req,\n user,\n })\n }\n\n throw new AuthenticationError(req.t)\n }\n\n if (collectionConfig.auth.verify && user._verified === false) {\n throw new UnverifiedEmail({ t: req.t })\n }\n\n // Authentication successful - start transaction for remaining operations\n const shouldCommit = await initTransaction(args.req)\n let sid: string | undefined\n\n try {\n /*\n * Correct password accepted - re‑check that the account didn't\n * get locked by parallel bad attempts in the meantime.\n */\n if (maxLoginAttemptsEnabled) {\n const { lockUntil, loginAttempts } = (await payload.db.findOne<TypedUser>({\n collection: collectionConfig.slug,\n req,\n select: {\n lockUntil: true,\n loginAttempts: true,\n },\n where: { id: { equals: user.id } },\n }))!\n\n user.lockUntil = lockUntil\n user.loginAttempts = loginAttempts\n\n checkLoginPermission({\n req,\n user,\n })\n }\n\n const fieldsToSignArgs: Parameters<typeof getFieldsToSign>[0] = {\n collectionConfig,\n email: sanitizedEmail!,\n user,\n }\n\n const session = await addSessionToUser({\n collectionConfig,\n payload,\n req,\n user,\n })\n sid = session.sid\n\n if (sid) {\n fieldsToSignArgs.sid = sid\n }\n\n const fieldsToSign = getFieldsToSign(fieldsToSignArgs)\n\n if (maxLoginAttemptsEnabled) {\n await resetLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // beforeLogin - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeLogin?.length) {\n for (const hook of collectionConfig.hooks.beforeLogin) {\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n user,\n })) || user\n }\n }\n\n const { exp, token } = await jwtSign({\n fieldsToSign,\n secret,\n tokenExpiration: collectionConfig.auth.tokenExpiration,\n })\n\n req.user = user\n\n // /////////////////////////////////////\n // afterLogin - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterLogin?.length) {\n for (const hook of collectionConfig.hooks.afterLogin) {\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n token,\n user,\n })) || user\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n user = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: depth!,\n doc: user,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n draft: undefined,\n fallbackLocale: fallbackLocale!,\n global: null,\n locale: locale!,\n overrideAccess,\n req,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n user =\n (await hook({\n collection: args.collection?.config,\n context: req.context,\n doc: user,\n overrideAccess,\n req,\n })) || user\n }\n }\n\n let result: LoginResult<TSlug> = {\n exp,\n token,\n user,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'login',\n overrideAccess: args.overrideAccess!,\n result,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n if (sid) {\n await revokeSession({\n collectionConfig,\n payload,\n req,\n sid,\n user,\n })\n }\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["buildAfterOperation","buildBeforeOperation","AuthenticationError","LockedAuth","UnverifiedEmail","ValidationError","afterRead","commitTransaction","Forbidden","initTransaction","appendNonTrashedFilter","killTransaction","sanitizeInternalFields","getFieldsToSign","getLoginOptions","isUserLocked","jwtSign","addSessionToUser","revokeSession","authenticateLocalStrategy","incrementLoginAttempts","resetLoginAttempts","checkLoginPermission","loggingInWithUsername","req","user","t","Boolean","Date","lockUntil","loginOperation","incomingArgs","args","collection","config","auth","disableLocalStrategy","operation","overrideAccess","collectionConfig","data","depth","fallbackLocale","locale","payload","secret","showHiddenFields","email","unsanitizedEmail","password","loginWithUsername","sanitizedEmail","toLowerCase","trim","sanitizedUsername","username","canLoginWithEmail","canLoginWithUsername","slug","errors","message","i18n","path","whereConstraint","emailConstraint","equals","usernameConstraint","or","enableTrash","trash","where","db","findOne","_strategy","authResult","doc","maxLoginAttemptsEnabled","maxLoginAttempts","verify","_verified","shouldCommit","sid","loginAttempts","select","id","fieldsToSignArgs","session","fieldsToSign","hooks","beforeLogin","length","hook","context","exp","token","tokenExpiration","afterLogin","draft","undefined","global","result","error"],"mappings":"AAQA,SAASA,mBAAmB,QAAQ,gEAA+D;AACnG,SAASC,oBAAoB,QAAQ,iEAAgE;AACrG,SACEC,mBAAmB,EACnBC,UAAU,EACVC,eAAe,EACfC,eAAe,QACV,wBAAuB;AAC9B,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,iBAAiB,EAAEC,SAAS,EAAEC,eAAe,QAAQ,iBAAgB;AAC9E,SAASC,sBAAsB,QAAQ,4CAA2C;AAClF,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,sBAAsB,QAAQ,4CAA2C;AAClF,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,YAAY,QAAQ,qBAAoB;AACjD,SAASC,OAAO,QAAQ,YAAW;AACnC,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,iBAAgB;AAChE,SAASC,yBAAyB,QAAQ,sCAAqC;AAC/E,SAASC,sBAAsB,QAAQ,gDAA+C;AACtF,SAASC,kBAAkB,QAAQ,4CAA2C;AAuB9E;;;;CAIC,GACD,OAAO,MAAMC,uBAAuB,CAAmC,EACrEC,qBAAqB,EACrBC,GAAG,EACHC,IAAI,EAC4B;IAChC,IAAI,CAACA,MAAM;QACT,MAAM,IAAIvB,oBAAoBsB,IAAIE,CAAC,EAAEC,QAAQJ;IAC/C;IAEA,IAAIR,aAAa,IAAIa,KAAKH,KAAKI,SAAS,IAAI;QAC1C,MAAM,IAAI1B,WAAWqB,IAAIE,CAAC;IAC5B;AACF,EAAC;AAED,OAAO,MAAMI,iBAAiB,OAC5BC;IAEA,IAAIC,OAAOD;IAEX,IAAIC,KAAKC,UAAU,CAACC,MAAM,CAACC,IAAI,CAACC,oBAAoB,EAAE;QACpD,MAAM,IAAI5B,UAAUwB,KAAKR,GAAG,CAACE,CAAC;IAChC;IAEA,wCAAwC;IACxC,+BAA+B;IAC/B,wCAAwC;IAExCM,OAAO,MAAM/B,qBAAqB;QAChC+B;QACAC,YAAYD,KAAKC,UAAU,CAACC,MAAM;QAClCG,WAAW;QACXC,gBAAgBN,KAAKM,cAAc;IACrC;IAEA,MAAM,EACJL,YAAY,EAAEC,QAAQK,gBAAgB,EAAE,EACxCC,IAAI,EACJC,KAAK,EACLH,iBAAiB,KAAK,EACtBd,GAAG,EACHA,KAAK,EACHkB,cAAc,EACdC,MAAM,EACNC,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACpB,EACDC,gBAAgB,EACjB,GAAGd;IAEJ,wCAAwC;IACxC,QAAQ;IACR,wCAAwC;IAExC,MAAM,EAAEe,OAAOC,gBAAgB,EAAEC,QAAQ,EAAE,GAAGT;IAC9C,MAAMU,oBAAoBX,iBAAiBJ,IAAI,CAACe,iBAAiB;IAEjE,MAAMC,iBACJ,OAAOH,qBAAqB,WAAWA,iBAAiBI,WAAW,GAAGC,IAAI,KAAK;IACjF,MAAMC,oBACJ,cAAcd,QAAQ,OAAOA,MAAMe,aAAa,WAC5Cf,KAAKe,QAAQ,CAACH,WAAW,GAAGC,IAAI,KAChC;IAEN,MAAM,EAAEG,iBAAiB,EAAEC,oBAAoB,EAAE,GAAG3C,gBAAgBoC;IAEpE,oDAAoD;IACpD,IAAI,CAACM,qBAAqB,CAACF,mBAAmB;QAC5C,MAAM,IAAIjD,gBAAgB;YACxB4B,YAAYM,iBAAiBmB,IAAI;YACjCC,QAAQ;gBAAC;oBAAEC,SAASpC,IAAIqC,IAAI,CAACnC,CAAC,CAAC;oBAAwBoC,MAAM;gBAAW;aAAE;QAC5E;IACF;IAEA,oDAAoD;IACpD,IAAI,CAACL,wBAAwB,CAACN,gBAAgB;QAC5C,MAAM,IAAI9C,gBAAgB;YACxB4B,YAAYM,iBAAiBmB,IAAI;YACjCC,QAAQ;gBAAC;oBAAEC,SAASpC,IAAIqC,IAAI,CAACnC,CAAC,CAAC;oBAAwBoC,MAAM;gBAAQ;aAAE;QACzE;IACF;IAEA,kEAAkE;IAClE,IAAI,CAACR,qBAAqB,CAACH,gBAAgB;QACzC,MAAM,IAAI9C,gBAAgB;YACxB4B,YAAYM,iBAAiBmB,IAAI;YACjCC,QAAQ;gBACN;oBAAEC,SAASpC,IAAIqC,IAAI,CAACnC,CAAC,CAAC;oBAAwBoC,MAAM;gBAAQ;gBAC5D;oBAAEF,SAASpC,IAAIqC,IAAI,CAACnC,CAAC,CAAC;oBAAwBoC,MAAM;gBAAW;aAChE;QACH;IACF;IAEA,qCAAqC;IACrC,IAAI,OAAOb,aAAa,YAAYA,SAASI,IAAI,OAAO,IAAI;QAC1D,MAAM,IAAIhD,gBAAgB;YACxB4B,YAAYM,iBAAiBmB,IAAI;YACjCC,QAAQ;gBAAC;oBAAEC,SAASpC,IAAIqC,IAAI,CAACnC,CAAC,CAAC;oBAAwBoC,MAAM;gBAAW;aAAE;QAC5E;IACF;IAEA,IAAIC,kBAAyB,CAAC;IAC9B,MAAMC,kBAAyB;QAC7BjB,OAAO;YACLkB,QAAQd;QACV;IACF;IACA,MAAMe,qBAA4B;QAChCX,UAAU;YACRU,QAAQX;QACV;IACF;IAEA,IAAIE,qBAAqBC,wBAAyBH,CAAAA,qBAAqBH,cAAa,GAAI;QACtF,IAAIG,mBAAmB;YACrBS,kBAAkB;gBAChBI,IAAI;oBACFD;oBACA;wBACEnB,OAAO;4BACLkB,QAAQX;wBACV;oBACF;iBACD;YACH;QACF,OAAO;YACLS,kBAAkB;gBAChBI,IAAI;oBACFH;oBACA;wBACET,UAAU;4BACRU,QAAQd;wBACV;oBACF;iBACD;YACH;QACF;IACF,OAAO,IAAIK,qBAAqBL,gBAAgB;QAC9CY,kBAAkBC;IACpB,OAAO,IAAIP,wBAAwBH,mBAAmB;QACpDS,kBAAkBG;IACpB;IAEA,wBAAwB;IACxBH,kBAAkBrD,uBAAuB;QACvC0D,aAAa7B,iBAAiB8B,KAAK;QACnCA,OAAO;QACPC,OAAOP;IACT;IAEA,IAAItC,OAAQ,MAAMmB,QAAQ2B,EAAE,CAACC,OAAO,CAAY;QAC9CvC,YAAYM,iBAAiBmB,IAAI;QACjClC;QACA8C,OAAOP;IACT;IAEAzC,qBAAqB;QACnBC,uBAAuBI,QAAQ8B,wBAAwBH;QACvD9B;QACAC;IACF;IAEAA,KAAKQ,UAAU,GAAGM,iBAAiBmB,IAAI;IACvCjC,KAAKgD,SAAS,GAAG;IAEjB,MAAMC,aAAa,MAAMvD,0BAA0B;QAAEwD,KAAKlD;QAAMwB;IAAS;IACzExB,OAAOb,uBAAuBa;IAE9B,MAAMmD,0BAA0B5C,KAAKC,UAAU,CAACC,MAAM,CAACC,IAAI,CAAC0C,gBAAgB,GAAG;IAE/E,IAAI,CAACH,YAAY;QACf,IAAIE,yBAAyB;YAC3B,MAAMxD,uBAAuB;gBAC3Ba,YAAYM;gBACZK,SAASpB,IAAIoB,OAAO;gBACpBnB;YACF;YAEA,6GAA6G;YAC7GH,qBAAqB;gBACnBC,uBAAuBI,QAAQ8B,wBAAwBH;gBACvD9B;gBACAC;YACF;QACF;QAEA,MAAM,IAAIvB,oBAAoBsB,IAAIE,CAAC;IACrC;IAEA,IAAIa,iBAAiBJ,IAAI,CAAC2C,MAAM,IAAIrD,KAAKsD,SAAS,KAAK,OAAO;QAC5D,MAAM,IAAI3E,gBAAgB;YAAEsB,GAAGF,IAAIE,CAAC;QAAC;IACvC;IAEA,yEAAyE;IACzE,MAAMsD,eAAe,MAAMvE,gBAAgBuB,KAAKR,GAAG;IACnD,IAAIyD;IAEJ,IAAI;QACF;;;KAGC,GACD,IAAIL,yBAAyB;YAC3B,MAAM,EAAE/C,SAAS,EAAEqD,aAAa,EAAE,GAAI,MAAMtC,QAAQ2B,EAAE,CAACC,OAAO,CAAY;gBACxEvC,YAAYM,iBAAiBmB,IAAI;gBACjClC;gBACA2D,QAAQ;oBACNtD,WAAW;oBACXqD,eAAe;gBACjB;gBACAZ,OAAO;oBAAEc,IAAI;wBAAEnB,QAAQxC,KAAK2D,EAAE;oBAAC;gBAAE;YACnC;YAEA3D,KAAKI,SAAS,GAAGA;YACjBJ,KAAKyD,aAAa,GAAGA;YAErB5D,qBAAqB;gBACnBE;gBACAC;YACF;QACF;QAEA,MAAM4D,mBAA0D;YAC9D9C;YACAQ,OAAOI;YACP1B;QACF;QAEA,MAAM6D,UAAU,MAAMrE,iBAAiB;YACrCsB;YACAK;YACApB;YACAC;QACF;QACAwD,MAAMK,QAAQL,GAAG;QAEjB,IAAIA,KAAK;YACPI,iBAAiBJ,GAAG,GAAGA;QACzB;QAEA,MAAMM,eAAe1E,gBAAgBwE;QAErC,IAAIT,yBAAyB;YAC3B,MAAMvD,mBAAmB;gBACvBY,YAAYM;gBACZoC,KAAKlD;gBACLmB,SAASpB,IAAIoB,OAAO;gBACpBpB;YACF;QACF;QAEA,wCAAwC;QACxC,2BAA2B;QAC3B,wCAAwC;QAExC,IAAIe,iBAAiBiD,KAAK,EAAEC,aAAaC,QAAQ;YAC/C,KAAK,MAAMC,QAAQpD,iBAAiBiD,KAAK,CAACC,WAAW,CAAE;gBACrDhE,OACE,AAAC,MAAMkE,KAAK;oBACV1D,YAAYD,KAAKC,UAAU,EAAEC;oBAC7B0D,SAAS5D,KAAKR,GAAG,CAACoE,OAAO;oBACzBpE,KAAKQ,KAAKR,GAAG;oBACbC;gBACF,MAAOA;YACX;QACF;QAEA,MAAM,EAAEoE,GAAG,EAAEC,KAAK,EAAE,GAAG,MAAM9E,QAAQ;YACnCuE;YACA1C;YACAkD,iBAAiBxD,iBAAiBJ,IAAI,CAAC4D,eAAe;QACxD;QAEAvE,IAAIC,IAAI,GAAGA;QAEX,wCAAwC;QACxC,0BAA0B;QAC1B,wCAAwC;QAExC,IAAIc,iBAAiBiD,KAAK,EAAEQ,YAAYN,QAAQ;YAC9C,KAAK,MAAMC,QAAQpD,iBAAiBiD,KAAK,CAACQ,UAAU,CAAE;gBACpDvE,OACE,AAAC,MAAMkE,KAAK;oBACV1D,YAAYD,KAAKC,UAAU,EAAEC;oBAC7B0D,SAAS5D,KAAKR,GAAG,CAACoE,OAAO;oBACzBpE,KAAKQ,KAAKR,GAAG;oBACbsE;oBACArE;gBACF,MAAOA;YACX;QACF;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExCA,OAAO,MAAMnB,UAAU;YACrB2B,YAAYM;YACZqD,SAASpE,IAAIoE,OAAO;YACpBnD,OAAOA;YACPkC,KAAKlD;YACL,oFAAoF;YACpFwE,OAAOC;YACPxD,gBAAgBA;YAChByD,QAAQ;YACRxD,QAAQA;YACRL;YACAd;YACAsB,kBAAkBA;QACpB;QAEA,wCAAwC;QACxC,yBAAyB;QACzB,wCAAwC;QAExC,IAAIP,iBAAiBiD,KAAK,EAAElF,WAAWoF,QAAQ;YAC7C,KAAK,MAAMC,QAAQpD,iBAAiBiD,KAAK,CAAClF,SAAS,CAAE;gBACnDmB,OACE,AAAC,MAAMkE,KAAK;oBACV1D,YAAYD,KAAKC,UAAU,EAAEC;oBAC7B0D,SAASpE,IAAIoE,OAAO;oBACpBjB,KAAKlD;oBACLa;oBACAd;gBACF,MAAOC;YACX;QACF;QAEA,IAAI2E,SAA6B;YAC/BP;YACAC;YACArE;QACF;QAEA,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExC2E,SAAS,MAAMpG,oBAAoB;YACjCgC;YACAC,YAAYD,KAAKC,UAAU,EAAEC;YAC7BG,WAAW;YACXC,gBAAgBN,KAAKM,cAAc;YACnC8D;QACF;QAEA,IAAIpB,cAAc;YAChB,MAAMzE,kBAAkBiB;QAC1B;QAEA,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,OAAO4E;IACT,EAAE,OAAOC,OAAgB;QACvB,IAAIpB,KAAK;YACP,MAAM/D,cAAc;gBAClBqB;gBACAK;gBACApB;gBACAyD;gBACAxD;YACF;QACF;QACA,MAAMd,gBAAgBqB,KAAKR,GAAG;QAC9B,MAAM6E;IACR;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/auth/operations/login.ts"],"sourcesContent":["import type {\n AuthOperationsFromCollectionSlug,\n Collection,\n DataFromCollectionSlug,\n} from '../../collections/config/types.js'\nimport type { AuthCollectionSlug, AuthenticatedUser, User } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { AuthRuntimeFields } from '../types.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport {\n AuthenticationError,\n LockedAuth,\n UnverifiedEmail,\n ValidationError,\n} from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction, Forbidden, initTransaction } from '../../index.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeInternalFields } from '../../utilities/sanitizeInternalFields.js'\nimport { getFieldsToSign } from '../getFieldsToSign.js'\nimport { getLoginOptions } from '../getLoginOptions.js'\nimport { isUserLocked } from '../isUserLocked.js'\nimport { jwtSign } from '../jwt.js'\nimport { addSessionToUser, revokeSession } from '../sessions.js'\nimport { authenticateLocalStrategy } from '../strategies/local/authenticate.js'\nimport { incrementLoginAttempts } from '../strategies/local/incrementLoginAttempts.js'\nimport { resetLoginAttempts } from '../strategies/local/resetLoginAttempts.js'\n\nexport type LoginResult<TSlug extends AuthCollectionSlug> = {\n exp?: number\n token?: string\n user?: AuthRuntimeFields & DataFromCollectionSlug<TSlug>\n}\n\nexport type Arguments<TSlug extends AuthCollectionSlug> = {\n collection: Collection\n data: AuthOperationsFromCollectionSlug<TSlug>['login']\n depth?: number\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\ntype CheckLoginPermissionArgs<TSlug extends AuthCollectionSlug> = {\n loggingInWithUsername?: boolean\n req: PayloadRequest\n user: DataFromCollectionSlug<TSlug>\n}\n\n/**\n * Throws an error if the user is locked or does not exist.\n * This does not check the login attempts, only the lock status. Whoever increments login attempts\n * is responsible for locking the user properly, not whoever checks the login permission.\n */\nexport const checkLoginPermission = <TSlug extends AuthCollectionSlug>({\n loggingInWithUsername,\n req,\n user,\n}: CheckLoginPermissionArgs<TSlug>) => {\n if (!user) {\n throw new AuthenticationError(req.t, Boolean(loggingInWithUsername))\n }\n\n if (isUserLocked(new Date(user.lockUntil))) {\n throw new LockedAuth(req.t)\n }\n}\n\nexport const loginOperation = async <TSlug extends AuthCollectionSlug>(\n incomingArgs: Arguments<TSlug>,\n): Promise<LoginResult<TSlug>> => {\n let args = incomingArgs\n\n if (args.collection.config.auth.disableLocalStrategy) {\n throw new Forbidden(args.req.t)\n }\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'login',\n overrideAccess: args.overrideAccess!,\n })\n\n const {\n collection: { config: collectionConfig },\n data,\n depth,\n overrideAccess = false,\n req,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { secret },\n },\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Login\n // /////////////////////////////////////\n\n const { email: unsanitizedEmail, password } = data\n const loginWithUsername = collectionConfig.auth.loginWithUsername\n\n const sanitizedEmail =\n typeof unsanitizedEmail === 'string' ? unsanitizedEmail.toLowerCase().trim() : null\n const sanitizedUsername =\n 'username' in data && typeof data?.username === 'string'\n ? data.username.toLowerCase().trim()\n : null\n\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(loginWithUsername)\n\n // cannot login with email, did not provide username\n if (!canLoginWithEmail && !sanitizedUsername) {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [{ message: req.i18n.t('validation:required'), path: 'username' }],\n })\n }\n\n // cannot login with username, did not provide email\n if (!canLoginWithUsername && !sanitizedEmail) {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [{ message: req.i18n.t('validation:required'), path: 'email' }],\n })\n }\n\n // can login with either email or username, did not provide either\n if (!sanitizedUsername && !sanitizedEmail) {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [\n { message: req.i18n.t('validation:required'), path: 'email' },\n { message: req.i18n.t('validation:required'), path: 'username' },\n ],\n })\n }\n\n // did not provide password for login\n if (typeof password !== 'string' || password.trim() === '') {\n throw new ValidationError({\n collection: collectionConfig.slug,\n errors: [{ message: req.i18n.t('validation:required'), path: 'password' }],\n })\n }\n\n let whereConstraint: Where = {}\n const emailConstraint: Where = {\n email: {\n equals: sanitizedEmail,\n },\n }\n const usernameConstraint: Where = {\n username: {\n equals: sanitizedUsername,\n },\n }\n\n if (canLoginWithEmail && canLoginWithUsername && (sanitizedUsername || sanitizedEmail)) {\n if (sanitizedUsername) {\n whereConstraint = {\n or: [\n usernameConstraint,\n {\n email: {\n equals: sanitizedUsername,\n },\n },\n ],\n }\n } else {\n whereConstraint = {\n or: [\n emailConstraint,\n {\n username: {\n equals: sanitizedEmail,\n },\n },\n ],\n }\n }\n } else if (canLoginWithEmail && sanitizedEmail) {\n whereConstraint = emailConstraint\n } else if (canLoginWithUsername && sanitizedUsername) {\n whereConstraint = usernameConstraint\n }\n\n // Exclude trashed users\n whereConstraint = appendNonTrashedFilter({\n enableTrash: collectionConfig.trash,\n trash: false,\n where: whereConstraint,\n })\n\n let user = (await payload.db.findOne<User>({\n collection: collectionConfig.slug,\n req,\n where: whereConstraint,\n })) as AuthenticatedUser\n\n checkLoginPermission({\n loggingInWithUsername: Boolean(canLoginWithUsername && sanitizedUsername),\n req,\n user,\n })\n\n user.collection = collectionConfig.slug\n user._strategy = 'local-jwt'\n\n const authResult = await authenticateLocalStrategy({ doc: user, password })\n user = sanitizeInternalFields(user)\n\n const maxLoginAttemptsEnabled = args.collection.config.auth.maxLoginAttempts > 0\n\n if (!authResult) {\n if (maxLoginAttemptsEnabled) {\n await incrementLoginAttempts({\n collection: collectionConfig,\n payload: req.payload,\n user,\n })\n\n // Re-check login permissions and max attempts after incrementing attempts, in case parallel updates occurred\n checkLoginPermission({\n loggingInWithUsername: Boolean(canLoginWithUsername && sanitizedUsername),\n req,\n user,\n })\n }\n\n throw new AuthenticationError(req.t)\n }\n\n if (collectionConfig.auth.verify && user._verified === false) {\n throw new UnverifiedEmail({ t: req.t })\n }\n\n // Authentication successful - start transaction for remaining operations\n const shouldCommit = await initTransaction(args.req)\n let sid: string | undefined\n\n try {\n /*\n * Correct password accepted - re‑check that the account didn't\n * get locked by parallel bad attempts in the meantime.\n */\n if (maxLoginAttemptsEnabled) {\n const { lockUntil, loginAttempts } = (await payload.db.findOne<User>({\n collection: collectionConfig.slug,\n req,\n select: {\n lockUntil: true,\n loginAttempts: true,\n },\n where: { id: { equals: user.id } },\n }))!\n\n user.lockUntil = lockUntil\n user.loginAttempts = loginAttempts\n\n checkLoginPermission({\n req,\n user,\n })\n }\n\n const fieldsToSignArgs: Parameters<typeof getFieldsToSign>[0] = {\n collectionConfig,\n email: sanitizedEmail!,\n user,\n }\n\n const session = await addSessionToUser({\n collectionConfig,\n payload,\n req,\n user,\n })\n sid = session.sid\n\n if (sid) {\n fieldsToSignArgs.sid = sid\n }\n\n const fieldsToSign = getFieldsToSign(fieldsToSignArgs)\n\n if (maxLoginAttemptsEnabled) {\n await resetLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // beforeLogin - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeLogin?.length) {\n for (const hook of collectionConfig.hooks.beforeLogin) {\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n user,\n })) || user\n }\n }\n\n const { exp, token } = await jwtSign({\n fieldsToSign,\n secret,\n tokenExpiration: collectionConfig.auth.tokenExpiration,\n })\n\n req.user = user\n\n // /////////////////////////////////////\n // afterLogin - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterLogin?.length) {\n for (const hook of collectionConfig.hooks.afterLogin) {\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n token,\n user,\n })) || user\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n user = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: depth!,\n doc: user,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n draft: undefined,\n fallbackLocale: fallbackLocale!,\n global: null,\n locale: locale!,\n overrideAccess,\n req,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n user =\n (await hook({\n collection: args.collection?.config,\n context: req.context,\n doc: user,\n overrideAccess,\n req,\n })) || user\n }\n }\n\n let result: LoginResult<TSlug> = {\n exp,\n token,\n user,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'login',\n overrideAccess: args.overrideAccess!,\n result,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n if (sid) {\n await revokeSession({\n collectionConfig,\n payload,\n req,\n sid,\n user,\n })\n }\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["buildAfterOperation","buildBeforeOperation","AuthenticationError","LockedAuth","UnverifiedEmail","ValidationError","afterRead","commitTransaction","Forbidden","initTransaction","appendNonTrashedFilter","killTransaction","sanitizeInternalFields","getFieldsToSign","getLoginOptions","isUserLocked","jwtSign","addSessionToUser","revokeSession","authenticateLocalStrategy","incrementLoginAttempts","resetLoginAttempts","checkLoginPermission","loggingInWithUsername","req","user","t","Boolean","Date","lockUntil","loginOperation","incomingArgs","args","collection","config","auth","disableLocalStrategy","operation","overrideAccess","collectionConfig","data","depth","fallbackLocale","locale","payload","secret","showHiddenFields","email","unsanitizedEmail","password","loginWithUsername","sanitizedEmail","toLowerCase","trim","sanitizedUsername","username","canLoginWithEmail","canLoginWithUsername","slug","errors","message","i18n","path","whereConstraint","emailConstraint","equals","usernameConstraint","or","enableTrash","trash","where","db","findOne","_strategy","authResult","doc","maxLoginAttemptsEnabled","maxLoginAttempts","verify","_verified","shouldCommit","sid","loginAttempts","select","id","fieldsToSignArgs","session","fieldsToSign","hooks","beforeLogin","length","hook","context","exp","token","tokenExpiration","afterLogin","draft","undefined","global","result","error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/logout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQ1D,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,cAAc,SAAS,KAAG,OAAO,CAAC,OAAO,CAqF9E,CAAA"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/logout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQ1D,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,eAAe,iBAAwB,SAAS,KAAG,OAAO,CAAC,OAAO,CAqF9E,CAAA"}
@@ -1,18 +1,11 @@
1
1
  import type { Collection } from '../../collections/config/types.js';
2
+ import type { AuthenticatedUser } from '../../index.js';
2
3
  import type { JoinQuery, PayloadRequest, PopulateType, SelectType } from '../../types/index.js';
3
- import type { ClientUser } from '../types.js';
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
- user?: ClientUser;
8
+ user?: AuthenticatedUser | null;
16
9
  };
17
10
  export type Arguments = {
18
11
  collection: Collection;
@@ -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;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,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,UAAU,CAAA;CAClB,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,GAAU,MAAM,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 { TypedUser } from '../../index.js'\nimport type { JoinQuery, PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { ClientUser } from '../types.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?: ClientUser\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 TypedUser\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;AAgChC,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;AACnE,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,GAAU,cAAc,SAAS,KAAG,OAAO,CAAC,MAAM,CAyK9E,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"}
@@ -38,23 +38,29 @@ export const refreshOperation = async (incomingArgs)=>{
38
38
  }
39
39
  }
40
40
  });
41
+ if (!user) {
42
+ throw new Forbidden(args.req.t);
43
+ }
41
44
  const sid = args.req.user._sid;
42
45
  if (collectionConfig.auth.useSessions && !collectionConfig.auth.disableLocalStrategy) {
43
46
  if (!Array.isArray(user.sessions) || !sid) {
44
47
  throw new Forbidden(args.req.t);
45
48
  }
46
49
  const existingSession = user.sessions.find(({ id })=>id === sid);
50
+ if (!existingSession) {
51
+ throw new Forbidden(args.req.t);
52
+ }
47
53
  const now = new Date();
48
54
  const tokenExpInMs = collectionConfig.auth.tokenExpiration * 1000;
49
55
  existingSession.expiresAt = new Date(now.getTime() + tokenExpInMs);
50
- // Prevent updatedAt from being updated when only refreshing a session
51
- user.updatedAt = null;
52
56
  await req.payload.db.updateOne({
53
57
  id: user.id,
54
58
  collection: collectionConfig.slug,
55
59
  data: {
56
60
  ...user,
57
- sessions: removeExpiredSessions(user.sessions)
61
+ // Prevent updatedAt from being updated when only refreshing a session
62
+ sessions: removeExpiredSessions(user.sessions),
63
+ updatedAt: null
58
64
  },
59
65
  req,
60
66
  returning: false
@@ -100,12 +106,6 @@ export const refreshOperation = async (incomingArgs)=>{
100
106
  exp,
101
107
  refreshedToken,
102
108
  setCookie: true,
103
- /** @deprecated
104
- * use:
105
- * ```ts
106
- * user._strategy
107
- * ```
108
- */ strategy: args.req.user._strategy,
109
109
  user
110
110
  };
111
111
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/refresh.ts"],"sourcesContent":["import type { Collection } from '../../collections/config/types.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<any>({\n collection: collectionConfig.slug,\n req,\n where: { id: { equals: args.req.user.id } },\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: number }) => id === sid)\n\n const now = new Date()\n const tokenExpInMs = collectionConfig.auth.tokenExpiration * 1000\n existingSession.expiresAt = new Date(now.getTime() + tokenExpInMs)\n\n // Prevent updatedAt from being updated when only refreshing a session\n user.updatedAt = null\n\n await req.payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: {\n ...user,\n sessions: removeExpiredSessions(user.sessions),\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 })\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","updatedAt","updateOne","data","returning","findByID","depth","_strategy","result","refreshHook","hooks","refresh","hookResult","fieldsToSign","email","exp","token","refreshedToken","setCookie","strategy","afterRefresh","length","hook","context","error"],"mappings":"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"}
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerFirstUser.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/registerFirstUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,UAAU,EACV,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,sBAAsB,CAAA;AAStE,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,kBAAkB,IAAI;IACxD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,gCAAgC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAChE,8BAA8B,CAAC,KAAK,CAAC,CAAA;IACvC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,KAAK,IAAI;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,KAAK,SAAS,kBAAkB,EAC/E,MAAM,SAAS,CAAC,KAAK,CAAC,KACrB,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CA8F/C,CAAA"}
1
+ {"version":3,"file":"registerFirstUser.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/registerFirstUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,UAAU,EACV,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,sBAAsB,CAAA;AAStE,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,kBAAkB,IAAI;IACxD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,gCAAgC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAChE,8BAA8B,CAAC,KAAK,CAAC,CAAA;IACvC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,KAAK,IAAI;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,KAAK,SAAS,kBAAkB,QACzE,SAAS,CAAC,KAAK,CAAC,KACrB,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CA8F/C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"resetPassword.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/resetPassword.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAA0B,MAAM,mCAAmC,CAAA;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAe1D,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAU,KAAK,SAAS,kBAAkB,EAC3E,MAAM,SAAS,KACd,OAAO,CAAC,MAAM,CA4NhB,CAAA"}
1
+ {"version":3,"file":"resetPassword.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/resetPassword.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAA0B,MAAM,mCAAmC,CAAA;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAQ,MAAM,gBAAgB,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAe1D,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAU,KAAK,SAAS,kBAAkB,QACrE,SAAS,KACd,OAAO,CAAC,MAAM,CA4NhB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/resetPassword.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\n\nimport type { Collection, DataFromCollectionSlug } from '../../collections/config/types.js'\nimport type { AuthCollectionSlug, TypedUser } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport { APIError, Forbidden } from '../../errors/index.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.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 { addSessionToUser, revokeSession } from '../sessions.js'\nimport { authenticateLocalStrategy } from '../strategies/local/authenticate.js'\nimport { generatePasswordSaltHash } from '../strategies/local/generatePasswordSaltHash.js'\n\nexport type Result = {\n token?: string\n user: Record<string, unknown>\n}\n\nexport type Arguments = {\n collection: Collection\n data: {\n password: string\n token: string\n }\n depth?: number\n overrideAccess?: boolean\n req: PayloadRequest\n}\n\nexport const resetPasswordOperation = async <TSlug extends AuthCollectionSlug>(\n args: Arguments,\n): Promise<Result> => {\n const {\n collection: { config: collectionConfig },\n data,\n depth,\n overrideAccess,\n req: {\n payload: { secret },\n payload,\n },\n req,\n } = args\n\n if (\n !Object.prototype.hasOwnProperty.call(data, 'token') ||\n !Object.prototype.hasOwnProperty.call(data, 'password')\n ) {\n throw new APIError('Missing required data.', httpStatus.BAD_REQUEST)\n }\n\n if (collectionConfig.auth.disableLocalStrategy) {\n throw new Forbidden(req.t)\n }\n\n let sid: string | undefined\n let user: null | TypedUser = null\n\n try {\n const shouldCommit = await initTransaction(req)\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'resetPassword',\n overrideAccess,\n })\n\n // /////////////////////////////////////\n // Reset Password\n // /////////////////////////////////////\n\n const where = appendNonTrashedFilter({\n enableTrash: Boolean(collectionConfig.trash),\n trash: false,\n where: {\n resetPasswordExpiration: { greater_than: new Date().toISOString() },\n resetPasswordToken: { equals: data.token },\n },\n })\n\n user = await payload.db.findOne<TypedUser>({\n collection: collectionConfig.slug,\n req,\n where,\n })\n\n if (!user) {\n throw new APIError('Token is either invalid or has expired.', httpStatus.FORBIDDEN)\n }\n\n // TODO: replace this method\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password: data.password,\n req,\n })\n\n user.salt = salt\n user.hash = hash\n\n user.resetPasswordExpiration = new Date().toISOString()\n\n if (collectionConfig.auth.verify) {\n user._verified = Boolean(user._verified)\n }\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n await hook({\n collection: args.collection?.config,\n context: req.context,\n data: user,\n operation: 'update',\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Update new password\n // /////////////////////////////////////\n\n // Ensure updatedAt date is always updated\n user.updatedAt = new Date().toISOString()\n\n const doc = await payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: user,\n req,\n })\n\n await authenticateLocalStrategy({ doc, password: data.password })\n\n const fieldsToSignArgs: Parameters<typeof getFieldsToSign>[0] = {\n collectionConfig,\n email: user.email!,\n user,\n }\n\n const session = await addSessionToUser({\n collectionConfig,\n payload,\n req,\n user,\n })\n sid = session.sid\n\n if (sid) {\n fieldsToSignArgs.sid = sid\n }\n\n const fieldsToSign = getFieldsToSign(fieldsToSignArgs)\n\n // /////////////////////////////////////\n // beforeLogin - Collection\n // /////////////////////////////////////\n\n let userBeforeLogin = user\n\n if (collectionConfig.hooks?.beforeLogin?.length) {\n for (const hook of collectionConfig.hooks.beforeLogin) {\n userBeforeLogin =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n user: userBeforeLogin,\n })) || userBeforeLogin\n }\n }\n\n const { token } = await jwtSign({\n fieldsToSign,\n secret,\n tokenExpiration: collectionConfig.auth.tokenExpiration,\n })\n\n req.user = userBeforeLogin\n\n // /////////////////////////////////////\n // afterLogin - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterLogin?.length) {\n for (const hook of collectionConfig.hooks.afterLogin) {\n userBeforeLogin =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n token,\n user: userBeforeLogin,\n })) || userBeforeLogin\n }\n }\n\n const fullUser = await payload.findByID({\n id: user.id,\n collection: collectionConfig.slug,\n depth,\n overrideAccess,\n req,\n trash: false,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n if (fullUser) {\n fullUser.collection = collectionConfig.slug\n fullUser._strategy = 'local-jwt'\n }\n\n let result: { user: DataFromCollectionSlug<TSlug> } & Result = {\n token,\n user: fullUser,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'resetPassword',\n overrideAccess,\n result,\n })\n\n return result\n } catch (error: unknown) {\n if (sid) {\n await revokeSession({\n collectionConfig,\n payload,\n req,\n sid,\n user,\n })\n }\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["status","httpStatus","buildAfterOperation","buildBeforeOperation","APIError","Forbidden","appendNonTrashedFilter","commitTransaction","initTransaction","killTransaction","getFieldsToSign","jwtSign","addSessionToUser","revokeSession","authenticateLocalStrategy","generatePasswordSaltHash","resetPasswordOperation","args","collection","config","collectionConfig","data","depth","overrideAccess","req","payload","secret","Object","prototype","hasOwnProperty","call","BAD_REQUEST","auth","disableLocalStrategy","t","sid","user","shouldCommit","operation","where","enableTrash","Boolean","trash","resetPasswordExpiration","greater_than","Date","toISOString","resetPasswordToken","equals","token","db","findOne","slug","FORBIDDEN","hash","salt","password","verify","_verified","hooks","beforeValidate","length","hook","context","updatedAt","doc","updateOne","id","fieldsToSignArgs","email","session","fieldsToSign","userBeforeLogin","beforeLogin","tokenExpiration","afterLogin","fullUser","findByID","_strategy","result","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/auth/operations/resetPassword.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\n\nimport type { Collection, DataFromCollectionSlug } from '../../collections/config/types.js'\nimport type { AuthCollectionSlug, User } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport { APIError, Forbidden } from '../../errors/index.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.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 { addSessionToUser, revokeSession } from '../sessions.js'\nimport { authenticateLocalStrategy } from '../strategies/local/authenticate.js'\nimport { generatePasswordSaltHash } from '../strategies/local/generatePasswordSaltHash.js'\n\nexport type Result = {\n token?: string\n user: Record<string, unknown>\n}\n\nexport type Arguments = {\n collection: Collection\n data: {\n password: string\n token: string\n }\n depth?: number\n overrideAccess?: boolean\n req: PayloadRequest\n}\n\nexport const resetPasswordOperation = async <TSlug extends AuthCollectionSlug>(\n args: Arguments,\n): Promise<Result> => {\n const {\n collection: { config: collectionConfig },\n data,\n depth,\n overrideAccess,\n req: {\n payload: { secret },\n payload,\n },\n req,\n } = args\n\n if (\n !Object.prototype.hasOwnProperty.call(data, 'token') ||\n !Object.prototype.hasOwnProperty.call(data, 'password')\n ) {\n throw new APIError('Missing required data.', httpStatus.BAD_REQUEST)\n }\n\n if (collectionConfig.auth.disableLocalStrategy) {\n throw new Forbidden(req.t)\n }\n\n let sid: string | undefined\n let user: null | User = null\n\n try {\n const shouldCommit = await initTransaction(req)\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'resetPassword',\n overrideAccess,\n })\n\n // /////////////////////////////////////\n // Reset Password\n // /////////////////////////////////////\n\n const where = appendNonTrashedFilter({\n enableTrash: Boolean(collectionConfig.trash),\n trash: false,\n where: {\n resetPasswordExpiration: { greater_than: new Date().toISOString() },\n resetPasswordToken: { equals: data.token },\n },\n })\n\n user = await payload.db.findOne<User>({\n collection: collectionConfig.slug,\n req,\n where,\n })\n\n if (!user) {\n throw new APIError('Token is either invalid or has expired.', httpStatus.FORBIDDEN)\n }\n\n // TODO: replace this method\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password: data.password,\n req,\n })\n\n user.salt = salt\n user.hash = hash\n\n user.resetPasswordExpiration = new Date().toISOString()\n\n if (collectionConfig.auth.verify) {\n user._verified = Boolean(user._verified)\n }\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n await hook({\n collection: args.collection?.config,\n context: req.context,\n data: user,\n operation: 'update',\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Update new password\n // /////////////////////////////////////\n\n // Ensure updatedAt date is always updated\n user.updatedAt = new Date().toISOString()\n\n const doc = await payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: user,\n req,\n })\n\n await authenticateLocalStrategy({ doc, password: data.password })\n\n const fieldsToSignArgs: Parameters<typeof getFieldsToSign>[0] = {\n collectionConfig,\n email: user.email!,\n user,\n }\n\n const session = await addSessionToUser({\n collectionConfig,\n payload,\n req,\n user,\n })\n sid = session.sid\n\n if (sid) {\n fieldsToSignArgs.sid = sid\n }\n\n const fieldsToSign = getFieldsToSign(fieldsToSignArgs)\n\n // /////////////////////////////////////\n // beforeLogin - Collection\n // /////////////////////////////////////\n\n let userBeforeLogin = user\n\n if (collectionConfig.hooks?.beforeLogin?.length) {\n for (const hook of collectionConfig.hooks.beforeLogin) {\n userBeforeLogin =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n user: userBeforeLogin,\n })) || userBeforeLogin\n }\n }\n\n const { token } = await jwtSign({\n fieldsToSign,\n secret,\n tokenExpiration: collectionConfig.auth.tokenExpiration,\n })\n\n req.user = userBeforeLogin\n\n // /////////////////////////////////////\n // afterLogin - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterLogin?.length) {\n for (const hook of collectionConfig.hooks.afterLogin) {\n userBeforeLogin =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n token,\n user: userBeforeLogin,\n })) || userBeforeLogin\n }\n }\n\n const fullUser = await payload.findByID({\n id: user.id,\n collection: collectionConfig.slug,\n depth,\n overrideAccess,\n req,\n trash: false,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n if (fullUser) {\n fullUser.collection = collectionConfig.slug\n fullUser._strategy = 'local-jwt'\n }\n\n let result: { user: DataFromCollectionSlug<TSlug> } & Result = {\n token,\n user: fullUser,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'resetPassword',\n overrideAccess,\n result,\n })\n\n return result\n } catch (error: unknown) {\n if (sid) {\n await revokeSession({\n collectionConfig,\n payload,\n req,\n sid,\n user,\n })\n }\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["status","httpStatus","buildAfterOperation","buildBeforeOperation","APIError","Forbidden","appendNonTrashedFilter","commitTransaction","initTransaction","killTransaction","getFieldsToSign","jwtSign","addSessionToUser","revokeSession","authenticateLocalStrategy","generatePasswordSaltHash","resetPasswordOperation","args","collection","config","collectionConfig","data","depth","overrideAccess","req","payload","secret","Object","prototype","hasOwnProperty","call","BAD_REQUEST","auth","disableLocalStrategy","t","sid","user","shouldCommit","operation","where","enableTrash","Boolean","trash","resetPasswordExpiration","greater_than","Date","toISOString","resetPasswordToken","equals","token","db","findOne","slug","FORBIDDEN","hash","salt","password","verify","_verified","hooks","beforeValidate","length","hook","context","updatedAt","doc","updateOne","id","fieldsToSignArgs","email","session","fieldsToSign","userBeforeLogin","beforeLogin","tokenExpiration","afterLogin","fullUser","findByID","_strategy","result","error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/unlock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,UAAU,EACX,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAA;AAcjE,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,kBAAkB,IAAI;IACxD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,gCAAgC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAA;IACvD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,KAAK,SAAS,kBAAkB,EACpE,MAAM,SAAS,CAAC,KAAK,CAAC,KACrB,OAAO,CAAC,OAAO,CAqHjB,CAAA"}
1
+ {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/unlock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,UAAU,EACX,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAA;AAcjE,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,kBAAkB,IAAI;IACxD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,gCAAgC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAA;IACvD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,KAAK,SAAS,kBAAkB,QAC9D,SAAS,CAAC,KAAK,CAAC,KACrB,OAAO,CAAC,OAAO,CAwHjB,CAAA"}
@@ -36,6 +36,7 @@ export const unlockOperation = async (args)=>{
36
36
  // /////////////////////////////////////
37
37
  if (!overrideAccess) {
38
38
  const accessResult = await executeAccess({
39
+ slug: collectionConfig.slug,
39
40
  req
40
41
  }, collectionConfig.access.unlock);
41
42
  if (accessResult && typeof accessResult === 'object') {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/unlock.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\n\nimport type {\n AuthOperationsFromCollectionSlug,\n Collection,\n} from '../../collections/config/types.js'\nimport type { AuthCollectionSlug } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport { APIError } from '../../errors/index.js'\nimport { combineQueries, Forbidden } from '../../index.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { executeAccess } from '../executeAccess.js'\nimport { getLoginOptions } from '../getLoginOptions.js'\nimport { resetLoginAttempts } from '../strategies/local/resetLoginAttempts.js'\n\nexport type Arguments<TSlug extends AuthCollectionSlug> = {\n collection: Collection\n data: AuthOperationsFromCollectionSlug<TSlug>['unlock']\n overrideAccess?: boolean\n req: PayloadRequest\n}\n\nexport const unlockOperation = async <TSlug extends AuthCollectionSlug>(\n args: Arguments<TSlug>,\n): Promise<boolean> => {\n const {\n collection: { config: collectionConfig },\n overrideAccess,\n req: { locale },\n req,\n } = args\n\n const loginWithUsername = collectionConfig.auth.loginWithUsername\n\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(loginWithUsername)\n\n const sanitizedEmail = canLoginWithEmail && (args.data?.email || '').toLowerCase().trim()\n const sanitizedUsername =\n (canLoginWithUsername &&\n 'username' in args.data &&\n typeof args.data.username === 'string' &&\n args.data.username.toLowerCase().trim()) ||\n null\n\n if (collectionConfig.auth.disableLocalStrategy) {\n throw new Forbidden(req.t)\n }\n if (!sanitizedEmail && !sanitizedUsername) {\n throw new APIError(\n `Missing ${collectionConfig.auth.loginWithUsername ? 'username' : 'email'}.`,\n httpStatus.BAD_REQUEST,\n )\n }\n\n try {\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'unlock',\n overrideAccess,\n })\n\n const shouldCommit = await initTransaction(req)\n let whereConstraint: Where = {}\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n const accessResult = await executeAccess({ req }, collectionConfig.access.unlock)\n\n if (accessResult && typeof accessResult === 'object') {\n whereConstraint = accessResult\n }\n }\n\n // /////////////////////////////////////\n // Unlock\n // /////////////////////////////////////\n\n if (canLoginWithEmail && sanitizedEmail) {\n whereConstraint = combineQueries(whereConstraint, {\n email: {\n equals: sanitizedEmail,\n },\n })\n } else if (canLoginWithUsername && sanitizedUsername) {\n whereConstraint = combineQueries(whereConstraint, {\n username: {\n equals: sanitizedUsername,\n },\n })\n }\n\n // Exclude trashed users unless `trash: true`\n whereConstraint = appendNonTrashedFilter({\n enableTrash: Boolean(collectionConfig.trash),\n trash: false,\n where: whereConstraint,\n })\n\n const user = await req.payload.db.findOne({\n collection: collectionConfig.slug,\n locale: locale!,\n req,\n where: whereConstraint,\n })\n\n let result: boolean | null = null\n\n if (user) {\n await resetLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n result = true\n } else {\n result = null\n throw new Forbidden(req.t)\n }\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n result = await buildAfterOperation({\n args,\n collection: args.collection.config,\n operation: 'unlock',\n overrideAccess,\n result,\n })\n\n return Boolean(result)\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["status","httpStatus","buildAfterOperation","buildBeforeOperation","APIError","combineQueries","Forbidden","appendNonTrashedFilter","commitTransaction","initTransaction","killTransaction","executeAccess","getLoginOptions","resetLoginAttempts","unlockOperation","args","collection","config","collectionConfig","overrideAccess","req","locale","loginWithUsername","auth","canLoginWithEmail","canLoginWithUsername","sanitizedEmail","data","email","toLowerCase","trim","sanitizedUsername","username","disableLocalStrategy","t","BAD_REQUEST","operation","shouldCommit","whereConstraint","accessResult","access","unlock","equals","enableTrash","Boolean","trash","where","user","payload","db","findOne","slug","result","doc","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/auth/operations/unlock.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\n\nimport type {\n AuthOperationsFromCollectionSlug,\n Collection,\n} from '../../collections/config/types.js'\nimport type { AuthCollectionSlug } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from '../../collections/operations/utilities/buildBeforeOperation.js'\nimport { APIError } from '../../errors/index.js'\nimport { combineQueries, Forbidden } from '../../index.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { executeAccess } from '../executeAccess.js'\nimport { getLoginOptions } from '../getLoginOptions.js'\nimport { resetLoginAttempts } from '../strategies/local/resetLoginAttempts.js'\n\nexport type Arguments<TSlug extends AuthCollectionSlug> = {\n collection: Collection\n data: AuthOperationsFromCollectionSlug<TSlug>['unlock']\n overrideAccess?: boolean\n req: PayloadRequest\n}\n\nexport const unlockOperation = async <TSlug extends AuthCollectionSlug>(\n args: Arguments<TSlug>,\n): Promise<boolean> => {\n const {\n collection: { config: collectionConfig },\n overrideAccess,\n req: { locale },\n req,\n } = args\n\n const loginWithUsername = collectionConfig.auth.loginWithUsername\n\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(loginWithUsername)\n\n const sanitizedEmail = canLoginWithEmail && (args.data?.email || '').toLowerCase().trim()\n const sanitizedUsername =\n (canLoginWithUsername &&\n 'username' in args.data &&\n typeof args.data.username === 'string' &&\n args.data.username.toLowerCase().trim()) ||\n null\n\n if (collectionConfig.auth.disableLocalStrategy) {\n throw new Forbidden(req.t)\n }\n if (!sanitizedEmail && !sanitizedUsername) {\n throw new APIError(\n `Missing ${collectionConfig.auth.loginWithUsername ? 'username' : 'email'}.`,\n httpStatus.BAD_REQUEST,\n )\n }\n\n try {\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'unlock',\n overrideAccess,\n })\n\n const shouldCommit = await initTransaction(req)\n let whereConstraint: Where = {}\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n const accessResult = await executeAccess(\n { slug: collectionConfig.slug, req },\n collectionConfig.access.unlock,\n )\n\n if (accessResult && typeof accessResult === 'object') {\n whereConstraint = accessResult\n }\n }\n\n // /////////////////////////////////////\n // Unlock\n // /////////////////////////////////////\n\n if (canLoginWithEmail && sanitizedEmail) {\n whereConstraint = combineQueries(whereConstraint, {\n email: {\n equals: sanitizedEmail,\n },\n })\n } else if (canLoginWithUsername && sanitizedUsername) {\n whereConstraint = combineQueries(whereConstraint, {\n username: {\n equals: sanitizedUsername,\n },\n })\n }\n\n // Exclude trashed users unless `trash: true`\n whereConstraint = appendNonTrashedFilter({\n enableTrash: Boolean(collectionConfig.trash),\n trash: false,\n where: whereConstraint,\n })\n\n const user = await req.payload.db.findOne({\n collection: collectionConfig.slug,\n locale: locale!,\n req,\n where: whereConstraint,\n })\n\n let result: boolean | null = null\n\n if (user) {\n await resetLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n result = true\n } else {\n result = null\n throw new Forbidden(req.t)\n }\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n result = await buildAfterOperation({\n args,\n collection: args.collection.config,\n operation: 'unlock',\n overrideAccess,\n result,\n })\n\n return Boolean(result)\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["status","httpStatus","buildAfterOperation","buildBeforeOperation","APIError","combineQueries","Forbidden","appendNonTrashedFilter","commitTransaction","initTransaction","killTransaction","executeAccess","getLoginOptions","resetLoginAttempts","unlockOperation","args","collection","config","collectionConfig","overrideAccess","req","locale","loginWithUsername","auth","canLoginWithEmail","canLoginWithUsername","sanitizedEmail","data","email","toLowerCase","trim","sanitizedUsername","username","disableLocalStrategy","t","BAD_REQUEST","operation","shouldCommit","whereConstraint","accessResult","slug","access","unlock","equals","enableTrash","Boolean","trash","where","user","payload","db","findOne","result","doc","error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyEmail.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/verifyEmail.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQ1D,MAAM,MAAM,IAAI,GAAG;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,OAAO,CAuDtE,CAAA"}
1
+ {"version":3,"file":"verifyEmail.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/verifyEmail.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQ1D,MAAM,MAAM,IAAI,GAAG;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,oBAAoB,SAAgB,IAAI,KAAG,OAAO,CAAC,OAAO,CAuDtE,CAAA"}
@@ -0,0 +1,51 @@
1
+ import type { CollectionSlug, Payload } from '../index.js';
2
+ export type RotateSecretArgs = {
3
+ /**
4
+ * Number of documents to process per batch.
5
+ * @default 100
6
+ */
7
+ batchSize?: number;
8
+ /**
9
+ * Limit rotation to these collection slugs. Defaults to every auth collection
10
+ * configured with `useAPIKey`.
11
+ */
12
+ collections?: CollectionSlug[];
13
+ /**
14
+ * When true, verifies every row against the old and current secrets without
15
+ * writing. Run this first to confirm `oldSecret` is correct.
16
+ * @default false
17
+ */
18
+ dryRun?: boolean;
19
+ /**
20
+ * The previous raw `PAYLOAD_SECRET` that existing data was encrypted under.
21
+ */
22
+ oldSecret: string;
23
+ payload: Payload;
24
+ };
25
+ export type RotateSecretResult = {
26
+ /** Documents re-keyed from the old secret to the current secret. */
27
+ migrated: number;
28
+ /** Documents already encrypted under the current secret (safe re-run). */
29
+ skipped: number;
30
+ };
31
+ /**
32
+ * Re-keys the built-in `apiKey`/`apiKeyIndex` fields from a previous
33
+ * `PAYLOAD_SECRET` to the current one, for every auth collection using API keys.
34
+ *
35
+ * Operates at the database-adapter layer to bypass the `apiKey` field's
36
+ * encrypt/decrypt hooks (which would otherwise corrupt data mid-rotation).
37
+ *
38
+ * Each document is verified against the old and current secrets before it is
39
+ * written, so the run is:
40
+ * - **idempotent** — a re-run skips already-migrated rows (matched via the HMAC
41
+ * index), so it is safe to run repeatedly;
42
+ * - **fail-closed** — a row that matches neither the old nor the current secret
43
+ * throws and aborts the run before that row is written. Rows already migrated
44
+ * earlier in the same run remain migrated and are safe to keep: fix the secret
45
+ * and re-run.
46
+ *
47
+ * Password logins are unaffected by a secret rotation, and active JWT sessions
48
+ * are invalidated by design. See the "Rotating your PAYLOAD_SECRET" docs.
49
+ */
50
+ export declare const rotateSecret: ({ batchSize, collections, dryRun, oldSecret, payload, }: RotateSecretArgs) => Promise<RotateSecretResult>;
51
+ //# sourceMappingURL=rotateSecret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotateSecret.d.ts","sourceRoot":"","sources":["../../src/auth/rotateSecret.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,YAAY,4DAMtB,gBAAgB,KAAG,OAAO,CAAC,kBAAkB,CA4F/C,CAAA"}