payload 4.0.0-internal.fa345ef → 4.0.0-internal.fec2230

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 (1289) hide show
  1. package/bin.js +14 -10
  2. package/dist/__testing__/predefinedMigration.d.ts +4 -3
  3. package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
  4. package/dist/admin/RichText.d.ts +1 -1
  5. package/dist/admin/RichText.d.ts.map +1 -1
  6. package/dist/admin/RichText.js.map +1 -1
  7. package/dist/admin/adapters/devReload.d.ts +13 -0
  8. package/dist/admin/adapters/devReload.d.ts.map +1 -1
  9. package/dist/admin/adapters/devReload.js +14 -1
  10. package/dist/admin/adapters/devReload.js.map +1 -1
  11. package/dist/admin/adapters/router.d.ts +8 -0
  12. package/dist/admin/adapters/router.d.ts.map +1 -1
  13. package/dist/admin/adapters/router.js.map +1 -1
  14. package/dist/admin/functions/index.d.ts +12 -10
  15. package/dist/admin/functions/index.d.ts.map +1 -1
  16. package/dist/admin/functions/index.js.map +1 -1
  17. package/dist/admin/types.d.ts +3 -3
  18. package/dist/admin/types.d.ts.map +1 -1
  19. package/dist/admin/types.js.map +1 -1
  20. package/dist/admin/views/index.d.ts +2 -2
  21. package/dist/admin/views/index.d.ts.map +1 -1
  22. package/dist/admin/views/index.js.map +1 -1
  23. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  24. package/dist/auth/baseFields/apiKey.js +16 -1
  25. package/dist/auth/baseFields/apiKey.js.map +1 -1
  26. package/dist/auth/cookies.d.ts +2 -2
  27. package/dist/auth/cookies.d.ts.map +1 -1
  28. package/dist/auth/crypto.d.ts +73 -2
  29. package/dist/auth/crypto.d.ts.map +1 -1
  30. package/dist/auth/crypto.js +90 -13
  31. package/dist/auth/crypto.js.map +1 -1
  32. package/dist/auth/defaultAccess.d.ts.map +1 -1
  33. package/dist/auth/endpoints/login.d.ts.map +1 -1
  34. package/dist/auth/endpoints/login.js +2 -11
  35. package/dist/auth/endpoints/login.js.map +1 -1
  36. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  37. package/dist/auth/endpoints/refresh.js +4 -6
  38. package/dist/auth/endpoints/refresh.js.map +1 -1
  39. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
  40. package/dist/auth/executeAccess.d.ts +2 -1
  41. package/dist/auth/executeAccess.d.ts.map +1 -1
  42. package/dist/auth/executeAccess.js +2 -1
  43. package/dist/auth/executeAccess.js.map +1 -1
  44. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  45. package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
  46. package/dist/auth/extractJWT.d.ts +1 -1
  47. package/dist/auth/extractJWT.d.ts.map +1 -1
  48. package/dist/auth/getAccessResults.js +1 -0
  49. package/dist/auth/getAccessResults.js.map +1 -1
  50. package/dist/auth/getAuthFields.d.ts.map +1 -1
  51. package/dist/auth/getFieldsToSign.d.ts +1 -1
  52. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  53. package/dist/auth/getLoginOptions.d.ts +1 -1
  54. package/dist/auth/getLoginOptions.d.ts.map +1 -1
  55. package/dist/auth/getLoginOptions.js.map +1 -1
  56. package/dist/auth/isUserLocked.d.ts.map +1 -1
  57. package/dist/auth/jwt.d.ts.map +1 -1
  58. package/dist/auth/loginWithCookie.d.ts +33 -0
  59. package/dist/auth/loginWithCookie.d.ts.map +1 -0
  60. package/dist/auth/loginWithCookie.js +34 -0
  61. package/dist/auth/loginWithCookie.js.map +1 -0
  62. package/dist/auth/operations/access.d.ts.map +1 -1
  63. package/dist/auth/operations/access.js +3 -9
  64. package/dist/auth/operations/access.js.map +1 -1
  65. package/dist/auth/operations/auth.d.ts.map +1 -1
  66. package/dist/auth/operations/auth.js +15 -21
  67. package/dist/auth/operations/auth.js.map +1 -1
  68. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  69. package/dist/auth/operations/init.d.ts.map +1 -1
  70. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  71. package/dist/auth/operations/login.d.ts.map +1 -1
  72. package/dist/auth/operations/logout.d.ts.map +1 -1
  73. package/dist/auth/operations/me.d.ts +2 -9
  74. package/dist/auth/operations/me.d.ts.map +1 -1
  75. package/dist/auth/operations/me.js +0 -6
  76. package/dist/auth/operations/me.js.map +1 -1
  77. package/dist/auth/operations/refresh.d.ts +0 -7
  78. package/dist/auth/operations/refresh.d.ts.map +1 -1
  79. package/dist/auth/operations/refresh.js +0 -6
  80. package/dist/auth/operations/refresh.js.map +1 -1
  81. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  82. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  83. package/dist/auth/operations/unlock.d.ts.map +1 -1
  84. package/dist/auth/operations/unlock.js +1 -0
  85. package/dist/auth/operations/unlock.js.map +1 -1
  86. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  87. package/dist/auth/rotateSecret.d.ts +51 -0
  88. package/dist/auth/rotateSecret.d.ts.map +1 -0
  89. package/dist/auth/rotateSecret.js +131 -0
  90. package/dist/auth/rotateSecret.js.map +1 -0
  91. package/dist/auth/serverFunctions/cookies.d.ts +47 -0
  92. package/dist/auth/serverFunctions/cookies.d.ts.map +1 -0
  93. package/dist/auth/serverFunctions/cookies.js +52 -0
  94. package/dist/auth/serverFunctions/cookies.js.map +1 -0
  95. package/dist/auth/serverFunctions/login.d.ts +29 -0
  96. package/dist/auth/serverFunctions/login.d.ts.map +1 -0
  97. package/dist/auth/serverFunctions/login.js +63 -0
  98. package/dist/auth/serverFunctions/login.js.map +1 -0
  99. package/dist/auth/serverFunctions/logout.d.ts +17 -0
  100. package/dist/auth/serverFunctions/logout.d.ts.map +1 -0
  101. package/dist/auth/serverFunctions/logout.js +58 -0
  102. package/dist/auth/serverFunctions/logout.js.map +1 -0
  103. package/dist/auth/serverFunctions/refresh.d.ts +17 -0
  104. package/dist/auth/serverFunctions/refresh.d.ts.map +1 -0
  105. package/dist/auth/serverFunctions/refresh.js +61 -0
  106. package/dist/auth/serverFunctions/refresh.js.map +1 -0
  107. package/dist/auth/sessions.d.ts.map +1 -1
  108. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  109. package/dist/auth/strategies/apiKey.js +5 -3
  110. package/dist/auth/strategies/apiKey.js.map +1 -1
  111. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  112. package/dist/auth/strategies/jwt.js +23 -2
  113. package/dist/auth/strategies/jwt.js.map +1 -1
  114. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  115. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  116. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  117. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  118. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  119. package/dist/auth/types.d.ts +13 -21
  120. package/dist/auth/types.d.ts.map +1 -1
  121. package/dist/auth/types.js.map +1 -1
  122. package/dist/auth/withBaseAccess.d.ts +22 -0
  123. package/dist/auth/withBaseAccess.d.ts.map +1 -0
  124. package/dist/auth/withBaseAccess.js +61 -0
  125. package/dist/auth/withBaseAccess.js.map +1 -0
  126. package/dist/cli/commands/build/build.d.ts +44 -0
  127. package/dist/cli/commands/build/build.d.ts.map +1 -0
  128. package/dist/cli/commands/build/build.js +225 -0
  129. package/dist/cli/commands/build/build.js.map +1 -0
  130. package/dist/cli/commands/build/build.spec.js +582 -0
  131. package/dist/cli/commands/build/build.spec.js.map +1 -0
  132. package/dist/cli/commands/build/index.d.ts +2 -0
  133. package/dist/cli/commands/build/index.d.ts.map +1 -0
  134. package/dist/cli/commands/build/index.js +26 -0
  135. package/dist/cli/commands/build/index.js.map +1 -0
  136. package/dist/cli/commands/collections/countDocuments.d.ts +2 -0
  137. package/dist/cli/commands/collections/countDocuments.d.ts.map +1 -0
  138. package/dist/cli/commands/collections/countDocuments.js +37 -0
  139. package/dist/cli/commands/collections/countDocuments.js.map +1 -0
  140. package/dist/cli/commands/collections/countVersions.d.ts +2 -0
  141. package/dist/cli/commands/collections/countVersions.d.ts.map +1 -0
  142. package/dist/cli/commands/collections/countVersions.js +36 -0
  143. package/dist/cli/commands/collections/countVersions.js.map +1 -0
  144. package/dist/cli/commands/collections/createDocuments.d.ts +2 -0
  145. package/dist/cli/commands/collections/createDocuments.d.ts.map +1 -0
  146. package/dist/cli/commands/collections/createDocuments.js +130 -0
  147. package/dist/cli/commands/collections/createDocuments.js.map +1 -0
  148. package/dist/cli/commands/collections/deleteDocuments.d.ts +2 -0
  149. package/dist/cli/commands/collections/deleteDocuments.d.ts.map +1 -0
  150. package/dist/cli/commands/collections/deleteDocuments.js +64 -0
  151. package/dist/cli/commands/collections/deleteDocuments.js.map +1 -0
  152. package/dist/cli/commands/collections/duplicateDocument.d.ts +2 -0
  153. package/dist/cli/commands/collections/duplicateDocument.d.ts.map +1 -0
  154. package/dist/cli/commands/collections/duplicateDocument.js +107 -0
  155. package/dist/cli/commands/collections/duplicateDocument.js.map +1 -0
  156. package/dist/cli/commands/collections/findDistinct.d.ts +2 -0
  157. package/dist/cli/commands/collections/findDistinct.d.ts.map +1 -0
  158. package/dist/cli/commands/collections/findDistinct.js +52 -0
  159. package/dist/cli/commands/collections/findDistinct.js.map +1 -0
  160. package/dist/cli/commands/collections/findDocuments.d.ts +2 -0
  161. package/dist/cli/commands/collections/findDocuments.d.ts.map +1 -0
  162. package/dist/cli/commands/collections/findDocuments.js +79 -0
  163. package/dist/cli/commands/collections/findDocuments.js.map +1 -0
  164. package/dist/cli/commands/collections/findVersionByID.d.ts +2 -0
  165. package/dist/cli/commands/collections/findVersionByID.d.ts.map +1 -0
  166. package/dist/cli/commands/collections/findVersionByID.js +48 -0
  167. package/dist/cli/commands/collections/findVersionByID.js.map +1 -0
  168. package/dist/cli/commands/collections/findVersions.d.ts +2 -0
  169. package/dist/cli/commands/collections/findVersions.d.ts.map +1 -0
  170. package/dist/cli/commands/collections/findVersions.js +57 -0
  171. package/dist/cli/commands/collections/findVersions.js.map +1 -0
  172. package/dist/cli/commands/collections/getCollectionSchema.d.ts +2 -0
  173. package/dist/cli/commands/collections/getCollectionSchema.d.ts.map +1 -0
  174. package/dist/cli/commands/collections/getCollectionSchema.js +49 -0
  175. package/dist/cli/commands/collections/getCollectionSchema.js.map +1 -0
  176. package/dist/cli/commands/collections/restoreVersion.d.ts +2 -0
  177. package/dist/cli/commands/collections/restoreVersion.d.ts.map +1 -0
  178. package/dist/cli/commands/collections/restoreVersion.js +47 -0
  179. package/dist/cli/commands/collections/restoreVersion.js.map +1 -0
  180. package/dist/cli/commands/collections/updateDocument.d.ts +2 -0
  181. package/dist/cli/commands/collections/updateDocument.d.ts.map +1 -0
  182. package/dist/cli/commands/collections/updateDocument.js +190 -0
  183. package/dist/cli/commands/collections/updateDocument.js.map +1 -0
  184. package/dist/cli/commands/data/input.d.ts +28 -0
  185. package/dist/cli/commands/data/input.d.ts.map +1 -0
  186. package/dist/cli/commands/data/input.js +76 -0
  187. package/dist/cli/commands/data/input.js.map +1 -0
  188. package/dist/cli/commands/data/utilities.d.ts +65 -0
  189. package/dist/cli/commands/data/utilities.d.ts.map +1 -0
  190. package/dist/cli/commands/data/utilities.js +67 -0
  191. package/dist/cli/commands/data/utilities.js.map +1 -0
  192. package/dist/cli/commands/generateDBSchema.d.ts +2 -0
  193. package/dist/cli/commands/generateDBSchema.d.ts.map +1 -0
  194. package/dist/cli/commands/generateDBSchema.js +29 -0
  195. package/dist/cli/commands/generateDBSchema.js.map +1 -0
  196. package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts +8 -0
  197. package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts.map +1 -0
  198. package/dist/cli/commands/generateImportMap/frameworkConventions.js +8 -0
  199. package/dist/cli/commands/generateImportMap/frameworkConventions.js.map +1 -0
  200. package/dist/{bin/generateImportMap/index.d.ts → cli/commands/generateImportMap/generateImportMap.d.ts} +8 -4
  201. package/dist/cli/commands/generateImportMap/generateImportMap.d.ts.map +1 -0
  202. package/dist/{bin/generateImportMap/index.js → cli/commands/generateImportMap/generateImportMap.js} +9 -4
  203. package/dist/cli/commands/generateImportMap/generateImportMap.js.map +1 -0
  204. package/dist/cli/commands/generateImportMap/generateImportMap.spec.js.map +1 -0
  205. package/dist/cli/commands/generateImportMap/index.d.ts +2 -0
  206. package/dist/cli/commands/generateImportMap/index.d.ts.map +1 -0
  207. package/dist/cli/commands/generateImportMap/index.js +18 -0
  208. package/dist/cli/commands/generateImportMap/index.js.map +1 -0
  209. package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.d.ts +3 -3
  210. package/dist/cli/commands/generateImportMap/iterateCollections.d.ts.map +1 -0
  211. package/dist/cli/commands/generateImportMap/iterateCollections.js.map +1 -0
  212. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.d.ts +2 -2
  213. package/dist/cli/commands/generateImportMap/iterateConfig.d.ts.map +1 -0
  214. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.js +1 -1
  215. package/dist/cli/commands/generateImportMap/iterateConfig.js.map +1 -0
  216. package/dist/{bin → cli/commands}/generateImportMap/iterateFields.d.ts +3 -3
  217. package/dist/cli/commands/generateImportMap/iterateFields.d.ts.map +1 -0
  218. package/dist/cli/commands/generateImportMap/iterateFields.js.map +1 -0
  219. package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.d.ts +3 -3
  220. package/dist/cli/commands/generateImportMap/iterateGlobals.d.ts.map +1 -0
  221. package/dist/cli/commands/generateImportMap/iterateGlobals.js.map +1 -0
  222. package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts +2 -2
  223. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +1 -0
  224. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +1 -0
  225. package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.d.ts +2 -2
  226. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -0
  227. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.js.map +1 -0
  228. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +1 -0
  229. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +1 -0
  230. package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.d.ts +1 -1
  231. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.d.ts.map +1 -0
  232. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.js.map +1 -0
  233. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -0
  234. package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.js +5 -4
  235. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -0
  236. package/dist/cli/commands/generateTypes.d.ts +12 -0
  237. package/dist/cli/commands/generateTypes.d.ts.map +1 -0
  238. package/dist/{bin → cli/commands}/generateTypes.js +33 -7
  239. package/dist/cli/commands/generateTypes.js.map +1 -0
  240. package/dist/cli/commands/getConfigInfo.d.ts +2 -0
  241. package/dist/cli/commands/getConfigInfo.d.ts.map +1 -0
  242. package/dist/cli/commands/getConfigInfo.js +23 -0
  243. package/dist/cli/commands/getConfigInfo.js.map +1 -0
  244. package/dist/cli/commands/globals/countGlobalVersions.d.ts +2 -0
  245. package/dist/cli/commands/globals/countGlobalVersions.d.ts.map +1 -0
  246. package/dist/cli/commands/globals/countGlobalVersions.js +36 -0
  247. package/dist/cli/commands/globals/countGlobalVersions.js.map +1 -0
  248. package/dist/cli/commands/globals/findGlobal.d.ts +2 -0
  249. package/dist/cli/commands/globals/findGlobal.d.ts.map +1 -0
  250. package/dist/cli/commands/globals/findGlobal.js +42 -0
  251. package/dist/cli/commands/globals/findGlobal.js.map +1 -0
  252. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts +2 -0
  253. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts.map +1 -0
  254. package/dist/cli/commands/globals/findGlobalVersionByID.js +46 -0
  255. package/dist/cli/commands/globals/findGlobalVersionByID.js.map +1 -0
  256. package/dist/cli/commands/globals/findGlobalVersions.d.ts +2 -0
  257. package/dist/cli/commands/globals/findGlobalVersions.d.ts.map +1 -0
  258. package/dist/cli/commands/globals/findGlobalVersions.js +55 -0
  259. package/dist/cli/commands/globals/findGlobalVersions.js.map +1 -0
  260. package/dist/cli/commands/globals/getGlobalSchema.d.ts +2 -0
  261. package/dist/cli/commands/globals/getGlobalSchema.d.ts.map +1 -0
  262. package/dist/cli/commands/globals/getGlobalSchema.js +34 -0
  263. package/dist/cli/commands/globals/getGlobalSchema.js.map +1 -0
  264. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts +2 -0
  265. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts.map +1 -0
  266. package/dist/cli/commands/globals/restoreGlobalVersion.js +46 -0
  267. package/dist/cli/commands/globals/restoreGlobalVersion.js.map +1 -0
  268. package/dist/cli/commands/globals/updateGlobal.d.ts +2 -0
  269. package/dist/cli/commands/globals/updateGlobal.d.ts.map +1 -0
  270. package/dist/cli/commands/globals/updateGlobal.js +93 -0
  271. package/dist/cli/commands/globals/updateGlobal.js.map +1 -0
  272. package/dist/cli/commands/help.d.ts +2 -0
  273. package/dist/cli/commands/help.d.ts.map +1 -0
  274. package/dist/cli/commands/help.js +42 -0
  275. package/dist/cli/commands/help.js.map +1 -0
  276. package/dist/cli/commands/info.d.ts +2 -0
  277. package/dist/cli/commands/info.d.ts.map +1 -0
  278. package/dist/cli/commands/info.js +78 -0
  279. package/dist/cli/commands/info.js.map +1 -0
  280. package/dist/cli/commands/jobs/handleSchedules.d.ts +2 -0
  281. package/dist/cli/commands/jobs/handleSchedules.d.ts.map +1 -0
  282. package/dist/cli/commands/jobs/handleSchedules.js +17 -0
  283. package/dist/cli/commands/jobs/handleSchedules.js.map +1 -0
  284. package/dist/cli/commands/jobs/run.d.ts +2 -0
  285. package/dist/cli/commands/jobs/run.d.ts.map +1 -0
  286. package/dist/cli/commands/jobs/run.js +29 -0
  287. package/dist/cli/commands/jobs/run.js.map +1 -0
  288. package/dist/cli/commands/migrate/create.d.ts +2 -0
  289. package/dist/cli/commands/migrate/create.d.ts.map +1 -0
  290. package/dist/cli/commands/migrate/create.js +44 -0
  291. package/dist/cli/commands/migrate/create.js.map +1 -0
  292. package/dist/cli/commands/migrate/down.d.ts +2 -0
  293. package/dist/cli/commands/migrate/down.d.ts.map +1 -0
  294. package/dist/cli/commands/migrate/down.js +22 -0
  295. package/dist/cli/commands/migrate/down.js.map +1 -0
  296. package/dist/cli/commands/migrate/fresh.d.ts +2 -0
  297. package/dist/cli/commands/migrate/fresh.d.ts.map +1 -0
  298. package/dist/cli/commands/migrate/fresh.js +28 -0
  299. package/dist/cli/commands/migrate/fresh.js.map +1 -0
  300. package/dist/cli/commands/migrate/initialize.d.ts +11 -0
  301. package/dist/cli/commands/migrate/initialize.d.ts.map +1 -0
  302. package/dist/cli/commands/migrate/initialize.js +17 -0
  303. package/dist/cli/commands/migrate/initialize.js.map +1 -0
  304. package/dist/cli/commands/migrate/refresh.d.ts +2 -0
  305. package/dist/cli/commands/migrate/refresh.d.ts.map +1 -0
  306. package/dist/cli/commands/migrate/refresh.js +22 -0
  307. package/dist/cli/commands/migrate/refresh.js.map +1 -0
  308. package/dist/cli/commands/migrate/reset.d.ts +2 -0
  309. package/dist/cli/commands/migrate/reset.d.ts.map +1 -0
  310. package/dist/cli/commands/migrate/reset.js +22 -0
  311. package/dist/cli/commands/migrate/reset.js.map +1 -0
  312. package/dist/cli/commands/migrate/run.d.ts +2 -0
  313. package/dist/cli/commands/migrate/run.d.ts.map +1 -0
  314. package/dist/cli/commands/migrate/run.js +28 -0
  315. package/dist/cli/commands/migrate/run.js.map +1 -0
  316. package/dist/cli/commands/migrate/status.d.ts +2 -0
  317. package/dist/cli/commands/migrate/status.d.ts.map +1 -0
  318. package/dist/cli/commands/migrate/status.js +22 -0
  319. package/dist/cli/commands/migrate/status.js.map +1 -0
  320. package/dist/cli/commands/run.d.ts +2 -0
  321. package/dist/cli/commands/run.d.ts.map +1 -0
  322. package/dist/cli/commands/run.js +45 -0
  323. package/dist/cli/commands/run.js.map +1 -0
  324. package/dist/cli/defineCLICommand.d.ts +32 -0
  325. package/dist/cli/defineCLICommand.d.ts.map +1 -0
  326. package/dist/cli/defineCLICommand.js +26 -0
  327. package/dist/cli/defineCLICommand.js.map +1 -0
  328. package/dist/cli/index.d.ts +7 -0
  329. package/dist/cli/index.d.ts.map +1 -0
  330. package/dist/cli/index.js +95 -0
  331. package/dist/cli/index.js.map +1 -0
  332. package/dist/cli/index.spec.js +402 -0
  333. package/dist/cli/index.spec.js.map +1 -0
  334. package/dist/cli/program/createHelp.d.ts +8 -0
  335. package/dist/cli/program/createHelp.d.ts.map +1 -0
  336. package/dist/cli/program/createHelp.js +26 -0
  337. package/dist/cli/program/createHelp.js.map +1 -0
  338. package/dist/cli/program/loadCommands.d.ts +12 -0
  339. package/dist/cli/program/loadCommands.d.ts.map +1 -0
  340. package/dist/cli/program/loadCommands.js +62 -0
  341. package/dist/cli/program/loadCommands.js.map +1 -0
  342. package/dist/cli/program/normalizeHelpArguments.d.ts +12 -0
  343. package/dist/cli/program/normalizeHelpArguments.d.ts.map +1 -0
  344. package/dist/cli/program/normalizeHelpArguments.js +34 -0
  345. package/dist/cli/program/normalizeHelpArguments.js.map +1 -0
  346. package/dist/cli/program/registerCommand.d.ts +10 -0
  347. package/dist/cli/program/registerCommand.d.ts.map +1 -0
  348. package/dist/cli/program/registerCommand.js +185 -0
  349. package/dist/cli/program/registerCommand.js.map +1 -0
  350. package/dist/cli/runtime/createRuntime.d.ts +9 -0
  351. package/dist/cli/runtime/createRuntime.d.ts.map +1 -0
  352. package/dist/cli/runtime/createRuntime.js +81 -0
  353. package/dist/cli/runtime/createRuntime.js.map +1 -0
  354. package/dist/cli/runtime/getCommandInput.d.ts +17 -0
  355. package/dist/cli/runtime/getCommandInput.d.ts.map +1 -0
  356. package/dist/cli/runtime/getCommandInput.js +86 -0
  357. package/dist/cli/runtime/getCommandInput.js.map +1 -0
  358. package/dist/cli/runtime/getCommandInput.spec.js +74 -0
  359. package/dist/cli/runtime/getCommandInput.spec.js.map +1 -0
  360. package/dist/cli/runtime/invokeCommand.d.ts +23 -0
  361. package/dist/cli/runtime/invokeCommand.d.ts.map +1 -0
  362. package/dist/cli/runtime/invokeCommand.js +107 -0
  363. package/dist/cli/runtime/invokeCommand.js.map +1 -0
  364. package/dist/cli/runtime/loadEnv.d.ts.map +1 -0
  365. package/dist/{bin → cli/runtime}/loadEnv.js +1 -1
  366. package/dist/cli/runtime/loadEnv.js.map +1 -0
  367. package/dist/cli/runtime/output.d.ts +50 -0
  368. package/dist/cli/runtime/output.d.ts.map +1 -0
  369. package/dist/cli/runtime/output.js +125 -0
  370. package/dist/cli/runtime/output.js.map +1 -0
  371. package/dist/cli/runtime/redirectOutputToStderr.d.ts +8 -0
  372. package/dist/cli/runtime/redirectOutputToStderr.d.ts.map +1 -0
  373. package/dist/cli/runtime/redirectOutputToStderr.js +31 -0
  374. package/dist/cli/runtime/redirectOutputToStderr.js.map +1 -0
  375. package/dist/collections/config/client.d.ts +11 -5
  376. package/dist/collections/config/client.d.ts.map +1 -1
  377. package/dist/collections/config/client.js +6 -1
  378. package/dist/collections/config/client.js.map +1 -1
  379. package/dist/collections/config/defaults.d.ts +4 -4
  380. package/dist/collections/config/defaults.d.ts.map +1 -1
  381. package/dist/collections/config/defaults.js +37 -32
  382. package/dist/collections/config/defaults.js.map +1 -1
  383. package/dist/collections/config/sanitize.d.ts +4 -8
  384. package/dist/collections/config/sanitize.d.ts.map +1 -1
  385. package/dist/collections/config/sanitize.js +31 -21
  386. package/dist/collections/config/sanitize.js.map +1 -1
  387. package/dist/collections/config/sanitize.spec.js +363 -1
  388. package/dist/collections/config/sanitize.spec.js.map +1 -1
  389. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  390. package/dist/collections/config/types.d.ts +56 -51
  391. package/dist/collections/config/types.d.ts.map +1 -1
  392. package/dist/collections/config/types.js.map +1 -1
  393. package/dist/collections/config/useAsTitle.d.ts.map +1 -1
  394. package/dist/collections/config/useAsTitle.spec.js +27 -27
  395. package/dist/collections/config/useAsTitle.spec.js.map +1 -1
  396. package/dist/collections/dataloader.d.ts +1 -1
  397. package/dist/collections/dataloader.d.ts.map +1 -1
  398. package/dist/collections/operations/count.d.ts.map +1 -1
  399. package/dist/collections/operations/count.js +65 -70
  400. package/dist/collections/operations/count.js.map +1 -1
  401. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  402. package/dist/collections/operations/countVersions.js +61 -66
  403. package/dist/collections/operations/countVersions.js.map +1 -1
  404. package/dist/collections/operations/create.d.ts.map +1 -1
  405. package/dist/collections/operations/create.js +22 -0
  406. package/dist/collections/operations/create.js.map +1 -1
  407. package/dist/collections/operations/delete.d.ts.map +1 -1
  408. package/dist/collections/operations/delete.js +215 -129
  409. package/dist/collections/operations/delete.js.map +1 -1
  410. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  411. package/dist/collections/operations/deleteByID.js +1 -0
  412. package/dist/collections/operations/deleteByID.js.map +1 -1
  413. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  414. package/dist/collections/operations/docAccess.js +19 -25
  415. package/dist/collections/operations/docAccess.js.map +1 -1
  416. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  417. package/dist/collections/operations/find.d.ts.map +1 -1
  418. package/dist/collections/operations/find.js +248 -246
  419. package/dist/collections/operations/find.js.map +1 -1
  420. package/dist/collections/operations/findByID.d.ts.map +1 -1
  421. package/dist/collections/operations/findByID.js +215 -220
  422. package/dist/collections/operations/findByID.js.map +1 -1
  423. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  424. package/dist/collections/operations/findDistinct.js +161 -159
  425. package/dist/collections/operations/findDistinct.js.map +1 -1
  426. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  427. package/dist/collections/operations/findVersionByID.js +131 -136
  428. package/dist/collections/operations/findVersionByID.js.map +1 -1
  429. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  430. package/dist/collections/operations/findVersions.js +152 -149
  431. package/dist/collections/operations/findVersions.js.map +1 -1
  432. package/dist/collections/operations/inputSchemas.d.ts +877 -0
  433. package/dist/collections/operations/inputSchemas.d.ts.map +1 -0
  434. package/dist/collections/operations/inputSchemas.js +217 -0
  435. package/dist/collections/operations/inputSchemas.js.map +1 -0
  436. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  437. package/dist/collections/operations/restoreVersion.js +8 -4
  438. package/dist/collections/operations/restoreVersion.js.map +1 -1
  439. package/dist/collections/operations/update.d.ts.map +1 -1
  440. package/dist/collections/operations/update.js +20 -1
  441. package/dist/collections/operations/update.js.map +1 -1
  442. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  443. package/dist/collections/operations/updateByID.js +13 -0
  444. package/dist/collections/operations/updateByID.js.map +1 -1
  445. package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
  446. package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
  447. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -1
  448. package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
  449. package/dist/collections/operations/utilities/types.d.ts +20 -20
  450. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  451. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  452. package/dist/config/build.js +1 -1
  453. package/dist/config/build.js.map +1 -1
  454. package/dist/config/client.d.ts +2 -2
  455. package/dist/config/client.d.ts.map +1 -1
  456. package/dist/config/client.js +2 -1
  457. package/dist/config/client.js.map +1 -1
  458. package/dist/config/client.spec.js +20 -0
  459. package/dist/config/client.spec.js.map +1 -0
  460. package/dist/config/defaults.d.ts.map +1 -1
  461. package/dist/config/defaults.js +95 -42
  462. package/dist/config/defaults.js.map +1 -1
  463. package/dist/config/orderable/fractional-indexing.d.ts +23 -23
  464. package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
  465. package/dist/config/orderable/index.d.ts +1 -1
  466. package/dist/config/orderable/index.d.ts.map +1 -1
  467. package/dist/config/orderable/index.js +3 -2
  468. package/dist/config/orderable/index.js.map +1 -1
  469. package/dist/config/sanitize.d.ts +1 -1
  470. package/dist/config/sanitize.d.ts.map +1 -1
  471. package/dist/config/sanitize.js +42 -32
  472. package/dist/config/sanitize.js.map +1 -1
  473. package/dist/config/sanitize.spec.js +105 -0
  474. package/dist/config/sanitize.spec.js.map +1 -0
  475. package/dist/config/types.d.ts +495 -421
  476. package/dist/config/types.d.ts.map +1 -1
  477. package/dist/config/types.js.map +1 -1
  478. package/dist/database/combineQueries.d.ts.map +1 -1
  479. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  480. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  481. package/dist/database/createDatabaseAdapter.js +0 -2
  482. package/dist/database/createDatabaseAdapter.js.map +1 -1
  483. package/dist/database/isNestedRelationshipQuery.d.ts +14 -0
  484. package/dist/database/isNestedRelationshipQuery.d.ts.map +1 -0
  485. package/dist/database/isNestedRelationshipQuery.js +19 -0
  486. package/dist/database/isNestedRelationshipQuery.js.map +1 -0
  487. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  488. package/dist/database/migrations/createMigration.js +4 -0
  489. package/dist/database/migrations/createMigration.js.map +1 -1
  490. package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
  491. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  492. package/dist/database/migrations/getPredefinedMigration.js +2 -2
  493. package/dist/database/migrations/getPredefinedMigration.js.map +1 -1
  494. package/dist/database/migrations/migrate.d.ts.map +1 -1
  495. package/dist/database/migrations/migrate.js +9 -0
  496. package/dist/database/migrations/migrate.js.map +1 -1
  497. package/dist/database/migrations/migrateDown.d.ts +2 -2
  498. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  499. package/dist/database/migrations/migrateDown.js +12 -2
  500. package/dist/database/migrations/migrateDown.js.map +1 -1
  501. package/dist/database/migrations/migrateRefresh.d.ts +2 -2
  502. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  503. package/dist/database/migrations/migrateRefresh.js +10 -2
  504. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  505. package/dist/database/migrations/migrateReset.d.ts +2 -2
  506. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  507. package/dist/database/migrations/migrateReset.js +11 -1
  508. package/dist/database/migrations/migrateReset.js.map +1 -1
  509. package/dist/database/migrations/migrateStatus.d.ts +2 -2
  510. package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
  511. package/dist/database/migrations/migrateStatus.js +11 -6
  512. package/dist/database/migrations/migrateStatus.js.map +1 -1
  513. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  514. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
  515. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  516. package/dist/database/queryValidation/validateQueryPaths.js +8 -1
  517. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  518. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  519. package/dist/database/queryValidation/validateSearchParams.js +21 -4
  520. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  521. package/dist/database/queryValidation/validateSortQuery.d.ts +23 -0
  522. package/dist/database/queryValidation/validateSortQuery.d.ts.map +1 -0
  523. package/dist/database/queryValidation/validateSortQuery.js +54 -0
  524. package/dist/database/queryValidation/validateSortQuery.js.map +1 -0
  525. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  526. package/dist/database/sanitizeJoinQuery.js +7 -0
  527. package/dist/database/sanitizeJoinQuery.js.map +1 -1
  528. package/dist/database/sanitizeWhereQuery.d.ts +1 -1
  529. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  530. package/dist/database/sanitizeWhereQuery.js +44 -1
  531. package/dist/database/sanitizeWhereQuery.js.map +1 -1
  532. package/dist/database/types.d.ts +37 -13
  533. package/dist/database/types.d.ts.map +1 -1
  534. package/dist/database/types.js.map +1 -1
  535. package/dist/duplicateDocument/index.d.ts.map +1 -1
  536. package/dist/duplicateDocument/index.js +1 -0
  537. package/dist/duplicateDocument/index.js.map +1 -1
  538. package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
  539. package/dist/errors/APIError.d.ts.map +1 -1
  540. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  541. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  542. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  543. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  544. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  545. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  546. package/dist/errors/FileUploadError.d.ts.map +1 -1
  547. package/dist/errors/Forbidden.d.ts.map +1 -1
  548. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  549. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  550. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  551. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  552. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  553. package/dist/errors/Locked.d.ts.map +1 -1
  554. package/dist/errors/LockedAuth.d.ts.map +1 -1
  555. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  556. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  557. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  558. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  559. package/dist/errors/MissingFile.d.ts.map +1 -1
  560. package/dist/errors/NotFound.d.ts.map +1 -1
  561. package/dist/errors/QueryError.d.ts.map +1 -1
  562. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  563. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  564. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  565. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  566. package/dist/errors/ValidationError.d.ts.map +1 -1
  567. package/dist/exports/auth.d.ts +5 -0
  568. package/dist/exports/auth.d.ts.map +1 -0
  569. package/dist/exports/auth.js +6 -0
  570. package/dist/exports/auth.js.map +1 -0
  571. package/dist/exports/cli.d.ts +4 -0
  572. package/dist/exports/cli.d.ts.map +1 -0
  573. package/dist/exports/cli.js +4 -0
  574. package/dist/exports/cli.js.map +1 -0
  575. package/dist/exports/cliBuiltin.d.ts +37 -0
  576. package/dist/exports/cliBuiltin.d.ts.map +1 -0
  577. package/dist/exports/cliBuiltin.js +38 -0
  578. package/dist/exports/cliBuiltin.js.map +1 -0
  579. package/dist/exports/internal.d.ts +9 -1
  580. package/dist/exports/internal.d.ts.map +1 -1
  581. package/dist/exports/internal.js +8 -1
  582. package/dist/exports/internal.js.map +1 -1
  583. package/dist/exports/node.d.ts +2 -2
  584. package/dist/exports/node.d.ts.map +1 -1
  585. package/dist/exports/node.js +2 -2
  586. package/dist/exports/node.js.map +1 -1
  587. package/dist/exports/shared.d.ts +6 -4
  588. package/dist/exports/shared.d.ts.map +1 -1
  589. package/dist/exports/shared.js +4 -3
  590. package/dist/exports/shared.js.map +1 -1
  591. package/dist/fields/baseFields/slug/duplicateContext.d.ts +11 -0
  592. package/dist/fields/baseFields/slug/duplicateContext.d.ts.map +1 -0
  593. package/dist/fields/baseFields/slug/duplicateContext.js +21 -0
  594. package/dist/fields/baseFields/slug/duplicateContext.js.map +1 -0
  595. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts +23 -0
  596. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts.map +1 -0
  597. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js +65 -0
  598. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js.map +1 -0
  599. package/dist/fields/baseFields/slug/generateSlug.d.ts +19 -7
  600. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  601. package/dist/fields/baseFields/slug/generateSlug.js +111 -74
  602. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  603. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts +18 -0
  604. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts.map +1 -0
  605. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js +20 -0
  606. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js.map +1 -0
  607. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts +23 -0
  608. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts.map +1 -0
  609. package/dist/fields/baseFields/slug/getSlugFallbackValue.js +24 -0
  610. package/dist/fields/baseFields/slug/getSlugFallbackValue.js.map +1 -0
  611. package/dist/fields/baseFields/slug/hasValue.d.ts +3 -0
  612. package/dist/fields/baseFields/slug/hasValue.d.ts.map +1 -0
  613. package/dist/fields/baseFields/slug/hasValue.js +3 -0
  614. package/dist/fields/baseFields/slug/hasValue.js.map +1 -0
  615. package/dist/fields/baseFields/slug/types.d.ts +14 -0
  616. package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
  617. package/dist/fields/baseFields/slug/types.js +6 -0
  618. package/dist/fields/baseFields/slug/types.js.map +1 -0
  619. package/dist/fields/config/client.d.ts +5 -5
  620. package/dist/fields/config/client.d.ts.map +1 -1
  621. package/dist/fields/config/client.js +3 -2
  622. package/dist/fields/config/client.js.map +1 -1
  623. package/dist/fields/config/reservedFieldNames.spec.js +18 -18
  624. package/dist/fields/config/reservedFieldNames.spec.js.map +1 -1
  625. package/dist/fields/config/sanitize.d.ts +6 -6
  626. package/dist/fields/config/sanitize.d.ts.map +1 -1
  627. package/dist/fields/config/sanitize.js +68 -19
  628. package/dist/fields/config/sanitize.js.map +1 -1
  629. package/dist/fields/config/sanitize.spec.js +105 -105
  630. package/dist/fields/config/sanitize.spec.js.map +1 -1
  631. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  632. package/dist/fields/config/types.d.ts +37 -11
  633. package/dist/fields/config/types.d.ts.map +1 -1
  634. package/dist/fields/config/types.js +1 -1
  635. package/dist/fields/config/types.js.map +1 -1
  636. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  637. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  638. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  639. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  640. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  641. package/dist/fields/hooks/afterRead/promise.js +1 -0
  642. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  643. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  644. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  645. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  646. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  647. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  648. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  649. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  650. package/dist/fields/hooks/beforeChange/promise.js +1 -0
  651. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  652. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  653. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
  654. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  655. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
  656. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  657. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  658. package/dist/fields/hooks/beforeValidate/promise.js +5 -3
  659. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  660. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts +10 -0
  661. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts.map +1 -0
  662. package/dist/fields/hooks/beforeValidate/stripNullRows.js +18 -0
  663. package/dist/fields/hooks/beforeValidate/stripNullRows.js.map +1 -0
  664. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  665. package/dist/fields/hooks/beforeValidate/traverseFields.js +2 -0
  666. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  667. package/dist/fields/isFieldDisabled.d.ts.map +1 -1
  668. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  669. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
  670. package/dist/fields/setDefaultBeforeDuplicate.js +1 -0
  671. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  672. package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
  673. package/dist/fields/sortableFieldTypes.js +1 -0
  674. package/dist/fields/sortableFieldTypes.js.map +1 -1
  675. package/dist/fields/validations.d.ts +4 -1
  676. package/dist/fields/validations.d.ts.map +1 -1
  677. package/dist/fields/validations.js +8 -2
  678. package/dist/fields/validations.js.map +1 -1
  679. package/dist/fields/validations.spec.js +61 -37
  680. package/dist/fields/validations.spec.js.map +1 -1
  681. package/dist/globals/config/client.d.ts +5 -5
  682. package/dist/globals/config/client.d.ts.map +1 -1
  683. package/dist/globals/config/client.js.map +1 -1
  684. package/dist/globals/config/sanitize.d.ts +3 -7
  685. package/dist/globals/config/sanitize.d.ts.map +1 -1
  686. package/dist/globals/config/sanitize.js +26 -6
  687. package/dist/globals/config/sanitize.js.map +1 -1
  688. package/dist/globals/config/sanitize.spec.js +227 -8
  689. package/dist/globals/config/sanitize.spec.js.map +1 -1
  690. package/dist/globals/config/types.d.ts +21 -16
  691. package/dist/globals/config/types.d.ts.map +1 -1
  692. package/dist/globals/config/types.js.map +1 -1
  693. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  694. package/dist/globals/operations/countGlobalVersions.js +51 -55
  695. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  696. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  697. package/dist/globals/operations/docAccess.js +19 -25
  698. package/dist/globals/operations/docAccess.js.map +1 -1
  699. package/dist/globals/operations/findOne.d.ts.map +1 -1
  700. package/dist/globals/operations/findOne.js +169 -174
  701. package/dist/globals/operations/findOne.js.map +1 -1
  702. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  703. package/dist/globals/operations/findVersionByID.js +104 -109
  704. package/dist/globals/operations/findVersionByID.js.map +1 -1
  705. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  706. package/dist/globals/operations/findVersions.js +112 -109
  707. package/dist/globals/operations/findVersions.js.map +1 -1
  708. package/dist/globals/operations/inputSchemas.d.ts +365 -0
  709. package/dist/globals/operations/inputSchemas.d.ts.map +1 -0
  710. package/dist/globals/operations/inputSchemas.js +104 -0
  711. package/dist/globals/operations/inputSchemas.js.map +1 -0
  712. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  713. package/dist/globals/operations/restoreVersion.js +1 -0
  714. package/dist/globals/operations/restoreVersion.js.map +1 -1
  715. package/dist/globals/operations/update.d.ts.map +1 -1
  716. package/dist/globals/operations/update.js +1 -0
  717. package/dist/globals/operations/update.js.map +1 -1
  718. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  719. package/dist/hierarchy/addHierarchyToCollection.js +2 -0
  720. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  721. package/dist/hierarchy/buildParentField.d.ts.map +1 -1
  722. package/dist/hierarchy/constants.d.ts.map +1 -1
  723. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  724. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  725. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
  726. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
  727. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  728. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
  729. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  730. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
  731. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
  732. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
  733. package/dist/index.bundled.d.ts +5889 -4239
  734. package/dist/index.d.ts +102 -44
  735. package/dist/index.d.ts.map +1 -1
  736. package/dist/index.js +84 -64
  737. package/dist/index.js.map +1 -1
  738. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  739. package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
  740. package/dist/locked-documents/config.d.ts.map +1 -1
  741. package/dist/preferences/config.d.ts.map +1 -1
  742. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  743. package/dist/preferences/keys.d.ts +5 -5
  744. package/dist/preferences/keys.d.ts.map +1 -1
  745. package/dist/query-presets/access.d.ts.map +1 -1
  746. package/dist/query-presets/config.d.ts.map +1 -1
  747. package/dist/query-presets/constraints.d.ts.map +1 -1
  748. package/dist/query-presets/constraints.js +1 -1
  749. package/dist/query-presets/constraints.js.map +1 -1
  750. package/dist/query-presets/types.d.ts +1 -1
  751. package/dist/query-presets/types.d.ts.map +1 -1
  752. package/dist/queues/config/collection.d.ts.map +1 -1
  753. package/dist/queues/config/collection.js +43 -43
  754. package/dist/queues/config/collection.js.map +1 -1
  755. package/dist/queues/config/global.d.ts +5 -6
  756. package/dist/queues/config/global.d.ts.map +1 -1
  757. package/dist/queues/config/global.js +1 -1
  758. package/dist/queues/config/global.js.map +1 -1
  759. package/dist/queues/config/types/index.d.ts +31 -24
  760. package/dist/queues/config/types/index.d.ts.map +1 -1
  761. package/dist/queues/config/types/index.js.map +1 -1
  762. package/dist/queues/config/types/taskTypes.d.ts +4 -7
  763. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  764. package/dist/queues/config/types/taskTypes.js.map +1 -1
  765. package/dist/queues/config/types/workflowJSONTypes.d.ts +10 -9
  766. package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -1
  767. package/dist/queues/config/types/workflowJSONTypes.js.map +1 -1
  768. package/dist/queues/config/types/workflowTypes.d.ts +11 -58
  769. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
  770. package/dist/queues/config/types/workflowTypes.js.map +1 -1
  771. package/dist/queues/endpoints/handleSchedules.d.ts.map +1 -1
  772. package/dist/queues/endpoints/handleSchedules.js +3 -2
  773. package/dist/queues/endpoints/handleSchedules.js.map +1 -1
  774. package/dist/queues/endpoints/run.d.ts.map +1 -1
  775. package/dist/queues/endpoints/run.js +2 -1
  776. package/dist/queues/endpoints/run.js.map +1 -1
  777. package/dist/queues/errors/handleTaskError.js +4 -4
  778. package/dist/queues/errors/handleTaskError.js.map +1 -1
  779. package/dist/queues/errors/handleWorkflowError.js +1 -1
  780. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  781. package/dist/queues/errors/index.d.ts +6 -0
  782. package/dist/queues/errors/index.d.ts.map +1 -1
  783. package/dist/queues/errors/index.js +5 -0
  784. package/dist/queues/errors/index.js.map +1 -1
  785. package/dist/queues/localAPI.d.ts +9 -9
  786. package/dist/queues/localAPI.d.ts.map +1 -1
  787. package/dist/queues/localAPI.js +63 -66
  788. package/dist/queues/localAPI.js.map +1 -1
  789. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts +4 -4
  790. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts.map +1 -1
  791. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.js.map +1 -1
  792. package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
  793. package/dist/queues/operations/handleSchedules/index.d.ts +1 -1
  794. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  795. package/dist/queues/operations/handleSchedules/index.js +1 -1
  796. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  797. package/dist/queues/operations/runJobs/heartbeat.d.ts +13 -0
  798. package/dist/queues/operations/runJobs/heartbeat.d.ts.map +1 -0
  799. package/dist/queues/operations/runJobs/heartbeat.js +66 -0
  800. package/dist/queues/operations/runJobs/heartbeat.js.map +1 -0
  801. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  802. package/dist/queues/operations/runJobs/index.js +133 -84
  803. package/dist/queues/operations/runJobs/index.js.map +1 -1
  804. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  805. package/dist/queues/operations/runJobs/runJSONJob/index.js +6 -3
  806. package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -1
  807. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  808. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +5 -5
  809. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  810. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +2 -1
  811. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  812. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +39 -8
  813. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  814. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
  815. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
  816. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -1
  817. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  818. package/dist/queues/operations/runJobs/runJob/index.js +4 -4
  819. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
  820. package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
  821. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  822. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  823. package/dist/queues/utilities/updateJob.js +3 -0
  824. package/dist/queues/utilities/updateJob.js.map +1 -1
  825. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  826. package/dist/types/constants.d.ts +23 -2
  827. package/dist/types/constants.d.ts.map +1 -1
  828. package/dist/types/constants.js +23 -0
  829. package/dist/types/constants.js.map +1 -1
  830. package/dist/types/index.d.ts +4 -7
  831. package/dist/types/index.d.ts.map +1 -1
  832. package/dist/types/index.js.map +1 -1
  833. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  834. package/dist/uploads/checkFileAccess.js +1 -0
  835. package/dist/uploads/checkFileAccess.js.map +1 -1
  836. package/dist/uploads/checkFileRestrictions.d.ts +1 -1
  837. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  838. package/dist/uploads/checkFileRestrictions.js +15 -1
  839. package/dist/uploads/checkFileRestrictions.js.map +1 -1
  840. package/dist/uploads/cropImage.d.ts +1 -1
  841. package/dist/uploads/cropImage.d.ts.map +1 -1
  842. package/dist/uploads/cropImage.js +2 -5
  843. package/dist/uploads/cropImage.js.map +1 -1
  844. package/dist/uploads/cropImage.spec.js +71 -0
  845. package/dist/uploads/cropImage.spec.js.map +1 -0
  846. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  847. package/dist/uploads/downloadFileToBuffer.d.ts +11 -0
  848. package/dist/uploads/downloadFileToBuffer.d.ts.map +1 -0
  849. package/dist/uploads/downloadFileToBuffer.js +41 -0
  850. package/dist/uploads/downloadFileToBuffer.js.map +1 -0
  851. package/dist/uploads/endpoints/index.js +2 -2
  852. package/dist/uploads/endpoints/index.js.map +1 -1
  853. package/dist/uploads/endpoints/pasteURL.d.ts +3 -0
  854. package/dist/uploads/endpoints/pasteURL.d.ts.map +1 -0
  855. package/dist/uploads/endpoints/{getFileFromURL.js → pasteURL.js} +19 -55
  856. package/dist/uploads/endpoints/pasteURL.js.map +1 -0
  857. package/dist/uploads/endpoints/uploadInstructions.d.ts +15 -0
  858. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -0
  859. package/dist/uploads/endpoints/uploadInstructions.js +84 -0
  860. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -0
  861. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
  862. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js +1 -2
  863. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  864. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js +28 -0
  865. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js.map +1 -1
  866. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  867. package/dist/uploads/fetchAPI-multipart/processMultipart.js +4 -0
  868. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  869. package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
  870. package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
  871. package/dist/uploads/fetchWithRedirects.d.ts +17 -0
  872. package/dist/uploads/fetchWithRedirects.d.ts.map +1 -0
  873. package/dist/uploads/fetchWithRedirects.js +39 -0
  874. package/dist/uploads/fetchWithRedirects.js.map +1 -0
  875. package/dist/uploads/fileExists.d.ts.map +1 -1
  876. package/dist/uploads/generateFileData.d.ts +9 -0
  877. package/dist/uploads/generateFileData.d.ts.map +1 -1
  878. package/dist/uploads/generateFileData.js +62 -48
  879. package/dist/uploads/generateFileData.js.map +1 -1
  880. package/dist/uploads/generateFileData.spec.js +207 -0
  881. package/dist/uploads/generateFileData.spec.js.map +1 -0
  882. package/dist/uploads/generateFileData.tempFileBuffering.spec.js +81 -0
  883. package/dist/uploads/generateFileData.tempFileBuffering.spec.js.map +1 -0
  884. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  885. package/dist/uploads/getFileByPath.d.ts +1 -1
  886. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  887. package/dist/uploads/getFileContentRequirement.d.ts +32 -0
  888. package/dist/uploads/getFileContentRequirement.d.ts.map +1 -0
  889. package/dist/uploads/getFileContentRequirement.js +40 -0
  890. package/dist/uploads/getFileContentRequirement.js.map +1 -0
  891. package/dist/uploads/getFileContentRequirement.spec.js +125 -0
  892. package/dist/uploads/getFileContentRequirement.spec.js.map +1 -0
  893. package/dist/uploads/getFileFromUploadInstructions.d.ts +8 -0
  894. package/dist/uploads/getFileFromUploadInstructions.d.ts.map +1 -0
  895. package/dist/uploads/getFileFromUploadInstructions.js +232 -0
  896. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -0
  897. package/dist/uploads/getFileFromUploadInstructions.spec.js +387 -0
  898. package/dist/uploads/getFileFromUploadInstructions.spec.js.map +1 -0
  899. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  900. package/dist/uploads/getImageSize.d.ts +12 -1
  901. package/dist/uploads/getImageSize.d.ts.map +1 -1
  902. package/dist/uploads/getImageSize.js +20 -18
  903. package/dist/uploads/getImageSize.js.map +1 -1
  904. package/dist/uploads/getImageSize.spec.js +298 -0
  905. package/dist/uploads/getImageSize.spec.js.map +1 -0
  906. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  907. package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
  908. package/dist/uploads/image-resizing/createImageSizes.d.ts.map +1 -1
  909. package/dist/uploads/image-resizing/createImageSizes.js +2 -5
  910. package/dist/uploads/image-resizing/createImageSizes.js.map +1 -1
  911. package/dist/uploads/image-resizing/createImageSizes.spec.js +80 -0
  912. package/dist/uploads/image-resizing/createImageSizes.spec.js.map +1 -0
  913. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
  914. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +1 -1
  915. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
  916. package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
  917. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
  918. package/dist/uploads/isAnimatedImage.d.ts +8 -0
  919. package/dist/uploads/isAnimatedImage.d.ts.map +1 -0
  920. package/dist/uploads/isAnimatedImage.js +22 -0
  921. package/dist/uploads/isAnimatedImage.js.map +1 -0
  922. package/dist/uploads/isAnimatedImage.spec.js +19 -0
  923. package/dist/uploads/isAnimatedImage.spec.js.map +1 -0
  924. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  925. package/dist/uploads/probeImageSize.d.ts +39 -0
  926. package/dist/uploads/probeImageSize.d.ts.map +1 -0
  927. package/dist/uploads/probeImageSize.js +374 -0
  928. package/dist/uploads/probeImageSize.js.map +1 -0
  929. package/dist/uploads/probeImageSize.spec.js +366 -0
  930. package/dist/uploads/probeImageSize.spec.js.map +1 -0
  931. package/dist/uploads/resolveURLUploadInput.d.ts +25 -0
  932. package/dist/uploads/resolveURLUploadInput.d.ts.map +1 -0
  933. package/dist/uploads/resolveURLUploadInput.js +53 -0
  934. package/dist/uploads/resolveURLUploadInput.js.map +1 -0
  935. package/dist/uploads/safeFetch.d.ts.map +1 -1
  936. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  937. package/dist/uploads/stagedUpload.d.ts +27 -0
  938. package/dist/uploads/stagedUpload.d.ts.map +1 -0
  939. package/dist/uploads/stagedUpload.js +197 -0
  940. package/dist/uploads/stagedUpload.js.map +1 -0
  941. package/dist/uploads/types.d.ts +91 -7
  942. package/dist/uploads/types.d.ts.map +1 -1
  943. package/dist/uploads/types.js.map +1 -1
  944. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  945. package/dist/uploads/unlinkTempFiles.js +6 -2
  946. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  947. package/dist/uploads/unlinkTempFiles.spec.js +71 -0
  948. package/dist/uploads/unlinkTempFiles.spec.js.map +1 -0
  949. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  950. package/dist/uploads/uploadFiles.js +7 -2
  951. package/dist/uploads/uploadFiles.js.map +1 -1
  952. package/dist/uploads/uploadFiles.spec.js +44 -0
  953. package/dist/uploads/uploadFiles.spec.js.map +1 -0
  954. package/dist/uploads/validateUploadURL.d.ts +13 -0
  955. package/dist/uploads/validateUploadURL.d.ts.map +1 -0
  956. package/dist/uploads/validateUploadURL.js +37 -0
  957. package/dist/uploads/validateUploadURL.js.map +1 -0
  958. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  959. package/dist/utilities/addDataAndFileToRequest.js +12 -45
  960. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  961. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  962. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  963. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
  964. package/dist/utilities/appendNonTrashedFilter.d.ts +1 -1
  965. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  966. package/dist/utilities/appendNonTrashedFilter.js.map +1 -1
  967. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  968. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  969. package/dist/utilities/canAccessAdmin.js +1 -0
  970. package/dist/utilities/canAccessAdmin.js.map +1 -1
  971. package/dist/utilities/checkDocumentLockStatus.d.ts +19 -0
  972. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  973. package/dist/utilities/checkDocumentLockStatus.js +74 -0
  974. package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
  975. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  976. package/dist/utilities/configToJSONSchema.js +3 -2
  977. package/dist/utilities/configToJSONSchema.js.map +1 -1
  978. package/dist/utilities/configToJSONSchema.spec.js +68 -31
  979. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  980. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  981. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  982. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
  983. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts +30 -0
  984. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts.map +1 -0
  985. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js +71 -0
  986. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js.map +1 -0
  987. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts +13 -0
  988. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts.map +1 -0
  989. package/dist/utilities/entityInputSchema/getEntityInputSchema.js +66 -0
  990. package/dist/utilities/entityInputSchema/getEntityInputSchema.js.map +1 -0
  991. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts +10 -0
  992. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts.map +1 -0
  993. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js +384 -0
  994. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js.map +1 -0
  995. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.spec.js +133 -0
  996. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.spec.js.map +1 -0
  997. package/dist/utilities/entityInputSchema/types.d.ts +16 -0
  998. package/dist/utilities/entityInputSchema/types.d.ts.map +1 -0
  999. package/dist/utilities/entityInputSchema/types.js +3 -0
  1000. package/dist/utilities/entityInputSchema/types.js.map +1 -0
  1001. package/dist/utilities/entityInputSchema/validateEntityData.d.ts +13 -0
  1002. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -0
  1003. package/dist/utilities/entityInputSchema/validateEntityData.js +138 -0
  1004. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -0
  1005. package/dist/utilities/escapeRegExp.d.ts.map +1 -1
  1006. package/dist/utilities/extractID.d.ts.map +1 -1
  1007. package/dist/utilities/fieldValueExists.d.ts +29 -0
  1008. package/dist/utilities/fieldValueExists.d.ts.map +1 -0
  1009. package/dist/utilities/fieldValueExists.js +37 -0
  1010. package/dist/utilities/fieldValueExists.js.map +1 -0
  1011. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  1012. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  1013. package/dist/utilities/formatErrors.d.ts.map +1 -1
  1014. package/dist/utilities/formatLabels.d.ts.map +1 -1
  1015. package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
  1016. package/dist/utilities/getBlockSelect.d.ts.map +1 -1
  1017. package/dist/utilities/getDataByPath.d.ts.map +1 -1
  1018. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  1019. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +1 -0
  1020. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  1021. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  1022. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  1023. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  1024. package/dist/utilities/getNextVersion.d.ts +7 -0
  1025. package/dist/utilities/getNextVersion.d.ts.map +1 -0
  1026. package/dist/utilities/getNextVersion.js +20 -0
  1027. package/dist/utilities/getNextVersion.js.map +1 -0
  1028. package/dist/utilities/getNextVersion.spec.js +16 -0
  1029. package/dist/utilities/getNextVersion.spec.js.map +1 -0
  1030. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  1031. package/dist/utilities/getRequestEntity.d.ts.map +1 -1
  1032. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  1033. package/dist/utilities/getRequestOrigin.d.ts +2 -2
  1034. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  1035. package/dist/utilities/getRequestOrigin.js.map +1 -1
  1036. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  1037. package/dist/utilities/getSafeRedirect.js +16 -9
  1038. package/dist/utilities/getSafeRedirect.js.map +1 -1
  1039. package/dist/utilities/getSafeRedirect.spec.js +96 -2
  1040. package/dist/utilities/getSafeRedirect.spec.js.map +1 -1
  1041. package/dist/utilities/getSelectMode.d.ts.map +1 -1
  1042. package/dist/utilities/getSiblingData.d.ts.map +1 -1
  1043. package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
  1044. package/dist/utilities/getUniqueFieldValue.d.ts +28 -0
  1045. package/dist/utilities/getUniqueFieldValue.d.ts.map +1 -0
  1046. package/dist/utilities/getUniqueFieldValue.js +27 -0
  1047. package/dist/utilities/getUniqueFieldValue.js.map +1 -0
  1048. package/dist/utilities/getVersionsConfig.d.ts +1 -1
  1049. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  1050. package/dist/utilities/getVirtualFieldNames.d.ts +14 -0
  1051. package/dist/utilities/getVirtualFieldNames.d.ts.map +1 -0
  1052. package/dist/utilities/getVirtualFieldNames.js +35 -0
  1053. package/dist/utilities/getVirtualFieldNames.js.map +1 -0
  1054. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  1055. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  1056. package/dist/utilities/headersWithCors.js +1 -1
  1057. package/dist/utilities/headersWithCors.js.map +1 -1
  1058. package/dist/utilities/isEntityHidden.d.ts +2 -2
  1059. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  1060. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  1061. package/dist/utilities/isURLAllowed.js +9 -3
  1062. package/dist/utilities/isURLAllowed.js.map +1 -1
  1063. package/dist/utilities/isURLAllowed.spec.js +78 -0
  1064. package/dist/utilities/isURLAllowed.spec.js.map +1 -0
  1065. package/dist/utilities/isValidID.d.ts +1 -1
  1066. package/dist/utilities/isValidID.d.ts.map +1 -1
  1067. package/dist/utilities/killTransaction.d.ts +7 -0
  1068. package/dist/utilities/killTransaction.d.ts.map +1 -1
  1069. package/dist/utilities/killTransaction.js +7 -0
  1070. package/dist/utilities/killTransaction.js.map +1 -1
  1071. package/dist/utilities/logError.d.ts.map +1 -1
  1072. package/dist/utilities/logError.js +5 -2
  1073. package/dist/utilities/logError.js.map +1 -1
  1074. package/dist/utilities/logger.d.ts +1 -1
  1075. package/dist/utilities/logger.d.ts.map +1 -1
  1076. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  1077. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
  1078. package/dist/utilities/miniChalk.d.ts.map +1 -1
  1079. package/dist/utilities/nextJsDevReloadStrategy.d.ts +7 -0
  1080. package/dist/utilities/nextJsDevReloadStrategy.d.ts.map +1 -0
  1081. package/dist/utilities/nextJsDevReloadStrategy.js +59 -0
  1082. package/dist/utilities/nextJsDevReloadStrategy.js.map +1 -0
  1083. package/dist/utilities/nextJsDevReloadStrategy.spec.js +123 -0
  1084. package/dist/utilities/nextJsDevReloadStrategy.spec.js.map +1 -0
  1085. package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
  1086. package/dist/utilities/parseBooleanString.d.ts.map +1 -1
  1087. package/dist/utilities/parseCookies.d.ts +1 -1
  1088. package/dist/utilities/parseCookies.d.ts.map +1 -1
  1089. package/dist/utilities/parseDocumentID.d.ts +4 -1
  1090. package/dist/utilities/parseDocumentID.d.ts.map +1 -1
  1091. package/dist/utilities/parseDocumentID.js +7 -1
  1092. package/dist/utilities/parseDocumentID.js.map +1 -1
  1093. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  1094. package/dist/utilities/profiling.d.ts.map +1 -1
  1095. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  1096. package/dist/utilities/resolveSelect.d.ts.map +1 -1
  1097. package/dist/utilities/routeError.d.ts.map +1 -1
  1098. package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
  1099. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  1100. package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
  1101. package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
  1102. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  1103. package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
  1104. package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
  1105. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  1106. package/dist/utilities/sharedInputSchemas.d.ts +52 -0
  1107. package/dist/utilities/sharedInputSchemas.d.ts.map +1 -0
  1108. package/dist/utilities/sharedInputSchemas.js +101 -0
  1109. package/dist/utilities/sharedInputSchemas.js.map +1 -0
  1110. package/dist/utilities/slugify.d.ts.map +1 -1
  1111. package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
  1112. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  1113. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  1114. package/dist/utilities/telemetry/events/adminInit.js +2 -3
  1115. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  1116. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  1117. package/dist/utilities/telemetry/events/serverInit.js +2 -3
  1118. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  1119. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts +4 -0
  1120. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts.map +1 -0
  1121. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js +261 -0
  1122. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -0
  1123. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.spec.js +117 -0
  1124. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.spec.js.map +1 -0
  1125. package/dist/utilities/telemetry/featureInfo/types.d.ts +63 -0
  1126. package/dist/utilities/telemetry/featureInfo/types.d.ts.map +1 -0
  1127. package/dist/utilities/telemetry/featureInfo/types.js +3 -0
  1128. package/dist/utilities/telemetry/featureInfo/types.js.map +1 -0
  1129. package/dist/utilities/telemetry/getProjectContext.d.ts +16 -0
  1130. package/dist/utilities/telemetry/getProjectContext.d.ts.map +1 -0
  1131. package/dist/utilities/telemetry/getProjectContext.js +43 -0
  1132. package/dist/utilities/telemetry/getProjectContext.js.map +1 -0
  1133. package/dist/utilities/telemetry/index.d.ts +21 -5
  1134. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  1135. package/dist/utilities/telemetry/index.js +26 -1
  1136. package/dist/utilities/telemetry/index.js.map +1 -1
  1137. package/dist/utilities/telemetry/index.spec.js +43 -0
  1138. package/dist/utilities/telemetry/index.spec.js.map +1 -0
  1139. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  1140. package/dist/utilities/timestamp.d.ts.map +1 -1
  1141. package/dist/utilities/toKebabCase.d.ts.map +1 -1
  1142. package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
  1143. package/dist/utilities/transformPointDataToPayload.d.ts +7 -0
  1144. package/dist/utilities/transformPointDataToPayload.d.ts.map +1 -0
  1145. package/dist/utilities/transformPointDataToPayload.js +28 -0
  1146. package/dist/utilities/transformPointDataToPayload.js.map +1 -0
  1147. package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
  1148. package/dist/utilities/traverseFields.d.ts.map +1 -1
  1149. package/dist/utilities/traverseFields.js +20 -22
  1150. package/dist/utilities/traverseFields.js.map +1 -1
  1151. package/dist/utilities/traverseFields.spec.js +112 -0
  1152. package/dist/utilities/traverseFields.spec.js.map +1 -1
  1153. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  1154. package/dist/utilities/unflatten.d.ts.map +1 -1
  1155. package/dist/utilities/unflattenData.d.ts +3 -0
  1156. package/dist/utilities/unflattenData.d.ts.map +1 -0
  1157. package/dist/utilities/unflattenData.js +14 -0
  1158. package/dist/utilities/unflattenData.js.map +1 -0
  1159. package/dist/utilities/validateMimeType.d.ts.map +1 -1
  1160. package/dist/utilities/validateTimezones.d.ts.map +1 -1
  1161. package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
  1162. package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
  1163. package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
  1164. package/dist/utilities/zod.d.ts +5 -0
  1165. package/dist/utilities/zod.d.ts.map +1 -0
  1166. package/dist/utilities/zod.js +21 -0
  1167. package/dist/utilities/zod.js.map +1 -0
  1168. package/dist/versions/baseFields.d.ts.map +1 -1
  1169. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  1170. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  1171. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  1172. package/dist/versions/defaults.d.ts.map +1 -1
  1173. package/dist/versions/deleteCollectionVersions.d.ts +11 -1
  1174. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  1175. package/dist/versions/deleteCollectionVersions.js +10 -3
  1176. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  1177. package/dist/versions/deleteScheduledPublishJobs.d.ts +5 -1
  1178. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  1179. package/dist/versions/deleteScheduledPublishJobs.js +11 -5
  1180. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  1181. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  1182. package/dist/versions/drafts/appendVersionToQueryKey.js +1 -3
  1183. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  1184. package/dist/versions/drafts/appendVersionToQueryKey.spec.js +28 -0
  1185. package/dist/versions/drafts/appendVersionToQueryKey.spec.js.map +1 -0
  1186. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
  1187. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  1188. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  1189. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  1190. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  1191. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  1192. package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
  1193. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  1194. package/dist/versions/payloadPackageList.js +0 -1
  1195. package/dist/versions/payloadPackageList.js.map +1 -1
  1196. package/dist/versions/schedule/job.d.ts.map +1 -1
  1197. package/dist/versions/schedule/job.js +4 -1
  1198. package/dist/versions/schedule/job.js.map +1 -1
  1199. package/package.json +24 -7
  1200. package/skills/payload/SKILL.md +526 -0
  1201. package/skills/payload/reference/ACCESS-CONTROL-ADVANCED.md +704 -0
  1202. package/skills/payload/reference/ACCESS-CONTROL.md +696 -0
  1203. package/skills/payload/reference/ADAPTERS.md +305 -0
  1204. package/skills/payload/reference/ADVANCED.md +386 -0
  1205. package/skills/payload/reference/COLLECTIONS.md +333 -0
  1206. package/skills/payload/reference/ENDPOINTS.md +634 -0
  1207. package/skills/payload/reference/FIELD-TYPE-GUARDS.md +553 -0
  1208. package/skills/payload/reference/FIELDS.md +745 -0
  1209. package/skills/payload/reference/HOOKS.md +186 -0
  1210. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +1436 -0
  1211. package/skills/payload/reference/QUERIES.md +274 -0
  1212. package/dist/bin/build.d.ts +0 -25
  1213. package/dist/bin/build.d.ts.map +0 -1
  1214. package/dist/bin/build.js +0 -80
  1215. package/dist/bin/build.js.map +0 -1
  1216. package/dist/bin/build.spec.js +0 -170
  1217. package/dist/bin/build.spec.js.map +0 -1
  1218. package/dist/bin/generateImportMap/generateImportMap.spec.js.map +0 -1
  1219. package/dist/bin/generateImportMap/index.d.ts.map +0 -1
  1220. package/dist/bin/generateImportMap/index.js.map +0 -1
  1221. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +0 -1
  1222. package/dist/bin/generateImportMap/iterateCollections.js.map +0 -1
  1223. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +0 -1
  1224. package/dist/bin/generateImportMap/iterateConfig.js.map +0 -1
  1225. package/dist/bin/generateImportMap/iterateFields.d.ts.map +0 -1
  1226. package/dist/bin/generateImportMap/iterateFields.js.map +0 -1
  1227. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +0 -1
  1228. package/dist/bin/generateImportMap/iterateGlobals.js.map +0 -1
  1229. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +0 -1
  1230. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +0 -1
  1231. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +0 -1
  1232. package/dist/bin/generateImportMap/utilities/getFromImportMap.js.map +0 -1
  1233. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +0 -1
  1234. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +0 -1
  1235. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.d.ts.map +0 -1
  1236. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.js.map +0 -1
  1237. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +0 -1
  1238. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +0 -1
  1239. package/dist/bin/generateTypes.d.ts +0 -6
  1240. package/dist/bin/generateTypes.d.ts.map +0 -1
  1241. package/dist/bin/generateTypes.js.map +0 -1
  1242. package/dist/bin/index.d.ts +0 -2
  1243. package/dist/bin/index.d.ts.map +0 -1
  1244. package/dist/bin/index.js +0 -200
  1245. package/dist/bin/index.js.map +0 -1
  1246. package/dist/bin/info.d.ts +0 -2
  1247. package/dist/bin/info.d.ts.map +0 -1
  1248. package/dist/bin/info.js +0 -56
  1249. package/dist/bin/info.js.map +0 -1
  1250. package/dist/bin/loadEnv.d.ts.map +0 -1
  1251. package/dist/bin/loadEnv.js.map +0 -1
  1252. package/dist/bin/migrate.d.ts +0 -15
  1253. package/dist/bin/migrate.d.ts.map +0 -1
  1254. package/dist/bin/migrate.js +0 -102
  1255. package/dist/bin/migrate.js.map +0 -1
  1256. package/dist/database/defaultUpdateJobs.d.ts +0 -3
  1257. package/dist/database/defaultUpdateJobs.d.ts.map +0 -1
  1258. package/dist/database/defaultUpdateJobs.js +0 -41
  1259. package/dist/database/defaultUpdateJobs.js.map +0 -1
  1260. package/dist/fields/baseFields/slug/countVersions.d.ts +0 -13
  1261. package/dist/fields/baseFields/slug/countVersions.d.ts.map +0 -1
  1262. package/dist/fields/baseFields/slug/countVersions.js +0 -29
  1263. package/dist/fields/baseFields/slug/countVersions.js.map +0 -1
  1264. package/dist/fields/baseFields/slug/index.d.ts +0 -89
  1265. package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
  1266. package/dist/fields/baseFields/slug/index.js +0 -81
  1267. package/dist/fields/baseFields/slug/index.js.map +0 -1
  1268. package/dist/uploads/endpoints/getFileFromURL.d.ts +0 -3
  1269. package/dist/uploads/endpoints/getFileFromURL.d.ts.map +0 -1
  1270. package/dist/uploads/endpoints/getFileFromURL.js.map +0 -1
  1271. package/dist/uploads/getExternalFile.d.ts +0 -10
  1272. package/dist/uploads/getExternalFile.d.ts.map +0 -1
  1273. package/dist/uploads/getExternalFile.js +0 -73
  1274. package/dist/uploads/getExternalFile.js.map +0 -1
  1275. package/dist/uploads/tempFile.d.ts +0 -7
  1276. package/dist/uploads/tempFile.d.ts.map +0 -1
  1277. package/dist/uploads/tempFile.js +0 -39
  1278. package/dist/uploads/tempFile.js.map +0 -1
  1279. /package/dist/{bin → cli/commands}/generateImportMap/generateImportMap.spec.js +0 -0
  1280. /package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.js +0 -0
  1281. /package/dist/{bin → cli/commands}/generateImportMap/iterateFields.js +0 -0
  1282. /package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.js +0 -0
  1283. /package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.js +0 -0
  1284. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.js +0 -0
  1285. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts +0 -0
  1286. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.js +0 -0
  1287. /package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.js +0 -0
  1288. /package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.d.ts +0 -0
  1289. /package/dist/{bin → cli/runtime}/loadEnv.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/uploadFiles.ts"],"sourcesContent":["import type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\nimport type { FileToSave } from './types.js'\n\nimport { FileUploadError } from '../errors/index.js'\nimport { saveBufferToFile } from './saveBufferToFile.js'\n\nexport const uploadFiles = async (\n payload: Payload,\n files: FileToSave[],\n req: PayloadRequest,\n): Promise<void> => {\n try {\n await Promise.all(\n files.map(async ({ buffer, path }) => {\n await saveBufferToFile(buffer, path)\n }),\n )\n } catch (err) {\n payload.logger.error(err)\n throw new FileUploadError(req.t)\n }\n}\n"],"names":["FileUploadError","saveBufferToFile","uploadFiles","payload","files","req","Promise","all","map","buffer","path","err","logger","error","t"],"mappings":"AAIA,SAASA,eAAe,QAAQ,qBAAoB;AACpD,SAASC,gBAAgB,QAAQ,wBAAuB;AAExD,OAAO,MAAMC,cAAc,OACzBC,SACAC,OACAC;IAEA,IAAI;QACF,MAAMC,QAAQC,GAAG,CACfH,MAAMI,GAAG,CAAC,OAAO,EAAEC,MAAM,EAAEC,IAAI,EAAE;YAC/B,MAAMT,iBAAiBQ,QAAQC;QACjC;IAEJ,EAAE,OAAOC,KAAK;QACZR,QAAQS,MAAM,CAACC,KAAK,CAACF;QACrB,MAAM,IAAIX,gBAAgBK,IAAIS,CAAC;IACjC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/uploads/uploadFiles.ts"],"sourcesContent":["import fs from 'fs/promises'\n\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\nimport type { FileToSave } from './types.js'\n\nimport { FileUploadError } from '../errors/index.js'\nimport { saveBufferToFile } from './saveBufferToFile.js'\n\nexport const uploadFiles = async (\n payload: Payload,\n files: FileToSave[],\n req: PayloadRequest,\n): Promise<void> => {\n try {\n await Promise.all(\n files.map(async (file) => {\n if ('sourcePath' in file) {\n await fs.copyFile(file.sourcePath, file.path)\n } else {\n await saveBufferToFile(file.buffer, file.path)\n }\n }),\n )\n } catch (err) {\n payload.logger.error(err)\n throw new FileUploadError(req.t)\n }\n}\n"],"names":["fs","FileUploadError","saveBufferToFile","uploadFiles","payload","files","req","Promise","all","map","file","copyFile","sourcePath","path","buffer","err","logger","error","t"],"mappings":"AAAA,OAAOA,QAAQ,cAAa;AAM5B,SAASC,eAAe,QAAQ,qBAAoB;AACpD,SAASC,gBAAgB,QAAQ,wBAAuB;AAExD,OAAO,MAAMC,cAAc,OACzBC,SACAC,OACAC;IAEA,IAAI;QACF,MAAMC,QAAQC,GAAG,CACfH,MAAMI,GAAG,CAAC,OAAOC;YACf,IAAI,gBAAgBA,MAAM;gBACxB,MAAMV,GAAGW,QAAQ,CAACD,KAAKE,UAAU,EAAEF,KAAKG,IAAI;YAC9C,OAAO;gBACL,MAAMX,iBAAiBQ,KAAKI,MAAM,EAAEJ,KAAKG,IAAI;YAC/C;QACF;IAEJ,EAAE,OAAOE,KAAK;QACZX,QAAQY,MAAM,CAACC,KAAK,CAACF;QACrB,MAAM,IAAId,gBAAgBK,IAAIY,CAAC;IACjC;AACF,EAAC"}
@@ -0,0 +1,44 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+ const copyFileMock = vi.fn().mockResolvedValue(undefined);
3
+ const writeFileMock = vi.fn().mockResolvedValue(undefined);
4
+ vi.mock('fs/promises', ()=>({
5
+ default: {
6
+ copyFile: copyFileMock,
7
+ writeFile: writeFileMock
8
+ }
9
+ }));
10
+ const { uploadFiles } = await import('./uploadFiles.js');
11
+ describe('uploadFiles', ()=>{
12
+ const payload = {
13
+ logger: {
14
+ error: vi.fn()
15
+ }
16
+ };
17
+ const req = {};
18
+ beforeEach(()=>{
19
+ vi.clearAllMocks();
20
+ });
21
+ it('writes a buffer entry to disk', async ()=>{
22
+ const buffer = Buffer.from('hello');
23
+ await uploadFiles(payload, [
24
+ {
25
+ buffer,
26
+ path: '/tmp/media/hello.txt'
27
+ }
28
+ ], req);
29
+ expect(writeFileMock).toHaveBeenCalledWith('/tmp/media/hello.txt', buffer);
30
+ expect(copyFileMock).not.toHaveBeenCalled();
31
+ });
32
+ it('copies a sourcePath entry directly, without reading it into memory', async ()=>{
33
+ await uploadFiles(payload, [
34
+ {
35
+ path: '/tmp/media/video.mp4',
36
+ sourcePath: '/tmp/payload-client-upload-abc'
37
+ }
38
+ ], req);
39
+ expect(copyFileMock).toHaveBeenCalledWith('/tmp/payload-client-upload-abc', '/tmp/media/video.mp4');
40
+ expect(writeFileMock).not.toHaveBeenCalled();
41
+ });
42
+ });
43
+
44
+ //# sourceMappingURL=uploadFiles.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/uploadFiles.spec.ts"],"sourcesContent":["import type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { beforeEach, describe, expect, it, vi } from 'vitest'\n\nconst copyFileMock = vi.fn().mockResolvedValue(undefined)\nconst writeFileMock = vi.fn().mockResolvedValue(undefined)\n\nvi.mock('fs/promises', () => ({\n default: {\n copyFile: copyFileMock,\n writeFile: writeFileMock,\n },\n}))\n\nconst { uploadFiles } = await import('./uploadFiles.js')\n\ndescribe('uploadFiles', () => {\n const payload = { logger: { error: vi.fn() } } as unknown as Payload\n const req = {} as unknown as PayloadRequest\n\n beforeEach(() => {\n vi.clearAllMocks()\n })\n\n it('writes a buffer entry to disk', async () => {\n const buffer = Buffer.from('hello')\n\n await uploadFiles(payload, [{ buffer, path: '/tmp/media/hello.txt' }], req)\n\n expect(writeFileMock).toHaveBeenCalledWith('/tmp/media/hello.txt', buffer)\n expect(copyFileMock).not.toHaveBeenCalled()\n })\n\n it('copies a sourcePath entry directly, without reading it into memory', async () => {\n await uploadFiles(\n payload,\n [{ path: '/tmp/media/video.mp4', sourcePath: '/tmp/payload-client-upload-abc' }],\n req,\n )\n\n expect(copyFileMock).toHaveBeenCalledWith(\n '/tmp/payload-client-upload-abc',\n '/tmp/media/video.mp4',\n )\n expect(writeFileMock).not.toHaveBeenCalled()\n })\n})\n"],"names":["beforeEach","describe","expect","it","vi","copyFileMock","fn","mockResolvedValue","undefined","writeFileMock","mock","default","copyFile","writeFile","uploadFiles","payload","logger","error","req","clearAllMocks","buffer","Buffer","from","path","toHaveBeenCalledWith","not","toHaveBeenCalled","sourcePath"],"mappings":"AAGA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,SAAQ;AAE7D,MAAMC,eAAeD,GAAGE,EAAE,GAAGC,iBAAiB,CAACC;AAC/C,MAAMC,gBAAgBL,GAAGE,EAAE,GAAGC,iBAAiB,CAACC;AAEhDJ,GAAGM,IAAI,CAAC,eAAe,IAAO,CAAA;QAC5BC,SAAS;YACPC,UAAUP;YACVQ,WAAWJ;QACb;IACF,CAAA;AAEA,MAAM,EAAEK,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC;AAErCb,SAAS,eAAe;IACtB,MAAMc,UAAU;QAAEC,QAAQ;YAAEC,OAAOb,GAAGE,EAAE;QAAG;IAAE;IAC7C,MAAMY,MAAM,CAAC;IAEblB,WAAW;QACTI,GAAGe,aAAa;IAClB;IAEAhB,GAAG,iCAAiC;QAClC,MAAMiB,SAASC,OAAOC,IAAI,CAAC;QAE3B,MAAMR,YAAYC,SAAS;YAAC;gBAAEK;gBAAQG,MAAM;YAAuB;SAAE,EAAEL;QAEvEhB,OAAOO,eAAee,oBAAoB,CAAC,wBAAwBJ;QACnElB,OAAOG,cAAcoB,GAAG,CAACC,gBAAgB;IAC3C;IAEAvB,GAAG,sEAAsE;QACvE,MAAMW,YACJC,SACA;YAAC;gBAAEQ,MAAM;gBAAwBI,YAAY;YAAiC;SAAE,EAChFT;QAGFhB,OAAOG,cAAcmB,oBAAoB,CACvC,kCACA;QAEFtB,OAAOO,eAAegB,GAAG,CAACC,gBAAgB;IAC5C;AACF"}
@@ -0,0 +1,13 @@
1
+ import type { UploadConfig } from './types.js';
2
+ /**
3
+ * Validates the initial URL and collection policy before downloading a new URL upload.
4
+ * MCP and the Admin proxy require an explicit allow-list. The local CLI may omit one,
5
+ * but still respects `pasteURL: false` and any configured allow-list.
6
+ * For example, an allowed `https://cdn.example.com/image.png` returns a parsed URL.
7
+ */
8
+ export declare const validateUploadURL: ({ requireAllowList, uploadConfig, url, }: {
9
+ requireAllowList?: boolean;
10
+ uploadConfig?: UploadConfig;
11
+ url: string;
12
+ }) => URL;
13
+ //# sourceMappingURL=validateUploadURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateUploadURL.d.ts","sourceRoot":"","sources":["../../src/uploads/validateUploadURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,6CAI3B;IACD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;CACZ,KAAG,GAgCH,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { APIError } from '../errors/APIError.js';
2
+ import { isURLAllowed } from '../utilities/isURLAllowed.js';
3
+ /**
4
+ * Validates the initial URL and collection policy before downloading a new URL upload.
5
+ * MCP and the Admin proxy require an explicit allow-list. The local CLI may omit one,
6
+ * but still respects `pasteURL: false` and any configured allow-list.
7
+ * For example, an allowed `https://cdn.example.com/image.png` returns a parsed URL.
8
+ */ export const validateUploadURL = ({ requireAllowList = true, uploadConfig, url })=>{
9
+ if (!uploadConfig) {
10
+ throw new APIError('This collection does not support file uploads.', 400);
11
+ }
12
+ if (uploadConfig.pasteURL === false) {
13
+ throw new APIError('Uploading files from URLs is disabled for this collection.', 400);
14
+ }
15
+ const allowList = uploadConfig.pasteURL?.allowList;
16
+ if (requireAllowList && !Array.isArray(allowList)) {
17
+ throw new APIError('Server-side URL uploads require upload.pasteURL.allowList.', 400);
18
+ }
19
+ let parsedURL;
20
+ try {
21
+ parsedURL = new URL(url);
22
+ } catch {
23
+ throw new APIError('A valid URL string is required.', 400);
24
+ }
25
+ if (![
26
+ 'http:',
27
+ 'https:'
28
+ ].includes(parsedURL.protocol)) {
29
+ throw new APIError('File URLs must use http or https.', 400);
30
+ }
31
+ if (allowList && !isURLAllowed(parsedURL.href, allowList)) {
32
+ throw new APIError('The provided file URL is not allowed.', 400);
33
+ }
34
+ return parsedURL;
35
+ };
36
+
37
+ //# sourceMappingURL=validateUploadURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/validateUploadURL.ts"],"sourcesContent":["import type { UploadConfig } from './types.js'\n\nimport { APIError } from '../errors/APIError.js'\nimport { isURLAllowed } from '../utilities/isURLAllowed.js'\n\n/**\n * Validates the initial URL and collection policy before downloading a new URL upload.\n * MCP and the Admin proxy require an explicit allow-list. The local CLI may omit one,\n * but still respects `pasteURL: false` and any configured allow-list.\n * For example, an allowed `https://cdn.example.com/image.png` returns a parsed URL.\n */\nexport const validateUploadURL = ({\n requireAllowList = true,\n uploadConfig,\n url,\n}: {\n requireAllowList?: boolean\n uploadConfig?: UploadConfig\n url: string\n}): URL => {\n if (!uploadConfig) {\n throw new APIError('This collection does not support file uploads.', 400)\n }\n\n if (uploadConfig.pasteURL === false) {\n throw new APIError('Uploading files from URLs is disabled for this collection.', 400)\n }\n\n const allowList = uploadConfig.pasteURL?.allowList\n\n if (requireAllowList && !Array.isArray(allowList)) {\n throw new APIError('Server-side URL uploads require upload.pasteURL.allowList.', 400)\n }\n\n let parsedURL: URL\n\n try {\n parsedURL = new URL(url)\n } catch {\n throw new APIError('A valid URL string is required.', 400)\n }\n\n if (!['http:', 'https:'].includes(parsedURL.protocol)) {\n throw new APIError('File URLs must use http or https.', 400)\n }\n\n if (allowList && !isURLAllowed(parsedURL.href, allowList)) {\n throw new APIError('The provided file URL is not allowed.', 400)\n }\n\n return parsedURL\n}\n"],"names":["APIError","isURLAllowed","validateUploadURL","requireAllowList","uploadConfig","url","pasteURL","allowList","Array","isArray","parsedURL","URL","includes","protocol","href"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,wBAAuB;AAChD,SAASC,YAAY,QAAQ,+BAA8B;AAE3D;;;;;CAKC,GACD,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,mBAAmB,IAAI,EACvBC,YAAY,EACZC,GAAG,EAKJ;IACC,IAAI,CAACD,cAAc;QACjB,MAAM,IAAIJ,SAAS,kDAAkD;IACvE;IAEA,IAAII,aAAaE,QAAQ,KAAK,OAAO;QACnC,MAAM,IAAIN,SAAS,8DAA8D;IACnF;IAEA,MAAMO,YAAYH,aAAaE,QAAQ,EAAEC;IAEzC,IAAIJ,oBAAoB,CAACK,MAAMC,OAAO,CAACF,YAAY;QACjD,MAAM,IAAIP,SAAS,8DAA8D;IACnF;IAEA,IAAIU;IAEJ,IAAI;QACFA,YAAY,IAAIC,IAAIN;IACtB,EAAE,OAAM;QACN,MAAM,IAAIL,SAAS,mCAAmC;IACxD;IAEA,IAAI,CAAC;QAAC;QAAS;KAAS,CAACY,QAAQ,CAACF,UAAUG,QAAQ,GAAG;QACrD,MAAM,IAAIb,SAAS,qCAAqC;IAC1D;IAEA,IAAIO,aAAa,CAACN,aAAaS,UAAUI,IAAI,EAAEP,YAAY;QACzD,MAAM,IAAIP,SAAS,yCAAyC;IAC9D;IAEA,OAAOU;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"addDataAndFileToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addDataAndFileToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKvD,KAAK,uBAAuB,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,uBA+GrC,CAAA"}
1
+ {"version":3,"file":"addDataAndFileToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addDataAndFileToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAOvD,KAAK,uBAAuB,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,uBA4ErC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { APIError } from '../errors/APIError.js';
2
2
  import { processMultipartFormdata } from '../uploads/fetchAPI-multipart/index.js';
3
+ import { getFileFromUploadInstructions } from '../uploads/getFileFromUploadInstructions.js';
3
4
  /**
4
5
  * Mutates the Request, appending 'data' and 'file' if found
5
6
  */ export const addDataAndFileToRequest = async (req)=>{
@@ -50,56 +51,22 @@ import { processMultipartFormdata } from '../uploads/fetchAPI-multipart/index.js
50
51
  req.data = JSON.parse(fields._payload);
51
52
  }
52
53
  if (!req.file && fields?.file && typeof fields?.file === 'string') {
53
- let clientUploadContext, collectionSlug, filename, mimeType, size;
54
+ let uploadedFile;
54
55
  try {
55
- ;
56
- ({ clientUploadContext, collectionSlug, filename, mimeType, size } = JSON.parse(fields.file));
56
+ uploadedFile = JSON.parse(fields.file);
57
57
  } catch {
58
58
  throw new APIError('A file name is required.', 400);
59
59
  }
60
- const uploadConfig = req.payload.collections[collectionSlug].config.upload;
61
- if (!uploadConfig.handlers) {
62
- throw new APIError('uploadConfig.handlers is not present for ' + collectionSlug);
60
+ const collectionSlug = typeof req.routeParams?.collection === 'string' ? req.routeParams.collection : uploadedFile.collectionSlug;
61
+ const uploadConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config.upload : undefined;
62
+ if (!collectionSlug || !uploadConfig) {
63
+ throw new APIError('Invalid upload collection.', 400);
63
64
  }
64
- let response = null;
65
- let error;
66
- for (const handler of uploadConfig.handlers){
67
- try {
68
- const result = await handler(req, {
69
- doc: null,
70
- params: {
71
- clientUploadContext,
72
- collection: collectionSlug,
73
- filename
74
- }
75
- });
76
- if (result) {
77
- response = result;
78
- }
79
- // If we couldn't get the file from that handler, save the error and try other.
80
- } catch (err) {
81
- error = err;
82
- }
83
- }
84
- if (!response) {
85
- if (error) {
86
- payload.logger.error(error);
87
- }
88
- throw new APIError('Expected response from the upload handler.');
89
- }
90
- if (response.status >= 300 && response.status < 400) {
91
- const redirectUrl = response.headers.get('Location');
92
- if (redirectUrl) {
93
- response = await fetch(redirectUrl);
94
- }
95
- }
96
- req.file = {
97
- name: filename,
98
- clientUploadContext,
99
- data: Buffer.from(await response.arrayBuffer()),
100
- mimetype: response.headers.get('Content-Type') || mimeType,
101
- size
102
- };
65
+ req.file = await getFileFromUploadInstructions({
66
+ collectionSlug,
67
+ file: uploadedFile,
68
+ req
69
+ });
103
70
  }
104
71
  }
105
72
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/addDataAndFileToRequest.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.js'\n\nimport { APIError } from '../errors/APIError.js'\nimport { processMultipartFormdata } from '../uploads/fetchAPI-multipart/index.js'\n\ntype AddDataAndFileToRequest = (req: PayloadRequest) => Promise<void>\n\n/**\n * Mutates the Request, appending 'data' and 'file' if found\n */\nexport const addDataAndFileToRequest: AddDataAndFileToRequest = async (req) => {\n const { body, headers, method, payload } = req\n\n if (method && ['PATCH', 'POST', 'PUT'].includes(method.toUpperCase()) && body) {\n const [contentType] = (headers.get('Content-Type') || '').split(';', 1)\n const bodyByteSize = parseInt(req.headers.get('Content-Length') || '0', 10)\n const hasBodyStream = req.body !== null\n\n if (contentType === 'application/json') {\n try {\n const text = await req.text?.()\n const data = text ? JSON.parse(text) : {}\n req.data = data\n // @ts-expect-error attach json method to request\n req.json = () => Promise.resolve(data)\n } catch (error) {\n if (error instanceof SyntaxError) {\n throw new APIError('Invalid JSON', 400)\n }\n req.payload.logger.error(error)\n throw error\n }\n } else if ((bodyByteSize || hasBodyStream) && contentType?.includes('multipart/')) {\n const { error, fields, files } = await processMultipartFormdata({\n options: {\n ...(payload.config.bodyParser || {}),\n ...(payload.config.upload || {}),\n },\n request: req as Request,\n })\n\n if (error) {\n throw new APIError(error.message)\n }\n\n // Set all files on req.files for access by hooks\n if (files) {\n req.files = files\n // Backwards compatibility: set req.file for standard upload collections\n // Guard: if multiple files share the field name \"file\", files.file is an array — skip\n if (files.file && !Array.isArray(files.file)) {\n req.file = files.file\n }\n }\n\n if (fields?._payload && typeof fields._payload === 'string') {\n req.data = JSON.parse(fields._payload)\n }\n\n if (!req.file && fields?.file && typeof fields?.file === 'string') {\n let clientUploadContext, collectionSlug, filename, mimeType, size\n try {\n ;({ clientUploadContext, collectionSlug, filename, mimeType, size } = JSON.parse(\n fields.file,\n ))\n } catch {\n throw new APIError('A file name is required.', 400)\n }\n const uploadConfig = req.payload.collections[collectionSlug]!.config.upload\n\n if (!uploadConfig.handlers) {\n throw new APIError('uploadConfig.handlers is not present for ' + collectionSlug)\n }\n\n let response: null | Response = null\n let error: unknown\n\n for (const handler of uploadConfig.handlers) {\n try {\n const result = await handler(req, {\n doc: null!,\n params: {\n clientUploadContext, // Pass additional specific to adapters context returned from UploadHandler, then staticHandler can use them.\n collection: collectionSlug,\n filename,\n },\n })\n if (result) {\n response = result\n }\n // If we couldn't get the file from that handler, save the error and try other.\n } catch (err) {\n error = err\n }\n }\n\n if (!response) {\n if (error) {\n payload.logger.error(error)\n }\n\n throw new APIError('Expected response from the upload handler.')\n }\n\n if (response.status >= 300 && response.status < 400) {\n const redirectUrl = response.headers.get('Location')\n if (redirectUrl) {\n response = await fetch(redirectUrl)\n }\n }\n\n req.file = {\n name: filename,\n clientUploadContext,\n data: Buffer.from(await response.arrayBuffer()),\n mimetype: response.headers.get('Content-Type') || mimeType,\n size,\n }\n }\n }\n }\n}\n"],"names":["APIError","processMultipartFormdata","addDataAndFileToRequest","req","body","headers","method","payload","includes","toUpperCase","contentType","get","split","bodyByteSize","parseInt","hasBodyStream","text","data","JSON","parse","json","Promise","resolve","error","SyntaxError","logger","fields","files","options","config","bodyParser","upload","request","message","file","Array","isArray","_payload","clientUploadContext","collectionSlug","filename","mimeType","size","uploadConfig","collections","handlers","response","handler","result","doc","params","collection","err","status","redirectUrl","fetch","name","Buffer","from","arrayBuffer","mimetype"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/addDataAndFileToRequest.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.js'\nimport type { UploadInstructions } from '../uploads/types.js'\n\nimport { APIError } from '../errors/APIError.js'\nimport { processMultipartFormdata } from '../uploads/fetchAPI-multipart/index.js'\nimport { getFileFromUploadInstructions } from '../uploads/getFileFromUploadInstructions.js'\n\ntype AddDataAndFileToRequest = (req: PayloadRequest) => Promise<void>\n\n/**\n * Mutates the Request, appending 'data' and 'file' if found\n */\nexport const addDataAndFileToRequest: AddDataAndFileToRequest = async (req) => {\n const { body, headers, method, payload } = req\n\n if (method && ['PATCH', 'POST', 'PUT'].includes(method.toUpperCase()) && body) {\n const [contentType] = (headers.get('Content-Type') || '').split(';', 1)\n const bodyByteSize = parseInt(req.headers.get('Content-Length') || '0', 10)\n const hasBodyStream = req.body !== null\n\n if (contentType === 'application/json') {\n try {\n const text = await req.text?.()\n const data = text ? JSON.parse(text) : {}\n req.data = data\n // @ts-expect-error attach json method to request\n req.json = () => Promise.resolve(data)\n } catch (error) {\n if (error instanceof SyntaxError) {\n throw new APIError('Invalid JSON', 400)\n }\n req.payload.logger.error(error)\n throw error\n }\n } else if ((bodyByteSize || hasBodyStream) && contentType?.includes('multipart/')) {\n const { error, fields, files } = await processMultipartFormdata({\n options: {\n ...(payload.config.bodyParser || {}),\n ...(payload.config.upload || {}),\n },\n request: req as Request,\n })\n\n if (error) {\n throw new APIError(error.message)\n }\n\n // Set all files on req.files for access by hooks\n if (files) {\n req.files = files\n // Backwards compatibility: set req.file for standard upload collections\n // Guard: if multiple files share the field name \"file\", files.file is an array — skip\n if (files.file && !Array.isArray(files.file)) {\n req.file = files.file\n }\n }\n\n if (fields?._payload && typeof fields._payload === 'string') {\n req.data = JSON.parse(fields._payload)\n }\n\n if (!req.file && fields?.file && typeof fields?.file === 'string') {\n let uploadedFile: UploadInstructions['file']\n try {\n uploadedFile = JSON.parse(fields.file)\n } catch {\n throw new APIError('A file name is required.', 400)\n }\n const collectionSlug =\n typeof req.routeParams?.collection === 'string'\n ? req.routeParams.collection\n : uploadedFile.collectionSlug\n const uploadConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config.upload\n : undefined\n\n if (!collectionSlug || !uploadConfig) {\n throw new APIError('Invalid upload collection.', 400)\n }\n\n req.file = await getFileFromUploadInstructions({\n collectionSlug,\n file: uploadedFile,\n req,\n })\n }\n }\n }\n}\n"],"names":["APIError","processMultipartFormdata","getFileFromUploadInstructions","addDataAndFileToRequest","req","body","headers","method","payload","includes","toUpperCase","contentType","get","split","bodyByteSize","parseInt","hasBodyStream","text","data","JSON","parse","json","Promise","resolve","error","SyntaxError","logger","fields","files","options","config","bodyParser","upload","request","message","file","Array","isArray","_payload","uploadedFile","collectionSlug","routeParams","collection","uploadConfig","collections","undefined"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,wBAAuB;AAChD,SAASC,wBAAwB,QAAQ,yCAAwC;AACjF,SAASC,6BAA6B,QAAQ,8CAA6C;AAI3F;;CAEC,GACD,OAAO,MAAMC,0BAAmD,OAAOC;IACrE,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGJ;IAE3C,IAAIG,UAAU;QAAC;QAAS;QAAQ;KAAM,CAACE,QAAQ,CAACF,OAAOG,WAAW,OAAOL,MAAM;QAC7E,MAAM,CAACM,YAAY,GAAG,AAACL,CAAAA,QAAQM,GAAG,CAAC,mBAAmB,EAAC,EAAGC,KAAK,CAAC,KAAK;QACrE,MAAMC,eAAeC,SAASX,IAAIE,OAAO,CAACM,GAAG,CAAC,qBAAqB,KAAK;QACxE,MAAMI,gBAAgBZ,IAAIC,IAAI,KAAK;QAEnC,IAAIM,gBAAgB,oBAAoB;YACtC,IAAI;gBACF,MAAMM,OAAO,MAAMb,IAAIa,IAAI;gBAC3B,MAAMC,OAAOD,OAAOE,KAAKC,KAAK,CAACH,QAAQ,CAAC;gBACxCb,IAAIc,IAAI,GAAGA;gBACX,iDAAiD;gBACjDd,IAAIiB,IAAI,GAAG,IAAMC,QAAQC,OAAO,CAACL;YACnC,EAAE,OAAOM,OAAO;gBACd,IAAIA,iBAAiBC,aAAa;oBAChC,MAAM,IAAIzB,SAAS,gBAAgB;gBACrC;gBACAI,IAAII,OAAO,CAACkB,MAAM,CAACF,KAAK,CAACA;gBACzB,MAAMA;YACR;QACF,OAAO,IAAI,AAACV,CAAAA,gBAAgBE,aAAY,KAAML,aAAaF,SAAS,eAAe;YACjF,MAAM,EAAEe,KAAK,EAAEG,MAAM,EAAEC,KAAK,EAAE,GAAG,MAAM3B,yBAAyB;gBAC9D4B,SAAS;oBACP,GAAIrB,QAAQsB,MAAM,CAACC,UAAU,IAAI,CAAC,CAAC;oBACnC,GAAIvB,QAAQsB,MAAM,CAACE,MAAM,IAAI,CAAC,CAAC;gBACjC;gBACAC,SAAS7B;YACX;YAEA,IAAIoB,OAAO;gBACT,MAAM,IAAIxB,SAASwB,MAAMU,OAAO;YAClC;YAEA,iDAAiD;YACjD,IAAIN,OAAO;gBACTxB,IAAIwB,KAAK,GAAGA;gBACZ,wEAAwE;gBACxE,sFAAsF;gBACtF,IAAIA,MAAMO,IAAI,IAAI,CAACC,MAAMC,OAAO,CAACT,MAAMO,IAAI,GAAG;oBAC5C/B,IAAI+B,IAAI,GAAGP,MAAMO,IAAI;gBACvB;YACF;YAEA,IAAIR,QAAQW,YAAY,OAAOX,OAAOW,QAAQ,KAAK,UAAU;gBAC3DlC,IAAIc,IAAI,GAAGC,KAAKC,KAAK,CAACO,OAAOW,QAAQ;YACvC;YAEA,IAAI,CAAClC,IAAI+B,IAAI,IAAIR,QAAQQ,QAAQ,OAAOR,QAAQQ,SAAS,UAAU;gBACjE,IAAII;gBACJ,IAAI;oBACFA,eAAepB,KAAKC,KAAK,CAACO,OAAOQ,IAAI;gBACvC,EAAE,OAAM;oBACN,MAAM,IAAInC,SAAS,4BAA4B;gBACjD;gBACA,MAAMwC,iBACJ,OAAOpC,IAAIqC,WAAW,EAAEC,eAAe,WACnCtC,IAAIqC,WAAW,CAACC,UAAU,GAC1BH,aAAaC,cAAc;gBACjC,MAAMG,eAAeH,iBACjBpC,IAAII,OAAO,CAACoC,WAAW,CAACJ,eAAe,EAAEV,OAAOE,SAChDa;gBAEJ,IAAI,CAACL,kBAAkB,CAACG,cAAc;oBACpC,MAAM,IAAI3C,SAAS,8BAA8B;gBACnD;gBAEAI,IAAI+B,IAAI,GAAG,MAAMjC,8BAA8B;oBAC7CsC;oBACAL,MAAMI;oBACNnC;gBACF;YACF;QACF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"addLocalesToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addLocalesToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CA0CrE;AAED,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,mBAAmB,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;CAC9C,CAAA;AACD,KAAK,qBAAqB,GAAG;IAC3B,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,eAAO,MAAM,eAAe,GAAI,2CAI7B,mBAAmB,KAAG,qBAqBxB,CAAA"}
1
+ {"version":3,"file":"addLocalesToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addLocalesToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CA0CrE;AAED,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,mBAAmB,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;CAC9C,CAAA;AACD,KAAK,qBAAqB,GAAG;IAC3B,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,eAAO,MAAM,eAAe,8CAIzB,mBAAmB,KAAG,qBAqBxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"addSelectGenericsToGeneretedTypes.d.ts","sourceRoot":"","sources":["../../src/utilities/addSelectGenericsToGeneretedTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,GAAI,6BAE/C;IACD,sBAAsB,EAAE,MAAM,CAAA;CAC/B,WAoDA,CAAA"}
1
+ {"version":3,"file":"addSelectGenericsToGeneretedTypes.d.ts","sourceRoot":"","sources":["../../src/utilities/addSelectGenericsToGeneretedTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,gCAE3C;IACD,sBAAsB,EAAE,MAAM,CAAA;CAC/B,WAoDA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"appendDateTimezoneSelectFields.d.ts","sourceRoot":"","sources":["../../src/utilities/appendDateTimezoneSelectFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,qBAG5C;IACD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,UAAU,CAAA;CACnB,SAoDA,CAAA"}
1
+ {"version":3,"file":"appendDateTimezoneSelectFields.d.ts","sourceRoot":"","sources":["../../src/utilities/appendDateTimezoneSelectFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,wBAGxC;IACD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,UAAU,CAAA;CACnB,SAoDA,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import type { Where } from '../types/index.js';
2
2
  export declare const appendNonTrashedFilter: ({ deletedAtPath, enableTrash, trash, where, }: {
3
3
  deletedAtPath?: string;
4
- enableTrash: boolean;
4
+ enableTrash?: boolean;
5
5
  trash?: boolean;
6
6
  where: Where;
7
7
  }) => Where;
@@ -1 +1 @@
1
- {"version":3,"file":"appendNonTrashedFilter.d.ts","sourceRoot":"","sources":["../../src/utilities/appendNonTrashedFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C,eAAO,MAAM,sBAAsB,GAAI,+CAKpC;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;CACb,KAAG,KAmBH,CAAA"}
1
+ {"version":3,"file":"appendNonTrashedFilter.d.ts","sourceRoot":"","sources":["../../src/utilities/appendNonTrashedFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C,eAAO,MAAM,sBAAsB,kDAKhC;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;CACb,KAAG,KAmBH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/appendNonTrashedFilter.ts"],"sourcesContent":["import type { Where } from '../types/index.js'\n\nexport const appendNonTrashedFilter = ({\n deletedAtPath = 'deletedAt',\n enableTrash,\n trash,\n where,\n}: {\n deletedAtPath?: string\n enableTrash: boolean\n trash?: boolean\n where: Where\n}): Where => {\n if (!enableTrash || trash) {\n return where\n }\n\n const notTrashedFilter = {\n [deletedAtPath]: { exists: false },\n }\n\n if (where?.and) {\n return {\n ...where,\n and: [...where.and, notTrashedFilter],\n }\n }\n\n return {\n and: [notTrashedFilter, ...(where ? [where] : [])],\n }\n}\n"],"names":["appendNonTrashedFilter","deletedAtPath","enableTrash","trash","where","notTrashedFilter","exists","and"],"mappings":"AAEA,OAAO,MAAMA,yBAAyB,CAAC,EACrCC,gBAAgB,WAAW,EAC3BC,WAAW,EACXC,KAAK,EACLC,KAAK,EAMN;IACC,IAAI,CAACF,eAAeC,OAAO;QACzB,OAAOC;IACT;IAEA,MAAMC,mBAAmB;QACvB,CAACJ,cAAc,EAAE;YAAEK,QAAQ;QAAM;IACnC;IAEA,IAAIF,OAAOG,KAAK;QACd,OAAO;YACL,GAAGH,KAAK;YACRG,KAAK;mBAAIH,MAAMG,GAAG;gBAAEF;aAAiB;QACvC;IACF;IAEA,OAAO;QACLE,KAAK;YAACF;eAAsBD,QAAQ;gBAACA;aAAM,GAAG,EAAE;SAAE;IACpD;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/appendNonTrashedFilter.ts"],"sourcesContent":["import type { Where } from '../types/index.js'\n\nexport const appendNonTrashedFilter = ({\n deletedAtPath = 'deletedAt',\n enableTrash,\n trash,\n where,\n}: {\n deletedAtPath?: string\n enableTrash?: boolean\n trash?: boolean\n where: Where\n}): Where => {\n if (!enableTrash || trash) {\n return where\n }\n\n const notTrashedFilter = {\n [deletedAtPath]: { exists: false },\n }\n\n if (where?.and) {\n return {\n ...where,\n and: [...where.and, notTrashedFilter],\n }\n }\n\n return {\n and: [notTrashedFilter, ...(where ? [where] : [])],\n }\n}\n"],"names":["appendNonTrashedFilter","deletedAtPath","enableTrash","trash","where","notTrashedFilter","exists","and"],"mappings":"AAEA,OAAO,MAAMA,yBAAyB,CAAC,EACrCC,gBAAgB,WAAW,EAC3BC,WAAW,EACXC,KAAK,EACLC,KAAK,EAMN;IACC,IAAI,CAACF,eAAeC,OAAO;QACzB,OAAOC;IACT;IAEA,MAAMC,mBAAmB;QACvB,CAACJ,cAAc,EAAE;YAAEK,QAAQ;QAAM;IACnC;IAEA,IAAIF,OAAOG,KAAK;QACd,OAAO;YACL,GAAGH,KAAK;YACRG,KAAK;mBAAIH,MAAMG,GAAG;gBAAEF;aAAiB;QACvC;IACF;IAEA,OAAO;QACLE,KAAK;YAACF;eAAsBD,QAAQ;gBAACA;aAAM,GAAG,EAAE;SAAE;IACpD;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"appendUploadSelectFields.d.ts","sourceRoot":"","sources":["../../src/utilities/appendUploadSelectFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEhG;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,+BAGtC;IACD,gBAAgB,EAAE,sBAAsB,GAAG,yBAAyB,CAAA;IACpE,MAAM,EAAE,UAAU,CAAA;CACnB,SAuCA,CAAA"}
1
+ {"version":3,"file":"appendUploadSelectFields.d.ts","sourceRoot":"","sources":["../../src/utilities/appendUploadSelectFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEhG;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,kCAGlC;IACD,gBAAgB,EAAE,sBAAsB,GAAG,yBAAyB,CAAA;IACpE,MAAM,EAAE,UAAU,CAAA;CACnB,SAuCA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"canAccessAdmin.d.ts","sourceRoot":"","sources":["../../src/utilities/canAccessAdmin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAU,SAAS;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,kBA8BpE,CAAA"}
1
+ {"version":3,"file":"canAccessAdmin.d.ts","sourceRoot":"","sources":["../../src/utilities/canAccessAdmin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,YAAmB;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,kBA8BpE,CAAA"}
@@ -13,6 +13,7 @@ import { UnauthorizedError } from '../errors/UnauthorizedError.js';
13
13
  const adminAccessFn = req.payload.collections[incomingUserSlug]?.config.access?.admin;
14
14
  if (adminAccessFn) {
15
15
  const canAccess = await adminAccessFn({
16
+ slug: incomingUserSlug,
16
17
  req
17
18
  });
18
19
  if (!canAccess) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/canAccessAdmin.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.js'\n\nimport { UnauthorizedError } from '../errors/UnauthorizedError.js'\n\n/**\n * Protects admin-only routes, server functions, etc.\n * The requesting user must either:\n * a. pass the `access.admin` function on the `users` collection, if defined\n * b. match the `config.admin.user` property on the Payload config\n * c. if no user is present, and there are no users in the system, allow access (for first user creation)\n * @throws {Error} Throws an `Unauthorized` error if access is denied that can be explicitly caught\n */\nexport const canAccessAdmin = async ({ req }: { req: PayloadRequest }) => {\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n if (incomingUserSlug) {\n const adminAccessFn = req.payload.collections[incomingUserSlug]?.config.access?.admin\n\n if (adminAccessFn) {\n const canAccess = await adminAccessFn({ req })\n\n if (!canAccess) {\n throw new UnauthorizedError()\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new UnauthorizedError()\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of `/create-first-user`\n if (hasUsers.docs.length) {\n throw new UnauthorizedError()\n }\n }\n}\n"],"names":["UnauthorizedError","canAccessAdmin","req","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFn","collections","access","canAccess","hasUsers","find","depth","limit","pagination","docs","length"],"mappings":"AAEA,SAASA,iBAAiB,QAAQ,iCAAgC;AAElE;;;;;;;CAOC,GACD,OAAO,MAAMC,iBAAiB,OAAO,EAAEC,GAAG,EAA2B;IACnE,MAAMC,mBAAmBD,IAAIE,IAAI,EAAEC;IACnC,MAAMC,gBAAgBJ,IAAIK,OAAO,CAACC,MAAM,CAACC,KAAK,CAACL,IAAI;IAEnD,IAAID,kBAAkB;QACpB,MAAMO,gBAAgBR,IAAIK,OAAO,CAACI,WAAW,CAACR,iBAAiB,EAAEK,OAAOI,QAAQH;QAEhF,IAAIC,eAAe;YACjB,MAAMG,YAAY,MAAMH,cAAc;gBAAER;YAAI;YAE5C,IAAI,CAACW,WAAW;gBACd,MAAM,IAAIb;YACZ;QACA,uDAAuD;QACzD,OAAO,IAAIM,kBAAkBH,kBAAkB;YAC7C,MAAM,IAAIH;QACZ;IACF,OAAO;QACL,MAAMc,WAAW,MAAMZ,IAAIK,OAAO,CAACQ,IAAI,CAAC;YACtCV,YAAYC;YACZU,OAAO;YACPC,OAAO;YACPC,YAAY;QACd;QAEA,iFAAiF;QACjF,IAAIJ,SAASK,IAAI,CAACC,MAAM,EAAE;YACxB,MAAM,IAAIpB;QACZ;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/canAccessAdmin.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.js'\n\nimport { UnauthorizedError } from '../errors/UnauthorizedError.js'\n\n/**\n * Protects admin-only routes, server functions, etc.\n * The requesting user must either:\n * a. pass the `access.admin` function on the `users` collection, if defined\n * b. match the `config.admin.user` property on the Payload config\n * c. if no user is present, and there are no users in the system, allow access (for first user creation)\n * @throws {Error} Throws an `Unauthorized` error if access is denied that can be explicitly caught\n */\nexport const canAccessAdmin = async ({ req }: { req: PayloadRequest }) => {\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n if (incomingUserSlug) {\n const adminAccessFn = req.payload.collections[incomingUserSlug]?.config.access?.admin\n\n if (adminAccessFn) {\n const canAccess = await adminAccessFn({ slug: incomingUserSlug, req })\n\n if (!canAccess) {\n throw new UnauthorizedError()\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new UnauthorizedError()\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of `/create-first-user`\n if (hasUsers.docs.length) {\n throw new UnauthorizedError()\n }\n }\n}\n"],"names":["UnauthorizedError","canAccessAdmin","req","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFn","collections","access","canAccess","slug","hasUsers","find","depth","limit","pagination","docs","length"],"mappings":"AAEA,SAASA,iBAAiB,QAAQ,iCAAgC;AAElE;;;;;;;CAOC,GACD,OAAO,MAAMC,iBAAiB,OAAO,EAAEC,GAAG,EAA2B;IACnE,MAAMC,mBAAmBD,IAAIE,IAAI,EAAEC;IACnC,MAAMC,gBAAgBJ,IAAIK,OAAO,CAACC,MAAM,CAACC,KAAK,CAACL,IAAI;IAEnD,IAAID,kBAAkB;QACpB,MAAMO,gBAAgBR,IAAIK,OAAO,CAACI,WAAW,CAACR,iBAAiB,EAAEK,OAAOI,QAAQH;QAEhF,IAAIC,eAAe;YACjB,MAAMG,YAAY,MAAMH,cAAc;gBAAEI,MAAMX;gBAAkBD;YAAI;YAEpE,IAAI,CAACW,WAAW;gBACd,MAAM,IAAIb;YACZ;QACA,uDAAuD;QACzD,OAAO,IAAIM,kBAAkBH,kBAAkB;YAC7C,MAAM,IAAIH;QACZ;IACF,OAAO;QACL,MAAMe,WAAW,MAAMb,IAAIK,OAAO,CAACS,IAAI,CAAC;YACtCX,YAAYC;YACZW,OAAO;YACPC,OAAO;YACPC,YAAY;QACd;QAEA,iFAAiF;QACjF,IAAIJ,SAASK,IAAI,CAACC,MAAM,EAAE;YACxB,MAAM,IAAIrB;QACZ;IACF;AACF,EAAC"}
@@ -9,5 +9,24 @@ type CheckDocumentLockStatusArgs = {
9
9
  req: PayloadRequest;
10
10
  };
11
11
  export declare const checkDocumentLockStatus: ({ id, collectionSlug, globalSlug, lockDurationDefault, lockErrorMessage, overrideLock, req, }: CheckDocumentLockStatusArgs) => Promise<void>;
12
+ type BulkLockArgs = {
13
+ collectionSlug: string;
14
+ ids: (number | string)[];
15
+ req: PayloadRequest;
16
+ };
17
+ /**
18
+ * Batched counterpart to `checkDocumentLockStatus`. Resolves the lock state of every id with a
19
+ * single query instead of one per document, and returns the ids that are locked by another user.
20
+ * Callers are expected to report those ids as errors and leave them alone.
21
+ */
22
+ export declare const getLockedDocumentIds: ({ collectionSlug, ids, lockDurationDefault, overrideLock, req, }: {
23
+ lockDurationDefault?: number;
24
+ overrideLock?: boolean;
25
+ } & BulkLockArgs) => Promise<Set<string>>;
26
+ /**
27
+ * Batched counterpart to the lock cleanup `checkDocumentLockStatus` performs, so that bulk
28
+ * operations release every lock in one query instead of one per document.
29
+ */
30
+ export declare const deleteDocumentLocks: ({ collectionSlug, ids, req, }: BulkLockArgs) => Promise<void>;
12
31
  export {};
13
32
  //# sourceMappingURL=checkDocumentLockStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkDocumentLockStatus.d.ts","sourceRoot":"","sources":["../../src/utilities/checkDocumentLockStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKnE,KAAK,2BAA2B,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,+FAQ3C,2BAA2B,KAAG,OAAO,CAAC,IAAI,CAgF5C,CAAA"}
1
+ {"version":3,"file":"checkDocumentLockStatus.d.ts","sourceRoot":"","sources":["../../src/utilities/checkDocumentLockStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,cAAc,EAAS,MAAM,mBAAmB,CAAA;AAK1E,KAAK,2BAA2B,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,uBAAuB,kGAQjC,2BAA2B,KAAG,OAAO,CAAC,IAAI,CAgF5C,CAAA;AAED,KAAK,YAAY,GAAG;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAgBD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,qEAM9B;IACD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,YAAY,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CA+CrC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,kCAI7B,YAAY,KAAG,OAAO,CAAC,IAAI,CAa7B,CAAA"}
@@ -71,5 +71,79 @@ export const checkDocumentLockStatus = async ({ id, collectionSlug, globalSlug,
71
71
  where: lockedDocumentQuery
72
72
  });
73
73
  };
74
+ const buildBulkLockedDocumentQuery = (collectionSlug, ids)=>({
75
+ and: [
76
+ {
77
+ 'document.relationTo': {
78
+ equals: collectionSlug
79
+ }
80
+ },
81
+ {
82
+ 'document.value': {
83
+ in: ids
84
+ }
85
+ }
86
+ ]
87
+ });
88
+ const isLockingAvailable = (collectionSlug, req)=>{
89
+ const { payload } = req;
90
+ if (!payload.collections?.[lockedDocumentsCollectionSlug]) {
91
+ return false;
92
+ }
93
+ return payload.collections?.[collectionSlug]?.config?.lockDocuments !== false;
94
+ };
95
+ /**
96
+ * Batched counterpart to `checkDocumentLockStatus`. Resolves the lock state of every id with a
97
+ * single query instead of one per document, and returns the ids that are locked by another user.
98
+ * Callers are expected to report those ids as errors and leave them alone.
99
+ */ export const getLockedDocumentIds = async ({ collectionSlug, ids, lockDurationDefault = 300, overrideLock = true, req })=>{
100
+ const lockedIds = new Set();
101
+ if (overrideLock || !ids.length || !isLockingAvailable(collectionSlug, req)) {
102
+ return lockedIds;
103
+ }
104
+ const { payload } = req;
105
+ const lockDocumentsProp = payload.collections?.[collectionSlug]?.config?.lockDocuments;
106
+ const lockedDocumentResult = await payload.db.find({
107
+ collection: lockedDocumentsCollectionSlug,
108
+ limit: 0,
109
+ pagination: false,
110
+ sort: '-updatedAt',
111
+ where: buildBulkLockedDocumentQuery(collectionSlug, ids)
112
+ });
113
+ const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
114
+ const lockDurationInMilliseconds = lockDuration * 1000;
115
+ const currentUserId = req.user?.id;
116
+ const now = new Date().getTime();
117
+ const resolved = new Set();
118
+ for (const lockedDoc of lockedDocumentResult?.docs ?? []){
119
+ const documentId = String(lockedDoc.document?.value);
120
+ // Sorted by -updatedAt, so the first row seen for an id is its most recent lock
121
+ if (resolved.has(documentId)) {
122
+ continue;
123
+ }
124
+ resolved.add(documentId);
125
+ const lastEditedAt = new Date(lockedDoc?.updatedAt).getTime();
126
+ // document is locked by another user and the lock hasn't expired
127
+ if (lockedDoc.user?.value !== currentUserId && now - lastEditedAt <= lockDurationInMilliseconds) {
128
+ lockedIds.add(documentId);
129
+ }
130
+ }
131
+ return lockedIds;
132
+ };
133
+ /**
134
+ * Batched counterpart to the lock cleanup `checkDocumentLockStatus` performs, so that bulk
135
+ * operations release every lock in one query instead of one per document.
136
+ */ export const deleteDocumentLocks = async ({ collectionSlug, ids, req })=>{
137
+ const { payload } = req;
138
+ if (!ids.length || !isLockingAvailable(collectionSlug, req)) {
139
+ return;
140
+ }
141
+ await payload.db.deleteMany({
142
+ collection: lockedDocumentsCollectionSlug,
143
+ // Not passing req fails on postgres
144
+ req: payload.db.name === 'mongoose' ? undefined : req,
145
+ where: buildBulkLockedDocumentQuery(collectionSlug, ids)
146
+ });
147
+ };
74
148
 
75
149
  //# sourceMappingURL=checkDocumentLockStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/checkDocumentLockStatus.ts"],"sourcesContent":["import type { TypeWithID } from '../collections/config/types.js'\nimport type { PaginatedDocs } from '../database/types.js'\nimport type { JsonObject, PayloadRequest } from '../types/index.js'\n\nimport { Locked } from '../errors/index.js'\nimport { lockedDocumentsCollectionSlug } from '../locked-documents/config.js'\n\ntype CheckDocumentLockStatusArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n lockDurationDefault?: number\n lockErrorMessage?: string\n overrideLock?: boolean\n req: PayloadRequest\n}\n\nexport const checkDocumentLockStatus = async ({\n id,\n collectionSlug,\n globalSlug,\n lockDurationDefault = 300, // Default 5 minutes in seconds\n lockErrorMessage,\n overrideLock = true,\n req,\n}: CheckDocumentLockStatusArgs): Promise<void> => {\n const { payload } = req\n\n // Check if the locked-documents collection exists\n if (!payload.collections?.[lockedDocumentsCollectionSlug]) {\n // If the collection doesn't exist, locking is not available\n return\n }\n\n // Retrieve the lockDocuments property for either collection or global\n const lockDocumentsProp = collectionSlug\n ? payload.collections?.[collectionSlug]?.config?.lockDocuments\n : payload.config?.globals?.find((g) => g.slug === globalSlug)?.lockDocuments\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n let lockedDocumentQuery = {}\n\n if (collectionSlug) {\n lockedDocumentQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n { 'document.value': { equals: id } },\n ],\n }\n } else if (globalSlug) {\n lockedDocumentQuery = { globalSlug: { equals: globalSlug } }\n } else {\n throw new Error('Either collectionSlug or globalSlug must be provided.')\n }\n\n if (!isLockingEnabled) {\n return\n }\n\n // Only perform lock checks if overrideLock is false and locking is enabled\n if (!overrideLock) {\n const defaultLockErrorMessage = collectionSlug\n ? `Document with ID ${id} is currently locked by another user and cannot be modified.`\n : `Global document with slug \"${globalSlug}\" is currently locked by another user and cannot be modified.`\n\n const finalLockErrorMessage = lockErrorMessage || defaultLockErrorMessage\n\n const lockedDocumentResult: PaginatedDocs<JsonObject & TypeWithID> = await payload.db.find({\n collection: lockedDocumentsCollectionSlug,\n limit: 1,\n pagination: false,\n sort: '-updatedAt',\n where: lockedDocumentQuery,\n })\n\n // If there's a locked document, check lock conditions\n const lockedDoc = lockedDocumentResult?.docs[0]\n if (lockedDoc) {\n const lastEditedAt = new Date(lockedDoc?.updatedAt).getTime()\n const now = new Date().getTime()\n\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const currentUserId = req.user?.id\n\n // document is locked by another user and the lock hasn't expired\n if (\n lockedDoc.user?.value !== currentUserId &&\n now - lastEditedAt <= lockDurationInMilliseconds\n ) {\n throw new Locked(finalLockErrorMessage)\n }\n }\n }\n\n // Perform the delete operation regardless of overrideLock status\n await payload.db.deleteMany({\n collection: lockedDocumentsCollectionSlug,\n // Not passing req fails on postgres\n req: payload.db.name === 'mongoose' ? undefined : req,\n where: lockedDocumentQuery,\n })\n}\n"],"names":["Locked","lockedDocumentsCollectionSlug","checkDocumentLockStatus","id","collectionSlug","globalSlug","lockDurationDefault","lockErrorMessage","overrideLock","req","payload","collections","lockDocumentsProp","config","lockDocuments","globals","find","g","slug","isLockingEnabled","lockedDocumentQuery","and","equals","Error","defaultLockErrorMessage","finalLockErrorMessage","lockedDocumentResult","db","collection","limit","pagination","sort","where","lockedDoc","docs","lastEditedAt","Date","updatedAt","getTime","now","lockDuration","duration","lockDurationInMilliseconds","currentUserId","user","value","deleteMany","name","undefined"],"mappings":"AAIA,SAASA,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,6BAA6B,QAAQ,gCAA+B;AAY7E,OAAO,MAAMC,0BAA0B,OAAO,EAC5CC,EAAE,EACFC,cAAc,EACdC,UAAU,EACVC,sBAAsB,GAAG,EACzBC,gBAAgB,EAChBC,eAAe,IAAI,EACnBC,GAAG,EACyB;IAC5B,MAAM,EAAEC,OAAO,EAAE,GAAGD;IAEpB,kDAAkD;IAClD,IAAI,CAACC,QAAQC,WAAW,EAAE,CAACV,8BAA8B,EAAE;QACzD,4DAA4D;QAC5D;IACF;IAEA,sEAAsE;IACtE,MAAMW,oBAAoBR,iBACtBM,QAAQC,WAAW,EAAE,CAACP,eAAe,EAAES,QAAQC,gBAC/CJ,QAAQG,MAAM,EAAEE,SAASC,KAAK,CAACC,IAAMA,EAAEC,IAAI,KAAKb,aAAaS;IAEjE,MAAMK,mBAAmBP,sBAAsB;IAE/C,IAAIQ,sBAAsB,CAAC;IAE3B,IAAIhB,gBAAgB;QAClBgB,sBAAsB;YACpBC,KAAK;gBACH;oBAAE,uBAAuB;wBAAEC,QAAQlB;oBAAe;gBAAE;gBACpD;oBAAE,kBAAkB;wBAAEkB,QAAQnB;oBAAG;gBAAE;aACpC;QACH;IACF,OAAO,IAAIE,YAAY;QACrBe,sBAAsB;YAAEf,YAAY;gBAAEiB,QAAQjB;YAAW;QAAE;IAC7D,OAAO;QACL,MAAM,IAAIkB,MAAM;IAClB;IAEA,IAAI,CAACJ,kBAAkB;QACrB;IACF;IAEA,2EAA2E;IAC3E,IAAI,CAACX,cAAc;QACjB,MAAMgB,0BAA0BpB,iBAC5B,CAAC,iBAAiB,EAAED,GAAG,4DAA4D,CAAC,GACpF,CAAC,2BAA2B,EAAEE,WAAW,6DAA6D,CAAC;QAE3G,MAAMoB,wBAAwBlB,oBAAoBiB;QAElD,MAAME,uBAA+D,MAAMhB,QAAQiB,EAAE,CAACX,IAAI,CAAC;YACzFY,YAAY3B;YACZ4B,OAAO;YACPC,YAAY;YACZC,MAAM;YACNC,OAAOZ;QACT;QAEA,sDAAsD;QACtD,MAAMa,YAAYP,sBAAsBQ,IAAI,CAAC,EAAE;QAC/C,IAAID,WAAW;YACb,MAAME,eAAe,IAAIC,KAAKH,WAAWI,WAAWC,OAAO;YAC3D,MAAMC,MAAM,IAAIH,OAAOE,OAAO;YAE9B,MAAME,eACJ,OAAO5B,sBAAsB,WAAWA,kBAAkB6B,QAAQ,GAAGnC;YAEvE,MAAMoC,6BAA6BF,eAAe;YAClD,MAAMG,gBAAgBlC,IAAImC,IAAI,EAAEzC;YAEhC,iEAAiE;YACjE,IACE8B,UAAUW,IAAI,EAAEC,UAAUF,iBAC1BJ,MAAMJ,gBAAgBO,4BACtB;gBACA,MAAM,IAAI1C,OAAOyB;YACnB;QACF;IACF;IAEA,iEAAiE;IACjE,MAAMf,QAAQiB,EAAE,CAACmB,UAAU,CAAC;QAC1BlB,YAAY3B;QACZ,oCAAoC;QACpCQ,KAAKC,QAAQiB,EAAE,CAACoB,IAAI,KAAK,aAAaC,YAAYvC;QAClDuB,OAAOZ;IACT;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/checkDocumentLockStatus.ts"],"sourcesContent":["import type { TypeWithID } from '../collections/config/types.js'\nimport type { PaginatedDocs } from '../database/types.js'\nimport type { JsonObject, PayloadRequest, Where } from '../types/index.js'\n\nimport { Locked } from '../errors/index.js'\nimport { lockedDocumentsCollectionSlug } from '../locked-documents/config.js'\n\ntype CheckDocumentLockStatusArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n lockDurationDefault?: number\n lockErrorMessage?: string\n overrideLock?: boolean\n req: PayloadRequest\n}\n\nexport const checkDocumentLockStatus = async ({\n id,\n collectionSlug,\n globalSlug,\n lockDurationDefault = 300, // Default 5 minutes in seconds\n lockErrorMessage,\n overrideLock = true,\n req,\n}: CheckDocumentLockStatusArgs): Promise<void> => {\n const { payload } = req\n\n // Check if the locked-documents collection exists\n if (!payload.collections?.[lockedDocumentsCollectionSlug]) {\n // If the collection doesn't exist, locking is not available\n return\n }\n\n // Retrieve the lockDocuments property for either collection or global\n const lockDocumentsProp = collectionSlug\n ? payload.collections?.[collectionSlug]?.config?.lockDocuments\n : payload.config?.globals?.find((g) => g.slug === globalSlug)?.lockDocuments\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n let lockedDocumentQuery = {}\n\n if (collectionSlug) {\n lockedDocumentQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n { 'document.value': { equals: id } },\n ],\n }\n } else if (globalSlug) {\n lockedDocumentQuery = { globalSlug: { equals: globalSlug } }\n } else {\n throw new Error('Either collectionSlug or globalSlug must be provided.')\n }\n\n if (!isLockingEnabled) {\n return\n }\n\n // Only perform lock checks if overrideLock is false and locking is enabled\n if (!overrideLock) {\n const defaultLockErrorMessage = collectionSlug\n ? `Document with ID ${id} is currently locked by another user and cannot be modified.`\n : `Global document with slug \"${globalSlug}\" is currently locked by another user and cannot be modified.`\n\n const finalLockErrorMessage = lockErrorMessage || defaultLockErrorMessage\n\n const lockedDocumentResult: PaginatedDocs<JsonObject & TypeWithID> = await payload.db.find({\n collection: lockedDocumentsCollectionSlug,\n limit: 1,\n pagination: false,\n sort: '-updatedAt',\n where: lockedDocumentQuery,\n })\n\n // If there's a locked document, check lock conditions\n const lockedDoc = lockedDocumentResult?.docs[0]\n if (lockedDoc) {\n const lastEditedAt = new Date(lockedDoc?.updatedAt).getTime()\n const now = new Date().getTime()\n\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const currentUserId = req.user?.id\n\n // document is locked by another user and the lock hasn't expired\n if (\n lockedDoc.user?.value !== currentUserId &&\n now - lastEditedAt <= lockDurationInMilliseconds\n ) {\n throw new Locked(finalLockErrorMessage)\n }\n }\n }\n\n // Perform the delete operation regardless of overrideLock status\n await payload.db.deleteMany({\n collection: lockedDocumentsCollectionSlug,\n // Not passing req fails on postgres\n req: payload.db.name === 'mongoose' ? undefined : req,\n where: lockedDocumentQuery,\n })\n}\n\ntype BulkLockArgs = {\n collectionSlug: string\n ids: (number | string)[]\n req: PayloadRequest\n}\n\nconst buildBulkLockedDocumentQuery = (collectionSlug: string, ids: (number | string)[]): Where => ({\n and: [{ 'document.relationTo': { equals: collectionSlug } }, { 'document.value': { in: ids } }],\n})\n\nconst isLockingAvailable = (collectionSlug: string, req: PayloadRequest): boolean => {\n const { payload } = req\n\n if (!payload.collections?.[lockedDocumentsCollectionSlug]) {\n return false\n }\n\n return payload.collections?.[collectionSlug]?.config?.lockDocuments !== false\n}\n\n/**\n * Batched counterpart to `checkDocumentLockStatus`. Resolves the lock state of every id with a\n * single query instead of one per document, and returns the ids that are locked by another user.\n * Callers are expected to report those ids as errors and leave them alone.\n */\nexport const getLockedDocumentIds = async ({\n collectionSlug,\n ids,\n lockDurationDefault = 300, // Default 5 minutes in seconds\n overrideLock = true,\n req,\n}: {\n lockDurationDefault?: number\n overrideLock?: boolean\n} & BulkLockArgs): Promise<Set<string>> => {\n const lockedIds = new Set<string>()\n\n if (overrideLock || !ids.length || !isLockingAvailable(collectionSlug, req)) {\n return lockedIds\n }\n\n const { payload } = req\n const lockDocumentsProp = payload.collections?.[collectionSlug]?.config?.lockDocuments\n\n const lockedDocumentResult: PaginatedDocs<JsonObject & TypeWithID> = await payload.db.find({\n collection: lockedDocumentsCollectionSlug,\n limit: 0,\n pagination: false,\n sort: '-updatedAt',\n where: buildBulkLockedDocumentQuery(collectionSlug, ids),\n })\n\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const currentUserId = req.user?.id\n const now = new Date().getTime()\n const resolved = new Set<string>()\n\n for (const lockedDoc of lockedDocumentResult?.docs ?? []) {\n const documentId = String(lockedDoc.document?.value)\n\n // Sorted by -updatedAt, so the first row seen for an id is its most recent lock\n if (resolved.has(documentId)) {\n continue\n }\n resolved.add(documentId)\n\n const lastEditedAt = new Date(lockedDoc?.updatedAt).getTime()\n\n // document is locked by another user and the lock hasn't expired\n if (\n lockedDoc.user?.value !== currentUserId &&\n now - lastEditedAt <= lockDurationInMilliseconds\n ) {\n lockedIds.add(documentId)\n }\n }\n\n return lockedIds\n}\n\n/**\n * Batched counterpart to the lock cleanup `checkDocumentLockStatus` performs, so that bulk\n * operations release every lock in one query instead of one per document.\n */\nexport const deleteDocumentLocks = async ({\n collectionSlug,\n ids,\n req,\n}: BulkLockArgs): Promise<void> => {\n const { payload } = req\n\n if (!ids.length || !isLockingAvailable(collectionSlug, req)) {\n return\n }\n\n await payload.db.deleteMany({\n collection: lockedDocumentsCollectionSlug,\n // Not passing req fails on postgres\n req: payload.db.name === 'mongoose' ? undefined : req,\n where: buildBulkLockedDocumentQuery(collectionSlug, ids),\n })\n}\n"],"names":["Locked","lockedDocumentsCollectionSlug","checkDocumentLockStatus","id","collectionSlug","globalSlug","lockDurationDefault","lockErrorMessage","overrideLock","req","payload","collections","lockDocumentsProp","config","lockDocuments","globals","find","g","slug","isLockingEnabled","lockedDocumentQuery","and","equals","Error","defaultLockErrorMessage","finalLockErrorMessage","lockedDocumentResult","db","collection","limit","pagination","sort","where","lockedDoc","docs","lastEditedAt","Date","updatedAt","getTime","now","lockDuration","duration","lockDurationInMilliseconds","currentUserId","user","value","deleteMany","name","undefined","buildBulkLockedDocumentQuery","ids","in","isLockingAvailable","getLockedDocumentIds","lockedIds","Set","length","resolved","documentId","String","document","has","add","deleteDocumentLocks"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configToJSONSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/configToJSONSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configToJSONSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/configToJSONSchema.ts"],"names":[],"mappings":"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"}
@@ -450,6 +450,7 @@ export function fieldsToJSONSchema({ collectionIDFieldTypes, config, fields, for
450
450
  case 'code':
451
451
  case 'date':
452
452
  case 'email':
453
+ case 'slug':
453
454
  case 'textarea':
454
455
  {
455
456
  fieldSchema = {
@@ -883,8 +884,8 @@ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, def
883
884
  mutableFields.unshift(idField);
884
885
  }
885
886
  if (isInput) {
886
- // Managed by Payload, not set by a client.
887
- mutableFields = mutableFields.filter((field)=>field.name !== 'createdAt' && field.name !== 'updatedAt' && field.name !== '_status');
887
+ // Timestamps are managed by Payload. `_status` remains because create/update accept it.
888
+ mutableFields = mutableFields.filter((field)=>field.name !== 'createdAt' && field.name !== 'updatedAt');
888
889
  } else if ('timestamps' in entity && entity.timestamps !== false) {
889
890
  // mark timestamp fields required
890
891
  mutableFields = mutableFields.map((field)=>{