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,6 +1,6 @@
1
1
  import { describe, it, expect } from 'vitest';
2
2
  import { sanitizeConfig } from '../config/sanitize.js';
3
- import { configToJSONSchema } from './configToJSONSchema.js';
3
+ import { configToJSONSchema, entityToStandaloneJSONSchema } from './configToJSONSchema.js';
4
4
  describe('configToJSONSchema', ()=>{
5
5
  it('should handle optional arrays with required fields', async ()=>{
6
6
  // @ts-expect-error
@@ -21,13 +21,14 @@ describe('configToJSONSchema', ()=>{
21
21
  ]
22
22
  }
23
23
  ],
24
- timestamps: false
24
+ timestamps: false,
25
+ versions: false
25
26
  }
26
27
  ]
27
28
  };
28
29
  const sanitizedConfig = await sanitizeConfig(config);
29
- const schema = configToJSONSchema(sanitizedConfig, 'text');
30
- expect(schema?.definitions?.test).toStrictEqual({
30
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
31
+ expect(schema?.$defs?.test).toStrictEqual({
31
32
  type: 'object',
32
33
  additionalProperties: false,
33
34
  properties: {
@@ -65,6 +66,325 @@ describe('configToJSONSchema', ()=>{
65
66
  title: 'Test'
66
67
  });
67
68
  });
69
+ it('should generate separate input types when generateInputTypes is enabled', async ()=>{
70
+ // @ts-expect-error partial config
71
+ const config = {
72
+ collections: [
73
+ {
74
+ slug: 'authors',
75
+ fields: [
76
+ {
77
+ name: 'name',
78
+ type: 'text'
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ slug: 'categories',
84
+ fields: [
85
+ {
86
+ name: 'title',
87
+ type: 'text'
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ slug: 'posts',
93
+ fields: [
94
+ {
95
+ name: 'title',
96
+ type: 'text',
97
+ required: true
98
+ },
99
+ {
100
+ name: 'status',
101
+ type: 'select',
102
+ defaultValue: 'draft',
103
+ options: [
104
+ 'draft',
105
+ 'published'
106
+ ],
107
+ required: true
108
+ },
109
+ {
110
+ name: 'author',
111
+ type: 'relationship',
112
+ relationTo: 'authors'
113
+ },
114
+ {
115
+ name: 'categories',
116
+ type: 'relationship',
117
+ hasMany: true,
118
+ relationTo: 'categories'
119
+ }
120
+ ]
121
+ }
122
+ ],
123
+ typescript: {
124
+ generateInputTypes: true
125
+ }
126
+ };
127
+ const sanitizedConfig = await sanitizeConfig(config);
128
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
129
+ // Output (read) shape is unchanged: relationships may be populated, managed fields are present,
130
+ // and a required field with a defaultValue stays required.
131
+ const postsOutput = schema?.$defs?.posts;
132
+ expect(postsOutput.title).toBe('Post');
133
+ expect(postsOutput.properties.author).toStrictEqual({
134
+ oneOf: [
135
+ {
136
+ type: [
137
+ 'string',
138
+ 'null'
139
+ ]
140
+ },
141
+ {
142
+ $ref: '#/$defs/authors'
143
+ }
144
+ ]
145
+ });
146
+ expect(postsOutput.properties.categories).toStrictEqual({
147
+ type: [
148
+ 'array',
149
+ 'null'
150
+ ],
151
+ items: {
152
+ oneOf: [
153
+ {
154
+ type: 'string'
155
+ },
156
+ {
157
+ $ref: '#/$defs/categories'
158
+ }
159
+ ]
160
+ }
161
+ });
162
+ expect(postsOutput.required).toStrictEqual([
163
+ 'id',
164
+ 'title',
165
+ 'status',
166
+ 'updatedAt',
167
+ 'createdAt'
168
+ ]);
169
+ // Input (write) shape: relationships are ID-only, the defaultValue field is optional, `id` is
170
+ // optional, and createdAt/updatedAt are dropped. `id` and the defaulted `status` are optional
171
+ // but NOT nullable - nullability follows the read shape, where they're non-null.
172
+ expect(schema?.$defs?.posts_input).toStrictEqual({
173
+ type: 'object',
174
+ additionalProperties: false,
175
+ properties: {
176
+ id: {
177
+ type: 'string'
178
+ },
179
+ title: {
180
+ type: 'string'
181
+ },
182
+ status: {
183
+ type: 'string',
184
+ enum: [
185
+ 'draft',
186
+ 'published'
187
+ ]
188
+ },
189
+ author: {
190
+ type: [
191
+ 'string',
192
+ 'null'
193
+ ]
194
+ },
195
+ categories: {
196
+ type: [
197
+ 'array',
198
+ 'null'
199
+ ],
200
+ items: {
201
+ type: 'string'
202
+ }
203
+ }
204
+ },
205
+ required: [
206
+ 'title'
207
+ ],
208
+ title: 'PostInput'
209
+ });
210
+ // The Config type exposes input shapes under `collectionsInput`.
211
+ expect(schema?.properties?.collectionsInput?.properties?.posts).toStrictEqual({
212
+ $ref: '#/$defs/posts_input'
213
+ });
214
+ });
215
+ it('should skip input types by default and generate them when enabled', async ()=>{
216
+ // @ts-expect-error partial config
217
+ const offByDefault = {
218
+ collections: [
219
+ {
220
+ slug: 'posts',
221
+ fields: [
222
+ {
223
+ name: 'title',
224
+ type: 'text'
225
+ }
226
+ ]
227
+ }
228
+ ]
229
+ };
230
+ const { jsonSchema: defaultSchema } = configToJSONSchema(await sanitizeConfig(offByDefault), 'text');
231
+ expect(defaultSchema?.$defs?.posts_input).toBeUndefined();
232
+ expect(defaultSchema?.properties?.collectionsInput).toBeUndefined();
233
+ // @ts-expect-error partial config
234
+ const enabled = {
235
+ collections: [
236
+ {
237
+ slug: 'posts',
238
+ fields: [
239
+ {
240
+ name: 'title',
241
+ type: 'text'
242
+ }
243
+ ]
244
+ }
245
+ ],
246
+ typescript: {
247
+ generateInputTypes: true
248
+ }
249
+ };
250
+ const { jsonSchema: enabledSchema } = configToJSONSchema(await sanitizeConfig(enabled), 'text');
251
+ expect(enabledSchema?.$defs?.posts_input).toBeDefined();
252
+ expect(enabledSchema?.properties?.collectionsInput).toBeDefined();
253
+ });
254
+ it('should generate Input-suffixed definitions for named interfaces and blocks', async ()=>{
255
+ // @ts-expect-error partial config
256
+ const config = {
257
+ collections: [
258
+ {
259
+ slug: 'authors',
260
+ fields: [
261
+ {
262
+ name: 'name',
263
+ type: 'text'
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ slug: 'pages',
269
+ fields: [
270
+ {
271
+ name: 'meta',
272
+ type: 'group',
273
+ interfaceName: 'Meta',
274
+ fields: [
275
+ {
276
+ name: 'author',
277
+ type: 'relationship',
278
+ relationTo: 'authors'
279
+ }
280
+ ]
281
+ },
282
+ {
283
+ name: 'layout',
284
+ type: 'blocks',
285
+ blocks: [
286
+ {
287
+ slug: 'hero',
288
+ fields: [
289
+ {
290
+ name: 'heading',
291
+ type: 'text',
292
+ required: true
293
+ },
294
+ {
295
+ name: 'cta',
296
+ type: 'relationship',
297
+ relationTo: 'authors'
298
+ }
299
+ ]
300
+ }
301
+ ]
302
+ }
303
+ ]
304
+ }
305
+ ],
306
+ typescript: {
307
+ generateInputTypes: true
308
+ }
309
+ };
310
+ const sanitizedConfig = await sanitizeConfig(config);
311
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
312
+ // Read-shaped named interface keeps the populated-doc union...
313
+ expect((schema?.$defs?.Meta).properties.author).toStrictEqual({
314
+ oneOf: [
315
+ {
316
+ type: [
317
+ 'string',
318
+ 'null'
319
+ ]
320
+ },
321
+ {
322
+ $ref: '#/$defs/authors'
323
+ }
324
+ ]
325
+ });
326
+ // ...and a separate `Input` definition is ID-only, so the two don't collide.
327
+ expect((schema?.$defs?.MetaInput).properties.author).toStrictEqual({
328
+ type: [
329
+ 'string',
330
+ 'null'
331
+ ]
332
+ });
333
+ // Blocks get the same treatment: read-shaped `Hero`, write-shaped `HeroInput`.
334
+ const heroInput = schema?.$defs?.HeroInput;
335
+ expect(heroInput.properties.cta).toStrictEqual({
336
+ type: [
337
+ 'string',
338
+ 'null'
339
+ ]
340
+ });
341
+ expect(heroInput.required).toStrictEqual([
342
+ 'blockType',
343
+ 'heading'
344
+ ]);
345
+ expect((schema?.$defs?.Hero).properties.cta).toStrictEqual({
346
+ oneOf: [
347
+ {
348
+ type: [
349
+ 'string',
350
+ 'null'
351
+ ]
352
+ },
353
+ {
354
+ $ref: '#/$defs/authors'
355
+ }
356
+ ]
357
+ });
358
+ });
359
+ it('passes the variant to field-level jsonSchema transforms', async ()=>{
360
+ // @ts-expect-error partial config
361
+ const config = {
362
+ collections: [
363
+ {
364
+ slug: 'posts',
365
+ fields: [
366
+ {
367
+ name: 'custom',
368
+ type: 'text',
369
+ jsonSchema: [
370
+ ({ jsonSchema, variant })=>({
371
+ ...jsonSchema,
372
+ description: variant
373
+ })
374
+ ]
375
+ }
376
+ ]
377
+ }
378
+ ],
379
+ typescript: {
380
+ generateInputTypes: true
381
+ }
382
+ };
383
+ const sanitizedConfig = await sanitizeConfig(config);
384
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
385
+ expect((schema?.$defs?.posts).properties.custom.description).toBe('output');
386
+ expect((schema?.$defs?.posts_input).properties.custom.description).toBe('input');
387
+ });
68
388
  it('should handle block fields with no blocks', async ()=>{
69
389
  // @ts-expect-error
70
390
  const config = {
@@ -103,7 +423,7 @@ describe('configToJSONSchema', ()=>{
103
423
  type: 'blocks',
104
424
  blocks: [
105
425
  {
106
- slug: 'test',
426
+ slug: 'testRequired',
107
427
  fields: [
108
428
  {
109
429
  name: 'field',
@@ -115,13 +435,14 @@ describe('configToJSONSchema', ()=>{
115
435
  ]
116
436
  }
117
437
  ],
118
- timestamps: false
438
+ timestamps: false,
439
+ versions: false
119
440
  }
120
441
  ]
121
442
  };
122
443
  const sanitizedConfig = await sanitizeConfig(config);
123
- const schema = configToJSONSchema(sanitizedConfig, 'text');
124
- expect(schema?.definitions?.test).toStrictEqual({
444
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
445
+ expect(schema?.$defs?.test).toStrictEqual({
125
446
  type: 'object',
126
447
  additionalProperties: false,
127
448
  properties: {
@@ -147,34 +468,7 @@ describe('configToJSONSchema', ()=>{
147
468
  items: {
148
469
  oneOf: [
149
470
  {
150
- type: 'object',
151
- additionalProperties: false,
152
- properties: {
153
- id: {
154
- type: [
155
- 'string',
156
- 'null'
157
- ]
158
- },
159
- blockName: {
160
- type: [
161
- 'string',
162
- 'null'
163
- ]
164
- },
165
- blockType: {
166
- const: 'test'
167
- },
168
- field: {
169
- type: [
170
- 'string',
171
- 'null'
172
- ]
173
- }
174
- },
175
- required: [
176
- 'blockType'
177
- ]
471
+ $ref: '#/$defs/Test'
178
472
  }
179
473
  ]
180
474
  }
@@ -187,32 +481,7 @@ describe('configToJSONSchema', ()=>{
187
481
  items: {
188
482
  oneOf: [
189
483
  {
190
- type: 'object',
191
- additionalProperties: false,
192
- properties: {
193
- id: {
194
- type: [
195
- 'string',
196
- 'null'
197
- ]
198
- },
199
- blockName: {
200
- type: [
201
- 'string',
202
- 'null'
203
- ]
204
- },
205
- blockType: {
206
- const: 'test'
207
- },
208
- field: {
209
- type: 'string'
210
- }
211
- },
212
- required: [
213
- 'blockType',
214
- 'field'
215
- ]
484
+ $ref: '#/$defs/TestRequired'
216
485
  }
217
486
  ]
218
487
  }
@@ -225,6 +494,89 @@ describe('configToJSONSchema', ()=>{
225
494
  title: 'Test'
226
495
  });
227
496
  });
497
+ it('keeps the first block interface name clean and content-hashes the colliding one', async ()=>{
498
+ // @ts-expect-error - partial config for testing
499
+ const config = {
500
+ collections: [
501
+ {
502
+ slug: 'pages',
503
+ fields: [
504
+ {
505
+ name: 'layout',
506
+ type: 'blocks',
507
+ blocks: [
508
+ {
509
+ slug: 'hero',
510
+ fields: [
511
+ {
512
+ name: 'title',
513
+ type: 'text'
514
+ }
515
+ ]
516
+ },
517
+ {
518
+ slug: 'cta',
519
+ fields: [
520
+ {
521
+ name: 'label',
522
+ type: 'text'
523
+ }
524
+ ]
525
+ }
526
+ ]
527
+ }
528
+ ],
529
+ timestamps: false,
530
+ versions: false
531
+ },
532
+ {
533
+ slug: 'posts',
534
+ fields: [
535
+ {
536
+ name: 'layout',
537
+ type: 'blocks',
538
+ // Same slug `hero`, DIFFERENT fields → name collision with pages' hero.
539
+ blocks: [
540
+ {
541
+ slug: 'hero',
542
+ fields: [
543
+ {
544
+ name: 'heading',
545
+ type: 'text'
546
+ }
547
+ ]
548
+ }
549
+ ]
550
+ }
551
+ ],
552
+ timestamps: false,
553
+ versions: false
554
+ }
555
+ ]
556
+ };
557
+ const sanitizedConfig = await sanitizeConfig(config);
558
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
559
+ const defs = schema.$defs;
560
+ // The first `hero` keeps the clean name; the unique block is unaffected.
561
+ expect(defs.Hero).toBeDefined();
562
+ expect(defs.Cta).toBeDefined();
563
+ // Only the second, differently-shaped `hero` is disambiguated with a content hash.
564
+ const hashedHeroNames = Object.keys(defs).filter((k)=>/^Hero_[0-9A-F]{8}$/.test(k));
565
+ expect(hashedHeroNames).toHaveLength(1);
566
+ // The disambiguated interface carries the explanatory JSDoc note; the clean one does not.
567
+ expect(defs[hashedHeroNames[0]].description).toContain('content hash');
568
+ expect(defs.Hero.description).toBeUndefined();
569
+ // Each collection's block field references its own block's interface.
570
+ const refsOf = (slug)=>defs[slug].properties.layout.items.oneOf.map((r)=>r.$ref);
571
+ expect(refsOf('pages')).toContain('#/$defs/Hero');
572
+ expect(refsOf('pages')).toContain('#/$defs/Cta');
573
+ expect(refsOf('posts')).toStrictEqual([
574
+ `#/$defs/${hashedHeroNames[0]}`
575
+ ]);
576
+ // Hashing is deterministic: regenerating yields identical names.
577
+ const { jsonSchema: schema2 } = configToJSONSchema(sanitizedConfig, 'text');
578
+ expect(Object.keys(schema2.$defs).filter((k)=>/^Hero/.test(k)).sort()).toStrictEqual(Object.keys(defs).filter((k)=>/^Hero/.test(k)).sort());
579
+ });
228
580
  it('should handle tabs and named tabs with required fields', async ()=>{
229
581
  // @ts-expect-error
230
582
  const config = {
@@ -268,13 +620,14 @@ describe('configToJSONSchema', ()=>{
268
620
  ]
269
621
  }
270
622
  ],
271
- timestamps: false
623
+ timestamps: false,
624
+ versions: false
272
625
  }
273
626
  ]
274
627
  };
275
628
  const sanitizedConfig = await sanitizeConfig(config);
276
- const schema = configToJSONSchema(sanitizedConfig, 'text');
277
- expect(schema?.definitions?.test).toStrictEqual({
629
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
630
+ expect(schema?.$defs?.test).toStrictEqual({
278
631
  type: 'object',
279
632
  additionalProperties: false,
280
633
  properties: {
@@ -340,7 +693,7 @@ describe('configToJSONSchema', ()=>{
340
693
  {
341
694
  name: 'withCustom',
342
695
  type: 'text',
343
- typescriptSchema: [
696
+ jsonSchema: [
344
697
  ()=>customSchema
345
698
  ]
346
699
  },
@@ -356,13 +709,14 @@ describe('configToJSONSchema', ()=>{
356
709
  }
357
710
  }
358
711
  ],
359
- timestamps: false
712
+ timestamps: false,
713
+ versions: false
360
714
  }
361
715
  ]
362
716
  };
363
717
  const sanitizedConfig = await sanitizeConfig(config);
364
- const schema = configToJSONSchema(sanitizedConfig, 'text');
365
- expect(schema?.definitions?.test).toStrictEqual({
718
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
719
+ expect(schema?.$defs?.test).toStrictEqual({
366
720
  type: 'object',
367
721
  additionalProperties: false,
368
722
  properties: {
@@ -414,7 +768,8 @@ describe('configToJSONSchema', ()=>{
414
768
  ]
415
769
  }
416
770
  ],
417
- timestamps: false
771
+ timestamps: false,
772
+ versions: false
418
773
  }
419
774
  ]
420
775
  };
@@ -422,7 +777,7 @@ describe('configToJSONSchema', ()=>{
422
777
  const sanitizedConfig = await sanitizeConfig(config);
423
778
  expect(typeof sanitizedConfig?.blocks?.[0]?.fields?.[0]?.editor).toBe('object');
424
779
  expect(typeof sanitizedConfig.collections[0].fields[0]?.blocks?.[0]?.fields?.[0]?.editor).toBe('object');
425
- const schema = configToJSONSchema(sanitizedConfig, 'text');
780
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
426
781
  const expectedBlockSchema = {
427
782
  type: 'object',
428
783
  additionalProperties: false,
@@ -456,7 +811,7 @@ describe('configToJSONSchema', ()=>{
456
811
  'blockType'
457
812
  ]
458
813
  };
459
- expect(schema?.definitions?.test).toStrictEqual({
814
+ expect(schema?.$defs?.test).toStrictEqual({
460
815
  type: 'object',
461
816
  additionalProperties: false,
462
817
  title: 'Test',
@@ -472,7 +827,7 @@ describe('configToJSONSchema', ()=>{
472
827
  items: {
473
828
  oneOf: [
474
829
  {
475
- $ref: '#/definitions/SharedBlock'
830
+ $ref: '#/$defs/SharedBlock'
476
831
  }
477
832
  ]
478
833
  }
@@ -483,7 +838,100 @@ describe('configToJSONSchema', ()=>{
483
838
  ]
484
839
  });
485
840
  // The definition should still be registered for TypeScript type generation
486
- expect(schema?.definitions?.SharedBlock).toStrictEqual(expectedBlockSchema);
841
+ expect(schema?.$defs?.SharedBlock).toStrictEqual(expectedBlockSchema);
842
+ });
843
+ it('content-hashes a colliding explicit interfaceName instead of overwriting it', async ()=>{
844
+ // Two different blocks both set `interfaceName: 'Hero'` - each must keep its own definition.
845
+ const config = {
846
+ collections: [
847
+ {
848
+ slug: 'test',
849
+ fields: [
850
+ {
851
+ name: 'blocksField',
852
+ type: 'blocks',
853
+ blocks: [
854
+ {
855
+ slug: 'blockA',
856
+ fields: [
857
+ {
858
+ name: 'title',
859
+ type: 'text'
860
+ }
861
+ ],
862
+ interfaceName: 'Hero'
863
+ },
864
+ {
865
+ slug: 'blockB',
866
+ fields: [
867
+ {
868
+ name: 'subtitle',
869
+ type: 'number'
870
+ }
871
+ ],
872
+ interfaceName: 'Hero'
873
+ }
874
+ ]
875
+ }
876
+ ],
877
+ timestamps: false,
878
+ versions: false
879
+ }
880
+ ]
881
+ };
882
+ const sanitizedConfig = await sanitizeConfig(config);
883
+ const { jsonSchema } = configToJSONSchema(sanitizedConfig, 'text');
884
+ const defs = jsonSchema.$defs;
885
+ // Each differently-shaped block keeps its own interface (one clean, one hash-suffixed).
886
+ const heroNames = Object.keys(defs).filter((k)=>/^Hero(_[0-9A-F]{8})?$/.test(k));
887
+ expect(heroNames).toHaveLength(2);
888
+ // ...and they carry distinct field shapes (not a silent overwrite).
889
+ const shapeOf = (name)=>Object.keys(defs[name].properties).sort().join(',');
890
+ expect(shapeOf(heroNames[0])).not.toBe(shapeOf(heroNames[1]));
891
+ });
892
+ it('reuses one definition when the same block is registered more than once', async ()=>{
893
+ // Reusing one block across fields registers an identical schema each time, so it dedupes.
894
+ const heroBlock = {
895
+ slug: 'hero',
896
+ fields: [
897
+ {
898
+ name: 'title',
899
+ type: 'text'
900
+ }
901
+ ],
902
+ interfaceName: 'Hero'
903
+ };
904
+ const config = {
905
+ collections: [
906
+ {
907
+ slug: 'test',
908
+ fields: [
909
+ {
910
+ name: 'a',
911
+ type: 'blocks',
912
+ blocks: [
913
+ heroBlock
914
+ ]
915
+ },
916
+ {
917
+ name: 'b',
918
+ type: 'blocks',
919
+ blocks: [
920
+ heroBlock
921
+ ]
922
+ }
923
+ ],
924
+ timestamps: false,
925
+ versions: false
926
+ }
927
+ ]
928
+ };
929
+ const sanitizedConfig = await sanitizeConfig(config);
930
+ const { jsonSchema } = configToJSONSchema(sanitizedConfig, 'text');
931
+ const heroNames = Object.keys(jsonSchema.$defs).filter((k)=>/^Hero(_[0-9A-F]{8})?$/.test(k));
932
+ expect(heroNames).toEqual([
933
+ 'Hero'
934
+ ]);
487
935
  });
488
936
  it('should allow overriding required to false', async ()=>{
489
937
  // @ts-expect-error
@@ -497,7 +945,7 @@ describe('configToJSONSchema', ()=>{
497
945
  type: 'text',
498
946
  required: true,
499
947
  defaultValue: 'test',
500
- typescriptSchema: [
948
+ jsonSchema: [
501
949
  ()=>({
502
950
  type: 'string',
503
951
  required: false
@@ -505,14 +953,15 @@ describe('configToJSONSchema', ()=>{
505
953
  ]
506
954
  }
507
955
  ],
508
- timestamps: false
956
+ timestamps: false,
957
+ versions: false
509
958
  }
510
959
  ]
511
960
  };
512
961
  const sanitizedConfig = await sanitizeConfig(config);
513
- const schema = configToJSONSchema(sanitizedConfig, 'text');
962
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
514
963
  // @ts-expect-error
515
- expect(schema.definitions.test.properties.title.required).toStrictEqual(false);
964
+ expect(schema.$defs.test.properties.title.required).toStrictEqual(false);
516
965
  });
517
966
  it('should propagate forceInlineBlocks to nested fields (array, group, tab)', async ()=>{
518
967
  const namedBlock = {
@@ -558,34 +1007,119 @@ describe('configToJSONSchema', ()=>{
558
1007
  ]
559
1008
  }
560
1009
  ],
561
- timestamps: false
1010
+ timestamps: false,
1011
+ versions: false
562
1012
  }
563
1013
  ]
564
1014
  };
565
1015
  const sanitizedConfig = await sanitizeConfig(config);
566
1016
  // Without forceInlineBlocks: blocks field uses $ref
567
- const schemaDefault = configToJSONSchema(sanitizedConfig, 'text');
568
- const arrItemsDefault = schemaDefault.definitions.test.properties.arr.items;
1017
+ const { jsonSchema: schemaDefault } = configToJSONSchema(sanitizedConfig, 'text');
1018
+ const arrItemsDefault = schemaDefault.$defs.test.properties.arr.items;
569
1019
  const arrBlocksDefault = arrItemsDefault.properties.blocks.items.oneOf[0];
570
1020
  expect(arrBlocksDefault).toStrictEqual({
571
- $ref: '#/definitions/MyBlock'
1021
+ $ref: '#/$defs/MyBlock'
572
1022
  });
573
1023
  // With forceInlineBlocks: blocks field is inlined, no $ref
574
- const schemaInline = configToJSONSchema(sanitizedConfig, 'text', undefined, {
1024
+ const { jsonSchema: schemaInline } = configToJSONSchema(sanitizedConfig, 'text', undefined, {
575
1025
  forceInlineBlocks: true
576
1026
  });
577
- const arrItemsInline = schemaInline.definitions.test.properties.arr.items;
1027
+ const arrItemsInline = schemaInline.$defs.test.properties.arr.items;
578
1028
  const arrBlocksInline = arrItemsInline.properties.blocks.items.oneOf[0];
579
1029
  expect(arrBlocksInline).not.toHaveProperty('$ref');
580
1030
  expect(arrBlocksInline.properties?.blockType).toStrictEqual({
581
1031
  const: 'myBlock'
582
1032
  });
583
- const grpBlocksInline = schemaInline.definitions.test.properties.grp.properties.blocks.items.oneOf[0];
1033
+ const grpBlocksInline = schemaInline.$defs.test.properties.grp.properties.blocks.items.oneOf[0];
584
1034
  expect(grpBlocksInline).not.toHaveProperty('$ref');
585
1035
  expect(grpBlocksInline.properties?.blockType).toStrictEqual({
586
1036
  const: 'myBlock'
587
1037
  });
588
1038
  });
1039
+ it('entityToStandaloneJSONSchema bundles only the definitions an entity references', async ()=>{
1040
+ const sharedBlock = {
1041
+ slug: 'sharedBlock',
1042
+ interfaceName: 'SharedBlock',
1043
+ fields: [
1044
+ {
1045
+ name: 'title',
1046
+ type: 'text'
1047
+ }
1048
+ ]
1049
+ };
1050
+ // @ts-expect-error partial config
1051
+ const config = {
1052
+ admin: {
1053
+ timezones: {
1054
+ supportedTimezones: [
1055
+ {
1056
+ label: 'UTC',
1057
+ value: 'UTC'
1058
+ },
1059
+ {
1060
+ label: 'New York',
1061
+ value: 'America/New_York'
1062
+ }
1063
+ ]
1064
+ }
1065
+ },
1066
+ blocks: [
1067
+ sharedBlock
1068
+ ],
1069
+ collections: [
1070
+ {
1071
+ slug: 'with-refs',
1072
+ fields: [
1073
+ {
1074
+ name: 'layout',
1075
+ type: 'blocks',
1076
+ blocks: [
1077
+ 'sharedBlock'
1078
+ ]
1079
+ },
1080
+ {
1081
+ name: 'when',
1082
+ type: 'date',
1083
+ timezone: true
1084
+ }
1085
+ ],
1086
+ timestamps: false,
1087
+ versions: false
1088
+ },
1089
+ {
1090
+ slug: 'other',
1091
+ fields: [
1092
+ {
1093
+ name: 'title',
1094
+ type: 'text'
1095
+ }
1096
+ ],
1097
+ timestamps: false,
1098
+ versions: false
1099
+ }
1100
+ ]
1101
+ };
1102
+ const sanitizedConfig = await sanitizeConfig(config);
1103
+ const entity = sanitizedConfig.collections.find((collection)=>collection.slug === 'with-refs');
1104
+ const schema = entityToStandaloneJSONSchema({
1105
+ config: sanitizedConfig,
1106
+ defaultIDType: 'text',
1107
+ entity
1108
+ });
1109
+ // Has its own $schema, so it resolves on its own.
1110
+ expect(schema.$schema).toBe('https://json-schema.org/draft/2020-12/schema');
1111
+ // The block reference is resolved inline, so it can't dangle.
1112
+ const layoutItems = schema.properties?.layout?.items;
1113
+ const inlinedBlock = layoutItems?.oneOf?.[0] ?? {};
1114
+ expect(inlinedBlock.properties?.blockType).toStrictEqual({
1115
+ const: 'sharedBlock'
1116
+ });
1117
+ expect(inlinedBlock.properties?.title).toBeDefined();
1118
+ // A timezone field pulls in supportedTimezones from the root config.
1119
+ expect(schema.$defs?.supportedTimezones).toBeDefined();
1120
+ // Doesn't pull in unrelated collections.
1121
+ expect(schema.$defs?.other).toBeUndefined();
1122
+ });
589
1123
  });
590
1124
 
591
1125
  //# sourceMappingURL=configToJSONSchema.spec.js.map