payload 4.0.0-internal.c2b57ce → 4.0.0-internal.cd69eef

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 (822) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +11 -0
  3. package/dist/__testing__/predefinedMigration.d.ts +4 -3
  4. package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
  5. package/dist/admin/RichText.d.ts +3 -11
  6. package/dist/admin/RichText.d.ts.map +1 -1
  7. package/dist/admin/RichText.js.map +1 -1
  8. package/dist/admin/adapters/devReload.d.ts +9 -0
  9. package/dist/admin/adapters/devReload.d.ts.map +1 -0
  10. package/dist/admin/adapters/devReload.js +6 -0
  11. package/dist/admin/adapters/devReload.js.map +1 -0
  12. package/dist/admin/adapters/index.d.ts +3 -0
  13. package/dist/admin/adapters/index.d.ts.map +1 -1
  14. package/dist/admin/adapters/index.js.map +1 -1
  15. package/dist/admin/adapters/render.d.ts +16 -0
  16. package/dist/admin/adapters/render.d.ts.map +1 -0
  17. package/dist/admin/adapters/render.js +7 -0
  18. package/dist/admin/adapters/render.js.map +1 -0
  19. package/dist/admin/adapters/router.d.ts +8 -0
  20. package/dist/admin/adapters/router.d.ts.map +1 -1
  21. package/dist/admin/adapters/router.js.map +1 -1
  22. package/dist/admin/adapters/views.d.ts +36 -0
  23. package/dist/admin/adapters/views.d.ts.map +1 -0
  24. package/dist/admin/adapters/views.js +7 -0
  25. package/dist/admin/adapters/views.js.map +1 -0
  26. package/dist/admin/fields/Row.d.ts +2 -2
  27. package/dist/admin/fields/Row.d.ts.map +1 -1
  28. package/dist/admin/fields/Row.js.map +1 -1
  29. package/dist/admin/forms/Description.d.ts +2 -2
  30. package/dist/admin/forms/Description.d.ts.map +1 -1
  31. package/dist/admin/forms/Description.js.map +1 -1
  32. package/dist/admin/forms/Field.d.ts +10 -5
  33. package/dist/admin/forms/Field.d.ts.map +1 -1
  34. package/dist/admin/forms/Field.js.map +1 -1
  35. package/dist/admin/functions/index.d.ts +10 -1
  36. package/dist/admin/functions/index.d.ts.map +1 -1
  37. package/dist/admin/functions/index.js.map +1 -1
  38. package/dist/admin/types.d.ts +3 -2
  39. package/dist/admin/types.d.ts.map +1 -1
  40. package/dist/admin/types.js.map +1 -1
  41. package/dist/admin/views/dashboard.d.ts +7 -0
  42. package/dist/admin/views/dashboard.d.ts.map +1 -1
  43. package/dist/admin/views/dashboard.js.map +1 -1
  44. package/dist/admin/views/document.d.ts +5 -3
  45. package/dist/admin/views/document.d.ts.map +1 -1
  46. package/dist/admin/views/document.js.map +1 -1
  47. package/dist/admin/views/list.d.ts +10 -1
  48. package/dist/admin/views/list.d.ts.map +1 -1
  49. package/dist/admin/views/list.js.map +1 -1
  50. package/dist/auth/baseFields/apiKey.d.ts +10 -2
  51. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  52. package/dist/auth/baseFields/apiKey.js +35 -24
  53. package/dist/auth/baseFields/apiKey.js.map +1 -1
  54. package/dist/auth/cookies.d.ts +2 -2
  55. package/dist/auth/cookies.d.ts.map +1 -1
  56. package/dist/auth/defaultAccess.d.ts +1 -1
  57. package/dist/auth/defaultAccess.d.ts.map +1 -1
  58. package/dist/auth/defaultAccess.js +1 -1
  59. package/dist/auth/defaultAccess.js.map +1 -1
  60. package/dist/auth/defaultUser.d.ts.map +1 -1
  61. package/dist/auth/defaultUser.js +2 -1
  62. package/dist/auth/defaultUser.js.map +1 -1
  63. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
  64. package/dist/auth/executeAccess.d.ts.map +1 -1
  65. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  66. package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
  67. package/dist/auth/extractJWT.d.ts +1 -1
  68. package/dist/auth/extractJWT.d.ts.map +1 -1
  69. package/dist/auth/getAuthFields.d.ts.map +1 -1
  70. package/dist/auth/getAuthFields.js +2 -2
  71. package/dist/auth/getAuthFields.js.map +1 -1
  72. package/dist/auth/getFieldsToSign.d.ts +1 -1
  73. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  74. package/dist/auth/getLoginOptions.d.ts +1 -1
  75. package/dist/auth/getLoginOptions.d.ts.map +1 -1
  76. package/dist/auth/isUserLocked.d.ts.map +1 -1
  77. package/dist/auth/jwt.d.ts.map +1 -1
  78. package/dist/auth/operations/access.d.ts.map +1 -1
  79. package/dist/auth/operations/auth.d.ts +2 -2
  80. package/dist/auth/operations/auth.d.ts.map +1 -1
  81. package/dist/auth/operations/auth.js.map +1 -1
  82. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  83. package/dist/auth/operations/init.d.ts.map +1 -1
  84. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  85. package/dist/auth/operations/login.d.ts +2 -1
  86. package/dist/auth/operations/login.d.ts.map +1 -1
  87. package/dist/auth/operations/login.js.map +1 -1
  88. package/dist/auth/operations/logout.d.ts.map +1 -1
  89. package/dist/auth/operations/me.d.ts +2 -2
  90. package/dist/auth/operations/me.d.ts.map +1 -1
  91. package/dist/auth/operations/me.js.map +1 -1
  92. package/dist/auth/operations/refresh.d.ts.map +1 -1
  93. package/dist/auth/operations/refresh.js +9 -3
  94. package/dist/auth/operations/refresh.js.map +1 -1
  95. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  96. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  97. package/dist/auth/operations/resetPassword.js.map +1 -1
  98. package/dist/auth/operations/unlock.d.ts.map +1 -1
  99. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  100. package/dist/auth/sendVerificationEmail.d.ts +2 -2
  101. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  102. package/dist/auth/sendVerificationEmail.js +1 -1
  103. package/dist/auth/sendVerificationEmail.js.map +1 -1
  104. package/dist/auth/sessions.d.ts +4 -5
  105. package/dist/auth/sessions.d.ts.map +1 -1
  106. package/dist/auth/sessions.js +5 -3
  107. package/dist/auth/sessions.js.map +1 -1
  108. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  109. package/dist/auth/strategies/apiKey.js.map +1 -1
  110. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  111. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  112. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  113. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  114. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  115. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  116. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  117. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  118. package/dist/auth/types.d.ts +25 -21
  119. package/dist/auth/types.d.ts.map +1 -1
  120. package/dist/auth/types.js.map +1 -1
  121. package/dist/bin/build.d.ts +49 -0
  122. package/dist/bin/build.d.ts.map +1 -0
  123. package/dist/bin/build.js +226 -0
  124. package/dist/bin/build.js.map +1 -0
  125. package/dist/bin/build.spec.js +594 -0
  126. package/dist/bin/build.spec.js.map +1 -0
  127. package/dist/bin/frameworkConventions.d.ts +8 -0
  128. package/dist/bin/frameworkConventions.d.ts.map +1 -0
  129. package/dist/bin/frameworkConventions.js +8 -0
  130. package/dist/bin/frameworkConventions.js.map +1 -0
  131. package/dist/bin/generateImportMap/index.d.ts.map +1 -1
  132. package/dist/bin/generateImportMap/index.js +8 -5
  133. package/dist/bin/generateImportMap/index.js.map +1 -1
  134. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  135. package/dist/bin/generateImportMap/iterateCollections.js +11 -0
  136. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  137. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  138. package/dist/bin/generateImportMap/iterateConfig.js +12 -0
  139. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  140. package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -1
  141. package/dist/bin/generateImportMap/iterateFields.js +4 -1
  142. package/dist/bin/generateImportMap/iterateFields.js.map +1 -1
  143. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -1
  144. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
  145. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
  146. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +33 -18
  147. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
  148. package/dist/bin/generateTypes.d.ts +3 -2
  149. package/dist/bin/generateTypes.d.ts.map +1 -1
  150. package/dist/bin/generateTypes.js +11 -1
  151. package/dist/bin/generateTypes.js.map +1 -1
  152. package/dist/bin/index.d.ts.map +1 -1
  153. package/dist/bin/index.js +9 -0
  154. package/dist/bin/index.js.map +1 -1
  155. package/dist/bin/loadEnv.d.ts +3 -1
  156. package/dist/bin/loadEnv.d.ts.map +1 -1
  157. package/dist/bin/loadEnv.js +40 -10
  158. package/dist/bin/loadEnv.js.map +1 -1
  159. package/dist/bin/migrate.d.ts.map +1 -1
  160. package/dist/collections/config/client.d.ts +11 -4
  161. package/dist/collections/config/client.d.ts.map +1 -1
  162. package/dist/collections/config/client.js +8 -0
  163. package/dist/collections/config/client.js.map +1 -1
  164. package/dist/collections/config/defaults.d.ts +0 -4
  165. package/dist/collections/config/defaults.d.ts.map +1 -1
  166. package/dist/collections/config/defaults.js +2 -17
  167. package/dist/collections/config/defaults.js.map +1 -1
  168. package/dist/collections/config/defaults.spec.js +47 -0
  169. package/dist/collections/config/defaults.spec.js.map +1 -0
  170. package/dist/collections/config/sanitize.d.ts.map +1 -1
  171. package/dist/collections/config/sanitize.js +1 -11
  172. package/dist/collections/config/sanitize.js.map +1 -1
  173. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  174. package/dist/collections/config/types.d.ts +13 -9
  175. package/dist/collections/config/types.d.ts.map +1 -1
  176. package/dist/collections/config/types.js.map +1 -1
  177. package/dist/collections/config/useAsTitle.d.ts.map +1 -1
  178. package/dist/collections/dataloader.d.ts +1 -1
  179. package/dist/collections/dataloader.d.ts.map +1 -1
  180. package/dist/collections/endpoints/create.d.ts.map +1 -1
  181. package/dist/collections/endpoints/create.js +0 -2
  182. package/dist/collections/endpoints/create.js.map +1 -1
  183. package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
  184. package/dist/collections/endpoints/updateByID.js +1 -2
  185. package/dist/collections/endpoints/updateByID.js.map +1 -1
  186. package/dist/collections/operations/count.d.ts.map +1 -1
  187. package/dist/collections/operations/count.js +1 -0
  188. package/dist/collections/operations/count.js.map +1 -1
  189. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  190. package/dist/collections/operations/create.d.ts +0 -1
  191. package/dist/collections/operations/create.d.ts.map +1 -1
  192. package/dist/collections/operations/create.js +15 -6
  193. package/dist/collections/operations/create.js.map +1 -1
  194. package/dist/collections/operations/delete.d.ts.map +1 -1
  195. package/dist/collections/operations/delete.js +3 -0
  196. package/dist/collections/operations/delete.js.map +1 -1
  197. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  198. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  199. package/dist/collections/operations/find.d.ts.map +1 -1
  200. package/dist/collections/operations/findByID.d.ts.map +1 -1
  201. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  202. package/dist/collections/operations/findDistinct.js +1 -0
  203. package/dist/collections/operations/findDistinct.js.map +1 -1
  204. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  205. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  206. package/dist/collections/operations/local/count.d.ts +3 -3
  207. package/dist/collections/operations/local/count.d.ts.map +1 -1
  208. package/dist/collections/operations/local/count.js.map +1 -1
  209. package/dist/collections/operations/local/countVersions.d.ts +3 -3
  210. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  211. package/dist/collections/operations/local/countVersions.js.map +1 -1
  212. package/dist/collections/operations/local/create.d.ts +3 -3
  213. package/dist/collections/operations/local/create.d.ts.map +1 -1
  214. package/dist/collections/operations/local/create.js.map +1 -1
  215. package/dist/collections/operations/local/delete.d.ts +3 -3
  216. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  217. package/dist/collections/operations/local/delete.js.map +1 -1
  218. package/dist/collections/operations/local/duplicate.d.ts +3 -3
  219. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  220. package/dist/collections/operations/local/duplicate.js.map +1 -1
  221. package/dist/collections/operations/local/find.d.ts +3 -3
  222. package/dist/collections/operations/local/find.d.ts.map +1 -1
  223. package/dist/collections/operations/local/find.js.map +1 -1
  224. package/dist/collections/operations/local/findByID.d.ts +3 -3
  225. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  226. package/dist/collections/operations/local/findByID.js.map +1 -1
  227. package/dist/collections/operations/local/findDistinct.d.ts +2 -2
  228. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  229. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  230. package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
  231. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  232. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  233. package/dist/collections/operations/local/findVersions.d.ts +3 -3
  234. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  235. package/dist/collections/operations/local/findVersions.js.map +1 -1
  236. package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
  237. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  238. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  239. package/dist/collections/operations/local/update.d.ts +7 -11
  240. package/dist/collections/operations/local/update.d.ts.map +1 -1
  241. package/dist/collections/operations/local/update.js +1 -2
  242. package/dist/collections/operations/local/update.js.map +1 -1
  243. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  244. package/dist/collections/operations/update.d.ts +0 -1
  245. package/dist/collections/operations/update.d.ts.map +1 -1
  246. package/dist/collections/operations/update.js +8 -4
  247. package/dist/collections/operations/update.js.map +1 -1
  248. package/dist/collections/operations/updateByID.d.ts +0 -1
  249. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  250. package/dist/collections/operations/updateByID.js +1 -5
  251. package/dist/collections/operations/updateByID.js.map +1 -1
  252. package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
  253. package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
  254. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
  255. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
  256. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
  257. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
  258. package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
  259. package/dist/collections/operations/utilities/types.d.ts +20 -29
  260. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  261. package/dist/collections/operations/utilities/types.js.map +1 -1
  262. package/dist/collections/operations/utilities/update.d.ts +1 -2
  263. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  264. package/dist/collections/operations/utilities/update.js +64 -65
  265. package/dist/collections/operations/utilities/update.js.map +1 -1
  266. package/dist/config/client.d.ts +2 -2
  267. package/dist/config/client.d.ts.map +1 -1
  268. package/dist/config/client.js.map +1 -1
  269. package/dist/config/defaults.d.ts +0 -4
  270. package/dist/config/defaults.d.ts.map +1 -1
  271. package/dist/config/defaults.js +0 -78
  272. package/dist/config/defaults.js.map +1 -1
  273. package/dist/config/definePlugin.d.ts +10 -10
  274. package/dist/config/definePlugin.d.ts.map +1 -1
  275. package/dist/config/definePlugin.js +7 -11
  276. package/dist/config/definePlugin.js.map +1 -1
  277. package/dist/config/orderable/fractional-indexing.d.ts +23 -23
  278. package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
  279. package/dist/config/orderable/index.d.ts.map +1 -1
  280. package/dist/config/orderable/index.js +23 -0
  281. package/dist/config/orderable/index.js.map +1 -1
  282. package/dist/config/sanitize.d.ts.map +1 -1
  283. package/dist/config/sanitize.js +141 -13
  284. package/dist/config/sanitize.js.map +1 -1
  285. package/dist/config/types.d.ts +67 -20
  286. package/dist/config/types.d.ts.map +1 -1
  287. package/dist/config/types.js +2 -0
  288. package/dist/config/types.js.map +1 -1
  289. package/dist/database/combineQueries.d.ts.map +1 -1
  290. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  291. package/dist/database/getLocalizedPaths.js +1 -1
  292. package/dist/database/getLocalizedPaths.js.map +1 -1
  293. package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
  294. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  295. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  296. package/dist/database/migrations/migrationsCollection.js +2 -1
  297. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  298. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  299. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
  300. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  301. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  302. package/dist/database/types.d.ts +1 -5
  303. package/dist/database/types.d.ts.map +1 -1
  304. package/dist/database/types.js.map +1 -1
  305. package/dist/duplicateDocument/index.d.ts.map +1 -1
  306. package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
  307. package/dist/errors/APIError.d.ts.map +1 -1
  308. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  309. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  310. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  311. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  312. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  313. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  314. package/dist/errors/FileUploadError.d.ts.map +1 -1
  315. package/dist/errors/Forbidden.d.ts.map +1 -1
  316. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  317. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  318. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  319. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  320. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  321. package/dist/errors/Locked.d.ts.map +1 -1
  322. package/dist/errors/LockedAuth.d.ts.map +1 -1
  323. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  324. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  325. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  326. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  327. package/dist/errors/MissingFile.d.ts.map +1 -1
  328. package/dist/errors/NotFound.d.ts.map +1 -1
  329. package/dist/errors/QueryError.d.ts.map +1 -1
  330. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  331. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  332. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  333. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  334. package/dist/errors/ValidationError.d.ts +1 -0
  335. package/dist/errors/ValidationError.d.ts.map +1 -1
  336. package/dist/errors/ValidationError.js.map +1 -1
  337. package/dist/exports/internal.d.ts +2 -0
  338. package/dist/exports/internal.d.ts.map +1 -1
  339. package/dist/exports/internal.js +2 -0
  340. package/dist/exports/internal.js.map +1 -1
  341. package/dist/exports/migrations.d.ts +5 -13
  342. package/dist/exports/migrations.d.ts.map +1 -1
  343. package/dist/exports/migrations.js +5 -13
  344. package/dist/exports/migrations.js.map +1 -1
  345. package/dist/exports/shared.d.ts +23 -2
  346. package/dist/exports/shared.d.ts.map +1 -1
  347. package/dist/exports/shared.js +22 -1
  348. package/dist/exports/shared.js.map +1 -1
  349. package/dist/fields/baseFields/slug/countVersions.d.ts.map +1 -1
  350. package/dist/fields/baseFields/slug/countVersions.js +6 -8
  351. package/dist/fields/baseFields/slug/countVersions.js.map +1 -1
  352. package/dist/fields/baseFields/slug/generateSlug.d.ts +14 -7
  353. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  354. package/dist/fields/baseFields/slug/generateSlug.js +53 -73
  355. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  356. package/dist/fields/baseFields/slug/types.d.ts +14 -0
  357. package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
  358. package/dist/fields/baseFields/slug/types.js +6 -0
  359. package/dist/fields/baseFields/slug/types.js.map +1 -0
  360. package/dist/fields/config/client.d.ts +6 -6
  361. package/dist/fields/config/client.d.ts.map +1 -1
  362. package/dist/fields/config/client.js +14 -14
  363. package/dist/fields/config/client.js.map +1 -1
  364. package/dist/fields/config/sanitize.d.ts.map +1 -1
  365. package/dist/fields/config/sanitize.js +40 -4
  366. package/dist/fields/config/sanitize.js.map +1 -1
  367. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  368. package/dist/fields/config/types.d.ts +80 -76
  369. package/dist/fields/config/types.d.ts.map +1 -1
  370. package/dist/fields/config/types.js.map +1 -1
  371. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  372. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  373. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  374. package/dist/fields/hooks/afterChange/promise.js +1 -1
  375. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  376. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  377. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  378. package/dist/fields/hooks/afterRead/promise.js +13 -3
  379. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  380. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  381. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  382. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  383. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  384. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  385. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  386. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  387. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  388. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  389. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  390. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
  391. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  392. package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
  393. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  394. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
  395. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  396. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  397. package/dist/fields/hooks/beforeValidate/promise.js +11 -2
  398. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  399. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  400. package/dist/fields/isFieldDisabled.d.ts.map +1 -1
  401. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  402. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
  403. package/dist/fields/setDefaultBeforeDuplicate.js +1 -0
  404. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  405. package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
  406. package/dist/fields/sortableFieldTypes.js +1 -0
  407. package/dist/fields/sortableFieldTypes.js.map +1 -1
  408. package/dist/fields/validations.d.ts +4 -1
  409. package/dist/fields/validations.d.ts.map +1 -1
  410. package/dist/fields/validations.js +12 -4
  411. package/dist/fields/validations.js.map +1 -1
  412. package/dist/globals/config/client.d.ts +4 -4
  413. package/dist/globals/config/client.d.ts.map +1 -1
  414. package/dist/globals/config/sanitize.d.ts.map +1 -1
  415. package/dist/globals/config/sanitize.js +2 -6
  416. package/dist/globals/config/sanitize.js.map +1 -1
  417. package/dist/globals/config/sanitize.spec.js +43 -0
  418. package/dist/globals/config/sanitize.spec.js.map +1 -0
  419. package/dist/globals/endpoints/update.d.ts.map +1 -1
  420. package/dist/globals/endpoints/update.js +0 -2
  421. package/dist/globals/endpoints/update.js.map +1 -1
  422. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  423. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  424. package/dist/globals/operations/findOne.d.ts.map +1 -1
  425. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  426. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  427. package/dist/globals/operations/local/countVersions.d.ts +3 -3
  428. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  429. package/dist/globals/operations/local/countVersions.js.map +1 -1
  430. package/dist/globals/operations/local/findOne.d.ts +3 -3
  431. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  432. package/dist/globals/operations/local/findOne.js.map +1 -1
  433. package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
  434. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  435. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  436. package/dist/globals/operations/local/findVersions.d.ts +3 -3
  437. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  438. package/dist/globals/operations/local/findVersions.js.map +1 -1
  439. package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
  440. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  441. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  442. package/dist/globals/operations/local/update.d.ts +7 -9
  443. package/dist/globals/operations/local/update.d.ts.map +1 -1
  444. package/dist/globals/operations/local/update.js +1 -2
  445. package/dist/globals/operations/local/update.js.map +1 -1
  446. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  447. package/dist/globals/operations/update.d.ts +0 -1
  448. package/dist/globals/operations/update.d.ts.map +1 -1
  449. package/dist/globals/operations/update.js +52 -58
  450. package/dist/globals/operations/update.js.map +1 -1
  451. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  452. package/dist/hierarchy/buildParentField.d.ts.map +1 -1
  453. package/dist/hierarchy/constants.d.ts.map +1 -1
  454. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  455. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  456. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
  457. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
  458. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  459. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
  460. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  461. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
  462. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
  463. package/dist/hierarchy/resolveHierarchyCollections.js +1 -1
  464. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  465. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
  466. package/dist/hierarchy/sanitizeHierarchyCollection.js +3 -1
  467. package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -1
  468. package/dist/hierarchy/types.d.ts +8 -1
  469. package/dist/hierarchy/types.d.ts.map +1 -1
  470. package/dist/hierarchy/types.js.map +1 -1
  471. package/dist/index.bundled.d.ts +4466 -4152
  472. package/dist/index.d.ts +79 -34
  473. package/dist/index.d.ts.map +1 -1
  474. package/dist/index.js +54 -37
  475. package/dist/index.js.map +1 -1
  476. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  477. package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
  478. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  479. package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
  480. package/dist/locked-documents/config.d.ts.map +1 -1
  481. package/dist/locked-documents/config.js +2 -1
  482. package/dist/locked-documents/config.js.map +1 -1
  483. package/dist/preferences/config.d.ts.map +1 -1
  484. package/dist/preferences/config.js +2 -1
  485. package/dist/preferences/config.js.map +1 -1
  486. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  487. package/dist/preferences/keys.d.ts +8 -4
  488. package/dist/preferences/keys.d.ts.map +1 -1
  489. package/dist/preferences/keys.js +4 -1
  490. package/dist/preferences/keys.js.map +1 -1
  491. package/dist/preferences/types.d.ts +15 -0
  492. package/dist/preferences/types.d.ts.map +1 -1
  493. package/dist/preferences/types.js +3 -1
  494. package/dist/preferences/types.js.map +1 -1
  495. package/dist/query-presets/access.d.ts.map +1 -1
  496. package/dist/query-presets/config.d.ts.map +1 -1
  497. package/dist/query-presets/config.js +77 -37
  498. package/dist/query-presets/config.js.map +1 -1
  499. package/dist/query-presets/constraints.d.ts.map +1 -1
  500. package/dist/query-presets/constraints.js +3 -2
  501. package/dist/query-presets/constraints.js.map +1 -1
  502. package/dist/query-presets/types.d.ts +1 -1
  503. package/dist/query-presets/types.d.ts.map +1 -1
  504. package/dist/queues/config/collection.d.ts.map +1 -1
  505. package/dist/queues/config/collection.js +2 -1
  506. package/dist/queues/config/collection.js.map +1 -1
  507. package/dist/queues/config/generateJobsJSONSchemas.d.ts +1 -1
  508. package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -1
  509. package/dist/queues/config/generateJobsJSONSchemas.js +33 -12
  510. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  511. package/dist/queues/config/global.d.ts.map +1 -1
  512. package/dist/queues/config/global.js +2 -1
  513. package/dist/queues/config/global.js.map +1 -1
  514. package/dist/queues/endpoints/run.d.ts.map +1 -1
  515. package/dist/queues/errors/index.d.ts.map +1 -1
  516. package/dist/queues/localAPI.d.ts +8 -8
  517. package/dist/queues/localAPI.d.ts.map +1 -1
  518. package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
  519. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  520. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  521. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  522. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
  523. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
  524. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  525. package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
  526. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  527. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  528. package/dist/types/constants.d.ts +2 -2
  529. package/dist/types/constants.d.ts.map +1 -1
  530. package/dist/types/index.d.ts +9 -7
  531. package/dist/types/index.d.ts.map +1 -1
  532. package/dist/types/index.js.map +1 -1
  533. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  534. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  535. package/dist/uploads/cropImage.d.ts.map +1 -1
  536. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  537. package/dist/uploads/endpoints/uploadInstructions.d.ts +3 -0
  538. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -0
  539. package/dist/uploads/endpoints/uploadInstructions.js +38 -0
  540. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -0
  541. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
  542. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  543. package/dist/uploads/fetchAPI-multipart/processMultipart.js +4 -0
  544. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  545. package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
  546. package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
  547. package/dist/uploads/fileExists.d.ts.map +1 -1
  548. package/dist/uploads/generateFileData.d.ts +2 -1
  549. package/dist/uploads/generateFileData.d.ts.map +1 -1
  550. package/dist/uploads/generateFileData.js +5 -2
  551. package/dist/uploads/generateFileData.js.map +1 -1
  552. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  553. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  554. package/dist/uploads/getFileByPath.d.ts +1 -1
  555. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  556. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  557. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  558. package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
  559. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
  560. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +1 -1
  561. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
  562. package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
  563. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
  564. package/dist/uploads/matchMimeType.d.ts +8 -0
  565. package/dist/uploads/matchMimeType.d.ts.map +1 -0
  566. package/dist/uploads/matchMimeType.js +19 -0
  567. package/dist/uploads/matchMimeType.js.map +1 -0
  568. package/dist/uploads/matchMimeType.spec.js +66 -0
  569. package/dist/uploads/matchMimeType.spec.js.map +1 -0
  570. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  571. package/dist/uploads/safeFetch.d.ts.map +1 -1
  572. package/dist/uploads/safeFetch.js +11 -5
  573. package/dist/uploads/safeFetch.js.map +1 -1
  574. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  575. package/dist/uploads/tempFile.d.ts.map +1 -1
  576. package/dist/uploads/types.d.ts +68 -1
  577. package/dist/uploads/types.d.ts.map +1 -1
  578. package/dist/uploads/types.js.map +1 -1
  579. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  580. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  581. package/dist/utilities/addDataAndFileToRequest.js +11 -4
  582. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  583. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  584. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  585. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
  586. package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
  587. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  588. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  589. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  590. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  591. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  592. package/dist/utilities/configToJSONSchema.d.ts +68 -16
  593. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  594. package/dist/utilities/configToJSONSchema.js +312 -117
  595. package/dist/utilities/configToJSONSchema.js.map +1 -1
  596. package/dist/utilities/configToJSONSchema.spec.js +656 -85
  597. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  598. package/dist/utilities/createLocalReq.d.ts +2 -2
  599. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  600. package/dist/utilities/createLocalReq.js.map +1 -1
  601. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  602. package/dist/utilities/createPayloadRequest.js +1 -0
  603. package/dist/utilities/createPayloadRequest.js.map +1 -1
  604. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  605. package/dist/utilities/deepCopyObject.js +8 -0
  606. package/dist/utilities/deepCopyObject.js.map +1 -1
  607. package/dist/utilities/dependencies/dependencyChecker.js +1 -1
  608. package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
  609. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  610. package/dist/utilities/dependencies/getDependencies.js +5 -5
  611. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  612. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
  613. package/dist/utilities/dynamicImport.js +1 -1
  614. package/dist/utilities/dynamicImport.js.map +1 -1
  615. package/dist/utilities/escapeRegExp.d.ts.map +1 -1
  616. package/dist/utilities/extractID.d.ts.map +1 -1
  617. package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
  618. package/dist/utilities/filterDataToSelectedLocales.js +5 -12
  619. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  620. package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
  621. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
  622. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  623. package/dist/utilities/flattenAllFields.js +7 -22
  624. package/dist/utilities/flattenAllFields.js.map +1 -1
  625. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  626. package/dist/utilities/formatErrors.d.ts.map +1 -1
  627. package/dist/utilities/formatErrors.js +3 -1
  628. package/dist/utilities/formatErrors.js.map +1 -1
  629. package/dist/utilities/formatLabels.d.ts.map +1 -1
  630. package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
  631. package/dist/utilities/getBlockSelect.d.ts.map +1 -1
  632. package/dist/utilities/getDataByPath.d.ts.map +1 -1
  633. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  634. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
  635. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  636. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
  637. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  638. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +24 -7
  639. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  640. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  641. package/dist/utilities/getFieldByPath.js +1 -1
  642. package/dist/utilities/getFieldByPath.js.map +1 -1
  643. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  644. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  645. package/dist/utilities/getRequestEntity.d.ts.map +1 -1
  646. package/dist/utilities/getRequestLanguage.d.ts +2 -2
  647. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  648. package/dist/utilities/getRequestLanguage.js.map +1 -1
  649. package/dist/utilities/getRequestOrigin.d.ts +2 -2
  650. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  651. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  652. package/dist/utilities/getSelectMode.d.ts.map +1 -1
  653. package/dist/utilities/getSiblingData.d.ts.map +1 -1
  654. package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
  655. package/dist/utilities/getVersionsConfig.d.ts +1 -1
  656. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  657. package/dist/utilities/getVersionsConfig.js.map +1 -1
  658. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  659. package/dist/utilities/handleEndpoints.js +7 -3
  660. package/dist/utilities/handleEndpoints.js.map +1 -1
  661. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  662. package/dist/utilities/isEntityHidden.d.ts +2 -2
  663. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  664. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  665. package/dist/utilities/isURLAllowed.js +9 -3
  666. package/dist/utilities/isURLAllowed.js.map +1 -1
  667. package/dist/utilities/isURLAllowed.spec.js +78 -0
  668. package/dist/utilities/isURLAllowed.spec.js.map +1 -0
  669. package/dist/utilities/isValidID.d.ts +1 -1
  670. package/dist/utilities/isValidID.d.ts.map +1 -1
  671. package/dist/utilities/logError.d.ts.map +1 -1
  672. package/dist/utilities/logger.d.ts +1 -1
  673. package/dist/utilities/logger.d.ts.map +1 -1
  674. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  675. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
  676. package/dist/utilities/mergeLocalizedData.d.ts +14 -4
  677. package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
  678. package/dist/utilities/mergeLocalizedData.js +54 -46
  679. package/dist/utilities/mergeLocalizedData.js.map +1 -1
  680. package/dist/utilities/mergeLocalizedData.spec.js +23 -23
  681. package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
  682. package/dist/utilities/miniChalk.d.ts.map +1 -1
  683. package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
  684. package/dist/utilities/parseBooleanString.d.ts.map +1 -1
  685. package/dist/utilities/parseCookies.d.ts +1 -1
  686. package/dist/utilities/parseCookies.d.ts.map +1 -1
  687. package/dist/utilities/parseParams/index.d.ts +2 -5
  688. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  689. package/dist/utilities/parseParams/index.js.map +1 -1
  690. package/dist/utilities/parseParams/index.spec.js +0 -9
  691. package/dist/utilities/parseParams/index.spec.js.map +1 -1
  692. package/dist/utilities/profiling.d.ts.map +1 -1
  693. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  694. package/dist/utilities/resolveSelect.d.ts.map +1 -1
  695. package/dist/utilities/routeError.d.ts.map +1 -1
  696. package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
  697. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  698. package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
  699. package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
  700. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  701. package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
  702. package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
  703. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  704. package/dist/utilities/slugify.d.ts.map +1 -1
  705. package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
  706. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  707. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  708. package/dist/utilities/telemetry/events/adminInit.js +2 -3
  709. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  710. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  711. package/dist/utilities/telemetry/events/serverInit.js +2 -3
  712. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  713. package/dist/utilities/telemetry/index.d.ts +15 -4
  714. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  715. package/dist/utilities/telemetry/index.js +6 -1
  716. package/dist/utilities/telemetry/index.js.map +1 -1
  717. package/dist/utilities/telemetry/index.spec.js +43 -0
  718. package/dist/utilities/telemetry/index.spec.js.map +1 -0
  719. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  720. package/dist/utilities/timestamp.d.ts.map +1 -1
  721. package/dist/utilities/toKebabCase.d.ts.map +1 -1
  722. package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
  723. package/dist/utilities/transformColumnPreferences.js +4 -2
  724. package/dist/utilities/transformColumnPreferences.js.map +1 -1
  725. package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
  726. package/dist/utilities/traverseFields.d.ts.map +1 -1
  727. package/dist/utilities/traverseFields.js +2 -4
  728. package/dist/utilities/traverseFields.js.map +1 -1
  729. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  730. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  731. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  732. package/dist/utilities/unflatten.d.ts.map +1 -1
  733. package/dist/utilities/validateMimeType.d.ts.map +1 -1
  734. package/dist/utilities/validateTimezones.d.ts.map +1 -1
  735. package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
  736. package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
  737. package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
  738. package/dist/versions/baseFields.d.ts +1 -2
  739. package/dist/versions/baseFields.d.ts.map +1 -1
  740. package/dist/versions/baseFields.js +0 -13
  741. package/dist/versions/baseFields.js.map +1 -1
  742. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  743. package/dist/versions/buildCollectionFields.js +0 -2
  744. package/dist/versions/buildCollectionFields.js.map +1 -1
  745. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  746. package/dist/versions/buildGlobalFields.js +0 -2
  747. package/dist/versions/buildGlobalFields.js.map +1 -1
  748. package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
  749. package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
  750. package/dist/versions/buildSingleLocalePublishData.js +37 -0
  751. package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
  752. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  753. package/dist/versions/defaults.d.ts.map +1 -1
  754. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  755. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  756. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  757. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
  758. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  759. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  760. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  761. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  762. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  763. package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
  764. package/dist/versions/saveVersion.d.ts +0 -2
  765. package/dist/versions/saveVersion.d.ts.map +1 -1
  766. package/dist/versions/saveVersion.js +12 -17
  767. package/dist/versions/saveVersion.js.map +1 -1
  768. package/dist/versions/schedule/job.d.ts.map +1 -1
  769. package/dist/versions/schedule/job.js +6 -10
  770. package/dist/versions/schedule/job.js.map +1 -1
  771. package/dist/versions/types.d.ts +2 -15
  772. package/dist/versions/types.d.ts.map +1 -1
  773. package/dist/versions/types.js.map +1 -1
  774. package/package.json +9 -6
  775. package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
  776. package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
  777. package/dist/database/migrations/templates/localizeStatus.js +0 -54
  778. package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
  779. package/dist/fields/baseFields/slug/index.d.ts +0 -89
  780. package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
  781. package/dist/fields/baseFields/slug/index.js +0 -81
  782. package/dist/fields/baseFields/slug/index.js.map +0 -1
  783. package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
  784. package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
  785. package/dist/versions/migrations/localizeStatus/index.js +0 -33
  786. package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
  787. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
  788. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
  789. package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
  790. package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
  791. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
  792. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
  793. package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
  794. package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
  795. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
  796. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
  797. package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
  798. package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
  799. package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
  800. package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
  801. package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
  802. package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
  803. package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
  804. package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
  805. package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
  806. package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
  807. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
  808. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
  809. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
  810. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
  811. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
  812. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
  813. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
  814. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
  815. package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
  816. package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
  817. package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
  818. package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
  819. package/dist/versions/saveSnapshot.d.ts +0 -18
  820. package/dist/versions/saveSnapshot.d.ts.map +0 -1
  821. package/dist/versions/saveSnapshot.js +0 -38
  822. 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,362 @@ 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 keep _status in the input schema for draft-enabled entities', async ()=>{
216
+ // @ts-expect-error partial config
217
+ const config = {
218
+ collections: [
219
+ {
220
+ slug: 'posts',
221
+ fields: [
222
+ {
223
+ name: 'title',
224
+ type: 'text',
225
+ required: true
226
+ }
227
+ ],
228
+ versions: {
229
+ drafts: true
230
+ }
231
+ }
232
+ ]
233
+ };
234
+ const sanitizedConfig = await sanitizeConfig(config);
235
+ const entity = sanitizedConfig.collections[0];
236
+ const schema = entityToStandaloneJSONSchema({
237
+ config: sanitizedConfig,
238
+ defaultIDType: 'text',
239
+ entity,
240
+ variant: 'input'
241
+ });
242
+ expect(schema.properties?._status).toMatchObject({
243
+ enum: [
244
+ 'draft',
245
+ 'published'
246
+ ]
247
+ });
248
+ expect(schema.required).not.toContain('_status');
249
+ expect(schema.properties?.createdAt).toBeUndefined();
250
+ expect(schema.properties?.updatedAt).toBeUndefined();
251
+ });
252
+ it('should skip input types by default and generate them when enabled', async ()=>{
253
+ // @ts-expect-error partial config
254
+ const offByDefault = {
255
+ collections: [
256
+ {
257
+ slug: 'posts',
258
+ fields: [
259
+ {
260
+ name: 'title',
261
+ type: 'text'
262
+ }
263
+ ]
264
+ }
265
+ ]
266
+ };
267
+ const { jsonSchema: defaultSchema } = configToJSONSchema(await sanitizeConfig(offByDefault), 'text');
268
+ expect(defaultSchema?.$defs?.posts_input).toBeUndefined();
269
+ expect(defaultSchema?.properties?.collectionsInput).toBeUndefined();
270
+ // @ts-expect-error partial config
271
+ const enabled = {
272
+ collections: [
273
+ {
274
+ slug: 'posts',
275
+ fields: [
276
+ {
277
+ name: 'title',
278
+ type: 'text'
279
+ }
280
+ ]
281
+ }
282
+ ],
283
+ typescript: {
284
+ generateInputTypes: true
285
+ }
286
+ };
287
+ const { jsonSchema: enabledSchema } = configToJSONSchema(await sanitizeConfig(enabled), 'text');
288
+ expect(enabledSchema?.$defs?.posts_input).toBeDefined();
289
+ expect(enabledSchema?.properties?.collectionsInput).toBeDefined();
290
+ });
291
+ it('should generate Input-suffixed definitions for named interfaces and blocks', async ()=>{
292
+ // @ts-expect-error partial config
293
+ const config = {
294
+ collections: [
295
+ {
296
+ slug: 'authors',
297
+ fields: [
298
+ {
299
+ name: 'name',
300
+ type: 'text'
301
+ }
302
+ ]
303
+ },
304
+ {
305
+ slug: 'pages',
306
+ fields: [
307
+ {
308
+ name: 'meta',
309
+ type: 'group',
310
+ interfaceName: 'Meta',
311
+ fields: [
312
+ {
313
+ name: 'author',
314
+ type: 'relationship',
315
+ relationTo: 'authors'
316
+ }
317
+ ]
318
+ },
319
+ {
320
+ name: 'layout',
321
+ type: 'blocks',
322
+ blocks: [
323
+ {
324
+ slug: 'hero',
325
+ fields: [
326
+ {
327
+ name: 'heading',
328
+ type: 'text',
329
+ required: true
330
+ },
331
+ {
332
+ name: 'cta',
333
+ type: 'relationship',
334
+ relationTo: 'authors'
335
+ }
336
+ ]
337
+ }
338
+ ]
339
+ }
340
+ ]
341
+ }
342
+ ],
343
+ typescript: {
344
+ generateInputTypes: true
345
+ }
346
+ };
347
+ const sanitizedConfig = await sanitizeConfig(config);
348
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
349
+ // Read-shaped named interface keeps the populated-doc union...
350
+ expect((schema?.$defs?.Meta).properties.author).toStrictEqual({
351
+ oneOf: [
352
+ {
353
+ type: [
354
+ 'string',
355
+ 'null'
356
+ ]
357
+ },
358
+ {
359
+ $ref: '#/$defs/authors'
360
+ }
361
+ ]
362
+ });
363
+ // ...and a separate `Input` definition is ID-only, so the two don't collide.
364
+ expect((schema?.$defs?.MetaInput).properties.author).toStrictEqual({
365
+ type: [
366
+ 'string',
367
+ 'null'
368
+ ]
369
+ });
370
+ // Blocks get the same treatment: read-shaped `Hero`, write-shaped `HeroInput`.
371
+ const heroInput = schema?.$defs?.HeroInput;
372
+ expect(heroInput.properties.cta).toStrictEqual({
373
+ type: [
374
+ 'string',
375
+ 'null'
376
+ ]
377
+ });
378
+ expect(heroInput.required).toStrictEqual([
379
+ 'blockType',
380
+ 'heading'
381
+ ]);
382
+ expect((schema?.$defs?.Hero).properties.cta).toStrictEqual({
383
+ oneOf: [
384
+ {
385
+ type: [
386
+ 'string',
387
+ 'null'
388
+ ]
389
+ },
390
+ {
391
+ $ref: '#/$defs/authors'
392
+ }
393
+ ]
394
+ });
395
+ });
396
+ it('passes the variant to field-level jsonSchema transforms', async ()=>{
397
+ // @ts-expect-error partial config
398
+ const config = {
399
+ collections: [
400
+ {
401
+ slug: 'posts',
402
+ fields: [
403
+ {
404
+ name: 'custom',
405
+ type: 'text',
406
+ jsonSchema: [
407
+ ({ jsonSchema, variant })=>({
408
+ ...jsonSchema,
409
+ description: variant
410
+ })
411
+ ]
412
+ }
413
+ ]
414
+ }
415
+ ],
416
+ typescript: {
417
+ generateInputTypes: true
418
+ }
419
+ };
420
+ const sanitizedConfig = await sanitizeConfig(config);
421
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
422
+ expect((schema?.$defs?.posts).properties.custom.description).toBe('output');
423
+ expect((schema?.$defs?.posts_input).properties.custom.description).toBe('input');
424
+ });
68
425
  it('should handle block fields with no blocks', async ()=>{
69
426
  // @ts-expect-error
70
427
  const config = {
@@ -103,7 +460,7 @@ describe('configToJSONSchema', ()=>{
103
460
  type: 'blocks',
104
461
  blocks: [
105
462
  {
106
- slug: 'test',
463
+ slug: 'testRequired',
107
464
  fields: [
108
465
  {
109
466
  name: 'field',
@@ -115,13 +472,14 @@ describe('configToJSONSchema', ()=>{
115
472
  ]
116
473
  }
117
474
  ],
118
- timestamps: false
475
+ timestamps: false,
476
+ versions: false
119
477
  }
120
478
  ]
121
479
  };
122
480
  const sanitizedConfig = await sanitizeConfig(config);
123
- const schema = configToJSONSchema(sanitizedConfig, 'text');
124
- expect(schema?.definitions?.test).toStrictEqual({
481
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
482
+ expect(schema?.$defs?.test).toStrictEqual({
125
483
  type: 'object',
126
484
  additionalProperties: false,
127
485
  properties: {
@@ -147,34 +505,7 @@ describe('configToJSONSchema', ()=>{
147
505
  items: {
148
506
  oneOf: [
149
507
  {
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
- ]
508
+ $ref: '#/$defs/Test'
178
509
  }
179
510
  ]
180
511
  }
@@ -187,32 +518,7 @@ describe('configToJSONSchema', ()=>{
187
518
  items: {
188
519
  oneOf: [
189
520
  {
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
- ]
521
+ $ref: '#/$defs/TestRequired'
216
522
  }
217
523
  ]
218
524
  }
@@ -225,6 +531,89 @@ describe('configToJSONSchema', ()=>{
225
531
  title: 'Test'
226
532
  });
227
533
  });
534
+ it('keeps the first block interface name clean and content-hashes the colliding one', async ()=>{
535
+ // @ts-expect-error - partial config for testing
536
+ const config = {
537
+ collections: [
538
+ {
539
+ slug: 'pages',
540
+ fields: [
541
+ {
542
+ name: 'layout',
543
+ type: 'blocks',
544
+ blocks: [
545
+ {
546
+ slug: 'hero',
547
+ fields: [
548
+ {
549
+ name: 'title',
550
+ type: 'text'
551
+ }
552
+ ]
553
+ },
554
+ {
555
+ slug: 'cta',
556
+ fields: [
557
+ {
558
+ name: 'label',
559
+ type: 'text'
560
+ }
561
+ ]
562
+ }
563
+ ]
564
+ }
565
+ ],
566
+ timestamps: false,
567
+ versions: false
568
+ },
569
+ {
570
+ slug: 'posts',
571
+ fields: [
572
+ {
573
+ name: 'layout',
574
+ type: 'blocks',
575
+ // Same slug `hero`, DIFFERENT fields → name collision with pages' hero.
576
+ blocks: [
577
+ {
578
+ slug: 'hero',
579
+ fields: [
580
+ {
581
+ name: 'heading',
582
+ type: 'text'
583
+ }
584
+ ]
585
+ }
586
+ ]
587
+ }
588
+ ],
589
+ timestamps: false,
590
+ versions: false
591
+ }
592
+ ]
593
+ };
594
+ const sanitizedConfig = await sanitizeConfig(config);
595
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
596
+ const defs = schema.$defs;
597
+ // The first `hero` keeps the clean name; the unique block is unaffected.
598
+ expect(defs.Hero).toBeDefined();
599
+ expect(defs.Cta).toBeDefined();
600
+ // Only the second, differently-shaped `hero` is disambiguated with a content hash.
601
+ const hashedHeroNames = Object.keys(defs).filter((k)=>/^Hero_[0-9A-F]{8}$/.test(k));
602
+ expect(hashedHeroNames).toHaveLength(1);
603
+ // The disambiguated interface carries the explanatory JSDoc note; the clean one does not.
604
+ expect(defs[hashedHeroNames[0]].description).toContain('content hash');
605
+ expect(defs.Hero.description).toBeUndefined();
606
+ // Each collection's block field references its own block's interface.
607
+ const refsOf = (slug)=>defs[slug].properties.layout.items.oneOf.map((r)=>r.$ref);
608
+ expect(refsOf('pages')).toContain('#/$defs/Hero');
609
+ expect(refsOf('pages')).toContain('#/$defs/Cta');
610
+ expect(refsOf('posts')).toStrictEqual([
611
+ `#/$defs/${hashedHeroNames[0]}`
612
+ ]);
613
+ // Hashing is deterministic: regenerating yields identical names.
614
+ const { jsonSchema: schema2 } = configToJSONSchema(sanitizedConfig, 'text');
615
+ expect(Object.keys(schema2.$defs).filter((k)=>/^Hero/.test(k)).sort()).toStrictEqual(Object.keys(defs).filter((k)=>/^Hero/.test(k)).sort());
616
+ });
228
617
  it('should handle tabs and named tabs with required fields', async ()=>{
229
618
  // @ts-expect-error
230
619
  const config = {
@@ -268,13 +657,14 @@ describe('configToJSONSchema', ()=>{
268
657
  ]
269
658
  }
270
659
  ],
271
- timestamps: false
660
+ timestamps: false,
661
+ versions: false
272
662
  }
273
663
  ]
274
664
  };
275
665
  const sanitizedConfig = await sanitizeConfig(config);
276
- const schema = configToJSONSchema(sanitizedConfig, 'text');
277
- expect(schema?.definitions?.test).toStrictEqual({
666
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
667
+ expect(schema?.$defs?.test).toStrictEqual({
278
668
  type: 'object',
279
669
  additionalProperties: false,
280
670
  properties: {
@@ -340,7 +730,7 @@ describe('configToJSONSchema', ()=>{
340
730
  {
341
731
  name: 'withCustom',
342
732
  type: 'text',
343
- typescriptSchema: [
733
+ jsonSchema: [
344
734
  ()=>customSchema
345
735
  ]
346
736
  },
@@ -356,13 +746,14 @@ describe('configToJSONSchema', ()=>{
356
746
  }
357
747
  }
358
748
  ],
359
- timestamps: false
749
+ timestamps: false,
750
+ versions: false
360
751
  }
361
752
  ]
362
753
  };
363
754
  const sanitizedConfig = await sanitizeConfig(config);
364
- const schema = configToJSONSchema(sanitizedConfig, 'text');
365
- expect(schema?.definitions?.test).toStrictEqual({
755
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
756
+ expect(schema?.$defs?.test).toStrictEqual({
366
757
  type: 'object',
367
758
  additionalProperties: false,
368
759
  properties: {
@@ -414,7 +805,8 @@ describe('configToJSONSchema', ()=>{
414
805
  ]
415
806
  }
416
807
  ],
417
- timestamps: false
808
+ timestamps: false,
809
+ versions: false
418
810
  }
419
811
  ]
420
812
  };
@@ -422,7 +814,7 @@ describe('configToJSONSchema', ()=>{
422
814
  const sanitizedConfig = await sanitizeConfig(config);
423
815
  expect(typeof sanitizedConfig?.blocks?.[0]?.fields?.[0]?.editor).toBe('object');
424
816
  expect(typeof sanitizedConfig.collections[0].fields[0]?.blocks?.[0]?.fields?.[0]?.editor).toBe('object');
425
- const schema = configToJSONSchema(sanitizedConfig, 'text');
817
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
426
818
  const expectedBlockSchema = {
427
819
  type: 'object',
428
820
  additionalProperties: false,
@@ -456,7 +848,7 @@ describe('configToJSONSchema', ()=>{
456
848
  'blockType'
457
849
  ]
458
850
  };
459
- expect(schema?.definitions?.test).toStrictEqual({
851
+ expect(schema?.$defs?.test).toStrictEqual({
460
852
  type: 'object',
461
853
  additionalProperties: false,
462
854
  title: 'Test',
@@ -472,7 +864,7 @@ describe('configToJSONSchema', ()=>{
472
864
  items: {
473
865
  oneOf: [
474
866
  {
475
- $ref: '#/definitions/SharedBlock'
867
+ $ref: '#/$defs/SharedBlock'
476
868
  }
477
869
  ]
478
870
  }
@@ -483,7 +875,100 @@ describe('configToJSONSchema', ()=>{
483
875
  ]
484
876
  });
485
877
  // The definition should still be registered for TypeScript type generation
486
- expect(schema?.definitions?.SharedBlock).toStrictEqual(expectedBlockSchema);
878
+ expect(schema?.$defs?.SharedBlock).toStrictEqual(expectedBlockSchema);
879
+ });
880
+ it('content-hashes a colliding explicit interfaceName instead of overwriting it', async ()=>{
881
+ // Two different blocks both set `interfaceName: 'Hero'` - each must keep its own definition.
882
+ const config = {
883
+ collections: [
884
+ {
885
+ slug: 'test',
886
+ fields: [
887
+ {
888
+ name: 'blocksField',
889
+ type: 'blocks',
890
+ blocks: [
891
+ {
892
+ slug: 'blockA',
893
+ fields: [
894
+ {
895
+ name: 'title',
896
+ type: 'text'
897
+ }
898
+ ],
899
+ interfaceName: 'Hero'
900
+ },
901
+ {
902
+ slug: 'blockB',
903
+ fields: [
904
+ {
905
+ name: 'subtitle',
906
+ type: 'number'
907
+ }
908
+ ],
909
+ interfaceName: 'Hero'
910
+ }
911
+ ]
912
+ }
913
+ ],
914
+ timestamps: false,
915
+ versions: false
916
+ }
917
+ ]
918
+ };
919
+ const sanitizedConfig = await sanitizeConfig(config);
920
+ const { jsonSchema } = configToJSONSchema(sanitizedConfig, 'text');
921
+ const defs = jsonSchema.$defs;
922
+ // Each differently-shaped block keeps its own interface (one clean, one hash-suffixed).
923
+ const heroNames = Object.keys(defs).filter((k)=>/^Hero(_[0-9A-F]{8})?$/.test(k));
924
+ expect(heroNames).toHaveLength(2);
925
+ // ...and they carry distinct field shapes (not a silent overwrite).
926
+ const shapeOf = (name)=>Object.keys(defs[name].properties).sort().join(',');
927
+ expect(shapeOf(heroNames[0])).not.toBe(shapeOf(heroNames[1]));
928
+ });
929
+ it('reuses one definition when the same block is registered more than once', async ()=>{
930
+ // Reusing one block across fields registers an identical schema each time, so it dedupes.
931
+ const heroBlock = {
932
+ slug: 'hero',
933
+ fields: [
934
+ {
935
+ name: 'title',
936
+ type: 'text'
937
+ }
938
+ ],
939
+ interfaceName: 'Hero'
940
+ };
941
+ const config = {
942
+ collections: [
943
+ {
944
+ slug: 'test',
945
+ fields: [
946
+ {
947
+ name: 'a',
948
+ type: 'blocks',
949
+ blocks: [
950
+ heroBlock
951
+ ]
952
+ },
953
+ {
954
+ name: 'b',
955
+ type: 'blocks',
956
+ blocks: [
957
+ heroBlock
958
+ ]
959
+ }
960
+ ],
961
+ timestamps: false,
962
+ versions: false
963
+ }
964
+ ]
965
+ };
966
+ const sanitizedConfig = await sanitizeConfig(config);
967
+ const { jsonSchema } = configToJSONSchema(sanitizedConfig, 'text');
968
+ const heroNames = Object.keys(jsonSchema.$defs).filter((k)=>/^Hero(_[0-9A-F]{8})?$/.test(k));
969
+ expect(heroNames).toEqual([
970
+ 'Hero'
971
+ ]);
487
972
  });
488
973
  it('should allow overriding required to false', async ()=>{
489
974
  // @ts-expect-error
@@ -497,7 +982,7 @@ describe('configToJSONSchema', ()=>{
497
982
  type: 'text',
498
983
  required: true,
499
984
  defaultValue: 'test',
500
- typescriptSchema: [
985
+ jsonSchema: [
501
986
  ()=>({
502
987
  type: 'string',
503
988
  required: false
@@ -505,14 +990,15 @@ describe('configToJSONSchema', ()=>{
505
990
  ]
506
991
  }
507
992
  ],
508
- timestamps: false
993
+ timestamps: false,
994
+ versions: false
509
995
  }
510
996
  ]
511
997
  };
512
998
  const sanitizedConfig = await sanitizeConfig(config);
513
- const schema = configToJSONSchema(sanitizedConfig, 'text');
999
+ const { jsonSchema: schema } = configToJSONSchema(sanitizedConfig, 'text');
514
1000
  // @ts-expect-error
515
- expect(schema.definitions.test.properties.title.required).toStrictEqual(false);
1001
+ expect(schema.$defs.test.properties.title.required).toStrictEqual(false);
516
1002
  });
517
1003
  it('should propagate forceInlineBlocks to nested fields (array, group, tab)', async ()=>{
518
1004
  const namedBlock = {
@@ -558,34 +1044,119 @@ describe('configToJSONSchema', ()=>{
558
1044
  ]
559
1045
  }
560
1046
  ],
561
- timestamps: false
1047
+ timestamps: false,
1048
+ versions: false
562
1049
  }
563
1050
  ]
564
1051
  };
565
1052
  const sanitizedConfig = await sanitizeConfig(config);
566
1053
  // Without forceInlineBlocks: blocks field uses $ref
567
- const schemaDefault = configToJSONSchema(sanitizedConfig, 'text');
568
- const arrItemsDefault = schemaDefault.definitions.test.properties.arr.items;
1054
+ const { jsonSchema: schemaDefault } = configToJSONSchema(sanitizedConfig, 'text');
1055
+ const arrItemsDefault = schemaDefault.$defs.test.properties.arr.items;
569
1056
  const arrBlocksDefault = arrItemsDefault.properties.blocks.items.oneOf[0];
570
1057
  expect(arrBlocksDefault).toStrictEqual({
571
- $ref: '#/definitions/MyBlock'
1058
+ $ref: '#/$defs/MyBlock'
572
1059
  });
573
1060
  // With forceInlineBlocks: blocks field is inlined, no $ref
574
- const schemaInline = configToJSONSchema(sanitizedConfig, 'text', undefined, {
1061
+ const { jsonSchema: schemaInline } = configToJSONSchema(sanitizedConfig, 'text', undefined, {
575
1062
  forceInlineBlocks: true
576
1063
  });
577
- const arrItemsInline = schemaInline.definitions.test.properties.arr.items;
1064
+ const arrItemsInline = schemaInline.$defs.test.properties.arr.items;
578
1065
  const arrBlocksInline = arrItemsInline.properties.blocks.items.oneOf[0];
579
1066
  expect(arrBlocksInline).not.toHaveProperty('$ref');
580
1067
  expect(arrBlocksInline.properties?.blockType).toStrictEqual({
581
1068
  const: 'myBlock'
582
1069
  });
583
- const grpBlocksInline = schemaInline.definitions.test.properties.grp.properties.blocks.items.oneOf[0];
1070
+ const grpBlocksInline = schemaInline.$defs.test.properties.grp.properties.blocks.items.oneOf[0];
584
1071
  expect(grpBlocksInline).not.toHaveProperty('$ref');
585
1072
  expect(grpBlocksInline.properties?.blockType).toStrictEqual({
586
1073
  const: 'myBlock'
587
1074
  });
588
1075
  });
1076
+ it('entityToStandaloneJSONSchema bundles only the definitions an entity references', async ()=>{
1077
+ const sharedBlock = {
1078
+ slug: 'sharedBlock',
1079
+ interfaceName: 'SharedBlock',
1080
+ fields: [
1081
+ {
1082
+ name: 'title',
1083
+ type: 'text'
1084
+ }
1085
+ ]
1086
+ };
1087
+ // @ts-expect-error partial config
1088
+ const config = {
1089
+ admin: {
1090
+ timezones: {
1091
+ supportedTimezones: [
1092
+ {
1093
+ label: 'UTC',
1094
+ value: 'UTC'
1095
+ },
1096
+ {
1097
+ label: 'New York',
1098
+ value: 'America/New_York'
1099
+ }
1100
+ ]
1101
+ }
1102
+ },
1103
+ blocks: [
1104
+ sharedBlock
1105
+ ],
1106
+ collections: [
1107
+ {
1108
+ slug: 'with-refs',
1109
+ fields: [
1110
+ {
1111
+ name: 'layout',
1112
+ type: 'blocks',
1113
+ blocks: [
1114
+ 'sharedBlock'
1115
+ ]
1116
+ },
1117
+ {
1118
+ name: 'when',
1119
+ type: 'date',
1120
+ timezone: true
1121
+ }
1122
+ ],
1123
+ timestamps: false,
1124
+ versions: false
1125
+ },
1126
+ {
1127
+ slug: 'other',
1128
+ fields: [
1129
+ {
1130
+ name: 'title',
1131
+ type: 'text'
1132
+ }
1133
+ ],
1134
+ timestamps: false,
1135
+ versions: false
1136
+ }
1137
+ ]
1138
+ };
1139
+ const sanitizedConfig = await sanitizeConfig(config);
1140
+ const entity = sanitizedConfig.collections.find((collection)=>collection.slug === 'with-refs');
1141
+ const schema = entityToStandaloneJSONSchema({
1142
+ config: sanitizedConfig,
1143
+ defaultIDType: 'text',
1144
+ entity
1145
+ });
1146
+ // Has its own $schema, so it resolves on its own.
1147
+ expect(schema.$schema).toBe('https://json-schema.org/draft/2020-12/schema');
1148
+ // The block reference is resolved inline, so it can't dangle.
1149
+ const layoutItems = schema.properties?.layout?.items;
1150
+ const inlinedBlock = layoutItems?.oneOf?.[0] ?? {};
1151
+ expect(inlinedBlock.properties?.blockType).toStrictEqual({
1152
+ const: 'sharedBlock'
1153
+ });
1154
+ expect(inlinedBlock.properties?.title).toBeDefined();
1155
+ // A timezone field pulls in supportedTimezones from the root config.
1156
+ expect(schema.$defs?.supportedTimezones).toBeDefined();
1157
+ // Doesn't pull in unrelated collections.
1158
+ expect(schema.$defs?.other).toBeUndefined();
1159
+ });
589
1160
  });
590
1161
 
591
1162
  //# sourceMappingURL=configToJSONSchema.spec.js.map