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,7 +1,6 @@
1
- import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js';
2
- import type { TypedUser } from '../index.js';
1
+ import type { SanitizedCollectionConfig } from '../collections/config/types.js';
2
+ import type { AuthenticatedUser, User, UserSession } from '../index.js';
3
3
  import type { Payload, PayloadRequest } from '../types/index.js';
4
- import type { UntypedUser, UserSession } from './types.js';
5
4
  /**
6
5
  * Removes expired sessions from an array of sessions
7
6
  */
@@ -14,7 +13,7 @@ export declare const addSessionToUser: ({ collectionConfig, payload, req, user,
14
13
  collectionConfig: SanitizedCollectionConfig;
15
14
  payload: Payload;
16
15
  req: PayloadRequest;
17
- user: TypedUser;
16
+ user: AuthenticatedUser;
18
17
  }) => Promise<{
19
18
  sid?: string;
20
19
  }>;
@@ -23,6 +22,6 @@ export declare const revokeSession: ({ collectionConfig, payload, req, sid, user
23
22
  payload: Payload;
24
23
  req: PayloadRequest;
25
24
  sid: string;
26
- user: null | (TypeWithID & UntypedUser);
25
+ user: null | User;
27
26
  }) => Promise<void>;
28
27
  //# sourceMappingURL=sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/auth/sessions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,WAAW,EAAE,kBAO5D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,2CAKpC;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,SAAS,CAAA;CAChB,KAAG,OAAO,CAAC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAoC3B,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,gDAMjC;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAA;CACxC,KAAG,OAAO,CAAC,IAAI,CAWf,CAAA"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/auth/sessions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEhE;;GAEG;AACH,eAAO,MAAM,qBAAqB,aAAc,WAAW,EAAE,KAAG,WAAW,EAO1E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,8CAK1B;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,iBAAiB,CAAA;CACxB,KAAG,OAAO,CAAC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAqC3B,CAAA;AAED,eAAO,MAAM,aAAa,mDAMvB;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAClB,KAAG,OAAO,CAAC,IAAI,CAWf,CAAA"}
@@ -32,12 +32,14 @@ import { v4 as uuid } from 'uuid';
32
32
  user.sessions = removeExpiredSessions(user.sessions);
33
33
  user.sessions.push(session);
34
34
  }
35
- // Prevent updatedAt from being updated when only adding a session
36
- user.updatedAt = null;
37
35
  await payload.db.updateOne({
38
36
  id: user.id,
39
37
  collection: collectionConfig.slug,
40
- data: user,
38
+ data: {
39
+ ...user,
40
+ // Prevent updatedAt from being updated when only adding a session
41
+ updatedAt: null
42
+ },
41
43
  req,
42
44
  returning: false
43
45
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/sessions.ts"],"sourcesContent":["import { v4 as uuid } from 'uuid'\n\nimport type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { TypedUser } from '../index.js'\nimport type { Payload, PayloadRequest } from '../types/index.js'\nimport type { UntypedUser, UserSession } from './types.js'\n\n/**\n * Removes expired sessions from an array of sessions\n */\nexport const removeExpiredSessions = (sessions: UserSession[]) => {\n const now = new Date()\n\n return sessions.filter(({ expiresAt }) => {\n const expiry = expiresAt instanceof Date ? expiresAt : new Date(expiresAt)\n return expiry > now\n })\n}\n\n/**\n * Adds a session to the user and removes expired sessions\n * @returns The session ID (sid) if sessions are used\n */\nexport const addSessionToUser = async ({\n collectionConfig,\n payload,\n req,\n user,\n}: {\n collectionConfig: SanitizedCollectionConfig\n payload: Payload\n req: PayloadRequest\n user: TypedUser\n}): Promise<{ sid?: string }> => {\n let sid: string | undefined\n if (collectionConfig.auth.useSessions) {\n // Add session to user\n sid = uuid()\n const now = new Date()\n const tokenExpInMs = collectionConfig.auth.tokenExpiration * 1000\n const expiresAt = new Date(now.getTime() + tokenExpInMs)\n\n const session = { id: sid, createdAt: now, expiresAt }\n\n if (!user.sessions?.length) {\n user.sessions = [session]\n } else {\n user.sessions = removeExpiredSessions(user.sessions)\n user.sessions.push(session)\n }\n\n // Prevent updatedAt from being updated when only adding a session\n user.updatedAt = null\n\n await payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: user,\n req,\n returning: false,\n })\n\n user.collection = collectionConfig.slug\n user._strategy = 'local-jwt'\n }\n\n return {\n sid,\n }\n}\n\nexport const revokeSession = async ({\n collectionConfig,\n payload,\n req,\n sid,\n user,\n}: {\n collectionConfig: SanitizedCollectionConfig\n payload: Payload\n req: PayloadRequest\n sid: string\n user: null | (TypeWithID & UntypedUser)\n}): Promise<void> => {\n if (collectionConfig.auth.useSessions && user && user.sessions?.length) {\n user.sessions = user.sessions.filter((session) => session.id !== sid)\n await payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: user,\n req,\n returning: false,\n })\n }\n}\n"],"names":["v4","uuid","removeExpiredSessions","sessions","now","Date","filter","expiresAt","expiry","addSessionToUser","collectionConfig","payload","req","user","sid","auth","useSessions","tokenExpInMs","tokenExpiration","getTime","session","id","createdAt","length","push","updatedAt","db","updateOne","collection","slug","data","returning","_strategy","revokeSession"],"mappings":"AAAA,SAASA,MAAMC,IAAI,QAAQ,OAAM;AAOjC;;CAEC,GACD,OAAO,MAAMC,wBAAwB,CAACC;IACpC,MAAMC,MAAM,IAAIC;IAEhB,OAAOF,SAASG,MAAM,CAAC,CAAC,EAAEC,SAAS,EAAE;QACnC,MAAMC,SAASD,qBAAqBF,OAAOE,YAAY,IAAIF,KAAKE;QAChE,OAAOC,SAASJ;IAClB;AACF,EAAC;AAED;;;CAGC,GACD,OAAO,MAAMK,mBAAmB,OAAO,EACrCC,gBAAgB,EAChBC,OAAO,EACPC,GAAG,EACHC,IAAI,EAML;IACC,IAAIC;IACJ,IAAIJ,iBAAiBK,IAAI,CAACC,WAAW,EAAE;QACrC,sBAAsB;QACtBF,MAAMb;QACN,MAAMG,MAAM,IAAIC;QAChB,MAAMY,eAAeP,iBAAiBK,IAAI,CAACG,eAAe,GAAG;QAC7D,MAAMX,YAAY,IAAIF,KAAKD,IAAIe,OAAO,KAAKF;QAE3C,MAAMG,UAAU;YAAEC,IAAIP;YAAKQ,WAAWlB;YAAKG;QAAU;QAErD,IAAI,CAACM,KAAKV,QAAQ,EAAEoB,QAAQ;YAC1BV,KAAKV,QAAQ,GAAG;gBAACiB;aAAQ;QAC3B,OAAO;YACLP,KAAKV,QAAQ,GAAGD,sBAAsBW,KAAKV,QAAQ;YACnDU,KAAKV,QAAQ,CAACqB,IAAI,CAACJ;QACrB;QAEA,kEAAkE;QAClEP,KAAKY,SAAS,GAAG;QAEjB,MAAMd,QAAQe,EAAE,CAACC,SAAS,CAAC;YACzBN,IAAIR,KAAKQ,EAAE;YACXO,YAAYlB,iBAAiBmB,IAAI;YACjCC,MAAMjB;YACND;YACAmB,WAAW;QACb;QAEAlB,KAAKe,UAAU,GAAGlB,iBAAiBmB,IAAI;QACvChB,KAAKmB,SAAS,GAAG;IACnB;IAEA,OAAO;QACLlB;IACF;AACF,EAAC;AAED,OAAO,MAAMmB,gBAAgB,OAAO,EAClCvB,gBAAgB,EAChBC,OAAO,EACPC,GAAG,EACHE,GAAG,EACHD,IAAI,EAOL;IACC,IAAIH,iBAAiBK,IAAI,CAACC,WAAW,IAAIH,QAAQA,KAAKV,QAAQ,EAAEoB,QAAQ;QACtEV,KAAKV,QAAQ,GAAGU,KAAKV,QAAQ,CAACG,MAAM,CAAC,CAACc,UAAYA,QAAQC,EAAE,KAAKP;QACjE,MAAMH,QAAQe,EAAE,CAACC,SAAS,CAAC;YACzBN,IAAIR,KAAKQ,EAAE;YACXO,YAAYlB,iBAAiBmB,IAAI;YACjCC,MAAMjB;YACND;YACAmB,WAAW;QACb;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/auth/sessions.ts"],"sourcesContent":["import { v4 as uuid } from 'uuid'\n\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { AuthenticatedUser, User, UserSession } from '../index.js'\nimport type { Payload, PayloadRequest } from '../types/index.js'\n\n/**\n * Removes expired sessions from an array of sessions\n */\nexport const removeExpiredSessions = (sessions: UserSession[]): UserSession[] => {\n const now = new Date()\n\n return sessions.filter(({ expiresAt }) => {\n const expiry = expiresAt instanceof Date ? expiresAt : new Date(expiresAt)\n return expiry > now\n })\n}\n\n/**\n * Adds a session to the user and removes expired sessions\n * @returns The session ID (sid) if sessions are used\n */\nexport const addSessionToUser = async ({\n collectionConfig,\n payload,\n req,\n user,\n}: {\n collectionConfig: SanitizedCollectionConfig\n payload: Payload\n req: PayloadRequest\n user: AuthenticatedUser\n}): Promise<{ sid?: string }> => {\n let sid: string | undefined\n if (collectionConfig.auth.useSessions) {\n // Add session to user\n sid = uuid()\n const now = new Date()\n const tokenExpInMs = collectionConfig.auth.tokenExpiration * 1000\n const expiresAt = new Date(now.getTime() + tokenExpInMs)\n\n const session = { id: sid, createdAt: now, expiresAt }\n\n if (!user.sessions?.length) {\n user.sessions = [session]\n } else {\n user.sessions = removeExpiredSessions(user.sessions)\n user.sessions.push(session)\n }\n\n await payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: {\n ...user,\n // Prevent updatedAt from being updated when only adding a session\n updatedAt: null,\n },\n req,\n returning: false,\n })\n\n user.collection = collectionConfig.slug\n user._strategy = 'local-jwt'\n }\n\n return {\n sid,\n }\n}\n\nexport const revokeSession = async ({\n collectionConfig,\n payload,\n req,\n sid,\n user,\n}: {\n collectionConfig: SanitizedCollectionConfig\n payload: Payload\n req: PayloadRequest\n sid: string\n user: null | User\n}): Promise<void> => {\n if (collectionConfig.auth.useSessions && user && user.sessions?.length) {\n user.sessions = user.sessions.filter((session) => session.id !== sid)\n await payload.db.updateOne({\n id: user.id,\n collection: collectionConfig.slug,\n data: user,\n req,\n returning: false,\n })\n }\n}\n"],"names":["v4","uuid","removeExpiredSessions","sessions","now","Date","filter","expiresAt","expiry","addSessionToUser","collectionConfig","payload","req","user","sid","auth","useSessions","tokenExpInMs","tokenExpiration","getTime","session","id","createdAt","length","push","db","updateOne","collection","slug","data","updatedAt","returning","_strategy","revokeSession"],"mappings":"AAAA,SAASA,MAAMC,IAAI,QAAQ,OAAM;AAMjC;;CAEC,GACD,OAAO,MAAMC,wBAAwB,CAACC;IACpC,MAAMC,MAAM,IAAIC;IAEhB,OAAOF,SAASG,MAAM,CAAC,CAAC,EAAEC,SAAS,EAAE;QACnC,MAAMC,SAASD,qBAAqBF,OAAOE,YAAY,IAAIF,KAAKE;QAChE,OAAOC,SAASJ;IAClB;AACF,EAAC;AAED;;;CAGC,GACD,OAAO,MAAMK,mBAAmB,OAAO,EACrCC,gBAAgB,EAChBC,OAAO,EACPC,GAAG,EACHC,IAAI,EAML;IACC,IAAIC;IACJ,IAAIJ,iBAAiBK,IAAI,CAACC,WAAW,EAAE;QACrC,sBAAsB;QACtBF,MAAMb;QACN,MAAMG,MAAM,IAAIC;QAChB,MAAMY,eAAeP,iBAAiBK,IAAI,CAACG,eAAe,GAAG;QAC7D,MAAMX,YAAY,IAAIF,KAAKD,IAAIe,OAAO,KAAKF;QAE3C,MAAMG,UAAU;YAAEC,IAAIP;YAAKQ,WAAWlB;YAAKG;QAAU;QAErD,IAAI,CAACM,KAAKV,QAAQ,EAAEoB,QAAQ;YAC1BV,KAAKV,QAAQ,GAAG;gBAACiB;aAAQ;QAC3B,OAAO;YACLP,KAAKV,QAAQ,GAAGD,sBAAsBW,KAAKV,QAAQ;YACnDU,KAAKV,QAAQ,CAACqB,IAAI,CAACJ;QACrB;QAEA,MAAMT,QAAQc,EAAE,CAACC,SAAS,CAAC;YACzBL,IAAIR,KAAKQ,EAAE;YACXM,YAAYjB,iBAAiBkB,IAAI;YACjCC,MAAM;gBACJ,GAAGhB,IAAI;gBACP,kEAAkE;gBAClEiB,WAAW;YACb;YACAlB;YACAmB,WAAW;QACb;QAEAlB,KAAKc,UAAU,GAAGjB,iBAAiBkB,IAAI;QACvCf,KAAKmB,SAAS,GAAG;IACnB;IAEA,OAAO;QACLlB;IACF;AACF,EAAC;AAED,OAAO,MAAMmB,gBAAgB,OAAO,EAClCvB,gBAAgB,EAChBC,OAAO,EACPC,GAAG,EACHE,GAAG,EACHD,IAAI,EAOL;IACC,IAAIH,iBAAiBK,IAAI,CAACC,WAAW,IAAIH,QAAQA,KAAKV,QAAQ,EAAEoB,QAAQ;QACtEV,KAAKV,QAAQ,GAAGU,KAAKV,QAAQ,CAACG,MAAM,CAAC,CAACc,UAAYA,QAAQC,EAAE,KAAKP;QACjE,MAAMH,QAAQc,EAAE,CAACC,SAAS,CAAC;YACzBL,IAAIR,KAAKQ,EAAE;YACXM,YAAYjB,iBAAiBkB,IAAI;YACjCC,MAAMhB;YACND;YACAmB,WAAW;QACb;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"apiKey.d.ts","sourceRoot":"","sources":["../../../src/auth/strategies/apiKey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAGlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,eAAO,MAAM,oBAAoB,GAC9B,kBAAkB,yBAAyB,KAAG,oBAuD9C,CAAA"}
1
+ {"version":3,"file":"apiKey.d.ts","sourceRoot":"","sources":["../../../src/auth/strategies/apiKey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAGlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,eAAO,MAAM,oBAAoB,qBACZ,yBAAyB,KAAG,oBAwD9C,CAAA"}
@@ -3,14 +3,16 @@ export const APIKeyAuthentication = (collectionConfig)=>async ({ headers, isGrap
3
3
  const authHeader = headers.get('Authorization');
4
4
  if (authHeader?.startsWith(`${collectionConfig.slug} API-Key `)) {
5
5
  const apiKey = authHeader.replace(`${collectionConfig.slug} API-Key `, '');
6
- const sha256APIKeyIndex = crypto.createHmac('sha256', payload.secret).update(apiKey).digest('hex');
6
+ // The stored index was written under whichever secret was active at the
7
+ // time, so match against the index computed under every keyring secret.
8
+ const apiKeyIndexes = payload.encryptionKeyring.all.map((key)=>crypto.createHmac('sha256', key.legacyKey).update(apiKey).digest('hex'));
7
9
  try {
8
10
  const where = {};
9
11
  if (collectionConfig.auth?.verify) {
10
12
  where.and = [
11
13
  {
12
14
  apiKeyIndex: {
13
- equals: sha256APIKeyIndex
15
+ in: apiKeyIndexes
14
16
  }
15
17
  },
16
18
  {
@@ -21,7 +23,7 @@ export const APIKeyAuthentication = (collectionConfig)=>async ({ headers, isGrap
21
23
  ];
22
24
  } else {
23
25
  where.apiKeyIndex = {
24
- equals: sha256APIKeyIndex
26
+ in: apiKeyIndexes
25
27
  };
26
28
  }
27
29
  const userQuery = await payload.find({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/strategies/apiKey.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { TypedUser } from '../../index.js'\nimport type { Where } from '../../types/index.js'\nimport type { AuthStrategyFunction } from '../index.js'\n\nexport const APIKeyAuthentication =\n (collectionConfig: SanitizedCollectionConfig): AuthStrategyFunction =>\n async ({ headers, isGraphQL = false, payload }) => {\n const authHeader = headers.get('Authorization')\n\n if (authHeader?.startsWith(`${collectionConfig.slug} API-Key `)) {\n const apiKey = authHeader.replace(`${collectionConfig.slug} API-Key `, '')\n\n const sha256APIKeyIndex = crypto\n .createHmac('sha256', payload.secret)\n .update(apiKey)\n .digest('hex')\n\n try {\n const where: Where = {}\n if (collectionConfig.auth?.verify) {\n where.and = [\n {\n apiKeyIndex: {\n equals: sha256APIKeyIndex,\n },\n },\n {\n _verified: {\n not_equals: false,\n },\n },\n ]\n } else {\n where.apiKeyIndex = { equals: sha256APIKeyIndex }\n }\n\n const userQuery = await payload.find({\n collection: collectionConfig.slug,\n depth: isGraphQL ? 0 : collectionConfig.auth.depth,\n limit: 1,\n overrideAccess: true,\n pagination: false,\n where,\n })\n\n if (userQuery.docs && userQuery.docs.length > 0) {\n const user = userQuery.docs[0]\n user!.collection = collectionConfig.slug\n user!._strategy = 'api-key'\n\n return {\n user: user as TypedUser,\n }\n }\n } catch (ignore) {\n return { user: null }\n }\n }\n\n return { user: null }\n }\n"],"names":["crypto","APIKeyAuthentication","collectionConfig","headers","isGraphQL","payload","authHeader","get","startsWith","slug","apiKey","replace","sha256APIKeyIndex","createHmac","secret","update","digest","where","auth","verify","and","apiKeyIndex","equals","_verified","not_equals","userQuery","find","collection","depth","limit","overrideAccess","pagination","docs","length","user","_strategy","ignore"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAO3B,OAAO,MAAMC,uBACX,CAACC,mBACD,OAAO,EAAEC,OAAO,EAAEC,YAAY,KAAK,EAAEC,OAAO,EAAE;QAC5C,MAAMC,aAAaH,QAAQI,GAAG,CAAC;QAE/B,IAAID,YAAYE,WAAW,GAAGN,iBAAiBO,IAAI,CAAC,SAAS,CAAC,GAAG;YAC/D,MAAMC,SAASJ,WAAWK,OAAO,CAAC,GAAGT,iBAAiBO,IAAI,CAAC,SAAS,CAAC,EAAE;YAEvE,MAAMG,oBAAoBZ,OACvBa,UAAU,CAAC,UAAUR,QAAQS,MAAM,EACnCC,MAAM,CAACL,QACPM,MAAM,CAAC;YAEV,IAAI;gBACF,MAAMC,QAAe,CAAC;gBACtB,IAAIf,iBAAiBgB,IAAI,EAAEC,QAAQ;oBACjCF,MAAMG,GAAG,GAAG;wBACV;4BACEC,aAAa;gCACXC,QAAQV;4BACV;wBACF;wBACA;4BACEW,WAAW;gCACTC,YAAY;4BACd;wBACF;qBACD;gBACH,OAAO;oBACLP,MAAMI,WAAW,GAAG;wBAAEC,QAAQV;oBAAkB;gBAClD;gBAEA,MAAMa,YAAY,MAAMpB,QAAQqB,IAAI,CAAC;oBACnCC,YAAYzB,iBAAiBO,IAAI;oBACjCmB,OAAOxB,YAAY,IAAIF,iBAAiBgB,IAAI,CAACU,KAAK;oBAClDC,OAAO;oBACPC,gBAAgB;oBAChBC,YAAY;oBACZd;gBACF;gBAEA,IAAIQ,UAAUO,IAAI,IAAIP,UAAUO,IAAI,CAACC,MAAM,GAAG,GAAG;oBAC/C,MAAMC,OAAOT,UAAUO,IAAI,CAAC,EAAE;oBAC9BE,KAAMP,UAAU,GAAGzB,iBAAiBO,IAAI;oBACxCyB,KAAMC,SAAS,GAAG;oBAElB,OAAO;wBACLD,MAAMA;oBACR;gBACF;YACF,EAAE,OAAOE,QAAQ;gBACf,OAAO;oBAAEF,MAAM;gBAAK;YACtB;QACF;QAEA,OAAO;YAAEA,MAAM;QAAK;IACtB,EAAC"}
1
+ {"version":3,"sources":["../../../src/auth/strategies/apiKey.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { User } from '../../index.js'\nimport type { Where } from '../../types/index.js'\nimport type { AuthStrategyFunction } from '../index.js'\n\nexport const APIKeyAuthentication =\n (collectionConfig: SanitizedCollectionConfig): AuthStrategyFunction =>\n async ({ headers, isGraphQL = false, payload }) => {\n const authHeader = headers.get('Authorization')\n\n if (authHeader?.startsWith(`${collectionConfig.slug} API-Key `)) {\n const apiKey = authHeader.replace(`${collectionConfig.slug} API-Key `, '')\n\n // The stored index was written under whichever secret was active at the\n // time, so match against the index computed under every keyring secret.\n const apiKeyIndexes = payload.encryptionKeyring.all.map((key) =>\n crypto.createHmac('sha256', key.legacyKey).update(apiKey).digest('hex'),\n )\n\n try {\n const where: Where = {}\n if (collectionConfig.auth?.verify) {\n where.and = [\n {\n apiKeyIndex: {\n in: apiKeyIndexes,\n },\n },\n {\n _verified: {\n not_equals: false,\n },\n },\n ]\n } else {\n where.apiKeyIndex = { in: apiKeyIndexes }\n }\n\n const userQuery = await payload.find({\n collection: collectionConfig.slug,\n depth: isGraphQL ? 0 : collectionConfig.auth.depth,\n limit: 1,\n overrideAccess: true,\n pagination: false,\n where,\n })\n\n if (userQuery.docs && userQuery.docs.length > 0) {\n const user = userQuery.docs[0]\n user!.collection = collectionConfig.slug\n user!._strategy = 'api-key'\n\n return {\n user: user as User,\n }\n }\n } catch (ignore) {\n return { user: null }\n }\n }\n\n return { user: null }\n }\n"],"names":["crypto","APIKeyAuthentication","collectionConfig","headers","isGraphQL","payload","authHeader","get","startsWith","slug","apiKey","replace","apiKeyIndexes","encryptionKeyring","all","map","key","createHmac","legacyKey","update","digest","where","auth","verify","and","apiKeyIndex","in","_verified","not_equals","userQuery","find","collection","depth","limit","overrideAccess","pagination","docs","length","user","_strategy","ignore"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAO3B,OAAO,MAAMC,uBACX,CAACC,mBACD,OAAO,EAAEC,OAAO,EAAEC,YAAY,KAAK,EAAEC,OAAO,EAAE;QAC5C,MAAMC,aAAaH,QAAQI,GAAG,CAAC;QAE/B,IAAID,YAAYE,WAAW,GAAGN,iBAAiBO,IAAI,CAAC,SAAS,CAAC,GAAG;YAC/D,MAAMC,SAASJ,WAAWK,OAAO,CAAC,GAAGT,iBAAiBO,IAAI,CAAC,SAAS,CAAC,EAAE;YAEvE,wEAAwE;YACxE,wEAAwE;YACxE,MAAMG,gBAAgBP,QAAQQ,iBAAiB,CAACC,GAAG,CAACC,GAAG,CAAC,CAACC,MACvDhB,OAAOiB,UAAU,CAAC,UAAUD,IAAIE,SAAS,EAAEC,MAAM,CAACT,QAAQU,MAAM,CAAC;YAGnE,IAAI;gBACF,MAAMC,QAAe,CAAC;gBACtB,IAAInB,iBAAiBoB,IAAI,EAAEC,QAAQ;oBACjCF,MAAMG,GAAG,GAAG;wBACV;4BACEC,aAAa;gCACXC,IAAId;4BACN;wBACF;wBACA;4BACEe,WAAW;gCACTC,YAAY;4BACd;wBACF;qBACD;gBACH,OAAO;oBACLP,MAAMI,WAAW,GAAG;wBAAEC,IAAId;oBAAc;gBAC1C;gBAEA,MAAMiB,YAAY,MAAMxB,QAAQyB,IAAI,CAAC;oBACnCC,YAAY7B,iBAAiBO,IAAI;oBACjCuB,OAAO5B,YAAY,IAAIF,iBAAiBoB,IAAI,CAACU,KAAK;oBAClDC,OAAO;oBACPC,gBAAgB;oBAChBC,YAAY;oBACZd;gBACF;gBAEA,IAAIQ,UAAUO,IAAI,IAAIP,UAAUO,IAAI,CAACC,MAAM,GAAG,GAAG;oBAC/C,MAAMC,OAAOT,UAAUO,IAAI,CAAC,EAAE;oBAC9BE,KAAMP,UAAU,GAAG7B,iBAAiBO,IAAI;oBACxC6B,KAAMC,SAAS,GAAG;oBAElB,OAAO;wBACLD,MAAMA;oBACR;gBACF;YACF,EAAE,OAAOE,QAAQ;gBACf,OAAO;oBAAEF,MAAM;gBAAK;YACtB;QACF;QAEA,OAAO;YAAEA,MAAM;QAAK;IACtB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/auth/strategies/jwt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAsB,MAAM,aAAa,CAAA;AAsE3E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,oBAwD/B,CAAA"}
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/auth/strategies/jwt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAsB,MAAM,aAAa,CAAA;AAiG3E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,oBA0D/B,CAAA"}
@@ -1,5 +1,21 @@
1
1
  import { jwtVerify } from 'jose';
2
2
  import { extractJWT } from '../extractJWT.js';
3
+ /**
4
+ * Verifies a token against every secret in the keyring (active first), so tokens
5
+ * signed under a previous secret still validate during a bounded rotation.
6
+ * Throws if no key verifies.
7
+ */ async function verifyWithKeyring({ payload, token }) {
8
+ let lastError;
9
+ for (const key of payload.encryptionKeyring.all){
10
+ try {
11
+ const { payload: decodedPayload } = await jwtVerify(token, new TextEncoder().encode(key.legacyKey));
12
+ return decodedPayload;
13
+ } catch (error) {
14
+ lastError = error;
15
+ }
16
+ }
17
+ throw lastError;
18
+ }
3
19
  async function autoLogin({ isGraphQL, payload, strategyName = 'local-jwt' }) {
4
20
  if (typeof payload?.config?.admin?.autoLogin !== 'object' || payload.config.admin?.autoLogin.prefillOnly || !payload?.config?.admin?.autoLogin || !payload.config.admin?.autoLogin.email && !payload.config.admin?.autoLogin.username) {
5
21
  return {
@@ -61,8 +77,13 @@ async function autoLogin({ isGraphQL, payload, strategyName = 'local-jwt' }) {
61
77
  user: null
62
78
  };
63
79
  }
64
- const secretKey = new TextEncoder().encode(payload.secret);
65
- const { payload: decodedPayload } = await jwtVerify(token, secretKey);
80
+ // Verify against every keyring secret so tokens signed under a previous
81
+ // secret still validate during a bounded rotation. New tokens are always
82
+ // signed with the active secret.
83
+ const decodedPayload = await verifyWithKeyring({
84
+ payload,
85
+ token
86
+ });
66
87
  const collection = payload.collections[decodedPayload.collection];
67
88
  const user = await payload.findByID({
68
89
  id: decodedPayload.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/strategies/jwt.ts"],"sourcesContent":["import { jwtVerify } from 'jose'\n\nimport type { Payload, Where } from '../../types/index.js'\nimport type { AuthStrategyFunction, AuthStrategyResult } from '../index.js'\n\nimport { extractJWT } from '../extractJWT.js'\n\ntype JWTToken = {\n collection: string\n id: string\n sid?: string\n}\n\nasync function autoLogin({\n isGraphQL,\n payload,\n strategyName = 'local-jwt',\n}: {\n isGraphQL: boolean\n payload: Payload\n strategyName?: string\n}): Promise<{\n user: AuthStrategyResult['user']\n}> {\n if (\n typeof payload?.config?.admin?.autoLogin !== 'object' ||\n payload.config.admin?.autoLogin.prefillOnly ||\n !payload?.config?.admin?.autoLogin ||\n (!payload.config.admin?.autoLogin.email && !payload.config.admin?.autoLogin.username)\n ) {\n return { user: null }\n }\n\n const collection = payload.collections[payload.config.admin.user]\n\n const where: Where = {\n or: [],\n }\n if (payload.config.admin?.autoLogin.email) {\n where.or?.push({\n email: {\n equals: payload.config.admin?.autoLogin.email,\n },\n })\n } else if (payload.config.admin?.autoLogin.username) {\n where.or?.push({\n username: {\n equals: payload.config.admin?.autoLogin.username,\n },\n })\n }\n\n const user = (\n await payload.find({\n collection: collection!.config.slug,\n depth: isGraphQL ? 0 : collection!.config.auth.depth,\n limit: 1,\n pagination: false,\n where,\n })\n ).docs[0] as AuthStrategyResult['user']\n\n if (!user) {\n return { user: null }\n }\n user.collection = collection!.config.slug\n user._strategy = strategyName\n\n return {\n user,\n }\n}\n\n/**\n * Authentication strategy function for JWT tokens\n */\nexport const JWTAuthentication: AuthStrategyFunction = async ({\n headers,\n isGraphQL = false,\n payload,\n strategyName = 'local-jwt',\n}) => {\n try {\n const token = extractJWT({ headers, payload })\n\n if (!token) {\n if (headers.get('DisableAutologin') !== 'true') {\n return await autoLogin({ isGraphQL, payload, strategyName })\n }\n return { user: null }\n }\n\n const secretKey = new TextEncoder().encode(payload.secret)\n const { payload: decodedPayload } = await jwtVerify<JWTToken>(token, secretKey)\n const collection = payload.collections[decodedPayload.collection]\n\n const user = (await payload.findByID({\n id: decodedPayload.id,\n collection: decodedPayload.collection,\n depth: isGraphQL ? 0 : collection!.config.auth.depth,\n })) as AuthStrategyResult['user']\n\n if (user && (!collection!.config.auth.verify || user._verified)) {\n if (collection!.config.auth.useSessions) {\n const existingSession = (user.sessions || []).find(({ id }) => id === decodedPayload.sid)\n\n if (!existingSession || !decodedPayload.sid) {\n return {\n user: null,\n }\n }\n\n user._sid = decodedPayload.sid\n }\n\n user.collection = collection!.config.slug\n user._strategy = strategyName\n return {\n user,\n }\n } else {\n if (headers.get('DisableAutologin') !== 'true') {\n return await autoLogin({ isGraphQL, payload, strategyName })\n }\n return { user: null }\n }\n } catch (ignore) {\n if (headers.get('DisableAutologin') !== 'true') {\n return await autoLogin({ isGraphQL, payload, strategyName })\n }\n return { user: null }\n }\n}\n"],"names":["jwtVerify","extractJWT","autoLogin","isGraphQL","payload","strategyName","config","admin","prefillOnly","email","username","user","collection","collections","where","or","push","equals","find","slug","depth","auth","limit","pagination","docs","_strategy","JWTAuthentication","headers","token","get","secretKey","TextEncoder","encode","secret","decodedPayload","findByID","id","verify","_verified","useSessions","existingSession","sessions","sid","_sid","ignore"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/auth/strategies/jwt.ts"],"sourcesContent":["import { jwtVerify } from 'jose'\n\nimport type { Payload, Where } from '../../types/index.js'\nimport type { AuthStrategyFunction, AuthStrategyResult } from '../index.js'\n\nimport { extractJWT } from '../extractJWT.js'\n\ntype JWTToken = {\n collection: string\n id: string\n sid?: string\n}\n\n/**\n * Verifies a token against every secret in the keyring (active first), so tokens\n * signed under a previous secret still validate during a bounded rotation.\n * Throws if no key verifies.\n */\nasync function verifyWithKeyring({\n payload,\n token,\n}: {\n payload: Payload\n token: string\n}): Promise<JWTToken> {\n let lastError: unknown\n for (const key of payload.encryptionKeyring.all) {\n try {\n const { payload: decodedPayload } = await jwtVerify<JWTToken>(\n token,\n new TextEncoder().encode(key.legacyKey),\n )\n return decodedPayload\n } catch (error) {\n lastError = error\n }\n }\n throw lastError\n}\n\nasync function autoLogin({\n isGraphQL,\n payload,\n strategyName = 'local-jwt',\n}: {\n isGraphQL: boolean\n payload: Payload\n strategyName?: string\n}): Promise<{\n user: AuthStrategyResult['user']\n}> {\n if (\n typeof payload?.config?.admin?.autoLogin !== 'object' ||\n payload.config.admin?.autoLogin.prefillOnly ||\n !payload?.config?.admin?.autoLogin ||\n (!payload.config.admin?.autoLogin.email && !payload.config.admin?.autoLogin.username)\n ) {\n return { user: null }\n }\n\n const collection = payload.collections[payload.config.admin.user]\n\n const where: Where = {\n or: [],\n }\n if (payload.config.admin?.autoLogin.email) {\n where.or?.push({\n email: {\n equals: payload.config.admin?.autoLogin.email,\n },\n })\n } else if (payload.config.admin?.autoLogin.username) {\n where.or?.push({\n username: {\n equals: payload.config.admin?.autoLogin.username,\n },\n })\n }\n\n const user = (\n await payload.find({\n collection: collection!.config.slug,\n depth: isGraphQL ? 0 : collection!.config.auth.depth,\n limit: 1,\n pagination: false,\n where,\n })\n ).docs[0] as AuthStrategyResult['user']\n\n if (!user) {\n return { user: null }\n }\n user.collection = collection!.config.slug\n user._strategy = strategyName\n\n return {\n user,\n }\n}\n\n/**\n * Authentication strategy function for JWT tokens\n */\nexport const JWTAuthentication: AuthStrategyFunction = async ({\n headers,\n isGraphQL = false,\n payload,\n strategyName = 'local-jwt',\n}) => {\n try {\n const token = extractJWT({ headers, payload })\n\n if (!token) {\n if (headers.get('DisableAutologin') !== 'true') {\n return await autoLogin({ isGraphQL, payload, strategyName })\n }\n return { user: null }\n }\n\n // Verify against every keyring secret so tokens signed under a previous\n // secret still validate during a bounded rotation. New tokens are always\n // signed with the active secret.\n const decodedPayload = await verifyWithKeyring({ payload, token })\n const collection = payload.collections[decodedPayload.collection]\n\n const user = (await payload.findByID({\n id: decodedPayload.id,\n collection: decodedPayload.collection,\n depth: isGraphQL ? 0 : collection!.config.auth.depth,\n })) as AuthStrategyResult['user']\n\n if (user && (!collection!.config.auth.verify || user._verified)) {\n if (collection!.config.auth.useSessions) {\n const existingSession = (user.sessions || []).find(({ id }) => id === decodedPayload.sid)\n\n if (!existingSession || !decodedPayload.sid) {\n return {\n user: null,\n }\n }\n\n user._sid = decodedPayload.sid\n }\n\n user.collection = collection!.config.slug\n user._strategy = strategyName\n return {\n user,\n }\n } else {\n if (headers.get('DisableAutologin') !== 'true') {\n return await autoLogin({ isGraphQL, payload, strategyName })\n }\n return { user: null }\n }\n } catch (ignore) {\n if (headers.get('DisableAutologin') !== 'true') {\n return await autoLogin({ isGraphQL, payload, strategyName })\n }\n return { user: null }\n }\n}\n"],"names":["jwtVerify","extractJWT","verifyWithKeyring","payload","token","lastError","key","encryptionKeyring","all","decodedPayload","TextEncoder","encode","legacyKey","error","autoLogin","isGraphQL","strategyName","config","admin","prefillOnly","email","username","user","collection","collections","where","or","push","equals","find","slug","depth","auth","limit","pagination","docs","_strategy","JWTAuthentication","headers","get","findByID","id","verify","_verified","useSessions","existingSession","sessions","sid","_sid","ignore"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/authenticate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAEtE,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAA;AAE/C,KAAK,IAAI,GAAG;IACV,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAU,mBAAmB,IAAI,KAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CA+B3F,CAAA"}
1
+ {"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/authenticate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAEtE,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAA;AAE/C,KAAK,IAAI,GAAG;IACV,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,yBAAyB,sBAA6B,IAAI,KAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CA+B3F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"generatePasswordSaltHash.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/generatePasswordSaltHash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAmB7D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,+CAI5C,IAAI,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4B/C,CAAA"}
1
+ {"version":3,"file":"generatePasswordSaltHash.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/generatePasswordSaltHash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAmB7D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,wBAAwB,kDAIlC,IAAI,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4B/C,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import type { SanitizedCollectionConfig } from '../../../collections/config/types.js';
2
- import { type Payload, type TypedUser } from '../../../index.js';
2
+ import { type Payload, type User } from '../../../index.js';
3
3
  type Args = {
4
4
  collection: SanitizedCollectionConfig;
5
5
  payload: Payload;
6
- user: TypedUser;
6
+ user: User;
7
7
  };
8
8
  export declare const incrementLoginAttempts: ({ collection, payload, user, }: Args) => Promise<void>;
9
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"incrementLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAErF,OAAO,EAAmB,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGjF,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAID,eAAO,MAAM,sBAAsB,GAAU,gCAI1C,IAAI,KAAG,OAAO,CAAC,IAAI,CAuIrB,CAAA"}
1
+ {"version":3,"file":"incrementLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAErF,OAAO,EAAmB,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG5E,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAID,eAAO,MAAM,sBAAsB,mCAIhC,IAAI,KAAG,OAAO,CAAC,IAAI,CAuIrB,CAAA"}
@@ -92,7 +92,7 @@ export const incrementLoginAttempts = async ({ collection, payload, user })=>{
92
92
  if (currentUser?.sessions?.length) {
93
93
  // Does not hurt also removing expired sessions
94
94
  currentUser.sessions = currentUser.sessions.filter((session)=>{
95
- const sessionCreatedAt = new Date(session.createdAt);
95
+ const sessionCreatedAt = new Date(session.createdAt ?? 0);
96
96
  const twentySecondsAgo = new Date(currentTime - 20000);
97
97
  // Remove sessions created within the last 20 seconds
98
98
  return sessionCreatedAt <= twentySecondsAgo;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\n\nimport { type JsonObject, type Payload, type TypedUser } from '../../../index.js'\nimport { isUserLocked } from '../../isUserLocked.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n payload: Payload\n user: TypedUser\n}\n\n// Note: this function does not use req in its updates, as we want those to be visible in parallel requests that are on a different\n// transaction. At the same time, we want updates from parallel requests to be visible here.\nexport const incrementLoginAttempts = async ({\n collection,\n payload,\n user,\n}: Args): Promise<void> => {\n const {\n auth: { lockTime, maxLoginAttempts },\n } = collection\n\n const currentTime = Date.now()\n\n let updatedLockUntil: null | string = null\n let updatedLoginAttempts: null | number = null\n\n if (user.lockUntil && !isUserLocked(new Date(user.lockUntil))) {\n // Expired lock, restart count at 1\n const updatedUser = await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data: {\n lockUntil: null,\n loginAttempts: 1,\n },\n select: {\n lockUntil: true,\n loginAttempts: true,\n },\n })\n updatedLockUntil = updatedUser.lockUntil\n updatedLoginAttempts = updatedUser.loginAttempts\n user.lockUntil = updatedLockUntil\n } else {\n const data: JsonObject = {\n loginAttempts: {\n $inc: 1,\n },\n }\n\n const willReachMaxAttempts =\n typeof user.loginAttempts === 'number' && user.loginAttempts + 1 >= maxLoginAttempts\n // Lock the account if at max attempts and not already locked\n if (willReachMaxAttempts) {\n const lockUntil = new Date(currentTime + lockTime).toISOString()\n data.lockUntil = lockUntil\n }\n\n const updatedUser = await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data,\n select: {\n lockUntil: true,\n loginAttempts: true,\n },\n })\n\n updatedLockUntil = updatedUser.lockUntil\n updatedLoginAttempts = updatedUser.loginAttempts\n }\n\n if (updatedLoginAttempts === null) {\n throw new Error('Failed to update login attempts or lockUntil for user')\n }\n\n // Check updated latest lockUntil and loginAttempts in case there were parallel updates\n const reachedMaxAttemptsForCurrentUser =\n typeof updatedLoginAttempts === 'number' && updatedLoginAttempts - 1 >= maxLoginAttempts\n\n const reachedMaxAttemptsForNextUser =\n typeof updatedLoginAttempts === 'number' && updatedLoginAttempts >= maxLoginAttempts\n\n if (reachedMaxAttemptsForCurrentUser) {\n user.lockUntil = updatedLockUntil\n }\n user.loginAttempts = updatedLoginAttempts - 1 // -1, as the updated increment is applied for the *next* login attempt, not the current one\n\n if (\n reachedMaxAttemptsForNextUser &&\n (!updatedLockUntil || !isUserLocked(new Date(updatedLockUntil)))\n ) {\n // If lockUntil reached max login attempts due to multiple parallel attempts but user was not locked yet,\n const newLockUntil = new Date(currentTime + lockTime).toISOString()\n\n await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data: {\n lockUntil: newLockUntil,\n },\n returning: false,\n })\n\n if (reachedMaxAttemptsForCurrentUser) {\n user.lockUntil = newLockUntil\n }\n\n if (collection.auth.useSessions) {\n // Remove all active sessions that have been created in a 20 second window. This protects\n // against brute force attacks - example: 99 incorrect, 1 correct parallel login attempts.\n // The correct login attempt will be finished first, as it's faster due to not having to perform\n // an additional db update here.\n // However, this request (the incorrect login attempt request) can kill the successful login attempt here.\n\n // Fetch user sessions separately (do not do this in the updateOne select in order to preserve the returning: true db call optimization)\n const currentUser = await payload.db.findOne<TypedUser>({\n collection: collection.slug,\n select: {\n sessions: true,\n },\n where: {\n id: {\n equals: user.id,\n },\n },\n })\n if (currentUser?.sessions?.length) {\n // Does not hurt also removing expired sessions\n currentUser.sessions = currentUser.sessions.filter((session) => {\n const sessionCreatedAt = new Date(session.createdAt)\n const twentySecondsAgo = new Date(currentTime - 20000)\n\n // Remove sessions created within the last 20 seconds\n return sessionCreatedAt <= twentySecondsAgo\n })\n\n user.sessions = currentUser.sessions\n\n // Ensure updatedAt date is always updated\n user.updatedAt = new Date().toISOString()\n\n await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data: user,\n returning: false,\n })\n }\n }\n }\n}\n"],"names":["isUserLocked","incrementLoginAttempts","collection","payload","user","auth","lockTime","maxLoginAttempts","currentTime","Date","now","updatedLockUntil","updatedLoginAttempts","lockUntil","updatedUser","db","updateOne","id","slug","data","loginAttempts","select","$inc","willReachMaxAttempts","toISOString","Error","reachedMaxAttemptsForCurrentUser","reachedMaxAttemptsForNextUser","newLockUntil","returning","useSessions","currentUser","findOne","sessions","where","equals","length","filter","session","sessionCreatedAt","createdAt","twentySecondsAgo","updatedAt"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\n\nimport { type JsonObject, type Payload, type User } from '../../../index.js'\nimport { isUserLocked } from '../../isUserLocked.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n payload: Payload\n user: User\n}\n\n// Note: this function does not use req in its updates, as we want those to be visible in parallel requests that are on a different\n// transaction. At the same time, we want updates from parallel requests to be visible here.\nexport const incrementLoginAttempts = async ({\n collection,\n payload,\n user,\n}: Args): Promise<void> => {\n const {\n auth: { lockTime, maxLoginAttempts },\n } = collection\n\n const currentTime = Date.now()\n\n let updatedLockUntil: null | string = null\n let updatedLoginAttempts: null | number = null\n\n if (user.lockUntil && !isUserLocked(new Date(user.lockUntil))) {\n // Expired lock, restart count at 1\n const updatedUser = await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data: {\n lockUntil: null,\n loginAttempts: 1,\n },\n select: {\n lockUntil: true,\n loginAttempts: true,\n },\n })\n updatedLockUntil = updatedUser.lockUntil\n updatedLoginAttempts = updatedUser.loginAttempts\n user.lockUntil = updatedLockUntil\n } else {\n const data: JsonObject = {\n loginAttempts: {\n $inc: 1,\n },\n }\n\n const willReachMaxAttempts =\n typeof user.loginAttempts === 'number' && user.loginAttempts + 1 >= maxLoginAttempts\n // Lock the account if at max attempts and not already locked\n if (willReachMaxAttempts) {\n const lockUntil = new Date(currentTime + lockTime).toISOString()\n data.lockUntil = lockUntil\n }\n\n const updatedUser = await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data,\n select: {\n lockUntil: true,\n loginAttempts: true,\n },\n })\n\n updatedLockUntil = updatedUser.lockUntil\n updatedLoginAttempts = updatedUser.loginAttempts\n }\n\n if (updatedLoginAttempts === null) {\n throw new Error('Failed to update login attempts or lockUntil for user')\n }\n\n // Check updated latest lockUntil and loginAttempts in case there were parallel updates\n const reachedMaxAttemptsForCurrentUser =\n typeof updatedLoginAttempts === 'number' && updatedLoginAttempts - 1 >= maxLoginAttempts\n\n const reachedMaxAttemptsForNextUser =\n typeof updatedLoginAttempts === 'number' && updatedLoginAttempts >= maxLoginAttempts\n\n if (reachedMaxAttemptsForCurrentUser) {\n user.lockUntil = updatedLockUntil\n }\n user.loginAttempts = updatedLoginAttempts - 1 // -1, as the updated increment is applied for the *next* login attempt, not the current one\n\n if (\n reachedMaxAttemptsForNextUser &&\n (!updatedLockUntil || !isUserLocked(new Date(updatedLockUntil)))\n ) {\n // If lockUntil reached max login attempts due to multiple parallel attempts but user was not locked yet,\n const newLockUntil = new Date(currentTime + lockTime).toISOString()\n\n await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data: {\n lockUntil: newLockUntil,\n },\n returning: false,\n })\n\n if (reachedMaxAttemptsForCurrentUser) {\n user.lockUntil = newLockUntil\n }\n\n if (collection.auth.useSessions) {\n // Remove all active sessions that have been created in a 20 second window. This protects\n // against brute force attacks - example: 99 incorrect, 1 correct parallel login attempts.\n // The correct login attempt will be finished first, as it's faster due to not having to perform\n // an additional db update here.\n // However, this request (the incorrect login attempt request) can kill the successful login attempt here.\n\n // Fetch user sessions separately (do not do this in the updateOne select in order to preserve the returning: true db call optimization)\n const currentUser = await payload.db.findOne<User>({\n collection: collection.slug,\n select: {\n sessions: true,\n },\n where: {\n id: {\n equals: user.id,\n },\n },\n })\n if (currentUser?.sessions?.length) {\n // Does not hurt also removing expired sessions\n currentUser.sessions = currentUser.sessions.filter((session) => {\n const sessionCreatedAt = new Date(session.createdAt ?? 0)\n const twentySecondsAgo = new Date(currentTime - 20000)\n\n // Remove sessions created within the last 20 seconds\n return sessionCreatedAt <= twentySecondsAgo\n })\n\n user.sessions = currentUser.sessions\n\n // Ensure updatedAt date is always updated\n user.updatedAt = new Date().toISOString()\n\n await payload.db.updateOne({\n id: user.id,\n collection: collection.slug,\n data: user,\n returning: false,\n })\n }\n }\n }\n}\n"],"names":["isUserLocked","incrementLoginAttempts","collection","payload","user","auth","lockTime","maxLoginAttempts","currentTime","Date","now","updatedLockUntil","updatedLoginAttempts","lockUntil","updatedUser","db","updateOne","id","slug","data","loginAttempts","select","$inc","willReachMaxAttempts","toISOString","Error","reachedMaxAttemptsForCurrentUser","reachedMaxAttemptsForNextUser","newLockUntil","returning","useSessions","currentUser","findOne","sessions","where","equals","length","filter","session","sessionCreatedAt","createdAt","twentySecondsAgo","updatedAt"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAMhF,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,UAAU,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAU,8CAMzC,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0ExC,CAAA"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAMhF,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,UAAU,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,iDAM/B,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0ExC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"resetLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/resetLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,oCAKtC,IAAI,KAAG,OAAO,CAAC,IAAI,CAiBrB,CAAA"}
1
+ {"version":3,"file":"resetLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/resetLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,kBAAkB,uCAK5B,IAAI,KAAG,OAAO,CAAC,IAAI,CAiBrB,CAAA"}
@@ -1,5 +1,4 @@
1
- import type { DeepRequired } from 'ts-essentials';
2
- import type { CollectionSlug, GlobalSlug, Payload, TypedUser } from '../index.js';
1
+ import type { CollectionSlug, GlobalSlug, Payload, User } from '../index.js';
3
2
  import type { PayloadRequest, Where } from '../types/index.js';
4
3
  /**
5
4
  * A permission object that can be used to determine if a user has access to a specific operation.
@@ -89,28 +88,35 @@ export type SanitizedPermissions = {
89
88
  [globalSlug: string]: SanitizedGlobalPermission;
90
89
  };
91
90
  };
92
- type BaseUser = {
93
- collection: string;
94
- email?: string;
95
- id: number | string;
96
- sessions?: Array<UserSession>;
97
- username?: string;
91
+ /**
92
+ * Fields injected onto a user at authentication time. They are never stored in the database and
93
+ * never present on a plain document read (e.g. `payload.findByID`) - only on the authenticated
94
+ * user (`req.user`, login/auth/me results, auth strategies).
95
+ */
96
+ export type AuthRuntimeFields = {
97
+ /**
98
+ * The session ID of the current request. May be present on request-authenticated users when
99
+ * sessions are enabled.
100
+ */
101
+ _sid?: string;
102
+ /**
103
+ * The name of the auth strategy that authenticated the request (e.g. `local-jwt`).
104
+ */
105
+ _strategy?: string;
98
106
  };
99
107
  /**
100
- * @deprecated Use `TypedUser` instead. This will be removed in 4.0.
108
+ * Note: AuthenticatedUser still carries the write-only `password` from `User` (always `undefined` at runtime).
109
+ * Stripping it cleanly isn't possible, because auth operations build the authenticated user
110
+ * from a read `User` doc, so a `never`-typed `password` would break those assignments
101
111
  */
102
- export type UntypedUser = {
103
- [key: string]: any;
104
- } & BaseUser;
105
112
  /**
106
- * `collection` is not available one the client. It's only available on the server (req.user)
107
- * On the client, you can access the collection via config.admin.user. Config can be accessed using the useConfig() hook
113
+ * The signed-in user: the read user plus the runtime auth markers (`_strategy`, `_sid`). This is
114
+ * what `req.user`, `payload.auth()`, the `me` operation, auth strategies, and `useAuth().user`
115
+ * return.
108
116
  */
109
- export type ClientUser = {
110
- [key: string]: any;
111
- } & BaseUser;
117
+ export type AuthenticatedUser = AuthRuntimeFields & User;
112
118
  export type UserSession = {
113
- createdAt: Date | string;
119
+ createdAt?: Date | null | string;
114
120
  expiresAt: Date | string;
115
121
  id: string;
116
122
  };
@@ -149,10 +155,7 @@ export type AuthStrategyFunctionArgs = {
149
155
  };
150
156
  export type AuthStrategyResult = {
151
157
  responseHeaders?: Headers;
152
- user: ({
153
- _strategy?: string;
154
- collection?: string;
155
- } & TypedUser) | null;
158
+ user: AuthenticatedUser | null;
156
159
  };
157
160
  export type AuthStrategyFunction = (args: AuthStrategyFunctionArgs) => AuthStrategyResult | Promise<AuthStrategyResult>;
158
161
  export type AuthStrategy = {
@@ -168,15 +171,16 @@ export type LoginWithUsernameOptions = {
168
171
  requireEmail?: boolean;
169
172
  requireUsername?: boolean;
170
173
  };
174
+ type AuthCookies = {
175
+ domain?: string;
176
+ sameSite?: 'Lax' | 'None' | 'Strict' | boolean;
177
+ secure?: boolean;
178
+ };
171
179
  export interface IncomingAuthType {
172
180
  /**
173
181
  * Set cookie options, including secure, sameSite, and domain. For advanced users.
174
182
  */
175
- cookies?: {
176
- domain?: string;
177
- sameSite?: 'Lax' | 'None' | 'Strict' | boolean;
178
- secure?: boolean;
179
- };
183
+ cookies?: AuthCookies;
180
184
  /**
181
185
  * How many levels deep a user document should be populated when creating the JWT and binding the user to the req. Defaults to 0 and should only be modified if absolutely necessary, as this will affect performance.
182
186
  * @default 0
@@ -259,14 +263,9 @@ export type VerifyConfig = {
259
263
  generateEmailHTML?: GenerateVerifyEmailHTML;
260
264
  generateEmailSubject?: GenerateVerifyEmailSubject;
261
265
  };
262
- export interface Auth extends Omit<DeepRequired<IncomingAuthType>, 'forgotPassword' | 'loginWithUsername' | 'verify'> {
263
- forgotPassword?: {
264
- expiration?: number;
265
- generateEmailHTML?: GenerateForgotPasswordEmailHTML;
266
- generateEmailSubject?: GenerateForgotPasswordEmailSubject;
267
- };
268
- loginWithUsername: false | LoginWithUsernameOptions;
269
- verify?: boolean | VerifyConfig;
266
+ export interface Auth extends Omit<IncomingAuthType, 'cookies' | 'forgotPassword' | 'lockTime' | 'loginWithUsername' | 'maxLoginAttempts' | 'strategies' | 'tokenExpiration' | 'useSessions' | 'verify'>, Required<Pick<IncomingAuthType, 'forgotPassword' | 'lockTime' | 'maxLoginAttempts' | 'strategies' | 'tokenExpiration' | 'useSessions' | 'verify'>> {
267
+ cookies: Pick<AuthCookies, 'domain'> & Required<Pick<AuthCookies, 'sameSite' | 'secure'>>;
268
+ loginWithUsername: false | Required<LoginWithUsernameOptions>;
270
269
  }
271
270
  export declare function hasWhereAccessResult(result: boolean | Where): result is Where;
272
271
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/types.ts"],"sourcesContent":["import type { DeepRequired } from 'ts-essentials'\n\nimport type { CollectionSlug, GlobalSlug, Payload, TypedUser } from '../index.js'\nimport type { PayloadRequest, Where } from '../types/index.js'\n\n/**\n * A permission object that can be used to determine if a user has access to a specific operation.\n */\nexport type Permission = {\n permission: boolean\n where?: Where\n}\n\nexport type FieldsPermissions = {\n [fieldName: string]: FieldPermissions\n}\n\nexport type BlockPermissions = {\n create: Permission\n fields: FieldsPermissions\n read: Permission\n update: Permission\n}\n\nexport type SanitizedBlockPermissions =\n | {\n fields: SanitizedFieldsPermissions\n }\n | true\n\nexport type BlocksPermissions = {\n [blockSlug: string]: BlockPermissions\n}\n\nexport type SanitizedBlocksPermissions =\n | {\n [blockSlug: string]: SanitizedBlockPermissions\n }\n | true\n\nexport type FieldPermissions = {\n blocks?: BlocksPermissions\n create?: Permission\n fields?: FieldsPermissions\n read?: Permission\n update?: Permission\n}\n\nexport type SanitizedFieldPermissions =\n | {\n blocks?: SanitizedBlocksPermissions\n create: true\n fields?: SanitizedFieldsPermissions\n read: true\n update: true\n }\n | true\n\nexport type SanitizedFieldsPermissions =\n | {\n [fieldName: string]: SanitizedFieldPermissions\n }\n | true\n\nexport type CollectionPermission = {\n create?: Permission\n delete?: Permission\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n // Auth-enabled Collections only\n unlock?: Permission\n update?: Permission\n}\n\nexport type SanitizedCollectionPermission = {\n create?: true\n delete?: true\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n // Auth-enabled Collections only\n unlock?: true\n update?: true\n}\n\nexport type GlobalPermission = {\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n update?: Permission\n}\n\nexport type SanitizedGlobalPermission = {\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n update?: true\n}\n\nexport type DocumentPermissions = CollectionPermission | GlobalPermission\n\nexport type SanitizedDocumentPermissions = SanitizedCollectionPermission | SanitizedGlobalPermission\n\nexport type Permissions = {\n canAccessAdmin: boolean\n collections?: Record<CollectionSlug, CollectionPermission>\n globals?: Record<GlobalSlug, GlobalPermission>\n}\n\nexport type SanitizedPermissions = {\n canAccessAdmin?: boolean\n collections?: {\n [collectionSlug: string]: SanitizedCollectionPermission\n }\n globals?: {\n [globalSlug: string]: SanitizedGlobalPermission\n }\n}\n\ntype BaseUser = {\n collection: string\n email?: string\n id: number | string\n sessions?: Array<UserSession>\n username?: string\n}\n\n/**\n * @deprecated Use `TypedUser` instead. This will be removed in 4.0.\n */\nexport type UntypedUser = {\n [key: string]: any\n} & BaseUser\n\n/**\n * `collection` is not available one the client. It's only available on the server (req.user)\n * On the client, you can access the collection via config.admin.user. Config can be accessed using the useConfig() hook\n */\nexport type ClientUser = {\n [key: string]: any\n} & BaseUser\n\nexport type UserSession = { createdAt: Date | string; expiresAt: Date | string; id: string }\ntype GenerateVerifyEmailHTML<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateVerifyEmailSubject<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailHTML<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailSubject<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\nexport type AuthStrategyFunctionArgs = {\n /**\n * Specifies whether or not response headers can be set from this strategy.\n */\n canSetHeaders?: boolean\n headers: Request['headers']\n isGraphQL?: boolean\n payload: Payload\n /**\n * The AuthStrategy name property from the payload config.\n */\n strategyName?: string\n}\n\nexport type AuthStrategyResult = {\n responseHeaders?: Headers\n user:\n | ({\n _strategy?: string\n collection?: string\n } & TypedUser)\n | null\n}\n\nexport type AuthStrategyFunction = (\n args: AuthStrategyFunctionArgs,\n) => AuthStrategyResult | Promise<AuthStrategyResult>\nexport type AuthStrategy = {\n authenticate: AuthStrategyFunction\n name: string\n}\n\nexport type LoginWithUsernameOptions =\n | {\n allowEmailLogin?: false\n requireEmail?: boolean\n // If `allowEmailLogin` is false, `requireUsername` must be true (default: true)\n requireUsername?: true\n }\n | {\n allowEmailLogin?: true\n requireEmail?: boolean\n requireUsername?: boolean\n }\n\nexport interface IncomingAuthType {\n /**\n * Set cookie options, including secure, sameSite, and domain. For advanced users.\n */\n cookies?: {\n domain?: string\n sameSite?: 'Lax' | 'None' | 'Strict' | boolean\n secure?: boolean\n }\n /**\n * How many levels deep a user document should be populated when creating the JWT and binding the user to the req. Defaults to 0 and should only be modified if absolutely necessary, as this will affect performance.\n * @default 0\n */\n depth?: number\n /**\n * Advanced - disable Payload's built-in local auth strategy. Only use this property if you have replaced Payload's auth mechanisms with your own.\n */\n disableLocalStrategy?:\n | {\n /**\n * Include auth fields on the collection even though the local strategy is disabled.\n * Useful when you do not want the database or types to vary depending on the auth configuration.\n */\n enableFields?: true\n optionalPassword?: true\n }\n | true\n /**\n * Customize the way that the forgotPassword operation functions.\n * @link https://payloadcms.com/docs/authentication/email#forgot-password\n */\n forgotPassword?: {\n /**\n * The number of milliseconds that the forgot password token should be valid for.\n * @default 3600000 // 1 hour\n */\n expiration?: number\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n /**\n * Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than maxLoginAttempts allows for.\n */\n lockTime?: number\n /**\n * Ability to allow users to login with username/password.\n *\n * @link https://payloadcms.com/docs/authentication/overview#login-with-username\n */\n loginWithUsername?: boolean | LoginWithUsernameOptions\n /**\n * Only allow a user to attempt logging in X amount of times. Automatically locks out a user from authenticating if this limit is passed. Set to 0 to disable.\n */\n maxLoginAttempts?: number\n /***\n * Set to true if you want to remove the token from the returned authentication API responses such as login or refresh.\n */\n removeTokenFromResponses?: true\n /**\n * Advanced - an array of custom authentification strategies to extend this collection's authentication with.\n * @link https://payloadcms.com/docs/authentication/custom-strategies\n */\n strategies?: AuthStrategy[]\n /**\n * Controls how many seconds the token will be valid for. Default is 2 hours.\n * @default 7200\n * @link https://payloadcms.com/docs/authentication/overview#config-options\n */\n tokenExpiration?: number\n /**\n * Payload Authentication provides for API keys to be set on each user within an Authentication-enabled Collection.\n * @default false\n * @link https://payloadcms.com/docs/authentication/api-keys\n */\n useAPIKey?: boolean\n\n /**\n * Use sessions for authentication. Enabled by default.\n * @default true\n */\n useSessions?: boolean\n\n /**\n * Set to true or pass an object with verification options to require users to verify by email before they are allowed to log into your app.\n * @link https://payloadcms.com/docs/authentication/email#email-verification\n */\n verify?:\n | {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n }\n | boolean\n}\n\nexport type VerifyConfig = {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n}\n\nexport interface Auth\n extends Omit<DeepRequired<IncomingAuthType>, 'forgotPassword' | 'loginWithUsername' | 'verify'> {\n forgotPassword?: {\n expiration?: number\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n loginWithUsername: false | LoginWithUsernameOptions\n verify?: boolean | VerifyConfig\n}\n\nexport function hasWhereAccessResult(result: boolean | Where): result is Where {\n return result && typeof result === 'object'\n}\n"],"names":["hasWhereAccessResult","result"],"mappings":"AAmUA,OAAO,SAASA,qBAAqBC,MAAuB;IAC1D,OAAOA,UAAU,OAAOA,WAAW;AACrC"}
1
+ {"version":3,"sources":["../../src/auth/types.ts"],"sourcesContent":["import type { CollectionSlug, GlobalSlug, Payload, User } from '../index.js'\nimport type { PayloadRequest, Where } from '../types/index.js'\n\n/**\n * A permission object that can be used to determine if a user has access to a specific operation.\n */\nexport type Permission = {\n permission: boolean\n where?: Where\n}\n\nexport type FieldsPermissions = {\n [fieldName: string]: FieldPermissions\n}\n\nexport type BlockPermissions = {\n create: Permission\n fields: FieldsPermissions\n read: Permission\n update: Permission\n}\n\nexport type SanitizedBlockPermissions =\n | {\n fields: SanitizedFieldsPermissions\n }\n | true\n\nexport type BlocksPermissions = {\n [blockSlug: string]: BlockPermissions\n}\n\nexport type SanitizedBlocksPermissions =\n | {\n [blockSlug: string]: SanitizedBlockPermissions\n }\n | true\n\nexport type FieldPermissions = {\n blocks?: BlocksPermissions\n create?: Permission\n fields?: FieldsPermissions\n read?: Permission\n update?: Permission\n}\n\nexport type SanitizedFieldPermissions =\n | {\n blocks?: SanitizedBlocksPermissions\n create: true\n fields?: SanitizedFieldsPermissions\n read: true\n update: true\n }\n | true\n\nexport type SanitizedFieldsPermissions =\n | {\n [fieldName: string]: SanitizedFieldPermissions\n }\n | true\n\nexport type CollectionPermission = {\n create?: Permission\n delete?: Permission\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n // Auth-enabled Collections only\n unlock?: Permission\n update?: Permission\n}\n\nexport type SanitizedCollectionPermission = {\n create?: true\n delete?: true\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n // Auth-enabled Collections only\n unlock?: true\n update?: true\n}\n\nexport type GlobalPermission = {\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n update?: Permission\n}\n\nexport type SanitizedGlobalPermission = {\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n update?: true\n}\n\nexport type DocumentPermissions = CollectionPermission | GlobalPermission\n\nexport type SanitizedDocumentPermissions = SanitizedCollectionPermission | SanitizedGlobalPermission\n\nexport type Permissions = {\n canAccessAdmin: boolean\n collections?: Record<CollectionSlug, CollectionPermission>\n globals?: Record<GlobalSlug, GlobalPermission>\n}\n\nexport type SanitizedPermissions = {\n canAccessAdmin?: boolean\n collections?: {\n [collectionSlug: string]: SanitizedCollectionPermission\n }\n globals?: {\n [globalSlug: string]: SanitizedGlobalPermission\n }\n}\n\n/**\n * Fields injected onto a user at authentication time. They are never stored in the database and\n * never present on a plain document read (e.g. `payload.findByID`) - only on the authenticated\n * user (`req.user`, login/auth/me results, auth strategies).\n */\nexport type AuthRuntimeFields = {\n /**\n * The session ID of the current request. May be present on request-authenticated users when\n * sessions are enabled.\n */\n _sid?: string\n /**\n * The name of the auth strategy that authenticated the request (e.g. `local-jwt`).\n */\n _strategy?: string\n}\n\n/**\n * Note: AuthenticatedUser still carries the write-only `password` from `User` (always `undefined` at runtime).\n * Stripping it cleanly isn't possible, because auth operations build the authenticated user\n * from a read `User` doc, so a `never`-typed `password` would break those assignments\n */\n/**\n * The signed-in user: the read user plus the runtime auth markers (`_strategy`, `_sid`). This is\n * what `req.user`, `payload.auth()`, the `me` operation, auth strategies, and `useAuth().user`\n * return.\n */\nexport type AuthenticatedUser = AuthRuntimeFields & User\n\nexport type UserSession = {\n createdAt?: Date | null | string\n expiresAt: Date | string\n id: string\n}\ntype GenerateVerifyEmailHTML<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateVerifyEmailSubject<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailHTML<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailSubject<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\nexport type AuthStrategyFunctionArgs = {\n /**\n * Specifies whether or not response headers can be set from this strategy.\n */\n canSetHeaders?: boolean\n headers: Request['headers']\n isGraphQL?: boolean\n payload: Payload\n /**\n * The AuthStrategy name property from the payload config.\n */\n strategyName?: string\n}\n\nexport type AuthStrategyResult = {\n responseHeaders?: Headers\n user: AuthenticatedUser | null\n}\n\nexport type AuthStrategyFunction = (\n args: AuthStrategyFunctionArgs,\n) => AuthStrategyResult | Promise<AuthStrategyResult>\nexport type AuthStrategy = {\n authenticate: AuthStrategyFunction\n name: string\n}\n\nexport type LoginWithUsernameOptions =\n | {\n allowEmailLogin?: false\n requireEmail?: boolean\n // If `allowEmailLogin` is false, `requireUsername` must be true (default: true)\n requireUsername?: true\n }\n | {\n allowEmailLogin?: true\n requireEmail?: boolean\n requireUsername?: boolean\n }\n\ntype AuthCookies = {\n domain?: string\n sameSite?: 'Lax' | 'None' | 'Strict' | boolean\n secure?: boolean\n}\n\nexport interface IncomingAuthType {\n /**\n * Set cookie options, including secure, sameSite, and domain. For advanced users.\n */\n cookies?: AuthCookies\n /**\n * How many levels deep a user document should be populated when creating the JWT and binding the user to the req. Defaults to 0 and should only be modified if absolutely necessary, as this will affect performance.\n * @default 0\n */\n depth?: number\n /**\n * Advanced - disable Payload's built-in local auth strategy. Only use this property if you have replaced Payload's auth mechanisms with your own.\n */\n disableLocalStrategy?:\n | {\n /**\n * Include auth fields on the collection even though the local strategy is disabled.\n * Useful when you do not want the database or types to vary depending on the auth configuration.\n */\n enableFields?: true\n optionalPassword?: true\n }\n | true\n /**\n * Customize the way that the forgotPassword operation functions.\n * @link https://payloadcms.com/docs/authentication/email#forgot-password\n */\n forgotPassword?: {\n /**\n * The number of milliseconds that the forgot password token should be valid for.\n * @default 3600000 // 1 hour\n */\n expiration?: number\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n /**\n * Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than maxLoginAttempts allows for.\n */\n lockTime?: number\n /**\n * Ability to allow users to login with username/password.\n *\n * @link https://payloadcms.com/docs/authentication/overview#login-with-username\n */\n loginWithUsername?: boolean | LoginWithUsernameOptions\n /**\n * Only allow a user to attempt logging in X amount of times. Automatically locks out a user from authenticating if this limit is passed. Set to 0 to disable.\n */\n maxLoginAttempts?: number\n /***\n * Set to true if you want to remove the token from the returned authentication API responses such as login or refresh.\n */\n removeTokenFromResponses?: true\n /**\n * Advanced - an array of custom authentification strategies to extend this collection's authentication with.\n * @link https://payloadcms.com/docs/authentication/custom-strategies\n */\n strategies?: AuthStrategy[]\n /**\n * Controls how many seconds the token will be valid for. Default is 2 hours.\n * @default 7200\n * @link https://payloadcms.com/docs/authentication/overview#config-options\n */\n tokenExpiration?: number\n /**\n * Payload Authentication provides for API keys to be set on each user within an Authentication-enabled Collection.\n * @default false\n * @link https://payloadcms.com/docs/authentication/api-keys\n */\n useAPIKey?: boolean\n\n /**\n * Use sessions for authentication. Enabled by default.\n * @default true\n */\n useSessions?: boolean\n\n /**\n * Set to true or pass an object with verification options to require users to verify by email before they are allowed to log into your app.\n * @link https://payloadcms.com/docs/authentication/email#email-verification\n */\n verify?:\n | {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n }\n | boolean\n}\n\nexport type VerifyConfig = {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n}\n\nexport interface Auth\n extends Omit<\n IncomingAuthType,\n | 'cookies'\n | 'forgotPassword'\n | 'lockTime'\n | 'loginWithUsername'\n | 'maxLoginAttempts'\n | 'strategies'\n | 'tokenExpiration'\n | 'useSessions'\n | 'verify'\n >,\n Required<\n Pick<\n IncomingAuthType,\n | 'forgotPassword'\n | 'lockTime'\n | 'maxLoginAttempts'\n | 'strategies'\n | 'tokenExpiration'\n | 'useSessions'\n | 'verify'\n >\n > {\n cookies: Pick<AuthCookies, 'domain'> & Required<Pick<AuthCookies, 'sameSite' | 'secure'>>\n loginWithUsername: false | Required<LoginWithUsernameOptions>\n}\n\nexport function hasWhereAccessResult(result: boolean | Where): result is Where {\n return result && typeof result === 'object'\n}\n"],"names":["hasWhereAccessResult","result"],"mappings":"AA0VA,OAAO,SAASA,qBAAqBC,MAAuB;IAC1D,OAAOA,UAAU,OAAOA,WAAW;AACrC"}
@@ -0,0 +1,22 @@
1
+ import type { CollectionAccess } from '../collections/config/types.js';
2
+ import type { Access } from '../config/types.js';
3
+ import type { GlobalAccess } from '../globals/config/types.js';
4
+ type CommonArgs = {
5
+ access?: Access;
6
+ slug: string;
7
+ };
8
+ type AdminAccess = NonNullable<CollectionAccess['admin']>;
9
+ type Args = ({
10
+ entityType: 'collection';
11
+ operation: Exclude<keyof CollectionAccess, 'admin'>;
12
+ } | {
13
+ entityType: 'global';
14
+ operation: keyof GlobalAccess;
15
+ }) & CommonArgs;
16
+ export declare const withBaseAccess: (options: Args) => Access;
17
+ export declare const withBaseAdminAccess: ({ slug, access, }: {
18
+ access?: AdminAccess;
19
+ slug: string;
20
+ }) => AdminAccess;
21
+ export {};
22
+ //# sourceMappingURL=withBaseAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withBaseAccess.d.ts","sourceRoot":"","sources":["../../src/auth/withBaseAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAA4B,MAAM,oBAAoB,CAAA;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AAEzD,KAAK,IAAI,GAAG,CACR;IACE,UAAU,EAAE,YAAY,CAAA;IACxB,SAAS,EAAE,OAAO,CAAC,MAAM,gBAAgB,EAAE,OAAO,CAAC,CAAA;CACpD,GACD;IACE,UAAU,EAAE,QAAQ,CAAA;IACpB,SAAS,EAAE,MAAM,YAAY,CAAA;CAC9B,CACJ,GACC,UAAU,CAAA;AAIZ,eAAO,MAAM,cAAc,YAAa,IAAI,KAAG,MAkD9C,CAAA;AAED,eAAO,MAAM,mBAAmB,sBAG7B;IACD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,WA2BH,CAAA"}