payload 4.0.0-internal.d28e9fb → 4.0.0-internal.fa345ef

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 (751) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +11 -0
  3. package/dist/admin/RichText.d.ts +4 -17
  4. package/dist/admin/RichText.d.ts.map +1 -1
  5. package/dist/admin/RichText.js.map +1 -1
  6. package/dist/admin/adapters/cookies.d.ts +21 -0
  7. package/dist/admin/adapters/cookies.d.ts.map +1 -0
  8. package/dist/admin/adapters/cookies.js +3 -0
  9. package/dist/admin/adapters/cookies.js.map +1 -0
  10. package/dist/admin/adapters/devReload.d.ts +9 -0
  11. package/dist/admin/adapters/devReload.d.ts.map +1 -0
  12. package/dist/admin/adapters/devReload.js +6 -0
  13. package/dist/admin/adapters/devReload.js.map +1 -0
  14. package/dist/admin/adapters/index.d.ts +7 -0
  15. package/dist/admin/adapters/index.d.ts.map +1 -0
  16. package/dist/admin/adapters/index.js +3 -0
  17. package/dist/admin/adapters/index.js.map +1 -0
  18. package/dist/admin/adapters/render.d.ts +16 -0
  19. package/dist/admin/adapters/render.d.ts.map +1 -0
  20. package/dist/admin/adapters/render.js +7 -0
  21. package/dist/admin/adapters/render.js.map +1 -0
  22. package/dist/admin/adapters/router.d.ts +56 -0
  23. package/dist/admin/adapters/router.d.ts.map +1 -0
  24. package/dist/admin/adapters/router.js +3 -0
  25. package/dist/admin/adapters/router.js.map +1 -0
  26. package/dist/admin/adapters/server.d.ts +23 -0
  27. package/dist/admin/adapters/server.d.ts.map +1 -0
  28. package/dist/admin/adapters/server.js +6 -0
  29. package/dist/admin/adapters/server.js.map +1 -0
  30. package/dist/admin/adapters/views.d.ts +36 -0
  31. package/dist/admin/adapters/views.d.ts.map +1 -0
  32. package/dist/admin/adapters/views.js +7 -0
  33. package/dist/admin/adapters/views.js.map +1 -0
  34. package/dist/admin/elements/Table.d.ts +1 -0
  35. package/dist/admin/elements/Table.d.ts.map +1 -1
  36. package/dist/admin/elements/Table.js.map +1 -1
  37. package/dist/admin/fields/Row.d.ts +2 -2
  38. package/dist/admin/fields/Row.d.ts.map +1 -1
  39. package/dist/admin/fields/Row.js.map +1 -1
  40. package/dist/admin/forms/Description.d.ts +2 -2
  41. package/dist/admin/forms/Description.d.ts.map +1 -1
  42. package/dist/admin/forms/Description.js.map +1 -1
  43. package/dist/admin/forms/Field.d.ts +10 -5
  44. package/dist/admin/forms/Field.d.ts.map +1 -1
  45. package/dist/admin/forms/Field.js.map +1 -1
  46. package/dist/admin/functions/index.d.ts +9 -0
  47. package/dist/admin/functions/index.d.ts.map +1 -1
  48. package/dist/admin/functions/index.js.map +1 -1
  49. package/dist/admin/types.d.ts +3 -2
  50. package/dist/admin/types.d.ts.map +1 -1
  51. package/dist/admin/types.js.map +1 -1
  52. package/dist/admin/views/dashboard.d.ts +7 -0
  53. package/dist/admin/views/dashboard.d.ts.map +1 -1
  54. package/dist/admin/views/dashboard.js.map +1 -1
  55. package/dist/admin/views/document.d.ts +5 -3
  56. package/dist/admin/views/document.d.ts.map +1 -1
  57. package/dist/admin/views/document.js.map +1 -1
  58. package/dist/admin/views/hierarchyList.d.ts +1 -0
  59. package/dist/admin/views/hierarchyList.d.ts.map +1 -1
  60. package/dist/admin/views/hierarchyList.js.map +1 -1
  61. package/dist/admin/views/list.d.ts +10 -1
  62. package/dist/admin/views/list.d.ts.map +1 -1
  63. package/dist/admin/views/list.js.map +1 -1
  64. package/dist/auth/baseFields/apiKey.d.ts +10 -2
  65. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  66. package/dist/auth/baseFields/apiKey.js +35 -24
  67. package/dist/auth/baseFields/apiKey.js.map +1 -1
  68. package/dist/auth/cookies.d.ts.map +1 -1
  69. package/dist/auth/defaultAccess.d.ts +1 -1
  70. package/dist/auth/defaultAccess.d.ts.map +1 -1
  71. package/dist/auth/defaultAccess.js +1 -1
  72. package/dist/auth/defaultAccess.js.map +1 -1
  73. package/dist/auth/defaultUser.d.ts.map +1 -1
  74. package/dist/auth/defaultUser.js +2 -1
  75. package/dist/auth/defaultUser.js.map +1 -1
  76. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
  77. package/dist/auth/executeAccess.d.ts.map +1 -1
  78. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  79. package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
  80. package/dist/auth/extractJWT.d.ts.map +1 -1
  81. package/dist/auth/getAuthFields.d.ts.map +1 -1
  82. package/dist/auth/getAuthFields.js +2 -2
  83. package/dist/auth/getAuthFields.js.map +1 -1
  84. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  85. package/dist/auth/getLoginOptions.d.ts.map +1 -1
  86. package/dist/auth/isUserLocked.d.ts.map +1 -1
  87. package/dist/auth/jwt.d.ts.map +1 -1
  88. package/dist/auth/operations/access.d.ts.map +1 -1
  89. package/dist/auth/operations/auth.d.ts +2 -2
  90. package/dist/auth/operations/auth.d.ts.map +1 -1
  91. package/dist/auth/operations/auth.js.map +1 -1
  92. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  93. package/dist/auth/operations/init.d.ts.map +1 -1
  94. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  95. package/dist/auth/operations/login.d.ts +2 -1
  96. package/dist/auth/operations/login.d.ts.map +1 -1
  97. package/dist/auth/operations/login.js.map +1 -1
  98. package/dist/auth/operations/logout.d.ts.map +1 -1
  99. package/dist/auth/operations/me.d.ts.map +1 -1
  100. package/dist/auth/operations/me.js.map +1 -1
  101. package/dist/auth/operations/refresh.d.ts.map +1 -1
  102. package/dist/auth/operations/refresh.js +9 -3
  103. package/dist/auth/operations/refresh.js.map +1 -1
  104. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  105. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  106. package/dist/auth/operations/resetPassword.js.map +1 -1
  107. package/dist/auth/operations/unlock.d.ts.map +1 -1
  108. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  109. package/dist/auth/sendVerificationEmail.d.ts +2 -2
  110. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  111. package/dist/auth/sendVerificationEmail.js +1 -1
  112. package/dist/auth/sendVerificationEmail.js.map +1 -1
  113. package/dist/auth/sessions.d.ts +4 -5
  114. package/dist/auth/sessions.d.ts.map +1 -1
  115. package/dist/auth/sessions.js +5 -3
  116. package/dist/auth/sessions.js.map +1 -1
  117. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  118. package/dist/auth/strategies/apiKey.js +6 -17
  119. package/dist/auth/strategies/apiKey.js.map +1 -1
  120. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  121. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  122. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  123. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  124. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  125. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  126. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  127. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  128. package/dist/auth/types.d.ts +28 -21
  129. package/dist/auth/types.d.ts.map +1 -1
  130. package/dist/auth/types.js.map +1 -1
  131. package/dist/bin/build.d.ts +25 -0
  132. package/dist/bin/build.d.ts.map +1 -0
  133. package/dist/bin/build.js +80 -0
  134. package/dist/bin/build.js.map +1 -0
  135. package/dist/bin/build.spec.js +170 -0
  136. package/dist/bin/build.spec.js.map +1 -0
  137. package/dist/bin/generateImportMap/index.d.ts.map +1 -1
  138. package/dist/bin/generateImportMap/index.js +8 -5
  139. package/dist/bin/generateImportMap/index.js.map +1 -1
  140. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  141. package/dist/bin/generateImportMap/iterateCollections.js +11 -0
  142. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  143. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  144. package/dist/bin/generateImportMap/iterateConfig.js +12 -0
  145. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  146. package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -1
  147. package/dist/bin/generateImportMap/iterateFields.js +4 -1
  148. package/dist/bin/generateImportMap/iterateFields.js.map +1 -1
  149. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -1
  150. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
  151. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
  152. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +32 -18
  153. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
  154. package/dist/bin/generateTypes.d.ts +3 -2
  155. package/dist/bin/generateTypes.d.ts.map +1 -1
  156. package/dist/bin/generateTypes.js +11 -1
  157. package/dist/bin/generateTypes.js.map +1 -1
  158. package/dist/bin/index.d.ts.map +1 -1
  159. package/dist/bin/index.js +9 -0
  160. package/dist/bin/index.js.map +1 -1
  161. package/dist/bin/loadEnv.d.ts +3 -1
  162. package/dist/bin/loadEnv.d.ts.map +1 -1
  163. package/dist/bin/loadEnv.js +40 -10
  164. package/dist/bin/loadEnv.js.map +1 -1
  165. package/dist/bin/migrate.d.ts.map +1 -1
  166. package/dist/collections/config/client.d.ts +1 -1
  167. package/dist/collections/config/client.d.ts.map +1 -1
  168. package/dist/collections/config/client.js +1 -0
  169. package/dist/collections/config/client.js.map +1 -1
  170. package/dist/collections/config/defaults.d.ts +0 -4
  171. package/dist/collections/config/defaults.d.ts.map +1 -1
  172. package/dist/collections/config/defaults.js +2 -17
  173. package/dist/collections/config/defaults.js.map +1 -1
  174. package/dist/collections/config/defaults.spec.js +47 -0
  175. package/dist/collections/config/defaults.spec.js.map +1 -0
  176. package/dist/collections/config/sanitize.d.ts +10 -1
  177. package/dist/collections/config/sanitize.d.ts.map +1 -1
  178. package/dist/collections/config/sanitize.js +214 -230
  179. package/dist/collections/config/sanitize.js.map +1 -1
  180. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  181. package/dist/collections/config/types.d.ts +11 -7
  182. package/dist/collections/config/types.d.ts.map +1 -1
  183. package/dist/collections/config/types.js.map +1 -1
  184. package/dist/collections/config/useAsTitle.d.ts.map +1 -1
  185. package/dist/collections/dataloader.d.ts.map +1 -1
  186. package/dist/collections/endpoints/create.d.ts.map +1 -1
  187. package/dist/collections/endpoints/create.js +0 -2
  188. package/dist/collections/endpoints/create.js.map +1 -1
  189. package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
  190. package/dist/collections/endpoints/updateByID.js +1 -2
  191. package/dist/collections/endpoints/updateByID.js.map +1 -1
  192. package/dist/collections/operations/count.d.ts.map +1 -1
  193. package/dist/collections/operations/count.js +1 -0
  194. package/dist/collections/operations/count.js.map +1 -1
  195. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  196. package/dist/collections/operations/create.d.ts +0 -1
  197. package/dist/collections/operations/create.d.ts.map +1 -1
  198. package/dist/collections/operations/create.js +15 -6
  199. package/dist/collections/operations/create.js.map +1 -1
  200. package/dist/collections/operations/delete.d.ts.map +1 -1
  201. package/dist/collections/operations/delete.js +3 -0
  202. package/dist/collections/operations/delete.js.map +1 -1
  203. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  204. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  205. package/dist/collections/operations/find.d.ts.map +1 -1
  206. package/dist/collections/operations/findByID.d.ts.map +1 -1
  207. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  208. package/dist/collections/operations/findDistinct.js +1 -0
  209. package/dist/collections/operations/findDistinct.js.map +1 -1
  210. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  211. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  212. package/dist/collections/operations/local/count.d.ts +3 -3
  213. package/dist/collections/operations/local/count.d.ts.map +1 -1
  214. package/dist/collections/operations/local/count.js.map +1 -1
  215. package/dist/collections/operations/local/countVersions.d.ts +3 -3
  216. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  217. package/dist/collections/operations/local/countVersions.js.map +1 -1
  218. package/dist/collections/operations/local/create.d.ts +3 -3
  219. package/dist/collections/operations/local/create.d.ts.map +1 -1
  220. package/dist/collections/operations/local/create.js.map +1 -1
  221. package/dist/collections/operations/local/delete.d.ts +3 -3
  222. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  223. package/dist/collections/operations/local/delete.js.map +1 -1
  224. package/dist/collections/operations/local/duplicate.d.ts +3 -3
  225. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  226. package/dist/collections/operations/local/duplicate.js.map +1 -1
  227. package/dist/collections/operations/local/find.d.ts +3 -3
  228. package/dist/collections/operations/local/find.d.ts.map +1 -1
  229. package/dist/collections/operations/local/find.js.map +1 -1
  230. package/dist/collections/operations/local/findByID.d.ts +3 -3
  231. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  232. package/dist/collections/operations/local/findByID.js.map +1 -1
  233. package/dist/collections/operations/local/findDistinct.d.ts +2 -2
  234. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  235. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  236. package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
  237. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  238. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  239. package/dist/collections/operations/local/findVersions.d.ts +3 -3
  240. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  241. package/dist/collections/operations/local/findVersions.js.map +1 -1
  242. package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
  243. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  244. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  245. package/dist/collections/operations/local/update.d.ts +7 -11
  246. package/dist/collections/operations/local/update.d.ts.map +1 -1
  247. package/dist/collections/operations/local/update.js +1 -2
  248. package/dist/collections/operations/local/update.js.map +1 -1
  249. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  250. package/dist/collections/operations/update.d.ts +0 -1
  251. package/dist/collections/operations/update.d.ts.map +1 -1
  252. package/dist/collections/operations/update.js +8 -4
  253. package/dist/collections/operations/update.js.map +1 -1
  254. package/dist/collections/operations/updateByID.d.ts +0 -1
  255. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  256. package/dist/collections/operations/updateByID.js +1 -5
  257. package/dist/collections/operations/updateByID.js.map +1 -1
  258. package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
  259. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
  260. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
  261. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
  262. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
  263. package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
  264. package/dist/collections/operations/utilities/types.d.ts +0 -9
  265. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  266. package/dist/collections/operations/utilities/types.js.map +1 -1
  267. package/dist/collections/operations/utilities/update.d.ts +1 -2
  268. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  269. package/dist/collections/operations/utilities/update.js +64 -65
  270. package/dist/collections/operations/utilities/update.js.map +1 -1
  271. package/dist/config/build.d.ts.map +1 -1
  272. package/dist/config/build.js +8 -0
  273. package/dist/config/build.js.map +1 -1
  274. package/dist/config/client.d.ts +3 -3
  275. package/dist/config/client.d.ts.map +1 -1
  276. package/dist/config/client.js +2 -1
  277. package/dist/config/client.js.map +1 -1
  278. package/dist/config/defaults.d.ts +0 -4
  279. package/dist/config/defaults.d.ts.map +1 -1
  280. package/dist/config/defaults.js +0 -78
  281. package/dist/config/defaults.js.map +1 -1
  282. package/dist/config/definePlugin.d.ts +10 -10
  283. package/dist/config/definePlugin.d.ts.map +1 -1
  284. package/dist/config/definePlugin.js +7 -11
  285. package/dist/config/definePlugin.js.map +1 -1
  286. package/dist/config/orderable/index.d.ts.map +1 -1
  287. package/dist/config/orderable/index.js +23 -0
  288. package/dist/config/orderable/index.js.map +1 -1
  289. package/dist/config/sanitize.d.ts.map +1 -1
  290. package/dist/config/sanitize.js +362 -271
  291. package/dist/config/sanitize.js.map +1 -1
  292. package/dist/config/types.d.ts +125 -38
  293. package/dist/config/types.d.ts.map +1 -1
  294. package/dist/config/types.js +2 -0
  295. package/dist/config/types.js.map +1 -1
  296. package/dist/database/combineQueries.d.ts.map +1 -1
  297. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  298. package/dist/database/getLocalizedPaths.js +1 -1
  299. package/dist/database/getLocalizedPaths.js.map +1 -1
  300. package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
  301. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  302. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  303. package/dist/database/migrations/migrationsCollection.js +2 -1
  304. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  305. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  306. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
  307. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  308. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  309. package/dist/duplicateDocument/index.d.ts.map +1 -1
  310. package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
  311. package/dist/errors/ValidationError.d.ts +1 -0
  312. package/dist/errors/ValidationError.d.ts.map +1 -1
  313. package/dist/errors/ValidationError.js.map +1 -1
  314. package/dist/exports/internal.d.ts +0 -1
  315. package/dist/exports/internal.d.ts.map +1 -1
  316. package/dist/exports/internal.js +0 -1
  317. package/dist/exports/internal.js.map +1 -1
  318. package/dist/exports/migrations.d.ts +5 -13
  319. package/dist/exports/migrations.d.ts.map +1 -1
  320. package/dist/exports/migrations.js +5 -13
  321. package/dist/exports/migrations.js.map +1 -1
  322. package/dist/exports/shared.d.ts +23 -1
  323. package/dist/exports/shared.d.ts.map +1 -1
  324. package/dist/exports/shared.js +23 -1
  325. package/dist/exports/shared.js.map +1 -1
  326. package/dist/fields/baseFields/slug/countVersions.d.ts.map +1 -1
  327. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  328. package/dist/fields/baseFields/slug/index.js +1 -1
  329. package/dist/fields/baseFields/slug/index.js.map +1 -1
  330. package/dist/fields/config/client.d.ts +3 -3
  331. package/dist/fields/config/client.d.ts.map +1 -1
  332. package/dist/fields/config/client.js +12 -13
  333. package/dist/fields/config/client.js.map +1 -1
  334. package/dist/fields/config/sanitize.d.ts.map +1 -1
  335. package/dist/fields/config/sanitize.js +315 -338
  336. package/dist/fields/config/sanitize.js.map +1 -1
  337. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  338. package/dist/fields/config/types.d.ts +45 -66
  339. package/dist/fields/config/types.d.ts.map +1 -1
  340. package/dist/fields/config/types.js +1 -1
  341. package/dist/fields/config/types.js.map +1 -1
  342. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  343. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  344. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  345. package/dist/fields/hooks/afterChange/promise.js +1 -1
  346. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  347. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  348. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  349. package/dist/fields/hooks/afterRead/promise.js +12 -3
  350. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  351. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  352. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  353. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  354. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  355. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  356. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  357. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  358. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  359. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  360. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  361. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
  362. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  363. package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
  364. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  365. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
  366. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  367. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  368. package/dist/fields/hooks/beforeValidate/promise.js +11 -2
  369. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  370. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  371. package/dist/fields/isFieldDisabled.d.ts.map +1 -1
  372. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  373. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
  374. package/dist/fields/validations.d.ts.map +1 -1
  375. package/dist/fields/validations.js +5 -4
  376. package/dist/fields/validations.js.map +1 -1
  377. package/dist/globals/config/client.d.ts.map +1 -1
  378. package/dist/globals/config/sanitize.d.ts +6 -1
  379. package/dist/globals/config/sanitize.d.ts.map +1 -1
  380. package/dist/globals/config/sanitize.js +122 -132
  381. package/dist/globals/config/sanitize.js.map +1 -1
  382. package/dist/globals/config/sanitize.spec.js +43 -0
  383. package/dist/globals/config/sanitize.spec.js.map +1 -0
  384. package/dist/globals/endpoints/update.d.ts.map +1 -1
  385. package/dist/globals/endpoints/update.js +0 -2
  386. package/dist/globals/endpoints/update.js.map +1 -1
  387. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  388. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  389. package/dist/globals/operations/findOne.d.ts.map +1 -1
  390. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  391. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  392. package/dist/globals/operations/local/countVersions.d.ts +3 -3
  393. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  394. package/dist/globals/operations/local/countVersions.js.map +1 -1
  395. package/dist/globals/operations/local/findOne.d.ts +3 -3
  396. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  397. package/dist/globals/operations/local/findOne.js.map +1 -1
  398. package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
  399. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  400. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  401. package/dist/globals/operations/local/findVersions.d.ts +3 -3
  402. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  403. package/dist/globals/operations/local/findVersions.js.map +1 -1
  404. package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
  405. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  406. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  407. package/dist/globals/operations/local/update.d.ts +7 -9
  408. package/dist/globals/operations/local/update.d.ts.map +1 -1
  409. package/dist/globals/operations/local/update.js +1 -2
  410. package/dist/globals/operations/local/update.js.map +1 -1
  411. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  412. package/dist/globals/operations/update.d.ts +0 -1
  413. package/dist/globals/operations/update.d.ts.map +1 -1
  414. package/dist/globals/operations/update.js +52 -58
  415. package/dist/globals/operations/update.js.map +1 -1
  416. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  417. package/dist/hierarchy/buildParentField.d.ts.map +1 -1
  418. package/dist/hierarchy/constants.d.ts.map +1 -1
  419. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  420. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  421. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
  422. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
  423. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  424. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
  425. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  426. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
  427. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
  428. package/dist/hierarchy/resolveHierarchyCollections.js +1 -1
  429. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  430. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
  431. package/dist/hierarchy/sanitizeHierarchyCollection.js +3 -1
  432. package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -1
  433. package/dist/hierarchy/types.d.ts +8 -1
  434. package/dist/hierarchy/types.d.ts.map +1 -1
  435. package/dist/hierarchy/types.js.map +1 -1
  436. package/dist/index.bundled.d.ts +808 -366
  437. package/dist/index.d.ts +72 -24
  438. package/dist/index.d.ts.map +1 -1
  439. package/dist/index.js +55 -55
  440. package/dist/index.js.map +1 -1
  441. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  442. package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
  443. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  444. package/dist/locked-documents/config.d.ts.map +1 -1
  445. package/dist/locked-documents/config.js +2 -1
  446. package/dist/locked-documents/config.js.map +1 -1
  447. package/dist/preferences/config.d.ts.map +1 -1
  448. package/dist/preferences/config.js +2 -1
  449. package/dist/preferences/config.js.map +1 -1
  450. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  451. package/dist/preferences/keys.d.ts +4 -0
  452. package/dist/preferences/keys.d.ts.map +1 -1
  453. package/dist/preferences/keys.js +4 -1
  454. package/dist/preferences/keys.js.map +1 -1
  455. package/dist/preferences/types.d.ts +15 -0
  456. package/dist/preferences/types.d.ts.map +1 -1
  457. package/dist/preferences/types.js +3 -1
  458. package/dist/preferences/types.js.map +1 -1
  459. package/dist/query-presets/access.d.ts.map +1 -1
  460. package/dist/query-presets/config.d.ts.map +1 -1
  461. package/dist/query-presets/config.js +77 -37
  462. package/dist/query-presets/config.js.map +1 -1
  463. package/dist/query-presets/constraints.d.ts.map +1 -1
  464. package/dist/query-presets/constraints.js +3 -2
  465. package/dist/query-presets/constraints.js.map +1 -1
  466. package/dist/queues/config/collection.d.ts.map +1 -1
  467. package/dist/queues/config/collection.js +2 -1
  468. package/dist/queues/config/collection.js.map +1 -1
  469. package/dist/queues/config/generateJobsJSONSchemas.d.ts +1 -1
  470. package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -1
  471. package/dist/queues/config/generateJobsJSONSchemas.js +33 -12
  472. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  473. package/dist/queues/config/global.d.ts.map +1 -1
  474. package/dist/queues/config/global.js +2 -1
  475. package/dist/queues/config/global.js.map +1 -1
  476. package/dist/queues/endpoints/run.d.ts.map +1 -1
  477. package/dist/queues/localAPI.d.ts.map +1 -1
  478. package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
  479. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  480. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  481. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  482. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  483. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  484. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  485. package/dist/types/index.d.ts +18 -8
  486. package/dist/types/index.d.ts.map +1 -1
  487. package/dist/types/index.js.map +1 -1
  488. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  489. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  490. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  491. package/dist/uploads/endpoints/getFileFromURL.d.ts.map +1 -1
  492. package/dist/uploads/endpoints/getFileFromURL.js +9 -5
  493. package/dist/uploads/endpoints/getFileFromURL.js.map +1 -1
  494. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
  495. package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
  496. package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
  497. package/dist/uploads/fileExists.d.ts.map +1 -1
  498. package/dist/uploads/generateFileData.d.ts +2 -1
  499. package/dist/uploads/generateFileData.d.ts.map +1 -1
  500. package/dist/uploads/generateFileData.js +5 -2
  501. package/dist/uploads/generateFileData.js.map +1 -1
  502. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  503. package/dist/uploads/getBaseFields.js +7 -19
  504. package/dist/uploads/getBaseFields.js.map +1 -1
  505. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  506. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  507. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  508. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  509. package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
  510. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
  511. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
  512. package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
  513. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
  514. package/dist/uploads/matchMimeType.d.ts +8 -0
  515. package/dist/uploads/matchMimeType.d.ts.map +1 -0
  516. package/dist/uploads/matchMimeType.js +19 -0
  517. package/dist/uploads/matchMimeType.js.map +1 -0
  518. package/dist/uploads/matchMimeType.spec.js +66 -0
  519. package/dist/uploads/matchMimeType.spec.js.map +1 -0
  520. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  521. package/dist/uploads/safeFetch.d.ts +1 -1
  522. package/dist/uploads/safeFetch.d.ts.map +1 -1
  523. package/dist/uploads/safeFetch.js +11 -5
  524. package/dist/uploads/safeFetch.js.map +1 -1
  525. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  526. package/dist/uploads/tempFile.d.ts.map +1 -1
  527. package/dist/uploads/types.d.ts +33 -29
  528. package/dist/uploads/types.d.ts.map +1 -1
  529. package/dist/uploads/types.js.map +1 -1
  530. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  531. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  532. package/dist/utilities/addDataAndFileToRequest.js +6 -0
  533. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  534. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  535. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  536. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
  537. package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
  538. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  539. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  540. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  541. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  542. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  543. package/dist/utilities/configToJSONSchema.d.ts +68 -16
  544. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  545. package/dist/utilities/configToJSONSchema.js +311 -117
  546. package/dist/utilities/configToJSONSchema.js.map +1 -1
  547. package/dist/utilities/configToJSONSchema.spec.js +619 -85
  548. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  549. package/dist/utilities/createLocalReq.d.ts +2 -2
  550. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  551. package/dist/utilities/createLocalReq.js.map +1 -1
  552. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  553. package/dist/utilities/createPayloadRequest.js +1 -0
  554. package/dist/utilities/createPayloadRequest.js.map +1 -1
  555. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  556. package/dist/utilities/deepCopyObject.js +8 -0
  557. package/dist/utilities/deepCopyObject.js.map +1 -1
  558. package/dist/utilities/dependencies/dependencyChecker.js +1 -1
  559. package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
  560. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  561. package/dist/utilities/dependencies/getDependencies.js +5 -5
  562. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  563. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
  564. package/dist/utilities/dynamicImport.js +1 -1
  565. package/dist/utilities/dynamicImport.js.map +1 -1
  566. package/dist/utilities/escapeRegExp.d.ts.map +1 -1
  567. package/dist/utilities/extractID.d.ts.map +1 -1
  568. package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
  569. package/dist/utilities/filterDataToSelectedLocales.js +5 -12
  570. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  571. package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
  572. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
  573. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  574. package/dist/utilities/flattenAllFields.js +78 -102
  575. package/dist/utilities/flattenAllFields.js.map +1 -1
  576. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  577. package/dist/utilities/formatErrors.d.ts.map +1 -1
  578. package/dist/utilities/formatErrors.js +3 -1
  579. package/dist/utilities/formatErrors.js.map +1 -1
  580. package/dist/utilities/formatLabels.d.ts.map +1 -1
  581. package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
  582. package/dist/utilities/getBlockSelect.d.ts.map +1 -1
  583. package/dist/utilities/getDataByPath.d.ts.map +1 -1
  584. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  585. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
  586. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  587. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
  588. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  589. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +24 -7
  590. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  591. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  592. package/dist/utilities/getFieldByPath.js +1 -1
  593. package/dist/utilities/getFieldByPath.js.map +1 -1
  594. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  595. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  596. package/dist/utilities/getRequestEntity.d.ts.map +1 -1
  597. package/dist/utilities/getRequestLanguage.d.ts +2 -2
  598. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  599. package/dist/utilities/getRequestLanguage.js.map +1 -1
  600. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  601. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  602. package/dist/utilities/getSelectMode.d.ts.map +1 -1
  603. package/dist/utilities/getSiblingData.d.ts.map +1 -1
  604. package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
  605. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  606. package/dist/utilities/getVersionsConfig.js.map +1 -1
  607. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  608. package/dist/utilities/handleEndpoints.js +7 -4
  609. package/dist/utilities/handleEndpoints.js.map +1 -1
  610. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  611. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  612. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  613. package/dist/utilities/isValidID.d.ts.map +1 -1
  614. package/dist/utilities/logError.d.ts.map +1 -1
  615. package/dist/utilities/logger.d.ts.map +1 -1
  616. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  617. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
  618. package/dist/utilities/mergeLocalizedData.d.ts +14 -4
  619. package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
  620. package/dist/utilities/mergeLocalizedData.js +54 -46
  621. package/dist/utilities/mergeLocalizedData.js.map +1 -1
  622. package/dist/utilities/mergeLocalizedData.spec.js +23 -23
  623. package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
  624. package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
  625. package/dist/utilities/parseBooleanString.d.ts.map +1 -1
  626. package/dist/utilities/parseCookies.d.ts.map +1 -1
  627. package/dist/utilities/parseParams/index.d.ts +2 -5
  628. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  629. package/dist/utilities/parseParams/index.js.map +1 -1
  630. package/dist/utilities/parseParams/index.spec.js +0 -9
  631. package/dist/utilities/parseParams/index.spec.js.map +1 -1
  632. package/dist/utilities/profiling.d.ts.map +1 -1
  633. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  634. package/dist/utilities/resolveSelect.d.ts.map +1 -1
  635. package/dist/utilities/routeError.d.ts.map +1 -1
  636. package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
  637. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  638. package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
  639. package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
  640. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  641. package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
  642. package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
  643. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  644. package/dist/utilities/slugify.d.ts.map +1 -1
  645. package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
  646. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  647. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  648. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  649. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  650. package/dist/utilities/timestamp.d.ts.map +1 -1
  651. package/dist/utilities/toKebabCase.d.ts.map +1 -1
  652. package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
  653. package/dist/utilities/transformColumnPreferences.js +4 -2
  654. package/dist/utilities/transformColumnPreferences.js.map +1 -1
  655. package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
  656. package/dist/utilities/traverseFields.d.ts.map +1 -1
  657. package/dist/utilities/traverseFields.js +2 -4
  658. package/dist/utilities/traverseFields.js.map +1 -1
  659. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  660. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  661. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  662. package/dist/utilities/unflatten.d.ts.map +1 -1
  663. package/dist/utilities/validateMimeType.d.ts.map +1 -1
  664. package/dist/utilities/validateTimezones.d.ts.map +1 -1
  665. package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
  666. package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
  667. package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
  668. package/dist/versions/baseFields.d.ts +1 -2
  669. package/dist/versions/baseFields.d.ts.map +1 -1
  670. package/dist/versions/baseFields.js +0 -13
  671. package/dist/versions/baseFields.js.map +1 -1
  672. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  673. package/dist/versions/buildCollectionFields.js +0 -2
  674. package/dist/versions/buildCollectionFields.js.map +1 -1
  675. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  676. package/dist/versions/buildGlobalFields.js +0 -2
  677. package/dist/versions/buildGlobalFields.js.map +1 -1
  678. package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
  679. package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
  680. package/dist/versions/buildSingleLocalePublishData.js +37 -0
  681. package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
  682. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  683. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  684. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  685. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  686. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
  687. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  688. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  689. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  690. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  691. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  692. package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
  693. package/dist/versions/saveVersion.d.ts +0 -2
  694. package/dist/versions/saveVersion.d.ts.map +1 -1
  695. package/dist/versions/saveVersion.js +12 -17
  696. package/dist/versions/saveVersion.js.map +1 -1
  697. package/dist/versions/schedule/job.d.ts.map +1 -1
  698. package/dist/versions/schedule/job.js +2 -9
  699. package/dist/versions/schedule/job.js.map +1 -1
  700. package/dist/versions/types.d.ts +2 -15
  701. package/dist/versions/types.d.ts.map +1 -1
  702. package/dist/versions/types.js.map +1 -1
  703. package/package.json +23 -20
  704. package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
  705. package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
  706. package/dist/database/migrations/templates/localizeStatus.js +0 -54
  707. package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
  708. package/dist/utilities/sanitizeProfiler.d.ts +0 -38
  709. package/dist/utilities/sanitizeProfiler.d.ts.map +0 -1
  710. package/dist/utilities/sanitizeProfiler.js +0 -101
  711. package/dist/utilities/sanitizeProfiler.js.map +0 -1
  712. package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
  713. package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
  714. package/dist/versions/migrations/localizeStatus/index.js +0 -33
  715. package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
  716. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
  717. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
  718. package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
  719. package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
  720. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
  721. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
  722. package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
  723. package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
  724. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
  725. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
  726. package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
  727. package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
  728. package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
  729. package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
  730. package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
  731. package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
  732. package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
  733. package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
  734. package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
  735. package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
  736. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
  737. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
  738. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
  739. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
  740. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
  741. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
  742. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
  743. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
  744. package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
  745. package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
  746. package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
  747. package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
  748. package/dist/versions/saveSnapshot.d.ts +0 -18
  749. package/dist/versions/saveSnapshot.d.ts.map +0 -1
  750. package/dist/versions/saveSnapshot.js +0 -38
  751. package/dist/versions/saveSnapshot.js.map +0 -1
@@ -1,10 +1,13 @@
1
+ import { createHash } from 'crypto';
1
2
  import { MissingEditorProp } from '../errors/MissingEditorProp.js';
2
- import { fieldAffectsData } from '../fields/config/types.js';
3
+ import { fieldAffectsData, fieldIsVirtual } from '../fields/config/types.js';
3
4
  import { generateJobsJSONSchemas } from '../queues/config/generateJobsJSONSchemas.js';
4
5
  import { flattenAllFields } from './flattenAllFields.js';
5
- import { formatNames } from './formatLabels.js';
6
+ import { formatNames, toWords } from './formatLabels.js';
6
7
  import { getCollectionIDFieldTypes } from './getCollectionIDFieldTypes.js';
7
8
  import { optionsAreEqual } from './optionsAreEqual.js';
9
+ // Virtual fields (computed) and join fields (derived from the inverse relationship) are read-only.
10
+ const fieldIsInputExcluded = (field)=>field.type === 'join' || fieldIsVirtual(field);
8
11
  const fieldIsRequired = (field)=>{
9
12
  const isConditional = Boolean(field?.admin && field?.admin?.condition);
10
13
  if (isConditional) {
@@ -33,7 +36,7 @@ function generateEntitySchemas(entities) {
33
36
  ...entities
34
37
  ].reduce((acc, { slug })=>{
35
38
  acc[slug] = {
36
- $ref: `#/definitions/${slug}`
39
+ $ref: `#/$defs/${slug}`
37
40
  };
38
41
  return acc;
39
42
  }, {});
@@ -49,7 +52,23 @@ function generateEntitySelectSchemas(entities) {
49
52
  ...entities
50
53
  ].reduce((acc, { slug })=>{
51
54
  acc[slug] = {
52
- $ref: `#/definitions/${slug}_select`
55
+ $ref: `#/$defs/${slug}_select`
56
+ };
57
+ return acc;
58
+ }, {});
59
+ return {
60
+ type: 'object',
61
+ additionalProperties: false,
62
+ properties,
63
+ required: Object.keys(properties)
64
+ };
65
+ }
66
+ function generateEntityInputSchemas(entities) {
67
+ const properties = [
68
+ ...entities
69
+ ].reduce((acc, { slug })=>{
70
+ acc[slug] = {
71
+ $ref: `#/$defs/${slug}_input`
53
72
  };
54
73
  return acc;
55
74
  }, {});
@@ -120,7 +139,7 @@ function getAllowedWidgetWidths({ maxWidth, minWidth }) {
120
139
  }
121
140
  return widgetWidths.slice(minIndex, maxIndex + 1);
122
141
  }
123
- function generateWidgetSchemas({ collectionIDFieldTypes, config, i18n, interfaceNameDefinitions, opts = {} }) {
142
+ function generateWidgetSchemas({ collectionIDFieldTypes, config, forceInlineBlocks, i18n, interfaceNameDefinitions, typeStringDefinitions }) {
124
143
  const widgets = config.admin?.dashboard?.widgets ?? [];
125
144
  const definitions = {};
126
145
  const properties = {};
@@ -132,9 +151,17 @@ function generateWidgetSchemas({ collectionIDFieldTypes, config, i18n, interface
132
151
  });
133
152
  let dataSchema;
134
153
  if (widget.fields?.length) {
135
- const widgetFieldSchemas = fieldsToJSONSchema(collectionIDFieldTypes, flattenAllFields({
136
- fields: widget.fields
137
- }), interfaceNameDefinitions, config, i18n, opts);
154
+ const widgetFieldSchemas = fieldsToJSONSchema({
155
+ collectionIDFieldTypes,
156
+ config,
157
+ fields: flattenAllFields({
158
+ fields: widget.fields
159
+ }),
160
+ forceInlineBlocks,
161
+ i18n,
162
+ interfaceNameDefinitions,
163
+ typeStringDefinitions
164
+ });
138
165
  dataSchema = {
139
166
  type: 'object',
140
167
  additionalProperties: false,
@@ -161,7 +188,7 @@ function generateWidgetSchemas({ collectionIDFieldTypes, config, i18n, interface
161
188
  ]
162
189
  };
163
190
  properties[widget.slug] = {
164
- $ref: `#/definitions/${definition}`
191
+ $ref: `#/$defs/${definition}`
165
192
  };
166
193
  }
167
194
  return {
@@ -240,7 +267,7 @@ function generateAuthEntitySchemas(entities) {
240
267
  ...entities
241
268
  ].filter(({ auth })=>Boolean(auth)).map(({ slug })=>{
242
269
  return {
243
- $ref: `#/definitions/${slug}`
270
+ $ref: `#/$defs/${slug}`
244
271
  };
245
272
  }, {});
246
273
  return {
@@ -299,17 +326,35 @@ function entityOrFieldToJsDocs({ entity, i18n }) {
299
326
  }
300
327
  return description;
301
328
  }
302
- export function fieldsToJSONSchema(/**
303
- * Used for relationship fields, to determine whether to use a string or number type for the ID.
304
- * While there is a default ID field type set by the db adapter, they can differ on a collection-level
305
- * if they have custom ID fields.
306
- */ collectionIDFieldTypes, fields, /**
307
- * Allows you to define new top-level interfaces that can be re-used in the output schema.
308
- */ interfaceNameDefinitions, config, i18n, opts = {}) {
329
+ export function fieldsToJSONSchema({ collectionIDFieldTypes, config, fields, forceInlineBlocks, i18n, interfaceNameDefinitions, typeStringDefinitions, variant = 'output' }) {
309
330
  const requiredFieldNames = new Set();
331
+ // Registers a named-interface (group/tab/array/select) def and returns its `$ref` name. For input,
332
+ // shares the read-shaped def when byte-identical; otherwise registers an `Input`-suffixed twin so
333
+ // the write shape doesn't collide with the read one.
334
+ const registerNamedInterface = (name, schema)=>{
335
+ if (variant === 'input') {
336
+ const outputDef = interfaceNameDefinitions.get(name);
337
+ if (outputDef && JSON.stringify(outputDef) === JSON.stringify(schema)) {
338
+ return name;
339
+ }
340
+ const inputName = `${name}Input`;
341
+ interfaceNameDefinitions.set(inputName, schema);
342
+ return inputName;
343
+ }
344
+ interfaceNameDefinitions.set(name, schema);
345
+ return name;
346
+ };
310
347
  return {
311
348
  properties: Object.fromEntries(fields.reduce((fieldSchemas, field, index)=>{
349
+ if (variant === 'input' && fieldIsInputExcluded(field)) {
350
+ return fieldSchemas;
351
+ }
352
+ const hasDefaultValue = 'defaultValue' in field && field.defaultValue !== undefined;
353
+ // `isRequired` only controls nullability (a non-required field gets `| null`). It does not
354
+ // change between variants, so e.g. a defaulted field stays non-null on input.
312
355
  const isRequired = fieldAffectsData(field) && fieldIsRequired(field);
356
+ // `isOptionalOnInput` controls the `?`: on input, defaulted fields can be omitted.
357
+ const isOptionalOnInput = variant === 'input' && hasDefaultValue;
313
358
  const fieldDescription = entityOrFieldToJsDocs({
314
359
  entity: field,
315
360
  i18n
@@ -328,13 +373,21 @@ export function fieldsToJSONSchema(/**
328
373
  items: {
329
374
  type: 'object',
330
375
  additionalProperties: false,
331
- ...fieldsToJSONSchema(collectionIDFieldTypes, field.flattenedFields, interfaceNameDefinitions, config, i18n, opts)
376
+ ...fieldsToJSONSchema({
377
+ collectionIDFieldTypes,
378
+ config,
379
+ fields: field.flattenedFields,
380
+ forceInlineBlocks,
381
+ i18n,
382
+ interfaceNameDefinitions,
383
+ typeStringDefinitions,
384
+ variant
385
+ })
332
386
  }
333
387
  };
334
388
  if (field.interfaceName) {
335
- interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
336
389
  fieldSchema = {
337
- $ref: `#/definitions/${field.interfaceName}`
390
+ $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
338
391
  };
339
392
  }
340
393
  break;
@@ -344,25 +397,26 @@ export function fieldsToJSONSchema(/**
344
397
  // Check for a case where no blocks are provided.
345
398
  // We need to generate an empty array for this case, note that JSON schema 4 doesn't support empty arrays
346
399
  // so the best we can get is `unknown[]`
347
- const hasBlocks = Boolean(field.blockReferences ? field.blockReferences.length : field.blocks.length);
400
+ const hasBlocks = Boolean(field.blocks.length);
348
401
  fieldSchema = {
349
402
  ...baseFieldSchema,
350
403
  type: withNullableJSONSchemaType('array', isRequired),
351
404
  items: hasBlocks ? {
352
- oneOf: (field.blockReferences ?? field.blocks).map((block)=>{
353
- if (typeof block === 'string') {
354
- const resolvedBlock = config?.blocks?.find((b)=>b.slug === block);
355
- if (!resolvedBlock) {
356
- return {};
357
- }
358
- if (!opts.forceInlineBlocks) {
359
- return {
360
- $ref: `#/definitions/${resolvedBlock.interfaceName ?? resolvedBlock.slug}`
361
- };
362
- }
363
- block = resolvedBlock;
405
+ oneOf: field.blocks.map((blockOrReference)=>{
406
+ const block = typeof blockOrReference === 'string' ? config?.blocks?.find((b)=>b.slug === blockOrReference) : blockOrReference;
407
+ if (!block) {
408
+ return {};
364
409
  }
365
- const blockFieldSchemas = fieldsToJSONSchema(collectionIDFieldTypes, block.flattenedFields, interfaceNameDefinitions, config, i18n, opts);
410
+ const blockFieldSchemas = fieldsToJSONSchema({
411
+ collectionIDFieldTypes,
412
+ config,
413
+ fields: block.flattenedFields,
414
+ forceInlineBlocks,
415
+ i18n,
416
+ interfaceNameDefinitions,
417
+ typeStringDefinitions,
418
+ variant
419
+ });
366
420
  const blockSchema = {
367
421
  type: 'object',
368
422
  additionalProperties: false,
@@ -377,13 +431,9 @@ export function fieldsToJSONSchema(/**
377
431
  ...blockFieldSchemas.required
378
432
  ]
379
433
  };
380
- if (!opts.forceInlineBlocks && block.interfaceName) {
381
- interfaceNameDefinitions.set(block.interfaceName, blockSchema);
382
- return {
383
- $ref: `#/definitions/${block.interfaceName}`
384
- };
385
- }
386
- return blockSchema;
434
+ return forceInlineBlocks ? blockSchema : {
435
+ $ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions, variant)}`
436
+ };
387
437
  })
388
438
  } : {}
389
439
  };
@@ -415,12 +465,20 @@ export function fieldsToJSONSchema(/**
415
465
  ...baseFieldSchema,
416
466
  type: 'object',
417
467
  additionalProperties: false,
418
- ...fieldsToJSONSchema(collectionIDFieldTypes, field.flattenedFields, interfaceNameDefinitions, config, i18n, opts)
468
+ ...fieldsToJSONSchema({
469
+ collectionIDFieldTypes,
470
+ config,
471
+ fields: field.flattenedFields,
472
+ forceInlineBlocks,
473
+ i18n,
474
+ interfaceNameDefinitions,
475
+ typeStringDefinitions,
476
+ variant
477
+ })
419
478
  };
420
479
  if (field.interfaceName) {
421
- interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
422
480
  fieldSchema = {
423
- $ref: `#/definitions/${field.interfaceName}`
481
+ $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
424
482
  };
425
483
  }
426
484
  }
@@ -444,7 +502,7 @@ export function fieldsToJSONSchema(/**
444
502
  type: collectionIDFieldTypes[collection]
445
503
  },
446
504
  {
447
- $ref: `#/definitions/${collection}`
505
+ $ref: `#/$defs/${collection}`
448
506
  }
449
507
  ]
450
508
  }
@@ -462,7 +520,7 @@ export function fieldsToJSONSchema(/**
462
520
  type: collectionIDFieldTypes[field.collection]
463
521
  },
464
522
  {
465
- $ref: `#/definitions/${field.collection}`
523
+ $ref: `#/$defs/${field.collection}`
466
524
  }
467
525
  ]
468
526
  };
@@ -545,9 +603,8 @@ export function fieldsToJSONSchema(/**
545
603
  enum: buildOptionEnums(field.options)
546
604
  };
547
605
  if (field.interfaceName) {
548
- interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
549
606
  fieldSchema = {
550
- $ref: `#/definitions/${field.interfaceName}`
607
+ $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
551
608
  };
552
609
  }
553
610
  break;
@@ -555,6 +612,19 @@ export function fieldsToJSONSchema(/**
555
612
  case 'relationship':
556
613
  case 'upload':
557
614
  {
615
+ // Read: an ID or the populated doc. Input: only the ID, so drop the `$ref`.
616
+ const relationValueSchema = (relation)=>variant === 'input' ? {
617
+ type: collectionIDFieldTypes[relation]
618
+ } : {
619
+ oneOf: [
620
+ {
621
+ type: collectionIDFieldTypes[relation]
622
+ },
623
+ {
624
+ $ref: `#/$defs/${relation}`
625
+ }
626
+ ]
627
+ };
558
628
  if (Array.isArray(field.relationTo)) {
559
629
  if (field.hasMany) {
560
630
  fieldSchema = {
@@ -569,16 +639,7 @@ export function fieldsToJSONSchema(/**
569
639
  relationTo: {
570
640
  const: relation
571
641
  },
572
- value: {
573
- oneOf: [
574
- {
575
- type: collectionIDFieldTypes[relation]
576
- },
577
- {
578
- $ref: `#/definitions/${relation}`
579
- }
580
- ]
581
- }
642
+ value: relationValueSchema(relation)
582
643
  },
583
644
  required: [
584
645
  'value',
@@ -599,16 +660,7 @@ export function fieldsToJSONSchema(/**
599
660
  relationTo: {
600
661
  const: relation
601
662
  },
602
- value: {
603
- oneOf: [
604
- {
605
- type: collectionIDFieldTypes[relation]
606
- },
607
- {
608
- $ref: `#/definitions/${relation}`
609
- }
610
- ]
611
- }
663
+ value: relationValueSchema(relation)
612
664
  },
613
665
  required: [
614
666
  'value',
@@ -622,17 +674,24 @@ export function fieldsToJSONSchema(/**
622
674
  fieldSchema = {
623
675
  ...baseFieldSchema,
624
676
  type: withNullableJSONSchemaType('array', isRequired),
625
- items: {
677
+ items: variant === 'input' ? {
678
+ type: collectionIDFieldTypes[field.relationTo]
679
+ } : {
626
680
  oneOf: [
627
681
  {
628
682
  type: collectionIDFieldTypes[field.relationTo]
629
683
  },
630
684
  {
631
- $ref: `#/definitions/${field.relationTo}`
685
+ $ref: `#/$defs/${field.relationTo}`
632
686
  }
633
687
  ]
634
688
  }
635
689
  };
690
+ } else if (variant === 'input') {
691
+ fieldSchema = {
692
+ ...baseFieldSchema,
693
+ type: withNullableJSONSchemaType(collectionIDFieldTypes[field.relationTo], isRequired)
694
+ };
636
695
  } else {
637
696
  fieldSchema = {
638
697
  ...baseFieldSchema,
@@ -641,7 +700,7 @@ export function fieldsToJSONSchema(/**
641
700
  type: withNullableJSONSchemaType(collectionIDFieldTypes[field.relationTo], isRequired)
642
701
  },
643
702
  {
644
- $ref: `#/definitions/${field.relationTo}`
703
+ $ref: `#/$defs/${field.relationTo}`
645
704
  }
646
705
  ]
647
706
  };
@@ -657,16 +716,18 @@ export function fieldsToJSONSchema(/**
657
716
  if (typeof field.editor === 'function') {
658
717
  throw new Error('Attempted to access unsanitized rich text editor.');
659
718
  }
660
- if (field.editor.outputSchema) {
719
+ if (field.editor.jsonSchema) {
661
720
  fieldSchema = {
662
721
  ...baseFieldSchema,
663
- ...field.editor.outputSchema({
722
+ ...field.editor.jsonSchema({
664
723
  collectionIDFieldTypes,
665
724
  config,
666
725
  field,
667
726
  i18n,
668
727
  interfaceNameDefinitions,
669
- isRequired
728
+ isRequired,
729
+ typeStringDefinitions,
730
+ variant
670
731
  })
671
732
  };
672
733
  } else {
@@ -694,7 +755,7 @@ export function fieldsToJSONSchema(/**
694
755
  // only if the field's options match the global config
695
756
  if (isTimezoneField && hasMatchingGlobalTimezones) {
696
757
  fieldSchema = {
697
- $ref: `#/definitions/supportedTimezones`
758
+ $ref: `#/$defs/supportedTimezones`
698
759
  };
699
760
  } else {
700
761
  if (field.hasMany) {
@@ -719,9 +780,8 @@ export function fieldsToJSONSchema(/**
719
780
  }
720
781
  }
721
782
  if (field.interfaceName) {
722
- interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
723
783
  fieldSchema = {
724
- $ref: `#/definitions/${field.interfaceName}`
784
+ $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
725
785
  };
726
786
  }
727
787
  break;
@@ -734,12 +794,20 @@ export function fieldsToJSONSchema(/**
734
794
  ...baseFieldSchema,
735
795
  type: 'object',
736
796
  additionalProperties: false,
737
- ...fieldsToJSONSchema(collectionIDFieldTypes, field.flattenedFields, interfaceNameDefinitions, config, i18n, opts)
797
+ ...fieldsToJSONSchema({
798
+ collectionIDFieldTypes,
799
+ config,
800
+ fields: field.flattenedFields,
801
+ forceInlineBlocks,
802
+ i18n,
803
+ interfaceNameDefinitions,
804
+ typeStringDefinitions,
805
+ variant
806
+ })
738
807
  };
739
808
  if (field.interfaceName) {
740
- interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
741
809
  fieldSchema = {
742
- $ref: `#/definitions/${field.interfaceName}`
810
+ $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
743
811
  };
744
812
  }
745
813
  break;
@@ -765,15 +833,16 @@ export function fieldsToJSONSchema(/**
765
833
  break;
766
834
  }
767
835
  }
768
- if ('typescriptSchema' in field && field?.typescriptSchema?.length) {
769
- for (const schema of field.typescriptSchema){
836
+ if ('jsonSchema' in field && field?.jsonSchema?.length) {
837
+ for (const schema of field.jsonSchema){
770
838
  fieldSchema = schema({
771
- jsonSchema: fieldSchema
839
+ jsonSchema: fieldSchema,
840
+ variant
772
841
  });
773
842
  }
774
843
  }
775
844
  if (fieldSchema && fieldAffectsData(field)) {
776
- if (isRequired && fieldSchema.required !== false) {
845
+ if (isRequired && !isOptionalOnInput && fieldSchema.required !== false) {
777
846
  requiredFieldNames.add(field.name);
778
847
  }
779
848
  fieldSchemas.set(field.name, fieldSchema);
@@ -784,17 +853,21 @@ export function fieldsToJSONSchema(/**
784
853
  };
785
854
  }
786
855
  // This function is part of the public API and is exported through payload/utilities
787
- export function entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, collectionIDFieldTypes, i18n, opts = {}) {
856
+ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, typeStringDefinitions, collectionIDFieldTypes, i18n, forceInlineBlocks, variant = 'output') {
788
857
  if (!collectionIDFieldTypes) {
789
858
  collectionIDFieldTypes = getCollectionIDFieldTypes({
790
859
  config,
791
860
  defaultIDType
792
861
  });
793
862
  }
794
- const title = entity.typescript?.interface ? entity.typescript.interface : formatNames(entity.slug).singular;
863
+ const isInput = variant === 'input';
864
+ const baseTitle = entity.typescript?.interface ? entity.typescript.interface : formatNames(entity.slug).singular;
865
+ const title = isInput ? `${baseTitle}Input` : baseTitle;
795
866
  let mutableFields = [
796
867
  ...entity.flattenedFields
797
868
  ];
869
+ // `required: true` keeps `id` non-null. On input it's made optional further below (it's dropped
870
+ // from `required`) so you can omit it or pass a custom ID, but it's still never `null`.
798
871
  const idField = {
799
872
  name: 'id',
800
873
  type: defaultIDType,
@@ -802,20 +875,18 @@ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, def
802
875
  };
803
876
  const customIdField = mutableFields.find((field)=>field.name === 'id');
804
877
  if (customIdField && customIdField.type !== 'group' && customIdField.type !== 'tab') {
805
- mutableFields = mutableFields.map((field)=>{
806
- if (field === customIdField) {
807
- return {
808
- ...field,
809
- required: true
810
- };
811
- }
812
- return field;
813
- });
878
+ mutableFields = mutableFields.map((field)=>field === customIdField ? {
879
+ ...field,
880
+ required: true
881
+ } : field);
814
882
  } else {
815
883
  mutableFields.unshift(idField);
816
884
  }
817
- // mark timestamp fields required
818
- if ('timestamps' in entity && entity.timestamps !== false) {
885
+ if (isInput) {
886
+ // Managed by Payload, not set by a client.
887
+ mutableFields = mutableFields.filter((field)=>field.name !== 'createdAt' && field.name !== 'updatedAt' && field.name !== '_status');
888
+ } else if ('timestamps' in entity && entity.timestamps !== false) {
889
+ // mark timestamp fields required
819
890
  mutableFields = mutableFields.map((field)=>{
820
891
  if (field.name === 'createdAt' || field.name === 'updatedAt') {
821
892
  return {
@@ -833,9 +904,23 @@ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, def
833
904
  });
834
905
  }
835
906
  const isAuthCollection = 'auth' in entity && entity.auth;
836
- const fieldsSchema = fieldsToJSONSchema(collectionIDFieldTypes, mutableFields, interfaceNameDefinitions, config, i18n, opts);
837
- // Add collection property to auth collections
838
- if (isAuthCollection) {
907
+ const fieldsSchema = fieldsToJSONSchema({
908
+ collectionIDFieldTypes,
909
+ config,
910
+ fields: mutableFields,
911
+ forceInlineBlocks,
912
+ i18n,
913
+ interfaceNameDefinitions,
914
+ typeStringDefinitions,
915
+ variant
916
+ });
917
+ // On input, `id` is optional (omit it, or pass a custom ID). Removing it from `required` makes
918
+ // it optional without making it nullable.
919
+ if (isInput && Array.isArray(fieldsSchema.required)) {
920
+ fieldsSchema.required = fieldsSchema.required.filter((name)=>name !== 'id');
921
+ }
922
+ // The `User`-union discriminator (read-side, e.g. `req.user`); not part of create/update data.
923
+ if (isAuthCollection && !isInput) {
839
924
  fieldsSchema.properties = {
840
925
  ...fieldsSchema.properties,
841
926
  collection: {
@@ -865,6 +950,47 @@ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, def
865
950
  }
866
951
  return jsonSchema;
867
952
  }
953
+ /**
954
+ * Like {@link entityToJSONSchema}, but returns a standalone schema for one collection or global:
955
+ * the entity plus only the `$defs` it actually uses, so it resolves on its own rather than
956
+ * as part of the whole config schema.
957
+ *
958
+ * Relationship/upload `$ref`s to other collections are left in place - the caller handles those.
959
+ * (The `input` variant reduces relationships to IDs, so only rich-text node `$defs` still ref them.)
960
+ */ export function entityToStandaloneJSONSchema({ config, defaultIDType, entity, i18n, variant = 'output' }) {
961
+ const definitions = new Map();
962
+ // entityToJSONSchema fills `definitions` with everything the fields reference (node unions, blocks).
963
+ const schema = entityToJSONSchema(config, entity, definitions, defaultIDType, new Set(), undefined, i18n, true, variant);
964
+ // Timezone fields `$ref` supportedTimezones, which lives on the root config schema, so add it here.
965
+ const supportedTimezones = config.admin?.timezones?.supportedTimezones;
966
+ if (supportedTimezones?.length && schemaHasRef([
967
+ schema,
968
+ ...definitions.values()
969
+ ], '#/$defs/supportedTimezones')) {
970
+ definitions.set('supportedTimezones', timezonesToJSONSchema(supportedTimezones));
971
+ }
972
+ return {
973
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
974
+ ...schema,
975
+ $defs: Object.fromEntries(definitions)
976
+ };
977
+ }
978
+ /**
979
+ * Recursive function that returns true if
980
+ * `node` has a `$ref` to `ref` somewhere inside it.
981
+ * */ function schemaHasRef(node, ref) {
982
+ if (Array.isArray(node)) {
983
+ return node.some((child)=>schemaHasRef(child, ref));
984
+ }
985
+ if (node && typeof node === 'object') {
986
+ const obj = node;
987
+ if (obj.$ref === ref) {
988
+ return true;
989
+ }
990
+ return Object.values(obj).some((value)=>schemaHasRef(value, ref));
991
+ }
992
+ return false;
993
+ }
868
994
  export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefinitions }) {
869
995
  const schema = {
870
996
  type: 'object',
@@ -886,7 +1012,7 @@ export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefiniti
886
1012
  const definition = `${field.interfaceName}_select`;
887
1013
  interfaceNameDefinitions.set(definition, fieldSchema);
888
1014
  fieldSchema = {
889
- $ref: `#/definitions/${definition}`
1015
+ $ref: `#/$defs/${definition}`
890
1016
  };
891
1017
  }
892
1018
  schema.properties[field.name] = {
@@ -906,7 +1032,7 @@ export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefiniti
906
1032
  additionalProperties: false,
907
1033
  properties: {}
908
1034
  };
909
- for (const block of field.blockReferences ?? field.blocks){
1035
+ for (const block of field.blocks){
910
1036
  if (typeof block === 'string') {
911
1037
  continue; // TODO
912
1038
  }
@@ -919,7 +1045,7 @@ export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefiniti
919
1045
  const definition = `${block.interfaceName}_select`;
920
1046
  interfaceNameDefinitions.set(definition, blockSchema);
921
1047
  blockSchema = {
922
- $ref: `#/definitions/${definition}`
1048
+ $ref: `#/$defs/${definition}`
923
1049
  };
924
1050
  }
925
1051
  blocksSchema.properties[block.slug] = {
@@ -1121,7 +1247,7 @@ function generateAuthOperationSchemas(collections) {
1121
1247
  const properties = collections.reduce((acc, collection)=>{
1122
1248
  if (collection.auth) {
1123
1249
  acc[collection.slug] = {
1124
- $ref: `#/definitions/auth/${collection.slug}`
1250
+ $ref: `#/$defs/auth/${collection.slug}`
1125
1251
  };
1126
1252
  }
1127
1253
  return acc;
@@ -1133,11 +1259,56 @@ function generateAuthOperationSchemas(collections) {
1133
1259
  required: Object.keys(properties)
1134
1260
  };
1135
1261
  }
1262
+ const hashBlockSchema = (schema)=>createHash('sha256').update(JSON.stringify(schema)).digest('hex').slice(0, 8).toUpperCase();
1263
+ /**
1264
+ * Registers a block's schema as a top-level definition and returns its name.
1265
+ *
1266
+ * The name is the block's `interfaceName`, or a PascalCase form of its slug. If a different block
1267
+ * already uses that name - whether it was auto-generated or an explicit `interfaceName` - this one
1268
+ * gets a content-hash suffix (`Hero_3F2A1B0C`) so the two don't overwrite each other. Registering
1269
+ * the same block shape again reuses its name.
1270
+ *
1271
+ * The `input` variant adds an `Input` suffix (`HeroInput`) - unless the read-shaped def is already
1272
+ * registered with byte-identical content (a block with nothing that differs between input and
1273
+ * output), in which case it's shared as-is rather than emitting a redundant twin.
1274
+ */ export function registerBlockInterface(block, blockSchema, interfaceNameDefinitions, variant = 'output') {
1275
+ const rawName = block.interfaceName ?? toWords(block.slug, true);
1276
+ if (variant === 'input') {
1277
+ const outputDef = interfaceNameDefinitions.get(rawName);
1278
+ if (outputDef && hashBlockSchema(outputDef) === hashBlockSchema(blockSchema)) {
1279
+ return rawName;
1280
+ }
1281
+ }
1282
+ const baseName = variant === 'input' ? `${rawName}Input` : rawName;
1283
+ const existing = interfaceNameDefinitions.get(baseName);
1284
+ // The name is free - claim it.
1285
+ if (!existing) {
1286
+ interfaceNameDefinitions.set(baseName, blockSchema);
1287
+ return baseName;
1288
+ }
1289
+ const hash = hashBlockSchema(blockSchema);
1290
+ // The same block shape is already registered under this name, so reuse it.
1291
+ if (hashBlockSchema(existing) === hash) {
1292
+ return baseName;
1293
+ }
1294
+ // A different block already owns the name. Disambiguate this one with its hash.
1295
+ blockSchema.description = `Multiple blocks resolve to the \`${baseName}\` interface with different fields, so a content hash is appended to keep the generated types stable and unambiguous. Set a unique \`interfaceName\` on the block to choose the name yourself. See https://payloadcms.com/docs/typescript/generating-types#block-interface-name-collisions`;
1296
+ const uniqueName = `${baseName}_${hash}`;
1297
+ interfaceNameDefinitions.set(uniqueName, blockSchema);
1298
+ return uniqueName;
1299
+ }
1136
1300
  /**
1137
1301
  * This is used for generating the TypeScript types (payload-types.ts) with the payload generate:types command.
1138
- */ export function configToJSONSchema(config, defaultIDType, i18n, opts = {}) {
1139
- // a mutable Map to store custom top-level `interfaceName` types. Fields with an `interfaceName` property will be moved to the top-level definitions here
1302
+ */ export function configToJSONSchema(config, defaultIDType, i18n, { forceInlineBlocks } = {}) {
1303
+ // a mutable Map of top-level definitions in the generated JSON Schema.
1304
+ // - `array`/`group`/named-`tab` fields are registered here when they set
1305
+ // `interfaceName` (otherwise they stay inline).
1306
+ // - `block` configs always register here via `registerBlockInterface`, keyed by
1307
+ // `block.interfaceName` if set, else a PascalCase form of the slug (with a
1308
+ // content-hash suffix when two different blocks resolve to the same name).
1140
1309
  const interfaceNameDefinitions = new Map();
1310
+ // a mutable Set for raw TS source to be appended to `payload-types.ts`.
1311
+ const typeStringDefinitions = new Set();
1141
1312
  // Used for relationship fields, to determine whether to use a string or number type for the ID.
1142
1313
  const collectionIDFieldTypes = getCollectionIDFieldTypes({
1143
1314
  config,
@@ -1155,8 +1326,12 @@ function generateAuthOperationSchemas(collections) {
1155
1326
  entity: collection
1156
1327
  }))
1157
1328
  ];
1329
+ const generateInputTypes = config.typescript?.generateInputTypes === true;
1158
1330
  const entityDefinitions = entities.reduce((acc, { type, entity })=>{
1159
- acc[entity.slug] = entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, collectionIDFieldTypes, i18n, opts);
1331
+ acc[entity.slug] = entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, typeStringDefinitions, collectionIDFieldTypes, i18n, forceInlineBlocks);
1332
+ if (generateInputTypes) {
1333
+ acc[`${entity.slug}_input`] = entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, typeStringDefinitions, collectionIDFieldTypes, i18n, forceInlineBlocks, 'input');
1334
+ }
1160
1335
  const select = fieldsToSelectJSONSchema({
1161
1336
  config,
1162
1337
  fields: entity.flattenedFields,
@@ -1178,9 +1353,10 @@ function generateAuthOperationSchemas(collections) {
1178
1353
  const widgetSchemas = generateWidgetSchemas({
1179
1354
  collectionIDFieldTypes,
1180
1355
  config,
1356
+ forceInlineBlocks,
1181
1357
  i18n,
1182
1358
  interfaceNameDefinitions,
1183
- opts
1359
+ typeStringDefinitions
1184
1360
  });
1185
1361
  const authOperationDefinitions = [
1186
1362
  ...config.collections
@@ -1190,7 +1366,7 @@ function generateAuthOperationSchemas(collections) {
1190
1366
  }, {
1191
1367
  auth: {}
1192
1368
  });
1193
- const jobsSchemas = config.jobs ? generateJobsJSONSchemas(config, config.jobs, interfaceNameDefinitions, collectionIDFieldTypes, i18n) : {};
1369
+ const jobsSchemas = config.jobs ? generateJobsJSONSchemas(config, config.jobs, interfaceNameDefinitions, collectionIDFieldTypes, typeStringDefinitions, i18n) : {};
1194
1370
  const blocksDefinition = {
1195
1371
  type: 'object',
1196
1372
  additionalProperties: false,
@@ -1199,7 +1375,15 @@ function generateAuthOperationSchemas(collections) {
1199
1375
  };
1200
1376
  if (config?.blocks?.length) {
1201
1377
  for (const block of config.blocks){
1202
- const blockFieldSchemas = fieldsToJSONSchema(collectionIDFieldTypes, block.flattenedFields, interfaceNameDefinitions, config, i18n, opts);
1378
+ const blockFieldSchemas = fieldsToJSONSchema({
1379
+ collectionIDFieldTypes,
1380
+ config,
1381
+ fields: block.flattenedFields,
1382
+ forceInlineBlocks,
1383
+ i18n,
1384
+ interfaceNameDefinitions,
1385
+ typeStringDefinitions
1386
+ });
1203
1387
  const blockSchema = {
1204
1388
  type: 'object',
1205
1389
  additionalProperties: false,
@@ -1214,23 +1398,22 @@ function generateAuthOperationSchemas(collections) {
1214
1398
  ...blockFieldSchemas.required
1215
1399
  ]
1216
1400
  };
1217
- const interfaceName = block.interfaceName ?? block.slug;
1218
- interfaceNameDefinitions.set(interfaceName, blockSchema);
1219
1401
  blocksDefinition.properties[block.slug] = {
1220
- $ref: `#/definitions/${interfaceName}`
1402
+ $ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions)}`
1221
1403
  };
1222
1404
  blocksDefinition.required.push(block.slug);
1223
1405
  }
1224
1406
  }
1225
1407
  let jsonSchema = {
1226
- additionalProperties: false,
1227
- definitions: {
1408
+ $defs: {
1228
1409
  supportedTimezones: timezoneDefinitions,
1229
1410
  ...entityDefinitions,
1230
1411
  ...widgetSchemas.definitions,
1231
1412
  ...Object.fromEntries(interfaceNameDefinitions),
1232
1413
  ...authOperationDefinitions
1233
1414
  },
1415
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
1416
+ additionalProperties: false,
1234
1417
  // These properties here will be very simple, as all the complexity is in the definitions. These are just the properties for the top-level `Config` type
1235
1418
  type: 'object',
1236
1419
  properties: {
@@ -1245,6 +1428,10 @@ function generateAuthOperationSchemas(collections) {
1245
1428
  globalsSelect: generateEntitySelectSchemas(config.globals || []),
1246
1429
  locale: generateLocaleEntitySchemas(config.localization),
1247
1430
  widgets: widgetSchemas.schema,
1431
+ ...generateInputTypes ? {
1432
+ collectionsInput: generateEntityInputSchemas(config.collections || []),
1433
+ globalsInput: generateEntityInputSchemas(config.globals || [])
1434
+ } : {},
1248
1435
  ...config.typescript?.strictDraftTypes ? {
1249
1436
  strictDraftTypes: {
1250
1437
  type: 'boolean',
@@ -1261,6 +1448,10 @@ function generateAuthOperationSchemas(collections) {
1261
1448
  'collectionsSelect',
1262
1449
  'collectionsJoins',
1263
1450
  'globalsSelect',
1451
+ ...generateInputTypes ? [
1452
+ 'collectionsInput',
1453
+ 'globalsInput'
1454
+ ] : [],
1264
1455
  ...config.typescript?.strictDraftTypes ? [
1265
1456
  'strictDraftTypes'
1266
1457
  ] : [],
@@ -1275,7 +1466,7 @@ function generateAuthOperationSchemas(collections) {
1275
1466
  };
1276
1467
  if (jobsSchemas.definitions?.size) {
1277
1468
  for (const [key, value] of jobsSchemas.definitions){
1278
- jsonSchema.definitions[key] = value;
1469
+ jsonSchema.$defs[key] = value;
1279
1470
  }
1280
1471
  }
1281
1472
  if (jobsSchemas.properties) {
@@ -1299,7 +1490,10 @@ function generateAuthOperationSchemas(collections) {
1299
1490
  });
1300
1491
  }
1301
1492
  }
1302
- return jsonSchema;
1493
+ return {
1494
+ jsonSchema,
1495
+ typeStringDefinitions
1496
+ };
1303
1497
  }
1304
1498
 
1305
1499
  //# sourceMappingURL=configToJSONSchema.js.map