payload 4.0.0-internal.cd69eef → 4.0.0-internal.ce66a41

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 (1802) hide show
  1. package/bin.js +17 -24
  2. package/dist/admin/RichText.d.ts +23 -1
  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/fields/Array.d.ts +11 -13
  10. package/dist/admin/fields/Array.d.ts.map +1 -1
  11. package/dist/admin/fields/Array.js.map +1 -1
  12. package/dist/admin/fields/Blocks.d.ts +13 -16
  13. package/dist/admin/fields/Blocks.d.ts.map +1 -1
  14. package/dist/admin/fields/Blocks.js.map +1 -1
  15. package/dist/admin/fields/Checkbox.d.ts +11 -13
  16. package/dist/admin/fields/Checkbox.d.ts.map +1 -1
  17. package/dist/admin/fields/Checkbox.js.map +1 -1
  18. package/dist/admin/fields/Code.d.ts +11 -13
  19. package/dist/admin/fields/Code.d.ts.map +1 -1
  20. package/dist/admin/fields/Code.js.map +1 -1
  21. package/dist/admin/fields/Collapsible.d.ts +11 -13
  22. package/dist/admin/fields/Collapsible.d.ts.map +1 -1
  23. package/dist/admin/fields/Collapsible.js.map +1 -1
  24. package/dist/admin/fields/Date.d.ts +11 -13
  25. package/dist/admin/fields/Date.d.ts.map +1 -1
  26. package/dist/admin/fields/Date.js.map +1 -1
  27. package/dist/admin/fields/Email.d.ts +11 -13
  28. package/dist/admin/fields/Email.d.ts.map +1 -1
  29. package/dist/admin/fields/Email.js.map +1 -1
  30. package/dist/admin/fields/Group.d.ts +11 -13
  31. package/dist/admin/fields/Group.d.ts.map +1 -1
  32. package/dist/admin/fields/Group.js.map +1 -1
  33. package/dist/admin/fields/JSON.d.ts +11 -13
  34. package/dist/admin/fields/JSON.d.ts.map +1 -1
  35. package/dist/admin/fields/JSON.js.map +1 -1
  36. package/dist/admin/fields/Join.d.ts +12 -14
  37. package/dist/admin/fields/Join.d.ts.map +1 -1
  38. package/dist/admin/fields/Join.js.map +1 -1
  39. package/dist/admin/fields/Number.d.ts +11 -13
  40. package/dist/admin/fields/Number.d.ts.map +1 -1
  41. package/dist/admin/fields/Number.js.map +1 -1
  42. package/dist/admin/fields/Point.d.ts +11 -13
  43. package/dist/admin/fields/Point.d.ts.map +1 -1
  44. package/dist/admin/fields/Point.js.map +1 -1
  45. package/dist/admin/fields/Radio.d.ts +11 -13
  46. package/dist/admin/fields/Radio.d.ts.map +1 -1
  47. package/dist/admin/fields/Radio.js.map +1 -1
  48. package/dist/admin/fields/Relationship.d.ts +11 -13
  49. package/dist/admin/fields/Relationship.d.ts.map +1 -1
  50. package/dist/admin/fields/Relationship.js.map +1 -1
  51. package/dist/admin/fields/RichText.d.ts +13 -15
  52. package/dist/admin/fields/RichText.d.ts.map +1 -1
  53. package/dist/admin/fields/RichText.js.map +1 -1
  54. package/dist/admin/fields/Row.d.ts +10 -12
  55. package/dist/admin/fields/Row.d.ts.map +1 -1
  56. package/dist/admin/fields/Row.js.map +1 -1
  57. package/dist/admin/fields/Select.d.ts +11 -13
  58. package/dist/admin/fields/Select.d.ts.map +1 -1
  59. package/dist/admin/fields/Select.js.map +1 -1
  60. package/dist/admin/fields/Tabs.d.ts +11 -13
  61. package/dist/admin/fields/Tabs.d.ts.map +1 -1
  62. package/dist/admin/fields/Tabs.js.map +1 -1
  63. package/dist/admin/fields/Text.d.ts +11 -13
  64. package/dist/admin/fields/Text.d.ts.map +1 -1
  65. package/dist/admin/fields/Text.js.map +1 -1
  66. package/dist/admin/fields/Textarea.d.ts +11 -13
  67. package/dist/admin/fields/Textarea.d.ts.map +1 -1
  68. package/dist/admin/fields/Textarea.js.map +1 -1
  69. package/dist/admin/fields/UI.d.ts +3 -5
  70. package/dist/admin/fields/UI.d.ts.map +1 -1
  71. package/dist/admin/fields/UI.js.map +1 -1
  72. package/dist/admin/fields/Upload.d.ts +11 -13
  73. package/dist/admin/fields/Upload.d.ts.map +1 -1
  74. package/dist/admin/fields/Upload.js.map +1 -1
  75. package/dist/admin/forms/Description.d.ts +0 -2
  76. package/dist/admin/forms/Description.d.ts.map +1 -1
  77. package/dist/admin/forms/Description.js.map +1 -1
  78. package/dist/admin/forms/Diff.d.ts +0 -2
  79. package/dist/admin/forms/Diff.d.ts.map +1 -1
  80. package/dist/admin/forms/Diff.js.map +1 -1
  81. package/dist/admin/forms/Error.d.ts +0 -2
  82. package/dist/admin/forms/Error.d.ts.map +1 -1
  83. package/dist/admin/forms/Error.js.map +1 -1
  84. package/dist/admin/forms/Field.d.ts +4 -2
  85. package/dist/admin/forms/Field.d.ts.map +1 -1
  86. package/dist/admin/forms/Field.js.map +1 -1
  87. package/dist/admin/forms/Form.d.ts +2 -0
  88. package/dist/admin/forms/Form.d.ts.map +1 -1
  89. package/dist/admin/forms/Form.js.map +1 -1
  90. package/dist/admin/forms/Label.d.ts +2 -2
  91. package/dist/admin/forms/Label.d.ts.map +1 -1
  92. package/dist/admin/forms/Label.js.map +1 -1
  93. package/dist/admin/functions/index.d.ts +15 -11
  94. package/dist/admin/functions/index.d.ts.map +1 -1
  95. package/dist/admin/functions/index.js.map +1 -1
  96. package/dist/admin/getRequestLocale.d.ts +6 -0
  97. package/dist/admin/getRequestLocale.d.ts.map +1 -0
  98. package/dist/admin/getRequestLocale.js +38 -0
  99. package/dist/admin/getRequestLocale.js.map +1 -0
  100. package/dist/admin/initAdminContext.d.ts +39 -0
  101. package/dist/admin/initAdminContext.d.ts.map +1 -0
  102. package/dist/admin/initAdminContext.js +154 -0
  103. package/dist/admin/initAdminContext.js.map +1 -0
  104. package/dist/admin/types.d.ts +32 -32
  105. package/dist/admin/types.d.ts.map +1 -1
  106. package/dist/admin/types.js.map +1 -1
  107. package/dist/admin/views/dashboard.d.ts +2 -2
  108. package/dist/admin/views/dashboard.d.ts.map +1 -1
  109. package/dist/admin/views/dashboard.js.map +1 -1
  110. package/dist/admin/views/index.d.ts +2 -2
  111. package/dist/admin/views/index.d.ts.map +1 -1
  112. package/dist/admin/views/index.js.map +1 -1
  113. package/dist/admin/views/list.d.ts +9 -0
  114. package/dist/admin/views/list.d.ts.map +1 -1
  115. package/dist/admin/views/list.js.map +1 -1
  116. package/dist/auth/applyUserReadAccess.d.ts +13 -0
  117. package/dist/auth/applyUserReadAccess.d.ts.map +1 -0
  118. package/dist/auth/applyUserReadAccess.js +41 -0
  119. package/dist/auth/applyUserReadAccess.js.map +1 -0
  120. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts +4 -0
  121. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts.map +1 -0
  122. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js +20 -0
  123. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js.map +1 -0
  124. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts +4 -0
  125. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts.map +1 -0
  126. package/dist/auth/baseFields/apiKey/encryptAPIKey.js +11 -0
  127. package/dist/auth/baseFields/apiKey/encryptAPIKey.js.map +1 -0
  128. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.d.ts +3 -0
  129. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.d.ts.map +1 -0
  130. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.js +5 -0
  131. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.js.map +1 -0
  132. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts +5 -0
  133. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts.map +1 -0
  134. package/dist/auth/baseFields/apiKey/omitAPIKey.js +11 -0
  135. package/dist/auth/baseFields/apiKey/omitAPIKey.js.map +1 -0
  136. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts +4 -0
  137. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts.map +1 -0
  138. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js +5 -0
  139. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js.map +1 -0
  140. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts +4 -0
  141. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts.map +1 -0
  142. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js +5 -0
  143. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js.map +1 -0
  144. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts +4 -0
  145. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts.map +1 -0
  146. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js +12 -0
  147. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js.map +1 -0
  148. package/dist/auth/baseFields/apiKey/setKeyLast4.d.ts +4 -0
  149. package/dist/auth/baseFields/apiKey/setKeyLast4.d.ts.map +1 -0
  150. package/dist/auth/baseFields/apiKey/setKeyLast4.js +12 -0
  151. package/dist/auth/baseFields/apiKey/setKeyLast4.js.map +1 -0
  152. package/dist/auth/baseFields/apiKey.d.ts +6 -6
  153. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  154. package/dist/auth/baseFields/apiKey.js +88 -57
  155. package/dist/auth/baseFields/apiKey.js.map +1 -1
  156. package/dist/auth/baseFields/auth.d.ts +1 -0
  157. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  158. package/dist/auth/baseFields/auth.js +9 -0
  159. package/dist/auth/baseFields/auth.js.map +1 -1
  160. package/dist/auth/crypto.d.ts +73 -2
  161. package/dist/auth/crypto.d.ts.map +1 -1
  162. package/dist/auth/crypto.js +90 -13
  163. package/dist/auth/crypto.js.map +1 -1
  164. package/dist/auth/defaultUnlockAccess.d.ts +3 -0
  165. package/dist/auth/defaultUnlockAccess.d.ts.map +1 -0
  166. package/dist/auth/defaultUnlockAccess.js +8 -0
  167. package/dist/auth/defaultUnlockAccess.js.map +1 -0
  168. package/dist/auth/endpoints/index.d.ts +1 -0
  169. package/dist/auth/endpoints/index.d.ts.map +1 -1
  170. package/dist/auth/endpoints/index.js +8 -0
  171. package/dist/auth/endpoints/index.js.map +1 -1
  172. package/dist/auth/endpoints/login.d.ts.map +1 -1
  173. package/dist/auth/endpoints/login.js +2 -11
  174. package/dist/auth/endpoints/login.js.map +1 -1
  175. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  176. package/dist/auth/endpoints/refresh.js +4 -6
  177. package/dist/auth/endpoints/refresh.js.map +1 -1
  178. package/dist/auth/endpoints/revealAPIKey.d.ts +7 -0
  179. package/dist/auth/endpoints/revealAPIKey.d.ts.map +1 -0
  180. package/dist/auth/endpoints/revealAPIKey.js +122 -0
  181. package/dist/auth/endpoints/revealAPIKey.js.map +1 -0
  182. package/dist/auth/executeAccess.d.ts +2 -1
  183. package/dist/auth/executeAccess.d.ts.map +1 -1
  184. package/dist/auth/executeAccess.js +2 -1
  185. package/dist/auth/executeAccess.js.map +1 -1
  186. package/dist/auth/getAccessResults.js +1 -0
  187. package/dist/auth/getAccessResults.js.map +1 -1
  188. package/dist/auth/getAuthFields.d.ts +1 -1
  189. package/dist/auth/getAuthFields.d.ts.map +1 -1
  190. package/dist/auth/getAuthFields.js +7 -4
  191. package/dist/auth/getAuthFields.js.map +1 -1
  192. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  193. package/dist/auth/getFieldsToSign.js +20 -10
  194. package/dist/auth/getFieldsToSign.js.map +1 -1
  195. package/dist/auth/getLoginOptions.js.map +1 -1
  196. package/dist/auth/jwt.d.ts.map +1 -1
  197. package/dist/auth/jwt.js +2 -0
  198. package/dist/auth/jwt.js.map +1 -1
  199. package/dist/auth/jwtAuth.d.ts +9 -0
  200. package/dist/auth/jwtAuth.d.ts.map +1 -0
  201. package/dist/auth/jwtAuth.js +8 -0
  202. package/dist/auth/jwtAuth.js.map +1 -0
  203. package/dist/auth/loginWithCookie.d.ts +33 -0
  204. package/dist/auth/loginWithCookie.d.ts.map +1 -0
  205. package/dist/auth/loginWithCookie.js +34 -0
  206. package/dist/auth/loginWithCookie.js.map +1 -0
  207. package/dist/auth/operations/access.d.ts.map +1 -1
  208. package/dist/auth/operations/access.js +3 -9
  209. package/dist/auth/operations/access.js.map +1 -1
  210. package/dist/auth/operations/auth.d.ts.map +1 -1
  211. package/dist/auth/operations/auth.js +16 -21
  212. package/dist/auth/operations/auth.js.map +1 -1
  213. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  214. package/dist/auth/operations/forgotPassword.js +97 -14
  215. package/dist/auth/operations/forgotPassword.js.map +1 -1
  216. package/dist/auth/operations/local/auth.js +7 -4
  217. package/dist/auth/operations/local/auth.js.map +1 -1
  218. package/dist/auth/operations/local/forgotPassword.d.ts +2 -2
  219. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  220. package/dist/auth/operations/local/forgotPassword.js +6 -3
  221. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  222. package/dist/auth/operations/local/login.d.ts +2 -2
  223. package/dist/auth/operations/local/login.d.ts.map +1 -1
  224. package/dist/auth/operations/local/login.js +6 -3
  225. package/dist/auth/operations/local/login.js.map +1 -1
  226. package/dist/auth/operations/local/resetPassword.js +5 -2
  227. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  228. package/dist/auth/operations/local/unlock.d.ts +2 -2
  229. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  230. package/dist/auth/operations/local/unlock.js +6 -3
  231. package/dist/auth/operations/local/unlock.js.map +1 -1
  232. package/dist/auth/operations/local/verifyEmail.js +5 -2
  233. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  234. package/dist/auth/operations/login.d.ts.map +1 -1
  235. package/dist/auth/operations/login.js +48 -26
  236. package/dist/auth/operations/login.js.map +1 -1
  237. package/dist/auth/operations/me.d.ts +0 -7
  238. package/dist/auth/operations/me.d.ts.map +1 -1
  239. package/dist/auth/operations/me.js +0 -6
  240. package/dist/auth/operations/me.js.map +1 -1
  241. package/dist/auth/operations/refresh.d.ts +0 -7
  242. package/dist/auth/operations/refresh.d.ts.map +1 -1
  243. package/dist/auth/operations/refresh.js +32 -15
  244. package/dist/auth/operations/refresh.js.map +1 -1
  245. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  246. package/dist/auth/operations/registerFirstUser.js +4 -4
  247. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  248. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  249. package/dist/auth/operations/resetPassword.js +31 -22
  250. package/dist/auth/operations/resetPassword.js.map +1 -1
  251. package/dist/auth/operations/unlock.d.ts.map +1 -1
  252. package/dist/auth/operations/unlock.js +1 -0
  253. package/dist/auth/operations/unlock.js.map +1 -1
  254. package/dist/auth/rotateSecret.d.ts +51 -0
  255. package/dist/auth/rotateSecret.d.ts.map +1 -0
  256. package/dist/auth/rotateSecret.js +131 -0
  257. package/dist/auth/rotateSecret.js.map +1 -0
  258. package/dist/auth/serverFunctions/cookies.d.ts +47 -0
  259. package/dist/auth/serverFunctions/cookies.d.ts.map +1 -0
  260. package/dist/auth/serverFunctions/cookies.js +52 -0
  261. package/dist/auth/serverFunctions/cookies.js.map +1 -0
  262. package/dist/auth/serverFunctions/login.d.ts +29 -0
  263. package/dist/auth/serverFunctions/login.d.ts.map +1 -0
  264. package/dist/auth/serverFunctions/login.js +65 -0
  265. package/dist/auth/serverFunctions/login.js.map +1 -0
  266. package/dist/auth/serverFunctions/logout.d.ts +17 -0
  267. package/dist/auth/serverFunctions/logout.d.ts.map +1 -0
  268. package/dist/auth/serverFunctions/logout.js +59 -0
  269. package/dist/auth/serverFunctions/logout.js.map +1 -0
  270. package/dist/auth/serverFunctions/refresh.d.ts +17 -0
  271. package/dist/auth/serverFunctions/refresh.d.ts.map +1 -0
  272. package/dist/auth/serverFunctions/refresh.js +62 -0
  273. package/dist/auth/serverFunctions/refresh.js.map +1 -0
  274. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  275. package/dist/auth/strategies/apiKey.js +42 -4
  276. package/dist/auth/strategies/apiKey.js.map +1 -1
  277. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  278. package/dist/auth/strategies/jwt.js +83 -11
  279. package/dist/auth/strategies/jwt.js.map +1 -1
  280. package/dist/auth/strategies/local/authenticate.d.ts +5 -1
  281. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  282. package/dist/auth/strategies/local/authenticate.js +8 -3
  283. package/dist/auth/strategies/local/authenticate.js.map +1 -1
  284. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts +9 -1
  285. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  286. package/dist/auth/strategies/local/generatePasswordSaltHash.js +61 -34
  287. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  288. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  289. package/dist/auth/strategies/local/register.js +1 -0
  290. package/dist/auth/strategies/local/register.js.map +1 -1
  291. package/dist/auth/types.d.ts +36 -20
  292. package/dist/auth/types.d.ts.map +1 -1
  293. package/dist/auth/types.js.map +1 -1
  294. package/dist/auth/withBaseAccess.d.ts +22 -0
  295. package/dist/auth/withBaseAccess.d.ts.map +1 -0
  296. package/dist/auth/withBaseAccess.js +61 -0
  297. package/dist/auth/withBaseAccess.js.map +1 -0
  298. package/dist/{bin → cli/commands/build}/build.d.ts +8 -13
  299. package/dist/cli/commands/build/build.d.ts.map +1 -0
  300. package/dist/{bin → cli/commands/build}/build.js +26 -27
  301. package/dist/cli/commands/build/build.js.map +1 -0
  302. package/dist/cli/commands/build/index.d.ts +2 -0
  303. package/dist/cli/commands/build/index.d.ts.map +1 -0
  304. package/dist/cli/commands/build/index.js +26 -0
  305. package/dist/cli/commands/build/index.js.map +1 -0
  306. package/dist/cli/commands/collections/countDocuments.d.ts +2 -0
  307. package/dist/cli/commands/collections/countDocuments.d.ts.map +1 -0
  308. package/dist/cli/commands/collections/countDocuments.js +37 -0
  309. package/dist/cli/commands/collections/countDocuments.js.map +1 -0
  310. package/dist/cli/commands/collections/countVersions.d.ts +2 -0
  311. package/dist/cli/commands/collections/countVersions.d.ts.map +1 -0
  312. package/dist/cli/commands/collections/countVersions.js +36 -0
  313. package/dist/cli/commands/collections/countVersions.js.map +1 -0
  314. package/dist/cli/commands/collections/createDocuments.d.ts +2 -0
  315. package/dist/cli/commands/collections/createDocuments.d.ts.map +1 -0
  316. package/dist/cli/commands/collections/createDocuments.js +132 -0
  317. package/dist/cli/commands/collections/createDocuments.js.map +1 -0
  318. package/dist/cli/commands/collections/deleteDocuments.d.ts +2 -0
  319. package/dist/cli/commands/collections/deleteDocuments.d.ts.map +1 -0
  320. package/dist/cli/commands/collections/deleteDocuments.js +64 -0
  321. package/dist/cli/commands/collections/deleteDocuments.js.map +1 -0
  322. package/dist/cli/commands/collections/duplicateDocument.d.ts +2 -0
  323. package/dist/cli/commands/collections/duplicateDocument.d.ts.map +1 -0
  324. package/dist/cli/commands/collections/duplicateDocument.js +109 -0
  325. package/dist/cli/commands/collections/duplicateDocument.js.map +1 -0
  326. package/dist/cli/commands/collections/findDistinct.d.ts +2 -0
  327. package/dist/cli/commands/collections/findDistinct.d.ts.map +1 -0
  328. package/dist/cli/commands/collections/findDistinct.js +52 -0
  329. package/dist/cli/commands/collections/findDistinct.js.map +1 -0
  330. package/dist/cli/commands/collections/findDocuments.d.ts +2 -0
  331. package/dist/cli/commands/collections/findDocuments.d.ts.map +1 -0
  332. package/dist/cli/commands/collections/findDocuments.js +79 -0
  333. package/dist/cli/commands/collections/findDocuments.js.map +1 -0
  334. package/dist/cli/commands/collections/findVersionByID.d.ts +2 -0
  335. package/dist/cli/commands/collections/findVersionByID.d.ts.map +1 -0
  336. package/dist/cli/commands/collections/findVersionByID.js +48 -0
  337. package/dist/cli/commands/collections/findVersionByID.js.map +1 -0
  338. package/dist/cli/commands/collections/findVersions.d.ts +2 -0
  339. package/dist/cli/commands/collections/findVersions.d.ts.map +1 -0
  340. package/dist/cli/commands/collections/findVersions.js +57 -0
  341. package/dist/cli/commands/collections/findVersions.js.map +1 -0
  342. package/dist/cli/commands/collections/getCollectionSchema.d.ts +2 -0
  343. package/dist/cli/commands/collections/getCollectionSchema.d.ts.map +1 -0
  344. package/dist/cli/commands/collections/getCollectionSchema.js +61 -0
  345. package/dist/cli/commands/collections/getCollectionSchema.js.map +1 -0
  346. package/dist/cli/commands/collections/restoreVersion.d.ts +2 -0
  347. package/dist/cli/commands/collections/restoreVersion.d.ts.map +1 -0
  348. package/dist/cli/commands/collections/restoreVersion.js +47 -0
  349. package/dist/cli/commands/collections/restoreVersion.js.map +1 -0
  350. package/dist/cli/commands/collections/updateDocument.d.ts +2 -0
  351. package/dist/cli/commands/collections/updateDocument.d.ts.map +1 -0
  352. package/dist/cli/commands/collections/updateDocument.js +192 -0
  353. package/dist/cli/commands/collections/updateDocument.js.map +1 -0
  354. package/dist/cli/commands/data/input.d.ts +28 -0
  355. package/dist/cli/commands/data/input.d.ts.map +1 -0
  356. package/dist/cli/commands/data/input.js +76 -0
  357. package/dist/cli/commands/data/input.js.map +1 -0
  358. package/dist/cli/commands/data/utilities.d.ts +65 -0
  359. package/dist/cli/commands/data/utilities.d.ts.map +1 -0
  360. package/dist/cli/commands/data/utilities.js +67 -0
  361. package/dist/cli/commands/data/utilities.js.map +1 -0
  362. package/dist/cli/commands/generateDBSchema.d.ts +2 -0
  363. package/dist/cli/commands/generateDBSchema.d.ts.map +1 -0
  364. package/dist/cli/commands/generateDBSchema.js +29 -0
  365. package/dist/cli/commands/generateDBSchema.js.map +1 -0
  366. package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts.map +1 -0
  367. package/dist/cli/commands/generateImportMap/frameworkConventions.js.map +1 -0
  368. package/dist/{bin/generateImportMap/index.d.ts → cli/commands/generateImportMap/generateImportMap.d.ts} +8 -4
  369. package/dist/cli/commands/generateImportMap/generateImportMap.d.ts.map +1 -0
  370. package/dist/{bin/generateImportMap/index.js → cli/commands/generateImportMap/generateImportMap.js} +9 -4
  371. package/dist/cli/commands/generateImportMap/generateImportMap.js.map +1 -0
  372. package/dist/cli/commands/generateImportMap/index.d.ts +2 -0
  373. package/dist/cli/commands/generateImportMap/index.d.ts.map +1 -0
  374. package/dist/cli/commands/generateImportMap/index.js +18 -0
  375. package/dist/cli/commands/generateImportMap/index.js.map +1 -0
  376. package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.d.ts +3 -3
  377. package/dist/cli/commands/generateImportMap/iterateCollections.d.ts.map +1 -0
  378. package/dist/cli/commands/generateImportMap/iterateCollections.js.map +1 -0
  379. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.d.ts +2 -2
  380. package/dist/cli/commands/generateImportMap/iterateConfig.d.ts.map +1 -0
  381. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.js +1 -1
  382. package/dist/cli/commands/generateImportMap/iterateConfig.js.map +1 -0
  383. package/dist/{bin → cli/commands}/generateImportMap/iterateFields.d.ts +3 -3
  384. package/dist/cli/commands/generateImportMap/iterateFields.d.ts.map +1 -0
  385. package/dist/cli/commands/generateImportMap/iterateFields.js.map +1 -0
  386. package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.d.ts +3 -3
  387. package/dist/cli/commands/generateImportMap/iterateGlobals.d.ts.map +1 -0
  388. package/dist/cli/commands/generateImportMap/iterateGlobals.js.map +1 -0
  389. package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts +2 -2
  390. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +1 -0
  391. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +1 -0
  392. package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.d.ts +2 -2
  393. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -0
  394. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.js.map +1 -0
  395. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +1 -0
  396. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +1 -0
  397. package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.d.ts +1 -1
  398. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.d.ts.map +1 -0
  399. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.js.map +1 -0
  400. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -0
  401. package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.js +1 -1
  402. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -0
  403. package/dist/cli/commands/generateTypes.d.ts +12 -0
  404. package/dist/cli/commands/generateTypes.d.ts.map +1 -0
  405. package/dist/{bin → cli/commands}/generateTypes.js +33 -7
  406. package/dist/cli/commands/generateTypes.js.map +1 -0
  407. package/dist/cli/commands/getConfigInfo.d.ts +2 -0
  408. package/dist/cli/commands/getConfigInfo.d.ts.map +1 -0
  409. package/dist/cli/commands/getConfigInfo.js +23 -0
  410. package/dist/cli/commands/getConfigInfo.js.map +1 -0
  411. package/dist/cli/commands/globals/countGlobalVersions.d.ts +2 -0
  412. package/dist/cli/commands/globals/countGlobalVersions.d.ts.map +1 -0
  413. package/dist/cli/commands/globals/countGlobalVersions.js +36 -0
  414. package/dist/cli/commands/globals/countGlobalVersions.js.map +1 -0
  415. package/dist/cli/commands/globals/findGlobal.d.ts +2 -0
  416. package/dist/cli/commands/globals/findGlobal.d.ts.map +1 -0
  417. package/dist/cli/commands/globals/findGlobal.js +42 -0
  418. package/dist/cli/commands/globals/findGlobal.js.map +1 -0
  419. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts +2 -0
  420. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts.map +1 -0
  421. package/dist/cli/commands/globals/findGlobalVersionByID.js +46 -0
  422. package/dist/cli/commands/globals/findGlobalVersionByID.js.map +1 -0
  423. package/dist/cli/commands/globals/findGlobalVersions.d.ts +2 -0
  424. package/dist/cli/commands/globals/findGlobalVersions.d.ts.map +1 -0
  425. package/dist/cli/commands/globals/findGlobalVersions.js +55 -0
  426. package/dist/cli/commands/globals/findGlobalVersions.js.map +1 -0
  427. package/dist/cli/commands/globals/getGlobalSchema.d.ts +2 -0
  428. package/dist/cli/commands/globals/getGlobalSchema.d.ts.map +1 -0
  429. package/dist/cli/commands/globals/getGlobalSchema.js +46 -0
  430. package/dist/cli/commands/globals/getGlobalSchema.js.map +1 -0
  431. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts +2 -0
  432. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts.map +1 -0
  433. package/dist/cli/commands/globals/restoreGlobalVersion.js +46 -0
  434. package/dist/cli/commands/globals/restoreGlobalVersion.js.map +1 -0
  435. package/dist/cli/commands/globals/updateGlobal.d.ts +2 -0
  436. package/dist/cli/commands/globals/updateGlobal.d.ts.map +1 -0
  437. package/dist/cli/commands/globals/updateGlobal.js +95 -0
  438. package/dist/cli/commands/globals/updateGlobal.js.map +1 -0
  439. package/dist/cli/commands/help.d.ts +2 -0
  440. package/dist/cli/commands/help.d.ts.map +1 -0
  441. package/dist/cli/commands/help.js +42 -0
  442. package/dist/cli/commands/help.js.map +1 -0
  443. package/dist/cli/commands/info.d.ts +2 -0
  444. package/dist/cli/commands/info.d.ts.map +1 -0
  445. package/dist/cli/commands/info.js +78 -0
  446. package/dist/cli/commands/info.js.map +1 -0
  447. package/dist/cli/commands/jobs/handleSchedules.d.ts +2 -0
  448. package/dist/cli/commands/jobs/handleSchedules.d.ts.map +1 -0
  449. package/dist/cli/commands/jobs/handleSchedules.js +17 -0
  450. package/dist/cli/commands/jobs/handleSchedules.js.map +1 -0
  451. package/dist/cli/commands/jobs/run.d.ts +2 -0
  452. package/dist/cli/commands/jobs/run.d.ts.map +1 -0
  453. package/dist/cli/commands/jobs/run.js +30 -0
  454. package/dist/cli/commands/jobs/run.js.map +1 -0
  455. package/dist/cli/commands/migrate/create.d.ts +2 -0
  456. package/dist/cli/commands/migrate/create.d.ts.map +1 -0
  457. package/dist/cli/commands/migrate/create.js +44 -0
  458. package/dist/cli/commands/migrate/create.js.map +1 -0
  459. package/dist/cli/commands/migrate/down.d.ts +2 -0
  460. package/dist/cli/commands/migrate/down.d.ts.map +1 -0
  461. package/dist/cli/commands/migrate/down.js +22 -0
  462. package/dist/cli/commands/migrate/down.js.map +1 -0
  463. package/dist/cli/commands/migrate/fresh.d.ts +2 -0
  464. package/dist/cli/commands/migrate/fresh.d.ts.map +1 -0
  465. package/dist/cli/commands/migrate/fresh.js +28 -0
  466. package/dist/cli/commands/migrate/fresh.js.map +1 -0
  467. package/dist/cli/commands/migrate/initialize.d.ts +11 -0
  468. package/dist/cli/commands/migrate/initialize.d.ts.map +1 -0
  469. package/dist/cli/commands/migrate/initialize.js +17 -0
  470. package/dist/cli/commands/migrate/initialize.js.map +1 -0
  471. package/dist/cli/commands/migrate/refresh.d.ts +2 -0
  472. package/dist/cli/commands/migrate/refresh.d.ts.map +1 -0
  473. package/dist/cli/commands/migrate/refresh.js +22 -0
  474. package/dist/cli/commands/migrate/refresh.js.map +1 -0
  475. package/dist/cli/commands/migrate/reset.d.ts +2 -0
  476. package/dist/cli/commands/migrate/reset.d.ts.map +1 -0
  477. package/dist/cli/commands/migrate/reset.js +22 -0
  478. package/dist/cli/commands/migrate/reset.js.map +1 -0
  479. package/dist/cli/commands/migrate/run.d.ts +2 -0
  480. package/dist/cli/commands/migrate/run.d.ts.map +1 -0
  481. package/dist/cli/commands/migrate/run.js +28 -0
  482. package/dist/cli/commands/migrate/run.js.map +1 -0
  483. package/dist/cli/commands/migrate/status.d.ts +2 -0
  484. package/dist/cli/commands/migrate/status.d.ts.map +1 -0
  485. package/dist/cli/commands/migrate/status.js +22 -0
  486. package/dist/cli/commands/migrate/status.js.map +1 -0
  487. package/dist/cli/commands/run.d.ts +2 -0
  488. package/dist/cli/commands/run.d.ts.map +1 -0
  489. package/dist/cli/commands/run.js +45 -0
  490. package/dist/cli/commands/run.js.map +1 -0
  491. package/dist/cli/defineCLICommand.d.ts +32 -0
  492. package/dist/cli/defineCLICommand.d.ts.map +1 -0
  493. package/dist/cli/defineCLICommand.js +26 -0
  494. package/dist/cli/defineCLICommand.js.map +1 -0
  495. package/dist/cli/index.d.ts +7 -0
  496. package/dist/cli/index.d.ts.map +1 -0
  497. package/dist/cli/index.js +95 -0
  498. package/dist/cli/index.js.map +1 -0
  499. package/dist/cli/program/createHelp.d.ts +8 -0
  500. package/dist/cli/program/createHelp.d.ts.map +1 -0
  501. package/dist/cli/program/createHelp.js +26 -0
  502. package/dist/cli/program/createHelp.js.map +1 -0
  503. package/dist/cli/program/loadCommands.d.ts +12 -0
  504. package/dist/cli/program/loadCommands.d.ts.map +1 -0
  505. package/dist/cli/program/loadCommands.js +62 -0
  506. package/dist/cli/program/loadCommands.js.map +1 -0
  507. package/dist/cli/program/normalizeHelpArguments.d.ts +12 -0
  508. package/dist/cli/program/normalizeHelpArguments.d.ts.map +1 -0
  509. package/dist/cli/program/normalizeHelpArguments.js +34 -0
  510. package/dist/cli/program/normalizeHelpArguments.js.map +1 -0
  511. package/dist/cli/program/registerCommand.d.ts +10 -0
  512. package/dist/cli/program/registerCommand.d.ts.map +1 -0
  513. package/dist/cli/program/registerCommand.js +185 -0
  514. package/dist/cli/program/registerCommand.js.map +1 -0
  515. package/dist/cli/runtime/createRuntime.d.ts +9 -0
  516. package/dist/cli/runtime/createRuntime.d.ts.map +1 -0
  517. package/dist/cli/runtime/createRuntime.js +81 -0
  518. package/dist/cli/runtime/createRuntime.js.map +1 -0
  519. package/dist/cli/runtime/getCommandInput.d.ts +17 -0
  520. package/dist/cli/runtime/getCommandInput.d.ts.map +1 -0
  521. package/dist/cli/runtime/getCommandInput.js +86 -0
  522. package/dist/cli/runtime/getCommandInput.js.map +1 -0
  523. package/dist/cli/runtime/invokeCommand.d.ts +23 -0
  524. package/dist/cli/runtime/invokeCommand.d.ts.map +1 -0
  525. package/dist/cli/runtime/invokeCommand.js +107 -0
  526. package/dist/cli/runtime/invokeCommand.js.map +1 -0
  527. package/dist/cli/runtime/loadEnv.d.ts.map +1 -0
  528. package/dist/{bin → cli/runtime}/loadEnv.js +1 -1
  529. package/dist/cli/runtime/loadEnv.js.map +1 -0
  530. package/dist/cli/runtime/output.d.ts +50 -0
  531. package/dist/cli/runtime/output.d.ts.map +1 -0
  532. package/dist/cli/runtime/output.js +125 -0
  533. package/dist/cli/runtime/output.js.map +1 -0
  534. package/dist/cli/runtime/redirectOutputToStderr.d.ts +8 -0
  535. package/dist/cli/runtime/redirectOutputToStderr.d.ts.map +1 -0
  536. package/dist/cli/runtime/redirectOutputToStderr.js +31 -0
  537. package/dist/cli/runtime/redirectOutputToStderr.js.map +1 -0
  538. package/dist/collections/config/client.d.ts +6 -6
  539. package/dist/collections/config/client.d.ts.map +1 -1
  540. package/dist/collections/config/client.js +12 -11
  541. package/dist/collections/config/client.js.map +1 -1
  542. package/dist/collections/config/defaults.d.ts +6 -4
  543. package/dist/collections/config/defaults.d.ts.map +1 -1
  544. package/dist/collections/config/defaults.js +49 -33
  545. package/dist/collections/config/defaults.js.map +1 -1
  546. package/dist/collections/config/sanitize.d.ts +4 -8
  547. package/dist/collections/config/sanitize.d.ts.map +1 -1
  548. package/dist/collections/config/sanitize.js +100 -28
  549. package/dist/collections/config/sanitize.js.map +1 -1
  550. package/dist/collections/config/types.d.ts +76 -51
  551. package/dist/collections/config/types.d.ts.map +1 -1
  552. package/dist/collections/config/types.js.map +1 -1
  553. package/dist/collections/config/useAsThumbnail.d.ts +6 -0
  554. package/dist/collections/config/useAsThumbnail.d.ts.map +1 -0
  555. package/dist/collections/config/useAsThumbnail.js +21 -0
  556. package/dist/collections/config/useAsThumbnail.js.map +1 -0
  557. package/dist/collections/endpoints/index.d.ts +1 -0
  558. package/dist/collections/endpoints/index.d.ts.map +1 -1
  559. package/dist/collections/endpoints/index.js +6 -5
  560. package/dist/collections/endpoints/index.js.map +1 -1
  561. package/dist/collections/operations/count.d.ts.map +1 -1
  562. package/dist/collections/operations/count.js +65 -70
  563. package/dist/collections/operations/count.js.map +1 -1
  564. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  565. package/dist/collections/operations/countVersions.js +61 -66
  566. package/dist/collections/operations/countVersions.js.map +1 -1
  567. package/dist/collections/operations/create.d.ts.map +1 -1
  568. package/dist/collections/operations/create.js +144 -13
  569. package/dist/collections/operations/create.js.map +1 -1
  570. package/dist/collections/operations/delete.d.ts.map +1 -1
  571. package/dist/collections/operations/delete.js +215 -129
  572. package/dist/collections/operations/delete.js.map +1 -1
  573. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  574. package/dist/collections/operations/deleteByID.js +14 -13
  575. package/dist/collections/operations/deleteByID.js.map +1 -1
  576. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  577. package/dist/collections/operations/docAccess.js +19 -25
  578. package/dist/collections/operations/docAccess.js.map +1 -1
  579. package/dist/collections/operations/find.d.ts.map +1 -1
  580. package/dist/collections/operations/find.js +248 -246
  581. package/dist/collections/operations/find.js.map +1 -1
  582. package/dist/collections/operations/findByID.d.ts.map +1 -1
  583. package/dist/collections/operations/findByID.js +258 -215
  584. package/dist/collections/operations/findByID.js.map +1 -1
  585. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  586. package/dist/collections/operations/findDistinct.js +235 -154
  587. package/dist/collections/operations/findDistinct.js.map +1 -1
  588. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  589. package/dist/collections/operations/findVersionByID.js +145 -128
  590. package/dist/collections/operations/findVersionByID.js.map +1 -1
  591. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  592. package/dist/collections/operations/findVersions.js +152 -149
  593. package/dist/collections/operations/findVersions.js.map +1 -1
  594. package/dist/collections/operations/inputSchemas.d.ts +877 -0
  595. package/dist/collections/operations/inputSchemas.d.ts.map +1 -0
  596. package/dist/collections/operations/inputSchemas.js +217 -0
  597. package/dist/collections/operations/inputSchemas.js.map +1 -0
  598. package/dist/collections/operations/local/count.d.ts +2 -7
  599. package/dist/collections/operations/local/count.d.ts.map +1 -1
  600. package/dist/collections/operations/local/count.js +6 -3
  601. package/dist/collections/operations/local/count.js.map +1 -1
  602. package/dist/collections/operations/local/countVersions.d.ts +2 -7
  603. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  604. package/dist/collections/operations/local/countVersions.js +6 -3
  605. package/dist/collections/operations/local/countVersions.js.map +1 -1
  606. package/dist/collections/operations/local/create.d.ts +2 -7
  607. package/dist/collections/operations/local/create.d.ts.map +1 -1
  608. package/dist/collections/operations/local/create.js +6 -3
  609. package/dist/collections/operations/local/create.js.map +1 -1
  610. package/dist/collections/operations/local/delete.d.ts +2 -7
  611. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  612. package/dist/collections/operations/local/delete.js +6 -3
  613. package/dist/collections/operations/local/delete.js.map +1 -1
  614. package/dist/collections/operations/local/duplicate.d.ts +2 -7
  615. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  616. package/dist/collections/operations/local/duplicate.js +6 -3
  617. package/dist/collections/operations/local/duplicate.js.map +1 -1
  618. package/dist/collections/operations/local/find.d.ts +2 -7
  619. package/dist/collections/operations/local/find.d.ts.map +1 -1
  620. package/dist/collections/operations/local/find.js +6 -3
  621. package/dist/collections/operations/local/find.js.map +1 -1
  622. package/dist/collections/operations/local/findByID.d.ts +2 -7
  623. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  624. package/dist/collections/operations/local/findByID.js +6 -3
  625. package/dist/collections/operations/local/findByID.js.map +1 -1
  626. package/dist/collections/operations/local/findDistinct.d.ts +2 -7
  627. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  628. package/dist/collections/operations/local/findDistinct.js +6 -3
  629. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  630. package/dist/collections/operations/local/findVersionByID.d.ts +2 -7
  631. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  632. package/dist/collections/operations/local/findVersionByID.js +6 -3
  633. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  634. package/dist/collections/operations/local/findVersions.d.ts +2 -7
  635. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  636. package/dist/collections/operations/local/findVersions.js +6 -3
  637. package/dist/collections/operations/local/findVersions.js.map +1 -1
  638. package/dist/collections/operations/local/restoreVersion.d.ts +2 -7
  639. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  640. package/dist/collections/operations/local/restoreVersion.js +6 -3
  641. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  642. package/dist/collections/operations/local/update.d.ts +2 -7
  643. package/dist/collections/operations/local/update.d.ts.map +1 -1
  644. package/dist/collections/operations/local/update.js +6 -3
  645. package/dist/collections/operations/local/update.js.map +1 -1
  646. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  647. package/dist/collections/operations/restoreVersion.js +48 -13
  648. package/dist/collections/operations/restoreVersion.js.map +1 -1
  649. package/dist/collections/operations/update.d.ts.map +1 -1
  650. package/dist/collections/operations/update.js +148 -24
  651. package/dist/collections/operations/update.js.map +1 -1
  652. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  653. package/dist/collections/operations/updateByID.js +80 -2
  654. package/dist/collections/operations/updateByID.js.map +1 -1
  655. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.d.ts +15 -0
  656. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.d.ts.map +1 -0
  657. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.js +54 -0
  658. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.js.map +1 -0
  659. package/dist/collections/operations/utilities/update.d.ts +2 -2
  660. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  661. package/dist/collections/operations/utilities/update.js +83 -19
  662. package/dist/collections/operations/utilities/update.js.map +1 -1
  663. package/dist/config/assertNoLegacySharpConfig.d.ts +21 -0
  664. package/dist/config/assertNoLegacySharpConfig.d.ts.map +1 -0
  665. package/dist/config/assertNoLegacySharpConfig.js +50 -0
  666. package/dist/config/assertNoLegacySharpConfig.js.map +1 -0
  667. package/dist/config/build.d.ts.map +1 -1
  668. package/dist/config/build.js +22 -1
  669. package/dist/config/build.js.map +1 -1
  670. package/dist/config/client.d.ts +2 -2
  671. package/dist/config/client.d.ts.map +1 -1
  672. package/dist/config/client.js +5 -6
  673. package/dist/config/client.js.map +1 -1
  674. package/dist/config/defaults.d.ts.map +1 -1
  675. package/dist/config/defaults.js +98 -43
  676. package/dist/config/defaults.js.map +1 -1
  677. package/dist/config/orderable/index.d.ts +1 -1
  678. package/dist/config/orderable/index.d.ts.map +1 -1
  679. package/dist/config/orderable/index.js +73 -16
  680. package/dist/config/orderable/index.js.map +1 -1
  681. package/dist/config/orderable/utils/getJoinScopeContext.d.ts.map +1 -1
  682. package/dist/config/orderable/utils/getJoinScopeContext.js +1 -0
  683. package/dist/config/orderable/utils/getJoinScopeContext.js.map +1 -1
  684. package/dist/config/orderable/utils/resolvePendingTargetKey.d.ts.map +1 -1
  685. package/dist/config/orderable/utils/resolvePendingTargetKey.js +1 -0
  686. package/dist/config/orderable/utils/resolvePendingTargetKey.js.map +1 -1
  687. package/dist/config/sanitize.d.ts +1 -1
  688. package/dist/config/sanitize.d.ts.map +1 -1
  689. package/dist/config/sanitize.js +98 -38
  690. package/dist/config/sanitize.js.map +1 -1
  691. package/dist/config/types.d.ts +527 -441
  692. package/dist/config/types.d.ts.map +1 -1
  693. package/dist/config/types.js.map +1 -1
  694. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  695. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  696. package/dist/database/createDatabaseAdapter.js +4 -2
  697. package/dist/database/createDatabaseAdapter.js.map +1 -1
  698. package/dist/database/createSchemaBuildContext.d.ts +12 -0
  699. package/dist/database/createSchemaBuildContext.d.ts.map +1 -0
  700. package/dist/database/createSchemaBuildContext.js +24 -0
  701. package/dist/database/createSchemaBuildContext.js.map +1 -0
  702. package/dist/database/defaultBatchProcessing.d.ts +3 -0
  703. package/dist/database/defaultBatchProcessing.d.ts.map +1 -0
  704. package/dist/database/defaultBatchProcessing.js +93 -0
  705. package/dist/database/defaultBatchProcessing.js.map +1 -0
  706. package/dist/database/defaultCopy.d.ts +3 -0
  707. package/dist/database/defaultCopy.d.ts.map +1 -0
  708. package/dist/database/defaultCopy.js +73 -0
  709. package/dist/database/defaultCopy.js.map +1 -0
  710. package/dist/database/getLocalizedPaths.d.ts +2 -1
  711. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  712. package/dist/database/getLocalizedPaths.js +12 -3
  713. package/dist/database/getLocalizedPaths.js.map +1 -1
  714. package/dist/database/isNestedRelationshipQuery.d.ts +14 -0
  715. package/dist/database/isNestedRelationshipQuery.d.ts.map +1 -0
  716. package/dist/database/isNestedRelationshipQuery.js +19 -0
  717. package/dist/database/isNestedRelationshipQuery.js.map +1 -0
  718. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  719. package/dist/database/migrations/createMigration.js +4 -0
  720. package/dist/database/migrations/createMigration.js.map +1 -1
  721. package/dist/database/migrations/getMigrations.d.ts.map +1 -1
  722. package/dist/database/migrations/getMigrations.js +1 -0
  723. package/dist/database/migrations/getMigrations.js.map +1 -1
  724. package/dist/database/migrations/getPredefinedMigration.js +2 -2
  725. package/dist/database/migrations/getPredefinedMigration.js.map +1 -1
  726. package/dist/database/migrations/migrate.d.ts.map +1 -1
  727. package/dist/database/migrations/migrate.js +14 -2
  728. package/dist/database/migrations/migrate.js.map +1 -1
  729. package/dist/database/migrations/migrateDown.d.ts +2 -2
  730. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  731. package/dist/database/migrations/migrateDown.js +17 -4
  732. package/dist/database/migrations/migrateDown.js.map +1 -1
  733. package/dist/database/migrations/migrateRefresh.d.ts +2 -2
  734. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  735. package/dist/database/migrations/migrateRefresh.js +16 -4
  736. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  737. package/dist/database/migrations/migrateReset.d.ts +2 -2
  738. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  739. package/dist/database/migrations/migrateReset.js +17 -3
  740. package/dist/database/migrations/migrateReset.js.map +1 -1
  741. package/dist/database/migrations/migrateStatus.d.ts +2 -2
  742. package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
  743. package/dist/database/migrations/migrateStatus.js +11 -6
  744. package/dist/database/migrations/migrateStatus.js.map +1 -1
  745. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  746. package/dist/database/migrations/migrationsCollection.js +1 -0
  747. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  748. package/dist/database/prefixWherePaths.d.ts +6 -0
  749. package/dist/database/prefixWherePaths.d.ts.map +1 -0
  750. package/dist/database/prefixWherePaths.js +19 -0
  751. package/dist/database/prefixWherePaths.js.map +1 -0
  752. package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -1
  753. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  754. package/dist/database/queryValidation/validateQueryPaths.js +12 -2
  755. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  756. package/dist/database/queryValidation/validateSearchParams.d.ts +2 -1
  757. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  758. package/dist/database/queryValidation/validateSearchParams.js +88 -7
  759. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  760. package/dist/database/queryValidation/validateSortQuery.d.ts +23 -0
  761. package/dist/database/queryValidation/validateSortQuery.d.ts.map +1 -0
  762. package/dist/database/queryValidation/validateSortQuery.js +54 -0
  763. package/dist/database/queryValidation/validateSortQuery.js.map +1 -0
  764. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  765. package/dist/database/sanitizeJoinQuery.js +9 -1
  766. package/dist/database/sanitizeJoinQuery.js.map +1 -1
  767. package/dist/database/sanitizeWhereQuery.d.ts +1 -1
  768. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  769. package/dist/database/sanitizeWhereQuery.js +44 -1
  770. package/dist/database/sanitizeWhereQuery.js.map +1 -1
  771. package/dist/database/types.d.ts +94 -8
  772. package/dist/database/types.d.ts.map +1 -1
  773. package/dist/database/types.js.map +1 -1
  774. package/dist/duplicateDocument/index.js +1 -0
  775. package/dist/duplicateDocument/index.js.map +1 -1
  776. package/dist/errors/APIError.d.ts +4 -0
  777. package/dist/errors/APIError.d.ts.map +1 -1
  778. package/dist/errors/APIError.js +5 -1
  779. package/dist/errors/APIError.js.map +1 -1
  780. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  781. package/dist/errors/AuthenticationError.js +1 -0
  782. package/dist/errors/AuthenticationError.js.map +1 -1
  783. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  784. package/dist/errors/DuplicateCollection.js +1 -0
  785. package/dist/errors/DuplicateCollection.js.map +1 -1
  786. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  787. package/dist/errors/DuplicateFieldName.js +1 -0
  788. package/dist/errors/DuplicateFieldName.js.map +1 -1
  789. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  790. package/dist/errors/DuplicateGlobal.js +1 -0
  791. package/dist/errors/DuplicateGlobal.js.map +1 -1
  792. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  793. package/dist/errors/ErrorDeletingFile.js +1 -0
  794. package/dist/errors/ErrorDeletingFile.js.map +1 -1
  795. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  796. package/dist/errors/FileRetrievalError.js +1 -0
  797. package/dist/errors/FileRetrievalError.js.map +1 -1
  798. package/dist/errors/FileUploadError.d.ts.map +1 -1
  799. package/dist/errors/FileUploadError.js +1 -0
  800. package/dist/errors/FileUploadError.js.map +1 -1
  801. package/dist/errors/Forbidden.d.ts.map +1 -1
  802. package/dist/errors/Forbidden.js +1 -0
  803. package/dist/errors/Forbidden.js.map +1 -1
  804. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  805. package/dist/errors/InvalidConfiguration.js +1 -0
  806. package/dist/errors/InvalidConfiguration.js.map +1 -1
  807. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  808. package/dist/errors/InvalidFieldJoin.js +1 -0
  809. package/dist/errors/InvalidFieldJoin.js.map +1 -1
  810. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  811. package/dist/errors/InvalidFieldName.js +1 -0
  812. package/dist/errors/InvalidFieldName.js.map +1 -1
  813. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  814. package/dist/errors/InvalidFieldRelationship.js +1 -0
  815. package/dist/errors/InvalidFieldRelationship.js.map +1 -1
  816. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  817. package/dist/errors/InvalidSchema.js +1 -0
  818. package/dist/errors/InvalidSchema.js.map +1 -1
  819. package/dist/errors/Locked.d.ts.map +1 -1
  820. package/dist/errors/Locked.js +1 -0
  821. package/dist/errors/Locked.js.map +1 -1
  822. package/dist/errors/LockedAuth.d.ts.map +1 -1
  823. package/dist/errors/LockedAuth.js +1 -0
  824. package/dist/errors/LockedAuth.js.map +1 -1
  825. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  826. package/dist/errors/MissingCollectionLabel.js +1 -0
  827. package/dist/errors/MissingCollectionLabel.js.map +1 -1
  828. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  829. package/dist/errors/MissingEditorProp.js +1 -0
  830. package/dist/errors/MissingEditorProp.js.map +1 -1
  831. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  832. package/dist/errors/MissingFieldInputOptions.js +1 -0
  833. package/dist/errors/MissingFieldInputOptions.js.map +1 -1
  834. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  835. package/dist/errors/MissingFieldType.js +1 -0
  836. package/dist/errors/MissingFieldType.js.map +1 -1
  837. package/dist/errors/MissingFile.d.ts.map +1 -1
  838. package/dist/errors/MissingFile.js +1 -0
  839. package/dist/errors/MissingFile.js.map +1 -1
  840. package/dist/errors/NotFound.d.ts.map +1 -1
  841. package/dist/errors/NotFound.js +1 -0
  842. package/dist/errors/NotFound.js.map +1 -1
  843. package/dist/errors/QueryError.d.ts.map +1 -1
  844. package/dist/errors/QueryError.js +1 -0
  845. package/dist/errors/QueryError.js.map +1 -1
  846. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  847. package/dist/errors/ReservedFieldName.js +1 -0
  848. package/dist/errors/ReservedFieldName.js.map +1 -1
  849. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  850. package/dist/errors/TimestampsRequired.js +1 -0
  851. package/dist/errors/TimestampsRequired.js.map +1 -1
  852. package/dist/errors/TransformerContractError.d.ts +11 -0
  853. package/dist/errors/TransformerContractError.d.ts.map +1 -0
  854. package/dist/errors/TransformerContractError.js +15 -0
  855. package/dist/errors/TransformerContractError.js.map +1 -0
  856. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  857. package/dist/errors/UnauthorizedError.js +1 -0
  858. package/dist/errors/UnauthorizedError.js.map +1 -1
  859. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  860. package/dist/errors/UnverifiedEmail.js +1 -0
  861. package/dist/errors/UnverifiedEmail.js.map +1 -1
  862. package/dist/errors/ValidationError.d.ts.map +1 -1
  863. package/dist/errors/ValidationError.js +1 -0
  864. package/dist/errors/ValidationError.js.map +1 -1
  865. package/dist/errors/index.d.ts +1 -0
  866. package/dist/errors/index.d.ts.map +1 -1
  867. package/dist/errors/index.js +1 -0
  868. package/dist/errors/index.js.map +1 -1
  869. package/dist/exports/auth.d.ts +5 -0
  870. package/dist/exports/auth.d.ts.map +1 -0
  871. package/dist/exports/auth.js +6 -0
  872. package/dist/exports/auth.js.map +1 -0
  873. package/dist/exports/cli.d.ts +4 -0
  874. package/dist/exports/cli.d.ts.map +1 -0
  875. package/dist/exports/cli.js +4 -0
  876. package/dist/exports/cli.js.map +1 -0
  877. package/dist/exports/cliBuiltin.d.ts +37 -0
  878. package/dist/exports/cliBuiltin.d.ts.map +1 -0
  879. package/dist/exports/cliBuiltin.js +38 -0
  880. package/dist/exports/cliBuiltin.js.map +1 -0
  881. package/dist/exports/internal.d.ts +20 -1
  882. package/dist/exports/internal.d.ts.map +1 -1
  883. package/dist/exports/internal.js +17 -1
  884. package/dist/exports/internal.js.map +1 -1
  885. package/dist/exports/node.d.ts +2 -2
  886. package/dist/exports/node.d.ts.map +1 -1
  887. package/dist/exports/node.js +2 -2
  888. package/dist/exports/node.js.map +1 -1
  889. package/dist/exports/shared.d.ts +11 -4
  890. package/dist/exports/shared.d.ts.map +1 -1
  891. package/dist/exports/shared.js +10 -4
  892. package/dist/exports/shared.js.map +1 -1
  893. package/dist/fields/baseFields/authorship/index.d.ts +30 -0
  894. package/dist/fields/baseFields/authorship/index.d.ts.map +1 -0
  895. package/dist/fields/baseFields/authorship/index.js +151 -0
  896. package/dist/fields/baseFields/authorship/index.js.map +1 -0
  897. package/dist/fields/baseFields/authorship/types.d.ts +28 -0
  898. package/dist/fields/baseFields/authorship/types.d.ts.map +1 -0
  899. package/dist/fields/baseFields/authorship/types.js +10 -0
  900. package/dist/fields/baseFields/authorship/types.js.map +1 -0
  901. package/dist/fields/baseFields/slug/duplicateContext.d.ts +11 -0
  902. package/dist/fields/baseFields/slug/duplicateContext.d.ts.map +1 -0
  903. package/dist/fields/baseFields/slug/duplicateContext.js +21 -0
  904. package/dist/fields/baseFields/slug/duplicateContext.js.map +1 -0
  905. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts +23 -0
  906. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts.map +1 -0
  907. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js +65 -0
  908. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js.map +1 -0
  909. package/dist/fields/baseFields/slug/generateSlug.d.ts +13 -8
  910. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  911. package/dist/fields/baseFields/slug/generateSlug.js +102 -45
  912. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  913. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts +18 -0
  914. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts.map +1 -0
  915. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js +20 -0
  916. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js.map +1 -0
  917. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts +23 -0
  918. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts.map +1 -0
  919. package/dist/fields/baseFields/slug/getSlugFallbackValue.js +24 -0
  920. package/dist/fields/baseFields/slug/getSlugFallbackValue.js.map +1 -0
  921. package/dist/fields/baseFields/slug/hasValue.d.ts +3 -0
  922. package/dist/fields/baseFields/slug/hasValue.d.ts.map +1 -0
  923. package/dist/fields/baseFields/slug/hasValue.js +3 -0
  924. package/dist/fields/baseFields/slug/hasValue.js.map +1 -0
  925. package/dist/fields/config/client.d.ts +1 -1
  926. package/dist/fields/config/client.d.ts.map +1 -1
  927. package/dist/fields/config/client.js +1 -1
  928. package/dist/fields/config/client.js.map +1 -1
  929. package/dist/fields/config/reservedFieldNames.js.map +1 -1
  930. package/dist/fields/config/sanitize.d.ts +6 -6
  931. package/dist/fields/config/sanitize.d.ts.map +1 -1
  932. package/dist/fields/config/sanitize.js +32 -22
  933. package/dist/fields/config/sanitize.js.map +1 -1
  934. package/dist/fields/config/types.d.ts +53 -50
  935. package/dist/fields/config/types.d.ts.map +1 -1
  936. package/dist/fields/config/types.js +1 -1
  937. package/dist/fields/config/types.js.map +1 -1
  938. package/dist/fields/hooks/beforeChange/index.d.ts +7 -1
  939. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  940. package/dist/fields/hooks/beforeChange/index.js +4 -2
  941. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  942. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
  943. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  944. package/dist/fields/hooks/beforeChange/promise.js +52 -9
  945. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  946. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
  947. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  948. package/dist/fields/hooks/beforeChange/traverseFields.js +3 -2
  949. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  950. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  951. package/dist/fields/hooks/beforeDuplicate/promise.js +4 -0
  952. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  953. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts +2 -1
  954. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts.map +1 -1
  955. package/dist/fields/hooks/beforeValidate/getFallbackValue.js +2 -2
  956. package/dist/fields/hooks/beforeValidate/getFallbackValue.js.map +1 -1
  957. package/dist/fields/hooks/beforeValidate/index.d.ts +6 -1
  958. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  959. package/dist/fields/hooks/beforeValidate/index.js +3 -1
  960. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  961. package/dist/fields/hooks/beforeValidate/promise.d.ts +6 -1
  962. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  963. package/dist/fields/hooks/beforeValidate/promise.js +29 -12
  964. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  965. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts +10 -0
  966. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts.map +1 -0
  967. package/dist/fields/hooks/beforeValidate/stripNullRows.js +18 -0
  968. package/dist/fields/hooks/beforeValidate/stripNullRows.js.map +1 -0
  969. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +6 -1
  970. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  971. package/dist/fields/hooks/beforeValidate/traverseFields.js +5 -1
  972. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  973. package/dist/fields/validations.d.ts.map +1 -1
  974. package/dist/fields/validations.js +17 -15
  975. package/dist/fields/validations.js.map +1 -1
  976. package/dist/globals/config/client.d.ts +2 -2
  977. package/dist/globals/config/client.d.ts.map +1 -1
  978. package/dist/globals/config/client.js +1 -0
  979. package/dist/globals/config/client.js.map +1 -1
  980. package/dist/globals/config/sanitize.d.ts +3 -7
  981. package/dist/globals/config/sanitize.d.ts.map +1 -1
  982. package/dist/globals/config/sanitize.js +78 -9
  983. package/dist/globals/config/sanitize.js.map +1 -1
  984. package/dist/globals/config/types.d.ts +35 -16
  985. package/dist/globals/config/types.d.ts.map +1 -1
  986. package/dist/globals/config/types.js.map +1 -1
  987. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  988. package/dist/globals/operations/countGlobalVersions.js +57 -55
  989. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  990. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  991. package/dist/globals/operations/docAccess.js +19 -25
  992. package/dist/globals/operations/docAccess.js.map +1 -1
  993. package/dist/globals/operations/findOne.d.ts.map +1 -1
  994. package/dist/globals/operations/findOne.js +169 -174
  995. package/dist/globals/operations/findOne.js.map +1 -1
  996. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  997. package/dist/globals/operations/findVersionByID.js +112 -108
  998. package/dist/globals/operations/findVersionByID.js.map +1 -1
  999. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  1000. package/dist/globals/operations/findVersions.js +118 -109
  1001. package/dist/globals/operations/findVersions.js.map +1 -1
  1002. package/dist/globals/operations/inputSchemas.d.ts +365 -0
  1003. package/dist/globals/operations/inputSchemas.d.ts.map +1 -0
  1004. package/dist/globals/operations/inputSchemas.js +104 -0
  1005. package/dist/globals/operations/inputSchemas.js.map +1 -0
  1006. package/dist/globals/operations/local/countVersions.d.ts +2 -7
  1007. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  1008. package/dist/globals/operations/local/countVersions.js +6 -3
  1009. package/dist/globals/operations/local/countVersions.js.map +1 -1
  1010. package/dist/globals/operations/local/findOne.d.ts +2 -7
  1011. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  1012. package/dist/globals/operations/local/findOne.js +6 -3
  1013. package/dist/globals/operations/local/findOne.js.map +1 -1
  1014. package/dist/globals/operations/local/findVersionByID.d.ts +2 -7
  1015. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  1016. package/dist/globals/operations/local/findVersionByID.js +6 -3
  1017. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  1018. package/dist/globals/operations/local/findVersions.d.ts +2 -7
  1019. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  1020. package/dist/globals/operations/local/findVersions.js +6 -3
  1021. package/dist/globals/operations/local/findVersions.js.map +1 -1
  1022. package/dist/globals/operations/local/restoreVersion.d.ts +2 -7
  1023. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  1024. package/dist/globals/operations/local/restoreVersion.js +6 -3
  1025. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  1026. package/dist/globals/operations/local/update.d.ts +2 -7
  1027. package/dist/globals/operations/local/update.d.ts.map +1 -1
  1028. package/dist/globals/operations/local/update.js +6 -3
  1029. package/dist/globals/operations/local/update.js.map +1 -1
  1030. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  1031. package/dist/globals/operations/restoreVersion.js +60 -14
  1032. package/dist/globals/operations/restoreVersion.js.map +1 -1
  1033. package/dist/globals/operations/update.d.ts.map +1 -1
  1034. package/dist/globals/operations/update.js +106 -19
  1035. package/dist/globals/operations/update.js.map +1 -1
  1036. package/dist/hierarchy/addHierarchyToCollection.js +2 -0
  1037. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  1038. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  1039. package/dist/hierarchy/hooks/collectionAfterDelete.js +1 -0
  1040. package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -1
  1041. package/dist/hierarchy/hooks/collectionBeforeChange.js +1 -0
  1042. package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -1
  1043. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  1044. package/dist/hierarchy/hooks/collectionBeforeDelete.js +1 -0
  1045. package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -1
  1046. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  1047. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js +71 -33
  1048. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js.map +1 -1
  1049. package/dist/hierarchy/resolveHierarchyCollections.js +29 -20
  1050. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  1051. package/dist/index.bundled.d.ts +3223 -1384
  1052. package/dist/index.d.ts +117 -56
  1053. package/dist/index.d.ts.map +1 -1
  1054. package/dist/index.js +90 -70
  1055. package/dist/index.js.map +1 -1
  1056. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  1057. package/dist/kv/adapters/DatabaseKVAdapter.js +2 -1
  1058. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  1059. package/dist/llm-instructions/addLLMInstructions.d.ts +5 -0
  1060. package/dist/llm-instructions/addLLMInstructions.d.ts.map +1 -0
  1061. package/dist/llm-instructions/addLLMInstructions.js +31 -0
  1062. package/dist/llm-instructions/addLLMInstructions.js.map +1 -0
  1063. package/dist/llm-instructions/getInstructionTargetAccess.d.ts +8 -0
  1064. package/dist/llm-instructions/getInstructionTargetAccess.d.ts.map +1 -0
  1065. package/dist/llm-instructions/getInstructionTargetAccess.js +40 -0
  1066. package/dist/llm-instructions/getInstructionTargetAccess.js.map +1 -0
  1067. package/dist/llm-instructions/getInstructions.d.ts +8 -0
  1068. package/dist/llm-instructions/getInstructions.d.ts.map +1 -0
  1069. package/dist/llm-instructions/getInstructions.js +46 -0
  1070. package/dist/llm-instructions/getInstructions.js.map +1 -0
  1071. package/dist/llm-instructions/getInstructionsCollection.d.ts +6 -0
  1072. package/dist/llm-instructions/getInstructionsCollection.d.ts.map +1 -0
  1073. package/dist/llm-instructions/getInstructionsCollection.js +367 -0
  1074. package/dist/llm-instructions/getInstructionsCollection.js.map +1 -0
  1075. package/dist/llm-instructions/shared.d.ts +11 -0
  1076. package/dist/llm-instructions/shared.d.ts.map +1 -0
  1077. package/dist/llm-instructions/shared.js +3 -0
  1078. package/dist/llm-instructions/shared.js.map +1 -0
  1079. package/dist/locked-documents/config.d.ts.map +1 -1
  1080. package/dist/locked-documents/config.js +1 -0
  1081. package/dist/locked-documents/config.js.map +1 -1
  1082. package/dist/preferences/config.d.ts.map +1 -1
  1083. package/dist/preferences/config.js +3 -1
  1084. package/dist/preferences/config.js.map +1 -1
  1085. package/dist/preferences/types.d.ts +2 -0
  1086. package/dist/preferences/types.d.ts.map +1 -1
  1087. package/dist/preferences/types.js.map +1 -1
  1088. package/dist/query-presets/access.d.ts.map +1 -1
  1089. package/dist/query-presets/access.js +2 -1
  1090. package/dist/query-presets/access.js.map +1 -1
  1091. package/dist/query-presets/config.d.ts.map +1 -1
  1092. package/dist/query-presets/config.js +1 -0
  1093. package/dist/query-presets/config.js.map +1 -1
  1094. package/dist/query-presets/constraints.js +1 -1
  1095. package/dist/query-presets/constraints.js.map +1 -1
  1096. package/dist/query-presets/preventLockout.js +6 -3
  1097. package/dist/query-presets/preventLockout.js.map +1 -1
  1098. package/dist/queues/config/collection.d.ts.map +1 -1
  1099. package/dist/queues/config/collection.js +44 -43
  1100. package/dist/queues/config/collection.js.map +1 -1
  1101. package/dist/queues/config/global.d.ts +5 -6
  1102. package/dist/queues/config/global.d.ts.map +1 -1
  1103. package/dist/queues/config/global.js +2 -1
  1104. package/dist/queues/config/global.js.map +1 -1
  1105. package/dist/queues/config/types/index.d.ts +33 -25
  1106. package/dist/queues/config/types/index.d.ts.map +1 -1
  1107. package/dist/queues/config/types/index.js.map +1 -1
  1108. package/dist/queues/config/types/taskTypes.d.ts +4 -7
  1109. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  1110. package/dist/queues/config/types/taskTypes.js.map +1 -1
  1111. package/dist/queues/config/types/workflowJSONTypes.d.ts +10 -9
  1112. package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -1
  1113. package/dist/queues/config/types/workflowJSONTypes.js.map +1 -1
  1114. package/dist/queues/config/types/workflowTypes.d.ts +11 -58
  1115. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
  1116. package/dist/queues/config/types/workflowTypes.js.map +1 -1
  1117. package/dist/queues/endpoints/handleSchedules.d.ts.map +1 -1
  1118. package/dist/queues/endpoints/handleSchedules.js +3 -2
  1119. package/dist/queues/endpoints/handleSchedules.js.map +1 -1
  1120. package/dist/queues/endpoints/run.d.ts.map +1 -1
  1121. package/dist/queues/endpoints/run.js +2 -1
  1122. package/dist/queues/endpoints/run.js.map +1 -1
  1123. package/dist/queues/errors/handleTaskError.js +4 -4
  1124. package/dist/queues/errors/handleTaskError.js.map +1 -1
  1125. package/dist/queues/errors/handleWorkflowError.js +1 -1
  1126. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  1127. package/dist/queues/errors/index.d.ts +6 -0
  1128. package/dist/queues/errors/index.d.ts.map +1 -1
  1129. package/dist/queues/errors/index.js +5 -0
  1130. package/dist/queues/errors/index.js.map +1 -1
  1131. package/dist/queues/localAPI.d.ts +10 -63
  1132. package/dist/queues/localAPI.d.ts.map +1 -1
  1133. package/dist/queues/localAPI.js +87 -78
  1134. package/dist/queues/localAPI.js.map +1 -1
  1135. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts +4 -4
  1136. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts.map +1 -1
  1137. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.js.map +1 -1
  1138. package/dist/queues/operations/handleSchedules/index.d.ts +1 -1
  1139. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  1140. package/dist/queues/operations/handleSchedules/index.js +2 -1
  1141. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  1142. package/dist/queues/operations/runJobs/heartbeat.d.ts +13 -0
  1143. package/dist/queues/operations/runJobs/heartbeat.d.ts.map +1 -0
  1144. package/dist/queues/operations/runJobs/heartbeat.js +66 -0
  1145. package/dist/queues/operations/runJobs/heartbeat.js.map +1 -0
  1146. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  1147. package/dist/queues/operations/runJobs/index.js +133 -84
  1148. package/dist/queues/operations/runJobs/index.js.map +1 -1
  1149. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  1150. package/dist/queues/operations/runJobs/runJSONJob/index.js +6 -3
  1151. package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -1
  1152. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +5 -5
  1153. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  1154. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +2 -1
  1155. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  1156. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +39 -8
  1157. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  1158. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -1
  1159. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  1160. package/dist/queues/operations/runJobs/runJob/index.js +4 -4
  1161. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
  1162. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  1163. package/dist/queues/utilities/updateJob.js +3 -0
  1164. package/dist/queues/utilities/updateJob.js.map +1 -1
  1165. package/dist/types/constants.d.ts +21 -0
  1166. package/dist/types/constants.d.ts.map +1 -1
  1167. package/dist/types/constants.js +23 -0
  1168. package/dist/types/constants.js.map +1 -1
  1169. package/dist/types/index.d.ts +11 -4
  1170. package/dist/types/index.d.ts.map +1 -1
  1171. package/dist/types/index.js.map +1 -1
  1172. package/dist/types/operations.d.ts +9 -0
  1173. package/dist/types/operations.d.ts.map +1 -0
  1174. package/dist/types/operations.js +3 -0
  1175. package/dist/types/operations.js.map +1 -0
  1176. package/dist/uploads/assertClientUploadAccess.d.ts +7 -0
  1177. package/dist/uploads/assertClientUploadAccess.d.ts.map +1 -0
  1178. package/dist/uploads/assertClientUploadAccess.js +29 -0
  1179. package/dist/uploads/assertClientUploadAccess.js.map +1 -0
  1180. package/dist/uploads/assertClientUploadAllowed.d.ts +10 -0
  1181. package/dist/uploads/assertClientUploadAllowed.d.ts.map +1 -0
  1182. package/dist/uploads/assertClientUploadAllowed.js +41 -0
  1183. package/dist/uploads/assertClientUploadAllowed.js.map +1 -0
  1184. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  1185. package/dist/uploads/checkFileAccess.js +6 -18
  1186. package/dist/uploads/checkFileAccess.js.map +1 -1
  1187. package/dist/uploads/checkFileRestrictions.d.ts +11 -1
  1188. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  1189. package/dist/uploads/checkFileRestrictions.js +91 -26
  1190. package/dist/uploads/checkFileRestrictions.js.map +1 -1
  1191. package/dist/uploads/clientUploadReceipt.d.ts +29 -0
  1192. package/dist/uploads/clientUploadReceipt.d.ts.map +1 -0
  1193. package/dist/uploads/clientUploadReceipt.js +76 -0
  1194. package/dist/uploads/clientUploadReceipt.js.map +1 -0
  1195. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  1196. package/dist/uploads/deleteAssociatedFiles.js +59 -11
  1197. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  1198. package/dist/uploads/detectSvgFromXml.d.ts +1 -4
  1199. package/dist/uploads/detectSvgFromXml.d.ts.map +1 -1
  1200. package/dist/uploads/detectSvgFromXml.js +2 -41
  1201. package/dist/uploads/detectSvgFromXml.js.map +1 -1
  1202. package/dist/uploads/docWithFilenameExists.d.ts +2 -1
  1203. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  1204. package/dist/uploads/docWithFilenameExists.js +27 -10
  1205. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  1206. package/dist/uploads/downloadFileToBuffer.d.ts +11 -0
  1207. package/dist/uploads/downloadFileToBuffer.d.ts.map +1 -0
  1208. package/dist/uploads/downloadFileToBuffer.js +72 -0
  1209. package/dist/uploads/downloadFileToBuffer.js.map +1 -0
  1210. package/dist/uploads/endpoints/getFile.d.ts +17 -0
  1211. package/dist/uploads/endpoints/getFile.d.ts.map +1 -1
  1212. package/dist/uploads/endpoints/getFile.js +46 -12
  1213. package/dist/uploads/endpoints/getFile.js.map +1 -1
  1214. package/dist/uploads/endpoints/index.js +2 -2
  1215. package/dist/uploads/endpoints/index.js.map +1 -1
  1216. package/dist/uploads/endpoints/pasteURL.d.ts +3 -0
  1217. package/dist/uploads/endpoints/pasteURL.d.ts.map +1 -0
  1218. package/dist/uploads/endpoints/{getFileFromURL.js → pasteURL.js} +19 -55
  1219. package/dist/uploads/endpoints/pasteURL.js.map +1 -0
  1220. package/dist/uploads/endpoints/uploadInstructions.d.ts +12 -0
  1221. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -1
  1222. package/dist/uploads/endpoints/uploadInstructions.js +70 -21
  1223. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -1
  1224. package/dist/uploads/fetchAPI-multipart/handlers.d.ts +2 -2
  1225. package/dist/uploads/fetchAPI-multipart/handlers.d.ts.map +1 -1
  1226. package/dist/uploads/fetchAPI-multipart/handlers.js +18 -5
  1227. package/dist/uploads/fetchAPI-multipart/handlers.js.map +1 -1
  1228. package/dist/uploads/fetchAPI-multipart/index.d.ts.map +1 -1
  1229. package/dist/uploads/fetchAPI-multipart/index.js +24 -2
  1230. package/dist/uploads/fetchAPI-multipart/index.js.map +1 -1
  1231. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js +1 -2
  1232. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  1233. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts +0 -6
  1234. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  1235. package/dist/uploads/fetchAPI-multipart/processMultipart.js +146 -130
  1236. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  1237. package/dist/uploads/fetchAPI-stream-file/index.d.ts +4 -1
  1238. package/dist/uploads/fetchAPI-stream-file/index.d.ts.map +1 -1
  1239. package/dist/uploads/fetchAPI-stream-file/index.js +9 -2
  1240. package/dist/uploads/fetchAPI-stream-file/index.js.map +1 -1
  1241. package/dist/uploads/fetchWithRedirects.d.ts +19 -0
  1242. package/dist/uploads/fetchWithRedirects.d.ts.map +1 -0
  1243. package/dist/uploads/fetchWithRedirects.js +53 -0
  1244. package/dist/uploads/fetchWithRedirects.js.map +1 -0
  1245. package/dist/uploads/generateFileData.d.ts +31 -1
  1246. package/dist/uploads/generateFileData.d.ts.map +1 -1
  1247. package/dist/uploads/generateFileData.js +259 -199
  1248. package/dist/uploads/generateFileData.js.map +1 -1
  1249. package/dist/uploads/generateImageSizeFilename.d.ts.map +1 -0
  1250. package/dist/uploads/generateImageSizeFilename.js.map +1 -0
  1251. package/dist/uploads/generatePayloadFileURL.d.ts +25 -0
  1252. package/dist/uploads/generatePayloadFileURL.d.ts.map +1 -0
  1253. package/dist/uploads/generatePayloadFileURL.js +64 -0
  1254. package/dist/uploads/generatePayloadFileURL.js.map +1 -0
  1255. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  1256. package/dist/uploads/getBaseFields.js +12 -9
  1257. package/dist/uploads/getBaseFields.js.map +1 -1
  1258. package/dist/uploads/getFileContentRequirement.d.ts +39 -0
  1259. package/dist/uploads/getFileContentRequirement.d.ts.map +1 -0
  1260. package/dist/uploads/getFileContentRequirement.js +45 -0
  1261. package/dist/uploads/getFileContentRequirement.js.map +1 -0
  1262. package/dist/uploads/getFileFromUploadInstructions.d.ts +8 -0
  1263. package/dist/uploads/getFileFromUploadInstructions.d.ts.map +1 -0
  1264. package/dist/uploads/getFileFromUploadInstructions.js +307 -0
  1265. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -0
  1266. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  1267. package/dist/uploads/getFileTypeFallback.js +3 -1
  1268. package/dist/uploads/getFileTypeFallback.js.map +1 -1
  1269. package/dist/uploads/getFileTypeIdentity.d.ts +19 -0
  1270. package/dist/uploads/getFileTypeIdentity.d.ts.map +1 -0
  1271. package/dist/uploads/getFileTypeIdentity.js +34 -0
  1272. package/dist/uploads/getFileTypeIdentity.js.map +1 -0
  1273. package/dist/uploads/getImageSize.d.ts +8 -1
  1274. package/dist/uploads/getImageSize.d.ts.map +1 -1
  1275. package/dist/uploads/getImageSize.js +11 -19
  1276. package/dist/uploads/getImageSize.js.map +1 -1
  1277. package/dist/uploads/hasCropOrResizeEdit.d.ts +7 -0
  1278. package/dist/uploads/hasCropOrResizeEdit.d.ts.map +1 -0
  1279. package/dist/uploads/hasCropOrResizeEdit.js +6 -0
  1280. package/dist/uploads/hasCropOrResizeEdit.js.map +1 -0
  1281. package/dist/uploads/hasFullFileContents.d.ts +13 -0
  1282. package/dist/uploads/hasFullFileContents.d.ts.map +1 -0
  1283. package/dist/uploads/hasFullFileContents.js +12 -0
  1284. package/dist/uploads/hasFullFileContents.js.map +1 -0
  1285. package/dist/uploads/isAnimatedImage.d.ts +8 -0
  1286. package/dist/uploads/isAnimatedImage.d.ts.map +1 -0
  1287. package/dist/uploads/isAnimatedImage.js +22 -0
  1288. package/dist/uploads/isAnimatedImage.js.map +1 -0
  1289. package/dist/uploads/isProcessableImage.d.ts +2 -0
  1290. package/dist/uploads/isProcessableImage.d.ts.map +1 -0
  1291. package/dist/uploads/isProcessableImage.js +7 -0
  1292. package/dist/uploads/isProcessableImage.js.map +1 -0
  1293. package/dist/uploads/parseFilename.d.ts.map +1 -0
  1294. package/dist/uploads/parseFilename.js.map +1 -0
  1295. package/dist/uploads/probeImageSize.d.ts +39 -0
  1296. package/dist/uploads/probeImageSize.d.ts.map +1 -0
  1297. package/dist/uploads/probeImageSize.js +374 -0
  1298. package/dist/uploads/probeImageSize.js.map +1 -0
  1299. package/dist/uploads/resolveURLUploadInput.d.ts +25 -0
  1300. package/dist/uploads/resolveURLUploadInput.d.ts.map +1 -0
  1301. package/dist/uploads/resolveURLUploadInput.js +53 -0
  1302. package/dist/uploads/resolveURLUploadInput.js.map +1 -0
  1303. package/dist/uploads/safeFetch.d.ts.map +1 -1
  1304. package/dist/uploads/safeFetch.js +3 -2
  1305. package/dist/uploads/safeFetch.js.map +1 -1
  1306. package/dist/uploads/sanitizeUploadData.d.ts +26 -0
  1307. package/dist/uploads/sanitizeUploadData.d.ts.map +1 -0
  1308. package/dist/uploads/sanitizeUploadData.js +161 -0
  1309. package/dist/uploads/sanitizeUploadData.js.map +1 -0
  1310. package/dist/uploads/stagedUpload.d.ts +27 -0
  1311. package/dist/uploads/stagedUpload.d.ts.map +1 -0
  1312. package/dist/uploads/stagedUpload.js +197 -0
  1313. package/dist/uploads/stagedUpload.js.map +1 -0
  1314. package/dist/uploads/transformers/createLazySourceGetter.d.ts +15 -0
  1315. package/dist/uploads/transformers/createLazySourceGetter.d.ts.map +1 -0
  1316. package/dist/uploads/transformers/createLazySourceGetter.js +22 -0
  1317. package/dist/uploads/transformers/createLazySourceGetter.js.map +1 -0
  1318. package/dist/uploads/transformers/finalizeFileResponse.d.ts +14 -0
  1319. package/dist/uploads/transformers/finalizeFileResponse.d.ts.map +1 -0
  1320. package/dist/uploads/transformers/finalizeFileResponse.js +49 -0
  1321. package/dist/uploads/transformers/finalizeFileResponse.js.map +1 -0
  1322. package/dist/uploads/transformers/getSourceFileResponse.d.ts +16 -0
  1323. package/dist/uploads/transformers/getSourceFileResponse.d.ts.map +1 -0
  1324. package/dist/uploads/transformers/getSourceFileResponse.js +17 -0
  1325. package/dist/uploads/transformers/getSourceFileResponse.js.map +1 -0
  1326. package/dist/uploads/transformers/handleDynamicFileRequest.d.ts +18 -0
  1327. package/dist/uploads/transformers/handleDynamicFileRequest.d.ts.map +1 -0
  1328. package/dist/uploads/transformers/handleDynamicFileRequest.js +277 -0
  1329. package/dist/uploads/transformers/handleDynamicFileRequest.js.map +1 -0
  1330. package/dist/uploads/transformers/matchesMimeType.d.ts +11 -0
  1331. package/dist/uploads/transformers/matchesMimeType.d.ts.map +1 -0
  1332. package/dist/uploads/transformers/matchesMimeType.js +39 -0
  1333. package/dist/uploads/transformers/matchesMimeType.js.map +1 -0
  1334. package/dist/uploads/transformers/planTransformerPipeline.d.ts +26 -0
  1335. package/dist/uploads/transformers/planTransformerPipeline.d.ts.map +1 -0
  1336. package/dist/uploads/transformers/planTransformerPipeline.js +36 -0
  1337. package/dist/uploads/transformers/planTransformerPipeline.js.map +1 -0
  1338. package/dist/uploads/transformers/resolveUploadDocument.d.ts +46 -0
  1339. package/dist/uploads/transformers/resolveUploadDocument.d.ts.map +1 -0
  1340. package/dist/uploads/transformers/resolveUploadDocument.js +77 -0
  1341. package/dist/uploads/transformers/resolveUploadDocument.js.map +1 -0
  1342. package/dist/uploads/transformers/transformUploadFile.d.ts +18 -0
  1343. package/dist/uploads/transformers/transformUploadFile.d.ts.map +1 -0
  1344. package/dist/uploads/transformers/transformUploadFile.js +30 -0
  1345. package/dist/uploads/transformers/transformUploadFile.js.map +1 -0
  1346. package/dist/uploads/transformers/types.d.ts +71 -0
  1347. package/dist/uploads/transformers/types.d.ts.map +1 -0
  1348. package/dist/uploads/transformers/types.js +6 -0
  1349. package/dist/uploads/transformers/types.js.map +1 -0
  1350. package/dist/uploads/transformers/uploadTransformerBridge.d.ts +48 -0
  1351. package/dist/uploads/transformers/uploadTransformerBridge.d.ts.map +1 -0
  1352. package/dist/uploads/transformers/uploadTransformerBridge.js +22 -0
  1353. package/dist/uploads/transformers/uploadTransformerBridge.js.map +1 -0
  1354. package/dist/uploads/transformers/validateTransformers.d.ts +11 -0
  1355. package/dist/uploads/transformers/validateTransformers.d.ts.map +1 -0
  1356. package/dist/uploads/transformers/validateTransformers.js +67 -0
  1357. package/dist/uploads/transformers/validateTransformers.js.map +1 -0
  1358. package/dist/uploads/transformers/withFileTransformAccessContext.d.ts +13 -0
  1359. package/dist/uploads/transformers/withFileTransformAccessContext.d.ts.map +1 -0
  1360. package/dist/uploads/transformers/withFileTransformAccessContext.js +18 -0
  1361. package/dist/uploads/transformers/withFileTransformAccessContext.js.map +1 -0
  1362. package/dist/uploads/types.d.ts +77 -73
  1363. package/dist/uploads/types.d.ts.map +1 -1
  1364. package/dist/uploads/types.js.map +1 -1
  1365. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  1366. package/dist/uploads/unlinkTempFiles.js +6 -2
  1367. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  1368. package/dist/uploads/uploadContentSecurityPolicy.d.ts +2 -0
  1369. package/dist/uploads/uploadContentSecurityPolicy.d.ts.map +1 -0
  1370. package/dist/uploads/uploadContentSecurityPolicy.js +3 -0
  1371. package/dist/uploads/uploadContentSecurityPolicy.js.map +1 -0
  1372. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  1373. package/dist/uploads/uploadFiles.js +7 -2
  1374. package/dist/uploads/uploadFiles.js.map +1 -1
  1375. package/dist/uploads/validateISOBaseMediaFile.d.ts +4 -0
  1376. package/dist/uploads/validateISOBaseMediaFile.d.ts.map +1 -0
  1377. package/dist/uploads/validateISOBaseMediaFile.js +91 -0
  1378. package/dist/uploads/validateISOBaseMediaFile.js.map +1 -0
  1379. package/dist/uploads/validateSvg.d.ts +10 -4
  1380. package/dist/uploads/validateSvg.d.ts.map +1 -1
  1381. package/dist/uploads/validateSvg.js +280 -40
  1382. package/dist/uploads/validateSvg.js.map +1 -1
  1383. package/dist/uploads/validateUploadFilename.d.ts +3 -0
  1384. package/dist/uploads/validateUploadFilename.d.ts.map +1 -0
  1385. package/dist/uploads/validateUploadFilename.js +13 -0
  1386. package/dist/uploads/validateUploadFilename.js.map +1 -0
  1387. package/dist/uploads/validateUploadURL.d.ts +13 -0
  1388. package/dist/uploads/validateUploadURL.d.ts.map +1 -0
  1389. package/dist/uploads/validateUploadURL.js +37 -0
  1390. package/dist/uploads/validateUploadURL.js.map +1 -0
  1391. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  1392. package/dist/utilities/addDataAndFileToRequest.js +14 -46
  1393. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  1394. package/dist/utilities/appendNonTrashedFilter.d.ts +1 -1
  1395. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  1396. package/dist/utilities/appendNonTrashedFilter.js.map +1 -1
  1397. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  1398. package/dist/utilities/appendUploadSelectFields.js +4 -3
  1399. package/dist/utilities/appendUploadSelectFields.js.map +1 -1
  1400. package/dist/utilities/batchProcessing.d.ts +23 -0
  1401. package/dist/utilities/batchProcessing.d.ts.map +1 -0
  1402. package/dist/utilities/batchProcessing.js +34 -0
  1403. package/dist/utilities/batchProcessing.js.map +1 -0
  1404. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  1405. package/dist/utilities/canAccessAdmin.js +2 -0
  1406. package/dist/utilities/canAccessAdmin.js.map +1 -1
  1407. package/dist/utilities/checkDocumentLockStatus.d.ts +19 -0
  1408. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  1409. package/dist/utilities/checkDocumentLockStatus.js +74 -0
  1410. package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
  1411. package/dist/utilities/createPayloadRequest.d.ts +12 -10
  1412. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  1413. package/dist/utilities/createPayloadRequest.js +98 -81
  1414. package/dist/utilities/createPayloadRequest.js.map +1 -1
  1415. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts +14 -0
  1416. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts.map +1 -0
  1417. package/dist/utilities/createPayloadRequestFromWebRequest.js +95 -0
  1418. package/dist/utilities/createPayloadRequestFromWebRequest.js.map +1 -0
  1419. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  1420. package/dist/utilities/deepCopyObject.js +110 -19
  1421. package/dist/utilities/deepCopyObject.js.map +1 -1
  1422. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts +30 -0
  1423. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts.map +1 -0
  1424. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js +71 -0
  1425. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js.map +1 -0
  1426. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts +13 -0
  1427. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts.map +1 -0
  1428. package/dist/utilities/entityInputSchema/getEntityInputSchema.js +66 -0
  1429. package/dist/utilities/entityInputSchema/getEntityInputSchema.js.map +1 -0
  1430. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts +10 -0
  1431. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts.map +1 -0
  1432. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js +384 -0
  1433. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js.map +1 -0
  1434. package/dist/utilities/entityInputSchema/types.d.ts +16 -0
  1435. package/dist/utilities/entityInputSchema/types.d.ts.map +1 -0
  1436. package/dist/utilities/entityInputSchema/types.js +3 -0
  1437. package/dist/utilities/entityInputSchema/types.js.map +1 -0
  1438. package/dist/utilities/entityInputSchema/validateEntityData.d.ts +13 -0
  1439. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -0
  1440. package/dist/utilities/entityInputSchema/validateEntityData.js +138 -0
  1441. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -0
  1442. package/dist/utilities/fieldPath.d.ts +13 -0
  1443. package/dist/utilities/fieldPath.d.ts.map +1 -0
  1444. package/dist/utilities/fieldPath.js +51 -0
  1445. package/dist/utilities/fieldPath.js.map +1 -0
  1446. package/dist/utilities/fieldValueExists.d.ts +29 -0
  1447. package/dist/utilities/fieldValueExists.d.ts.map +1 -0
  1448. package/dist/utilities/fieldValueExists.js +37 -0
  1449. package/dist/utilities/fieldValueExists.js.map +1 -0
  1450. package/dist/utilities/flattenAllFields.js +1 -1
  1451. package/dist/utilities/flattenAllFields.js.map +1 -1
  1452. package/dist/utilities/formatAdminURL.d.ts +1 -0
  1453. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  1454. package/dist/utilities/formatAdminURL.js +22 -4
  1455. package/dist/utilities/formatAdminURL.js.map +1 -1
  1456. package/dist/utilities/getEntityPermissions/entityDocExists.d.ts.map +1 -1
  1457. package/dist/utilities/getEntityPermissions/entityDocExists.js +36 -5
  1458. package/dist/utilities/getEntityPermissions/entityDocExists.js.map +1 -1
  1459. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  1460. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +1 -0
  1461. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  1462. package/dist/utilities/getNextVersion.d.ts +7 -0
  1463. package/dist/utilities/getNextVersion.d.ts.map +1 -0
  1464. package/dist/utilities/getNextVersion.js +20 -0
  1465. package/dist/utilities/getNextVersion.js.map +1 -0
  1466. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  1467. package/dist/utilities/getObjectDotNotation.js +7 -1
  1468. package/dist/utilities/getObjectDotNotation.js.map +1 -1
  1469. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  1470. package/dist/utilities/getRequestOrigin.js.map +1 -1
  1471. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  1472. package/dist/utilities/getSafeRedirect.js +16 -9
  1473. package/dist/utilities/getSafeRedirect.js.map +1 -1
  1474. package/dist/utilities/getTopLevelFieldNames.d.ts +2 -0
  1475. package/dist/utilities/getTopLevelFieldNames.d.ts.map +1 -0
  1476. package/dist/utilities/getTopLevelFieldNames.js +3 -0
  1477. package/dist/utilities/getTopLevelFieldNames.js.map +1 -0
  1478. package/dist/utilities/getUniqueFieldValue.d.ts +28 -0
  1479. package/dist/utilities/getUniqueFieldValue.d.ts.map +1 -0
  1480. package/dist/utilities/getUniqueFieldValue.js +27 -0
  1481. package/dist/utilities/getUniqueFieldValue.js.map +1 -0
  1482. package/dist/utilities/getVirtualFieldNames.d.ts +14 -0
  1483. package/dist/utilities/getVirtualFieldNames.d.ts.map +1 -0
  1484. package/dist/utilities/getVirtualFieldNames.js +35 -0
  1485. package/dist/utilities/getVirtualFieldNames.js.map +1 -0
  1486. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  1487. package/dist/utilities/handleEndpoints.js +8 -7
  1488. package/dist/utilities/handleEndpoints.js.map +1 -1
  1489. package/dist/utilities/headersWithCors.js +1 -1
  1490. package/dist/utilities/headersWithCors.js.map +1 -1
  1491. package/dist/utilities/killTransaction.d.ts +7 -0
  1492. package/dist/utilities/killTransaction.d.ts.map +1 -1
  1493. package/dist/utilities/killTransaction.js +7 -0
  1494. package/dist/utilities/killTransaction.js.map +1 -1
  1495. package/dist/utilities/logError.d.ts.map +1 -1
  1496. package/dist/utilities/logError.js +5 -2
  1497. package/dist/utilities/logError.js.map +1 -1
  1498. package/dist/utilities/nextJsDevReloadStrategy.d.ts +7 -0
  1499. package/dist/utilities/nextJsDevReloadStrategy.d.ts.map +1 -0
  1500. package/dist/utilities/nextJsDevReloadStrategy.js +62 -0
  1501. package/dist/utilities/nextJsDevReloadStrategy.js.map +1 -0
  1502. package/dist/utilities/parseDocumentID.d.ts +4 -1
  1503. package/dist/utilities/parseDocumentID.d.ts.map +1 -1
  1504. package/dist/utilities/parseDocumentID.js +7 -1
  1505. package/dist/utilities/parseDocumentID.js.map +1 -1
  1506. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  1507. package/dist/utilities/parseParams/index.js +3 -1
  1508. package/dist/utilities/parseParams/index.js.map +1 -1
  1509. package/dist/utilities/sanitizeUploadPrefix.d.ts +5 -0
  1510. package/dist/utilities/sanitizeUploadPrefix.d.ts.map +1 -0
  1511. package/dist/utilities/sanitizeUploadPrefix.js +18 -0
  1512. package/dist/utilities/sanitizeUploadPrefix.js.map +1 -0
  1513. package/dist/utilities/sharedInputSchemas.d.ts +52 -0
  1514. package/dist/utilities/sharedInputSchemas.d.ts.map +1 -0
  1515. package/dist/utilities/sharedInputSchemas.js +101 -0
  1516. package/dist/utilities/sharedInputSchemas.js.map +1 -0
  1517. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts +4 -0
  1518. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts.map +1 -0
  1519. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js +262 -0
  1520. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -0
  1521. package/dist/utilities/telemetry/featureInfo/types.d.ts +63 -0
  1522. package/dist/utilities/telemetry/featureInfo/types.d.ts.map +1 -0
  1523. package/dist/utilities/telemetry/featureInfo/types.js +3 -0
  1524. package/dist/utilities/telemetry/featureInfo/types.js.map +1 -0
  1525. package/dist/utilities/telemetry/getProjectContext.d.ts +16 -0
  1526. package/dist/utilities/telemetry/getProjectContext.d.ts.map +1 -0
  1527. package/dist/utilities/telemetry/getProjectContext.js +43 -0
  1528. package/dist/utilities/telemetry/getProjectContext.js.map +1 -0
  1529. package/dist/utilities/telemetry/index.d.ts +6 -1
  1530. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  1531. package/dist/utilities/telemetry/index.js +21 -1
  1532. package/dist/utilities/telemetry/index.js.map +1 -1
  1533. package/dist/utilities/transformPointDataToPayload.d.ts +7 -0
  1534. package/dist/utilities/transformPointDataToPayload.d.ts.map +1 -0
  1535. package/dist/utilities/transformPointDataToPayload.js +28 -0
  1536. package/dist/utilities/transformPointDataToPayload.js.map +1 -0
  1537. package/dist/utilities/traverseFields.d.ts.map +1 -1
  1538. package/dist/utilities/traverseFields.js +25 -36
  1539. package/dist/utilities/traverseFields.js.map +1 -1
  1540. package/dist/utilities/unflatten.d.ts.map +1 -1
  1541. package/dist/utilities/unflatten.js +21 -9
  1542. package/dist/utilities/unflatten.js.map +1 -1
  1543. package/dist/utilities/unflattenData.d.ts +3 -0
  1544. package/dist/utilities/unflattenData.d.ts.map +1 -0
  1545. package/dist/utilities/unflattenData.js +14 -0
  1546. package/dist/utilities/unflattenData.js.map +1 -0
  1547. package/dist/utilities/zod.d.ts +5 -0
  1548. package/dist/utilities/zod.d.ts.map +1 -0
  1549. package/dist/utilities/zod.js +21 -0
  1550. package/dist/utilities/zod.js.map +1 -0
  1551. package/dist/versions/allLocalesPublicationStatus.d.ts +38 -0
  1552. package/dist/versions/allLocalesPublicationStatus.d.ts.map +1 -0
  1553. package/dist/versions/allLocalesPublicationStatus.js +57 -0
  1554. package/dist/versions/allLocalesPublicationStatus.js.map +1 -0
  1555. package/dist/versions/deleteCollectionVersions.d.ts +11 -1
  1556. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  1557. package/dist/versions/deleteCollectionVersions.js +10 -3
  1558. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  1559. package/dist/versions/deleteScheduledPublishJobs.d.ts +5 -1
  1560. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  1561. package/dist/versions/deleteScheduledPublishJobs.js +11 -5
  1562. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  1563. package/dist/versions/drafts/appendVersionToQueryKey.d.ts +1 -0
  1564. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  1565. package/dist/versions/drafts/appendVersionToQueryKey.js +6 -12
  1566. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  1567. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  1568. package/dist/versions/getLatestGlobalVersion.js +10 -2
  1569. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  1570. package/dist/versions/getRestoredStatusesToAuthorize.d.ts +9 -0
  1571. package/dist/versions/getRestoredStatusesToAuthorize.d.ts.map +1 -0
  1572. package/dist/versions/getRestoredStatusesToAuthorize.js +22 -0
  1573. package/dist/versions/getRestoredStatusesToAuthorize.js.map +1 -0
  1574. package/dist/versions/isInheritedReadVersionsAccess.d.ts +6 -0
  1575. package/dist/versions/isInheritedReadVersionsAccess.d.ts.map +1 -0
  1576. package/dist/versions/isInheritedReadVersionsAccess.js +30 -0
  1577. package/dist/versions/isInheritedReadVersionsAccess.js.map +1 -0
  1578. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  1579. package/dist/versions/payloadPackageList.js +0 -1
  1580. package/dist/versions/payloadPackageList.js.map +1 -1
  1581. package/dist/versions/schedule/job.d.ts +2 -2
  1582. package/dist/versions/schedule/job.d.ts.map +1 -1
  1583. package/dist/versions/schedule/job.js +12 -8
  1584. package/dist/versions/schedule/job.js.map +1 -1
  1585. package/dist/versions/schedule/types.d.ts +5 -1
  1586. package/dist/versions/schedule/types.d.ts.map +1 -1
  1587. package/dist/versions/schedule/types.js.map +1 -1
  1588. package/package.json +30 -13
  1589. package/skills/payload/SKILL.md +544 -0
  1590. package/skills/payload/reference/ACCESS-CONTROL-ADVANCED.md +718 -0
  1591. package/skills/payload/reference/ACCESS-CONTROL.md +700 -0
  1592. package/skills/payload/reference/ADAPTERS.md +312 -0
  1593. package/skills/payload/reference/ADVANCED.md +393 -0
  1594. package/skills/payload/reference/COLLECTIONS.md +336 -0
  1595. package/skills/payload/reference/ENDPOINTS.md +650 -0
  1596. package/skills/payload/reference/FIELD-TYPE-GUARDS.md +553 -0
  1597. package/skills/payload/reference/FIELDS.md +748 -0
  1598. package/skills/payload/reference/HOOKS.md +186 -0
  1599. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +1445 -0
  1600. package/skills/payload/reference/QUERIES.md +282 -0
  1601. package/dist/auth/cookies.spec.js +0 -34
  1602. package/dist/auth/cookies.spec.js.map +0 -1
  1603. package/dist/auth/strategies/local/authenticate.spec.js +0 -83
  1604. package/dist/auth/strategies/local/authenticate.spec.js.map +0 -1
  1605. package/dist/bin/build.d.ts.map +0 -1
  1606. package/dist/bin/build.js.map +0 -1
  1607. package/dist/bin/build.spec.js +0 -594
  1608. package/dist/bin/build.spec.js.map +0 -1
  1609. package/dist/bin/frameworkConventions.d.ts.map +0 -1
  1610. package/dist/bin/frameworkConventions.js.map +0 -1
  1611. package/dist/bin/generateImportMap/generateImportMap.spec.js +0 -176
  1612. package/dist/bin/generateImportMap/generateImportMap.spec.js.map +0 -1
  1613. package/dist/bin/generateImportMap/index.d.ts.map +0 -1
  1614. package/dist/bin/generateImportMap/index.js.map +0 -1
  1615. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +0 -1
  1616. package/dist/bin/generateImportMap/iterateCollections.js.map +0 -1
  1617. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +0 -1
  1618. package/dist/bin/generateImportMap/iterateConfig.js.map +0 -1
  1619. package/dist/bin/generateImportMap/iterateFields.d.ts.map +0 -1
  1620. package/dist/bin/generateImportMap/iterateFields.js.map +0 -1
  1621. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +0 -1
  1622. package/dist/bin/generateImportMap/iterateGlobals.js.map +0 -1
  1623. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +0 -1
  1624. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +0 -1
  1625. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +0 -1
  1626. package/dist/bin/generateImportMap/utilities/getFromImportMap.js.map +0 -1
  1627. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +0 -1
  1628. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +0 -1
  1629. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.d.ts.map +0 -1
  1630. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.js.map +0 -1
  1631. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +0 -1
  1632. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +0 -1
  1633. package/dist/bin/generateTypes.d.ts +0 -6
  1634. package/dist/bin/generateTypes.d.ts.map +0 -1
  1635. package/dist/bin/generateTypes.js.map +0 -1
  1636. package/dist/bin/index.d.ts +0 -2
  1637. package/dist/bin/index.d.ts.map +0 -1
  1638. package/dist/bin/index.js +0 -200
  1639. package/dist/bin/index.js.map +0 -1
  1640. package/dist/bin/info.d.ts +0 -2
  1641. package/dist/bin/info.d.ts.map +0 -1
  1642. package/dist/bin/info.js +0 -56
  1643. package/dist/bin/info.js.map +0 -1
  1644. package/dist/bin/loadEnv.d.ts.map +0 -1
  1645. package/dist/bin/loadEnv.js.map +0 -1
  1646. package/dist/bin/migrate.d.ts +0 -15
  1647. package/dist/bin/migrate.d.ts.map +0 -1
  1648. package/dist/bin/migrate.js +0 -102
  1649. package/dist/bin/migrate.js.map +0 -1
  1650. package/dist/collections/config/defaults.spec.js +0 -47
  1651. package/dist/collections/config/defaults.spec.js.map +0 -1
  1652. package/dist/collections/config/sanitize.spec.js +0 -120
  1653. package/dist/collections/config/sanitize.spec.js.map +0 -1
  1654. package/dist/collections/config/useAsTitle.spec.js +0 -187
  1655. package/dist/collections/config/useAsTitle.spec.js.map +0 -1
  1656. package/dist/database/defaultUpdateJobs.d.ts +0 -3
  1657. package/dist/database/defaultUpdateJobs.d.ts.map +0 -1
  1658. package/dist/database/defaultUpdateJobs.js +0 -41
  1659. package/dist/database/defaultUpdateJobs.js.map +0 -1
  1660. package/dist/database/migrations/findMigrationDir.spec.js +0 -47
  1661. package/dist/database/migrations/findMigrationDir.spec.js.map +0 -1
  1662. package/dist/fields/baseFields/slug/countVersions.d.ts +0 -13
  1663. package/dist/fields/baseFields/slug/countVersions.d.ts.map +0 -1
  1664. package/dist/fields/baseFields/slug/countVersions.js +0 -27
  1665. package/dist/fields/baseFields/slug/countVersions.js.map +0 -1
  1666. package/dist/fields/config/reservedFieldNames.spec.js +0 -149
  1667. package/dist/fields/config/reservedFieldNames.spec.js.map +0 -1
  1668. package/dist/fields/config/sanitize.spec.js +0 -745
  1669. package/dist/fields/config/sanitize.spec.js.map +0 -1
  1670. package/dist/fields/isFieldDisabled.spec.js +0 -134
  1671. package/dist/fields/isFieldDisabled.spec.js.map +0 -1
  1672. package/dist/fields/validations.spec.js +0 -990
  1673. package/dist/fields/validations.spec.js.map +0 -1
  1674. package/dist/globals/config/sanitize.spec.js +0 -43
  1675. package/dist/globals/config/sanitize.spec.js.map +0 -1
  1676. package/dist/hierarchy/utils/getLocalizedValue.spec.js +0 -250
  1677. package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +0 -1
  1678. package/dist/locked-documents/config.spec.js +0 -298
  1679. package/dist/locked-documents/config.spec.js.map +0 -1
  1680. package/dist/uploads/checkFileAccess.spec.js +0 -109
  1681. package/dist/uploads/checkFileAccess.spec.js.map +0 -1
  1682. package/dist/uploads/cropImage.d.ts +0 -30
  1683. package/dist/uploads/cropImage.d.ts.map +0 -1
  1684. package/dist/uploads/cropImage.js +0 -58
  1685. package/dist/uploads/cropImage.js.map +0 -1
  1686. package/dist/uploads/endpoints/getFileFromURL.d.ts +0 -3
  1687. package/dist/uploads/endpoints/getFileFromURL.d.ts.map +0 -1
  1688. package/dist/uploads/endpoints/getFileFromURL.js.map +0 -1
  1689. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js +0 -29
  1690. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js.map +0 -1
  1691. package/dist/uploads/getExternalFile.d.ts +0 -10
  1692. package/dist/uploads/getExternalFile.d.ts.map +0 -1
  1693. package/dist/uploads/getExternalFile.js +0 -73
  1694. package/dist/uploads/getExternalFile.js.map +0 -1
  1695. package/dist/uploads/getSafeFilename.spec.js +0 -274
  1696. package/dist/uploads/getSafeFilename.spec.js.map +0 -1
  1697. package/dist/uploads/image-resizing/createImageSize.d.ts +0 -24
  1698. package/dist/uploads/image-resizing/createImageSize.d.ts.map +0 -1
  1699. package/dist/uploads/image-resizing/createImageSize.js +0 -23
  1700. package/dist/uploads/image-resizing/createImageSize.js.map +0 -1
  1701. package/dist/uploads/image-resizing/createImageSizes.d.ts +0 -39
  1702. package/dist/uploads/image-resizing/createImageSizes.d.ts.map +0 -1
  1703. package/dist/uploads/image-resizing/createImageSizes.js +0 -208
  1704. package/dist/uploads/image-resizing/createImageSizes.js.map +0 -1
  1705. package/dist/uploads/image-resizing/extractHeightFromImage.d.ts +0 -9
  1706. package/dist/uploads/image-resizing/extractHeightFromImage.d.ts.map +0 -1
  1707. package/dist/uploads/image-resizing/extractHeightFromImage.js +0 -13
  1708. package/dist/uploads/image-resizing/extractHeightFromImage.js.map +0 -1
  1709. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +0 -1
  1710. package/dist/uploads/image-resizing/generateImageSizeFilename.js.map +0 -1
  1711. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +0 -24
  1712. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +0 -1
  1713. package/dist/uploads/image-resizing/getImageResizeAction.js +0 -56
  1714. package/dist/uploads/image-resizing/getImageResizeAction.js.map +0 -1
  1715. package/dist/uploads/image-resizing/parseFilename.d.ts.map +0 -1
  1716. package/dist/uploads/image-resizing/parseFilename.js.map +0 -1
  1717. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts +0 -11
  1718. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +0 -1
  1719. package/dist/uploads/image-resizing/sanitizeResizeConfig.js +0 -20
  1720. package/dist/uploads/image-resizing/sanitizeResizeConfig.js.map +0 -1
  1721. package/dist/uploads/matchMimeType.spec.js +0 -66
  1722. package/dist/uploads/matchMimeType.spec.js.map +0 -1
  1723. package/dist/uploads/mimeTypeValidator.spec.js +0 -84
  1724. package/dist/uploads/mimeTypeValidator.spec.js.map +0 -1
  1725. package/dist/uploads/optionallyAppendMetadata.d.ts +0 -12
  1726. package/dist/uploads/optionallyAppendMetadata.d.ts.map +0 -1
  1727. package/dist/uploads/optionallyAppendMetadata.js +0 -17
  1728. package/dist/uploads/optionallyAppendMetadata.js.map +0 -1
  1729. package/dist/uploads/tempFile.d.ts +0 -7
  1730. package/dist/uploads/tempFile.d.ts.map +0 -1
  1731. package/dist/uploads/tempFile.js +0 -39
  1732. package/dist/uploads/tempFile.js.map +0 -1
  1733. package/dist/utilities/addDataAndFileToRequest.spec.js +0 -41
  1734. package/dist/utilities/addDataAndFileToRequest.spec.js.map +0 -1
  1735. package/dist/utilities/addSelectGenericsToGeneratedTypes.spec.js +0 -563
  1736. package/dist/utilities/addSelectGenericsToGeneratedTypes.spec.js.map +0 -1
  1737. package/dist/utilities/combineWhereConstraints.spec.js +0 -131
  1738. package/dist/utilities/combineWhereConstraints.spec.js.map +0 -1
  1739. package/dist/utilities/configToJSONSchema.spec.js +0 -1162
  1740. package/dist/utilities/configToJSONSchema.spec.js.map +0 -1
  1741. package/dist/utilities/createLocalReq.d.ts +0 -15
  1742. package/dist/utilities/createLocalReq.d.ts.map +0 -1
  1743. package/dist/utilities/createLocalReq.js +0 -110
  1744. package/dist/utilities/createLocalReq.js.map +0 -1
  1745. package/dist/utilities/createLocalReq.spec.js +0 -125
  1746. package/dist/utilities/createLocalReq.spec.js.map +0 -1
  1747. package/dist/utilities/filterDataToSelectedLocales.spec.js +0 -529
  1748. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +0 -1
  1749. package/dist/utilities/flattenTopLevelFields.spec.js +0 -659
  1750. package/dist/utilities/flattenTopLevelFields.spec.js.map +0 -1
  1751. package/dist/utilities/formatAdminURL.spec.js +0 -168
  1752. package/dist/utilities/formatAdminURL.spec.js.map +0 -1
  1753. package/dist/utilities/formatErrors.spec.js +0 -101
  1754. package/dist/utilities/formatErrors.spec.js.map +0 -1
  1755. package/dist/utilities/formatLabels.spec.js +0 -38
  1756. package/dist/utilities/formatLabels.spec.js.map +0 -1
  1757. package/dist/utilities/getFieldByPath.spec.js +0 -157
  1758. package/dist/utilities/getFieldByPath.spec.js.map +0 -1
  1759. package/dist/utilities/getFieldPermissions.spec.js +0 -78
  1760. package/dist/utilities/getFieldPermissions.spec.js.map +0 -1
  1761. package/dist/utilities/getRequestOrigin.spec.js +0 -151
  1762. package/dist/utilities/getRequestOrigin.spec.js.map +0 -1
  1763. package/dist/utilities/getSafeRedirect.spec.js +0 -84
  1764. package/dist/utilities/getSafeRedirect.spec.js.map +0 -1
  1765. package/dist/utilities/isURLAllowed.spec.js +0 -78
  1766. package/dist/utilities/isURLAllowed.spec.js.map +0 -1
  1767. package/dist/utilities/isolateObjectProperty.spec.js +0 -120
  1768. package/dist/utilities/isolateObjectProperty.spec.js.map +0 -1
  1769. package/dist/utilities/mergeLocalizedData.spec.js +0 -1108
  1770. package/dist/utilities/mergeLocalizedData.spec.js.map +0 -1
  1771. package/dist/utilities/optionsAreEqual.spec.js +0 -319
  1772. package/dist/utilities/optionsAreEqual.spec.js.map +0 -1
  1773. package/dist/utilities/parseParams/index.spec.js +0 -384
  1774. package/dist/utilities/parseParams/index.spec.js.map +0 -1
  1775. package/dist/utilities/profiling.spec.js +0 -53
  1776. package/dist/utilities/profiling.spec.js.map +0 -1
  1777. package/dist/utilities/sanitizePermissions.spec.js +0 -1639
  1778. package/dist/utilities/sanitizePermissions.spec.js.map +0 -1
  1779. package/dist/utilities/sanitizeUserDataForEmail.spec.js +0 -134
  1780. package/dist/utilities/sanitizeUserDataForEmail.spec.js.map +0 -1
  1781. package/dist/utilities/telemetry/index.spec.js +0 -43
  1782. package/dist/utilities/telemetry/index.spec.js.map +0 -1
  1783. package/dist/utilities/traverseFields.spec.js +0 -53
  1784. package/dist/utilities/traverseFields.spec.js.map +0 -1
  1785. package/dist/utilities/validateTimezones.spec.js +0 -493
  1786. package/dist/utilities/validateTimezones.spec.js.map +0 -1
  1787. /package/dist/{bin → cli/commands/generateImportMap}/frameworkConventions.d.ts +0 -0
  1788. /package/dist/{bin → cli/commands/generateImportMap}/frameworkConventions.js +0 -0
  1789. /package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.js +0 -0
  1790. /package/dist/{bin → cli/commands}/generateImportMap/iterateFields.js +0 -0
  1791. /package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.js +0 -0
  1792. /package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.js +0 -0
  1793. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.js +0 -0
  1794. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts +0 -0
  1795. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.js +0 -0
  1796. /package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.js +0 -0
  1797. /package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.d.ts +0 -0
  1798. /package/dist/{bin → cli/runtime}/loadEnv.d.ts +0 -0
  1799. /package/dist/uploads/{image-resizing/generateImageSizeFilename.d.ts → generateImageSizeFilename.d.ts} +0 -0
  1800. /package/dist/uploads/{image-resizing/generateImageSizeFilename.js → generateImageSizeFilename.js} +0 -0
  1801. /package/dist/uploads/{image-resizing/parseFilename.d.ts → parseFilename.d.ts} +0 -0
  1802. /package/dist/uploads/{image-resizing/parseFilename.js → parseFilename.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hierarchy/addHierarchyToCollection.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\n\nimport { hierarchyCollectionAfterRead } from './hooks/collectionAfterRead.js'\nimport { hierarchyCollectionBeforeChange } from './hooks/collectionBeforeChange.js'\nimport { hierarchyCollectionBeforeDelete } from './hooks/collectionBeforeDelete.js'\nimport { hierarchyCollectionBeforeOperation } from './hooks/collectionBeforeOperation.js'\nimport { findFieldByName, findUseAsTitleField } from './utils/findUseAsTitle.js'\n\nexport const addHierarchyToCollection = ({\n collectionConfig,\n parentFieldName,\n slugFieldName,\n slugPathFieldName,\n titlePathFieldName,\n}: {\n collectionConfig: CollectionConfig\n parentFieldName: string\n slugFieldName?: string\n slugPathFieldName: string\n titlePathFieldName: string\n}) => {\n const { titleFieldName } = findUseAsTitleField(collectionConfig)\n // Verify slug field exists if configured\n const slugFieldInfo = slugFieldName ? findFieldByName(collectionConfig, slugFieldName) : undefined\n const validatedSlugFieldName = slugFieldInfo ? slugFieldName : undefined\n\n // Add virtual path fields (computed in afterRead)\n collectionConfig.fields.push(\n {\n name: slugPathFieldName,\n type: 'text',\n admin: {\n readOnly: true,\n // hidden: true,\n },\n index: true,\n label: 'Slug Path',\n virtual: true,\n },\n {\n name: titlePathFieldName,\n type: 'text',\n admin: {\n readOnly: true,\n // hidden: true,\n },\n index: true,\n label: 'Title Path',\n virtual: true,\n },\n )\n\n if (!collectionConfig.admin) {\n collectionConfig.admin = {}\n }\n if (!collectionConfig.admin.listSearchableFields) {\n collectionConfig.admin.listSearchableFields = [titleFieldName]\n } else if (!collectionConfig.admin.listSearchableFields.includes(titleFieldName)) {\n collectionConfig.admin.listSearchableFields.push(titleFieldName)\n }\n\n collectionConfig.hooks = {\n ...(collectionConfig.hooks || {}),\n afterRead: [\n ...(collectionConfig.hooks?.afterRead || []),\n hierarchyCollectionAfterRead({ parentFieldName, slugPathFieldName, titlePathFieldName }),\n ],\n beforeChange: [\n ...(collectionConfig.hooks?.beforeChange || []),\n hierarchyCollectionBeforeChange({ parentFieldName }),\n ],\n beforeDelete: [\n ...(collectionConfig.hooks?.beforeDelete || []),\n hierarchyCollectionBeforeDelete({ parentFieldName }),\n ],\n beforeOperation: [\n ...(collectionConfig.hooks?.beforeOperation || []),\n hierarchyCollectionBeforeOperation({\n parentFieldName,\n slugFieldName: validatedSlugFieldName,\n slugPathFieldName,\n titleFieldName,\n titlePathFieldName,\n }),\n ],\n }\n}\n"],"names":["hierarchyCollectionAfterRead","hierarchyCollectionBeforeChange","hierarchyCollectionBeforeDelete","hierarchyCollectionBeforeOperation","findFieldByName","findUseAsTitleField","addHierarchyToCollection","collectionConfig","parentFieldName","slugFieldName","slugPathFieldName","titlePathFieldName","titleFieldName","slugFieldInfo","undefined","validatedSlugFieldName","fields","push","name","type","admin","readOnly","index","label","virtual","listSearchableFields","includes","hooks","afterRead","beforeChange","beforeDelete","beforeOperation"],"mappings":"AAEA,SAASA,4BAA4B,QAAQ,iCAAgC;AAC7E,SAASC,+BAA+B,QAAQ,oCAAmC;AACnF,SAASC,+BAA+B,QAAQ,oCAAmC;AACnF,SAASC,kCAAkC,QAAQ,uCAAsC;AACzF,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,4BAA2B;AAEhF,OAAO,MAAMC,2BAA2B,CAAC,EACvCC,gBAAgB,EAChBC,eAAe,EACfC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAOnB;IACC,MAAM,EAAEC,cAAc,EAAE,GAAGP,oBAAoBE;IAC/C,yCAAyC;IACzC,MAAMM,gBAAgBJ,gBAAgBL,gBAAgBG,kBAAkBE,iBAAiBK;IACzF,MAAMC,yBAAyBF,gBAAgBJ,gBAAgBK;IAE/D,kDAAkD;IAClDP,iBAAiBS,MAAM,CAACC,IAAI,CAC1B;QACEC,MAAMR;QACNS,MAAM;QACNC,OAAO;YACLC,UAAU;QAEZ;QACAC,OAAO;QACPC,OAAO;QACPC,SAAS;IACX,GACA;QACEN,MAAMP;QACNQ,MAAM;QACNC,OAAO;YACLC,UAAU;QAEZ;QACAC,OAAO;QACPC,OAAO;QACPC,SAAS;IACX;IAGF,IAAI,CAACjB,iBAAiBa,KAAK,EAAE;QAC3Bb,iBAAiBa,KAAK,GAAG,CAAC;IAC5B;IACA,IAAI,CAACb,iBAAiBa,KAAK,CAACK,oBAAoB,EAAE;QAChDlB,iBAAiBa,KAAK,CAACK,oBAAoB,GAAG;YAACb;SAAe;IAChE,OAAO,IAAI,CAACL,iBAAiBa,KAAK,CAACK,oBAAoB,CAACC,QAAQ,CAACd,iBAAiB;QAChFL,iBAAiBa,KAAK,CAACK,oBAAoB,CAACR,IAAI,CAACL;IACnD;IAEAL,iBAAiBoB,KAAK,GAAG;QACvB,GAAIpB,iBAAiBoB,KAAK,IAAI,CAAC,CAAC;QAChCC,WAAW;eACLrB,iBAAiBoB,KAAK,EAAEC,aAAa,EAAE;YAC3C5B,6BAA6B;gBAAEQ;gBAAiBE;gBAAmBC;YAAmB;SACvF;QACDkB,cAAc;eACRtB,iBAAiBoB,KAAK,EAAEE,gBAAgB,EAAE;YAC9C5B,gCAAgC;gBAAEO;YAAgB;SACnD;QACDsB,cAAc;eACRvB,iBAAiBoB,KAAK,EAAEG,gBAAgB,EAAE;YAC9C5B,gCAAgC;gBAAEM;YAAgB;SACnD;QACDuB,iBAAiB;eACXxB,iBAAiBoB,KAAK,EAAEI,mBAAmB,EAAE;YACjD5B,mCAAmC;gBACjCK;gBACAC,eAAeM;gBACfL;gBACAE;gBACAD;YACF;SACD;IACH;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/hierarchy/addHierarchyToCollection.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\n\nimport { hierarchyCollectionAfterRead } from './hooks/collectionAfterRead.js'\nimport { hierarchyCollectionBeforeChange } from './hooks/collectionBeforeChange.js'\nimport { hierarchyCollectionBeforeDelete } from './hooks/collectionBeforeDelete.js'\nimport { hierarchyCollectionBeforeOperation } from './hooks/collectionBeforeOperation.js'\nimport { findFieldByName, findUseAsTitleField } from './utils/findUseAsTitle.js'\n\nexport const addHierarchyToCollection = ({\n collectionConfig,\n parentFieldName,\n slugFieldName,\n slugPathFieldName,\n titlePathFieldName,\n}: {\n collectionConfig: CollectionConfig\n parentFieldName: string\n slugFieldName?: string\n slugPathFieldName: string\n titlePathFieldName: string\n}) => {\n const { titleFieldName } = findUseAsTitleField(collectionConfig)\n // Verify slug field exists if configured\n const slugFieldInfo = slugFieldName ? findFieldByName(collectionConfig, slugFieldName) : undefined\n const validatedSlugFieldName = slugFieldInfo ? slugFieldName : undefined\n\n // Add virtual path fields (computed in afterRead)\n collectionConfig.fields.push(\n {\n name: slugPathFieldName,\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n index: true,\n label: 'Slug Path',\n virtual: true,\n },\n {\n name: titlePathFieldName,\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n index: true,\n label: 'Title Path',\n virtual: true,\n },\n )\n\n if (!collectionConfig.admin) {\n collectionConfig.admin = {}\n }\n if (!collectionConfig.admin.listSearchableFields) {\n collectionConfig.admin.listSearchableFields = [titleFieldName]\n } else if (!collectionConfig.admin.listSearchableFields.includes(titleFieldName)) {\n collectionConfig.admin.listSearchableFields.push(titleFieldName)\n }\n\n collectionConfig.hooks = {\n ...(collectionConfig.hooks || {}),\n afterRead: [\n ...(collectionConfig.hooks?.afterRead || []),\n hierarchyCollectionAfterRead({ parentFieldName, slugPathFieldName, titlePathFieldName }),\n ],\n beforeChange: [\n ...(collectionConfig.hooks?.beforeChange || []),\n hierarchyCollectionBeforeChange({ parentFieldName }),\n ],\n beforeDelete: [\n ...(collectionConfig.hooks?.beforeDelete || []),\n hierarchyCollectionBeforeDelete({ parentFieldName }),\n ],\n beforeOperation: [\n ...(collectionConfig.hooks?.beforeOperation || []),\n hierarchyCollectionBeforeOperation({\n parentFieldName,\n slugFieldName: validatedSlugFieldName,\n slugPathFieldName,\n titleFieldName,\n titlePathFieldName,\n }),\n ],\n }\n}\n"],"names":["hierarchyCollectionAfterRead","hierarchyCollectionBeforeChange","hierarchyCollectionBeforeDelete","hierarchyCollectionBeforeOperation","findFieldByName","findUseAsTitleField","addHierarchyToCollection","collectionConfig","parentFieldName","slugFieldName","slugPathFieldName","titlePathFieldName","titleFieldName","slugFieldInfo","undefined","validatedSlugFieldName","fields","push","name","type","admin","hidden","readOnly","index","label","virtual","listSearchableFields","includes","hooks","afterRead","beforeChange","beforeDelete","beforeOperation"],"mappings":"AAEA,SAASA,4BAA4B,QAAQ,iCAAgC;AAC7E,SAASC,+BAA+B,QAAQ,oCAAmC;AACnF,SAASC,+BAA+B,QAAQ,oCAAmC;AACnF,SAASC,kCAAkC,QAAQ,uCAAsC;AACzF,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,4BAA2B;AAEhF,OAAO,MAAMC,2BAA2B,CAAC,EACvCC,gBAAgB,EAChBC,eAAe,EACfC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAOnB;IACC,MAAM,EAAEC,cAAc,EAAE,GAAGP,oBAAoBE;IAC/C,yCAAyC;IACzC,MAAMM,gBAAgBJ,gBAAgBL,gBAAgBG,kBAAkBE,iBAAiBK;IACzF,MAAMC,yBAAyBF,gBAAgBJ,gBAAgBK;IAE/D,kDAAkD;IAClDP,iBAAiBS,MAAM,CAACC,IAAI,CAC1B;QACEC,MAAMR;QACNS,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;QACPC,OAAO;QACPC,SAAS;IACX,GACA;QACEP,MAAMP;QACNQ,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;QACPC,OAAO;QACPC,SAAS;IACX;IAGF,IAAI,CAAClB,iBAAiBa,KAAK,EAAE;QAC3Bb,iBAAiBa,KAAK,GAAG,CAAC;IAC5B;IACA,IAAI,CAACb,iBAAiBa,KAAK,CAACM,oBAAoB,EAAE;QAChDnB,iBAAiBa,KAAK,CAACM,oBAAoB,GAAG;YAACd;SAAe;IAChE,OAAO,IAAI,CAACL,iBAAiBa,KAAK,CAACM,oBAAoB,CAACC,QAAQ,CAACf,iBAAiB;QAChFL,iBAAiBa,KAAK,CAACM,oBAAoB,CAACT,IAAI,CAACL;IACnD;IAEAL,iBAAiBqB,KAAK,GAAG;QACvB,GAAIrB,iBAAiBqB,KAAK,IAAI,CAAC,CAAC;QAChCC,WAAW;eACLtB,iBAAiBqB,KAAK,EAAEC,aAAa,EAAE;YAC3C7B,6BAA6B;gBAAEQ;gBAAiBE;gBAAmBC;YAAmB;SACvF;QACDmB,cAAc;eACRvB,iBAAiBqB,KAAK,EAAEE,gBAAgB,EAAE;YAC9C7B,gCAAgC;gBAAEO;YAAgB;SACnD;QACDuB,cAAc;eACRxB,iBAAiBqB,KAAK,EAAEG,gBAAgB,EAAE;YAC9C7B,gCAAgC;gBAAEM;YAAgB;SACnD;QACDwB,iBAAiB;eACXzB,iBAAiBqB,KAAK,EAAEI,mBAAmB,EAAE;YACjD7B,mCAAmC;gBACjCK;gBACAC,eAAeM;gBACfL;gBACAE;gBACAD;YACF;SACD;IACH;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectionAfterDelete.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/hooks/collectionAfterDelete.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE/D,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,8BAA8B,2BAChB,IAAI,KAAG,yBAgB/B,CAAA"}
1
+ {"version":3,"file":"collectionAfterDelete.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/hooks/collectionAfterDelete.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE/D,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,8BAA8B,2BAChB,IAAI,KAAG,yBAiB/B,CAAA"}
@@ -8,6 +8,7 @@
8
8
  data: {
9
9
  [fieldName]: null
10
10
  },
11
+ overrideAccess: true,
11
12
  req,
12
13
  where: {
13
14
  [fieldName]: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hierarchy/hooks/collectionAfterDelete.ts"],"sourcesContent":["/**\n * afterDelete Hook Responsibilities:\n * - Clear folder references from related documents when folder is deleted\n */\n\nimport type { CollectionAfterDeleteHook } from '../../index.js'\n\ntype Args = {\n /**\n * Map of collection slugs to their field names\n */\n relatedCollections: Record<string, string>\n}\n\nexport const hierarchyCollectionAfterDelete =\n ({ relatedCollections }: Args): CollectionAfterDeleteHook =>\n async ({ id, req }) => {\n for (const [collectionSlug, fieldName] of Object.entries(relatedCollections)) {\n await req.payload.update({\n collection: collectionSlug,\n data: {\n [fieldName]: null,\n },\n req,\n where: {\n [fieldName]: {\n equals: id,\n },\n },\n })\n }\n }\n"],"names":["hierarchyCollectionAfterDelete","relatedCollections","id","req","collectionSlug","fieldName","Object","entries","payload","update","collection","data","where","equals"],"mappings":"AAAA;;;CAGC,GAWD,OAAO,MAAMA,iCACX,CAAC,EAAEC,kBAAkB,EAAQ,GAC7B,OAAO,EAAEC,EAAE,EAAEC,GAAG,EAAE;QAChB,KAAK,MAAM,CAACC,gBAAgBC,UAAU,IAAIC,OAAOC,OAAO,CAACN,oBAAqB;YAC5E,MAAME,IAAIK,OAAO,CAACC,MAAM,CAAC;gBACvBC,YAAYN;gBACZO,MAAM;oBACJ,CAACN,UAAU,EAAE;gBACf;gBACAF;gBACAS,OAAO;oBACL,CAACP,UAAU,EAAE;wBACXQ,QAAQX;oBACV;gBACF;YACF;QACF;IACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/hierarchy/hooks/collectionAfterDelete.ts"],"sourcesContent":["/**\n * afterDelete Hook Responsibilities:\n * - Clear folder references from related documents when folder is deleted\n */\n\nimport type { CollectionAfterDeleteHook } from '../../index.js'\n\ntype Args = {\n /**\n * Map of collection slugs to their field names\n */\n relatedCollections: Record<string, string>\n}\n\nexport const hierarchyCollectionAfterDelete =\n ({ relatedCollections }: Args): CollectionAfterDeleteHook =>\n async ({ id, req }) => {\n for (const [collectionSlug, fieldName] of Object.entries(relatedCollections)) {\n await req.payload.update({\n collection: collectionSlug,\n data: {\n [fieldName]: null,\n },\n overrideAccess: true,\n req,\n where: {\n [fieldName]: {\n equals: id,\n },\n },\n })\n }\n }\n"],"names":["hierarchyCollectionAfterDelete","relatedCollections","id","req","collectionSlug","fieldName","Object","entries","payload","update","collection","data","overrideAccess","where","equals"],"mappings":"AAAA;;;CAGC,GAWD,OAAO,MAAMA,iCACX,CAAC,EAAEC,kBAAkB,EAAQ,GAC7B,OAAO,EAAEC,EAAE,EAAEC,GAAG,EAAE;QAChB,KAAK,MAAM,CAACC,gBAAgBC,UAAU,IAAIC,OAAOC,OAAO,CAACN,oBAAqB;YAC5E,MAAME,IAAIK,OAAO,CAACC,MAAM,CAAC;gBACvBC,YAAYN;gBACZO,MAAM;oBACJ,CAACN,UAAU,EAAE;gBACf;gBACAO,gBAAgB;gBAChBT;gBACAU,OAAO;oBACL,CAACR,UAAU,EAAE;wBACXS,QAAQZ;oBACV;gBACF;YACF;QACF;IACF,EAAC"}
@@ -57,6 +57,7 @@
57
57
  id: ancestorId,
58
58
  collection: collection.slug,
59
59
  depth: 0,
60
+ overrideAccess: true,
60
61
  req,
61
62
  select: {
62
63
  [fieldName]: true
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hierarchy/hooks/collectionBeforeChange.ts"],"sourcesContent":["/**\n * beforeChange Hook Responsibilities:\n * - Validate circular references when parent changes\n * - Prevent moving a folder into its own subfolder\n *\n * Does NOT handle:\n * - Tree structure (no stored tree anymore)\n * - Path computation (done in afterRead)\n */\n\nimport type {\n CollectionBeforeChangeHook,\n CollectionConfig,\n JsonObject,\n PayloadRequest,\n} from '../../index.js'\n\ntype Args = {\n /**\n * The name of the field that contains the parent document ID\n */\n parentFieldName: string\n}\n\nexport const hierarchyCollectionBeforeChange =\n ({ parentFieldName }: Args): CollectionBeforeChangeHook =>\n async ({ collection, data, operation, originalDoc, req }) => {\n // Determine the new parent ID\n const newParentID =\n data[parentFieldName] !== undefined ? data[parentFieldName] : originalDoc?.[parentFieldName]\n const parentChanged =\n operation === 'update' &&\n data[parentFieldName] !== undefined &&\n data[parentFieldName] !== originalDoc?.[parentFieldName]\n\n // Validate circular references when parent is changing\n if (parentChanged && newParentID) {\n // Extract parent ID (could be plain ID or populated object with id)\n const parentId =\n typeof newParentID === 'object' && 'id' in newParentID ? newParentID.id : newParentID\n\n // Prevent self-referential parent\n if (parentId === (originalDoc?.id || data.id)) {\n throw new Error('Document cannot be its own parent')\n }\n\n // Check for true circular references (loops in the chain), but allow\n // moving into a child - that will be handled by afterChange reparenting\n await validateNoCircularReference({\n collection,\n currentDocId: originalDoc?.id,\n parentId,\n req,\n })\n }\n\n return data\n }\n\n/**\n * Walks up the parent chain to detect true circular references (loops).\n * Does NOT throw when moving into a child - that case is handled by afterChange\n * which will automatically reparent the child.\n */\nasync function validateNoCircularReference({\n collection,\n currentDocId,\n parentId,\n req,\n}: {\n collection: CollectionConfig\n currentDocId: number | string\n parentId: number | string\n req: PayloadRequest\n}) {\n const parentFieldName =\n collection.hierarchy && collection.hierarchy !== true\n ? collection.hierarchy.parentFieldName\n : undefined\n\n if (!parentFieldName) {\n return\n }\n\n const fieldName = parentFieldName\n\n async function checkAncestor(\n ancestorId: number | string,\n visitedNodes: Set<string> = new Set(),\n ): Promise<void> {\n // Create unique key for this node\n const nodeKey = `${collection.slug}:${ancestorId}`\n\n // Check if we've visited this node before (true loop in the chain)\n if (visitedNodes.has(nodeKey)) {\n throw new Error(`Circular reference detected: the parent chain contains a loop`)\n }\n\n // If we've reached the current document, this means we're trying to move into a child\n if (ancestorId === currentDocId) {\n throw new Error('Cannot move folder into its own subfolder')\n }\n\n // Add this node to visited set\n visitedNodes.add(nodeKey)\n\n try {\n const ancestor = (await req.payload.findByID({\n id: ancestorId,\n collection: collection.slug,\n depth: 0,\n req,\n select: {\n [fieldName]: true,\n },\n })) as JsonObject\n\n const nextParent = ancestor?.[fieldName]\n\n if (!nextParent) {\n return // No parent, end of chain\n }\n\n // Extract next parent ID (could be plain ID or populated object)\n let nextParentId = nextParent\n if (typeof nextParent === 'object' && 'id' in nextParent) {\n nextParentId = nextParent.id\n }\n\n // Continue traversal if parent exists\n if (\n nextParentId !== null &&\n nextParentId !== undefined &&\n (typeof nextParentId === 'string' || typeof nextParentId === 'number')\n ) {\n return checkAncestor(nextParentId, visitedNodes)\n }\n } catch (error) {\n // If it's our validation error, re-throw it\n if (error instanceof Error && error.message?.includes('Circular reference detected')) {\n throw error\n }\n // Non-existent parent can't create a circular reference\n return\n }\n }\n\n await checkAncestor(parentId)\n}\n"],"names":["hierarchyCollectionBeforeChange","parentFieldName","collection","data","operation","originalDoc","req","newParentID","undefined","parentChanged","parentId","id","Error","validateNoCircularReference","currentDocId","hierarchy","fieldName","checkAncestor","ancestorId","visitedNodes","Set","nodeKey","slug","has","add","ancestor","payload","findByID","depth","select","nextParent","nextParentId","error","message","includes"],"mappings":"AAAA;;;;;;;;CAQC,GAgBD,OAAO,MAAMA,kCACX,CAAC,EAAEC,eAAe,EAAQ,GAC1B,OAAO,EAAEC,UAAU,EAAEC,IAAI,EAAEC,SAAS,EAAEC,WAAW,EAAEC,GAAG,EAAE;QACtD,8BAA8B;QAC9B,MAAMC,cACJJ,IAAI,CAACF,gBAAgB,KAAKO,YAAYL,IAAI,CAACF,gBAAgB,GAAGI,aAAa,CAACJ,gBAAgB;QAC9F,MAAMQ,gBACJL,cAAc,YACdD,IAAI,CAACF,gBAAgB,KAAKO,aAC1BL,IAAI,CAACF,gBAAgB,KAAKI,aAAa,CAACJ,gBAAgB;QAE1D,uDAAuD;QACvD,IAAIQ,iBAAiBF,aAAa;YAChC,oEAAoE;YACpE,MAAMG,WACJ,OAAOH,gBAAgB,YAAY,QAAQA,cAAcA,YAAYI,EAAE,GAAGJ;YAE5E,kCAAkC;YAClC,IAAIG,aAAcL,CAAAA,aAAaM,MAAMR,KAAKQ,EAAE,AAAD,GAAI;gBAC7C,MAAM,IAAIC,MAAM;YAClB;YAEA,qEAAqE;YACrE,wEAAwE;YACxE,MAAMC,4BAA4B;gBAChCX;gBACAY,cAAcT,aAAaM;gBAC3BD;gBACAJ;YACF;QACF;QAEA,OAAOH;IACT,EAAC;AAEH;;;;CAIC,GACD,eAAeU,4BAA4B,EACzCX,UAAU,EACVY,YAAY,EACZJ,QAAQ,EACRJ,GAAG,EAMJ;IACC,MAAML,kBACJC,WAAWa,SAAS,IAAIb,WAAWa,SAAS,KAAK,OAC7Cb,WAAWa,SAAS,CAACd,eAAe,GACpCO;IAEN,IAAI,CAACP,iBAAiB;QACpB;IACF;IAEA,MAAMe,YAAYf;IAElB,eAAegB,cACbC,UAA2B,EAC3BC,eAA4B,IAAIC,KAAK;QAErC,kCAAkC;QAClC,MAAMC,UAAU,GAAGnB,WAAWoB,IAAI,CAAC,CAAC,EAAEJ,YAAY;QAElD,mEAAmE;QACnE,IAAIC,aAAaI,GAAG,CAACF,UAAU;YAC7B,MAAM,IAAIT,MAAM,CAAC,6DAA6D,CAAC;QACjF;QAEA,sFAAsF;QACtF,IAAIM,eAAeJ,cAAc;YAC/B,MAAM,IAAIF,MAAM;QAClB;QAEA,+BAA+B;QAC/BO,aAAaK,GAAG,CAACH;QAEjB,IAAI;YACF,MAAMI,WAAY,MAAMnB,IAAIoB,OAAO,CAACC,QAAQ,CAAC;gBAC3ChB,IAAIO;gBACJhB,YAAYA,WAAWoB,IAAI;gBAC3BM,OAAO;gBACPtB;gBACAuB,QAAQ;oBACN,CAACb,UAAU,EAAE;gBACf;YACF;YAEA,MAAMc,aAAaL,UAAU,CAACT,UAAU;YAExC,IAAI,CAACc,YAAY;gBACf,QAAO,0BAA0B;YACnC;YAEA,iEAAiE;YACjE,IAAIC,eAAeD;YACnB,IAAI,OAAOA,eAAe,YAAY,QAAQA,YAAY;gBACxDC,eAAeD,WAAWnB,EAAE;YAC9B;YAEA,sCAAsC;YACtC,IACEoB,iBAAiB,QACjBA,iBAAiBvB,aAChB,CAAA,OAAOuB,iBAAiB,YAAY,OAAOA,iBAAiB,QAAO,GACpE;gBACA,OAAOd,cAAcc,cAAcZ;YACrC;QACF,EAAE,OAAOa,OAAO;YACd,4CAA4C;YAC5C,IAAIA,iBAAiBpB,SAASoB,MAAMC,OAAO,EAAEC,SAAS,gCAAgC;gBACpF,MAAMF;YACR;YACA,wDAAwD;YACxD;QACF;IACF;IAEA,MAAMf,cAAcP;AACtB"}
1
+ {"version":3,"sources":["../../../src/hierarchy/hooks/collectionBeforeChange.ts"],"sourcesContent":["/**\n * beforeChange Hook Responsibilities:\n * - Validate circular references when parent changes\n * - Prevent moving a folder into its own subfolder\n *\n * Does NOT handle:\n * - Tree structure (no stored tree anymore)\n * - Path computation (done in afterRead)\n */\n\nimport type {\n CollectionBeforeChangeHook,\n CollectionConfig,\n JsonObject,\n PayloadRequest,\n} from '../../index.js'\n\ntype Args = {\n /**\n * The name of the field that contains the parent document ID\n */\n parentFieldName: string\n}\n\nexport const hierarchyCollectionBeforeChange =\n ({ parentFieldName }: Args): CollectionBeforeChangeHook =>\n async ({ collection, data, operation, originalDoc, req }) => {\n // Determine the new parent ID\n const newParentID =\n data[parentFieldName] !== undefined ? data[parentFieldName] : originalDoc?.[parentFieldName]\n const parentChanged =\n operation === 'update' &&\n data[parentFieldName] !== undefined &&\n data[parentFieldName] !== originalDoc?.[parentFieldName]\n\n // Validate circular references when parent is changing\n if (parentChanged && newParentID) {\n // Extract parent ID (could be plain ID or populated object with id)\n const parentId =\n typeof newParentID === 'object' && 'id' in newParentID ? newParentID.id : newParentID\n\n // Prevent self-referential parent\n if (parentId === (originalDoc?.id || data.id)) {\n throw new Error('Document cannot be its own parent')\n }\n\n // Check for true circular references (loops in the chain), but allow\n // moving into a child - that will be handled by afterChange reparenting\n await validateNoCircularReference({\n collection,\n currentDocId: originalDoc?.id,\n parentId,\n req,\n })\n }\n\n return data\n }\n\n/**\n * Walks up the parent chain to detect true circular references (loops).\n * Does NOT throw when moving into a child - that case is handled by afterChange\n * which will automatically reparent the child.\n */\nasync function validateNoCircularReference({\n collection,\n currentDocId,\n parentId,\n req,\n}: {\n collection: CollectionConfig\n currentDocId: number | string\n parentId: number | string\n req: PayloadRequest\n}) {\n const parentFieldName =\n collection.hierarchy && collection.hierarchy !== true\n ? collection.hierarchy.parentFieldName\n : undefined\n\n if (!parentFieldName) {\n return\n }\n\n const fieldName = parentFieldName\n\n async function checkAncestor(\n ancestorId: number | string,\n visitedNodes: Set<string> = new Set(),\n ): Promise<void> {\n // Create unique key for this node\n const nodeKey = `${collection.slug}:${ancestorId}`\n\n // Check if we've visited this node before (true loop in the chain)\n if (visitedNodes.has(nodeKey)) {\n throw new Error(`Circular reference detected: the parent chain contains a loop`)\n }\n\n // If we've reached the current document, this means we're trying to move into a child\n if (ancestorId === currentDocId) {\n throw new Error('Cannot move folder into its own subfolder')\n }\n\n // Add this node to visited set\n visitedNodes.add(nodeKey)\n\n try {\n const ancestor = (await req.payload.findByID({\n id: ancestorId,\n collection: collection.slug,\n depth: 0,\n overrideAccess: true,\n req,\n select: {\n [fieldName]: true,\n },\n })) as JsonObject\n\n const nextParent = ancestor?.[fieldName]\n\n if (!nextParent) {\n return // No parent, end of chain\n }\n\n // Extract next parent ID (could be plain ID or populated object)\n let nextParentId = nextParent\n if (typeof nextParent === 'object' && 'id' in nextParent) {\n nextParentId = nextParent.id\n }\n\n // Continue traversal if parent exists\n if (\n nextParentId !== null &&\n nextParentId !== undefined &&\n (typeof nextParentId === 'string' || typeof nextParentId === 'number')\n ) {\n return checkAncestor(nextParentId, visitedNodes)\n }\n } catch (error) {\n // If it's our validation error, re-throw it\n if (error instanceof Error && error.message?.includes('Circular reference detected')) {\n throw error\n }\n // Non-existent parent can't create a circular reference\n return\n }\n }\n\n await checkAncestor(parentId)\n}\n"],"names":["hierarchyCollectionBeforeChange","parentFieldName","collection","data","operation","originalDoc","req","newParentID","undefined","parentChanged","parentId","id","Error","validateNoCircularReference","currentDocId","hierarchy","fieldName","checkAncestor","ancestorId","visitedNodes","Set","nodeKey","slug","has","add","ancestor","payload","findByID","depth","overrideAccess","select","nextParent","nextParentId","error","message","includes"],"mappings":"AAAA;;;;;;;;CAQC,GAgBD,OAAO,MAAMA,kCACX,CAAC,EAAEC,eAAe,EAAQ,GAC1B,OAAO,EAAEC,UAAU,EAAEC,IAAI,EAAEC,SAAS,EAAEC,WAAW,EAAEC,GAAG,EAAE;QACtD,8BAA8B;QAC9B,MAAMC,cACJJ,IAAI,CAACF,gBAAgB,KAAKO,YAAYL,IAAI,CAACF,gBAAgB,GAAGI,aAAa,CAACJ,gBAAgB;QAC9F,MAAMQ,gBACJL,cAAc,YACdD,IAAI,CAACF,gBAAgB,KAAKO,aAC1BL,IAAI,CAACF,gBAAgB,KAAKI,aAAa,CAACJ,gBAAgB;QAE1D,uDAAuD;QACvD,IAAIQ,iBAAiBF,aAAa;YAChC,oEAAoE;YACpE,MAAMG,WACJ,OAAOH,gBAAgB,YAAY,QAAQA,cAAcA,YAAYI,EAAE,GAAGJ;YAE5E,kCAAkC;YAClC,IAAIG,aAAcL,CAAAA,aAAaM,MAAMR,KAAKQ,EAAE,AAAD,GAAI;gBAC7C,MAAM,IAAIC,MAAM;YAClB;YAEA,qEAAqE;YACrE,wEAAwE;YACxE,MAAMC,4BAA4B;gBAChCX;gBACAY,cAAcT,aAAaM;gBAC3BD;gBACAJ;YACF;QACF;QAEA,OAAOH;IACT,EAAC;AAEH;;;;CAIC,GACD,eAAeU,4BAA4B,EACzCX,UAAU,EACVY,YAAY,EACZJ,QAAQ,EACRJ,GAAG,EAMJ;IACC,MAAML,kBACJC,WAAWa,SAAS,IAAIb,WAAWa,SAAS,KAAK,OAC7Cb,WAAWa,SAAS,CAACd,eAAe,GACpCO;IAEN,IAAI,CAACP,iBAAiB;QACpB;IACF;IAEA,MAAMe,YAAYf;IAElB,eAAegB,cACbC,UAA2B,EAC3BC,eAA4B,IAAIC,KAAK;QAErC,kCAAkC;QAClC,MAAMC,UAAU,GAAGnB,WAAWoB,IAAI,CAAC,CAAC,EAAEJ,YAAY;QAElD,mEAAmE;QACnE,IAAIC,aAAaI,GAAG,CAACF,UAAU;YAC7B,MAAM,IAAIT,MAAM,CAAC,6DAA6D,CAAC;QACjF;QAEA,sFAAsF;QACtF,IAAIM,eAAeJ,cAAc;YAC/B,MAAM,IAAIF,MAAM;QAClB;QAEA,+BAA+B;QAC/BO,aAAaK,GAAG,CAACH;QAEjB,IAAI;YACF,MAAMI,WAAY,MAAMnB,IAAIoB,OAAO,CAACC,QAAQ,CAAC;gBAC3ChB,IAAIO;gBACJhB,YAAYA,WAAWoB,IAAI;gBAC3BM,OAAO;gBACPC,gBAAgB;gBAChBvB;gBACAwB,QAAQ;oBACN,CAACd,UAAU,EAAE;gBACf;YACF;YAEA,MAAMe,aAAaN,UAAU,CAACT,UAAU;YAExC,IAAI,CAACe,YAAY;gBACf,QAAO,0BAA0B;YACnC;YAEA,iEAAiE;YACjE,IAAIC,eAAeD;YACnB,IAAI,OAAOA,eAAe,YAAY,QAAQA,YAAY;gBACxDC,eAAeD,WAAWpB,EAAE;YAC9B;YAEA,sCAAsC;YACtC,IACEqB,iBAAiB,QACjBA,iBAAiBxB,aAChB,CAAA,OAAOwB,iBAAiB,YAAY,OAAOA,iBAAiB,QAAO,GACpE;gBACA,OAAOf,cAAce,cAAcb;YACrC;QACF,EAAE,OAAOc,OAAO;YACd,4CAA4C;YAC5C,IAAIA,iBAAiBrB,SAASqB,MAAMC,OAAO,EAAEC,SAAS,gCAAgC;gBACpF,MAAMF;YACR;YACA,wDAAwD;YACxD;QACF;IACF;IAEA,MAAMhB,cAAcP;AACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectionBeforeDelete.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/hooks/collectionBeforeDelete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAEhE,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,+BAA+B,wBACpB,IAAI,KAAG,0BAe5B,CAAA"}
1
+ {"version":3,"file":"collectionBeforeDelete.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/hooks/collectionBeforeDelete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAEhE,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,+BAA+B,wBACpB,IAAI,KAAG,0BAgB5B,CAAA"}
@@ -8,6 +8,7 @@
8
8
  // Delete all child folders (cascade delete)
9
9
  await req.payload.delete({
10
10
  collection: collection.slug,
11
+ overrideAccess: true,
11
12
  req,
12
13
  where: {
13
14
  [parentFieldName]: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hierarchy/hooks/collectionBeforeDelete.ts"],"sourcesContent":["/**\n * beforeDelete Hook Responsibilities:\n * - Delete child folders when parent is deleted (cascade delete)\n * - Set context flag for deletion tracking\n */\n\nimport type { CollectionBeforeDeleteHook } from '../../index.js'\n\ntype Args = {\n /**\n * The name of the field that contains the parent document ID\n */\n parentFieldName: string\n}\n\nexport const hierarchyCollectionBeforeDelete =\n ({ parentFieldName }: Args): CollectionBeforeDeleteHook =>\n async ({ id, collection, req }) => {\n req.context = req.context || {}\n req.context.isDeleting = true\n\n // Delete all child folders (cascade delete)\n await req.payload.delete({\n collection: collection.slug,\n req,\n where: {\n [parentFieldName]: {\n equals: id,\n },\n },\n })\n }\n"],"names":["hierarchyCollectionBeforeDelete","parentFieldName","id","collection","req","context","isDeleting","payload","delete","slug","where","equals"],"mappings":"AAAA;;;;CAIC,GAWD,OAAO,MAAMA,kCACX,CAAC,EAAEC,eAAe,EAAQ,GAC1B,OAAO,EAAEC,EAAE,EAAEC,UAAU,EAAEC,GAAG,EAAE;QAC5BA,IAAIC,OAAO,GAAGD,IAAIC,OAAO,IAAI,CAAC;QAC9BD,IAAIC,OAAO,CAACC,UAAU,GAAG;QAEzB,4CAA4C;QAC5C,MAAMF,IAAIG,OAAO,CAACC,MAAM,CAAC;YACvBL,YAAYA,WAAWM,IAAI;YAC3BL;YACAM,OAAO;gBACL,CAACT,gBAAgB,EAAE;oBACjBU,QAAQT;gBACV;YACF;QACF;IACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/hierarchy/hooks/collectionBeforeDelete.ts"],"sourcesContent":["/**\n * beforeDelete Hook Responsibilities:\n * - Delete child folders when parent is deleted (cascade delete)\n * - Set context flag for deletion tracking\n */\n\nimport type { CollectionBeforeDeleteHook } from '../../index.js'\n\ntype Args = {\n /**\n * The name of the field that contains the parent document ID\n */\n parentFieldName: string\n}\n\nexport const hierarchyCollectionBeforeDelete =\n ({ parentFieldName }: Args): CollectionBeforeDeleteHook =>\n async ({ id, collection, req }) => {\n req.context = req.context || {}\n req.context.isDeleting = true\n\n // Delete all child folders (cascade delete)\n await req.payload.delete({\n collection: collection.slug,\n overrideAccess: true,\n req,\n where: {\n [parentFieldName]: {\n equals: id,\n },\n },\n })\n }\n"],"names":["hierarchyCollectionBeforeDelete","parentFieldName","id","collection","req","context","isDeleting","payload","delete","slug","overrideAccess","where","equals"],"mappings":"AAAA;;;;CAIC,GAWD,OAAO,MAAMA,kCACX,CAAC,EAAEC,eAAe,EAAQ,GAC1B,OAAO,EAAEC,EAAE,EAAEC,UAAU,EAAEC,GAAG,EAAE;QAC5BA,IAAIC,OAAO,GAAGD,IAAIC,OAAO,IAAI,CAAC;QAC9BD,IAAIC,OAAO,CAACC,UAAU,GAAG;QAEzB,4CAA4C;QAC5C,MAAMF,IAAIG,OAAO,CAACC,MAAM,CAAC;YACvBL,YAAYA,WAAWM,IAAI;YAC3BC,gBAAgB;YAChBN;YACAO,OAAO;gBACL,CAACV,gBAAgB,EAAE;oBACjBW,QAAQV;gBACV;YACF;QACF;IACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ensureSafeCollectionsChange.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/hooks/ensureSafeCollectionsChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,4BAA4B,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIjG,eAAO,MAAM,2BAA2B,sEAMnC;IACD,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,cAAc,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,KAAG,4BAmIH,CAAA"}
1
+ {"version":3,"file":"ensureSafeCollectionsChange.d.ts","sourceRoot":"","sources":["../../../src/hierarchy/hooks/ensureSafeCollectionsChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AAIvB,eAAO,MAAM,2BAA2B,sEAMnC;IACD,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,cAAc,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,KAAG,4BA4KH,CAAA"}
@@ -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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"}
@@ -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,6 +229,7 @@ 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 || [];
@@ -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 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 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 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","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","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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"}