payload 4.0.0-internal.e7d4ebc → 4.0.0-internal.ee5d8bd

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 (2159) hide show
  1. package/bin.js +17 -24
  2. package/dist/admin/RichText.d.ts +26 -4
  3. package/dist/admin/RichText.d.ts.map +1 -1
  4. package/dist/admin/RichText.js.map +1 -1
  5. package/dist/admin/adapters/devReload.d.ts +13 -0
  6. package/dist/admin/adapters/devReload.d.ts.map +1 -1
  7. package/dist/admin/adapters/devReload.js +14 -1
  8. package/dist/admin/adapters/devReload.js.map +1 -1
  9. package/dist/admin/adapters/router.d.ts +1 -1
  10. package/dist/admin/adapters/router.d.ts.map +1 -1
  11. package/dist/admin/adapters/router.js.map +1 -1
  12. package/dist/admin/fields/Array.d.ts +11 -13
  13. package/dist/admin/fields/Array.d.ts.map +1 -1
  14. package/dist/admin/fields/Array.js.map +1 -1
  15. package/dist/admin/fields/Blocks.d.ts +13 -16
  16. package/dist/admin/fields/Blocks.d.ts.map +1 -1
  17. package/dist/admin/fields/Blocks.js.map +1 -1
  18. package/dist/admin/fields/Checkbox.d.ts +11 -13
  19. package/dist/admin/fields/Checkbox.d.ts.map +1 -1
  20. package/dist/admin/fields/Checkbox.js.map +1 -1
  21. package/dist/admin/fields/Code.d.ts +11 -13
  22. package/dist/admin/fields/Code.d.ts.map +1 -1
  23. package/dist/admin/fields/Code.js.map +1 -1
  24. package/dist/admin/fields/Collapsible.d.ts +11 -13
  25. package/dist/admin/fields/Collapsible.d.ts.map +1 -1
  26. package/dist/admin/fields/Collapsible.js.map +1 -1
  27. package/dist/admin/fields/Date.d.ts +11 -13
  28. package/dist/admin/fields/Date.d.ts.map +1 -1
  29. package/dist/admin/fields/Date.js.map +1 -1
  30. package/dist/admin/fields/Email.d.ts +11 -13
  31. package/dist/admin/fields/Email.d.ts.map +1 -1
  32. package/dist/admin/fields/Email.js.map +1 -1
  33. package/dist/admin/fields/Group.d.ts +11 -13
  34. package/dist/admin/fields/Group.d.ts.map +1 -1
  35. package/dist/admin/fields/Group.js.map +1 -1
  36. package/dist/admin/fields/JSON.d.ts +11 -13
  37. package/dist/admin/fields/JSON.d.ts.map +1 -1
  38. package/dist/admin/fields/JSON.js.map +1 -1
  39. package/dist/admin/fields/Join.d.ts +12 -14
  40. package/dist/admin/fields/Join.d.ts.map +1 -1
  41. package/dist/admin/fields/Join.js.map +1 -1
  42. package/dist/admin/fields/Number.d.ts +11 -13
  43. package/dist/admin/fields/Number.d.ts.map +1 -1
  44. package/dist/admin/fields/Number.js.map +1 -1
  45. package/dist/admin/fields/Point.d.ts +11 -13
  46. package/dist/admin/fields/Point.d.ts.map +1 -1
  47. package/dist/admin/fields/Point.js.map +1 -1
  48. package/dist/admin/fields/Radio.d.ts +11 -13
  49. package/dist/admin/fields/Radio.d.ts.map +1 -1
  50. package/dist/admin/fields/Radio.js.map +1 -1
  51. package/dist/admin/fields/Relationship.d.ts +11 -13
  52. package/dist/admin/fields/Relationship.d.ts.map +1 -1
  53. package/dist/admin/fields/Relationship.js.map +1 -1
  54. package/dist/admin/fields/RichText.d.ts +13 -15
  55. package/dist/admin/fields/RichText.d.ts.map +1 -1
  56. package/dist/admin/fields/RichText.js.map +1 -1
  57. package/dist/admin/fields/Row.d.ts +10 -12
  58. package/dist/admin/fields/Row.d.ts.map +1 -1
  59. package/dist/admin/fields/Row.js.map +1 -1
  60. package/dist/admin/fields/Select.d.ts +11 -13
  61. package/dist/admin/fields/Select.d.ts.map +1 -1
  62. package/dist/admin/fields/Select.js.map +1 -1
  63. package/dist/admin/fields/Tabs.d.ts +11 -13
  64. package/dist/admin/fields/Tabs.d.ts.map +1 -1
  65. package/dist/admin/fields/Tabs.js.map +1 -1
  66. package/dist/admin/fields/Text.d.ts +11 -13
  67. package/dist/admin/fields/Text.d.ts.map +1 -1
  68. package/dist/admin/fields/Text.js.map +1 -1
  69. package/dist/admin/fields/Textarea.d.ts +11 -13
  70. package/dist/admin/fields/Textarea.d.ts.map +1 -1
  71. package/dist/admin/fields/Textarea.js.map +1 -1
  72. package/dist/admin/fields/UI.d.ts +3 -5
  73. package/dist/admin/fields/UI.d.ts.map +1 -1
  74. package/dist/admin/fields/UI.js.map +1 -1
  75. package/dist/admin/fields/Upload.d.ts +11 -13
  76. package/dist/admin/fields/Upload.d.ts.map +1 -1
  77. package/dist/admin/fields/Upload.js.map +1 -1
  78. package/dist/admin/forms/Description.d.ts +0 -2
  79. package/dist/admin/forms/Description.d.ts.map +1 -1
  80. package/dist/admin/forms/Description.js.map +1 -1
  81. package/dist/admin/forms/Diff.d.ts +5 -27
  82. package/dist/admin/forms/Diff.d.ts.map +1 -1
  83. package/dist/admin/forms/Diff.js.map +1 -1
  84. package/dist/admin/forms/Error.d.ts +0 -2
  85. package/dist/admin/forms/Error.d.ts.map +1 -1
  86. package/dist/admin/forms/Error.js.map +1 -1
  87. package/dist/admin/forms/Field.d.ts +6 -4
  88. package/dist/admin/forms/Field.d.ts.map +1 -1
  89. package/dist/admin/forms/Field.js.map +1 -1
  90. package/dist/admin/forms/Form.d.ts +2 -0
  91. package/dist/admin/forms/Form.d.ts.map +1 -1
  92. package/dist/admin/forms/Form.js.map +1 -1
  93. package/dist/admin/forms/Label.d.ts +2 -2
  94. package/dist/admin/forms/Label.d.ts.map +1 -1
  95. package/dist/admin/forms/Label.js.map +1 -1
  96. package/dist/admin/functions/index.d.ts +15 -7
  97. package/dist/admin/functions/index.d.ts.map +1 -1
  98. package/dist/admin/functions/index.js.map +1 -1
  99. package/dist/admin/getRequestLocale.d.ts +6 -0
  100. package/dist/admin/getRequestLocale.d.ts.map +1 -0
  101. package/dist/admin/getRequestLocale.js +38 -0
  102. package/dist/admin/getRequestLocale.js.map +1 -0
  103. package/dist/admin/initAdminContext.d.ts +39 -0
  104. package/dist/admin/initAdminContext.d.ts.map +1 -0
  105. package/dist/admin/initAdminContext.js +151 -0
  106. package/dist/admin/initAdminContext.js.map +1 -0
  107. package/dist/admin/types.d.ts +32 -32
  108. package/dist/admin/types.d.ts.map +1 -1
  109. package/dist/admin/types.js.map +1 -1
  110. package/dist/admin/views/dashboard.d.ts +2 -2
  111. package/dist/admin/views/dashboard.d.ts.map +1 -1
  112. package/dist/admin/views/dashboard.js.map +1 -1
  113. package/dist/admin/views/index.d.ts +2 -2
  114. package/dist/admin/views/index.d.ts.map +1 -1
  115. package/dist/admin/views/index.js.map +1 -1
  116. package/dist/admin/views/list.d.ts +22 -1
  117. package/dist/admin/views/list.d.ts.map +1 -1
  118. package/dist/admin/views/list.js.map +1 -1
  119. package/dist/auth/applyUserReadAccess.d.ts +13 -0
  120. package/dist/auth/applyUserReadAccess.d.ts.map +1 -0
  121. package/dist/auth/applyUserReadAccess.js +41 -0
  122. package/dist/auth/applyUserReadAccess.js.map +1 -0
  123. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts +4 -0
  124. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts.map +1 -0
  125. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js +20 -0
  126. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js.map +1 -0
  127. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts +4 -0
  128. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts.map +1 -0
  129. package/dist/auth/baseFields/apiKey/encryptAPIKey.js +11 -0
  130. package/dist/auth/baseFields/apiKey/encryptAPIKey.js.map +1 -0
  131. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.d.ts +3 -0
  132. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.d.ts.map +1 -0
  133. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.js +5 -0
  134. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.js.map +1 -0
  135. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts +5 -0
  136. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts.map +1 -0
  137. package/dist/auth/baseFields/apiKey/omitAPIKey.js +11 -0
  138. package/dist/auth/baseFields/apiKey/omitAPIKey.js.map +1 -0
  139. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts +4 -0
  140. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts.map +1 -0
  141. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js +5 -0
  142. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js.map +1 -0
  143. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts +4 -0
  144. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts.map +1 -0
  145. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js +5 -0
  146. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js.map +1 -0
  147. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts +4 -0
  148. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts.map +1 -0
  149. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js +12 -0
  150. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js.map +1 -0
  151. package/dist/auth/baseFields/apiKey/setKeyLast4.d.ts +4 -0
  152. package/dist/auth/baseFields/apiKey/setKeyLast4.d.ts.map +1 -0
  153. package/dist/auth/baseFields/apiKey/setKeyLast4.js +12 -0
  154. package/dist/auth/baseFields/apiKey/setKeyLast4.js.map +1 -0
  155. package/dist/auth/baseFields/apiKey.d.ts +6 -6
  156. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  157. package/dist/auth/baseFields/apiKey.js +88 -57
  158. package/dist/auth/baseFields/apiKey.js.map +1 -1
  159. package/dist/auth/baseFields/auth.d.ts +1 -0
  160. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  161. package/dist/auth/baseFields/auth.js +9 -0
  162. package/dist/auth/baseFields/auth.js.map +1 -1
  163. package/dist/auth/createAuthToken.d.ts +26 -0
  164. package/dist/auth/createAuthToken.d.ts.map +1 -0
  165. package/dist/auth/createAuthToken.js +39 -0
  166. package/dist/auth/createAuthToken.js.map +1 -0
  167. package/dist/auth/crypto.d.ts +73 -2
  168. package/dist/auth/crypto.d.ts.map +1 -1
  169. package/dist/auth/crypto.js +90 -13
  170. package/dist/auth/crypto.js.map +1 -1
  171. package/dist/auth/defaultUnlockAccess.d.ts +3 -0
  172. package/dist/auth/defaultUnlockAccess.d.ts.map +1 -0
  173. package/dist/auth/defaultUnlockAccess.js +8 -0
  174. package/dist/auth/defaultUnlockAccess.js.map +1 -0
  175. package/dist/auth/endpoints/access.d.ts.map +1 -1
  176. package/dist/auth/endpoints/access.js +1 -1
  177. package/dist/auth/endpoints/access.js.map +1 -1
  178. package/dist/auth/endpoints/forgotPassword.d.ts.map +1 -1
  179. package/dist/auth/endpoints/forgotPassword.js +1 -1
  180. package/dist/auth/endpoints/forgotPassword.js.map +1 -1
  181. package/dist/auth/endpoints/index.d.ts +1 -0
  182. package/dist/auth/endpoints/index.d.ts.map +1 -1
  183. package/dist/auth/endpoints/index.js +8 -0
  184. package/dist/auth/endpoints/index.js.map +1 -1
  185. package/dist/auth/endpoints/login.d.ts.map +1 -1
  186. package/dist/auth/endpoints/login.js +3 -12
  187. package/dist/auth/endpoints/login.js.map +1 -1
  188. package/dist/auth/endpoints/logout.d.ts.map +1 -1
  189. package/dist/auth/endpoints/logout.js +1 -1
  190. package/dist/auth/endpoints/logout.js.map +1 -1
  191. package/dist/auth/endpoints/me.d.ts.map +1 -1
  192. package/dist/auth/endpoints/me.js +1 -1
  193. package/dist/auth/endpoints/me.js.map +1 -1
  194. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  195. package/dist/auth/endpoints/refresh.js +6 -7
  196. package/dist/auth/endpoints/refresh.js.map +1 -1
  197. package/dist/auth/endpoints/registerFirstUser.d.ts.map +1 -1
  198. package/dist/auth/endpoints/registerFirstUser.js +1 -1
  199. package/dist/auth/endpoints/registerFirstUser.js.map +1 -1
  200. package/dist/auth/endpoints/resetPassword.d.ts.map +1 -1
  201. package/dist/auth/endpoints/resetPassword.js +1 -1
  202. package/dist/auth/endpoints/resetPassword.js.map +1 -1
  203. package/dist/auth/endpoints/revealAPIKey.d.ts +7 -0
  204. package/dist/auth/endpoints/revealAPIKey.d.ts.map +1 -0
  205. package/dist/auth/endpoints/revealAPIKey.js +122 -0
  206. package/dist/auth/endpoints/revealAPIKey.js.map +1 -0
  207. package/dist/auth/endpoints/unlock.d.ts.map +1 -1
  208. package/dist/auth/endpoints/unlock.js +1 -1
  209. package/dist/auth/endpoints/unlock.js.map +1 -1
  210. package/dist/auth/endpoints/verifyEmail.d.ts.map +1 -1
  211. package/dist/auth/endpoints/verifyEmail.js +1 -1
  212. package/dist/auth/endpoints/verifyEmail.js.map +1 -1
  213. package/dist/auth/executeAccess.d.ts +2 -1
  214. package/dist/auth/executeAccess.d.ts.map +1 -1
  215. package/dist/auth/executeAccess.js +2 -1
  216. package/dist/auth/executeAccess.js.map +1 -1
  217. package/dist/auth/getAccessResults.d.ts.map +1 -1
  218. package/dist/auth/getAccessResults.js +5 -2
  219. package/dist/auth/getAccessResults.js.map +1 -1
  220. package/dist/auth/getAuthFields.d.ts +1 -1
  221. package/dist/auth/getAuthFields.d.ts.map +1 -1
  222. package/dist/auth/getAuthFields.js +7 -4
  223. package/dist/auth/getAuthFields.js.map +1 -1
  224. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  225. package/dist/auth/getFieldsToSign.js +20 -10
  226. package/dist/auth/getFieldsToSign.js.map +1 -1
  227. package/dist/auth/getLoginOptions.js.map +1 -1
  228. package/dist/auth/jwt.d.ts.map +1 -1
  229. package/dist/auth/jwt.js +3 -1
  230. package/dist/auth/jwt.js.map +1 -1
  231. package/dist/auth/jwtAuth.d.ts +9 -0
  232. package/dist/auth/jwtAuth.d.ts.map +1 -0
  233. package/dist/auth/jwtAuth.js +8 -0
  234. package/dist/auth/jwtAuth.js.map +1 -0
  235. package/dist/auth/loginWithCookie.d.ts +33 -0
  236. package/dist/auth/loginWithCookie.d.ts.map +1 -0
  237. package/dist/auth/loginWithCookie.js +35 -0
  238. package/dist/auth/loginWithCookie.js.map +1 -0
  239. package/dist/auth/operations/access.d.ts.map +1 -1
  240. package/dist/auth/operations/access.js +3 -9
  241. package/dist/auth/operations/access.js.map +1 -1
  242. package/dist/auth/operations/auth.d.ts.map +1 -1
  243. package/dist/auth/operations/auth.js +16 -21
  244. package/dist/auth/operations/auth.js.map +1 -1
  245. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  246. package/dist/auth/operations/forgotPassword.js +100 -15
  247. package/dist/auth/operations/forgotPassword.js.map +1 -1
  248. package/dist/auth/operations/local/auth.js +7 -4
  249. package/dist/auth/operations/local/auth.js.map +1 -1
  250. package/dist/auth/operations/local/forgotPassword.d.ts +2 -2
  251. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  252. package/dist/auth/operations/local/forgotPassword.js +6 -3
  253. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  254. package/dist/auth/operations/local/login.d.ts +2 -2
  255. package/dist/auth/operations/local/login.d.ts.map +1 -1
  256. package/dist/auth/operations/local/login.js +7 -3
  257. package/dist/auth/operations/local/login.js.map +1 -1
  258. package/dist/auth/operations/local/resetPassword.js +5 -2
  259. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  260. package/dist/auth/operations/local/unlock.d.ts +2 -2
  261. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  262. package/dist/auth/operations/local/unlock.js +6 -3
  263. package/dist/auth/operations/local/unlock.js.map +1 -1
  264. package/dist/auth/operations/local/verifyEmail.js +5 -2
  265. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  266. package/dist/auth/operations/login.d.ts +2 -0
  267. package/dist/auth/operations/login.d.ts.map +1 -1
  268. package/dist/auth/operations/login.js +54 -43
  269. package/dist/auth/operations/login.js.map +1 -1
  270. package/dist/auth/operations/logout.d.ts.map +1 -1
  271. package/dist/auth/operations/logout.js +3 -1
  272. package/dist/auth/operations/logout.js.map +1 -1
  273. package/dist/auth/operations/me.d.ts +0 -7
  274. package/dist/auth/operations/me.d.ts.map +1 -1
  275. package/dist/auth/operations/me.js +1 -7
  276. package/dist/auth/operations/me.js.map +1 -1
  277. package/dist/auth/operations/refresh.d.ts +8 -7
  278. package/dist/auth/operations/refresh.d.ts.map +1 -1
  279. package/dist/auth/operations/refresh.js +80 -30
  280. package/dist/auth/operations/refresh.js.map +1 -1
  281. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  282. package/dist/auth/operations/registerFirstUser.js +4 -4
  283. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  284. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  285. package/dist/auth/operations/resetPassword.js +87 -42
  286. package/dist/auth/operations/resetPassword.js.map +1 -1
  287. package/dist/auth/operations/unlock.d.ts.map +1 -1
  288. package/dist/auth/operations/unlock.js +2 -1
  289. package/dist/auth/operations/unlock.js.map +1 -1
  290. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  291. package/dist/auth/operations/verifyEmail.js +3 -1
  292. package/dist/auth/operations/verifyEmail.js.map +1 -1
  293. package/dist/auth/refreshAuthToken.d.ts +32 -0
  294. package/dist/auth/refreshAuthToken.d.ts.map +1 -0
  295. package/dist/auth/refreshAuthToken.js +113 -0
  296. package/dist/auth/refreshAuthToken.js.map +1 -0
  297. package/dist/auth/rotateSecret.d.ts +51 -0
  298. package/dist/auth/rotateSecret.d.ts.map +1 -0
  299. package/dist/auth/rotateSecret.js +131 -0
  300. package/dist/auth/rotateSecret.js.map +1 -0
  301. package/dist/auth/serverFunctions/cookies.d.ts +47 -0
  302. package/dist/auth/serverFunctions/cookies.d.ts.map +1 -0
  303. package/dist/auth/serverFunctions/cookies.js +52 -0
  304. package/dist/auth/serverFunctions/cookies.js.map +1 -0
  305. package/dist/auth/serverFunctions/login.d.ts +29 -0
  306. package/dist/auth/serverFunctions/login.d.ts.map +1 -0
  307. package/dist/auth/serverFunctions/login.js +65 -0
  308. package/dist/auth/serverFunctions/login.js.map +1 -0
  309. package/dist/auth/serverFunctions/logout.d.ts +17 -0
  310. package/dist/auth/serverFunctions/logout.d.ts.map +1 -0
  311. package/dist/auth/serverFunctions/logout.js +59 -0
  312. package/dist/auth/serverFunctions/logout.js.map +1 -0
  313. package/dist/auth/serverFunctions/refresh.d.ts +17 -0
  314. package/dist/auth/serverFunctions/refresh.d.ts.map +1 -0
  315. package/dist/auth/serverFunctions/refresh.js +62 -0
  316. package/dist/auth/serverFunctions/refresh.js.map +1 -0
  317. package/dist/auth/sessions.d.ts +9 -2
  318. package/dist/auth/sessions.d.ts.map +1 -1
  319. package/dist/auth/sessions.js +9 -5
  320. package/dist/auth/sessions.js.map +1 -1
  321. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  322. package/dist/auth/strategies/apiKey.js +48 -4
  323. package/dist/auth/strategies/apiKey.js.map +1 -1
  324. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  325. package/dist/auth/strategies/jwt.js +84 -12
  326. package/dist/auth/strategies/jwt.js.map +1 -1
  327. package/dist/auth/strategies/local/authenticate.d.ts +5 -1
  328. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  329. package/dist/auth/strategies/local/authenticate.js +8 -3
  330. package/dist/auth/strategies/local/authenticate.js.map +1 -1
  331. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts +9 -1
  332. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  333. package/dist/auth/strategies/local/generatePasswordSaltHash.js +61 -34
  334. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  335. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  336. package/dist/auth/strategies/local/register.js +1 -0
  337. package/dist/auth/strategies/local/register.js.map +1 -1
  338. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  339. package/dist/auth/strategies/local/resetLoginAttempts.js +2 -0
  340. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
  341. package/dist/auth/types.d.ts +71 -20
  342. package/dist/auth/types.d.ts.map +1 -1
  343. package/dist/auth/types.js.map +1 -1
  344. package/dist/auth/withBaseAccess.d.ts +22 -0
  345. package/dist/auth/withBaseAccess.d.ts.map +1 -0
  346. package/dist/auth/withBaseAccess.js +66 -0
  347. package/dist/auth/withBaseAccess.js.map +1 -0
  348. package/dist/cli/commands/build/build.d.ts +44 -0
  349. package/dist/cli/commands/build/build.d.ts.map +1 -0
  350. package/dist/cli/commands/build/build.js +225 -0
  351. package/dist/cli/commands/build/build.js.map +1 -0
  352. package/dist/cli/commands/build/index.d.ts +2 -0
  353. package/dist/cli/commands/build/index.d.ts.map +1 -0
  354. package/dist/cli/commands/build/index.js +26 -0
  355. package/dist/cli/commands/build/index.js.map +1 -0
  356. package/dist/cli/commands/collections/countDocuments.d.ts +2 -0
  357. package/dist/cli/commands/collections/countDocuments.d.ts.map +1 -0
  358. package/dist/cli/commands/collections/countDocuments.js +37 -0
  359. package/dist/cli/commands/collections/countDocuments.js.map +1 -0
  360. package/dist/cli/commands/collections/countVersions.d.ts +2 -0
  361. package/dist/cli/commands/collections/countVersions.d.ts.map +1 -0
  362. package/dist/cli/commands/collections/countVersions.js +36 -0
  363. package/dist/cli/commands/collections/countVersions.js.map +1 -0
  364. package/dist/cli/commands/collections/createDocuments.d.ts +2 -0
  365. package/dist/cli/commands/collections/createDocuments.d.ts.map +1 -0
  366. package/dist/cli/commands/collections/createDocuments.js +132 -0
  367. package/dist/cli/commands/collections/createDocuments.js.map +1 -0
  368. package/dist/cli/commands/collections/deleteDocuments.d.ts +2 -0
  369. package/dist/cli/commands/collections/deleteDocuments.d.ts.map +1 -0
  370. package/dist/cli/commands/collections/deleteDocuments.js +64 -0
  371. package/dist/cli/commands/collections/deleteDocuments.js.map +1 -0
  372. package/dist/cli/commands/collections/duplicateDocument.d.ts +2 -0
  373. package/dist/cli/commands/collections/duplicateDocument.d.ts.map +1 -0
  374. package/dist/cli/commands/collections/duplicateDocument.js +109 -0
  375. package/dist/cli/commands/collections/duplicateDocument.js.map +1 -0
  376. package/dist/cli/commands/collections/findDistinct.d.ts +2 -0
  377. package/dist/cli/commands/collections/findDistinct.d.ts.map +1 -0
  378. package/dist/cli/commands/collections/findDistinct.js +52 -0
  379. package/dist/cli/commands/collections/findDistinct.js.map +1 -0
  380. package/dist/cli/commands/collections/findDocuments.d.ts +2 -0
  381. package/dist/cli/commands/collections/findDocuments.d.ts.map +1 -0
  382. package/dist/cli/commands/collections/findDocuments.js +79 -0
  383. package/dist/cli/commands/collections/findDocuments.js.map +1 -0
  384. package/dist/cli/commands/collections/findVersionByID.d.ts +2 -0
  385. package/dist/cli/commands/collections/findVersionByID.d.ts.map +1 -0
  386. package/dist/cli/commands/collections/findVersionByID.js +48 -0
  387. package/dist/cli/commands/collections/findVersionByID.js.map +1 -0
  388. package/dist/cli/commands/collections/findVersions.d.ts +2 -0
  389. package/dist/cli/commands/collections/findVersions.d.ts.map +1 -0
  390. package/dist/cli/commands/collections/findVersions.js +57 -0
  391. package/dist/cli/commands/collections/findVersions.js.map +1 -0
  392. package/dist/cli/commands/collections/getCollectionSchema.d.ts +2 -0
  393. package/dist/cli/commands/collections/getCollectionSchema.d.ts.map +1 -0
  394. package/dist/cli/commands/collections/getCollectionSchema.js +61 -0
  395. package/dist/cli/commands/collections/getCollectionSchema.js.map +1 -0
  396. package/dist/cli/commands/collections/restoreVersion.d.ts +2 -0
  397. package/dist/cli/commands/collections/restoreVersion.d.ts.map +1 -0
  398. package/dist/cli/commands/collections/restoreVersion.js +47 -0
  399. package/dist/cli/commands/collections/restoreVersion.js.map +1 -0
  400. package/dist/cli/commands/collections/updateDocument.d.ts +2 -0
  401. package/dist/cli/commands/collections/updateDocument.d.ts.map +1 -0
  402. package/dist/cli/commands/collections/updateDocument.js +192 -0
  403. package/dist/cli/commands/collections/updateDocument.js.map +1 -0
  404. package/dist/cli/commands/data/input.d.ts +28 -0
  405. package/dist/cli/commands/data/input.d.ts.map +1 -0
  406. package/dist/cli/commands/data/input.js +76 -0
  407. package/dist/cli/commands/data/input.js.map +1 -0
  408. package/dist/cli/commands/data/utilities.d.ts +65 -0
  409. package/dist/cli/commands/data/utilities.d.ts.map +1 -0
  410. package/dist/cli/commands/data/utilities.js +67 -0
  411. package/dist/cli/commands/data/utilities.js.map +1 -0
  412. package/dist/cli/commands/generateDBSchema.d.ts +2 -0
  413. package/dist/cli/commands/generateDBSchema.d.ts.map +1 -0
  414. package/dist/cli/commands/generateDBSchema.js +29 -0
  415. package/dist/cli/commands/generateDBSchema.js.map +1 -0
  416. package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts.map +1 -0
  417. package/dist/cli/commands/generateImportMap/frameworkConventions.js.map +1 -0
  418. package/dist/cli/commands/generateImportMap/generateImportMap.d.ts +48 -0
  419. package/dist/cli/commands/generateImportMap/generateImportMap.d.ts.map +1 -0
  420. package/dist/cli/commands/generateImportMap/generateImportMap.js +114 -0
  421. package/dist/cli/commands/generateImportMap/generateImportMap.js.map +1 -0
  422. package/dist/cli/commands/generateImportMap/index.d.ts +2 -0
  423. package/dist/cli/commands/generateImportMap/index.d.ts.map +1 -0
  424. package/dist/cli/commands/generateImportMap/index.js +18 -0
  425. package/dist/cli/commands/generateImportMap/index.js.map +1 -0
  426. package/dist/cli/commands/generateImportMap/iterateCollections.d.ts +12 -0
  427. package/dist/cli/commands/generateImportMap/iterateCollections.d.ts.map +1 -0
  428. package/dist/cli/commands/generateImportMap/iterateCollections.js.map +1 -0
  429. package/dist/cli/commands/generateImportMap/iterateConfig.d.ts +10 -0
  430. package/dist/cli/commands/generateImportMap/iterateConfig.d.ts.map +1 -0
  431. package/dist/cli/commands/generateImportMap/iterateConfig.js +128 -0
  432. package/dist/cli/commands/generateImportMap/iterateConfig.js.map +1 -0
  433. package/dist/cli/commands/generateImportMap/iterateFields.d.ts +12 -0
  434. package/dist/cli/commands/generateImportMap/iterateFields.d.ts.map +1 -0
  435. package/dist/cli/commands/generateImportMap/iterateFields.js.map +1 -0
  436. package/dist/cli/commands/generateImportMap/iterateGlobals.d.ts +12 -0
  437. package/dist/cli/commands/generateImportMap/iterateGlobals.d.ts.map +1 -0
  438. package/dist/cli/commands/generateImportMap/iterateGlobals.js.map +1 -0
  439. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts +15 -0
  440. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +1 -0
  441. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +1 -0
  442. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.d.ts +9 -0
  443. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -0
  444. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.js.map +1 -0
  445. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +1 -0
  446. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +1 -0
  447. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.d.ts +6 -0
  448. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.d.ts.map +1 -0
  449. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.js.map +1 -0
  450. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -0
  451. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.js +65 -0
  452. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -0
  453. package/dist/cli/commands/generateTypes.d.ts +12 -0
  454. package/dist/cli/commands/generateTypes.d.ts.map +1 -0
  455. package/dist/cli/commands/generateTypes.js +105 -0
  456. package/dist/cli/commands/generateTypes.js.map +1 -0
  457. package/dist/cli/commands/getConfigInfo.d.ts +2 -0
  458. package/dist/cli/commands/getConfigInfo.d.ts.map +1 -0
  459. package/dist/cli/commands/getConfigInfo.js +23 -0
  460. package/dist/cli/commands/getConfigInfo.js.map +1 -0
  461. package/dist/cli/commands/globals/countGlobalVersions.d.ts +2 -0
  462. package/dist/cli/commands/globals/countGlobalVersions.d.ts.map +1 -0
  463. package/dist/cli/commands/globals/countGlobalVersions.js +36 -0
  464. package/dist/cli/commands/globals/countGlobalVersions.js.map +1 -0
  465. package/dist/cli/commands/globals/findGlobal.d.ts +2 -0
  466. package/dist/cli/commands/globals/findGlobal.d.ts.map +1 -0
  467. package/dist/cli/commands/globals/findGlobal.js +42 -0
  468. package/dist/cli/commands/globals/findGlobal.js.map +1 -0
  469. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts +2 -0
  470. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts.map +1 -0
  471. package/dist/cli/commands/globals/findGlobalVersionByID.js +46 -0
  472. package/dist/cli/commands/globals/findGlobalVersionByID.js.map +1 -0
  473. package/dist/cli/commands/globals/findGlobalVersions.d.ts +2 -0
  474. package/dist/cli/commands/globals/findGlobalVersions.d.ts.map +1 -0
  475. package/dist/cli/commands/globals/findGlobalVersions.js +55 -0
  476. package/dist/cli/commands/globals/findGlobalVersions.js.map +1 -0
  477. package/dist/cli/commands/globals/getGlobalSchema.d.ts +2 -0
  478. package/dist/cli/commands/globals/getGlobalSchema.d.ts.map +1 -0
  479. package/dist/cli/commands/globals/getGlobalSchema.js +46 -0
  480. package/dist/cli/commands/globals/getGlobalSchema.js.map +1 -0
  481. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts +2 -0
  482. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts.map +1 -0
  483. package/dist/cli/commands/globals/restoreGlobalVersion.js +46 -0
  484. package/dist/cli/commands/globals/restoreGlobalVersion.js.map +1 -0
  485. package/dist/cli/commands/globals/updateGlobal.d.ts +2 -0
  486. package/dist/cli/commands/globals/updateGlobal.d.ts.map +1 -0
  487. package/dist/cli/commands/globals/updateGlobal.js +95 -0
  488. package/dist/cli/commands/globals/updateGlobal.js.map +1 -0
  489. package/dist/cli/commands/help.d.ts +2 -0
  490. package/dist/cli/commands/help.d.ts.map +1 -0
  491. package/dist/cli/commands/help.js +42 -0
  492. package/dist/cli/commands/help.js.map +1 -0
  493. package/dist/cli/commands/info.d.ts +2 -0
  494. package/dist/cli/commands/info.d.ts.map +1 -0
  495. package/dist/cli/commands/info.js +78 -0
  496. package/dist/cli/commands/info.js.map +1 -0
  497. package/dist/cli/commands/jobs/handleSchedules.d.ts +2 -0
  498. package/dist/cli/commands/jobs/handleSchedules.d.ts.map +1 -0
  499. package/dist/cli/commands/jobs/handleSchedules.js +17 -0
  500. package/dist/cli/commands/jobs/handleSchedules.js.map +1 -0
  501. package/dist/cli/commands/jobs/run.d.ts +2 -0
  502. package/dist/cli/commands/jobs/run.d.ts.map +1 -0
  503. package/dist/cli/commands/jobs/run.js +30 -0
  504. package/dist/cli/commands/jobs/run.js.map +1 -0
  505. package/dist/cli/commands/migrate/create.d.ts +2 -0
  506. package/dist/cli/commands/migrate/create.d.ts.map +1 -0
  507. package/dist/cli/commands/migrate/create.js +44 -0
  508. package/dist/cli/commands/migrate/create.js.map +1 -0
  509. package/dist/cli/commands/migrate/down.d.ts +2 -0
  510. package/dist/cli/commands/migrate/down.d.ts.map +1 -0
  511. package/dist/cli/commands/migrate/down.js +22 -0
  512. package/dist/cli/commands/migrate/down.js.map +1 -0
  513. package/dist/cli/commands/migrate/fresh.d.ts +2 -0
  514. package/dist/cli/commands/migrate/fresh.d.ts.map +1 -0
  515. package/dist/cli/commands/migrate/fresh.js +28 -0
  516. package/dist/cli/commands/migrate/fresh.js.map +1 -0
  517. package/dist/cli/commands/migrate/initialize.d.ts +11 -0
  518. package/dist/cli/commands/migrate/initialize.d.ts.map +1 -0
  519. package/dist/cli/commands/migrate/initialize.js +17 -0
  520. package/dist/cli/commands/migrate/initialize.js.map +1 -0
  521. package/dist/cli/commands/migrate/refresh.d.ts +2 -0
  522. package/dist/cli/commands/migrate/refresh.d.ts.map +1 -0
  523. package/dist/cli/commands/migrate/refresh.js +22 -0
  524. package/dist/cli/commands/migrate/refresh.js.map +1 -0
  525. package/dist/cli/commands/migrate/reset.d.ts +2 -0
  526. package/dist/cli/commands/migrate/reset.d.ts.map +1 -0
  527. package/dist/cli/commands/migrate/reset.js +22 -0
  528. package/dist/cli/commands/migrate/reset.js.map +1 -0
  529. package/dist/cli/commands/migrate/run.d.ts +2 -0
  530. package/dist/cli/commands/migrate/run.d.ts.map +1 -0
  531. package/dist/cli/commands/migrate/run.js +28 -0
  532. package/dist/cli/commands/migrate/run.js.map +1 -0
  533. package/dist/cli/commands/migrate/status.d.ts +2 -0
  534. package/dist/cli/commands/migrate/status.d.ts.map +1 -0
  535. package/dist/cli/commands/migrate/status.js +22 -0
  536. package/dist/cli/commands/migrate/status.js.map +1 -0
  537. package/dist/cli/commands/run.d.ts +2 -0
  538. package/dist/cli/commands/run.d.ts.map +1 -0
  539. package/dist/cli/commands/run.js +45 -0
  540. package/dist/cli/commands/run.js.map +1 -0
  541. package/dist/cli/defineCLICommand.d.ts +32 -0
  542. package/dist/cli/defineCLICommand.d.ts.map +1 -0
  543. package/dist/cli/defineCLICommand.js +26 -0
  544. package/dist/cli/defineCLICommand.js.map +1 -0
  545. package/dist/cli/index.d.ts +7 -0
  546. package/dist/cli/index.d.ts.map +1 -0
  547. package/dist/cli/index.js +95 -0
  548. package/dist/cli/index.js.map +1 -0
  549. package/dist/cli/program/createHelp.d.ts +8 -0
  550. package/dist/cli/program/createHelp.d.ts.map +1 -0
  551. package/dist/cli/program/createHelp.js +26 -0
  552. package/dist/cli/program/createHelp.js.map +1 -0
  553. package/dist/cli/program/loadCommands.d.ts +12 -0
  554. package/dist/cli/program/loadCommands.d.ts.map +1 -0
  555. package/dist/cli/program/loadCommands.js +62 -0
  556. package/dist/cli/program/loadCommands.js.map +1 -0
  557. package/dist/cli/program/normalizeHelpArguments.d.ts +12 -0
  558. package/dist/cli/program/normalizeHelpArguments.d.ts.map +1 -0
  559. package/dist/cli/program/normalizeHelpArguments.js +34 -0
  560. package/dist/cli/program/normalizeHelpArguments.js.map +1 -0
  561. package/dist/cli/program/registerCommand.d.ts +10 -0
  562. package/dist/cli/program/registerCommand.d.ts.map +1 -0
  563. package/dist/cli/program/registerCommand.js +185 -0
  564. package/dist/cli/program/registerCommand.js.map +1 -0
  565. package/dist/cli/runtime/createRuntime.d.ts +9 -0
  566. package/dist/cli/runtime/createRuntime.d.ts.map +1 -0
  567. package/dist/cli/runtime/createRuntime.js +81 -0
  568. package/dist/cli/runtime/createRuntime.js.map +1 -0
  569. package/dist/cli/runtime/getCommandInput.d.ts +17 -0
  570. package/dist/cli/runtime/getCommandInput.d.ts.map +1 -0
  571. package/dist/cli/runtime/getCommandInput.js +86 -0
  572. package/dist/cli/runtime/getCommandInput.js.map +1 -0
  573. package/dist/cli/runtime/invokeCommand.d.ts +23 -0
  574. package/dist/cli/runtime/invokeCommand.d.ts.map +1 -0
  575. package/dist/cli/runtime/invokeCommand.js +107 -0
  576. package/dist/cli/runtime/invokeCommand.js.map +1 -0
  577. package/dist/cli/runtime/loadEnv.d.ts.map +1 -0
  578. package/dist/cli/runtime/loadEnv.js +58 -0
  579. package/dist/cli/runtime/loadEnv.js.map +1 -0
  580. package/dist/cli/runtime/output.d.ts +50 -0
  581. package/dist/cli/runtime/output.d.ts.map +1 -0
  582. package/dist/cli/runtime/output.js +125 -0
  583. package/dist/cli/runtime/output.js.map +1 -0
  584. package/dist/cli/runtime/redirectOutputToStderr.d.ts +8 -0
  585. package/dist/cli/runtime/redirectOutputToStderr.d.ts.map +1 -0
  586. package/dist/cli/runtime/redirectOutputToStderr.js +31 -0
  587. package/dist/cli/runtime/redirectOutputToStderr.js.map +1 -0
  588. package/dist/collections/config/client.d.ts +5 -4
  589. package/dist/collections/config/client.d.ts.map +1 -1
  590. package/dist/collections/config/client.js +8 -4
  591. package/dist/collections/config/client.js.map +1 -1
  592. package/dist/collections/config/defaults.d.ts +8 -4
  593. package/dist/collections/config/defaults.d.ts.map +1 -1
  594. package/dist/collections/config/defaults.js +56 -34
  595. package/dist/collections/config/defaults.js.map +1 -1
  596. package/dist/collections/config/sanitize.d.ts +4 -8
  597. package/dist/collections/config/sanitize.d.ts.map +1 -1
  598. package/dist/collections/config/sanitize.js +115 -27
  599. package/dist/collections/config/sanitize.js.map +1 -1
  600. package/dist/collections/config/types.d.ts +91 -55
  601. package/dist/collections/config/types.d.ts.map +1 -1
  602. package/dist/collections/config/types.js.map +1 -1
  603. package/dist/collections/config/useAsThumbnail.d.ts +6 -0
  604. package/dist/collections/config/useAsThumbnail.d.ts.map +1 -0
  605. package/dist/collections/config/useAsThumbnail.js +21 -0
  606. package/dist/collections/config/useAsThumbnail.js.map +1 -0
  607. package/dist/collections/endpoints/count.d.ts.map +1 -1
  608. package/dist/collections/endpoints/count.js +1 -1
  609. package/dist/collections/endpoints/count.js.map +1 -1
  610. package/dist/collections/endpoints/create.d.ts.map +1 -1
  611. package/dist/collections/endpoints/create.js +1 -1
  612. package/dist/collections/endpoints/create.js.map +1 -1
  613. package/dist/collections/endpoints/delete.d.ts.map +1 -1
  614. package/dist/collections/endpoints/delete.js +1 -1
  615. package/dist/collections/endpoints/delete.js.map +1 -1
  616. package/dist/collections/endpoints/deleteByID.d.ts.map +1 -1
  617. package/dist/collections/endpoints/deleteByID.js +1 -1
  618. package/dist/collections/endpoints/deleteByID.js.map +1 -1
  619. package/dist/collections/endpoints/docAccess.d.ts.map +1 -1
  620. package/dist/collections/endpoints/docAccess.js +1 -1
  621. package/dist/collections/endpoints/docAccess.js.map +1 -1
  622. package/dist/collections/endpoints/duplicate.d.ts.map +1 -1
  623. package/dist/collections/endpoints/duplicate.js +1 -1
  624. package/dist/collections/endpoints/duplicate.js.map +1 -1
  625. package/dist/collections/endpoints/find.d.ts.map +1 -1
  626. package/dist/collections/endpoints/find.js +1 -1
  627. package/dist/collections/endpoints/find.js.map +1 -1
  628. package/dist/collections/endpoints/findByID.d.ts.map +1 -1
  629. package/dist/collections/endpoints/findByID.js +1 -1
  630. package/dist/collections/endpoints/findByID.js.map +1 -1
  631. package/dist/collections/endpoints/findDistinct.d.ts.map +1 -1
  632. package/dist/collections/endpoints/findDistinct.js +1 -1
  633. package/dist/collections/endpoints/findDistinct.js.map +1 -1
  634. package/dist/collections/endpoints/findVersionByID.d.ts.map +1 -1
  635. package/dist/collections/endpoints/findVersionByID.js +1 -1
  636. package/dist/collections/endpoints/findVersionByID.js.map +1 -1
  637. package/dist/collections/endpoints/findVersions.d.ts.map +1 -1
  638. package/dist/collections/endpoints/findVersions.js +1 -1
  639. package/dist/collections/endpoints/findVersions.js.map +1 -1
  640. package/dist/collections/endpoints/index.d.ts +1 -0
  641. package/dist/collections/endpoints/index.d.ts.map +1 -1
  642. package/dist/collections/endpoints/index.js +23 -5
  643. package/dist/collections/endpoints/index.js.map +1 -1
  644. package/dist/collections/endpoints/renameFile.d.ts +3 -0
  645. package/dist/collections/endpoints/renameFile.d.ts.map +1 -0
  646. package/dist/collections/endpoints/renameFile.js +31 -0
  647. package/dist/collections/endpoints/renameFile.js.map +1 -0
  648. package/dist/collections/endpoints/restoreVersion.d.ts.map +1 -1
  649. package/dist/collections/endpoints/restoreVersion.js +1 -1
  650. package/dist/collections/endpoints/restoreVersion.js.map +1 -1
  651. package/dist/collections/endpoints/update.d.ts.map +1 -1
  652. package/dist/collections/endpoints/update.js +1 -1
  653. package/dist/collections/endpoints/update.js.map +1 -1
  654. package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
  655. package/dist/collections/endpoints/updateByID.js +1 -1
  656. package/dist/collections/endpoints/updateByID.js.map +1 -1
  657. package/dist/collections/endpoints/validate.d.ts +19 -0
  658. package/dist/collections/endpoints/validate.d.ts.map +1 -0
  659. package/dist/collections/endpoints/validate.js +89 -0
  660. package/dist/collections/endpoints/validate.js.map +1 -0
  661. package/dist/collections/operations/count.d.ts.map +1 -1
  662. package/dist/collections/operations/count.js +65 -70
  663. package/dist/collections/operations/count.js.map +1 -1
  664. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  665. package/dist/collections/operations/countVersions.js +61 -66
  666. package/dist/collections/operations/countVersions.js.map +1 -1
  667. package/dist/collections/operations/create.d.ts.map +1 -1
  668. package/dist/collections/operations/create.js +246 -30
  669. package/dist/collections/operations/create.js.map +1 -1
  670. package/dist/collections/operations/delete.d.ts.map +1 -1
  671. package/dist/collections/operations/delete.js +300 -129
  672. package/dist/collections/operations/delete.js.map +1 -1
  673. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  674. package/dist/collections/operations/deleteByID.js +71 -13
  675. package/dist/collections/operations/deleteByID.js.map +1 -1
  676. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  677. package/dist/collections/operations/docAccess.js +21 -26
  678. package/dist/collections/operations/docAccess.js.map +1 -1
  679. package/dist/collections/operations/find.d.ts.map +1 -1
  680. package/dist/collections/operations/find.js +248 -246
  681. package/dist/collections/operations/find.js.map +1 -1
  682. package/dist/collections/operations/findByID.d.ts.map +1 -1
  683. package/dist/collections/operations/findByID.js +258 -215
  684. package/dist/collections/operations/findByID.js.map +1 -1
  685. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  686. package/dist/collections/operations/findDistinct.js +236 -155
  687. package/dist/collections/operations/findDistinct.js.map +1 -1
  688. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  689. package/dist/collections/operations/findVersionByID.js +168 -125
  690. package/dist/collections/operations/findVersionByID.js.map +1 -1
  691. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  692. package/dist/collections/operations/findVersions.js +179 -147
  693. package/dist/collections/operations/findVersions.js.map +1 -1
  694. package/dist/collections/operations/inputSchemas.d.ts +877 -0
  695. package/dist/collections/operations/inputSchemas.d.ts.map +1 -0
  696. package/dist/collections/operations/inputSchemas.js +217 -0
  697. package/dist/collections/operations/inputSchemas.js.map +1 -0
  698. package/dist/collections/operations/local/count.d.ts +2 -7
  699. package/dist/collections/operations/local/count.d.ts.map +1 -1
  700. package/dist/collections/operations/local/count.js +6 -3
  701. package/dist/collections/operations/local/count.js.map +1 -1
  702. package/dist/collections/operations/local/countVersions.d.ts +2 -7
  703. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  704. package/dist/collections/operations/local/countVersions.js +6 -3
  705. package/dist/collections/operations/local/countVersions.js.map +1 -1
  706. package/dist/collections/operations/local/create.d.ts +2 -7
  707. package/dist/collections/operations/local/create.d.ts.map +1 -1
  708. package/dist/collections/operations/local/create.js +6 -3
  709. package/dist/collections/operations/local/create.js.map +1 -1
  710. package/dist/collections/operations/local/delete.d.ts +2 -7
  711. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  712. package/dist/collections/operations/local/delete.js +6 -3
  713. package/dist/collections/operations/local/delete.js.map +1 -1
  714. package/dist/collections/operations/local/duplicate.d.ts +2 -7
  715. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  716. package/dist/collections/operations/local/duplicate.js +6 -3
  717. package/dist/collections/operations/local/duplicate.js.map +1 -1
  718. package/dist/collections/operations/local/find.d.ts +2 -7
  719. package/dist/collections/operations/local/find.d.ts.map +1 -1
  720. package/dist/collections/operations/local/find.js +6 -3
  721. package/dist/collections/operations/local/find.js.map +1 -1
  722. package/dist/collections/operations/local/findByID.d.ts +2 -7
  723. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  724. package/dist/collections/operations/local/findByID.js +6 -3
  725. package/dist/collections/operations/local/findByID.js.map +1 -1
  726. package/dist/collections/operations/local/findDistinct.d.ts +2 -7
  727. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  728. package/dist/collections/operations/local/findDistinct.js +6 -3
  729. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  730. package/dist/collections/operations/local/findVersionByID.d.ts +2 -7
  731. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  732. package/dist/collections/operations/local/findVersionByID.js +6 -3
  733. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  734. package/dist/collections/operations/local/findVersions.d.ts +2 -7
  735. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  736. package/dist/collections/operations/local/findVersions.js +6 -3
  737. package/dist/collections/operations/local/findVersions.js.map +1 -1
  738. package/dist/collections/operations/local/renameFile.d.ts +17 -0
  739. package/dist/collections/operations/local/renameFile.d.ts.map +1 -0
  740. package/dist/collections/operations/local/renameFile.js +28 -0
  741. package/dist/collections/operations/local/renameFile.js.map +1 -0
  742. package/dist/collections/operations/local/restoreVersion.d.ts +2 -7
  743. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  744. package/dist/collections/operations/local/restoreVersion.js +6 -3
  745. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  746. package/dist/collections/operations/local/update.d.ts +2 -7
  747. package/dist/collections/operations/local/update.d.ts.map +1 -1
  748. package/dist/collections/operations/local/update.js +6 -3
  749. package/dist/collections/operations/local/update.js.map +1 -1
  750. package/dist/collections/operations/local/validate.d.ts +63 -0
  751. package/dist/collections/operations/local/validate.d.ts.map +1 -0
  752. package/dist/collections/operations/local/validate.js +59 -0
  753. package/dist/collections/operations/local/validate.js.map +1 -0
  754. package/dist/collections/operations/renameFile.d.ts +15 -0
  755. package/dist/collections/operations/renameFile.d.ts.map +1 -0
  756. package/dist/collections/operations/renameFile.js +298 -0
  757. package/dist/collections/operations/renameFile.js.map +1 -0
  758. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  759. package/dist/collections/operations/restoreVersion.js +101 -29
  760. package/dist/collections/operations/restoreVersion.js.map +1 -1
  761. package/dist/collections/operations/update.d.ts.map +1 -1
  762. package/dist/collections/operations/update.js +207 -34
  763. package/dist/collections/operations/update.js.map +1 -1
  764. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  765. package/dist/collections/operations/updateByID.js +124 -6
  766. package/dist/collections/operations/updateByID.js.map +1 -1
  767. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.d.ts +15 -0
  768. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.d.ts.map +1 -0
  769. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.js +54 -0
  770. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.js.map +1 -0
  771. package/dist/collections/operations/utilities/update.d.ts +4 -3
  772. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  773. package/dist/collections/operations/utilities/update.js +264 -150
  774. package/dist/collections/operations/utilities/update.js.map +1 -1
  775. package/dist/collections/operations/utilities/validateUniqueConstraints.d.ts +11 -0
  776. package/dist/collections/operations/utilities/validateUniqueConstraints.d.ts.map +1 -0
  777. package/dist/collections/operations/utilities/validateUniqueConstraints.js +100 -0
  778. package/dist/collections/operations/utilities/validateUniqueConstraints.js.map +1 -0
  779. package/dist/collections/operations/validate.d.ts +22 -0
  780. package/dist/collections/operations/validate.d.ts.map +1 -0
  781. package/dist/collections/operations/validate.js +165 -0
  782. package/dist/collections/operations/validate.js.map +1 -0
  783. package/dist/config/assertNoLegacySharpConfig.d.ts +21 -0
  784. package/dist/config/assertNoLegacySharpConfig.d.ts.map +1 -0
  785. package/dist/config/assertNoLegacySharpConfig.js +50 -0
  786. package/dist/config/assertNoLegacySharpConfig.js.map +1 -0
  787. package/dist/config/build.d.ts.map +1 -1
  788. package/dist/config/build.js +22 -1
  789. package/dist/config/build.js.map +1 -1
  790. package/dist/config/client.d.ts +2 -2
  791. package/dist/config/client.d.ts.map +1 -1
  792. package/dist/config/client.js +6 -6
  793. package/dist/config/client.js.map +1 -1
  794. package/dist/config/defaults.d.ts.map +1 -1
  795. package/dist/config/defaults.js +99 -43
  796. package/dist/config/defaults.js.map +1 -1
  797. package/dist/config/definePlugin.js.map +1 -1
  798. package/dist/config/orderable/index.d.ts +1 -1
  799. package/dist/config/orderable/index.d.ts.map +1 -1
  800. package/dist/config/orderable/index.js +74 -17
  801. package/dist/config/orderable/index.js.map +1 -1
  802. package/dist/config/orderable/utils/getJoinScopeContext.d.ts.map +1 -1
  803. package/dist/config/orderable/utils/getJoinScopeContext.js +1 -0
  804. package/dist/config/orderable/utils/getJoinScopeContext.js.map +1 -1
  805. package/dist/config/orderable/utils/resolvePendingTargetKey.d.ts.map +1 -1
  806. package/dist/config/orderable/utils/resolvePendingTargetKey.js +1 -0
  807. package/dist/config/orderable/utils/resolvePendingTargetKey.js.map +1 -1
  808. package/dist/config/sanitize.d.ts +1 -1
  809. package/dist/config/sanitize.d.ts.map +1 -1
  810. package/dist/config/sanitize.js +101 -40
  811. package/dist/config/sanitize.js.map +1 -1
  812. package/dist/config/types.d.ts +541 -441
  813. package/dist/config/types.d.ts.map +1 -1
  814. package/dist/config/types.js.map +1 -1
  815. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  816. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  817. package/dist/database/createDatabaseAdapter.js +4 -2
  818. package/dist/database/createDatabaseAdapter.js.map +1 -1
  819. package/dist/database/createSchemaBuildContext.d.ts +12 -0
  820. package/dist/database/createSchemaBuildContext.d.ts.map +1 -0
  821. package/dist/database/createSchemaBuildContext.js +24 -0
  822. package/dist/database/createSchemaBuildContext.js.map +1 -0
  823. package/dist/database/defaultBatchProcessing.d.ts +3 -0
  824. package/dist/database/defaultBatchProcessing.d.ts.map +1 -0
  825. package/dist/database/defaultBatchProcessing.js +93 -0
  826. package/dist/database/defaultBatchProcessing.js.map +1 -0
  827. package/dist/database/defaultCopy.d.ts +3 -0
  828. package/dist/database/defaultCopy.d.ts.map +1 -0
  829. package/dist/database/defaultCopy.js +73 -0
  830. package/dist/database/defaultCopy.js.map +1 -0
  831. package/dist/database/getLocalizedPaths.d.ts +2 -1
  832. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  833. package/dist/database/getLocalizedPaths.js +12 -3
  834. package/dist/database/getLocalizedPaths.js.map +1 -1
  835. package/dist/database/isNestedRelationshipQuery.d.ts +14 -0
  836. package/dist/database/isNestedRelationshipQuery.d.ts.map +1 -0
  837. package/dist/database/isNestedRelationshipQuery.js +19 -0
  838. package/dist/database/isNestedRelationshipQuery.js.map +1 -0
  839. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  840. package/dist/database/migrations/createMigration.js +4 -0
  841. package/dist/database/migrations/createMigration.js.map +1 -1
  842. package/dist/database/migrations/getMigrations.d.ts.map +1 -1
  843. package/dist/database/migrations/getMigrations.js +1 -0
  844. package/dist/database/migrations/getMigrations.js.map +1 -1
  845. package/dist/database/migrations/getPredefinedMigration.js +2 -2
  846. package/dist/database/migrations/getPredefinedMigration.js.map +1 -1
  847. package/dist/database/migrations/migrate.d.ts.map +1 -1
  848. package/dist/database/migrations/migrate.js +14 -2
  849. package/dist/database/migrations/migrate.js.map +1 -1
  850. package/dist/database/migrations/migrateDown.d.ts +2 -2
  851. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  852. package/dist/database/migrations/migrateDown.js +17 -4
  853. package/dist/database/migrations/migrateDown.js.map +1 -1
  854. package/dist/database/migrations/migrateRefresh.d.ts +2 -2
  855. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  856. package/dist/database/migrations/migrateRefresh.js +16 -4
  857. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  858. package/dist/database/migrations/migrateReset.d.ts +2 -2
  859. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  860. package/dist/database/migrations/migrateReset.js +17 -3
  861. package/dist/database/migrations/migrateReset.js.map +1 -1
  862. package/dist/database/migrations/migrateStatus.d.ts +2 -2
  863. package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
  864. package/dist/database/migrations/migrateStatus.js +11 -6
  865. package/dist/database/migrations/migrateStatus.js.map +1 -1
  866. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  867. package/dist/database/migrations/migrationsCollection.js +1 -0
  868. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  869. package/dist/database/prefixWherePaths.d.ts +6 -0
  870. package/dist/database/prefixWherePaths.d.ts.map +1 -0
  871. package/dist/database/prefixWherePaths.js +19 -0
  872. package/dist/database/prefixWherePaths.js.map +1 -0
  873. package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -1
  874. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  875. package/dist/database/queryValidation/validateQueryPaths.js +12 -2
  876. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  877. package/dist/database/queryValidation/validateSearchParams.d.ts +2 -1
  878. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  879. package/dist/database/queryValidation/validateSearchParams.js +88 -7
  880. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  881. package/dist/database/queryValidation/validateSortQuery.d.ts +23 -0
  882. package/dist/database/queryValidation/validateSortQuery.d.ts.map +1 -0
  883. package/dist/database/queryValidation/validateSortQuery.js +54 -0
  884. package/dist/database/queryValidation/validateSortQuery.js.map +1 -0
  885. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  886. package/dist/database/sanitizeJoinQuery.js +9 -1
  887. package/dist/database/sanitizeJoinQuery.js.map +1 -1
  888. package/dist/database/sanitizeWhereQuery.d.ts +1 -1
  889. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  890. package/dist/database/sanitizeWhereQuery.js +44 -1
  891. package/dist/database/sanitizeWhereQuery.js.map +1 -1
  892. package/dist/database/types.d.ts +98 -8
  893. package/dist/database/types.d.ts.map +1 -1
  894. package/dist/database/types.js.map +1 -1
  895. package/dist/duplicateDocument/index.js +1 -0
  896. package/dist/duplicateDocument/index.js.map +1 -1
  897. package/dist/errors/APIError.d.ts +4 -0
  898. package/dist/errors/APIError.d.ts.map +1 -1
  899. package/dist/errors/APIError.js +6 -2
  900. package/dist/errors/APIError.js.map +1 -1
  901. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  902. package/dist/errors/AuthenticationError.js +2 -1
  903. package/dist/errors/AuthenticationError.js.map +1 -1
  904. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  905. package/dist/errors/DuplicateCollection.js +1 -0
  906. package/dist/errors/DuplicateCollection.js.map +1 -1
  907. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  908. package/dist/errors/DuplicateFieldName.js +1 -0
  909. package/dist/errors/DuplicateFieldName.js.map +1 -1
  910. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  911. package/dist/errors/DuplicateGlobal.js +1 -0
  912. package/dist/errors/DuplicateGlobal.js.map +1 -1
  913. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  914. package/dist/errors/ErrorDeletingFile.js +2 -1
  915. package/dist/errors/ErrorDeletingFile.js.map +1 -1
  916. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  917. package/dist/errors/FileRetrievalError.js +2 -1
  918. package/dist/errors/FileRetrievalError.js.map +1 -1
  919. package/dist/errors/FileUploadError.d.ts.map +1 -1
  920. package/dist/errors/FileUploadError.js +2 -1
  921. package/dist/errors/FileUploadError.js.map +1 -1
  922. package/dist/errors/Forbidden.d.ts.map +1 -1
  923. package/dist/errors/Forbidden.js +2 -1
  924. package/dist/errors/Forbidden.js.map +1 -1
  925. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  926. package/dist/errors/InvalidConfiguration.js +2 -1
  927. package/dist/errors/InvalidConfiguration.js.map +1 -1
  928. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  929. package/dist/errors/InvalidFieldJoin.js +1 -0
  930. package/dist/errors/InvalidFieldJoin.js.map +1 -1
  931. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  932. package/dist/errors/InvalidFieldName.js +1 -0
  933. package/dist/errors/InvalidFieldName.js.map +1 -1
  934. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  935. package/dist/errors/InvalidFieldRelationship.js +1 -0
  936. package/dist/errors/InvalidFieldRelationship.js.map +1 -1
  937. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  938. package/dist/errors/InvalidSchema.js +2 -1
  939. package/dist/errors/InvalidSchema.js.map +1 -1
  940. package/dist/errors/Locked.d.ts.map +1 -1
  941. package/dist/errors/Locked.js +2 -1
  942. package/dist/errors/Locked.js.map +1 -1
  943. package/dist/errors/LockedAuth.d.ts.map +1 -1
  944. package/dist/errors/LockedAuth.js +2 -1
  945. package/dist/errors/LockedAuth.js.map +1 -1
  946. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  947. package/dist/errors/MissingCollectionLabel.js +1 -0
  948. package/dist/errors/MissingCollectionLabel.js.map +1 -1
  949. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  950. package/dist/errors/MissingEditorProp.js +1 -0
  951. package/dist/errors/MissingEditorProp.js.map +1 -1
  952. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  953. package/dist/errors/MissingFieldInputOptions.js +1 -0
  954. package/dist/errors/MissingFieldInputOptions.js.map +1 -1
  955. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  956. package/dist/errors/MissingFieldType.js +1 -0
  957. package/dist/errors/MissingFieldType.js.map +1 -1
  958. package/dist/errors/MissingFile.d.ts.map +1 -1
  959. package/dist/errors/MissingFile.js +2 -1
  960. package/dist/errors/MissingFile.js.map +1 -1
  961. package/dist/errors/NotFound.d.ts.map +1 -1
  962. package/dist/errors/NotFound.js +2 -1
  963. package/dist/errors/NotFound.js.map +1 -1
  964. package/dist/errors/QueryError.d.ts.map +1 -1
  965. package/dist/errors/QueryError.js +2 -1
  966. package/dist/errors/QueryError.js.map +1 -1
  967. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  968. package/dist/errors/ReservedFieldName.js +1 -0
  969. package/dist/errors/ReservedFieldName.js.map +1 -1
  970. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  971. package/dist/errors/TimestampsRequired.js +1 -0
  972. package/dist/errors/TimestampsRequired.js.map +1 -1
  973. package/dist/errors/TransformerContractError.d.ts +11 -0
  974. package/dist/errors/TransformerContractError.d.ts.map +1 -0
  975. package/dist/errors/TransformerContractError.js +15 -0
  976. package/dist/errors/TransformerContractError.js.map +1 -0
  977. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  978. package/dist/errors/UnauthorizedError.js +2 -1
  979. package/dist/errors/UnauthorizedError.js.map +1 -1
  980. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  981. package/dist/errors/UnverifiedEmail.js +2 -1
  982. package/dist/errors/UnverifiedEmail.js.map +1 -1
  983. package/dist/errors/ValidationError.d.ts +6 -0
  984. package/dist/errors/ValidationError.d.ts.map +1 -1
  985. package/dist/errors/ValidationError.js +12 -8
  986. package/dist/errors/ValidationError.js.map +1 -1
  987. package/dist/errors/index.d.ts +1 -0
  988. package/dist/errors/index.d.ts.map +1 -1
  989. package/dist/errors/index.js +1 -0
  990. package/dist/errors/index.js.map +1 -1
  991. package/dist/exports/auth.d.ts +5 -0
  992. package/dist/exports/auth.d.ts.map +1 -0
  993. package/dist/exports/auth.js +6 -0
  994. package/dist/exports/auth.js.map +1 -0
  995. package/dist/exports/build-config.d.ts +9 -0
  996. package/dist/exports/build-config.d.ts.map +1 -0
  997. package/dist/exports/build-config.js +38 -0
  998. package/dist/exports/build-config.js.map +1 -0
  999. package/dist/exports/cli.d.ts +4 -0
  1000. package/dist/exports/cli.d.ts.map +1 -0
  1001. package/dist/exports/cli.js +4 -0
  1002. package/dist/exports/cli.js.map +1 -0
  1003. package/dist/exports/cliBuiltin.d.ts +37 -0
  1004. package/dist/exports/cliBuiltin.d.ts.map +1 -0
  1005. package/dist/exports/cliBuiltin.js +38 -0
  1006. package/dist/exports/cliBuiltin.js.map +1 -0
  1007. package/dist/exports/internal.d.ts +21 -2
  1008. package/dist/exports/internal.d.ts.map +1 -1
  1009. package/dist/exports/internal.js +19 -3
  1010. package/dist/exports/internal.js.map +1 -1
  1011. package/dist/exports/node.d.ts +2 -2
  1012. package/dist/exports/node.d.ts.map +1 -1
  1013. package/dist/exports/node.js +2 -2
  1014. package/dist/exports/node.js.map +1 -1
  1015. package/dist/exports/shared.d.ts +11 -4
  1016. package/dist/exports/shared.d.ts.map +1 -1
  1017. package/dist/exports/shared.js +10 -4
  1018. package/dist/exports/shared.js.map +1 -1
  1019. package/dist/fields/baseFields/authorship/index.d.ts +30 -0
  1020. package/dist/fields/baseFields/authorship/index.d.ts.map +1 -0
  1021. package/dist/fields/baseFields/authorship/index.js +153 -0
  1022. package/dist/fields/baseFields/authorship/index.js.map +1 -0
  1023. package/dist/fields/baseFields/authorship/types.d.ts +28 -0
  1024. package/dist/fields/baseFields/authorship/types.d.ts.map +1 -0
  1025. package/dist/fields/baseFields/authorship/types.js +10 -0
  1026. package/dist/fields/baseFields/authorship/types.js.map +1 -0
  1027. package/dist/fields/baseFields/slug/duplicateContext.d.ts +11 -0
  1028. package/dist/fields/baseFields/slug/duplicateContext.d.ts.map +1 -0
  1029. package/dist/fields/baseFields/slug/duplicateContext.js +21 -0
  1030. package/dist/fields/baseFields/slug/duplicateContext.js.map +1 -0
  1031. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts +23 -0
  1032. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts.map +1 -0
  1033. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js +65 -0
  1034. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js.map +1 -0
  1035. package/dist/fields/baseFields/slug/generateSlug.d.ts +12 -18
  1036. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  1037. package/dist/fields/baseFields/slug/generateSlug.js +101 -40
  1038. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  1039. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts +18 -0
  1040. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts.map +1 -0
  1041. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js +20 -0
  1042. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js.map +1 -0
  1043. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts +23 -0
  1044. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts.map +1 -0
  1045. package/dist/fields/baseFields/slug/getSlugFallbackValue.js +24 -0
  1046. package/dist/fields/baseFields/slug/getSlugFallbackValue.js.map +1 -0
  1047. package/dist/fields/baseFields/slug/hasValue.d.ts +3 -0
  1048. package/dist/fields/baseFields/slug/hasValue.d.ts.map +1 -0
  1049. package/dist/fields/baseFields/slug/hasValue.js +3 -0
  1050. package/dist/fields/baseFields/slug/hasValue.js.map +1 -0
  1051. package/dist/fields/config/client.d.ts +1 -1
  1052. package/dist/fields/config/client.d.ts.map +1 -1
  1053. package/dist/fields/config/client.js +1 -1
  1054. package/dist/fields/config/client.js.map +1 -1
  1055. package/dist/fields/config/reservedFieldNames.d.ts.map +1 -1
  1056. package/dist/fields/config/reservedFieldNames.js.map +1 -1
  1057. package/dist/fields/config/sanitize.d.ts +6 -6
  1058. package/dist/fields/config/sanitize.d.ts.map +1 -1
  1059. package/dist/fields/config/sanitize.js +33 -22
  1060. package/dist/fields/config/sanitize.js.map +1 -1
  1061. package/dist/fields/config/types.d.ts +66 -55
  1062. package/dist/fields/config/types.d.ts.map +1 -1
  1063. package/dist/fields/config/types.js +1 -1
  1064. package/dist/fields/config/types.js.map +1 -1
  1065. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  1066. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  1067. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts +14 -0
  1068. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts.map +1 -0
  1069. package/dist/fields/hooks/beforeChange/flattenValidationData.js +36 -0
  1070. package/dist/fields/hooks/beforeChange/flattenValidationData.js.map +1 -0
  1071. package/dist/fields/hooks/beforeChange/index.d.ts +11 -3
  1072. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  1073. package/dist/fields/hooks/beforeChange/index.js +6 -2
  1074. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  1075. package/dist/fields/hooks/beforeChange/promise.d.ts +7 -3
  1076. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  1077. package/dist/fields/hooks/beforeChange/promise.js +168 -41
  1078. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  1079. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +7 -3
  1080. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  1081. package/dist/fields/hooks/beforeChange/traverseFields.js +6 -2
  1082. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  1083. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  1084. package/dist/fields/hooks/beforeDuplicate/promise.js +4 -0
  1085. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  1086. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts +2 -1
  1087. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts.map +1 -1
  1088. package/dist/fields/hooks/beforeValidate/getFallbackValue.js +2 -2
  1089. package/dist/fields/hooks/beforeValidate/getFallbackValue.js.map +1 -1
  1090. package/dist/fields/hooks/beforeValidate/index.d.ts +8 -3
  1091. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  1092. package/dist/fields/hooks/beforeValidate/index.js +3 -1
  1093. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  1094. package/dist/fields/hooks/beforeValidate/promise.d.ts +8 -3
  1095. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  1096. package/dist/fields/hooks/beforeValidate/promise.js +24 -9
  1097. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  1098. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +8 -3
  1099. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  1100. package/dist/fields/hooks/beforeValidate/traverseFields.js +5 -1
  1101. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  1102. package/dist/fields/validateJSONSchema.browser.d.ts +4 -0
  1103. package/dist/fields/validateJSONSchema.browser.d.ts.map +1 -0
  1104. package/dist/fields/validateJSONSchema.browser.js +3 -0
  1105. package/dist/fields/validateJSONSchema.browser.js.map +1 -0
  1106. package/dist/fields/validateJSONSchema.d.ts +15 -0
  1107. package/dist/fields/validateJSONSchema.d.ts.map +1 -0
  1108. package/dist/fields/validateJSONSchema.js +44 -0
  1109. package/dist/fields/validateJSONSchema.js.map +1 -0
  1110. package/dist/fields/validations.d.ts.map +1 -1
  1111. package/dist/fields/validations.js +19 -42
  1112. package/dist/fields/validations.js.map +1 -1
  1113. package/dist/globals/config/client.d.ts +2 -2
  1114. package/dist/globals/config/client.d.ts.map +1 -1
  1115. package/dist/globals/config/client.js +1 -0
  1116. package/dist/globals/config/client.js.map +1 -1
  1117. package/dist/globals/config/sanitize.d.ts +3 -7
  1118. package/dist/globals/config/sanitize.d.ts.map +1 -1
  1119. package/dist/globals/config/sanitize.js +82 -9
  1120. package/dist/globals/config/sanitize.js.map +1 -1
  1121. package/dist/globals/config/types.d.ts +52 -18
  1122. package/dist/globals/config/types.d.ts.map +1 -1
  1123. package/dist/globals/config/types.js.map +1 -1
  1124. package/dist/globals/endpoints/docAccess.d.ts.map +1 -1
  1125. package/dist/globals/endpoints/docAccess.js +1 -1
  1126. package/dist/globals/endpoints/docAccess.js.map +1 -1
  1127. package/dist/globals/endpoints/findOne.d.ts.map +1 -1
  1128. package/dist/globals/endpoints/findOne.js +1 -1
  1129. package/dist/globals/endpoints/findOne.js.map +1 -1
  1130. package/dist/globals/endpoints/findVersionByID.d.ts.map +1 -1
  1131. package/dist/globals/endpoints/findVersionByID.js +1 -1
  1132. package/dist/globals/endpoints/findVersionByID.js.map +1 -1
  1133. package/dist/globals/endpoints/findVersions.d.ts.map +1 -1
  1134. package/dist/globals/endpoints/findVersions.js +1 -1
  1135. package/dist/globals/endpoints/findVersions.js.map +1 -1
  1136. package/dist/globals/endpoints/index.d.ts.map +1 -1
  1137. package/dist/globals/endpoints/index.js +6 -0
  1138. package/dist/globals/endpoints/index.js.map +1 -1
  1139. package/dist/globals/endpoints/restoreVersion.d.ts.map +1 -1
  1140. package/dist/globals/endpoints/restoreVersion.js +1 -1
  1141. package/dist/globals/endpoints/restoreVersion.js.map +1 -1
  1142. package/dist/globals/endpoints/update.d.ts.map +1 -1
  1143. package/dist/globals/endpoints/update.js +1 -1
  1144. package/dist/globals/endpoints/update.js.map +1 -1
  1145. package/dist/globals/endpoints/validate.d.ts +11 -0
  1146. package/dist/globals/endpoints/validate.d.ts.map +1 -0
  1147. package/dist/globals/endpoints/validate.js +49 -0
  1148. package/dist/globals/endpoints/validate.js.map +1 -0
  1149. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  1150. package/dist/globals/operations/countGlobalVersions.js +57 -55
  1151. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  1152. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  1153. package/dist/globals/operations/docAccess.js +21 -26
  1154. package/dist/globals/operations/docAccess.js.map +1 -1
  1155. package/dist/globals/operations/findOne.d.ts.map +1 -1
  1156. package/dist/globals/operations/findOne.js +169 -174
  1157. package/dist/globals/operations/findOne.js.map +1 -1
  1158. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  1159. package/dist/globals/operations/findVersionByID.js +117 -106
  1160. package/dist/globals/operations/findVersionByID.js.map +1 -1
  1161. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  1162. package/dist/globals/operations/findVersions.js +123 -109
  1163. package/dist/globals/operations/findVersions.js.map +1 -1
  1164. package/dist/globals/operations/inputSchemas.d.ts +365 -0
  1165. package/dist/globals/operations/inputSchemas.d.ts.map +1 -0
  1166. package/dist/globals/operations/inputSchemas.js +104 -0
  1167. package/dist/globals/operations/inputSchemas.js.map +1 -0
  1168. package/dist/globals/operations/local/countVersions.d.ts +2 -7
  1169. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  1170. package/dist/globals/operations/local/countVersions.js +6 -3
  1171. package/dist/globals/operations/local/countVersions.js.map +1 -1
  1172. package/dist/globals/operations/local/findOne.d.ts +2 -7
  1173. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  1174. package/dist/globals/operations/local/findOne.js +6 -3
  1175. package/dist/globals/operations/local/findOne.js.map +1 -1
  1176. package/dist/globals/operations/local/findVersionByID.d.ts +2 -7
  1177. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  1178. package/dist/globals/operations/local/findVersionByID.js +6 -3
  1179. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  1180. package/dist/globals/operations/local/findVersions.d.ts +2 -7
  1181. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  1182. package/dist/globals/operations/local/findVersions.js +6 -3
  1183. package/dist/globals/operations/local/findVersions.js.map +1 -1
  1184. package/dist/globals/operations/local/restoreVersion.d.ts +2 -7
  1185. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  1186. package/dist/globals/operations/local/restoreVersion.js +6 -3
  1187. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  1188. package/dist/globals/operations/local/update.d.ts +2 -7
  1189. package/dist/globals/operations/local/update.d.ts.map +1 -1
  1190. package/dist/globals/operations/local/update.js +6 -3
  1191. package/dist/globals/operations/local/update.js.map +1 -1
  1192. package/dist/globals/operations/local/validate.d.ts +43 -0
  1193. package/dist/globals/operations/local/validate.d.ts.map +1 -0
  1194. package/dist/globals/operations/local/validate.js +54 -0
  1195. package/dist/globals/operations/local/validate.js.map +1 -0
  1196. package/dist/globals/operations/restoreVersion.d.ts +2 -3
  1197. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  1198. package/dist/globals/operations/restoreVersion.js +85 -29
  1199. package/dist/globals/operations/restoreVersion.js.map +1 -1
  1200. package/dist/globals/operations/update.d.ts.map +1 -1
  1201. package/dist/globals/operations/update.js +151 -19
  1202. package/dist/globals/operations/update.js.map +1 -1
  1203. package/dist/globals/operations/validate.d.ts +21 -0
  1204. package/dist/globals/operations/validate.d.ts.map +1 -0
  1205. package/dist/globals/operations/validate.js +133 -0
  1206. package/dist/globals/operations/validate.js.map +1 -0
  1207. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  1208. package/dist/hierarchy/addHierarchyToCollection.js +32 -19
  1209. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  1210. package/dist/hierarchy/createFolderField.js.map +1 -1
  1211. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  1212. package/dist/hierarchy/hooks/collectionAfterDelete.js +1 -0
  1213. package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -1
  1214. package/dist/hierarchy/hooks/collectionBeforeChange.js +2 -1
  1215. package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -1
  1216. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  1217. package/dist/hierarchy/hooks/collectionBeforeDelete.js +1 -0
  1218. package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -1
  1219. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  1220. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js +71 -33
  1221. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js.map +1 -1
  1222. package/dist/hierarchy/resolveHierarchyCollections.js +38 -23
  1223. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  1224. package/dist/hierarchy/utils/computePaths.d.ts.map +1 -1
  1225. package/dist/hierarchy/utils/computePaths.js.map +1 -1
  1226. package/dist/index.bundled.d.ts +3752 -1469
  1227. package/dist/index.d.ts +155 -57
  1228. package/dist/index.d.ts.map +1 -1
  1229. package/dist/index.js +126 -70
  1230. package/dist/index.js.map +1 -1
  1231. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  1232. package/dist/kv/adapters/DatabaseKVAdapter.js +2 -1
  1233. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  1234. package/dist/llm-instructions/addLLMInstructions.d.ts +5 -0
  1235. package/dist/llm-instructions/addLLMInstructions.d.ts.map +1 -0
  1236. package/dist/llm-instructions/addLLMInstructions.js +31 -0
  1237. package/dist/llm-instructions/addLLMInstructions.js.map +1 -0
  1238. package/dist/llm-instructions/getInstructionTargetAccess.d.ts +8 -0
  1239. package/dist/llm-instructions/getInstructionTargetAccess.d.ts.map +1 -0
  1240. package/dist/llm-instructions/getInstructionTargetAccess.js +40 -0
  1241. package/dist/llm-instructions/getInstructionTargetAccess.js.map +1 -0
  1242. package/dist/llm-instructions/getInstructions.d.ts +8 -0
  1243. package/dist/llm-instructions/getInstructions.d.ts.map +1 -0
  1244. package/dist/llm-instructions/getInstructions.js +46 -0
  1245. package/dist/llm-instructions/getInstructions.js.map +1 -0
  1246. package/dist/llm-instructions/getInstructionsCollection.d.ts +6 -0
  1247. package/dist/llm-instructions/getInstructionsCollection.d.ts.map +1 -0
  1248. package/dist/llm-instructions/getInstructionsCollection.js +369 -0
  1249. package/dist/llm-instructions/getInstructionsCollection.js.map +1 -0
  1250. package/dist/llm-instructions/shared.d.ts +11 -0
  1251. package/dist/llm-instructions/shared.d.ts.map +1 -0
  1252. package/dist/llm-instructions/shared.js +3 -0
  1253. package/dist/llm-instructions/shared.js.map +1 -0
  1254. package/dist/locked-documents/config.d.ts.map +1 -1
  1255. package/dist/locked-documents/config.js +1 -0
  1256. package/dist/locked-documents/config.js.map +1 -1
  1257. package/dist/preferences/config.d.ts.map +1 -1
  1258. package/dist/preferences/config.js +3 -1
  1259. package/dist/preferences/config.js.map +1 -1
  1260. package/dist/preferences/keys.d.ts +4 -0
  1261. package/dist/preferences/keys.d.ts.map +1 -1
  1262. package/dist/preferences/keys.js +3 -0
  1263. package/dist/preferences/keys.js.map +1 -1
  1264. package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
  1265. package/dist/preferences/requestHandlers/delete.js +1 -1
  1266. package/dist/preferences/requestHandlers/delete.js.map +1 -1
  1267. package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
  1268. package/dist/preferences/requestHandlers/findOne.js +1 -1
  1269. package/dist/preferences/requestHandlers/findOne.js.map +1 -1
  1270. package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
  1271. package/dist/preferences/requestHandlers/update.js +1 -1
  1272. package/dist/preferences/requestHandlers/update.js.map +1 -1
  1273. package/dist/preferences/types.d.ts +8 -0
  1274. package/dist/preferences/types.d.ts.map +1 -1
  1275. package/dist/preferences/types.js +1 -3
  1276. package/dist/preferences/types.js.map +1 -1
  1277. package/dist/query-presets/access.d.ts +3 -1
  1278. package/dist/query-presets/access.d.ts.map +1 -1
  1279. package/dist/query-presets/access.js +2 -1
  1280. package/dist/query-presets/access.js.map +1 -1
  1281. package/dist/query-presets/config.d.ts.map +1 -1
  1282. package/dist/query-presets/config.js +2 -1
  1283. package/dist/query-presets/config.js.map +1 -1
  1284. package/dist/query-presets/constraints.js +1 -1
  1285. package/dist/query-presets/constraints.js.map +1 -1
  1286. package/dist/query-presets/preventLockout.js +6 -3
  1287. package/dist/query-presets/preventLockout.js.map +1 -1
  1288. package/dist/queues/config/collection.d.ts.map +1 -1
  1289. package/dist/queues/config/collection.js +44 -43
  1290. package/dist/queues/config/collection.js.map +1 -1
  1291. package/dist/queues/config/global.d.ts +5 -6
  1292. package/dist/queues/config/global.d.ts.map +1 -1
  1293. package/dist/queues/config/global.js +2 -1
  1294. package/dist/queues/config/global.js.map +1 -1
  1295. package/dist/queues/config/types/index.d.ts +33 -25
  1296. package/dist/queues/config/types/index.d.ts.map +1 -1
  1297. package/dist/queues/config/types/index.js.map +1 -1
  1298. package/dist/queues/config/types/taskTypes.d.ts +4 -7
  1299. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  1300. package/dist/queues/config/types/taskTypes.js.map +1 -1
  1301. package/dist/queues/config/types/workflowJSONTypes.d.ts +10 -9
  1302. package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -1
  1303. package/dist/queues/config/types/workflowJSONTypes.js.map +1 -1
  1304. package/dist/queues/config/types/workflowTypes.d.ts +11 -58
  1305. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
  1306. package/dist/queues/config/types/workflowTypes.js.map +1 -1
  1307. package/dist/queues/endpoints/handleSchedules.d.ts.map +1 -1
  1308. package/dist/queues/endpoints/handleSchedules.js +3 -2
  1309. package/dist/queues/endpoints/handleSchedules.js.map +1 -1
  1310. package/dist/queues/endpoints/run.d.ts.map +1 -1
  1311. package/dist/queues/endpoints/run.js +2 -1
  1312. package/dist/queues/endpoints/run.js.map +1 -1
  1313. package/dist/queues/errors/handleTaskError.js +4 -4
  1314. package/dist/queues/errors/handleTaskError.js.map +1 -1
  1315. package/dist/queues/errors/handleWorkflowError.js +1 -1
  1316. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  1317. package/dist/queues/errors/index.d.ts +6 -0
  1318. package/dist/queues/errors/index.d.ts.map +1 -1
  1319. package/dist/queues/errors/index.js +5 -0
  1320. package/dist/queues/errors/index.js.map +1 -1
  1321. package/dist/queues/localAPI.d.ts +10 -63
  1322. package/dist/queues/localAPI.d.ts.map +1 -1
  1323. package/dist/queues/localAPI.js +90 -78
  1324. package/dist/queues/localAPI.js.map +1 -1
  1325. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts +4 -4
  1326. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts.map +1 -1
  1327. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.js.map +1 -1
  1328. package/dist/queues/operations/handleSchedules/index.d.ts +1 -1
  1329. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  1330. package/dist/queues/operations/handleSchedules/index.js +2 -1
  1331. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  1332. package/dist/queues/operations/runJobs/heartbeat.d.ts +13 -0
  1333. package/dist/queues/operations/runJobs/heartbeat.d.ts.map +1 -0
  1334. package/dist/queues/operations/runJobs/heartbeat.js +66 -0
  1335. package/dist/queues/operations/runJobs/heartbeat.js.map +1 -0
  1336. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  1337. package/dist/queues/operations/runJobs/index.js +133 -84
  1338. package/dist/queues/operations/runJobs/index.js.map +1 -1
  1339. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  1340. package/dist/queues/operations/runJobs/runJSONJob/index.js +6 -3
  1341. package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -1
  1342. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +6 -6
  1343. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  1344. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +2 -1
  1345. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  1346. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +39 -8
  1347. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  1348. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -1
  1349. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  1350. package/dist/queues/operations/runJobs/runJob/index.js +4 -4
  1351. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
  1352. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  1353. package/dist/queues/utilities/updateJob.js +22 -4
  1354. package/dist/queues/utilities/updateJob.js.map +1 -1
  1355. package/dist/types/constants.d.ts +21 -0
  1356. package/dist/types/constants.d.ts.map +1 -1
  1357. package/dist/types/constants.js +23 -0
  1358. package/dist/types/constants.js.map +1 -1
  1359. package/dist/types/index.d.ts +21 -4
  1360. package/dist/types/index.d.ts.map +1 -1
  1361. package/dist/types/index.js.map +1 -1
  1362. package/dist/types/operations.d.ts +9 -0
  1363. package/dist/types/operations.d.ts.map +1 -0
  1364. package/dist/types/operations.js +3 -0
  1365. package/dist/types/operations.js.map +1 -0
  1366. package/dist/types/validation.d.ts +18 -0
  1367. package/dist/types/validation.d.ts.map +1 -0
  1368. package/dist/types/validation.js +8 -0
  1369. package/dist/types/validation.js.map +1 -0
  1370. package/dist/uploads/assertClientUploadAccess.d.ts +7 -0
  1371. package/dist/uploads/assertClientUploadAccess.d.ts.map +1 -0
  1372. package/dist/uploads/assertClientUploadAccess.js +29 -0
  1373. package/dist/uploads/assertClientUploadAccess.js.map +1 -0
  1374. package/dist/uploads/assertClientUploadAllowed.d.ts +10 -0
  1375. package/dist/uploads/assertClientUploadAllowed.d.ts.map +1 -0
  1376. package/dist/uploads/assertClientUploadAllowed.js +41 -0
  1377. package/dist/uploads/assertClientUploadAllowed.js.map +1 -0
  1378. package/dist/uploads/checkFileAccess.d.ts +2 -1
  1379. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  1380. package/dist/uploads/checkFileAccess.js +17 -22
  1381. package/dist/uploads/checkFileAccess.js.map +1 -1
  1382. package/dist/uploads/checkFileRestrictions.d.ts +11 -1
  1383. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  1384. package/dist/uploads/checkFileRestrictions.js +79 -28
  1385. package/dist/uploads/checkFileRestrictions.js.map +1 -1
  1386. package/dist/uploads/clientUploadReceipt.d.ts +29 -0
  1387. package/dist/uploads/clientUploadReceipt.d.ts.map +1 -0
  1388. package/dist/uploads/clientUploadReceipt.js +76 -0
  1389. package/dist/uploads/clientUploadReceipt.js.map +1 -0
  1390. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  1391. package/dist/uploads/deleteAssociatedFiles.js +69 -12
  1392. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  1393. package/dist/uploads/detectSvgFromXml.d.ts +1 -4
  1394. package/dist/uploads/detectSvgFromXml.d.ts.map +1 -1
  1395. package/dist/uploads/detectSvgFromXml.js +2 -41
  1396. package/dist/uploads/detectSvgFromXml.js.map +1 -1
  1397. package/dist/uploads/docWithFilenameExists.d.ts +2 -1
  1398. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  1399. package/dist/uploads/docWithFilenameExists.js +19 -11
  1400. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  1401. package/dist/uploads/downloadFileToBuffer.d.ts +11 -0
  1402. package/dist/uploads/downloadFileToBuffer.d.ts.map +1 -0
  1403. package/dist/uploads/downloadFileToBuffer.js +72 -0
  1404. package/dist/uploads/downloadFileToBuffer.js.map +1 -0
  1405. package/dist/uploads/endpoints/getFile.d.ts +17 -0
  1406. package/dist/uploads/endpoints/getFile.d.ts.map +1 -1
  1407. package/dist/uploads/endpoints/getFile.js +76 -13
  1408. package/dist/uploads/endpoints/getFile.js.map +1 -1
  1409. package/dist/uploads/endpoints/index.js +2 -2
  1410. package/dist/uploads/endpoints/index.js.map +1 -1
  1411. package/dist/uploads/endpoints/pasteURL.d.ts +3 -0
  1412. package/dist/uploads/endpoints/pasteURL.d.ts.map +1 -0
  1413. package/dist/uploads/endpoints/pasteURL.js +80 -0
  1414. package/dist/uploads/endpoints/pasteURL.js.map +1 -0
  1415. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -1
  1416. package/dist/uploads/endpoints/uploadInstructions.js +29 -26
  1417. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -1
  1418. package/dist/uploads/fetchAPI-multipart/handlers.d.ts +2 -2
  1419. package/dist/uploads/fetchAPI-multipart/handlers.d.ts.map +1 -1
  1420. package/dist/uploads/fetchAPI-multipart/handlers.js +18 -5
  1421. package/dist/uploads/fetchAPI-multipart/handlers.js.map +1 -1
  1422. package/dist/uploads/fetchAPI-multipart/index.d.ts.map +1 -1
  1423. package/dist/uploads/fetchAPI-multipart/index.js +24 -2
  1424. package/dist/uploads/fetchAPI-multipart/index.js.map +1 -1
  1425. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js +1 -2
  1426. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  1427. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts +0 -6
  1428. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  1429. package/dist/uploads/fetchAPI-multipart/processMultipart.js +147 -131
  1430. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  1431. package/dist/uploads/fetchAPI-stream-file/index.d.ts +4 -1
  1432. package/dist/uploads/fetchAPI-stream-file/index.d.ts.map +1 -1
  1433. package/dist/uploads/fetchAPI-stream-file/index.js +9 -2
  1434. package/dist/uploads/fetchAPI-stream-file/index.js.map +1 -1
  1435. package/dist/uploads/fetchWithRedirects.d.ts +19 -0
  1436. package/dist/uploads/fetchWithRedirects.d.ts.map +1 -0
  1437. package/dist/uploads/fetchWithRedirects.js +53 -0
  1438. package/dist/uploads/fetchWithRedirects.js.map +1 -0
  1439. package/dist/uploads/fileVersioning/archive.d.ts +29 -0
  1440. package/dist/uploads/fileVersioning/archive.d.ts.map +1 -0
  1441. package/dist/uploads/fileVersioning/archive.js +277 -0
  1442. package/dist/uploads/fileVersioning/archive.js.map +1 -0
  1443. package/dist/uploads/fileVersioning/cleanup.d.ts +29 -0
  1444. package/dist/uploads/fileVersioning/cleanup.d.ts.map +1 -0
  1445. package/dist/uploads/fileVersioning/cleanup.js +288 -0
  1446. package/dist/uploads/fileVersioning/cleanup.js.map +1 -0
  1447. package/dist/uploads/fileVersioning/cloudStorage.d.ts +24 -0
  1448. package/dist/uploads/fileVersioning/cloudStorage.d.ts.map +1 -0
  1449. package/dist/uploads/fileVersioning/cloudStorage.js +260 -0
  1450. package/dist/uploads/fileVersioning/cloudStorage.js.map +1 -0
  1451. package/dist/uploads/fileVersioning/fileOperationManager.d.ts +65 -0
  1452. package/dist/uploads/fileVersioning/fileOperationManager.d.ts.map +1 -0
  1453. package/dist/uploads/fileVersioning/fileOperationManager.js +324 -0
  1454. package/dist/uploads/fileVersioning/fileOperationManager.js.map +1 -0
  1455. package/dist/uploads/fileVersioning/localStorage.d.ts +9 -0
  1456. package/dist/uploads/fileVersioning/localStorage.d.ts.map +1 -0
  1457. package/dist/uploads/fileVersioning/localStorage.js +78 -0
  1458. package/dist/uploads/fileVersioning/localStorage.js.map +1 -0
  1459. package/dist/uploads/fileVersioning/markHistoricalFileURLs.d.ts +8 -0
  1460. package/dist/uploads/fileVersioning/markHistoricalFileURLs.d.ts.map +1 -0
  1461. package/dist/uploads/fileVersioning/markHistoricalFileURLs.js +49 -0
  1462. package/dist/uploads/fileVersioning/markHistoricalFileURLs.js.map +1 -0
  1463. package/dist/uploads/fileVersioning/naming.d.ts +12 -0
  1464. package/dist/uploads/fileVersioning/naming.d.ts.map +1 -0
  1465. package/dist/uploads/fileVersioning/naming.js +47 -0
  1466. package/dist/uploads/fileVersioning/naming.js.map +1 -0
  1467. package/dist/uploads/fileVersioning/resolveHistoricalFile.d.ts +11 -0
  1468. package/dist/uploads/fileVersioning/resolveHistoricalFile.d.ts.map +1 -0
  1469. package/dist/uploads/fileVersioning/resolveHistoricalFile.js +73 -0
  1470. package/dist/uploads/fileVersioning/resolveHistoricalFile.js.map +1 -0
  1471. package/dist/uploads/fileVersioning/restore.d.ts +12 -0
  1472. package/dist/uploads/fileVersioning/restore.d.ts.map +1 -0
  1473. package/dist/uploads/fileVersioning/restore.js +147 -0
  1474. package/dist/uploads/fileVersioning/restore.js.map +1 -0
  1475. package/dist/uploads/fileVersioning/storedFiles.d.ts +23 -0
  1476. package/dist/uploads/fileVersioning/storedFiles.d.ts.map +1 -0
  1477. package/dist/uploads/fileVersioning/storedFiles.js +185 -0
  1478. package/dist/uploads/fileVersioning/storedFiles.js.map +1 -0
  1479. package/dist/uploads/fileVersioning/types.d.ts +18 -0
  1480. package/dist/uploads/fileVersioning/types.d.ts.map +1 -0
  1481. package/dist/uploads/fileVersioning/types.js +3 -0
  1482. package/dist/uploads/fileVersioning/types.js.map +1 -0
  1483. package/dist/uploads/formatFilesize.js +1 -1
  1484. package/dist/uploads/formatFilesize.js.map +1 -1
  1485. package/dist/uploads/generateFileData.d.ts +31 -1
  1486. package/dist/uploads/generateFileData.d.ts.map +1 -1
  1487. package/dist/uploads/generateFileData.js +437 -199
  1488. package/dist/uploads/generateFileData.js.map +1 -1
  1489. package/dist/uploads/generateFilePathOrURL.d.ts +1 -1
  1490. package/dist/uploads/generateFilePathOrURL.d.ts.map +1 -1
  1491. package/dist/uploads/generateFilePathOrURL.js +1 -1
  1492. package/dist/uploads/generateFilePathOrURL.js.map +1 -1
  1493. package/dist/uploads/generateImageSizeFilename.d.ts.map +1 -0
  1494. package/dist/uploads/generateImageSizeFilename.js.map +1 -0
  1495. package/dist/uploads/generatePayloadFileURL.d.ts +25 -0
  1496. package/dist/uploads/generatePayloadFileURL.d.ts.map +1 -0
  1497. package/dist/uploads/generatePayloadFileURL.js +64 -0
  1498. package/dist/uploads/generatePayloadFileURL.js.map +1 -0
  1499. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  1500. package/dist/uploads/getBaseFields.js +96 -10
  1501. package/dist/uploads/getBaseFields.js.map +1 -1
  1502. package/dist/uploads/getFileContentRequirement.d.ts +39 -0
  1503. package/dist/uploads/getFileContentRequirement.d.ts.map +1 -0
  1504. package/dist/uploads/getFileContentRequirement.js +45 -0
  1505. package/dist/uploads/getFileContentRequirement.js.map +1 -0
  1506. package/dist/uploads/getFileFromUploadInstructions.d.ts.map +1 -1
  1507. package/dist/uploads/getFileFromUploadInstructions.js +348 -10
  1508. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -1
  1509. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  1510. package/dist/uploads/getFileTypeFallback.js +3 -1
  1511. package/dist/uploads/getFileTypeFallback.js.map +1 -1
  1512. package/dist/uploads/getFileTypeIdentity.d.ts +19 -0
  1513. package/dist/uploads/getFileTypeIdentity.d.ts.map +1 -0
  1514. package/dist/uploads/getFileTypeIdentity.js +34 -0
  1515. package/dist/uploads/getFileTypeIdentity.js.map +1 -0
  1516. package/dist/uploads/getImageSize.d.ts +8 -1
  1517. package/dist/uploads/getImageSize.d.ts.map +1 -1
  1518. package/dist/uploads/getImageSize.js +11 -19
  1519. package/dist/uploads/getImageSize.js.map +1 -1
  1520. package/dist/uploads/getRangeRequestInfo.d.ts.map +1 -1
  1521. package/dist/uploads/getRangeRequestInfo.js +1 -1
  1522. package/dist/uploads/getRangeRequestInfo.js.map +1 -1
  1523. package/dist/uploads/hasCropOrResizeEdit.d.ts +7 -0
  1524. package/dist/uploads/hasCropOrResizeEdit.d.ts.map +1 -0
  1525. package/dist/uploads/hasCropOrResizeEdit.js +6 -0
  1526. package/dist/uploads/hasCropOrResizeEdit.js.map +1 -0
  1527. package/dist/uploads/hasFullFileContents.d.ts +13 -0
  1528. package/dist/uploads/hasFullFileContents.d.ts.map +1 -0
  1529. package/dist/uploads/hasFullFileContents.js +12 -0
  1530. package/dist/uploads/hasFullFileContents.js.map +1 -0
  1531. package/dist/uploads/isAnimatedImage.d.ts +8 -0
  1532. package/dist/uploads/isAnimatedImage.d.ts.map +1 -0
  1533. package/dist/uploads/isAnimatedImage.js +22 -0
  1534. package/dist/uploads/isAnimatedImage.js.map +1 -0
  1535. package/dist/uploads/isProcessableImage.d.ts +2 -0
  1536. package/dist/uploads/isProcessableImage.d.ts.map +1 -0
  1537. package/dist/uploads/isProcessableImage.js +7 -0
  1538. package/dist/uploads/isProcessableImage.js.map +1 -0
  1539. package/dist/uploads/parseFilename.d.ts.map +1 -0
  1540. package/dist/uploads/parseFilename.js.map +1 -0
  1541. package/dist/uploads/probeImageSize.d.ts +39 -0
  1542. package/dist/uploads/probeImageSize.d.ts.map +1 -0
  1543. package/dist/uploads/probeImageSize.js +374 -0
  1544. package/dist/uploads/probeImageSize.js.map +1 -0
  1545. package/dist/uploads/resolveURLUploadInput.d.ts +25 -0
  1546. package/dist/uploads/resolveURLUploadInput.d.ts.map +1 -0
  1547. package/dist/uploads/resolveURLUploadInput.js +53 -0
  1548. package/dist/uploads/resolveURLUploadInput.js.map +1 -0
  1549. package/dist/uploads/safeFetch.d.ts.map +1 -1
  1550. package/dist/uploads/safeFetch.js +3 -2
  1551. package/dist/uploads/safeFetch.js.map +1 -1
  1552. package/dist/uploads/sanitizeUploadData.d.ts +27 -0
  1553. package/dist/uploads/sanitizeUploadData.d.ts.map +1 -0
  1554. package/dist/uploads/sanitizeUploadData.js +166 -0
  1555. package/dist/uploads/sanitizeUploadData.js.map +1 -0
  1556. package/dist/uploads/stagedUpload.js +1 -1
  1557. package/dist/uploads/stagedUpload.js.map +1 -1
  1558. package/dist/uploads/transformers/createLazySourceGetter.d.ts +15 -0
  1559. package/dist/uploads/transformers/createLazySourceGetter.d.ts.map +1 -0
  1560. package/dist/uploads/transformers/createLazySourceGetter.js +22 -0
  1561. package/dist/uploads/transformers/createLazySourceGetter.js.map +1 -0
  1562. package/dist/uploads/transformers/finalizeFileResponse.d.ts +14 -0
  1563. package/dist/uploads/transformers/finalizeFileResponse.d.ts.map +1 -0
  1564. package/dist/uploads/transformers/finalizeFileResponse.js +49 -0
  1565. package/dist/uploads/transformers/finalizeFileResponse.js.map +1 -0
  1566. package/dist/uploads/transformers/getSourceFileResponse.d.ts +16 -0
  1567. package/dist/uploads/transformers/getSourceFileResponse.d.ts.map +1 -0
  1568. package/dist/uploads/transformers/getSourceFileResponse.js +17 -0
  1569. package/dist/uploads/transformers/getSourceFileResponse.js.map +1 -0
  1570. package/dist/uploads/transformers/handleDynamicFileRequest.d.ts +18 -0
  1571. package/dist/uploads/transformers/handleDynamicFileRequest.d.ts.map +1 -0
  1572. package/dist/uploads/transformers/handleDynamicFileRequest.js +305 -0
  1573. package/dist/uploads/transformers/handleDynamicFileRequest.js.map +1 -0
  1574. package/dist/uploads/transformers/matchesMimeType.d.ts +11 -0
  1575. package/dist/uploads/transformers/matchesMimeType.d.ts.map +1 -0
  1576. package/dist/uploads/transformers/matchesMimeType.js +39 -0
  1577. package/dist/uploads/transformers/matchesMimeType.js.map +1 -0
  1578. package/dist/uploads/transformers/planTransformerPipeline.d.ts +26 -0
  1579. package/dist/uploads/transformers/planTransformerPipeline.d.ts.map +1 -0
  1580. package/dist/uploads/transformers/planTransformerPipeline.js +36 -0
  1581. package/dist/uploads/transformers/planTransformerPipeline.js.map +1 -0
  1582. package/dist/uploads/transformers/resolveUploadDocument.d.ts +51 -0
  1583. package/dist/uploads/transformers/resolveUploadDocument.d.ts.map +1 -0
  1584. package/dist/uploads/transformers/resolveUploadDocument.js +103 -0
  1585. package/dist/uploads/transformers/resolveUploadDocument.js.map +1 -0
  1586. package/dist/uploads/transformers/transformUploadFile.d.ts +18 -0
  1587. package/dist/uploads/transformers/transformUploadFile.d.ts.map +1 -0
  1588. package/dist/uploads/transformers/transformUploadFile.js +30 -0
  1589. package/dist/uploads/transformers/transformUploadFile.js.map +1 -0
  1590. package/dist/uploads/transformers/types.d.ts +71 -0
  1591. package/dist/uploads/transformers/types.d.ts.map +1 -0
  1592. package/dist/uploads/transformers/types.js +6 -0
  1593. package/dist/uploads/transformers/types.js.map +1 -0
  1594. package/dist/uploads/transformers/uploadTransformerBridge.d.ts +48 -0
  1595. package/dist/uploads/transformers/uploadTransformerBridge.d.ts.map +1 -0
  1596. package/dist/uploads/transformers/uploadTransformerBridge.js +22 -0
  1597. package/dist/uploads/transformers/uploadTransformerBridge.js.map +1 -0
  1598. package/dist/uploads/transformers/validateTransformers.d.ts +11 -0
  1599. package/dist/uploads/transformers/validateTransformers.d.ts.map +1 -0
  1600. package/dist/uploads/transformers/validateTransformers.js +67 -0
  1601. package/dist/uploads/transformers/validateTransformers.js.map +1 -0
  1602. package/dist/uploads/transformers/withFileTransformAccessContext.d.ts +13 -0
  1603. package/dist/uploads/transformers/withFileTransformAccessContext.d.ts.map +1 -0
  1604. package/dist/uploads/transformers/withFileTransformAccessContext.js +18 -0
  1605. package/dist/uploads/transformers/withFileTransformAccessContext.js.map +1 -0
  1606. package/dist/uploads/types.d.ts +118 -67
  1607. package/dist/uploads/types.d.ts.map +1 -1
  1608. package/dist/uploads/types.js.map +1 -1
  1609. package/dist/uploads/unlinkTempFiles.d.ts +1 -1
  1610. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  1611. package/dist/uploads/unlinkTempFiles.js +19 -14
  1612. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  1613. package/dist/uploads/uploadContentSecurityPolicy.d.ts +2 -0
  1614. package/dist/uploads/uploadContentSecurityPolicy.d.ts.map +1 -0
  1615. package/dist/uploads/uploadContentSecurityPolicy.js +3 -0
  1616. package/dist/uploads/uploadContentSecurityPolicy.js.map +1 -0
  1617. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  1618. package/dist/uploads/uploadFiles.js +9 -2
  1619. package/dist/uploads/uploadFiles.js.map +1 -1
  1620. package/dist/uploads/validateISOBaseMediaFile.d.ts +4 -0
  1621. package/dist/uploads/validateISOBaseMediaFile.d.ts.map +1 -0
  1622. package/dist/uploads/validateISOBaseMediaFile.js +91 -0
  1623. package/dist/uploads/validateISOBaseMediaFile.js.map +1 -0
  1624. package/dist/uploads/validateSvg.d.ts +10 -4
  1625. package/dist/uploads/validateSvg.d.ts.map +1 -1
  1626. package/dist/uploads/validateSvg.js +280 -40
  1627. package/dist/uploads/validateSvg.js.map +1 -1
  1628. package/dist/uploads/validateUploadFilename.d.ts +3 -0
  1629. package/dist/uploads/validateUploadFilename.d.ts.map +1 -0
  1630. package/dist/uploads/validateUploadFilename.js +13 -0
  1631. package/dist/uploads/validateUploadFilename.js.map +1 -0
  1632. package/dist/uploads/validateUploadURL.d.ts +13 -0
  1633. package/dist/uploads/validateUploadURL.d.ts.map +1 -0
  1634. package/dist/uploads/validateUploadURL.js +37 -0
  1635. package/dist/uploads/validateUploadURL.js.map +1 -0
  1636. package/dist/utilities/addDataAndFileToRequest.js +3 -1
  1637. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  1638. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  1639. package/dist/utilities/addSelectGenericsToGeneretedTypes.js +0 -1
  1640. package/dist/utilities/addSelectGenericsToGeneretedTypes.js.map +1 -1
  1641. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  1642. package/dist/utilities/appendNonTrashedFilter.d.ts +1 -1
  1643. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  1644. package/dist/utilities/appendNonTrashedFilter.js.map +1 -1
  1645. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  1646. package/dist/utilities/appendUploadSelectFields.js +4 -3
  1647. package/dist/utilities/appendUploadSelectFields.js.map +1 -1
  1648. package/dist/utilities/assertNoValidationWrite.d.ts +8 -0
  1649. package/dist/utilities/assertNoValidationWrite.d.ts.map +1 -0
  1650. package/dist/utilities/assertNoValidationWrite.js +12 -0
  1651. package/dist/utilities/assertNoValidationWrite.js.map +1 -0
  1652. package/dist/utilities/batchProcessing.d.ts +23 -0
  1653. package/dist/utilities/batchProcessing.d.ts.map +1 -0
  1654. package/dist/utilities/batchProcessing.js +34 -0
  1655. package/dist/utilities/batchProcessing.js.map +1 -0
  1656. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  1657. package/dist/utilities/canAccessAdmin.js +2 -0
  1658. package/dist/utilities/canAccessAdmin.js.map +1 -1
  1659. package/dist/utilities/checkDocumentLockStatus.d.ts +19 -0
  1660. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  1661. package/dist/utilities/checkDocumentLockStatus.js +74 -0
  1662. package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
  1663. package/dist/utilities/cloneValidationRequest.d.ts +15 -0
  1664. package/dist/utilities/cloneValidationRequest.d.ts.map +1 -0
  1665. package/dist/utilities/cloneValidationRequest.js +153 -0
  1666. package/dist/utilities/cloneValidationRequest.js.map +1 -0
  1667. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  1668. package/dist/utilities/commitTransaction.js +4 -0
  1669. package/dist/utilities/commitTransaction.js.map +1 -1
  1670. package/dist/utilities/configToJSONSchema.js +1 -1
  1671. package/dist/utilities/configToJSONSchema.js.map +1 -1
  1672. package/dist/utilities/createPayloadRequest.d.ts +12 -10
  1673. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  1674. package/dist/utilities/createPayloadRequest.js +98 -81
  1675. package/dist/utilities/createPayloadRequest.js.map +1 -1
  1676. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts +25 -0
  1677. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts.map +1 -0
  1678. package/dist/utilities/createPayloadRequestFromWebRequest.js +101 -0
  1679. package/dist/utilities/createPayloadRequestFromWebRequest.js.map +1 -0
  1680. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  1681. package/dist/utilities/deepCopyObject.js +110 -19
  1682. package/dist/utilities/deepCopyObject.js.map +1 -1
  1683. package/dist/utilities/deepMerge.d.ts +6 -0
  1684. package/dist/utilities/deepMerge.d.ts.map +1 -1
  1685. package/dist/utilities/deepMerge.js +19 -0
  1686. package/dist/utilities/deepMerge.js.map +1 -1
  1687. package/dist/utilities/documentMatchingWhereExists.d.ts +20 -0
  1688. package/dist/utilities/documentMatchingWhereExists.d.ts.map +1 -0
  1689. package/dist/utilities/documentMatchingWhereExists.js +28 -0
  1690. package/dist/utilities/documentMatchingWhereExists.js.map +1 -0
  1691. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts +30 -0
  1692. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts.map +1 -0
  1693. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js +73 -0
  1694. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js.map +1 -0
  1695. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts +23 -0
  1696. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts.map +1 -0
  1697. package/dist/utilities/entityInputSchema/getEntityInputSchema.js +73 -0
  1698. package/dist/utilities/entityInputSchema/getEntityInputSchema.js.map +1 -0
  1699. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts +17 -0
  1700. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts.map +1 -0
  1701. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js +409 -0
  1702. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js.map +1 -0
  1703. package/dist/utilities/entityInputSchema/types.d.ts +18 -0
  1704. package/dist/utilities/entityInputSchema/types.d.ts.map +1 -0
  1705. package/dist/utilities/entityInputSchema/types.js +3 -0
  1706. package/dist/utilities/entityInputSchema/types.js.map +1 -0
  1707. package/dist/utilities/entityInputSchema/validateEntityData.d.ts +13 -0
  1708. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -0
  1709. package/dist/utilities/entityInputSchema/validateEntityData.js +140 -0
  1710. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -0
  1711. package/dist/utilities/fieldPath.d.ts +13 -0
  1712. package/dist/utilities/fieldPath.d.ts.map +1 -0
  1713. package/dist/utilities/fieldPath.js +51 -0
  1714. package/dist/utilities/fieldPath.js.map +1 -0
  1715. package/dist/utilities/fieldValueExists.d.ts +16 -0
  1716. package/dist/utilities/fieldValueExists.d.ts.map +1 -0
  1717. package/dist/utilities/fieldValueExists.js +25 -0
  1718. package/dist/utilities/fieldValueExists.js.map +1 -0
  1719. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  1720. package/dist/utilities/flattenAllFields.js +1 -1
  1721. package/dist/utilities/flattenAllFields.js.map +1 -1
  1722. package/dist/utilities/flattenDataByLocale.d.ts +18 -0
  1723. package/dist/utilities/flattenDataByLocale.d.ts.map +1 -0
  1724. package/dist/utilities/flattenDataByLocale.js +171 -0
  1725. package/dist/utilities/flattenDataByLocale.js.map +1 -0
  1726. package/dist/utilities/formatAdminURL.d.ts +1 -0
  1727. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  1728. package/dist/utilities/formatAdminURL.js +22 -4
  1729. package/dist/utilities/formatAdminURL.js.map +1 -1
  1730. package/dist/utilities/formatErrors.d.ts.map +1 -1
  1731. package/dist/utilities/formatErrors.js +11 -1
  1732. package/dist/utilities/formatErrors.js.map +1 -1
  1733. package/dist/utilities/getAccessOperationRequest.d.ts +10 -0
  1734. package/dist/utilities/getAccessOperationRequest.d.ts.map +1 -0
  1735. package/dist/utilities/getAccessOperationRequest.js +11 -0
  1736. package/dist/utilities/getAccessOperationRequest.js.map +1 -0
  1737. package/dist/utilities/getEntityPermissions/entityDocExists.d.ts.map +1 -1
  1738. package/dist/utilities/getEntityPermissions/entityDocExists.js +36 -5
  1739. package/dist/utilities/getEntityPermissions/entityDocExists.js.map +1 -1
  1740. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  1741. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +10 -2
  1742. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  1743. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  1744. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +9 -2
  1745. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  1746. package/dist/utilities/getFieldPermissions.d.ts +1 -1
  1747. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  1748. package/dist/utilities/getFieldPermissions.js +3 -1
  1749. package/dist/utilities/getFieldPermissions.js.map +1 -1
  1750. package/dist/utilities/getNextVersion.d.ts +10 -0
  1751. package/dist/utilities/getNextVersion.d.ts.map +1 -0
  1752. package/dist/utilities/getNextVersion.js +23 -0
  1753. package/dist/utilities/getNextVersion.js.map +1 -0
  1754. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  1755. package/dist/utilities/getObjectDotNotation.js +7 -1
  1756. package/dist/utilities/getObjectDotNotation.js.map +1 -1
  1757. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  1758. package/dist/utilities/getRequestOrigin.js.map +1 -1
  1759. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  1760. package/dist/utilities/getSafeRedirect.js +16 -9
  1761. package/dist/utilities/getSafeRedirect.js.map +1 -1
  1762. package/dist/utilities/getTopLevelFieldNames.d.ts +2 -0
  1763. package/dist/utilities/getTopLevelFieldNames.d.ts.map +1 -0
  1764. package/dist/utilities/getTopLevelFieldNames.js +3 -0
  1765. package/dist/utilities/getTopLevelFieldNames.js.map +1 -0
  1766. package/dist/utilities/getUniqueFieldValue.d.ts +28 -0
  1767. package/dist/utilities/getUniqueFieldValue.d.ts.map +1 -0
  1768. package/dist/utilities/getUniqueFieldValue.js +27 -0
  1769. package/dist/utilities/getUniqueFieldValue.js.map +1 -0
  1770. package/dist/utilities/getVersionsConfig.d.ts +4 -0
  1771. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  1772. package/dist/utilities/getVersionsConfig.js +5 -0
  1773. package/dist/utilities/getVersionsConfig.js.map +1 -1
  1774. package/dist/utilities/getVirtualFieldNames.d.ts +14 -0
  1775. package/dist/utilities/getVirtualFieldNames.d.ts.map +1 -0
  1776. package/dist/utilities/getVirtualFieldNames.js +35 -0
  1777. package/dist/utilities/getVirtualFieldNames.js.map +1 -0
  1778. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  1779. package/dist/utilities/handleEndpoints.js +18 -9
  1780. package/dist/utilities/handleEndpoints.js.map +1 -1
  1781. package/dist/utilities/headersWithCors.js +1 -1
  1782. package/dist/utilities/headersWithCors.js.map +1 -1
  1783. package/dist/utilities/httpStatus.d.ts +16 -0
  1784. package/dist/utilities/httpStatus.d.ts.map +1 -0
  1785. package/dist/utilities/httpStatus.js +16 -0
  1786. package/dist/utilities/httpStatus.js.map +1 -0
  1787. package/dist/utilities/initTransaction.d.ts +3 -0
  1788. package/dist/utilities/initTransaction.d.ts.map +1 -1
  1789. package/dist/utilities/initTransaction.js +4 -0
  1790. package/dist/utilities/initTransaction.js.map +1 -1
  1791. package/dist/utilities/isErrorPublic.d.ts.map +1 -1
  1792. package/dist/utilities/isErrorPublic.js +1 -1
  1793. package/dist/utilities/isErrorPublic.js.map +1 -1
  1794. package/dist/utilities/isValidationErrorPathLocalized.d.ts +20 -0
  1795. package/dist/utilities/isValidationErrorPathLocalized.d.ts.map +1 -0
  1796. package/dist/utilities/isValidationErrorPathLocalized.js +150 -0
  1797. package/dist/utilities/isValidationErrorPathLocalized.js.map +1 -0
  1798. package/dist/utilities/killTransaction.d.ts +7 -0
  1799. package/dist/utilities/killTransaction.d.ts.map +1 -1
  1800. package/dist/utilities/killTransaction.js +11 -0
  1801. package/dist/utilities/killTransaction.js.map +1 -1
  1802. package/dist/utilities/logError.d.ts.map +1 -1
  1803. package/dist/utilities/logError.js +5 -2
  1804. package/dist/utilities/logError.js.map +1 -1
  1805. package/dist/utilities/nextJsDevReloadStrategy.d.ts +7 -0
  1806. package/dist/utilities/nextJsDevReloadStrategy.d.ts.map +1 -0
  1807. package/dist/utilities/nextJsDevReloadStrategy.js +68 -0
  1808. package/dist/utilities/nextJsDevReloadStrategy.js.map +1 -0
  1809. package/dist/utilities/parseDocumentID.d.ts +4 -1
  1810. package/dist/utilities/parseDocumentID.d.ts.map +1 -1
  1811. package/dist/utilities/parseDocumentID.js +7 -1
  1812. package/dist/utilities/parseDocumentID.js.map +1 -1
  1813. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  1814. package/dist/utilities/parseParams/index.js +3 -1
  1815. package/dist/utilities/parseParams/index.js.map +1 -1
  1816. package/dist/utilities/parseValidationLocale.d.ts +9 -0
  1817. package/dist/utilities/parseValidationLocale.d.ts.map +1 -0
  1818. package/dist/utilities/parseValidationLocale.js +30 -0
  1819. package/dist/utilities/parseValidationLocale.js.map +1 -0
  1820. package/dist/utilities/resolvePublishAllLocales.d.ts +13 -0
  1821. package/dist/utilities/resolvePublishAllLocales.d.ts.map +1 -0
  1822. package/dist/utilities/resolvePublishAllLocales.js +10 -0
  1823. package/dist/utilities/resolvePublishAllLocales.js.map +1 -0
  1824. package/dist/utilities/resolveValidationLocales.d.ts +32 -0
  1825. package/dist/utilities/resolveValidationLocales.d.ts.map +1 -0
  1826. package/dist/utilities/resolveValidationLocales.js +74 -0
  1827. package/dist/utilities/resolveValidationLocales.js.map +1 -0
  1828. package/dist/utilities/routeError.d.ts.map +1 -1
  1829. package/dist/utilities/routeError.js +1 -1
  1830. package/dist/utilities/routeError.js.map +1 -1
  1831. package/dist/utilities/runLocaleScopedValidation.d.ts +28 -0
  1832. package/dist/utilities/runLocaleScopedValidation.d.ts.map +1 -0
  1833. package/dist/utilities/runLocaleScopedValidation.js +126 -0
  1834. package/dist/utilities/runLocaleScopedValidation.js.map +1 -0
  1835. package/dist/utilities/runValidationLifecycle.d.ts +41 -0
  1836. package/dist/utilities/runValidationLifecycle.d.ts.map +1 -0
  1837. package/dist/utilities/runValidationLifecycle.js +118 -0
  1838. package/dist/utilities/runValidationLifecycle.js.map +1 -0
  1839. package/dist/utilities/sanitizePopulateParam.js.map +1 -1
  1840. package/dist/utilities/sanitizeUploadPrefix.d.ts +5 -0
  1841. package/dist/utilities/sanitizeUploadPrefix.d.ts.map +1 -0
  1842. package/dist/utilities/sanitizeUploadPrefix.js +18 -0
  1843. package/dist/utilities/sanitizeUploadPrefix.js.map +1 -0
  1844. package/dist/utilities/sharedInputSchemas.d.ts +52 -0
  1845. package/dist/utilities/sharedInputSchemas.d.ts.map +1 -0
  1846. package/dist/utilities/sharedInputSchemas.js +101 -0
  1847. package/dist/utilities/sharedInputSchemas.js.map +1 -0
  1848. package/dist/utilities/telemetry/conf/index.d.ts +4 -1
  1849. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  1850. package/dist/utilities/telemetry/conf/index.js.map +1 -1
  1851. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts +4 -0
  1852. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts.map +1 -0
  1853. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js +262 -0
  1854. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -0
  1855. package/dist/utilities/telemetry/featureInfo/types.d.ts +63 -0
  1856. package/dist/utilities/telemetry/featureInfo/types.d.ts.map +1 -0
  1857. package/dist/utilities/telemetry/featureInfo/types.js +3 -0
  1858. package/dist/utilities/telemetry/featureInfo/types.js.map +1 -0
  1859. package/dist/utilities/telemetry/getProjectContext.d.ts +16 -0
  1860. package/dist/utilities/telemetry/getProjectContext.d.ts.map +1 -0
  1861. package/dist/utilities/telemetry/getProjectContext.js +43 -0
  1862. package/dist/utilities/telemetry/getProjectContext.js.map +1 -0
  1863. package/dist/utilities/telemetry/index.d.ts +6 -1
  1864. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  1865. package/dist/utilities/telemetry/index.js +21 -1
  1866. package/dist/utilities/telemetry/index.js.map +1 -1
  1867. package/dist/utilities/toValidationResult.d.ts +13 -0
  1868. package/dist/utilities/toValidationResult.d.ts.map +1 -0
  1869. package/dist/utilities/toValidationResult.js +20 -0
  1870. package/dist/utilities/toValidationResult.js.map +1 -0
  1871. package/dist/utilities/transformPointDataToPayload.d.ts +7 -0
  1872. package/dist/utilities/transformPointDataToPayload.d.ts.map +1 -0
  1873. package/dist/utilities/transformPointDataToPayload.js +28 -0
  1874. package/dist/utilities/transformPointDataToPayload.js.map +1 -0
  1875. package/dist/utilities/traverseFields.d.ts.map +1 -1
  1876. package/dist/utilities/traverseFields.js +25 -36
  1877. package/dist/utilities/traverseFields.js.map +1 -1
  1878. package/dist/utilities/unflatten.d.ts.map +1 -1
  1879. package/dist/utilities/unflatten.js +21 -9
  1880. package/dist/utilities/unflatten.js.map +1 -1
  1881. package/dist/utilities/unflattenData.d.ts +3 -0
  1882. package/dist/utilities/unflattenData.d.ts.map +1 -0
  1883. package/dist/utilities/unflattenData.js +14 -0
  1884. package/dist/utilities/unflattenData.js.map +1 -0
  1885. package/dist/utilities/zod.d.ts +5 -0
  1886. package/dist/utilities/zod.d.ts.map +1 -0
  1887. package/dist/utilities/zod.js +21 -0
  1888. package/dist/utilities/zod.js.map +1 -0
  1889. package/dist/versions/allLocalesPublicationStatus.d.ts +38 -0
  1890. package/dist/versions/allLocalesPublicationStatus.d.ts.map +1 -0
  1891. package/dist/versions/allLocalesPublicationStatus.js +57 -0
  1892. package/dist/versions/allLocalesPublicationStatus.js.map +1 -0
  1893. package/dist/versions/deleteCollectionVersions.d.ts +11 -1
  1894. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  1895. package/dist/versions/deleteCollectionVersions.js +10 -3
  1896. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  1897. package/dist/versions/deleteScheduledPublishJobs.d.ts +5 -1
  1898. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  1899. package/dist/versions/deleteScheduledPublishJobs.js +11 -5
  1900. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  1901. package/dist/versions/drafts/appendVersionToQueryKey.d.ts +1 -0
  1902. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  1903. package/dist/versions/drafts/appendVersionToQueryKey.js +6 -12
  1904. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  1905. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +11 -1
  1906. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  1907. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +28 -6
  1908. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  1909. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  1910. package/dist/versions/enforceMaxVersions.js +14 -0
  1911. package/dist/versions/enforceMaxVersions.js.map +1 -1
  1912. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  1913. package/dist/versions/getLatestGlobalVersion.js +10 -2
  1914. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  1915. package/dist/versions/getRestoredStatusesToAuthorize.d.ts +9 -0
  1916. package/dist/versions/getRestoredStatusesToAuthorize.d.ts.map +1 -0
  1917. package/dist/versions/getRestoredStatusesToAuthorize.js +22 -0
  1918. package/dist/versions/getRestoredStatusesToAuthorize.js.map +1 -0
  1919. package/dist/versions/isInheritedReadVersionsAccess.d.ts +6 -0
  1920. package/dist/versions/isInheritedReadVersionsAccess.d.ts.map +1 -0
  1921. package/dist/versions/isInheritedReadVersionsAccess.js +30 -0
  1922. package/dist/versions/isInheritedReadVersionsAccess.js.map +1 -0
  1923. package/dist/versions/saveVersion.d.ts.map +1 -1
  1924. package/dist/versions/saveVersion.js +2 -0
  1925. package/dist/versions/saveVersion.js.map +1 -1
  1926. package/dist/versions/schedule/job.d.ts +2 -2
  1927. package/dist/versions/schedule/job.d.ts.map +1 -1
  1928. package/dist/versions/schedule/job.js +22 -11
  1929. package/dist/versions/schedule/job.js.map +1 -1
  1930. package/dist/versions/schedule/types.d.ts +5 -1
  1931. package/dist/versions/schedule/types.d.ts.map +1 -1
  1932. package/dist/versions/schedule/types.js.map +1 -1
  1933. package/package.json +61 -36
  1934. package/skills/payload/SKILL.md +544 -0
  1935. package/skills/payload/reference/ACCESS-CONTROL-ADVANCED.md +718 -0
  1936. package/skills/payload/reference/ACCESS-CONTROL.md +700 -0
  1937. package/skills/payload/reference/ADAPTERS.md +312 -0
  1938. package/skills/payload/reference/ADVANCED.md +393 -0
  1939. package/skills/payload/reference/COLLECTIONS.md +336 -0
  1940. package/skills/payload/reference/ENDPOINTS.md +644 -0
  1941. package/skills/payload/reference/FIELD-TYPE-GUARDS.md +553 -0
  1942. package/skills/payload/reference/FIELDS.md +748 -0
  1943. package/skills/payload/reference/HOOKS.md +186 -0
  1944. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +1445 -0
  1945. package/skills/payload/reference/QUERIES.md +282 -0
  1946. package/dist/auth/cookies.spec.js +0 -34
  1947. package/dist/auth/cookies.spec.js.map +0 -1
  1948. package/dist/auth/strategies/local/authenticate.spec.js +0 -83
  1949. package/dist/auth/strategies/local/authenticate.spec.js.map +0 -1
  1950. package/dist/bin/build.d.ts +0 -49
  1951. package/dist/bin/build.d.ts.map +0 -1
  1952. package/dist/bin/build.js +0 -226
  1953. package/dist/bin/build.js.map +0 -1
  1954. package/dist/bin/build.spec.js +0 -594
  1955. package/dist/bin/build.spec.js.map +0 -1
  1956. package/dist/bin/frameworkConventions.d.ts.map +0 -1
  1957. package/dist/bin/frameworkConventions.js.map +0 -1
  1958. package/dist/bin/generateImportMap/generateImportMap.spec.js +0 -176
  1959. package/dist/bin/generateImportMap/generateImportMap.spec.js.map +0 -1
  1960. package/dist/bin/generateImportMap/index.d.ts +0 -44
  1961. package/dist/bin/generateImportMap/index.d.ts.map +0 -1
  1962. package/dist/bin/generateImportMap/index.js +0 -109
  1963. package/dist/bin/generateImportMap/index.js.map +0 -1
  1964. package/dist/bin/generateImportMap/iterateCollections.d.ts +0 -12
  1965. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +0 -1
  1966. package/dist/bin/generateImportMap/iterateCollections.js.map +0 -1
  1967. package/dist/bin/generateImportMap/iterateConfig.d.ts +0 -10
  1968. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +0 -1
  1969. package/dist/bin/generateImportMap/iterateConfig.js +0 -128
  1970. package/dist/bin/generateImportMap/iterateConfig.js.map +0 -1
  1971. package/dist/bin/generateImportMap/iterateFields.d.ts +0 -12
  1972. package/dist/bin/generateImportMap/iterateFields.d.ts.map +0 -1
  1973. package/dist/bin/generateImportMap/iterateFields.js.map +0 -1
  1974. package/dist/bin/generateImportMap/iterateGlobals.d.ts +0 -12
  1975. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +0 -1
  1976. package/dist/bin/generateImportMap/iterateGlobals.js.map +0 -1
  1977. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts +0 -15
  1978. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +0 -1
  1979. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +0 -1
  1980. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts +0 -9
  1981. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +0 -1
  1982. package/dist/bin/generateImportMap/utilities/getFromImportMap.js.map +0 -1
  1983. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +0 -1
  1984. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +0 -1
  1985. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.d.ts +0 -6
  1986. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.d.ts.map +0 -1
  1987. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.js.map +0 -1
  1988. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +0 -1
  1989. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +0 -65
  1990. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +0 -1
  1991. package/dist/bin/generateTypes.d.ts +0 -6
  1992. package/dist/bin/generateTypes.d.ts.map +0 -1
  1993. package/dist/bin/generateTypes.js +0 -79
  1994. package/dist/bin/generateTypes.js.map +0 -1
  1995. package/dist/bin/index.d.ts +0 -2
  1996. package/dist/bin/index.d.ts.map +0 -1
  1997. package/dist/bin/index.js +0 -200
  1998. package/dist/bin/index.js.map +0 -1
  1999. package/dist/bin/info.d.ts +0 -2
  2000. package/dist/bin/info.d.ts.map +0 -1
  2001. package/dist/bin/info.js +0 -56
  2002. package/dist/bin/info.js.map +0 -1
  2003. package/dist/bin/loadEnv.d.ts.map +0 -1
  2004. package/dist/bin/loadEnv.js +0 -58
  2005. package/dist/bin/loadEnv.js.map +0 -1
  2006. package/dist/bin/migrate.d.ts +0 -15
  2007. package/dist/bin/migrate.d.ts.map +0 -1
  2008. package/dist/bin/migrate.js +0 -102
  2009. package/dist/bin/migrate.js.map +0 -1
  2010. package/dist/collections/config/defaults.spec.js +0 -47
  2011. package/dist/collections/config/defaults.spec.js.map +0 -1
  2012. package/dist/collections/config/sanitize.spec.js +0 -120
  2013. package/dist/collections/config/sanitize.spec.js.map +0 -1
  2014. package/dist/collections/config/useAsTitle.spec.js +0 -187
  2015. package/dist/collections/config/useAsTitle.spec.js.map +0 -1
  2016. package/dist/database/defaultUpdateJobs.d.ts +0 -3
  2017. package/dist/database/defaultUpdateJobs.d.ts.map +0 -1
  2018. package/dist/database/defaultUpdateJobs.js +0 -41
  2019. package/dist/database/defaultUpdateJobs.js.map +0 -1
  2020. package/dist/database/migrations/findMigrationDir.spec.js +0 -47
  2021. package/dist/database/migrations/findMigrationDir.spec.js.map +0 -1
  2022. package/dist/fields/config/reservedFieldNames.spec.js +0 -149
  2023. package/dist/fields/config/reservedFieldNames.spec.js.map +0 -1
  2024. package/dist/fields/config/sanitize.spec.js +0 -745
  2025. package/dist/fields/config/sanitize.spec.js.map +0 -1
  2026. package/dist/fields/isFieldDisabled.spec.js +0 -134
  2027. package/dist/fields/isFieldDisabled.spec.js.map +0 -1
  2028. package/dist/fields/validations.spec.js +0 -990
  2029. package/dist/fields/validations.spec.js.map +0 -1
  2030. package/dist/globals/config/sanitize.spec.js +0 -43
  2031. package/dist/globals/config/sanitize.spec.js.map +0 -1
  2032. package/dist/hierarchy/utils/getLocalizedValue.spec.js +0 -250
  2033. package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +0 -1
  2034. package/dist/locked-documents/config.spec.js +0 -298
  2035. package/dist/locked-documents/config.spec.js.map +0 -1
  2036. package/dist/uploads/checkFileAccess.spec.js +0 -109
  2037. package/dist/uploads/checkFileAccess.spec.js.map +0 -1
  2038. package/dist/uploads/cropImage.d.ts +0 -30
  2039. package/dist/uploads/cropImage.d.ts.map +0 -1
  2040. package/dist/uploads/cropImage.js +0 -58
  2041. package/dist/uploads/cropImage.js.map +0 -1
  2042. package/dist/uploads/endpoints/getFileFromURL.d.ts +0 -3
  2043. package/dist/uploads/endpoints/getFileFromURL.d.ts.map +0 -1
  2044. package/dist/uploads/endpoints/getFileFromURL.js +0 -116
  2045. package/dist/uploads/endpoints/getFileFromURL.js.map +0 -1
  2046. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js +0 -29
  2047. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js.map +0 -1
  2048. package/dist/uploads/getExternalFile.d.ts +0 -10
  2049. package/dist/uploads/getExternalFile.d.ts.map +0 -1
  2050. package/dist/uploads/getExternalFile.js +0 -73
  2051. package/dist/uploads/getExternalFile.js.map +0 -1
  2052. package/dist/uploads/getSafeFilename.spec.js +0 -274
  2053. package/dist/uploads/getSafeFilename.spec.js.map +0 -1
  2054. package/dist/uploads/image-resizing/createImageSize.d.ts +0 -24
  2055. package/dist/uploads/image-resizing/createImageSize.d.ts.map +0 -1
  2056. package/dist/uploads/image-resizing/createImageSize.js +0 -23
  2057. package/dist/uploads/image-resizing/createImageSize.js.map +0 -1
  2058. package/dist/uploads/image-resizing/createImageSizes.d.ts +0 -39
  2059. package/dist/uploads/image-resizing/createImageSizes.d.ts.map +0 -1
  2060. package/dist/uploads/image-resizing/createImageSizes.js +0 -208
  2061. package/dist/uploads/image-resizing/createImageSizes.js.map +0 -1
  2062. package/dist/uploads/image-resizing/extractHeightFromImage.d.ts +0 -9
  2063. package/dist/uploads/image-resizing/extractHeightFromImage.d.ts.map +0 -1
  2064. package/dist/uploads/image-resizing/extractHeightFromImage.js +0 -13
  2065. package/dist/uploads/image-resizing/extractHeightFromImage.js.map +0 -1
  2066. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +0 -1
  2067. package/dist/uploads/image-resizing/generateImageSizeFilename.js.map +0 -1
  2068. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +0 -24
  2069. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +0 -1
  2070. package/dist/uploads/image-resizing/getImageResizeAction.js +0 -56
  2071. package/dist/uploads/image-resizing/getImageResizeAction.js.map +0 -1
  2072. package/dist/uploads/image-resizing/parseFilename.d.ts.map +0 -1
  2073. package/dist/uploads/image-resizing/parseFilename.js.map +0 -1
  2074. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts +0 -11
  2075. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +0 -1
  2076. package/dist/uploads/image-resizing/sanitizeResizeConfig.js +0 -20
  2077. package/dist/uploads/image-resizing/sanitizeResizeConfig.js.map +0 -1
  2078. package/dist/uploads/matchMimeType.spec.js +0 -66
  2079. package/dist/uploads/matchMimeType.spec.js.map +0 -1
  2080. package/dist/uploads/mimeTypeValidator.spec.js +0 -84
  2081. package/dist/uploads/mimeTypeValidator.spec.js.map +0 -1
  2082. package/dist/uploads/optionallyAppendMetadata.d.ts +0 -12
  2083. package/dist/uploads/optionallyAppendMetadata.d.ts.map +0 -1
  2084. package/dist/uploads/optionallyAppendMetadata.js +0 -17
  2085. package/dist/uploads/optionallyAppendMetadata.js.map +0 -1
  2086. package/dist/uploads/tempFile.d.ts +0 -7
  2087. package/dist/uploads/tempFile.d.ts.map +0 -1
  2088. package/dist/uploads/tempFile.js +0 -39
  2089. package/dist/uploads/tempFile.js.map +0 -1
  2090. package/dist/utilities/addDataAndFileToRequest.spec.js +0 -41
  2091. package/dist/utilities/addDataAndFileToRequest.spec.js.map +0 -1
  2092. package/dist/utilities/addSelectGenericsToGeneratedTypes.spec.js +0 -563
  2093. package/dist/utilities/addSelectGenericsToGeneratedTypes.spec.js.map +0 -1
  2094. package/dist/utilities/combineWhereConstraints.spec.js +0 -131
  2095. package/dist/utilities/combineWhereConstraints.spec.js.map +0 -1
  2096. package/dist/utilities/configToJSONSchema.spec.js +0 -1162
  2097. package/dist/utilities/configToJSONSchema.spec.js.map +0 -1
  2098. package/dist/utilities/createLocalReq.d.ts +0 -15
  2099. package/dist/utilities/createLocalReq.d.ts.map +0 -1
  2100. package/dist/utilities/createLocalReq.js +0 -110
  2101. package/dist/utilities/createLocalReq.js.map +0 -1
  2102. package/dist/utilities/createLocalReq.spec.js +0 -125
  2103. package/dist/utilities/createLocalReq.spec.js.map +0 -1
  2104. package/dist/utilities/filterDataToSelectedLocales.spec.js +0 -529
  2105. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +0 -1
  2106. package/dist/utilities/flattenTopLevelFields.spec.js +0 -659
  2107. package/dist/utilities/flattenTopLevelFields.spec.js.map +0 -1
  2108. package/dist/utilities/formatAdminURL.spec.js +0 -168
  2109. package/dist/utilities/formatAdminURL.spec.js.map +0 -1
  2110. package/dist/utilities/formatErrors.spec.js +0 -101
  2111. package/dist/utilities/formatErrors.spec.js.map +0 -1
  2112. package/dist/utilities/formatLabels.spec.js +0 -38
  2113. package/dist/utilities/formatLabels.spec.js.map +0 -1
  2114. package/dist/utilities/getFieldByPath.spec.js +0 -157
  2115. package/dist/utilities/getFieldByPath.spec.js.map +0 -1
  2116. package/dist/utilities/getFieldPermissions.spec.js +0 -78
  2117. package/dist/utilities/getFieldPermissions.spec.js.map +0 -1
  2118. package/dist/utilities/getRequestOrigin.spec.js +0 -151
  2119. package/dist/utilities/getRequestOrigin.spec.js.map +0 -1
  2120. package/dist/utilities/getSafeRedirect.spec.js +0 -84
  2121. package/dist/utilities/getSafeRedirect.spec.js.map +0 -1
  2122. package/dist/utilities/isURLAllowed.spec.js +0 -78
  2123. package/dist/utilities/isURLAllowed.spec.js.map +0 -1
  2124. package/dist/utilities/isolateObjectProperty.spec.js +0 -120
  2125. package/dist/utilities/isolateObjectProperty.spec.js.map +0 -1
  2126. package/dist/utilities/mergeLocalizedData.spec.js +0 -1108
  2127. package/dist/utilities/mergeLocalizedData.spec.js.map +0 -1
  2128. package/dist/utilities/optionsAreEqual.spec.js +0 -319
  2129. package/dist/utilities/optionsAreEqual.spec.js.map +0 -1
  2130. package/dist/utilities/parseParams/index.spec.js +0 -384
  2131. package/dist/utilities/parseParams/index.spec.js.map +0 -1
  2132. package/dist/utilities/profiling.spec.js +0 -53
  2133. package/dist/utilities/profiling.spec.js.map +0 -1
  2134. package/dist/utilities/sanitizePermissions.spec.js +0 -1639
  2135. package/dist/utilities/sanitizePermissions.spec.js.map +0 -1
  2136. package/dist/utilities/sanitizeUserDataForEmail.spec.js +0 -134
  2137. package/dist/utilities/sanitizeUserDataForEmail.spec.js.map +0 -1
  2138. package/dist/utilities/telemetry/index.spec.js +0 -43
  2139. package/dist/utilities/telemetry/index.spec.js.map +0 -1
  2140. package/dist/utilities/traverseFields.spec.js +0 -53
  2141. package/dist/utilities/traverseFields.spec.js.map +0 -1
  2142. package/dist/utilities/validateTimezones.spec.js +0 -493
  2143. package/dist/utilities/validateTimezones.spec.js.map +0 -1
  2144. /package/dist/{bin → cli/commands/generateImportMap}/frameworkConventions.d.ts +0 -0
  2145. /package/dist/{bin → cli/commands/generateImportMap}/frameworkConventions.js +0 -0
  2146. /package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.js +0 -0
  2147. /package/dist/{bin → cli/commands}/generateImportMap/iterateFields.js +0 -0
  2148. /package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.js +0 -0
  2149. /package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.js +0 -0
  2150. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.js +0 -0
  2151. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts +0 -0
  2152. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.js +0 -0
  2153. /package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.js +0 -0
  2154. /package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.d.ts +0 -0
  2155. /package/dist/{bin → cli/runtime}/loadEnv.d.ts +0 -0
  2156. /package/dist/uploads/{image-resizing/generateImageSizeFilename.d.ts → generateImageSizeFilename.d.ts} +0 -0
  2157. /package/dist/uploads/{image-resizing/generateImageSizeFilename.js → generateImageSizeFilename.js} +0 -0
  2158. /package/dist/uploads/{image-resizing/parseFilename.d.ts → parseFilename.d.ts} +0 -0
  2159. /package/dist/uploads/{image-resizing/parseFilename.js → parseFilename.js} +0 -0
@@ -3,10 +3,49 @@ import { extractID } from '../../utilities/extractID.js';
3
3
  import { getTranslatedLabel } from '../../utilities/getTranslatedLabel.js';
4
4
  export const ensureSafeCollectionsChange = ({ folderFieldName, foldersSlug, parentFieldName = 'folder', typeFieldName = 'hierarchyType' })=>async ({ data, originalDoc, req })=>{
5
5
  const currentParentDocID = extractID(originalDoc || {});
6
- const newParentDocID = extractID(data?.[parentFieldName] || originalDoc?.[parentFieldName] || {});
6
+ const hasSubmittedParent = Object.hasOwn(data ?? {}, parentFieldName);
7
+ const hasSubmittedTypes = Object.hasOwn(data ?? {}, typeFieldName);
8
+ const parentValue = hasSubmittedParent ? data?.[parentFieldName] : originalDoc?.[parentFieldName];
9
+ const newParentDocID = extractID(parentValue || {});
10
+ const originalParentDocID = extractID(originalDoc?.[parentFieldName] || {});
11
+ const typeValue = hasSubmittedTypes ? data?.[typeFieldName] : originalDoc?.[typeFieldName];
12
+ const types = getStringValues(typeValue);
13
+ const originalTypes = getStringValues(originalDoc?.[typeFieldName]);
14
+ const hasParentChange = originalDoc ? newParentDocID !== originalParentDocID : hasSubmittedParent;
15
+ const hasTypeChange = originalDoc ? !haveSameValues({
16
+ first: types,
17
+ second: originalTypes
18
+ }) : hasSubmittedTypes;
19
+ const hierarchyConfig = req.payload.collections[foldersSlug]?.config.hierarchy;
20
+ const configuredTypes = hierarchyConfig && typeof hierarchyConfig === 'object' ? Object.keys(hierarchyConfig.relatedCollections) : [];
21
+ if ((hasParentChange || hasTypeChange) && newParentDocID) {
22
+ // Scope inheritance is an integrity constraint, so validate against the parent even when the
23
+ // requester cannot read it. Only select scope data to avoid exposing inaccessible metadata.
24
+ const parentFolder = await req.payload.findByID({
25
+ id: newParentDocID,
26
+ collection: foldersSlug,
27
+ overrideAccess: true,
28
+ req,
29
+ select: {
30
+ [typeFieldName]: true
31
+ },
32
+ user: req.user
33
+ });
34
+ const parentTypes = Array.isArray(parentFolder[typeFieldName]) ? parentFolder[typeFieldName].filter((collectionSlug)=>typeof collectionSlug === 'string') : [];
35
+ const parentAllowsEveryConfiguredType = configuredTypes.length > 0 && configuredTypes.every((collectionSlug)=>parentTypes.includes(collectionSlug));
36
+ if (parentTypes.length > 0 && !parentAllowsEveryConfiguredType) {
37
+ if (types.length === 0) {
38
+ throw new APIError(`The folder "${data?.name || originalDoc.name}" must have folder-type set since its parent folder has a folder-type set.`, 400);
39
+ }
40
+ const disallowedTypes = types.filter((collectionSlug)=>!parentTypes.includes(collectionSlug));
41
+ if (disallowedTypes.length > 0) {
42
+ throw new APIError(`The folder "${data?.name || originalDoc.name}" cannot allow collection types that its parent does not allow: ${disallowedTypes.join(', ')}`, 400);
43
+ }
44
+ }
45
+ }
7
46
  if (Array.isArray(data?.[typeFieldName]) && data[typeFieldName].length > 0) {
8
47
  const typeFieldValue = data[typeFieldName];
9
- const currentlyAssignedCollections = Array.isArray(originalDoc?.[typeFieldName]) && originalDoc[typeFieldName].length > 0 ? originalDoc[typeFieldName] : undefined;
48
+ const currentlyAssignedCollections = Array.isArray(originalDoc?.[typeFieldName]) && originalDoc[typeFieldName].length > 0 ? originalDoc[typeFieldName] : configuredTypes;
10
49
  /**
11
50
  * Check if the assigned collections have changed.
12
51
  * example:
@@ -16,7 +55,7 @@ export const ensureSafeCollectionsChange = ({ folderFieldName, foldersSlug, pare
16
55
  * The user is narrowing the types of documents that can be associated with this folder.
17
56
  * If the user is only expanding the types of documents that can be associated with this folder,
18
57
  * we do not need to do anything.
19
- */ const newCollections = currentlyAssignedCollections ? currentlyAssignedCollections.filter((c)=>!typeFieldValue.includes(c)) : typeFieldValue;
58
+ */ const newCollections = currentlyAssignedCollections.filter((collectionSlug)=>!typeFieldValue.includes(collectionSlug));
20
59
  if (newCollections && newCollections.length > 0) {
21
60
  let dependentCollection = null;
22
61
  if (typeof currentParentDocID === 'string' || typeof currentParentDocID === 'number') {
@@ -38,8 +77,27 @@ export const ensureSafeCollectionsChange = ({ folderFieldName, foldersSlug, pare
38
77
  break;
39
78
  }
40
79
  }
41
- // Also check for child folders with these types
80
+ // Also check for child folders whose effective scope is broader than the new scope.
42
81
  if (!dependentCollection) {
82
+ const childScopeConditions = [
83
+ {
84
+ [typeFieldName]: {
85
+ in: newCollections
86
+ }
87
+ }
88
+ ];
89
+ const newScopeAllowsEveryConfiguredType = configuredTypes.every((collectionSlug)=>typeFieldValue.includes(collectionSlug));
90
+ if (!newScopeAllowsEveryConfiguredType) {
91
+ childScopeConditions.push({
92
+ [typeFieldName]: {
93
+ exists: false
94
+ }
95
+ }, {
96
+ [typeFieldName]: {
97
+ not_in: configuredTypes
98
+ }
99
+ });
100
+ }
43
101
  const childFoldersResult = await req.payload.find({
44
102
  collection: foldersSlug,
45
103
  limit: 1,
@@ -47,15 +105,13 @@ export const ensureSafeCollectionsChange = ({ folderFieldName, foldersSlug, pare
47
105
  req,
48
106
  where: {
49
107
  and: [
50
- {
51
- [typeFieldName]: {
52
- in: newCollections
53
- }
54
- },
55
108
  {
56
109
  [parentFieldName]: {
57
110
  equals: currentParentDocID
58
111
  }
112
+ },
113
+ {
114
+ or: childScopeConditions
59
115
  }
60
116
  ]
61
117
  }
@@ -77,32 +133,14 @@ export const ensureSafeCollectionsChange = ({ folderFieldName, foldersSlug, pare
77
133
  }
78
134
  return data;
79
135
  }
80
- } else if ((data?.[typeFieldName] === null || Array.isArray(data?.[typeFieldName]) && data?.[typeFieldName].length === 0) && newParentDocID) {
81
- // attempting to set the type to catch-all, so we need to ensure that the parent allows this
82
- let parentFolder;
83
- if (typeof newParentDocID === 'string' || typeof newParentDocID === 'number') {
84
- try {
85
- parentFolder = await req.payload.findByID({
86
- id: newParentDocID,
87
- collection: foldersSlug,
88
- overrideAccess: true,
89
- req,
90
- select: {
91
- name: true,
92
- [typeFieldName]: true
93
- },
94
- user: req.user
95
- });
96
- } catch (_) {
97
- // parent folder does not exist
98
- }
99
- }
100
- const parentTypeValue = parentFolder?.[typeFieldName];
101
- if (parentFolder && parentTypeValue && Array.isArray(parentTypeValue) && parentTypeValue.length > 0) {
102
- throw new APIError(`The folder "${data?.name || originalDoc.name}" must have folder-type set since its parent folder ${parentFolder?.name ? `"${parentFolder?.name}" ` : ''}has a folder-type set.`, 400);
103
- }
104
136
  }
105
137
  return data;
106
138
  };
139
+ function getStringValues(value) {
140
+ return Array.isArray(value) ? value.filter((item)=>typeof item === 'string') : [];
141
+ }
142
+ function haveSameValues({ first, second }) {
143
+ return first.length === second.length && first.every((value)=>second.includes(value));
144
+ }
107
145
 
108
146
  //# sourceMappingURL=ensureSafeCollectionsChange.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hierarchy/hooks/ensureSafeCollectionsChange.ts"],"sourcesContent":["import { APIError, type CollectionBeforeValidateHook, type CollectionSlug } from '../../index.js'\nimport { extractID } from '../../utilities/extractID.js'\nimport { getTranslatedLabel } from '../../utilities/getTranslatedLabel.js'\n\nexport const ensureSafeCollectionsChange =\n ({\n folderFieldName,\n foldersSlug,\n parentFieldName = 'folder',\n typeFieldName = 'hierarchyType',\n }: {\n folderFieldName: string\n foldersSlug: CollectionSlug\n parentFieldName?: string\n typeFieldName?: string\n }): CollectionBeforeValidateHook =>\n async ({ data, originalDoc, req }) => {\n const currentParentDocID = extractID(originalDoc || {})\n const newParentDocID = extractID(\n data?.[parentFieldName] || originalDoc?.[parentFieldName] || {},\n )\n if (Array.isArray(data?.[typeFieldName]) && data[typeFieldName].length > 0) {\n const typeFieldValue = data[typeFieldName] as string[]\n const currentlyAssignedCollections: string[] | undefined =\n Array.isArray(originalDoc?.[typeFieldName]) && originalDoc[typeFieldName].length > 0\n ? originalDoc[typeFieldName]\n : undefined\n /**\n * Check if the assigned collections have changed.\n * example:\n * - originalAssignedCollections: ['posts', 'pages']\n * - folderType: ['posts']\n *\n * The user is narrowing the types of documents that can be associated with this folder.\n * If the user is only expanding the types of documents that can be associated with this folder,\n * we do not need to do anything.\n */\n const newCollections = currentlyAssignedCollections\n ? // user is narrowing the current scope of the folder\n currentlyAssignedCollections.filter((c) => !typeFieldValue.includes(c))\n : // user is adding a scope to the folder\n typeFieldValue\n\n if (newCollections && newCollections.length > 0) {\n let dependentCollection: null | string = null\n\n if (typeof currentParentDocID === 'string' || typeof currentParentDocID === 'number') {\n // Check each collection being removed for dependent documents\n for (const collectionSlug of newCollections) {\n const result = await req.payload.find({\n collection: collectionSlug,\n limit: 1,\n overrideAccess: true,\n req,\n where: {\n [folderFieldName]: { equals: currentParentDocID },\n },\n })\n\n if (result.totalDocs > 0) {\n dependentCollection = collectionSlug\n break\n }\n }\n\n // Also check for child folders with these types\n if (!dependentCollection) {\n const childFoldersResult = await req.payload.find({\n collection: foldersSlug,\n limit: 1,\n overrideAccess: true,\n req,\n where: {\n and: [\n { [typeFieldName]: { in: newCollections } },\n { [parentFieldName]: { equals: currentParentDocID } },\n ],\n },\n })\n\n if (childFoldersResult.totalDocs > 0) {\n dependentCollection = foldersSlug\n }\n }\n }\n\n if (dependentCollection) {\n const translatedLabels = newCollections.map((collectionSlug) => {\n if (req.payload.collections[collectionSlug]?.config.labels.singular) {\n return getTranslatedLabel(\n req.payload.collections[collectionSlug]?.config.labels.plural,\n req.i18n,\n )\n }\n return collectionSlug\n })\n\n const isFolder = dependentCollection === foldersSlug\n throw new APIError(\n `The folder \"${data.name || originalDoc.name}\" contains ${isFolder ? 'folders' : 'documents'} that still belong to the following collections: ${translatedLabels.join(', ')}`,\n 400,\n )\n }\n\n return data\n }\n } else if (\n (data?.[typeFieldName] === null ||\n (Array.isArray(data?.[typeFieldName]) && data?.[typeFieldName].length === 0)) &&\n newParentDocID\n ) {\n // attempting to set the type to catch-all, so we need to ensure that the parent allows this\n let parentFolder\n if (typeof newParentDocID === 'string' || typeof newParentDocID === 'number') {\n try {\n parentFolder = await req.payload.findByID({\n id: newParentDocID,\n collection: foldersSlug,\n overrideAccess: true,\n req,\n select: {\n name: true,\n [typeFieldName]: true,\n },\n user: req.user,\n })\n } catch (_) {\n // parent folder does not exist\n }\n }\n\n const parentTypeValue = parentFolder?.[typeFieldName]\n if (\n parentFolder &&\n parentTypeValue &&\n Array.isArray(parentTypeValue) &&\n parentTypeValue.length > 0\n ) {\n throw new APIError(\n `The folder \"${data?.name || originalDoc.name}\" must have folder-type set since its parent folder ${parentFolder?.name ? `\"${parentFolder?.name}\" ` : ''}has a folder-type set.`,\n 400,\n )\n }\n }\n\n return data\n }\n"],"names":["APIError","extractID","getTranslatedLabel","ensureSafeCollectionsChange","folderFieldName","foldersSlug","parentFieldName","typeFieldName","data","originalDoc","req","currentParentDocID","newParentDocID","Array","isArray","length","typeFieldValue","currentlyAssignedCollections","undefined","newCollections","filter","c","includes","dependentCollection","collectionSlug","result","payload","find","collection","limit","overrideAccess","where","equals","totalDocs","childFoldersResult","and","in","translatedLabels","map","collections","config","labels","singular","plural","i18n","isFolder","name","join","parentFolder","findByID","id","select","user","_","parentTypeValue"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/hierarchy/hooks/ensureSafeCollectionsChange.ts"],"sourcesContent":["import {\n APIError,\n type CollectionBeforeValidateHook,\n type CollectionSlug,\n type Where,\n} from '../../index.js'\nimport { extractID } from '../../utilities/extractID.js'\nimport { getTranslatedLabel } from '../../utilities/getTranslatedLabel.js'\n\nexport const ensureSafeCollectionsChange =\n ({\n folderFieldName,\n foldersSlug,\n parentFieldName = 'folder',\n typeFieldName = 'hierarchyType',\n }: {\n folderFieldName: string\n foldersSlug: CollectionSlug\n parentFieldName?: string\n typeFieldName?: string\n }): CollectionBeforeValidateHook =>\n async ({ data, originalDoc, req }) => {\n const currentParentDocID = extractID(originalDoc || {})\n const hasSubmittedParent = Object.hasOwn(data ?? {}, parentFieldName)\n const hasSubmittedTypes = Object.hasOwn(data ?? {}, typeFieldName)\n const parentValue = hasSubmittedParent\n ? data?.[parentFieldName]\n : originalDoc?.[parentFieldName]\n const newParentDocID = extractID(parentValue || {})\n const originalParentDocID = extractID(originalDoc?.[parentFieldName] || {})\n const typeValue = hasSubmittedTypes ? data?.[typeFieldName] : originalDoc?.[typeFieldName]\n const types = getStringValues(typeValue)\n const originalTypes = getStringValues(originalDoc?.[typeFieldName])\n\n const hasParentChange = originalDoc\n ? newParentDocID !== originalParentDocID\n : hasSubmittedParent\n const hasTypeChange = originalDoc\n ? !haveSameValues({ first: types, second: originalTypes })\n : hasSubmittedTypes\n\n const hierarchyConfig = req.payload.collections[foldersSlug]?.config.hierarchy\n const configuredTypes =\n hierarchyConfig && typeof hierarchyConfig === 'object'\n ? Object.keys(hierarchyConfig.relatedCollections)\n : []\n\n if ((hasParentChange || hasTypeChange) && newParentDocID) {\n // Scope inheritance is an integrity constraint, so validate against the parent even when the\n // requester cannot read it. Only select scope data to avoid exposing inaccessible metadata.\n const parentFolder = await req.payload.findByID({\n id: newParentDocID,\n collection: foldersSlug,\n overrideAccess: true,\n req,\n select: {\n [typeFieldName]: true,\n },\n user: req.user,\n })\n\n const parentTypes = Array.isArray(parentFolder[typeFieldName])\n ? (parentFolder[typeFieldName] as unknown[]).filter(\n (collectionSlug): collectionSlug is string => typeof collectionSlug === 'string',\n )\n : []\n\n const parentAllowsEveryConfiguredType =\n configuredTypes.length > 0 &&\n configuredTypes.every((collectionSlug) => parentTypes.includes(collectionSlug))\n\n if (parentTypes.length > 0 && !parentAllowsEveryConfiguredType) {\n if (types.length === 0) {\n throw new APIError(\n `The folder \"${data?.name || originalDoc.name}\" must have folder-type set since its parent folder has a folder-type set.`,\n 400,\n )\n }\n\n const disallowedTypes = types.filter(\n (collectionSlug) => !parentTypes.includes(collectionSlug),\n )\n\n if (disallowedTypes.length > 0) {\n throw new APIError(\n `The folder \"${data?.name || originalDoc.name}\" cannot allow collection types that its parent does not allow: ${disallowedTypes.join(', ')}`,\n 400,\n )\n }\n }\n }\n\n if (Array.isArray(data?.[typeFieldName]) && data[typeFieldName].length > 0) {\n const typeFieldValue = data[typeFieldName] as string[]\n\n const currentlyAssignedCollections =\n Array.isArray(originalDoc?.[typeFieldName]) && originalDoc[typeFieldName].length > 0\n ? originalDoc[typeFieldName]\n : configuredTypes\n\n /**\n * Check if the assigned collections have changed.\n * example:\n * - originalAssignedCollections: ['posts', 'pages']\n * - folderType: ['posts']\n *\n * The user is narrowing the types of documents that can be associated with this folder.\n * If the user is only expanding the types of documents that can be associated with this folder,\n * we do not need to do anything.\n */\n const newCollections = currentlyAssignedCollections.filter(\n (collectionSlug) => !typeFieldValue.includes(collectionSlug),\n )\n\n if (newCollections && newCollections.length > 0) {\n let dependentCollection: null | string = null\n\n if (typeof currentParentDocID === 'string' || typeof currentParentDocID === 'number') {\n // Check each collection being removed for dependent documents\n for (const collectionSlug of newCollections) {\n const result = await req.payload.find({\n collection: collectionSlug,\n limit: 1,\n overrideAccess: true,\n req,\n where: {\n [folderFieldName]: { equals: currentParentDocID },\n },\n })\n\n if (result.totalDocs > 0) {\n dependentCollection = collectionSlug\n break\n }\n }\n\n // Also check for child folders whose effective scope is broader than the new scope.\n if (!dependentCollection) {\n const childScopeConditions: Where[] = [{ [typeFieldName]: { in: newCollections } }]\n const newScopeAllowsEveryConfiguredType = configuredTypes.every((collectionSlug) =>\n typeFieldValue.includes(collectionSlug),\n )\n\n if (!newScopeAllowsEveryConfiguredType) {\n childScopeConditions.push(\n { [typeFieldName]: { exists: false } },\n { [typeFieldName]: { not_in: configuredTypes } },\n )\n }\n\n const childFoldersResult = await req.payload.find({\n collection: foldersSlug,\n limit: 1,\n overrideAccess: true,\n req,\n where: {\n and: [\n { [parentFieldName]: { equals: currentParentDocID } },\n { or: childScopeConditions },\n ],\n },\n })\n\n if (childFoldersResult.totalDocs > 0) {\n dependentCollection = foldersSlug\n }\n }\n }\n\n if (dependentCollection) {\n const translatedLabels = newCollections.map((collectionSlug) => {\n if (req.payload.collections[collectionSlug]?.config.labels.singular) {\n return getTranslatedLabel(\n req.payload.collections[collectionSlug]?.config.labels.plural,\n req.i18n,\n )\n }\n return collectionSlug\n })\n\n const isFolder = dependentCollection === foldersSlug\n throw new APIError(\n `The folder \"${data.name || originalDoc.name}\" contains ${isFolder ? 'folders' : 'documents'} that still belong to the following collections: ${translatedLabels.join(', ')}`,\n 400,\n )\n }\n\n return data\n }\n }\n\n return data\n }\n\nfunction getStringValues(value: unknown): string[] {\n return Array.isArray(value)\n ? value.filter((item): item is string => typeof item === 'string')\n : []\n}\n\nfunction haveSameValues({ first, second }: { first: string[]; second: string[] }): boolean {\n return first.length === second.length && first.every((value) => second.includes(value))\n}\n"],"names":["APIError","extractID","getTranslatedLabel","ensureSafeCollectionsChange","folderFieldName","foldersSlug","parentFieldName","typeFieldName","data","originalDoc","req","currentParentDocID","hasSubmittedParent","Object","hasOwn","hasSubmittedTypes","parentValue","newParentDocID","originalParentDocID","typeValue","types","getStringValues","originalTypes","hasParentChange","hasTypeChange","haveSameValues","first","second","hierarchyConfig","payload","collections","config","hierarchy","configuredTypes","keys","relatedCollections","parentFolder","findByID","id","collection","overrideAccess","select","user","parentTypes","Array","isArray","filter","collectionSlug","parentAllowsEveryConfiguredType","length","every","includes","name","disallowedTypes","join","typeFieldValue","currentlyAssignedCollections","newCollections","dependentCollection","result","find","limit","where","equals","totalDocs","childScopeConditions","in","newScopeAllowsEveryConfiguredType","push","exists","not_in","childFoldersResult","and","or","translatedLabels","map","labels","singular","plural","i18n","isFolder","value","item"],"mappings":"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"}
@@ -93,7 +93,7 @@ import { injectHierarchyButton } from './injectHierarchyButton.js';
93
93
  if (hierarchyConfig.collectionSpecific) {
94
94
  injectTypeField({
95
95
  config,
96
- hierarchyCollection: hierarchyCollection,
96
+ hierarchyCollection,
97
97
  parentFieldName: hierarchyConfig.parentFieldName,
98
98
  sanitizedRelatedCollections,
99
99
  typeFieldName: hierarchyConfig.collectionSpecific.fieldName
@@ -116,7 +116,7 @@ import { injectHierarchyButton } from './injectHierarchyButton.js';
116
116
  // Add afterDelete hook to clear folder references from related documents
117
117
  if (Object.keys(sanitizedRelatedCollections).length > 0) {
118
118
  injectAfterDeleteHook({
119
- hierarchyCollection: hierarchyCollection,
119
+ hierarchyCollection,
120
120
  sanitizedRelatedCollections
121
121
  });
122
122
  }
@@ -151,17 +151,30 @@ import { injectHierarchyButton } from './injectHierarchyButton.js';
151
151
  return existingResult;
152
152
  }
153
153
  }
154
- // No hierarchy selected, no validation needed
155
- if (!value) {
156
- return true;
157
- }
158
- const { collectionSlug, overrideAccess, previousValue, req } = options;
159
- const newID = extractID(value);
160
- // Value didn't change, no validation needed
161
- if (previousValue && extractID(previousValue) === newID) {
162
- return true;
154
+ return validateCollectionSpecificHierarchy({
155
+ hierarchySlug,
156
+ options,
157
+ typeFieldName,
158
+ value
159
+ });
160
+ };
161
+ hierarchyField.validate = validate;
162
+ }
163
+ const validateCollectionSpecificHierarchy = async ({ hierarchySlug, options, typeFieldName, value })=>{
164
+ if (!value || Array.isArray(value) && value.length === 0) {
165
+ return true;
166
+ }
167
+ const { collectionSlug, overrideAccess, previousValue, req } = options;
168
+ const newIDs = (Array.isArray(value) ? value : [
169
+ value
170
+ ]).map((item)=>extractID(item));
171
+ const previousIDs = new Set((Array.isArray(previousValue) ? previousValue : previousValue ? [
172
+ previousValue
173
+ ] : []).map((item)=>extractID(item)));
174
+ for (const newID of newIDs){
175
+ if (previousIDs.has(newID)) {
176
+ continue;
163
177
  }
164
- // Fetch the hierarchy item to check its type field
165
178
  let parentItem = null;
166
179
  if (typeof newID === 'string' || typeof newID === 'number') {
167
180
  try {
@@ -183,18 +196,13 @@ import { injectHierarchyButton } from './injectHierarchyButton.js';
183
196
  return `Hierarchy item with ID ${newID} not found`;
184
197
  }
185
198
  const allowedTypes = parentItem[typeFieldName] || [];
186
- // If hierarchy has no types, it accepts all collections
187
- if (allowedTypes.length === 0) {
188
- return true;
189
- }
190
- // Check if this collection is allowed
191
- if (collectionSlug && allowedTypes.includes(collectionSlug)) {
192
- return true;
199
+ if (allowedTypes.length === 0 || collectionSlug && allowedTypes.includes(collectionSlug)) {
200
+ continue;
193
201
  }
194
202
  return `Hierarchy item "${newID}" does not allow documents of type "${collectionSlug}"`;
195
- };
196
- hierarchyField.validate = validate;
197
- }
203
+ }
204
+ return true;
205
+ };
198
206
  /**
199
207
  * Injects the hierarchyType select field into a hierarchy collection.
200
208
  */ function injectTypeField({ config, hierarchyCollection, parentFieldName, sanitizedRelatedCollections, typeFieldName }) {
@@ -221,10 +229,17 @@ import { injectHierarchyButton } from './injectHierarchyButton.js';
221
229
  position: 'sidebar'
222
230
  },
223
231
  hasMany: true,
232
+ label: ({ t })=>t('general:allowedTypes'),
224
233
  options: collectionOptions
225
234
  };
226
235
  hierarchyCollection.fields = hierarchyCollection.fields || [];
227
- hierarchyCollection.fields.push(typeField);
236
+ // This can run again on the same `fields` array, so replace the field if it already exists
237
+ const existingTypeFieldIndex = hierarchyCollection.fields.findIndex((field)=>fieldAffectsData(field) && field.name === typeFieldName);
238
+ if (existingTypeFieldIndex === -1) {
239
+ hierarchyCollection.fields.push(typeField);
240
+ } else {
241
+ hierarchyCollection.fields[existingTypeFieldIndex] = typeField;
242
+ }
228
243
  // Recompute flattenedFields since we added a field after initial sanitization
229
244
  // This is required for the field to be queryable
230
245
  if ('flattenedFields' in hierarchyCollection) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hierarchy/resolveHierarchyCollections.ts"],"sourcesContent":["import type { CollectionConfig, SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\nimport type {\n JoinField,\n Option,\n RelationshipField,\n SelectField,\n Validate,\n} from '../fields/config/types.js'\nimport type { Document } from '../types/index.js'\nimport type {\n HierarchyJoinFieldConfig,\n SanitizedHierarchyConfig,\n SanitizedHierarchyRelatedCollection,\n} from './types.js'\n\nimport { sanitizeJoinField } from '../fields/config/sanitizeJoinField.js'\nimport { fieldAffectsData } from '../fields/config/types.js'\nimport { extractID } from '../utilities/extractID.js'\nimport { flattenAllFields } from '../utilities/flattenAllFields.js'\nimport { getHierarchyFieldName } from './constants.js'\nimport { hierarchyCollectionAfterDelete } from './hooks/collectionAfterDelete.js'\nimport { injectHierarchyButton } from './injectHierarchyButton.js'\n\n/**\n * Resolves hierarchy relationships across collections.\n *\n * This function runs after individual collection sanitization to establish\n * cross-collection hierarchy relationships. It discovers which collections\n * reference each hierarchy and configures the necessary fields, components,\n * and hooks.\n *\n * @remarks\n * Must be called after all collections are sanitized.\n *\n * **What it does:**\n * - Discovers related collections by scanning for hierarchy relationship fields\n * - Injects `HierarchyButton` component when `custom.hierarchy.injectHeaderButton` is set\n * - Adds `collectionSpecific` validation to ensure hierarchy items accept the document type\n * - Injects the `hierarchyType` select field when `collectionSpecific` is enabled\n * - Injects join field when `joinField` is configured\n * - Adds `afterDelete` hook to clear hierarchy references when items are deleted\n * - Populates `relatedCollections` in the sanitized hierarchy config\n */\nexport const resolveHierarchyCollections = (config: Config): void => {\n const hierarchyCollections =\n config.collections?.filter((col) => col.hierarchy && typeof col.hierarchy === 'object') || []\n\n for (const hierarchyCollection of hierarchyCollections) {\n const hierarchy = hierarchyCollection.hierarchy\n\n // TypeScript guard - hierarchy is guaranteed to be an object by the filter above\n if (!hierarchy || typeof hierarchy !== 'object') {\n continue\n }\n\n const hierarchyConfig = hierarchy as SanitizedHierarchyConfig\n const defaultFieldName = getHierarchyFieldName(hierarchyCollection.slug)\n const parentFieldName = hierarchyConfig.parentFieldName ?? defaultFieldName\n const isParentFieldNameOverridden = parentFieldName !== defaultFieldName\n const collectionSpecific = hierarchyConfig.collectionSpecific\n const typeFieldName = collectionSpecific ? collectionSpecific.fieldName : undefined\n const allowHasMany = hierarchyConfig.allowHasMany ?? true\n\n // Build relatedCollections by scanning all collections for hierarchy fields\n const sanitizedRelatedCollections: Record<string, SanitizedHierarchyRelatedCollection> = {}\n\n const selfParentField = hierarchyCollection.fields.find(\n (field) =>\n fieldAffectsData(field) &&\n field.name === parentFieldName &&\n field.type === 'relationship' &&\n (field as RelationshipField).relationTo === hierarchyCollection.slug,\n ) as RelationshipField | undefined\n\n // Check if the hierarchy collection's own parent field should be replaced with a header button\n if (selfParentField?.custom?.hierarchy?.injectHeaderButton === true) {\n injectHierarchyButton({\n collection: hierarchyCollection,\n fieldName: parentFieldName,\n hierarchyCollectionSlug: hierarchyCollection.slug,\n parentFieldName: hierarchyConfig.parentFieldName,\n })\n }\n\n for (const collection of config.collections || []) {\n // Skip the hierarchy collection itself (handled above)\n if (collection.slug === hierarchyCollection.slug) {\n continue\n }\n\n // Find hierarchy field by the default name (what createFolderField uses)\n const hierarchyField = collection.fields.find(\n (field) =>\n fieldAffectsData(field) &&\n field.name === defaultFieldName &&\n field.type === 'relationship' &&\n (field as RelationshipField).relationTo === hierarchyCollection.slug,\n ) as RelationshipField | undefined\n\n // If parentFieldName is overridden, rename the field to match\n if (hierarchyField && isParentFieldNameOverridden) {\n hierarchyField.name = parentFieldName\n }\n\n if (!hierarchyField) {\n continue\n }\n\n const fieldHasMany = hierarchyField.hasMany ?? allowHasMany\n\n // If collectionSpecific, inject validation to check hierarchy allows this collection type\n if (collectionSpecific) {\n injectCollectionSpecificValidation({\n hierarchyField,\n hierarchySlug: hierarchyCollection.slug,\n typeFieldName: typeFieldName!,\n })\n }\n\n // Store discovered collection with hasMany info\n sanitizedRelatedCollections[collection.slug] = {\n fieldName: parentFieldName,\n hasMany: fieldHasMany,\n }\n\n // Inject HierarchyButton if field requests it\n if (hierarchyField.custom?.hierarchy?.injectHeaderButton === true) {\n injectHierarchyButton({\n collection,\n fieldName: parentFieldName,\n hierarchyCollectionSlug: hierarchyCollection.slug,\n parentFieldName: hierarchyConfig.parentFieldName,\n })\n }\n }\n\n // If collectionSpecific, add type field to hierarchy collection\n if (hierarchyConfig.collectionSpecific) {\n injectTypeField({\n config,\n hierarchyCollection: hierarchyCollection as SanitizedCollectionConfig,\n parentFieldName: hierarchyConfig.parentFieldName,\n sanitizedRelatedCollections,\n typeFieldName: hierarchyConfig.collectionSpecific.fieldName,\n })\n }\n\n // If joinField is configured, add the join field to query children\n if (hierarchyConfig.joinField) {\n injectJoinField({\n config,\n hierarchyCollection: hierarchyCollection as SanitizedCollectionConfig,\n joinFieldConfig: hierarchyConfig.joinField,\n parentFieldName,\n relatedSlugs: Object.keys(sanitizedRelatedCollections),\n })\n }\n\n // Update hierarchy config with sanitized relatedCollections\n if (hierarchyConfig) {\n hierarchyConfig.relatedCollections = sanitizedRelatedCollections\n }\n\n // Add afterDelete hook to clear folder references from related documents\n if (Object.keys(sanitizedRelatedCollections).length > 0) {\n injectAfterDeleteHook({\n hierarchyCollection: hierarchyCollection as SanitizedCollectionConfig,\n sanitizedRelatedCollections,\n })\n }\n\n // Add sidebar tab for this hierarchy collection (unless explicitly disabled)\n if (hierarchyConfig.admin.injectSidebarTab !== false) {\n injectSidebarTab({\n config,\n hierarchyCollection,\n hierarchyConfig,\n })\n\n // Hide from nav when sidebar tab is injected (unless user explicitly set group)\n if (hierarchyCollection.admin?.group === undefined) {\n hierarchyCollection.admin = {\n ...hierarchyCollection.admin,\n group: false,\n }\n }\n }\n }\n}\n\n/**\n * Injects validation for collectionSpecific hierarchy fields.\n * Ensures the selected hierarchy item allows documents of this collection type.\n */\nfunction injectCollectionSpecificValidation({\n hierarchyField,\n hierarchySlug,\n typeFieldName,\n}: {\n hierarchyField: RelationshipField\n hierarchySlug: string\n typeFieldName: string\n}): void {\n const existingValidate = hierarchyField.validate\n\n const validate: Validate<unknown> = async (value, options) => {\n // Run existing validation first if present\n if (existingValidate) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const existingResult = await existingValidate(value as any, options as any)\n if (existingResult !== true) {\n return existingResult\n }\n }\n\n // No hierarchy selected, no validation needed\n if (!value) {\n return true\n }\n\n const { collectionSlug, overrideAccess, previousValue, req } = options\n const newID = extractID<Document>(value)\n\n // Value didn't change, no validation needed\n if (previousValue && extractID<Document>(previousValue) === newID) {\n return true\n }\n\n // Fetch the hierarchy item to check its type field\n let parentItem: Document | null = null\n if (typeof newID === 'string' || typeof newID === 'number') {\n try {\n parentItem = await req.payload.findByID({\n id: newID,\n collection: hierarchySlug,\n depth: 0,\n overrideAccess: overrideAccess ?? false,\n req,\n select: { [typeFieldName]: true },\n })\n } catch {\n return `Hierarchy item with ID ${newID} not found`\n }\n }\n\n if (!parentItem) {\n return `Hierarchy item with ID ${newID} not found`\n }\n\n const allowedTypes: string[] = (parentItem[typeFieldName] as string[]) || []\n\n // If hierarchy has no types, it accepts all collections\n if (allowedTypes.length === 0) {\n return true\n }\n\n // Check if this collection is allowed\n if (collectionSlug && allowedTypes.includes(collectionSlug)) {\n return true\n }\n\n return `Hierarchy item \"${newID}\" does not allow documents of type \"${collectionSlug}\"`\n }\n\n hierarchyField.validate = validate\n}\n\n/**\n * Injects the hierarchyType select field into a hierarchy collection.\n */\nfunction injectTypeField({\n config,\n hierarchyCollection,\n parentFieldName,\n sanitizedRelatedCollections,\n typeFieldName,\n}: {\n config: Config\n hierarchyCollection: CollectionConfig | SanitizedCollectionConfig\n parentFieldName: string\n sanitizedRelatedCollections: Record<string, SanitizedHierarchyRelatedCollection>\n typeFieldName: string\n}): void {\n const collectionOptions: Option[] = Object.keys(sanitizedRelatedCollections).map((slug) => {\n const relatedCollection = config.collections?.find((c) => c.slug === slug)\n return {\n label: relatedCollection?.labels?.plural || slug,\n value: slug,\n }\n })\n\n const typeField: SelectField = {\n name: typeFieldName,\n type: 'select',\n admin: {\n components: {\n Field: {\n path: '@payloadcms/ui/rsc#HierarchyTypeFieldServer',\n serverProps: {\n collectionOptions,\n parentFieldName,\n },\n },\n },\n position: 'sidebar',\n },\n hasMany: true,\n options: collectionOptions,\n }\n\n hierarchyCollection.fields = hierarchyCollection.fields || []\n hierarchyCollection.fields.push(typeField)\n\n // Recompute flattenedFields since we added a field after initial sanitization\n // This is required for the field to be queryable\n if ('flattenedFields' in hierarchyCollection) {\n hierarchyCollection.flattenedFields = flattenAllFields({\n fields: hierarchyCollection.fields,\n })\n }\n}\n\n/**\n * Injects a join field to query all children of a hierarchy item.\n */\nfunction injectJoinField({\n config,\n hierarchyCollection,\n joinFieldConfig,\n parentFieldName,\n relatedSlugs,\n}: {\n config: Config\n hierarchyCollection: SanitizedCollectionConfig\n joinFieldConfig: HierarchyJoinFieldConfig\n parentFieldName: string\n relatedSlugs: string[]\n}): void {\n const { name, admin: userAdmin, ...userConfig } = joinFieldConfig\n\n const hasJoinField = hierarchyCollection.fields?.some(\n (field) => 'name' in field && field.name === name,\n )\n\n if (hasJoinField) {\n return\n }\n\n const joinField: JoinField = {\n // User config (spread first so auto-generated values take precedence for required fields)\n ...userConfig,\n // Auto-generated values (these cannot be overridden)\n name,\n type: 'join',\n collection: [hierarchyCollection.slug, ...relatedSlugs],\n hasMany: true,\n on: parentFieldName,\n // Merge admin config\n admin: {\n ...userAdmin,\n },\n }\n\n hierarchyCollection.fields = hierarchyCollection.fields || []\n hierarchyCollection.fields.push(joinField)\n\n // Sanitize the join field to register it properly\n sanitizeJoinField({\n config,\n field: joinField,\n joins: hierarchyCollection.joins,\n parentIsLocalized: false,\n polymorphicJoins: hierarchyCollection.polymorphicJoins,\n })\n\n // Recompute flattenedFields since we added a field after initial sanitization\n hierarchyCollection.flattenedFields = flattenAllFields({\n fields: hierarchyCollection.fields,\n })\n}\n\n/**\n * Injects afterDelete hook to clear hierarchy references from related documents.\n */\nfunction injectAfterDeleteHook({\n hierarchyCollection,\n sanitizedRelatedCollections,\n}: {\n hierarchyCollection: CollectionConfig | SanitizedCollectionConfig\n sanitizedRelatedCollections: Record<string, SanitizedHierarchyRelatedCollection>\n}): void {\n // Build map of collection slugs to their field names\n const relatedCollectionFieldMap: Record<string, string> = {}\n for (const [slug, relatedConfig] of Object.entries(sanitizedRelatedCollections)) {\n relatedCollectionFieldMap[slug] = relatedConfig.fieldName\n }\n\n hierarchyCollection.hooks = hierarchyCollection.hooks || {}\n hierarchyCollection.hooks.afterDelete = [\n ...(hierarchyCollection.hooks.afterDelete || []),\n hierarchyCollectionAfterDelete({ relatedCollections: relatedCollectionFieldMap }),\n ]\n}\n\n/**\n * Injects a sidebar tab for a hierarchy collection.\n */\nfunction injectSidebarTab({\n config,\n hierarchyCollection,\n hierarchyConfig,\n}: {\n config: Config\n hierarchyCollection: CollectionConfig\n hierarchyConfig: SanitizedHierarchyConfig\n}): void {\n const tabSlug = `hierarchy-${hierarchyCollection.slug}`\n const Icon = hierarchyConfig.admin.components.Icon\n\n // Initialize admin config structure\n config.admin = config.admin || {}\n config.admin.components = config.admin.components || {}\n config.admin.components.sidebar = config.admin.components.sidebar || {}\n config.admin.components.sidebar.tabs = config.admin.components.sidebar.tabs || []\n\n // Check if tab already exists\n const hasTab = config.admin.components.sidebar.tabs.some((tab) => tab.slug === tabSlug)\n\n if (!hasTab) {\n config.admin.components.sidebar.tabs.push({\n slug: tabSlug,\n components: {\n Content: {\n clientProps: {\n hierarchyCollectionSlug: hierarchyCollection.slug,\n },\n path: '@payloadcms/ui/rsc#HierarchySidebarTabServer',\n },\n Icon,\n },\n label: hierarchyCollection.labels?.plural || hierarchyCollection.slug,\n })\n }\n}\n"],"names":["sanitizeJoinField","fieldAffectsData","extractID","flattenAllFields","getHierarchyFieldName","hierarchyCollectionAfterDelete","injectHierarchyButton","resolveHierarchyCollections","config","hierarchyCollections","collections","filter","col","hierarchy","hierarchyCollection","hierarchyConfig","defaultFieldName","slug","parentFieldName","isParentFieldNameOverridden","collectionSpecific","typeFieldName","fieldName","undefined","allowHasMany","sanitizedRelatedCollections","selfParentField","fields","find","field","name","type","relationTo","custom","injectHeaderButton","collection","hierarchyCollectionSlug","hierarchyField","fieldHasMany","hasMany","injectCollectionSpecificValidation","hierarchySlug","injectTypeField","joinField","injectJoinField","joinFieldConfig","relatedSlugs","Object","keys","relatedCollections","length","injectAfterDeleteHook","admin","injectSidebarTab","group","existingValidate","validate","value","options","existingResult","collectionSlug","overrideAccess","previousValue","req","newID","parentItem","payload","findByID","id","depth","select","allowedTypes","includes","collectionOptions","map","relatedCollection","c","label","labels","plural","typeField","components","Field","path","serverProps","position","push","flattenedFields","userAdmin","userConfig","hasJoinField","some","on","joins","parentIsLocalized","polymorphicJoins","relatedCollectionFieldMap","relatedConfig","entries","hooks","afterDelete","tabSlug","Icon","sidebar","tabs","hasTab","tab","Content","clientProps"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/hierarchy/resolveHierarchyCollections.ts"],"sourcesContent":["import type { CollectionConfig, SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\nimport type {\n JoinField,\n Option,\n RelationshipField,\n SelectField,\n Validate,\n} from '../fields/config/types.js'\nimport type { Document } from '../types/index.js'\nimport type {\n HierarchyJoinFieldConfig,\n SanitizedHierarchyConfig,\n SanitizedHierarchyRelatedCollection,\n} from './types.js'\n\nimport { sanitizeJoinField } from '../fields/config/sanitizeJoinField.js'\nimport { fieldAffectsData } from '../fields/config/types.js'\nimport { extractID } from '../utilities/extractID.js'\nimport { flattenAllFields } from '../utilities/flattenAllFields.js'\nimport { getHierarchyFieldName } from './constants.js'\nimport { hierarchyCollectionAfterDelete } from './hooks/collectionAfterDelete.js'\nimport { injectHierarchyButton } from './injectHierarchyButton.js'\n\n/**\n * Resolves hierarchy relationships across collections.\n *\n * This function runs after individual collection sanitization to establish\n * cross-collection hierarchy relationships. It discovers which collections\n * reference each hierarchy and configures the necessary fields, components,\n * and hooks.\n *\n * @remarks\n * Must be called after all collections are sanitized.\n *\n * **What it does:**\n * - Discovers related collections by scanning for hierarchy relationship fields\n * - Injects `HierarchyButton` component when `custom.hierarchy.injectHeaderButton` is set\n * - Adds `collectionSpecific` validation to ensure hierarchy items accept the document type\n * - Injects the `hierarchyType` select field when `collectionSpecific` is enabled\n * - Injects join field when `joinField` is configured\n * - Adds `afterDelete` hook to clear hierarchy references when items are deleted\n * - Populates `relatedCollections` in the sanitized hierarchy config\n */\nexport const resolveHierarchyCollections = (config: Config): void => {\n const hierarchyCollections =\n config.collections?.filter((col) => col.hierarchy && typeof col.hierarchy === 'object') || []\n\n for (const hierarchyCollection of hierarchyCollections) {\n const hierarchy = hierarchyCollection.hierarchy\n\n // TypeScript guard - hierarchy is guaranteed to be an object by the filter above\n if (!hierarchy || typeof hierarchy !== 'object') {\n continue\n }\n\n const hierarchyConfig = hierarchy as SanitizedHierarchyConfig\n const defaultFieldName = getHierarchyFieldName(hierarchyCollection.slug)\n const parentFieldName = hierarchyConfig.parentFieldName ?? defaultFieldName\n const isParentFieldNameOverridden = parentFieldName !== defaultFieldName\n const collectionSpecific = hierarchyConfig.collectionSpecific\n const typeFieldName = collectionSpecific ? collectionSpecific.fieldName : undefined\n const allowHasMany = hierarchyConfig.allowHasMany ?? true\n\n // Build relatedCollections by scanning all collections for hierarchy fields\n const sanitizedRelatedCollections: Record<string, SanitizedHierarchyRelatedCollection> = {}\n\n const selfParentField = hierarchyCollection.fields.find(\n (field) =>\n fieldAffectsData(field) &&\n field.name === parentFieldName &&\n field.type === 'relationship' &&\n field.relationTo === hierarchyCollection.slug,\n ) as RelationshipField | undefined\n\n // Check if the hierarchy collection's own parent field should be replaced with a header button\n if (selfParentField?.custom?.hierarchy?.injectHeaderButton === true) {\n injectHierarchyButton({\n collection: hierarchyCollection,\n fieldName: parentFieldName,\n hierarchyCollectionSlug: hierarchyCollection.slug,\n parentFieldName: hierarchyConfig.parentFieldName,\n })\n }\n\n for (const collection of config.collections || []) {\n // Skip the hierarchy collection itself (handled above)\n if (collection.slug === hierarchyCollection.slug) {\n continue\n }\n\n // Find hierarchy field by the default name (what createFolderField uses)\n const hierarchyField = collection.fields.find(\n (field) =>\n fieldAffectsData(field) &&\n field.name === defaultFieldName &&\n field.type === 'relationship' &&\n field.relationTo === hierarchyCollection.slug,\n ) as RelationshipField | undefined\n\n // If parentFieldName is overridden, rename the field to match\n if (hierarchyField && isParentFieldNameOverridden) {\n hierarchyField.name = parentFieldName\n }\n\n if (!hierarchyField) {\n continue\n }\n\n const fieldHasMany = hierarchyField.hasMany ?? allowHasMany\n\n // If collectionSpecific, inject validation to check hierarchy allows this collection type\n if (collectionSpecific) {\n injectCollectionSpecificValidation({\n hierarchyField,\n hierarchySlug: hierarchyCollection.slug,\n typeFieldName: typeFieldName!,\n })\n }\n\n // Store discovered collection with hasMany info\n sanitizedRelatedCollections[collection.slug] = {\n fieldName: parentFieldName,\n hasMany: fieldHasMany,\n }\n\n // Inject HierarchyButton if field requests it\n if (hierarchyField.custom?.hierarchy?.injectHeaderButton === true) {\n injectHierarchyButton({\n collection,\n fieldName: parentFieldName,\n hierarchyCollectionSlug: hierarchyCollection.slug,\n parentFieldName: hierarchyConfig.parentFieldName,\n })\n }\n }\n\n // If collectionSpecific, add type field to hierarchy collection\n if (hierarchyConfig.collectionSpecific) {\n injectTypeField({\n config,\n hierarchyCollection,\n parentFieldName: hierarchyConfig.parentFieldName,\n sanitizedRelatedCollections,\n typeFieldName: hierarchyConfig.collectionSpecific.fieldName,\n })\n }\n\n // If joinField is configured, add the join field to query children\n if (hierarchyConfig.joinField) {\n injectJoinField({\n config,\n hierarchyCollection: hierarchyCollection as SanitizedCollectionConfig,\n joinFieldConfig: hierarchyConfig.joinField,\n parentFieldName,\n relatedSlugs: Object.keys(sanitizedRelatedCollections),\n })\n }\n\n // Update hierarchy config with sanitized relatedCollections\n if (hierarchyConfig) {\n hierarchyConfig.relatedCollections = sanitizedRelatedCollections\n }\n\n // Add afterDelete hook to clear folder references from related documents\n if (Object.keys(sanitizedRelatedCollections).length > 0) {\n injectAfterDeleteHook({\n hierarchyCollection,\n sanitizedRelatedCollections,\n })\n }\n\n // Add sidebar tab for this hierarchy collection (unless explicitly disabled)\n if (hierarchyConfig.admin.injectSidebarTab !== false) {\n injectSidebarTab({\n config,\n hierarchyCollection,\n hierarchyConfig,\n })\n\n // Hide from nav when sidebar tab is injected (unless user explicitly set group)\n if (hierarchyCollection.admin?.group === undefined) {\n hierarchyCollection.admin = {\n ...hierarchyCollection.admin,\n group: false,\n }\n }\n }\n }\n}\n\n/**\n * Injects validation for collectionSpecific hierarchy fields.\n * Ensures the selected hierarchy item allows documents of this collection type.\n */\nfunction injectCollectionSpecificValidation({\n hierarchyField,\n hierarchySlug,\n typeFieldName,\n}: {\n hierarchyField: RelationshipField\n hierarchySlug: string\n typeFieldName: string\n}): void {\n const existingValidate = hierarchyField.validate\n\n const validate: Validate<unknown> = async (value, options) => {\n // Run existing validation first if present\n if (existingValidate) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const existingResult = await existingValidate(value as any, options as any)\n if (existingResult !== true) {\n return existingResult\n }\n }\n\n return validateCollectionSpecificHierarchy({\n hierarchySlug,\n options,\n typeFieldName,\n value,\n })\n }\n\n hierarchyField.validate = validate\n}\n\ntype HierarchyValidationOptions = Parameters<Validate<unknown>>[1]\n\nconst validateCollectionSpecificHierarchy = async ({\n hierarchySlug,\n options,\n typeFieldName,\n value,\n}: {\n hierarchySlug: string\n options: HierarchyValidationOptions\n typeFieldName: string\n value: unknown\n}): Promise<string | true> => {\n if (!value || (Array.isArray(value) && value.length === 0)) {\n return true\n }\n\n const { collectionSlug, overrideAccess, previousValue, req } = options\n const newIDs = (Array.isArray(value) ? value : [value]).map((item) => extractID<Document>(item))\n\n const previousIDs = new Set(\n (Array.isArray(previousValue) ? previousValue : previousValue ? [previousValue] : []).map(\n (item) => extractID<Document>(item),\n ),\n )\n\n for (const newID of newIDs) {\n if (previousIDs.has(newID)) {\n continue\n }\n\n let parentItem: Document | null = null\n if (typeof newID === 'string' || typeof newID === 'number') {\n try {\n parentItem = await req.payload.findByID({\n id: newID,\n collection: hierarchySlug,\n depth: 0,\n overrideAccess: overrideAccess ?? false,\n req,\n select: { [typeFieldName]: true },\n })\n } catch {\n return `Hierarchy item with ID ${newID} not found`\n }\n }\n\n if (!parentItem) {\n return `Hierarchy item with ID ${newID} not found`\n }\n\n const allowedTypes: string[] = (parentItem[typeFieldName] as string[]) || []\n\n if (allowedTypes.length === 0 || (collectionSlug && allowedTypes.includes(collectionSlug))) {\n continue\n }\n\n return `Hierarchy item \"${newID}\" does not allow documents of type \"${collectionSlug}\"`\n }\n\n return true\n}\n\n/**\n * Injects the hierarchyType select field into a hierarchy collection.\n */\nfunction injectTypeField({\n config,\n hierarchyCollection,\n parentFieldName,\n sanitizedRelatedCollections,\n typeFieldName,\n}: {\n config: Config\n hierarchyCollection: CollectionConfig | SanitizedCollectionConfig\n parentFieldName: string\n sanitizedRelatedCollections: Record<string, SanitizedHierarchyRelatedCollection>\n typeFieldName: string\n}): void {\n const collectionOptions: Option[] = Object.keys(sanitizedRelatedCollections).map((slug) => {\n const relatedCollection = config.collections?.find((c) => c.slug === slug)\n\n return {\n label: relatedCollection?.labels?.plural || slug,\n value: slug,\n }\n })\n\n const typeField: SelectField = {\n name: typeFieldName,\n type: 'select',\n admin: {\n components: {\n Field: {\n path: '@payloadcms/ui/rsc#HierarchyTypeFieldServer',\n serverProps: {\n collectionOptions,\n parentFieldName,\n },\n },\n },\n position: 'sidebar',\n },\n hasMany: true,\n label: ({ t }) => t('general:allowedTypes'),\n options: collectionOptions,\n }\n\n hierarchyCollection.fields = hierarchyCollection.fields || []\n\n // This can run again on the same `fields` array, so replace the field if it already exists\n const existingTypeFieldIndex = hierarchyCollection.fields.findIndex(\n (field) => fieldAffectsData(field) && field.name === typeFieldName,\n )\n\n if (existingTypeFieldIndex === -1) {\n hierarchyCollection.fields.push(typeField)\n } else {\n hierarchyCollection.fields[existingTypeFieldIndex] = typeField\n }\n\n // Recompute flattenedFields since we added a field after initial sanitization\n // This is required for the field to be queryable\n if ('flattenedFields' in hierarchyCollection) {\n hierarchyCollection.flattenedFields = flattenAllFields({\n fields: hierarchyCollection.fields,\n })\n }\n}\n\n/**\n * Injects a join field to query all children of a hierarchy item.\n */\nfunction injectJoinField({\n config,\n hierarchyCollection,\n joinFieldConfig,\n parentFieldName,\n relatedSlugs,\n}: {\n config: Config\n hierarchyCollection: SanitizedCollectionConfig\n joinFieldConfig: HierarchyJoinFieldConfig\n parentFieldName: string\n relatedSlugs: string[]\n}): void {\n const { name, admin: userAdmin, ...userConfig } = joinFieldConfig\n\n const hasJoinField = hierarchyCollection.fields?.some(\n (field) => 'name' in field && field.name === name,\n )\n\n if (hasJoinField) {\n return\n }\n\n const joinField: JoinField = {\n // User config (spread first so auto-generated values take precedence for required fields)\n ...userConfig,\n // Auto-generated values (these cannot be overridden)\n name,\n type: 'join',\n collection: [hierarchyCollection.slug, ...relatedSlugs],\n hasMany: true,\n on: parentFieldName,\n // Merge admin config\n admin: {\n ...userAdmin,\n },\n }\n\n hierarchyCollection.fields = hierarchyCollection.fields || []\n hierarchyCollection.fields.push(joinField)\n\n // Sanitize the join field to register it properly\n sanitizeJoinField({\n config,\n field: joinField,\n joins: hierarchyCollection.joins,\n parentIsLocalized: false,\n polymorphicJoins: hierarchyCollection.polymorphicJoins,\n })\n\n // Recompute flattenedFields since we added a field after initial sanitization\n hierarchyCollection.flattenedFields = flattenAllFields({\n fields: hierarchyCollection.fields,\n })\n}\n\n/**\n * Injects afterDelete hook to clear hierarchy references from related documents.\n */\nfunction injectAfterDeleteHook({\n hierarchyCollection,\n sanitizedRelatedCollections,\n}: {\n hierarchyCollection: CollectionConfig | SanitizedCollectionConfig\n sanitizedRelatedCollections: Record<string, SanitizedHierarchyRelatedCollection>\n}): void {\n // Build map of collection slugs to their field names\n const relatedCollectionFieldMap: Record<string, string> = {}\n for (const [slug, relatedConfig] of Object.entries(sanitizedRelatedCollections)) {\n relatedCollectionFieldMap[slug] = relatedConfig.fieldName\n }\n\n hierarchyCollection.hooks = hierarchyCollection.hooks || {}\n hierarchyCollection.hooks.afterDelete = [\n ...(hierarchyCollection.hooks.afterDelete || []),\n hierarchyCollectionAfterDelete({ relatedCollections: relatedCollectionFieldMap }),\n ]\n}\n\n/**\n * Injects a sidebar tab for a hierarchy collection.\n */\nfunction injectSidebarTab({\n config,\n hierarchyCollection,\n hierarchyConfig,\n}: {\n config: Config\n hierarchyCollection: CollectionConfig\n hierarchyConfig: SanitizedHierarchyConfig\n}): void {\n const tabSlug = `hierarchy-${hierarchyCollection.slug}`\n const Icon = hierarchyConfig.admin.components.Icon\n\n // Initialize admin config structure\n config.admin = config.admin || {}\n config.admin.components = config.admin.components || {}\n config.admin.components.sidebar = config.admin.components.sidebar || {}\n config.admin.components.sidebar.tabs = config.admin.components.sidebar.tabs || []\n\n // Check if tab already exists\n const hasTab = config.admin.components.sidebar.tabs.some((tab) => tab.slug === tabSlug)\n\n if (!hasTab) {\n config.admin.components.sidebar.tabs.push({\n slug: tabSlug,\n components: {\n Content: {\n clientProps: {\n hierarchyCollectionSlug: hierarchyCollection.slug,\n },\n path: '@payloadcms/ui/rsc#HierarchySidebarTabServer',\n },\n Icon,\n },\n label: hierarchyCollection.labels?.plural || hierarchyCollection.slug,\n })\n }\n}\n"],"names":["sanitizeJoinField","fieldAffectsData","extractID","flattenAllFields","getHierarchyFieldName","hierarchyCollectionAfterDelete","injectHierarchyButton","resolveHierarchyCollections","config","hierarchyCollections","collections","filter","col","hierarchy","hierarchyCollection","hierarchyConfig","defaultFieldName","slug","parentFieldName","isParentFieldNameOverridden","collectionSpecific","typeFieldName","fieldName","undefined","allowHasMany","sanitizedRelatedCollections","selfParentField","fields","find","field","name","type","relationTo","custom","injectHeaderButton","collection","hierarchyCollectionSlug","hierarchyField","fieldHasMany","hasMany","injectCollectionSpecificValidation","hierarchySlug","injectTypeField","joinField","injectJoinField","joinFieldConfig","relatedSlugs","Object","keys","relatedCollections","length","injectAfterDeleteHook","admin","injectSidebarTab","group","existingValidate","validate","value","options","existingResult","validateCollectionSpecificHierarchy","Array","isArray","collectionSlug","overrideAccess","previousValue","req","newIDs","map","item","previousIDs","Set","newID","has","parentItem","payload","findByID","id","depth","select","allowedTypes","includes","collectionOptions","relatedCollection","c","label","labels","plural","typeField","components","Field","path","serverProps","position","t","existingTypeFieldIndex","findIndex","push","flattenedFields","userAdmin","userConfig","hasJoinField","some","on","joins","parentIsLocalized","polymorphicJoins","relatedCollectionFieldMap","relatedConfig","entries","hooks","afterDelete","tabSlug","Icon","sidebar","tabs","hasTab","tab","Content","clientProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"computePaths.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/utils/computePaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQpE,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACzC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;CAC3C,CAAA;AAgFD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2dtF"}
1
+ {"version":3,"file":"computePaths.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/utils/computePaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQpE,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACzC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;CAC3C,CAAA;AAgFD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0dtF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hierarchy/utils/computePaths.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { Document, PayloadRequest } from '../../types/index.js'\n\nimport { slugify as payloadSlugify } from '../../utilities/slugify.js'\nimport { HIERARCHY_SLUG_PATH_FIELD, HIERARCHY_TITLE_PATH_FIELD } from '../constants.js'\nimport { buildLocalizedHierarchyPaths } from './buildLocalizedHierarchyPaths.js'\nimport { findFieldByName, findUseAsTitleField } from './findUseAsTitle.js'\nimport { getLocalizedValue } from './getLocalizedValue.js'\n\ntype ComputePathsArgs = {\n collection: SanitizedCollectionConfig\n doc: Document\n draft?: boolean\n locale?: string\n parentFieldName: string\n req: PayloadRequest\n slugPathFieldName?: string\n titlePathFieldName?: string\n}\n\ntype ComputePathsResult = {\n slugPath: Record<string, string> | string\n titlePath: Record<string, string> | string\n}\n\n// Helper to get title value - returns string for single locale, object for 'all' locales\nconst getTitleValue = ({\n document,\n isTitleLocalized = false,\n locale,\n req,\n titleFieldName,\n}: {\n document: Document\n isTitleLocalized?: boolean\n locale?: string\n req: PayloadRequest\n titleFieldName: string\n}): Record<string, string> | string => {\n const titleValue = document[titleFieldName]\n\n if (!titleValue) {\n return document.id?.toString() || 'untitled'\n }\n\n // If field is localized and we want all locales, return the full object\n if (isTitleLocalized && locale === 'all' && typeof titleValue === 'object') {\n return titleValue\n }\n\n // Single locale - use getLocalizedValue to handle fallback\n if (isTitleLocalized && typeof titleValue === 'object') {\n const localizedValue = getLocalizedValue({\n fallbackLocale: req.fallbackLocale,\n fieldType: 'text',\n locale: locale || req.locale || 'en',\n value: titleValue,\n })\n return localizedValue || document.id?.toString() || 'untitled'\n }\n\n return titleValue\n}\n\n// Helper to get slug value from a dedicated slug field\nconst getSlugFieldValue = ({\n document,\n isSlugLocalized = false,\n locale,\n req,\n slugFieldName,\n}: {\n document: Document\n isSlugLocalized?: boolean\n locale?: string\n req: PayloadRequest\n slugFieldName: string\n}): Record<string, string> | string | undefined => {\n const slugValue = document[slugFieldName]\n\n if (!slugValue) {\n return undefined\n }\n\n // If field is localized and we want all locales, return the full object\n if (isSlugLocalized && locale === 'all' && typeof slugValue === 'object') {\n return slugValue\n }\n\n // Single locale - use getLocalizedValue to handle fallback\n if (isSlugLocalized && typeof slugValue === 'object') {\n const localizedValue = getLocalizedValue({\n fallbackLocale: req.fallbackLocale,\n fieldType: 'text',\n locale: locale || req.locale || 'en',\n value: slugValue,\n })\n return localizedValue || undefined\n }\n\n return slugValue\n}\n\n/**\n * Computes both slug and title breadcrumb paths for a document by walking up the parent chain.\n * More efficient than computing them separately since it only walks the chain once.\n *\n * Note: Ancestor fetches always use `overrideAccess: true` to ensure paths are complete.\n * If a user can read a document, they should see its full breadcrumb path even if they\n * cannot read all ancestor documents. This prevents broken breadcrumbs and provides\n * better UX at the cost of minimal information leakage (ancestor titles in paths).\n *\n * @param args - Configuration for path computation\n * @returns Object with slugPath and titlePath\n */\nexport async function computePaths(args: ComputePathsArgs): Promise<ComputePathsResult> {\n const {\n collection,\n doc,\n draft = false,\n locale,\n parentFieldName,\n req,\n slugPathFieldName = HIERARCHY_SLUG_PATH_FIELD,\n titlePathFieldName = HIERARCHY_TITLE_PATH_FIELD,\n } = args\n\n const slugify =\n (collection.hierarchy !== false && collection.hierarchy.slugify) ||\n ((text: string) => payloadSlugify(text) || '')\n const { localized: isTitleLocalized, titleFieldName } = findUseAsTitleField(collection)\n\n // Check for dedicated slug field\n const slugFieldName = collection.hierarchy !== false ? collection.hierarchy.slugField : undefined\n const slugFieldInfo = slugFieldName ? findFieldByName(collection, slugFieldName) : undefined\n const isSlugFieldLocalized = slugFieldInfo?.localized ?? false\n\n // Initialize cache if it doesn't exist\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const context = req.context as any\n if (!context.hierarchyAncestorCache) {\n context.hierarchyAncestorCache = {}\n }\n if (!context.hierarchyAncestorCache[collection.slug]) {\n context.hierarchyAncestorCache[collection.slug] = {}\n }\n\n // Initialize cache stats if debug is enabled\n if (req.payload.config.debug && !context.hierarchyCacheStats) {\n context.hierarchyCacheStats = {\n hits: 0,\n misses: 0,\n queries: 0,\n }\n }\n\n const parentValue = doc[parentFieldName]\n let parentID: number | string | undefined\n\n if (!parentValue) {\n // No parent - root document\n parentID = undefined\n } else {\n // Extract ID from parent value\n // Parent can be:\n // - Plain ID (string/number)\n // - Populated object with { id: ... }\n if (typeof parentValue === 'object' && 'id' in parentValue) {\n parentID = parentValue.id\n } else {\n parentID = parentValue as number | string\n }\n }\n\n if (parentID) {\n // Parent is always from the same collection (self-referential)\n const parentCollectionConfig = collection\n const parentHierarchyConfig = parentCollectionConfig.hierarchy\n\n // If parent collection doesn't have hierarchy, we can't compute paths through it\n if (!parentHierarchyConfig || !parentCollectionConfig) {\n const titleValue = getTitleValue({\n document: doc,\n isTitleLocalized,\n locale,\n req,\n titleFieldName,\n })\n\n const slugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n if (isTitleLocalized && locale === 'all') {\n return buildLocalizedHierarchyPaths({\n req,\n slugify,\n slugValue: slugValue as Record<string, string> | undefined,\n titleValue: titleValue as Record<string, string>,\n })\n }\n\n return {\n slugPath: slugValue !== undefined ? (slugValue as string) : slugify(titleValue as string),\n titlePath: titleValue as string,\n }\n }\n\n // Initialize cache for parent collection if needed\n if (!context.hierarchyAncestorCache[collection.slug]) {\n context.hierarchyAncestorCache[collection.slug] = {}\n }\n\n const cache = context.hierarchyAncestorCache[collection.slug]\n const cacheKey = `${parentID}_${locale || 'default'}`\n\n // Check cache first\n let parent = cache[cacheKey]\n\n if (parent) {\n // Cache hit\n if (context.hierarchyCacheStats) {\n context.hierarchyCacheStats.hits += 1\n }\n } else {\n // Cache miss - fetch parent\n if (context.hierarchyCacheStats) {\n context.hierarchyCacheStats.misses += 1\n context.hierarchyCacheStats.queries += 1\n }\n\n const parentTitleField = findUseAsTitleField(parentCollectionConfig).titleFieldName\n\n // parentID is guaranteed to be defined here (we're inside if (parentID))\n const validParentID = parentID\n\n // Create new context with computeHierarchyPaths enabled to trigger recursive path computation\n const parentReq = {\n ...req,\n context: {\n ...req.context,\n computeHierarchyPaths: true,\n },\n }\n\n // Fetch parent\n // When locale === 'all', we need special handling because Payload doesn't support\n // fetching all locales of a draft document (drafts are stored per-locale).\n // Strategy: Try published first, fallback to fetching each locale separately for drafts.\n const fetchParent = async () => {\n if (locale === 'all') {\n try {\n // First try to fetch published version with all locales\n return await req.payload.findByID({\n id: validParentID,\n collection: collection.slug,\n depth: 0,\n locale,\n overrideAccess: true,\n req: parentReq,\n select: {\n [parentHierarchyConfig.parentFieldName]: true,\n [parentHierarchyConfig.slugPathFieldName]: true,\n [parentHierarchyConfig.titlePathFieldName]: true,\n [parentTitleField]: true,\n ...(slugFieldName ? { [slugFieldName]: true } : {}),\n },\n user: req.user,\n })\n } catch (_error) {\n // Published version not found, must be a draft\n // Payload doesn't support fetching all locales of a draft with a single query\n // So we need to fetch each locale separately and combine the path data\n const locales = req.payload.config.localization\n ? req.payload.config.localization.localeCodes\n : []\n const parentPathsByLocale: Record<\n string,\n { slugPath?: string; title?: string; titlePath?: string }\n > = {}\n\n // Get parent collection's slugify function (may differ from child's)\n const parentSlugify =\n (parentCollectionConfig.hierarchy !== false &&\n parentCollectionConfig.hierarchy.slugify) ||\n ((text: string) => payloadSlugify(text) || '')\n\n // Fetch parent for each locale to get paths\n for (const loc of locales) {\n // Create a new request with this specific locale but keep computeHierarchyPaths flag\n const localeReq = {\n ...req,\n context: {\n ...req.context,\n computeHierarchyPaths: true,\n },\n locale: loc,\n }\n\n try {\n const parentForLocale = await req.payload.findByID({\n id: validParentID,\n collection: collection.slug,\n depth: 0,\n draft: true,\n locale: loc,\n overrideAccess: true,\n req: localeReq,\n user: req.user,\n })\n\n // Extract the path fields and title from the parent\n // If paths weren't computed (undefined), compute them manually for root documents\n let parentSlugPath = parentForLocale[parentHierarchyConfig.slugPathFieldName]\n let parentTitlePath = parentForLocale[parentHierarchyConfig.titlePathFieldName]\n const parentTitle = parentForLocale[parentTitleField]\n\n // If paths are undefined, this might be a root document - compute paths from title\n if (!parentSlugPath && parentTitle) {\n parentSlugPath = parentSlugify(parentTitle)\n }\n if (!parentTitlePath && parentTitle) {\n parentTitlePath = parentTitle\n }\n\n parentPathsByLocale[loc] = {\n slugPath: parentSlugPath,\n title: parentTitle,\n titlePath: parentTitlePath,\n }\n } catch (_localeError) {\n // This locale doesn't exist, skip it\n }\n }\n\n // Combine the path data from all locales into a single parent object\n const combinedSlugPaths: Record<string, string | undefined> = {}\n const combinedTitlePaths: Record<string, string | undefined> = {}\n const combinedTitles: Record<string, string | undefined> = {}\n\n for (const loc of locales) {\n if (parentPathsByLocale[loc]) {\n combinedSlugPaths[loc] = parentPathsByLocale[loc].slugPath\n combinedTitlePaths[loc] = parentPathsByLocale[loc].titlePath\n combinedTitles[loc] = parentPathsByLocale[loc].title\n }\n }\n\n // Return a parent object with only the hierarchy fields we need\n // (all properly formatted as multi-locale objects)\n return {\n id: validParentID,\n [parentHierarchyConfig.slugPathFieldName]: combinedSlugPaths,\n [parentHierarchyConfig.titlePathFieldName]: combinedTitlePaths,\n [parentTitleField]: combinedTitles,\n }\n }\n } else {\n // Normal case: single locale, can pass draft parameter\n return await req.payload.findByID({\n id: validParentID,\n collection: collection.slug,\n depth: 0,\n draft,\n locale,\n overrideAccess: true,\n req: parentReq,\n select: {\n [parentHierarchyConfig.parentFieldName]: true,\n [parentHierarchyConfig.slugPathFieldName]: true,\n [parentHierarchyConfig.titlePathFieldName]: true,\n [parentTitleField]: true,\n ...(slugFieldName ? { [slugFieldName]: true } : {}),\n },\n user: req.user,\n })\n }\n }\n\n try {\n parent = await fetchParent()\n\n // Store in cache\n cache[cacheKey] = parent\n } catch {\n // If we can't fetch the parent at all (even with fallbacks), treat this as a root document\n // This can happen with complex draft/locale combinations\n parentID = undefined\n }\n }\n\n // If parent fetch failed, treat as root document\n if (!parentID || !parent) {\n const titleValue = getTitleValue({\n document: doc,\n isTitleLocalized,\n locale,\n req,\n titleFieldName,\n })\n\n const slugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n if (isTitleLocalized && locale === 'all') {\n return buildLocalizedHierarchyPaths({\n req,\n slugify,\n slugValue: slugValue as Record<string, string> | undefined,\n titleValue: titleValue as Record<string, string>,\n })\n }\n\n return {\n slugPath: slugValue !== undefined ? (slugValue as string) : slugify(titleValue as string),\n titlePath: titleValue as string,\n }\n }\n\n const docTitle = getTitleValue({ document: doc, isTitleLocalized, locale, req, titleFieldName })\n\n // Cache the current document (in its own collection's cache)\n const currentDocCacheKey = `${doc.id}_${locale || 'default'}`\n if (!context.hierarchyAncestorCache[collection.slug]) {\n context.hierarchyAncestorCache[collection.slug] = {}\n }\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey] = {\n [parentFieldName]: parentID,\n [slugPathFieldName]: undefined, // Will be set below\n [titleFieldName]: docTitle,\n [titlePathFieldName]: undefined, // Will be set below\n }\n\n // Get parent's path field names from hierarchy config\n const parentSlugPathFieldName =\n parentCollectionConfig.hierarchy !== false\n ? parentCollectionConfig.hierarchy.slugPathFieldName\n : HIERARCHY_SLUG_PATH_FIELD\n const parentTitlePathFieldName =\n parentCollectionConfig.hierarchy !== false\n ? parentCollectionConfig.hierarchy.titlePathFieldName\n : HIERARCHY_TITLE_PATH_FIELD\n\n // Handle localized case (locale === 'all' with localized title field)\n if (isTitleLocalized && locale === 'all') {\n // Parent might have non-localized title field, resulting in string paths instead of objects\n // Convert parent paths to objects if they're strings (use same value for all locales)\n let parentSlugPathObj: Record<string, string> | undefined = parent[\n parentSlugPathFieldName\n ] as Record<string, string> | undefined\n let parentTitlePathObj: Record<string, string> | undefined = parent[\n parentTitlePathFieldName\n ] as Record<string, string> | undefined\n\n // If parent paths are strings (non-localized parent), convert to objects for all locales\n if (typeof parentSlugPathObj === 'string') {\n const locales = req.payload.config.localization\n ? req.payload.config.localization.localeCodes\n : []\n const slugValue = parentSlugPathObj\n parentSlugPathObj = {}\n for (const loc of locales) {\n parentSlugPathObj[loc] = slugValue\n }\n }\n\n if (typeof parentTitlePathObj === 'string') {\n const locales = req.payload.config.localization\n ? req.payload.config.localization.localeCodes\n : []\n const titleValue = parentTitlePathObj\n parentTitlePathObj = {}\n for (const loc of locales) {\n parentTitlePathObj[loc] = titleValue\n }\n }\n\n // Get slug value if slugField is configured\n const docSlugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n // If parent paths are undefined (parent fetch failed or paths not computed),\n // buildLocalizedHierarchyPaths will handle it by using just the child's title\n const result = buildLocalizedHierarchyPaths({\n parentSlugPath: parentSlugPathObj,\n parentTitlePath: parentTitlePathObj,\n req,\n slugify,\n slugValue: docSlugValue as Record<string, string> | undefined,\n titleValue: docTitle as Record<string, string>,\n })\n\n // Update cache with computed paths\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][slugPathFieldName] =\n result.slugPath\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][titlePathFieldName] =\n result.titlePath\n\n return result\n }\n\n // Single locale case - get slug value if slugField is configured\n const singleLocaleSlugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n const slugSegment =\n singleLocaleSlugValue !== undefined\n ? (singleLocaleSlugValue as string)\n : slugify(docTitle as string)\n\n const result = {\n slugPath: (parent[parentSlugPathFieldName] as string) + '/' + slugSegment,\n titlePath: (parent[parentTitlePathFieldName] as string) + '/' + (docTitle as string),\n }\n\n // Update cache with computed paths\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][slugPathFieldName] =\n result.slugPath\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][titlePathFieldName] =\n result.titlePath\n\n return result\n } else {\n // Root document (no parent)\n const titleValue = getTitleValue({\n document: doc,\n isTitleLocalized,\n locale,\n req,\n titleFieldName,\n })\n context.hierarchyAncestorCache[collection.slug][doc.id] = {\n [parentFieldName]: null,\n [titleFieldName]: titleValue,\n }\n\n const rootSlugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n // Handle localized case (locale === 'all' with localized title field)\n if (isTitleLocalized && locale === 'all') {\n return buildLocalizedHierarchyPaths({\n req,\n slugify,\n slugValue: rootSlugValue as Record<string, string> | undefined,\n titleValue: titleValue as Record<string, string>,\n })\n }\n\n // Single locale case\n return {\n slugPath:\n rootSlugValue !== undefined ? (rootSlugValue as string) : slugify(titleValue as string),\n titlePath: titleValue as string,\n }\n }\n}\n"],"names":["slugify","payloadSlugify","HIERARCHY_SLUG_PATH_FIELD","HIERARCHY_TITLE_PATH_FIELD","buildLocalizedHierarchyPaths","findFieldByName","findUseAsTitleField","getLocalizedValue","getTitleValue","document","isTitleLocalized","locale","req","titleFieldName","titleValue","id","toString","localizedValue","fallbackLocale","fieldType","value","getSlugFieldValue","isSlugLocalized","slugFieldName","slugValue","undefined","computePaths","args","collection","doc","draft","parentFieldName","slugPathFieldName","titlePathFieldName","hierarchy","text","localized","slugField","slugFieldInfo","isSlugFieldLocalized","context","hierarchyAncestorCache","slug","payload","config","debug","hierarchyCacheStats","hits","misses","queries","parentValue","parentID","parentCollectionConfig","parentHierarchyConfig","slugPath","titlePath","cache","cacheKey","parent","parentTitleField","validParentID","parentReq","computeHierarchyPaths","fetchParent","findByID","depth","overrideAccess","select","user","_error","locales","localization","localeCodes","parentPathsByLocale","parentSlugify","loc","localeReq","parentForLocale","parentSlugPath","parentTitlePath","parentTitle","title","_localeError","combinedSlugPaths","combinedTitlePaths","combinedTitles","docTitle","currentDocCacheKey","parentSlugPathFieldName","parentTitlePathFieldName","parentSlugPathObj","parentTitlePathObj","docSlugValue","result","singleLocaleSlugValue","slugSegment","rootSlugValue"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/hierarchy/utils/computePaths.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { Document, PayloadRequest } from '../../types/index.js'\n\nimport { slugify as payloadSlugify } from '../../utilities/slugify.js'\nimport { HIERARCHY_SLUG_PATH_FIELD, HIERARCHY_TITLE_PATH_FIELD } from '../constants.js'\nimport { buildLocalizedHierarchyPaths } from './buildLocalizedHierarchyPaths.js'\nimport { findFieldByName, findUseAsTitleField } from './findUseAsTitle.js'\nimport { getLocalizedValue } from './getLocalizedValue.js'\n\ntype ComputePathsArgs = {\n collection: SanitizedCollectionConfig\n doc: Document\n draft?: boolean\n locale?: string\n parentFieldName: string\n req: PayloadRequest\n slugPathFieldName?: string\n titlePathFieldName?: string\n}\n\ntype ComputePathsResult = {\n slugPath: Record<string, string> | string\n titlePath: Record<string, string> | string\n}\n\n// Helper to get title value - returns string for single locale, object for 'all' locales\nconst getTitleValue = ({\n document,\n isTitleLocalized = false,\n locale,\n req,\n titleFieldName,\n}: {\n document: Document\n isTitleLocalized?: boolean\n locale?: string\n req: PayloadRequest\n titleFieldName: string\n}): Record<string, string> | string => {\n const titleValue = document[titleFieldName]\n\n if (!titleValue) {\n return document.id?.toString() || 'untitled'\n }\n\n // If field is localized and we want all locales, return the full object\n if (isTitleLocalized && locale === 'all' && typeof titleValue === 'object') {\n return titleValue\n }\n\n // Single locale - use getLocalizedValue to handle fallback\n if (isTitleLocalized && typeof titleValue === 'object') {\n const localizedValue = getLocalizedValue({\n fallbackLocale: req.fallbackLocale,\n fieldType: 'text',\n locale: locale || req.locale || 'en',\n value: titleValue,\n })\n return localizedValue || document.id?.toString() || 'untitled'\n }\n\n return titleValue\n}\n\n// Helper to get slug value from a dedicated slug field\nconst getSlugFieldValue = ({\n document,\n isSlugLocalized = false,\n locale,\n req,\n slugFieldName,\n}: {\n document: Document\n isSlugLocalized?: boolean\n locale?: string\n req: PayloadRequest\n slugFieldName: string\n}): Record<string, string> | string | undefined => {\n const slugValue = document[slugFieldName]\n\n if (!slugValue) {\n return undefined\n }\n\n // If field is localized and we want all locales, return the full object\n if (isSlugLocalized && locale === 'all' && typeof slugValue === 'object') {\n return slugValue\n }\n\n // Single locale - use getLocalizedValue to handle fallback\n if (isSlugLocalized && typeof slugValue === 'object') {\n const localizedValue = getLocalizedValue({\n fallbackLocale: req.fallbackLocale,\n fieldType: 'text',\n locale: locale || req.locale || 'en',\n value: slugValue,\n })\n return localizedValue || undefined\n }\n\n return slugValue\n}\n\n/**\n * Computes both slug and title breadcrumb paths for a document by walking up the parent chain.\n * More efficient than computing them separately since it only walks the chain once.\n *\n * Note: Ancestor fetches always use `overrideAccess: true` to ensure paths are complete.\n * If a user can read a document, they should see its full breadcrumb path even if they\n * cannot read all ancestor documents. This prevents broken breadcrumbs and provides\n * better UX at the cost of minimal information leakage (ancestor titles in paths).\n *\n * @param args - Configuration for path computation\n * @returns Object with slugPath and titlePath\n */\nexport async function computePaths(args: ComputePathsArgs): Promise<ComputePathsResult> {\n const {\n collection,\n doc,\n draft = false,\n locale,\n parentFieldName,\n req,\n slugPathFieldName = HIERARCHY_SLUG_PATH_FIELD,\n titlePathFieldName = HIERARCHY_TITLE_PATH_FIELD,\n } = args\n\n const slugify =\n (collection.hierarchy !== false && collection.hierarchy.slugify) ||\n ((text: string) => payloadSlugify(text) || '')\n const { localized: isTitleLocalized, titleFieldName } = findUseAsTitleField(collection)\n\n // Check for dedicated slug field\n const slugFieldName = collection.hierarchy !== false ? collection.hierarchy.slugField : undefined\n const slugFieldInfo = slugFieldName ? findFieldByName(collection, slugFieldName) : undefined\n const isSlugFieldLocalized = slugFieldInfo?.localized ?? false\n\n // Initialize cache if it doesn't exist\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const context = req.context as any\n if (!context.hierarchyAncestorCache) {\n context.hierarchyAncestorCache = {}\n }\n if (!context.hierarchyAncestorCache[collection.slug]) {\n context.hierarchyAncestorCache[collection.slug] = {}\n }\n\n // Initialize cache stats if debug is enabled\n if (req.payload.config.debug && !context.hierarchyCacheStats) {\n context.hierarchyCacheStats = {\n hits: 0,\n misses: 0,\n queries: 0,\n }\n }\n\n const parentValue = doc[parentFieldName]\n let parentID: number | string | undefined\n\n if (!parentValue) {\n // No parent - root document\n parentID = undefined\n } else {\n // Extract ID from parent value\n // Parent can be:\n // - Plain ID (string/number)\n // - Populated object with { id: ... }\n if (typeof parentValue === 'object' && 'id' in parentValue) {\n parentID = parentValue.id\n } else {\n parentID = parentValue as number | string\n }\n }\n\n if (parentID) {\n // Parent is always from the same collection (self-referential)\n const parentCollectionConfig = collection\n const parentHierarchyConfig = parentCollectionConfig.hierarchy\n\n // If parent collection doesn't have hierarchy, we can't compute paths through it\n if (!parentHierarchyConfig || !parentCollectionConfig) {\n const titleValue = getTitleValue({\n document: doc,\n isTitleLocalized,\n locale,\n req,\n titleFieldName,\n })\n\n const slugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n if (isTitleLocalized && locale === 'all') {\n return buildLocalizedHierarchyPaths({\n req,\n slugify,\n slugValue: slugValue as Record<string, string> | undefined,\n titleValue: titleValue as Record<string, string>,\n })\n }\n\n return {\n slugPath: slugValue !== undefined ? slugValue : slugify(titleValue as string),\n titlePath: titleValue as string,\n }\n }\n\n // Initialize cache for parent collection if needed\n if (!context.hierarchyAncestorCache[collection.slug]) {\n context.hierarchyAncestorCache[collection.slug] = {}\n }\n\n const cache = context.hierarchyAncestorCache[collection.slug]\n const cacheKey = `${parentID}_${locale || 'default'}`\n\n // Check cache first\n let parent = cache[cacheKey]\n\n if (parent) {\n // Cache hit\n if (context.hierarchyCacheStats) {\n context.hierarchyCacheStats.hits += 1\n }\n } else {\n // Cache miss - fetch parent\n if (context.hierarchyCacheStats) {\n context.hierarchyCacheStats.misses += 1\n context.hierarchyCacheStats.queries += 1\n }\n\n const parentTitleField = findUseAsTitleField(parentCollectionConfig).titleFieldName\n\n // parentID is guaranteed to be defined here (we're inside if (parentID))\n const validParentID = parentID\n\n // Create new context with computeHierarchyPaths enabled to trigger recursive path computation\n const parentReq = {\n ...req,\n context: {\n ...req.context,\n computeHierarchyPaths: true,\n },\n }\n\n // Fetch parent\n // When locale === 'all', we need special handling because Payload doesn't support\n // fetching all locales of a draft document (drafts are stored per-locale).\n // Strategy: Try published first, fallback to fetching each locale separately for drafts.\n const fetchParent = async () => {\n if (locale === 'all') {\n try {\n // First try to fetch published version with all locales\n return await req.payload.findByID({\n id: validParentID,\n collection: collection.slug,\n depth: 0,\n locale,\n overrideAccess: true,\n req: parentReq,\n select: {\n [parentHierarchyConfig.parentFieldName]: true,\n [parentHierarchyConfig.slugPathFieldName]: true,\n [parentHierarchyConfig.titlePathFieldName]: true,\n [parentTitleField]: true,\n ...(slugFieldName ? { [slugFieldName]: true } : {}),\n },\n user: req.user,\n })\n } catch (_error) {\n // Published version not found, must be a draft\n // Payload doesn't support fetching all locales of a draft with a single query\n // So we need to fetch each locale separately and combine the path data\n const locales = req.payload.config.localization\n ? req.payload.config.localization.localeCodes\n : []\n const parentPathsByLocale: Record<\n string,\n { slugPath?: string; title?: string; titlePath?: string }\n > = {}\n\n // Get parent collection's slugify function (may differ from child's)\n const parentSlugify =\n (parentCollectionConfig.hierarchy !== false &&\n parentCollectionConfig.hierarchy.slugify) ||\n ((text: string) => payloadSlugify(text) || '')\n\n // Fetch parent for each locale to get paths\n for (const loc of locales) {\n // Create a new request with this specific locale but keep computeHierarchyPaths flag\n const localeReq = {\n ...req,\n context: {\n ...req.context,\n computeHierarchyPaths: true,\n },\n locale: loc,\n }\n\n try {\n const parentForLocale = await req.payload.findByID({\n id: validParentID,\n collection: collection.slug,\n depth: 0,\n draft: true,\n locale: loc,\n overrideAccess: true,\n req: localeReq,\n user: req.user,\n })\n\n // Extract the path fields and title from the parent\n // If paths weren't computed (undefined), compute them manually for root documents\n let parentSlugPath = parentForLocale[parentHierarchyConfig.slugPathFieldName]\n let parentTitlePath = parentForLocale[parentHierarchyConfig.titlePathFieldName]\n const parentTitle = parentForLocale[parentTitleField]\n\n // If paths are undefined, this might be a root document - compute paths from title\n if (!parentSlugPath && parentTitle) {\n parentSlugPath = parentSlugify(parentTitle)\n }\n if (!parentTitlePath && parentTitle) {\n parentTitlePath = parentTitle\n }\n\n parentPathsByLocale[loc] = {\n slugPath: parentSlugPath,\n title: parentTitle,\n titlePath: parentTitlePath,\n }\n } catch (_localeError) {\n // This locale doesn't exist, skip it\n }\n }\n\n // Combine the path data from all locales into a single parent object\n const combinedSlugPaths: Record<string, string | undefined> = {}\n const combinedTitlePaths: Record<string, string | undefined> = {}\n const combinedTitles: Record<string, string | undefined> = {}\n\n for (const loc of locales) {\n if (parentPathsByLocale[loc]) {\n combinedSlugPaths[loc] = parentPathsByLocale[loc].slugPath\n combinedTitlePaths[loc] = parentPathsByLocale[loc].titlePath\n combinedTitles[loc] = parentPathsByLocale[loc].title\n }\n }\n\n // Return a parent object with only the hierarchy fields we need\n // (all properly formatted as multi-locale objects)\n return {\n id: validParentID,\n [parentHierarchyConfig.slugPathFieldName]: combinedSlugPaths,\n [parentHierarchyConfig.titlePathFieldName]: combinedTitlePaths,\n [parentTitleField]: combinedTitles,\n }\n }\n } else {\n // Normal case: single locale, can pass draft parameter\n return await req.payload.findByID({\n id: validParentID,\n collection: collection.slug,\n depth: 0,\n draft,\n locale,\n overrideAccess: true,\n req: parentReq,\n select: {\n [parentHierarchyConfig.parentFieldName]: true,\n [parentHierarchyConfig.slugPathFieldName]: true,\n [parentHierarchyConfig.titlePathFieldName]: true,\n [parentTitleField]: true,\n ...(slugFieldName ? { [slugFieldName]: true } : {}),\n },\n user: req.user,\n })\n }\n }\n\n try {\n parent = await fetchParent()\n\n // Store in cache\n cache[cacheKey] = parent\n } catch {\n // If we can't fetch the parent at all (even with fallbacks), treat this as a root document\n // This can happen with complex draft/locale combinations\n parentID = undefined\n }\n }\n\n // If parent fetch failed, treat as root document\n if (!parentID || !parent) {\n const titleValue = getTitleValue({\n document: doc,\n isTitleLocalized,\n locale,\n req,\n titleFieldName,\n })\n\n const slugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n if (isTitleLocalized && locale === 'all') {\n return buildLocalizedHierarchyPaths({\n req,\n slugify,\n slugValue: slugValue as Record<string, string> | undefined,\n titleValue: titleValue as Record<string, string>,\n })\n }\n\n return {\n slugPath: slugValue !== undefined ? slugValue : slugify(titleValue as string),\n titlePath: titleValue as string,\n }\n }\n\n const docTitle = getTitleValue({ document: doc, isTitleLocalized, locale, req, titleFieldName })\n\n // Cache the current document (in its own collection's cache)\n const currentDocCacheKey = `${doc.id}_${locale || 'default'}`\n if (!context.hierarchyAncestorCache[collection.slug]) {\n context.hierarchyAncestorCache[collection.slug] = {}\n }\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey] = {\n [parentFieldName]: parentID,\n [slugPathFieldName]: undefined, // Will be set below\n [titleFieldName]: docTitle,\n [titlePathFieldName]: undefined, // Will be set below\n }\n\n // Get parent's path field names from hierarchy config\n const parentSlugPathFieldName =\n parentCollectionConfig.hierarchy !== false\n ? parentCollectionConfig.hierarchy.slugPathFieldName\n : HIERARCHY_SLUG_PATH_FIELD\n const parentTitlePathFieldName =\n parentCollectionConfig.hierarchy !== false\n ? parentCollectionConfig.hierarchy.titlePathFieldName\n : HIERARCHY_TITLE_PATH_FIELD\n\n // Handle localized case (locale === 'all' with localized title field)\n if (isTitleLocalized && locale === 'all') {\n // Parent might have non-localized title field, resulting in string paths instead of objects\n // Convert parent paths to objects if they're strings (use same value for all locales)\n let parentSlugPathObj: Record<string, string> | undefined = parent[\n parentSlugPathFieldName\n ] as Record<string, string> | undefined\n let parentTitlePathObj: Record<string, string> | undefined = parent[\n parentTitlePathFieldName\n ] as Record<string, string> | undefined\n\n // If parent paths are strings (non-localized parent), convert to objects for all locales\n if (typeof parentSlugPathObj === 'string') {\n const locales = req.payload.config.localization\n ? req.payload.config.localization.localeCodes\n : []\n const slugValue = parentSlugPathObj\n parentSlugPathObj = {}\n for (const loc of locales) {\n parentSlugPathObj[loc] = slugValue\n }\n }\n\n if (typeof parentTitlePathObj === 'string') {\n const locales = req.payload.config.localization\n ? req.payload.config.localization.localeCodes\n : []\n const titleValue = parentTitlePathObj\n parentTitlePathObj = {}\n for (const loc of locales) {\n parentTitlePathObj[loc] = titleValue\n }\n }\n\n // Get slug value if slugField is configured\n const docSlugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n // If parent paths are undefined (parent fetch failed or paths not computed),\n // buildLocalizedHierarchyPaths will handle it by using just the child's title\n const result = buildLocalizedHierarchyPaths({\n parentSlugPath: parentSlugPathObj,\n parentTitlePath: parentTitlePathObj,\n req,\n slugify,\n slugValue: docSlugValue as Record<string, string> | undefined,\n titleValue: docTitle as Record<string, string>,\n })\n\n // Update cache with computed paths\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][slugPathFieldName] =\n result.slugPath\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][titlePathFieldName] =\n result.titlePath\n\n return result\n }\n\n // Single locale case - get slug value if slugField is configured\n const singleLocaleSlugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n const slugSegment =\n singleLocaleSlugValue !== undefined\n ? (singleLocaleSlugValue as string)\n : slugify(docTitle as string)\n\n const result = {\n slugPath: (parent[parentSlugPathFieldName] as string) + '/' + slugSegment,\n titlePath: (parent[parentTitlePathFieldName] as string) + '/' + (docTitle as string),\n }\n\n // Update cache with computed paths\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][slugPathFieldName] =\n result.slugPath\n context.hierarchyAncestorCache[collection.slug][currentDocCacheKey][titlePathFieldName] =\n result.titlePath\n\n return result\n } else {\n // Root document (no parent)\n const titleValue = getTitleValue({\n document: doc,\n isTitleLocalized,\n locale,\n req,\n titleFieldName,\n })\n context.hierarchyAncestorCache[collection.slug][doc.id] = {\n [parentFieldName]: null,\n [titleFieldName]: titleValue,\n }\n\n const rootSlugValue = slugFieldName\n ? getSlugFieldValue({\n document: doc,\n isSlugLocalized: isSlugFieldLocalized,\n locale,\n req,\n slugFieldName,\n })\n : undefined\n\n // Handle localized case (locale === 'all' with localized title field)\n if (isTitleLocalized && locale === 'all') {\n return buildLocalizedHierarchyPaths({\n req,\n slugify,\n slugValue: rootSlugValue as Record<string, string> | undefined,\n titleValue: titleValue as Record<string, string>,\n })\n }\n\n // Single locale case\n return {\n slugPath: rootSlugValue !== undefined ? rootSlugValue : slugify(titleValue as string),\n titlePath: titleValue as string,\n }\n }\n}\n"],"names":["slugify","payloadSlugify","HIERARCHY_SLUG_PATH_FIELD","HIERARCHY_TITLE_PATH_FIELD","buildLocalizedHierarchyPaths","findFieldByName","findUseAsTitleField","getLocalizedValue","getTitleValue","document","isTitleLocalized","locale","req","titleFieldName","titleValue","id","toString","localizedValue","fallbackLocale","fieldType","value","getSlugFieldValue","isSlugLocalized","slugFieldName","slugValue","undefined","computePaths","args","collection","doc","draft","parentFieldName","slugPathFieldName","titlePathFieldName","hierarchy","text","localized","slugField","slugFieldInfo","isSlugFieldLocalized","context","hierarchyAncestorCache","slug","payload","config","debug","hierarchyCacheStats","hits","misses","queries","parentValue","parentID","parentCollectionConfig","parentHierarchyConfig","slugPath","titlePath","cache","cacheKey","parent","parentTitleField","validParentID","parentReq","computeHierarchyPaths","fetchParent","findByID","depth","overrideAccess","select","user","_error","locales","localization","localeCodes","parentPathsByLocale","parentSlugify","loc","localeReq","parentForLocale","parentSlugPath","parentTitlePath","parentTitle","title","_localeError","combinedSlugPaths","combinedTitlePaths","combinedTitles","docTitle","currentDocCacheKey","parentSlugPathFieldName","parentTitlePathFieldName","parentSlugPathObj","parentTitlePathObj","docSlugValue","result","singleLocaleSlugValue","slugSegment","rootSlugValue"],"mappings":"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"}