payload 4.0.0-internal.ccea85d → 4.0.0-internal.cd47d20

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 (1552) hide show
  1. package/bin.js +14 -10
  2. package/dist/admin/RichText.d.ts +1 -1
  3. package/dist/admin/RichText.d.ts.map +1 -1
  4. package/dist/admin/RichText.js.map +1 -1
  5. package/dist/admin/adapters/devReload.d.ts +13 -0
  6. package/dist/admin/adapters/devReload.d.ts.map +1 -1
  7. package/dist/admin/adapters/devReload.js +14 -1
  8. package/dist/admin/adapters/devReload.js.map +1 -1
  9. package/dist/admin/fields/Array.d.ts +11 -13
  10. package/dist/admin/fields/Array.d.ts.map +1 -1
  11. package/dist/admin/fields/Array.js.map +1 -1
  12. package/dist/admin/fields/Blocks.d.ts +13 -16
  13. package/dist/admin/fields/Blocks.d.ts.map +1 -1
  14. package/dist/admin/fields/Blocks.js.map +1 -1
  15. package/dist/admin/fields/Checkbox.d.ts +11 -13
  16. package/dist/admin/fields/Checkbox.d.ts.map +1 -1
  17. package/dist/admin/fields/Checkbox.js.map +1 -1
  18. package/dist/admin/fields/Code.d.ts +11 -13
  19. package/dist/admin/fields/Code.d.ts.map +1 -1
  20. package/dist/admin/fields/Code.js.map +1 -1
  21. package/dist/admin/fields/Collapsible.d.ts +11 -13
  22. package/dist/admin/fields/Collapsible.d.ts.map +1 -1
  23. package/dist/admin/fields/Collapsible.js.map +1 -1
  24. package/dist/admin/fields/Date.d.ts +11 -13
  25. package/dist/admin/fields/Date.d.ts.map +1 -1
  26. package/dist/admin/fields/Date.js.map +1 -1
  27. package/dist/admin/fields/Email.d.ts +11 -13
  28. package/dist/admin/fields/Email.d.ts.map +1 -1
  29. package/dist/admin/fields/Email.js.map +1 -1
  30. package/dist/admin/fields/Group.d.ts +11 -13
  31. package/dist/admin/fields/Group.d.ts.map +1 -1
  32. package/dist/admin/fields/Group.js.map +1 -1
  33. package/dist/admin/fields/JSON.d.ts +11 -13
  34. package/dist/admin/fields/JSON.d.ts.map +1 -1
  35. package/dist/admin/fields/JSON.js.map +1 -1
  36. package/dist/admin/fields/Join.d.ts +12 -14
  37. package/dist/admin/fields/Join.d.ts.map +1 -1
  38. package/dist/admin/fields/Join.js.map +1 -1
  39. package/dist/admin/fields/Number.d.ts +11 -13
  40. package/dist/admin/fields/Number.d.ts.map +1 -1
  41. package/dist/admin/fields/Number.js.map +1 -1
  42. package/dist/admin/fields/Point.d.ts +11 -13
  43. package/dist/admin/fields/Point.d.ts.map +1 -1
  44. package/dist/admin/fields/Point.js.map +1 -1
  45. package/dist/admin/fields/Radio.d.ts +11 -13
  46. package/dist/admin/fields/Radio.d.ts.map +1 -1
  47. package/dist/admin/fields/Radio.js.map +1 -1
  48. package/dist/admin/fields/Relationship.d.ts +11 -13
  49. package/dist/admin/fields/Relationship.d.ts.map +1 -1
  50. package/dist/admin/fields/Relationship.js.map +1 -1
  51. package/dist/admin/fields/RichText.d.ts +13 -15
  52. package/dist/admin/fields/RichText.d.ts.map +1 -1
  53. package/dist/admin/fields/RichText.js.map +1 -1
  54. package/dist/admin/fields/Row.d.ts +10 -12
  55. package/dist/admin/fields/Row.d.ts.map +1 -1
  56. package/dist/admin/fields/Row.js.map +1 -1
  57. package/dist/admin/fields/Select.d.ts +11 -13
  58. package/dist/admin/fields/Select.d.ts.map +1 -1
  59. package/dist/admin/fields/Select.js.map +1 -1
  60. package/dist/admin/fields/Tabs.d.ts +11 -13
  61. package/dist/admin/fields/Tabs.d.ts.map +1 -1
  62. package/dist/admin/fields/Tabs.js.map +1 -1
  63. package/dist/admin/fields/Text.d.ts +11 -13
  64. package/dist/admin/fields/Text.d.ts.map +1 -1
  65. package/dist/admin/fields/Text.js.map +1 -1
  66. package/dist/admin/fields/Textarea.d.ts +11 -13
  67. package/dist/admin/fields/Textarea.d.ts.map +1 -1
  68. package/dist/admin/fields/Textarea.js.map +1 -1
  69. package/dist/admin/fields/UI.d.ts +3 -5
  70. package/dist/admin/fields/UI.d.ts.map +1 -1
  71. package/dist/admin/fields/UI.js.map +1 -1
  72. package/dist/admin/fields/Upload.d.ts +11 -13
  73. package/dist/admin/fields/Upload.d.ts.map +1 -1
  74. package/dist/admin/fields/Upload.js.map +1 -1
  75. package/dist/admin/forms/Description.d.ts +0 -2
  76. package/dist/admin/forms/Description.d.ts.map +1 -1
  77. package/dist/admin/forms/Description.js.map +1 -1
  78. package/dist/admin/forms/Diff.d.ts +0 -2
  79. package/dist/admin/forms/Diff.d.ts.map +1 -1
  80. package/dist/admin/forms/Diff.js.map +1 -1
  81. package/dist/admin/forms/Error.d.ts +0 -2
  82. package/dist/admin/forms/Error.d.ts.map +1 -1
  83. package/dist/admin/forms/Error.js.map +1 -1
  84. package/dist/admin/forms/Field.d.ts +4 -2
  85. package/dist/admin/forms/Field.d.ts.map +1 -1
  86. package/dist/admin/forms/Field.js.map +1 -1
  87. package/dist/admin/forms/Form.d.ts +2 -0
  88. package/dist/admin/forms/Form.d.ts.map +1 -1
  89. package/dist/admin/forms/Form.js.map +1 -1
  90. package/dist/admin/forms/Label.d.ts +0 -2
  91. package/dist/admin/forms/Label.d.ts.map +1 -1
  92. package/dist/admin/forms/Label.js.map +1 -1
  93. package/dist/admin/functions/index.d.ts +15 -11
  94. package/dist/admin/functions/index.d.ts.map +1 -1
  95. package/dist/admin/functions/index.js.map +1 -1
  96. package/dist/admin/getRequestLocale.d.ts +6 -0
  97. package/dist/admin/getRequestLocale.d.ts.map +1 -0
  98. package/dist/admin/getRequestLocale.js +38 -0
  99. package/dist/admin/getRequestLocale.js.map +1 -0
  100. package/dist/admin/initAdminContext.d.ts +39 -0
  101. package/dist/admin/initAdminContext.d.ts.map +1 -0
  102. package/dist/admin/initAdminContext.js +154 -0
  103. package/dist/admin/initAdminContext.js.map +1 -0
  104. package/dist/admin/types.d.ts +30 -30
  105. package/dist/admin/types.d.ts.map +1 -1
  106. package/dist/admin/types.js.map +1 -1
  107. package/dist/admin/views/dashboard.d.ts +2 -2
  108. package/dist/admin/views/dashboard.d.ts.map +1 -1
  109. package/dist/admin/views/dashboard.js.map +1 -1
  110. package/dist/admin/views/index.d.ts +2 -2
  111. package/dist/admin/views/index.d.ts.map +1 -1
  112. package/dist/admin/views/index.js.map +1 -1
  113. package/dist/auth/applyUserReadAccess.d.ts +13 -0
  114. package/dist/auth/applyUserReadAccess.d.ts.map +1 -0
  115. package/dist/auth/applyUserReadAccess.js +41 -0
  116. package/dist/auth/applyUserReadAccess.js.map +1 -0
  117. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts +4 -0
  118. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts.map +1 -0
  119. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js +20 -0
  120. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js.map +1 -0
  121. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts +4 -0
  122. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts.map +1 -0
  123. package/dist/auth/baseFields/apiKey/encryptAPIKey.js +11 -0
  124. package/dist/auth/baseFields/apiKey/encryptAPIKey.js.map +1 -0
  125. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.d.ts +3 -0
  126. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.d.ts.map +1 -0
  127. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.js +5 -0
  128. package/dist/auth/baseFields/apiKey/getAPIKeyLast4.js.map +1 -0
  129. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts +5 -0
  130. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts.map +1 -0
  131. package/dist/auth/baseFields/apiKey/omitAPIKey.js +11 -0
  132. package/dist/auth/baseFields/apiKey/omitAPIKey.js.map +1 -0
  133. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts +4 -0
  134. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts.map +1 -0
  135. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js +5 -0
  136. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js.map +1 -0
  137. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts +4 -0
  138. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts.map +1 -0
  139. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js +5 -0
  140. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js.map +1 -0
  141. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts +4 -0
  142. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts.map +1 -0
  143. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js +12 -0
  144. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js.map +1 -0
  145. package/dist/auth/baseFields/apiKey/setKeyLast4.d.ts +4 -0
  146. package/dist/auth/baseFields/apiKey/setKeyLast4.d.ts.map +1 -0
  147. package/dist/auth/baseFields/apiKey/setKeyLast4.js +12 -0
  148. package/dist/auth/baseFields/apiKey/setKeyLast4.js.map +1 -0
  149. package/dist/auth/baseFields/apiKey.d.ts +6 -6
  150. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  151. package/dist/auth/baseFields/apiKey.js +88 -57
  152. package/dist/auth/baseFields/apiKey.js.map +1 -1
  153. package/dist/auth/baseFields/auth.d.ts +1 -0
  154. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  155. package/dist/auth/baseFields/auth.js +9 -0
  156. package/dist/auth/baseFields/auth.js.map +1 -1
  157. package/dist/auth/crypto.d.ts +73 -2
  158. package/dist/auth/crypto.d.ts.map +1 -1
  159. package/dist/auth/crypto.js +90 -13
  160. package/dist/auth/crypto.js.map +1 -1
  161. package/dist/auth/defaultUnlockAccess.d.ts +3 -0
  162. package/dist/auth/defaultUnlockAccess.d.ts.map +1 -0
  163. package/dist/auth/defaultUnlockAccess.js +8 -0
  164. package/dist/auth/defaultUnlockAccess.js.map +1 -0
  165. package/dist/auth/endpoints/index.d.ts +1 -0
  166. package/dist/auth/endpoints/index.d.ts.map +1 -1
  167. package/dist/auth/endpoints/index.js +8 -0
  168. package/dist/auth/endpoints/index.js.map +1 -1
  169. package/dist/auth/endpoints/login.d.ts.map +1 -1
  170. package/dist/auth/endpoints/login.js +2 -11
  171. package/dist/auth/endpoints/login.js.map +1 -1
  172. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  173. package/dist/auth/endpoints/refresh.js +4 -6
  174. package/dist/auth/endpoints/refresh.js.map +1 -1
  175. package/dist/auth/endpoints/revealAPIKey.d.ts +7 -0
  176. package/dist/auth/endpoints/revealAPIKey.d.ts.map +1 -0
  177. package/dist/auth/endpoints/revealAPIKey.js +122 -0
  178. package/dist/auth/endpoints/revealAPIKey.js.map +1 -0
  179. package/dist/auth/executeAccess.d.ts +2 -1
  180. package/dist/auth/executeAccess.d.ts.map +1 -1
  181. package/dist/auth/executeAccess.js +2 -1
  182. package/dist/auth/executeAccess.js.map +1 -1
  183. package/dist/auth/getAccessResults.js +1 -0
  184. package/dist/auth/getAccessResults.js.map +1 -1
  185. package/dist/auth/getAuthFields.d.ts +1 -1
  186. package/dist/auth/getAuthFields.d.ts.map +1 -1
  187. package/dist/auth/getAuthFields.js +7 -4
  188. package/dist/auth/getAuthFields.js.map +1 -1
  189. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  190. package/dist/auth/getFieldsToSign.js +20 -10
  191. package/dist/auth/getFieldsToSign.js.map +1 -1
  192. package/dist/auth/getLoginOptions.js.map +1 -1
  193. package/dist/auth/jwt.d.ts.map +1 -1
  194. package/dist/auth/jwt.js +2 -0
  195. package/dist/auth/jwt.js.map +1 -1
  196. package/dist/auth/jwtAuth.d.ts +9 -0
  197. package/dist/auth/jwtAuth.d.ts.map +1 -0
  198. package/dist/auth/jwtAuth.js +8 -0
  199. package/dist/auth/jwtAuth.js.map +1 -0
  200. package/dist/auth/loginWithCookie.d.ts +33 -0
  201. package/dist/auth/loginWithCookie.d.ts.map +1 -0
  202. package/dist/auth/loginWithCookie.js +34 -0
  203. package/dist/auth/loginWithCookie.js.map +1 -0
  204. package/dist/auth/operations/access.d.ts.map +1 -1
  205. package/dist/auth/operations/access.js +3 -9
  206. package/dist/auth/operations/access.js.map +1 -1
  207. package/dist/auth/operations/auth.d.ts.map +1 -1
  208. package/dist/auth/operations/auth.js +16 -21
  209. package/dist/auth/operations/auth.js.map +1 -1
  210. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  211. package/dist/auth/operations/forgotPassword.js +97 -14
  212. package/dist/auth/operations/forgotPassword.js.map +1 -1
  213. package/dist/auth/operations/local/auth.js +7 -4
  214. package/dist/auth/operations/local/auth.js.map +1 -1
  215. package/dist/auth/operations/local/forgotPassword.d.ts +2 -2
  216. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  217. package/dist/auth/operations/local/forgotPassword.js +6 -3
  218. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  219. package/dist/auth/operations/local/login.d.ts +2 -2
  220. package/dist/auth/operations/local/login.d.ts.map +1 -1
  221. package/dist/auth/operations/local/login.js +6 -3
  222. package/dist/auth/operations/local/login.js.map +1 -1
  223. package/dist/auth/operations/local/resetPassword.js +5 -2
  224. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  225. package/dist/auth/operations/local/unlock.d.ts +2 -2
  226. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  227. package/dist/auth/operations/local/unlock.js +6 -3
  228. package/dist/auth/operations/local/unlock.js.map +1 -1
  229. package/dist/auth/operations/local/verifyEmail.js +5 -2
  230. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  231. package/dist/auth/operations/login.d.ts.map +1 -1
  232. package/dist/auth/operations/login.js +48 -26
  233. package/dist/auth/operations/login.js.map +1 -1
  234. package/dist/auth/operations/me.d.ts +0 -7
  235. package/dist/auth/operations/me.d.ts.map +1 -1
  236. package/dist/auth/operations/me.js +0 -6
  237. package/dist/auth/operations/me.js.map +1 -1
  238. package/dist/auth/operations/refresh.d.ts +0 -7
  239. package/dist/auth/operations/refresh.d.ts.map +1 -1
  240. package/dist/auth/operations/refresh.js +32 -15
  241. package/dist/auth/operations/refresh.js.map +1 -1
  242. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  243. package/dist/auth/operations/registerFirstUser.js +4 -4
  244. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  245. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  246. package/dist/auth/operations/resetPassword.js +31 -22
  247. package/dist/auth/operations/resetPassword.js.map +1 -1
  248. package/dist/auth/operations/unlock.d.ts.map +1 -1
  249. package/dist/auth/operations/unlock.js +1 -0
  250. package/dist/auth/operations/unlock.js.map +1 -1
  251. package/dist/auth/rotateSecret.d.ts +51 -0
  252. package/dist/auth/rotateSecret.d.ts.map +1 -0
  253. package/dist/auth/rotateSecret.js +131 -0
  254. package/dist/auth/rotateSecret.js.map +1 -0
  255. package/dist/auth/serverFunctions/cookies.d.ts +47 -0
  256. package/dist/auth/serverFunctions/cookies.d.ts.map +1 -0
  257. package/dist/auth/serverFunctions/cookies.js +52 -0
  258. package/dist/auth/serverFunctions/cookies.js.map +1 -0
  259. package/dist/auth/serverFunctions/login.d.ts +29 -0
  260. package/dist/auth/serverFunctions/login.d.ts.map +1 -0
  261. package/dist/auth/serverFunctions/login.js +65 -0
  262. package/dist/auth/serverFunctions/login.js.map +1 -0
  263. package/dist/auth/serverFunctions/logout.d.ts +17 -0
  264. package/dist/auth/serverFunctions/logout.d.ts.map +1 -0
  265. package/dist/auth/serverFunctions/logout.js +59 -0
  266. package/dist/auth/serverFunctions/logout.js.map +1 -0
  267. package/dist/auth/serverFunctions/refresh.d.ts +17 -0
  268. package/dist/auth/serverFunctions/refresh.d.ts.map +1 -0
  269. package/dist/auth/serverFunctions/refresh.js +62 -0
  270. package/dist/auth/serverFunctions/refresh.js.map +1 -0
  271. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  272. package/dist/auth/strategies/apiKey.js +42 -4
  273. package/dist/auth/strategies/apiKey.js.map +1 -1
  274. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  275. package/dist/auth/strategies/jwt.js +83 -11
  276. package/dist/auth/strategies/jwt.js.map +1 -1
  277. package/dist/auth/strategies/local/authenticate.d.ts +5 -1
  278. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  279. package/dist/auth/strategies/local/authenticate.js +8 -3
  280. package/dist/auth/strategies/local/authenticate.js.map +1 -1
  281. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts +9 -1
  282. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  283. package/dist/auth/strategies/local/generatePasswordSaltHash.js +61 -34
  284. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  285. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  286. package/dist/auth/strategies/local/register.js +1 -0
  287. package/dist/auth/strategies/local/register.js.map +1 -1
  288. package/dist/auth/types.d.ts +26 -18
  289. package/dist/auth/types.d.ts.map +1 -1
  290. package/dist/auth/types.js.map +1 -1
  291. package/dist/auth/withBaseAccess.d.ts +22 -0
  292. package/dist/auth/withBaseAccess.d.ts.map +1 -0
  293. package/dist/auth/withBaseAccess.js +61 -0
  294. package/dist/auth/withBaseAccess.js.map +1 -0
  295. package/dist/{bin → cli/commands/build}/build.d.ts +8 -13
  296. package/dist/cli/commands/build/build.d.ts.map +1 -0
  297. package/dist/{bin → cli/commands/build}/build.js +26 -27
  298. package/dist/cli/commands/build/build.js.map +1 -0
  299. package/dist/cli/commands/build/index.d.ts +2 -0
  300. package/dist/cli/commands/build/index.d.ts.map +1 -0
  301. package/dist/cli/commands/build/index.js +26 -0
  302. package/dist/cli/commands/build/index.js.map +1 -0
  303. package/dist/cli/commands/collections/countDocuments.d.ts +2 -0
  304. package/dist/cli/commands/collections/countDocuments.d.ts.map +1 -0
  305. package/dist/cli/commands/collections/countDocuments.js +37 -0
  306. package/dist/cli/commands/collections/countDocuments.js.map +1 -0
  307. package/dist/cli/commands/collections/countVersions.d.ts +2 -0
  308. package/dist/cli/commands/collections/countVersions.d.ts.map +1 -0
  309. package/dist/cli/commands/collections/countVersions.js +36 -0
  310. package/dist/cli/commands/collections/countVersions.js.map +1 -0
  311. package/dist/cli/commands/collections/createDocuments.d.ts +2 -0
  312. package/dist/cli/commands/collections/createDocuments.d.ts.map +1 -0
  313. package/dist/cli/commands/collections/createDocuments.js +132 -0
  314. package/dist/cli/commands/collections/createDocuments.js.map +1 -0
  315. package/dist/cli/commands/collections/deleteDocuments.d.ts +2 -0
  316. package/dist/cli/commands/collections/deleteDocuments.d.ts.map +1 -0
  317. package/dist/cli/commands/collections/deleteDocuments.js +64 -0
  318. package/dist/cli/commands/collections/deleteDocuments.js.map +1 -0
  319. package/dist/cli/commands/collections/duplicateDocument.d.ts +2 -0
  320. package/dist/cli/commands/collections/duplicateDocument.d.ts.map +1 -0
  321. package/dist/cli/commands/collections/duplicateDocument.js +109 -0
  322. package/dist/cli/commands/collections/duplicateDocument.js.map +1 -0
  323. package/dist/cli/commands/collections/findDistinct.d.ts +2 -0
  324. package/dist/cli/commands/collections/findDistinct.d.ts.map +1 -0
  325. package/dist/cli/commands/collections/findDistinct.js +52 -0
  326. package/dist/cli/commands/collections/findDistinct.js.map +1 -0
  327. package/dist/cli/commands/collections/findDocuments.d.ts +2 -0
  328. package/dist/cli/commands/collections/findDocuments.d.ts.map +1 -0
  329. package/dist/cli/commands/collections/findDocuments.js +79 -0
  330. package/dist/cli/commands/collections/findDocuments.js.map +1 -0
  331. package/dist/cli/commands/collections/findVersionByID.d.ts +2 -0
  332. package/dist/cli/commands/collections/findVersionByID.d.ts.map +1 -0
  333. package/dist/cli/commands/collections/findVersionByID.js +48 -0
  334. package/dist/cli/commands/collections/findVersionByID.js.map +1 -0
  335. package/dist/cli/commands/collections/findVersions.d.ts +2 -0
  336. package/dist/cli/commands/collections/findVersions.d.ts.map +1 -0
  337. package/dist/cli/commands/collections/findVersions.js +57 -0
  338. package/dist/cli/commands/collections/findVersions.js.map +1 -0
  339. package/dist/cli/commands/collections/getCollectionSchema.d.ts +2 -0
  340. package/dist/cli/commands/collections/getCollectionSchema.d.ts.map +1 -0
  341. package/dist/cli/commands/collections/getCollectionSchema.js +51 -0
  342. package/dist/cli/commands/collections/getCollectionSchema.js.map +1 -0
  343. package/dist/cli/commands/collections/restoreVersion.d.ts +2 -0
  344. package/dist/cli/commands/collections/restoreVersion.d.ts.map +1 -0
  345. package/dist/cli/commands/collections/restoreVersion.js +47 -0
  346. package/dist/cli/commands/collections/restoreVersion.js.map +1 -0
  347. package/dist/cli/commands/collections/updateDocument.d.ts +2 -0
  348. package/dist/cli/commands/collections/updateDocument.d.ts.map +1 -0
  349. package/dist/cli/commands/collections/updateDocument.js +192 -0
  350. package/dist/cli/commands/collections/updateDocument.js.map +1 -0
  351. package/dist/cli/commands/data/input.d.ts +28 -0
  352. package/dist/cli/commands/data/input.d.ts.map +1 -0
  353. package/dist/cli/commands/data/input.js +76 -0
  354. package/dist/cli/commands/data/input.js.map +1 -0
  355. package/dist/cli/commands/data/utilities.d.ts +65 -0
  356. package/dist/cli/commands/data/utilities.d.ts.map +1 -0
  357. package/dist/cli/commands/data/utilities.js +67 -0
  358. package/dist/cli/commands/data/utilities.js.map +1 -0
  359. package/dist/cli/commands/generateDBSchema.d.ts +2 -0
  360. package/dist/cli/commands/generateDBSchema.d.ts.map +1 -0
  361. package/dist/cli/commands/generateDBSchema.js +29 -0
  362. package/dist/cli/commands/generateDBSchema.js.map +1 -0
  363. package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts.map +1 -0
  364. package/dist/cli/commands/generateImportMap/frameworkConventions.js.map +1 -0
  365. package/dist/{bin/generateImportMap/index.d.ts → cli/commands/generateImportMap/generateImportMap.d.ts} +8 -4
  366. package/dist/cli/commands/generateImportMap/generateImportMap.d.ts.map +1 -0
  367. package/dist/{bin/generateImportMap/index.js → cli/commands/generateImportMap/generateImportMap.js} +9 -4
  368. package/dist/cli/commands/generateImportMap/generateImportMap.js.map +1 -0
  369. package/dist/cli/commands/generateImportMap/index.d.ts +2 -0
  370. package/dist/cli/commands/generateImportMap/index.d.ts.map +1 -0
  371. package/dist/cli/commands/generateImportMap/index.js +18 -0
  372. package/dist/cli/commands/generateImportMap/index.js.map +1 -0
  373. package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.d.ts +3 -3
  374. package/dist/cli/commands/generateImportMap/iterateCollections.d.ts.map +1 -0
  375. package/dist/cli/commands/generateImportMap/iterateCollections.js.map +1 -0
  376. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.d.ts +2 -2
  377. package/dist/cli/commands/generateImportMap/iterateConfig.d.ts.map +1 -0
  378. package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.js +1 -1
  379. package/dist/cli/commands/generateImportMap/iterateConfig.js.map +1 -0
  380. package/dist/{bin → cli/commands}/generateImportMap/iterateFields.d.ts +3 -3
  381. package/dist/cli/commands/generateImportMap/iterateFields.d.ts.map +1 -0
  382. package/dist/cli/commands/generateImportMap/iterateFields.js.map +1 -0
  383. package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.d.ts +3 -3
  384. package/dist/cli/commands/generateImportMap/iterateGlobals.d.ts.map +1 -0
  385. package/dist/cli/commands/generateImportMap/iterateGlobals.js.map +1 -0
  386. package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts +2 -2
  387. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +1 -0
  388. package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +1 -0
  389. package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.d.ts +2 -2
  390. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -0
  391. package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.js.map +1 -0
  392. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +1 -0
  393. package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +1 -0
  394. package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.d.ts +1 -1
  395. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.d.ts.map +1 -0
  396. package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.js.map +1 -0
  397. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -0
  398. package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.js +1 -1
  399. package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -0
  400. package/dist/cli/commands/generateTypes.d.ts +12 -0
  401. package/dist/cli/commands/generateTypes.d.ts.map +1 -0
  402. package/dist/{bin → cli/commands}/generateTypes.js +33 -7
  403. package/dist/cli/commands/generateTypes.js.map +1 -0
  404. package/dist/cli/commands/getConfigInfo.d.ts +2 -0
  405. package/dist/cli/commands/getConfigInfo.d.ts.map +1 -0
  406. package/dist/cli/commands/getConfigInfo.js +23 -0
  407. package/dist/cli/commands/getConfigInfo.js.map +1 -0
  408. package/dist/cli/commands/globals/countGlobalVersions.d.ts +2 -0
  409. package/dist/cli/commands/globals/countGlobalVersions.d.ts.map +1 -0
  410. package/dist/cli/commands/globals/countGlobalVersions.js +36 -0
  411. package/dist/cli/commands/globals/countGlobalVersions.js.map +1 -0
  412. package/dist/cli/commands/globals/findGlobal.d.ts +2 -0
  413. package/dist/cli/commands/globals/findGlobal.d.ts.map +1 -0
  414. package/dist/cli/commands/globals/findGlobal.js +42 -0
  415. package/dist/cli/commands/globals/findGlobal.js.map +1 -0
  416. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts +2 -0
  417. package/dist/cli/commands/globals/findGlobalVersionByID.d.ts.map +1 -0
  418. package/dist/cli/commands/globals/findGlobalVersionByID.js +46 -0
  419. package/dist/cli/commands/globals/findGlobalVersionByID.js.map +1 -0
  420. package/dist/cli/commands/globals/findGlobalVersions.d.ts +2 -0
  421. package/dist/cli/commands/globals/findGlobalVersions.d.ts.map +1 -0
  422. package/dist/cli/commands/globals/findGlobalVersions.js +55 -0
  423. package/dist/cli/commands/globals/findGlobalVersions.js.map +1 -0
  424. package/dist/cli/commands/globals/getGlobalSchema.d.ts +2 -0
  425. package/dist/cli/commands/globals/getGlobalSchema.d.ts.map +1 -0
  426. package/dist/cli/commands/globals/getGlobalSchema.js +36 -0
  427. package/dist/cli/commands/globals/getGlobalSchema.js.map +1 -0
  428. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts +2 -0
  429. package/dist/cli/commands/globals/restoreGlobalVersion.d.ts.map +1 -0
  430. package/dist/cli/commands/globals/restoreGlobalVersion.js +46 -0
  431. package/dist/cli/commands/globals/restoreGlobalVersion.js.map +1 -0
  432. package/dist/cli/commands/globals/updateGlobal.d.ts +2 -0
  433. package/dist/cli/commands/globals/updateGlobal.d.ts.map +1 -0
  434. package/dist/cli/commands/globals/updateGlobal.js +95 -0
  435. package/dist/cli/commands/globals/updateGlobal.js.map +1 -0
  436. package/dist/cli/commands/help.d.ts +2 -0
  437. package/dist/cli/commands/help.d.ts.map +1 -0
  438. package/dist/cli/commands/help.js +42 -0
  439. package/dist/cli/commands/help.js.map +1 -0
  440. package/dist/cli/commands/info.d.ts +2 -0
  441. package/dist/cli/commands/info.d.ts.map +1 -0
  442. package/dist/cli/commands/info.js +78 -0
  443. package/dist/cli/commands/info.js.map +1 -0
  444. package/dist/cli/commands/jobs/handleSchedules.d.ts +2 -0
  445. package/dist/cli/commands/jobs/handleSchedules.d.ts.map +1 -0
  446. package/dist/cli/commands/jobs/handleSchedules.js +17 -0
  447. package/dist/cli/commands/jobs/handleSchedules.js.map +1 -0
  448. package/dist/cli/commands/jobs/run.d.ts +2 -0
  449. package/dist/cli/commands/jobs/run.d.ts.map +1 -0
  450. package/dist/cli/commands/jobs/run.js +30 -0
  451. package/dist/cli/commands/jobs/run.js.map +1 -0
  452. package/dist/cli/commands/migrate/create.d.ts +2 -0
  453. package/dist/cli/commands/migrate/create.d.ts.map +1 -0
  454. package/dist/cli/commands/migrate/create.js +44 -0
  455. package/dist/cli/commands/migrate/create.js.map +1 -0
  456. package/dist/cli/commands/migrate/down.d.ts +2 -0
  457. package/dist/cli/commands/migrate/down.d.ts.map +1 -0
  458. package/dist/cli/commands/migrate/down.js +22 -0
  459. package/dist/cli/commands/migrate/down.js.map +1 -0
  460. package/dist/cli/commands/migrate/fresh.d.ts +2 -0
  461. package/dist/cli/commands/migrate/fresh.d.ts.map +1 -0
  462. package/dist/cli/commands/migrate/fresh.js +28 -0
  463. package/dist/cli/commands/migrate/fresh.js.map +1 -0
  464. package/dist/cli/commands/migrate/initialize.d.ts +11 -0
  465. package/dist/cli/commands/migrate/initialize.d.ts.map +1 -0
  466. package/dist/cli/commands/migrate/initialize.js +17 -0
  467. package/dist/cli/commands/migrate/initialize.js.map +1 -0
  468. package/dist/cli/commands/migrate/refresh.d.ts +2 -0
  469. package/dist/cli/commands/migrate/refresh.d.ts.map +1 -0
  470. package/dist/cli/commands/migrate/refresh.js +22 -0
  471. package/dist/cli/commands/migrate/refresh.js.map +1 -0
  472. package/dist/cli/commands/migrate/reset.d.ts +2 -0
  473. package/dist/cli/commands/migrate/reset.d.ts.map +1 -0
  474. package/dist/cli/commands/migrate/reset.js +22 -0
  475. package/dist/cli/commands/migrate/reset.js.map +1 -0
  476. package/dist/cli/commands/migrate/run.d.ts +2 -0
  477. package/dist/cli/commands/migrate/run.d.ts.map +1 -0
  478. package/dist/cli/commands/migrate/run.js +28 -0
  479. package/dist/cli/commands/migrate/run.js.map +1 -0
  480. package/dist/cli/commands/migrate/status.d.ts +2 -0
  481. package/dist/cli/commands/migrate/status.d.ts.map +1 -0
  482. package/dist/cli/commands/migrate/status.js +22 -0
  483. package/dist/cli/commands/migrate/status.js.map +1 -0
  484. package/dist/cli/commands/run.d.ts +2 -0
  485. package/dist/cli/commands/run.d.ts.map +1 -0
  486. package/dist/cli/commands/run.js +45 -0
  487. package/dist/cli/commands/run.js.map +1 -0
  488. package/dist/cli/defineCLICommand.d.ts +32 -0
  489. package/dist/cli/defineCLICommand.d.ts.map +1 -0
  490. package/dist/cli/defineCLICommand.js +26 -0
  491. package/dist/cli/defineCLICommand.js.map +1 -0
  492. package/dist/cli/index.d.ts +7 -0
  493. package/dist/cli/index.d.ts.map +1 -0
  494. package/dist/cli/index.js +95 -0
  495. package/dist/cli/index.js.map +1 -0
  496. package/dist/cli/program/createHelp.d.ts +8 -0
  497. package/dist/cli/program/createHelp.d.ts.map +1 -0
  498. package/dist/cli/program/createHelp.js +26 -0
  499. package/dist/cli/program/createHelp.js.map +1 -0
  500. package/dist/cli/program/loadCommands.d.ts +12 -0
  501. package/dist/cli/program/loadCommands.d.ts.map +1 -0
  502. package/dist/cli/program/loadCommands.js +62 -0
  503. package/dist/cli/program/loadCommands.js.map +1 -0
  504. package/dist/cli/program/normalizeHelpArguments.d.ts +12 -0
  505. package/dist/cli/program/normalizeHelpArguments.d.ts.map +1 -0
  506. package/dist/cli/program/normalizeHelpArguments.js +34 -0
  507. package/dist/cli/program/normalizeHelpArguments.js.map +1 -0
  508. package/dist/cli/program/registerCommand.d.ts +10 -0
  509. package/dist/cli/program/registerCommand.d.ts.map +1 -0
  510. package/dist/cli/program/registerCommand.js +185 -0
  511. package/dist/cli/program/registerCommand.js.map +1 -0
  512. package/dist/cli/runtime/createRuntime.d.ts +9 -0
  513. package/dist/cli/runtime/createRuntime.d.ts.map +1 -0
  514. package/dist/cli/runtime/createRuntime.js +81 -0
  515. package/dist/cli/runtime/createRuntime.js.map +1 -0
  516. package/dist/cli/runtime/getCommandInput.d.ts +17 -0
  517. package/dist/cli/runtime/getCommandInput.d.ts.map +1 -0
  518. package/dist/cli/runtime/getCommandInput.js +86 -0
  519. package/dist/cli/runtime/getCommandInput.js.map +1 -0
  520. package/dist/cli/runtime/invokeCommand.d.ts +23 -0
  521. package/dist/cli/runtime/invokeCommand.d.ts.map +1 -0
  522. package/dist/cli/runtime/invokeCommand.js +107 -0
  523. package/dist/cli/runtime/invokeCommand.js.map +1 -0
  524. package/dist/cli/runtime/loadEnv.d.ts.map +1 -0
  525. package/dist/{bin → cli/runtime}/loadEnv.js +1 -1
  526. package/dist/cli/runtime/loadEnv.js.map +1 -0
  527. package/dist/cli/runtime/output.d.ts +50 -0
  528. package/dist/cli/runtime/output.d.ts.map +1 -0
  529. package/dist/cli/runtime/output.js +125 -0
  530. package/dist/cli/runtime/output.js.map +1 -0
  531. package/dist/cli/runtime/redirectOutputToStderr.d.ts +8 -0
  532. package/dist/cli/runtime/redirectOutputToStderr.d.ts.map +1 -0
  533. package/dist/cli/runtime/redirectOutputToStderr.js +31 -0
  534. package/dist/cli/runtime/redirectOutputToStderr.js.map +1 -0
  535. package/dist/collections/config/client.d.ts +10 -3
  536. package/dist/collections/config/client.d.ts.map +1 -1
  537. package/dist/collections/config/client.js +9 -1
  538. package/dist/collections/config/client.js.map +1 -1
  539. package/dist/collections/config/defaults.d.ts +6 -4
  540. package/dist/collections/config/defaults.d.ts.map +1 -1
  541. package/dist/collections/config/defaults.js +49 -33
  542. package/dist/collections/config/defaults.js.map +1 -1
  543. package/dist/collections/config/sanitize.d.ts +4 -8
  544. package/dist/collections/config/sanitize.d.ts.map +1 -1
  545. package/dist/collections/config/sanitize.js +89 -27
  546. package/dist/collections/config/sanitize.js.map +1 -1
  547. package/dist/collections/config/types.d.ts +74 -61
  548. package/dist/collections/config/types.d.ts.map +1 -1
  549. package/dist/collections/config/types.js.map +1 -1
  550. package/dist/collections/endpoints/index.d.ts +1 -0
  551. package/dist/collections/endpoints/index.d.ts.map +1 -1
  552. package/dist/collections/endpoints/index.js +6 -5
  553. package/dist/collections/endpoints/index.js.map +1 -1
  554. package/dist/collections/operations/count.d.ts.map +1 -1
  555. package/dist/collections/operations/count.js +65 -70
  556. package/dist/collections/operations/count.js.map +1 -1
  557. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  558. package/dist/collections/operations/countVersions.js +61 -66
  559. package/dist/collections/operations/countVersions.js.map +1 -1
  560. package/dist/collections/operations/create.d.ts.map +1 -1
  561. package/dist/collections/operations/create.js +144 -13
  562. package/dist/collections/operations/create.js.map +1 -1
  563. package/dist/collections/operations/delete.d.ts.map +1 -1
  564. package/dist/collections/operations/delete.js +215 -129
  565. package/dist/collections/operations/delete.js.map +1 -1
  566. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  567. package/dist/collections/operations/deleteByID.js +14 -13
  568. package/dist/collections/operations/deleteByID.js.map +1 -1
  569. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  570. package/dist/collections/operations/docAccess.js +19 -25
  571. package/dist/collections/operations/docAccess.js.map +1 -1
  572. package/dist/collections/operations/find.d.ts.map +1 -1
  573. package/dist/collections/operations/find.js +248 -246
  574. package/dist/collections/operations/find.js.map +1 -1
  575. package/dist/collections/operations/findByID.d.ts.map +1 -1
  576. package/dist/collections/operations/findByID.js +258 -215
  577. package/dist/collections/operations/findByID.js.map +1 -1
  578. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  579. package/dist/collections/operations/findDistinct.js +235 -154
  580. package/dist/collections/operations/findDistinct.js.map +1 -1
  581. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  582. package/dist/collections/operations/findVersionByID.js +145 -128
  583. package/dist/collections/operations/findVersionByID.js.map +1 -1
  584. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  585. package/dist/collections/operations/findVersions.js +152 -149
  586. package/dist/collections/operations/findVersions.js.map +1 -1
  587. package/dist/collections/operations/inputSchemas.d.ts +877 -0
  588. package/dist/collections/operations/inputSchemas.d.ts.map +1 -0
  589. package/dist/collections/operations/inputSchemas.js +217 -0
  590. package/dist/collections/operations/inputSchemas.js.map +1 -0
  591. package/dist/collections/operations/local/count.d.ts +2 -7
  592. package/dist/collections/operations/local/count.d.ts.map +1 -1
  593. package/dist/collections/operations/local/count.js +6 -3
  594. package/dist/collections/operations/local/count.js.map +1 -1
  595. package/dist/collections/operations/local/countVersions.d.ts +2 -7
  596. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  597. package/dist/collections/operations/local/countVersions.js +6 -3
  598. package/dist/collections/operations/local/countVersions.js.map +1 -1
  599. package/dist/collections/operations/local/create.d.ts +6 -38
  600. package/dist/collections/operations/local/create.d.ts.map +1 -1
  601. package/dist/collections/operations/local/create.js +6 -3
  602. package/dist/collections/operations/local/create.js.map +1 -1
  603. package/dist/collections/operations/local/delete.d.ts +2 -7
  604. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  605. package/dist/collections/operations/local/delete.js +6 -3
  606. package/dist/collections/operations/local/delete.js.map +1 -1
  607. package/dist/collections/operations/local/duplicate.d.ts +2 -7
  608. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  609. package/dist/collections/operations/local/duplicate.js +6 -3
  610. package/dist/collections/operations/local/duplicate.js.map +1 -1
  611. package/dist/collections/operations/local/find.d.ts +4 -11
  612. package/dist/collections/operations/local/find.d.ts.map +1 -1
  613. package/dist/collections/operations/local/find.js +6 -3
  614. package/dist/collections/operations/local/find.js.map +1 -1
  615. package/dist/collections/operations/local/findByID.d.ts +6 -9
  616. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  617. package/dist/collections/operations/local/findByID.js +6 -3
  618. package/dist/collections/operations/local/findByID.js.map +1 -1
  619. package/dist/collections/operations/local/findDistinct.d.ts +2 -7
  620. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  621. package/dist/collections/operations/local/findDistinct.js +6 -3
  622. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  623. package/dist/collections/operations/local/findVersionByID.d.ts +2 -7
  624. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  625. package/dist/collections/operations/local/findVersionByID.js +6 -3
  626. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  627. package/dist/collections/operations/local/findVersions.d.ts +2 -7
  628. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  629. package/dist/collections/operations/local/findVersions.js +6 -3
  630. package/dist/collections/operations/local/findVersions.js.map +1 -1
  631. package/dist/collections/operations/local/restoreVersion.d.ts +2 -7
  632. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  633. package/dist/collections/operations/local/restoreVersion.js +6 -3
  634. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  635. package/dist/collections/operations/local/update.d.ts +2 -7
  636. package/dist/collections/operations/local/update.d.ts.map +1 -1
  637. package/dist/collections/operations/local/update.js +6 -3
  638. package/dist/collections/operations/local/update.js.map +1 -1
  639. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  640. package/dist/collections/operations/restoreVersion.js +48 -13
  641. package/dist/collections/operations/restoreVersion.js.map +1 -1
  642. package/dist/collections/operations/update.d.ts.map +1 -1
  643. package/dist/collections/operations/update.js +148 -24
  644. package/dist/collections/operations/update.js.map +1 -1
  645. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  646. package/dist/collections/operations/updateByID.js +80 -2
  647. package/dist/collections/operations/updateByID.js.map +1 -1
  648. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.d.ts +15 -0
  649. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.d.ts.map +1 -0
  650. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.js +54 -0
  651. package/dist/collections/operations/utilities/prefetchVersionForInheritedReadAccess.js.map +1 -0
  652. package/dist/collections/operations/utilities/update.d.ts +2 -2
  653. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  654. package/dist/collections/operations/utilities/update.js +83 -19
  655. package/dist/collections/operations/utilities/update.js.map +1 -1
  656. package/dist/config/build.js +1 -1
  657. package/dist/config/build.js.map +1 -1
  658. package/dist/config/client.d.ts +2 -2
  659. package/dist/config/client.d.ts.map +1 -1
  660. package/dist/config/client.js +2 -4
  661. package/dist/config/client.js.map +1 -1
  662. package/dist/config/defaults.d.ts.map +1 -1
  663. package/dist/config/defaults.js +95 -42
  664. package/dist/config/defaults.js.map +1 -1
  665. package/dist/config/orderable/index.d.ts +1 -1
  666. package/dist/config/orderable/index.d.ts.map +1 -1
  667. package/dist/config/orderable/index.js +73 -16
  668. package/dist/config/orderable/index.js.map +1 -1
  669. package/dist/config/orderable/utils/getJoinScopeContext.d.ts.map +1 -1
  670. package/dist/config/orderable/utils/getJoinScopeContext.js +1 -0
  671. package/dist/config/orderable/utils/getJoinScopeContext.js.map +1 -1
  672. package/dist/config/orderable/utils/resolvePendingTargetKey.d.ts.map +1 -1
  673. package/dist/config/orderable/utils/resolvePendingTargetKey.js +1 -0
  674. package/dist/config/orderable/utils/resolvePendingTargetKey.js.map +1 -1
  675. package/dist/config/sanitize.d.ts +1 -1
  676. package/dist/config/sanitize.d.ts.map +1 -1
  677. package/dist/config/sanitize.js +45 -34
  678. package/dist/config/sanitize.js.map +1 -1
  679. package/dist/config/types.d.ts +497 -431
  680. package/dist/config/types.d.ts.map +1 -1
  681. package/dist/config/types.js.map +1 -1
  682. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  683. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  684. package/dist/database/createDatabaseAdapter.js +0 -2
  685. package/dist/database/createDatabaseAdapter.js.map +1 -1
  686. package/dist/database/getLocalizedPaths.d.ts +2 -1
  687. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  688. package/dist/database/getLocalizedPaths.js +12 -3
  689. package/dist/database/getLocalizedPaths.js.map +1 -1
  690. package/dist/database/isNestedRelationshipQuery.d.ts +14 -0
  691. package/dist/database/isNestedRelationshipQuery.d.ts.map +1 -0
  692. package/dist/database/isNestedRelationshipQuery.js +19 -0
  693. package/dist/database/isNestedRelationshipQuery.js.map +1 -0
  694. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  695. package/dist/database/migrations/createMigration.js +4 -0
  696. package/dist/database/migrations/createMigration.js.map +1 -1
  697. package/dist/database/migrations/getMigrations.d.ts.map +1 -1
  698. package/dist/database/migrations/getMigrations.js +1 -0
  699. package/dist/database/migrations/getMigrations.js.map +1 -1
  700. package/dist/database/migrations/getPredefinedMigration.js +2 -2
  701. package/dist/database/migrations/getPredefinedMigration.js.map +1 -1
  702. package/dist/database/migrations/migrate.d.ts.map +1 -1
  703. package/dist/database/migrations/migrate.js +14 -2
  704. package/dist/database/migrations/migrate.js.map +1 -1
  705. package/dist/database/migrations/migrateDown.d.ts +2 -2
  706. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  707. package/dist/database/migrations/migrateDown.js +17 -4
  708. package/dist/database/migrations/migrateDown.js.map +1 -1
  709. package/dist/database/migrations/migrateRefresh.d.ts +2 -2
  710. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  711. package/dist/database/migrations/migrateRefresh.js +16 -4
  712. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  713. package/dist/database/migrations/migrateReset.d.ts +2 -2
  714. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  715. package/dist/database/migrations/migrateReset.js +17 -3
  716. package/dist/database/migrations/migrateReset.js.map +1 -1
  717. package/dist/database/migrations/migrateStatus.d.ts +2 -2
  718. package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
  719. package/dist/database/migrations/migrateStatus.js +11 -6
  720. package/dist/database/migrations/migrateStatus.js.map +1 -1
  721. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  722. package/dist/database/migrations/migrationsCollection.js +1 -0
  723. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  724. package/dist/database/prefixWherePaths.d.ts +6 -0
  725. package/dist/database/prefixWherePaths.d.ts.map +1 -0
  726. package/dist/database/prefixWherePaths.js +19 -0
  727. package/dist/database/prefixWherePaths.js.map +1 -0
  728. package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -1
  729. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  730. package/dist/database/queryValidation/validateQueryPaths.js +12 -2
  731. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  732. package/dist/database/queryValidation/validateSearchParams.d.ts +2 -1
  733. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  734. package/dist/database/queryValidation/validateSearchParams.js +88 -7
  735. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  736. package/dist/database/queryValidation/validateSortQuery.d.ts +23 -0
  737. package/dist/database/queryValidation/validateSortQuery.d.ts.map +1 -0
  738. package/dist/database/queryValidation/validateSortQuery.js +54 -0
  739. package/dist/database/queryValidation/validateSortQuery.js.map +1 -0
  740. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  741. package/dist/database/sanitizeJoinQuery.js +7 -0
  742. package/dist/database/sanitizeJoinQuery.js.map +1 -1
  743. package/dist/database/sanitizeWhereQuery.d.ts +1 -1
  744. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  745. package/dist/database/sanitizeWhereQuery.js +44 -1
  746. package/dist/database/sanitizeWhereQuery.js.map +1 -1
  747. package/dist/database/types.d.ts +41 -8
  748. package/dist/database/types.d.ts.map +1 -1
  749. package/dist/database/types.js.map +1 -1
  750. package/dist/duplicateDocument/index.js +1 -0
  751. package/dist/duplicateDocument/index.js.map +1 -1
  752. package/dist/exports/auth.d.ts +5 -0
  753. package/dist/exports/auth.d.ts.map +1 -0
  754. package/dist/exports/auth.js +6 -0
  755. package/dist/exports/auth.js.map +1 -0
  756. package/dist/exports/cli.d.ts +4 -0
  757. package/dist/exports/cli.d.ts.map +1 -0
  758. package/dist/exports/cli.js +4 -0
  759. package/dist/exports/cli.js.map +1 -0
  760. package/dist/exports/cliBuiltin.d.ts +37 -0
  761. package/dist/exports/cliBuiltin.d.ts.map +1 -0
  762. package/dist/exports/cliBuiltin.js +38 -0
  763. package/dist/exports/cliBuiltin.js.map +1 -0
  764. package/dist/exports/internal.d.ts +14 -1
  765. package/dist/exports/internal.d.ts.map +1 -1
  766. package/dist/exports/internal.js +13 -1
  767. package/dist/exports/internal.js.map +1 -1
  768. package/dist/exports/node.d.ts +2 -2
  769. package/dist/exports/node.d.ts.map +1 -1
  770. package/dist/exports/node.js +2 -2
  771. package/dist/exports/node.js.map +1 -1
  772. package/dist/exports/shared.d.ts +9 -4
  773. package/dist/exports/shared.d.ts.map +1 -1
  774. package/dist/exports/shared.js +8 -4
  775. package/dist/exports/shared.js.map +1 -1
  776. package/dist/fields/baseFields/authorship/index.d.ts +30 -0
  777. package/dist/fields/baseFields/authorship/index.d.ts.map +1 -0
  778. package/dist/fields/baseFields/authorship/index.js +151 -0
  779. package/dist/fields/baseFields/authorship/index.js.map +1 -0
  780. package/dist/fields/baseFields/authorship/types.d.ts +28 -0
  781. package/dist/fields/baseFields/authorship/types.d.ts.map +1 -0
  782. package/dist/fields/baseFields/authorship/types.js +10 -0
  783. package/dist/fields/baseFields/authorship/types.js.map +1 -0
  784. package/dist/fields/baseFields/slug/duplicateContext.d.ts +11 -0
  785. package/dist/fields/baseFields/slug/duplicateContext.d.ts.map +1 -0
  786. package/dist/fields/baseFields/slug/duplicateContext.js +21 -0
  787. package/dist/fields/baseFields/slug/duplicateContext.js.map +1 -0
  788. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts +23 -0
  789. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts.map +1 -0
  790. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js +65 -0
  791. package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js.map +1 -0
  792. package/dist/fields/baseFields/slug/generateSlug.d.ts +13 -8
  793. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  794. package/dist/fields/baseFields/slug/generateSlug.js +102 -45
  795. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  796. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts +18 -0
  797. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts.map +1 -0
  798. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js +20 -0
  799. package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js.map +1 -0
  800. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts +23 -0
  801. package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts.map +1 -0
  802. package/dist/fields/baseFields/slug/getSlugFallbackValue.js +24 -0
  803. package/dist/fields/baseFields/slug/getSlugFallbackValue.js.map +1 -0
  804. package/dist/fields/baseFields/slug/hasValue.d.ts +3 -0
  805. package/dist/fields/baseFields/slug/hasValue.d.ts.map +1 -0
  806. package/dist/fields/baseFields/slug/hasValue.js +3 -0
  807. package/dist/fields/baseFields/slug/hasValue.js.map +1 -0
  808. package/dist/fields/config/client.d.ts +1 -1
  809. package/dist/fields/config/client.d.ts.map +1 -1
  810. package/dist/fields/config/client.js +1 -1
  811. package/dist/fields/config/client.js.map +1 -1
  812. package/dist/fields/config/reservedFieldNames.js.map +1 -1
  813. package/dist/fields/config/sanitize.d.ts +6 -6
  814. package/dist/fields/config/sanitize.d.ts.map +1 -1
  815. package/dist/fields/config/sanitize.js +32 -22
  816. package/dist/fields/config/sanitize.js.map +1 -1
  817. package/dist/fields/config/types.d.ts +53 -50
  818. package/dist/fields/config/types.d.ts.map +1 -1
  819. package/dist/fields/config/types.js +1 -1
  820. package/dist/fields/config/types.js.map +1 -1
  821. package/dist/fields/hooks/beforeChange/index.d.ts +7 -1
  822. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  823. package/dist/fields/hooks/beforeChange/index.js +4 -2
  824. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  825. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
  826. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  827. package/dist/fields/hooks/beforeChange/promise.js +52 -9
  828. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  829. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
  830. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  831. package/dist/fields/hooks/beforeChange/traverseFields.js +3 -2
  832. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  833. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  834. package/dist/fields/hooks/beforeDuplicate/promise.js +4 -0
  835. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  836. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts +2 -1
  837. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts.map +1 -1
  838. package/dist/fields/hooks/beforeValidate/getFallbackValue.js +2 -2
  839. package/dist/fields/hooks/beforeValidate/getFallbackValue.js.map +1 -1
  840. package/dist/fields/hooks/beforeValidate/index.d.ts +6 -1
  841. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  842. package/dist/fields/hooks/beforeValidate/index.js +3 -1
  843. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  844. package/dist/fields/hooks/beforeValidate/promise.d.ts +6 -1
  845. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  846. package/dist/fields/hooks/beforeValidate/promise.js +24 -9
  847. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  848. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +6 -1
  849. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  850. package/dist/fields/hooks/beforeValidate/traverseFields.js +5 -1
  851. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  852. package/dist/fields/validations.d.ts.map +1 -1
  853. package/dist/fields/validations.js +17 -15
  854. package/dist/fields/validations.js.map +1 -1
  855. package/dist/globals/config/client.d.ts +1 -1
  856. package/dist/globals/config/client.d.ts.map +1 -1
  857. package/dist/globals/config/client.js.map +1 -1
  858. package/dist/globals/config/sanitize.d.ts +3 -7
  859. package/dist/globals/config/sanitize.d.ts.map +1 -1
  860. package/dist/globals/config/sanitize.js +78 -9
  861. package/dist/globals/config/sanitize.js.map +1 -1
  862. package/dist/globals/config/types.d.ts +41 -28
  863. package/dist/globals/config/types.d.ts.map +1 -1
  864. package/dist/globals/config/types.js.map +1 -1
  865. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  866. package/dist/globals/operations/countGlobalVersions.js +57 -55
  867. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  868. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  869. package/dist/globals/operations/docAccess.js +19 -25
  870. package/dist/globals/operations/docAccess.js.map +1 -1
  871. package/dist/globals/operations/findOne.d.ts.map +1 -1
  872. package/dist/globals/operations/findOne.js +169 -174
  873. package/dist/globals/operations/findOne.js.map +1 -1
  874. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  875. package/dist/globals/operations/findVersionByID.js +112 -108
  876. package/dist/globals/operations/findVersionByID.js.map +1 -1
  877. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  878. package/dist/globals/operations/findVersions.js +118 -109
  879. package/dist/globals/operations/findVersions.js.map +1 -1
  880. package/dist/globals/operations/inputSchemas.d.ts +365 -0
  881. package/dist/globals/operations/inputSchemas.d.ts.map +1 -0
  882. package/dist/globals/operations/inputSchemas.js +104 -0
  883. package/dist/globals/operations/inputSchemas.js.map +1 -0
  884. package/dist/globals/operations/local/countVersions.d.ts +2 -7
  885. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  886. package/dist/globals/operations/local/countVersions.js +6 -3
  887. package/dist/globals/operations/local/countVersions.js.map +1 -1
  888. package/dist/globals/operations/local/findOne.d.ts +8 -10
  889. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  890. package/dist/globals/operations/local/findOne.js +6 -3
  891. package/dist/globals/operations/local/findOne.js.map +1 -1
  892. package/dist/globals/operations/local/findVersionByID.d.ts +2 -7
  893. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  894. package/dist/globals/operations/local/findVersionByID.js +6 -3
  895. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  896. package/dist/globals/operations/local/findVersions.d.ts +2 -7
  897. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  898. package/dist/globals/operations/local/findVersions.js +6 -3
  899. package/dist/globals/operations/local/findVersions.js.map +1 -1
  900. package/dist/globals/operations/local/restoreVersion.d.ts +2 -7
  901. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  902. package/dist/globals/operations/local/restoreVersion.js +6 -3
  903. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  904. package/dist/globals/operations/local/update.d.ts +2 -7
  905. package/dist/globals/operations/local/update.d.ts.map +1 -1
  906. package/dist/globals/operations/local/update.js +6 -3
  907. package/dist/globals/operations/local/update.js.map +1 -1
  908. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  909. package/dist/globals/operations/restoreVersion.js +60 -14
  910. package/dist/globals/operations/restoreVersion.js.map +1 -1
  911. package/dist/globals/operations/update.d.ts.map +1 -1
  912. package/dist/globals/operations/update.js +106 -19
  913. package/dist/globals/operations/update.js.map +1 -1
  914. package/dist/hierarchy/addHierarchyToCollection.js +2 -0
  915. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  916. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  917. package/dist/hierarchy/hooks/collectionAfterDelete.js +1 -0
  918. package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -1
  919. package/dist/hierarchy/hooks/collectionBeforeChange.js +1 -0
  920. package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -1
  921. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  922. package/dist/hierarchy/hooks/collectionBeforeDelete.js +1 -0
  923. package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -1
  924. package/dist/index.bundled.d.ts +6075 -4445
  925. package/dist/index.d.ts +122 -61
  926. package/dist/index.d.ts.map +1 -1
  927. package/dist/index.js +88 -65
  928. package/dist/index.js.map +1 -1
  929. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  930. package/dist/kv/adapters/DatabaseKVAdapter.js +2 -1
  931. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  932. package/dist/locked-documents/config.d.ts.map +1 -1
  933. package/dist/locked-documents/config.js +1 -0
  934. package/dist/locked-documents/config.js.map +1 -1
  935. package/dist/preferences/config.d.ts.map +1 -1
  936. package/dist/preferences/config.js +3 -1
  937. package/dist/preferences/config.js.map +1 -1
  938. package/dist/query-presets/access.d.ts.map +1 -1
  939. package/dist/query-presets/access.js +2 -1
  940. package/dist/query-presets/access.js.map +1 -1
  941. package/dist/query-presets/config.d.ts.map +1 -1
  942. package/dist/query-presets/config.js +1 -0
  943. package/dist/query-presets/config.js.map +1 -1
  944. package/dist/query-presets/constraints.js +1 -1
  945. package/dist/query-presets/constraints.js.map +1 -1
  946. package/dist/query-presets/preventLockout.js +6 -3
  947. package/dist/query-presets/preventLockout.js.map +1 -1
  948. package/dist/queues/config/collection.d.ts.map +1 -1
  949. package/dist/queues/config/collection.js +44 -43
  950. package/dist/queues/config/collection.js.map +1 -1
  951. package/dist/queues/config/global.d.ts +5 -6
  952. package/dist/queues/config/global.d.ts.map +1 -1
  953. package/dist/queues/config/global.js +2 -1
  954. package/dist/queues/config/global.js.map +1 -1
  955. package/dist/queues/config/types/index.d.ts +33 -25
  956. package/dist/queues/config/types/index.d.ts.map +1 -1
  957. package/dist/queues/config/types/index.js.map +1 -1
  958. package/dist/queues/config/types/taskTypes.d.ts +4 -7
  959. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  960. package/dist/queues/config/types/taskTypes.js.map +1 -1
  961. package/dist/queues/config/types/workflowJSONTypes.d.ts +10 -9
  962. package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -1
  963. package/dist/queues/config/types/workflowJSONTypes.js.map +1 -1
  964. package/dist/queues/config/types/workflowTypes.d.ts +11 -58
  965. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
  966. package/dist/queues/config/types/workflowTypes.js.map +1 -1
  967. package/dist/queues/endpoints/handleSchedules.d.ts.map +1 -1
  968. package/dist/queues/endpoints/handleSchedules.js +3 -2
  969. package/dist/queues/endpoints/handleSchedules.js.map +1 -1
  970. package/dist/queues/endpoints/run.d.ts.map +1 -1
  971. package/dist/queues/endpoints/run.js +2 -1
  972. package/dist/queues/endpoints/run.js.map +1 -1
  973. package/dist/queues/errors/handleTaskError.js +4 -4
  974. package/dist/queues/errors/handleTaskError.js.map +1 -1
  975. package/dist/queues/errors/handleWorkflowError.js +1 -1
  976. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  977. package/dist/queues/errors/index.d.ts +6 -0
  978. package/dist/queues/errors/index.d.ts.map +1 -1
  979. package/dist/queues/errors/index.js +5 -0
  980. package/dist/queues/errors/index.js.map +1 -1
  981. package/dist/queues/localAPI.d.ts +10 -63
  982. package/dist/queues/localAPI.d.ts.map +1 -1
  983. package/dist/queues/localAPI.js +87 -78
  984. package/dist/queues/localAPI.js.map +1 -1
  985. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts +4 -4
  986. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts.map +1 -1
  987. package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.js.map +1 -1
  988. package/dist/queues/operations/handleSchedules/index.d.ts +1 -1
  989. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  990. package/dist/queues/operations/handleSchedules/index.js +2 -1
  991. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  992. package/dist/queues/operations/runJobs/heartbeat.d.ts +13 -0
  993. package/dist/queues/operations/runJobs/heartbeat.d.ts.map +1 -0
  994. package/dist/queues/operations/runJobs/heartbeat.js +66 -0
  995. package/dist/queues/operations/runJobs/heartbeat.js.map +1 -0
  996. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  997. package/dist/queues/operations/runJobs/index.js +133 -84
  998. package/dist/queues/operations/runJobs/index.js.map +1 -1
  999. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  1000. package/dist/queues/operations/runJobs/runJSONJob/index.js +6 -3
  1001. package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -1
  1002. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +5 -5
  1003. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  1004. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +2 -1
  1005. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  1006. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +39 -8
  1007. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  1008. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -1
  1009. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  1010. package/dist/queues/operations/runJobs/runJob/index.js +4 -4
  1011. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
  1012. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  1013. package/dist/queues/utilities/updateJob.js +3 -0
  1014. package/dist/queues/utilities/updateJob.js.map +1 -1
  1015. package/dist/types/constants.d.ts +21 -0
  1016. package/dist/types/constants.d.ts.map +1 -1
  1017. package/dist/types/constants.js +23 -0
  1018. package/dist/types/constants.js.map +1 -1
  1019. package/dist/types/index.d.ts +7 -7
  1020. package/dist/types/index.d.ts.map +1 -1
  1021. package/dist/types/index.js.map +1 -1
  1022. package/dist/types/operations.d.ts +9 -0
  1023. package/dist/types/operations.d.ts.map +1 -0
  1024. package/dist/types/operations.js +3 -0
  1025. package/dist/types/operations.js.map +1 -0
  1026. package/dist/uploads/assertClientUploadAccess.d.ts +7 -0
  1027. package/dist/uploads/assertClientUploadAccess.d.ts.map +1 -0
  1028. package/dist/uploads/assertClientUploadAccess.js +29 -0
  1029. package/dist/uploads/assertClientUploadAccess.js.map +1 -0
  1030. package/dist/uploads/assertClientUploadAllowed.d.ts +10 -0
  1031. package/dist/uploads/assertClientUploadAllowed.d.ts.map +1 -0
  1032. package/dist/uploads/assertClientUploadAllowed.js +41 -0
  1033. package/dist/uploads/assertClientUploadAllowed.js.map +1 -0
  1034. package/dist/uploads/checkFileAccess.js +1 -0
  1035. package/dist/uploads/checkFileAccess.js.map +1 -1
  1036. package/dist/uploads/checkFileRestrictions.d.ts +11 -1
  1037. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  1038. package/dist/uploads/checkFileRestrictions.js +91 -26
  1039. package/dist/uploads/checkFileRestrictions.js.map +1 -1
  1040. package/dist/uploads/clientUploadReceipt.d.ts +29 -0
  1041. package/dist/uploads/clientUploadReceipt.d.ts.map +1 -0
  1042. package/dist/uploads/clientUploadReceipt.js +76 -0
  1043. package/dist/uploads/clientUploadReceipt.js.map +1 -0
  1044. package/dist/uploads/cropImage.d.ts +1 -1
  1045. package/dist/uploads/cropImage.d.ts.map +1 -1
  1046. package/dist/uploads/cropImage.js +2 -5
  1047. package/dist/uploads/cropImage.js.map +1 -1
  1048. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  1049. package/dist/uploads/deleteAssociatedFiles.js +57 -9
  1050. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  1051. package/dist/uploads/detectSvgFromXml.d.ts +1 -4
  1052. package/dist/uploads/detectSvgFromXml.d.ts.map +1 -1
  1053. package/dist/uploads/detectSvgFromXml.js +2 -41
  1054. package/dist/uploads/detectSvgFromXml.js.map +1 -1
  1055. package/dist/uploads/docWithFilenameExists.d.ts +2 -1
  1056. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  1057. package/dist/uploads/docWithFilenameExists.js +27 -10
  1058. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  1059. package/dist/uploads/downloadFileToBuffer.d.ts +11 -0
  1060. package/dist/uploads/downloadFileToBuffer.d.ts.map +1 -0
  1061. package/dist/uploads/downloadFileToBuffer.js +72 -0
  1062. package/dist/uploads/downloadFileToBuffer.js.map +1 -0
  1063. package/dist/uploads/endpoints/getFile.d.ts.map +1 -1
  1064. package/dist/uploads/endpoints/getFile.js +5 -3
  1065. package/dist/uploads/endpoints/getFile.js.map +1 -1
  1066. package/dist/uploads/endpoints/index.js +2 -2
  1067. package/dist/uploads/endpoints/index.js.map +1 -1
  1068. package/dist/uploads/endpoints/pasteURL.d.ts +3 -0
  1069. package/dist/uploads/endpoints/pasteURL.d.ts.map +1 -0
  1070. package/dist/uploads/endpoints/{getFileFromURL.js → pasteURL.js} +19 -55
  1071. package/dist/uploads/endpoints/pasteURL.js.map +1 -0
  1072. package/dist/uploads/endpoints/uploadInstructions.d.ts +15 -0
  1073. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -0
  1074. package/dist/uploads/endpoints/uploadInstructions.js +87 -0
  1075. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -0
  1076. package/dist/uploads/fetchAPI-multipart/handlers.d.ts +2 -2
  1077. package/dist/uploads/fetchAPI-multipart/handlers.d.ts.map +1 -1
  1078. package/dist/uploads/fetchAPI-multipart/handlers.js +18 -5
  1079. package/dist/uploads/fetchAPI-multipart/handlers.js.map +1 -1
  1080. package/dist/uploads/fetchAPI-multipart/index.d.ts.map +1 -1
  1081. package/dist/uploads/fetchAPI-multipart/index.js +24 -2
  1082. package/dist/uploads/fetchAPI-multipart/index.js.map +1 -1
  1083. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js +1 -2
  1084. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  1085. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts +0 -6
  1086. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  1087. package/dist/uploads/fetchAPI-multipart/processMultipart.js +146 -130
  1088. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  1089. package/dist/uploads/fetchWithRedirects.d.ts +19 -0
  1090. package/dist/uploads/fetchWithRedirects.d.ts.map +1 -0
  1091. package/dist/uploads/fetchWithRedirects.js +53 -0
  1092. package/dist/uploads/fetchWithRedirects.js.map +1 -0
  1093. package/dist/uploads/generateFileData.d.ts +31 -1
  1094. package/dist/uploads/generateFileData.d.ts.map +1 -1
  1095. package/dist/uploads/generateFileData.js +117 -65
  1096. package/dist/uploads/generateFileData.js.map +1 -1
  1097. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  1098. package/dist/uploads/getBaseFields.js +3 -1
  1099. package/dist/uploads/getBaseFields.js.map +1 -1
  1100. package/dist/uploads/getFileContentRequirement.d.ts +32 -0
  1101. package/dist/uploads/getFileContentRequirement.d.ts.map +1 -0
  1102. package/dist/uploads/getFileContentRequirement.js +40 -0
  1103. package/dist/uploads/getFileContentRequirement.js.map +1 -0
  1104. package/dist/uploads/getFileFromUploadInstructions.d.ts +8 -0
  1105. package/dist/uploads/getFileFromUploadInstructions.d.ts.map +1 -0
  1106. package/dist/uploads/getFileFromUploadInstructions.js +279 -0
  1107. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -0
  1108. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  1109. package/dist/uploads/getFileTypeFallback.js +3 -1
  1110. package/dist/uploads/getFileTypeFallback.js.map +1 -1
  1111. package/dist/uploads/getFileTypeIdentity.d.ts +19 -0
  1112. package/dist/uploads/getFileTypeIdentity.d.ts.map +1 -0
  1113. package/dist/uploads/getFileTypeIdentity.js +34 -0
  1114. package/dist/uploads/getFileTypeIdentity.js.map +1 -0
  1115. package/dist/uploads/getImageSize.d.ts +12 -1
  1116. package/dist/uploads/getImageSize.d.ts.map +1 -1
  1117. package/dist/uploads/getImageSize.js +20 -18
  1118. package/dist/uploads/getImageSize.js.map +1 -1
  1119. package/dist/uploads/hasCropOrResizeEdit.d.ts +7 -0
  1120. package/dist/uploads/hasCropOrResizeEdit.d.ts.map +1 -0
  1121. package/dist/uploads/hasCropOrResizeEdit.js +6 -0
  1122. package/dist/uploads/hasCropOrResizeEdit.js.map +1 -0
  1123. package/dist/uploads/hasFullFileContents.d.ts +13 -0
  1124. package/dist/uploads/hasFullFileContents.d.ts.map +1 -0
  1125. package/dist/uploads/hasFullFileContents.js +12 -0
  1126. package/dist/uploads/hasFullFileContents.js.map +1 -0
  1127. package/dist/uploads/image-resizing/createImageSizes.d.ts.map +1 -1
  1128. package/dist/uploads/image-resizing/createImageSizes.js +2 -5
  1129. package/dist/uploads/image-resizing/createImageSizes.js.map +1 -1
  1130. package/dist/uploads/isAnimatedImage.d.ts +8 -0
  1131. package/dist/uploads/isAnimatedImage.d.ts.map +1 -0
  1132. package/dist/uploads/isAnimatedImage.js +22 -0
  1133. package/dist/uploads/isAnimatedImage.js.map +1 -0
  1134. package/dist/uploads/isProcessableImage.d.ts +2 -0
  1135. package/dist/uploads/isProcessableImage.d.ts.map +1 -0
  1136. package/dist/uploads/isProcessableImage.js +7 -0
  1137. package/dist/uploads/isProcessableImage.js.map +1 -0
  1138. package/dist/uploads/probeImageSize.d.ts +39 -0
  1139. package/dist/uploads/probeImageSize.d.ts.map +1 -0
  1140. package/dist/uploads/probeImageSize.js +374 -0
  1141. package/dist/uploads/probeImageSize.js.map +1 -0
  1142. package/dist/uploads/resolveURLUploadInput.d.ts +25 -0
  1143. package/dist/uploads/resolveURLUploadInput.d.ts.map +1 -0
  1144. package/dist/uploads/resolveURLUploadInput.js +53 -0
  1145. package/dist/uploads/resolveURLUploadInput.js.map +1 -0
  1146. package/dist/uploads/safeFetch.d.ts.map +1 -1
  1147. package/dist/uploads/safeFetch.js +3 -2
  1148. package/dist/uploads/safeFetch.js.map +1 -1
  1149. package/dist/uploads/sanitizeUploadData.d.ts +26 -0
  1150. package/dist/uploads/sanitizeUploadData.d.ts.map +1 -0
  1151. package/dist/uploads/sanitizeUploadData.js +161 -0
  1152. package/dist/uploads/sanitizeUploadData.js.map +1 -0
  1153. package/dist/uploads/stagedUpload.d.ts +27 -0
  1154. package/dist/uploads/stagedUpload.d.ts.map +1 -0
  1155. package/dist/uploads/stagedUpload.js +197 -0
  1156. package/dist/uploads/stagedUpload.js.map +1 -0
  1157. package/dist/uploads/types.d.ts +101 -10
  1158. package/dist/uploads/types.d.ts.map +1 -1
  1159. package/dist/uploads/types.js.map +1 -1
  1160. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  1161. package/dist/uploads/unlinkTempFiles.js +6 -2
  1162. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  1163. package/dist/uploads/uploadContentSecurityPolicy.d.ts +2 -0
  1164. package/dist/uploads/uploadContentSecurityPolicy.d.ts.map +1 -0
  1165. package/dist/uploads/uploadContentSecurityPolicy.js +3 -0
  1166. package/dist/uploads/uploadContentSecurityPolicy.js.map +1 -0
  1167. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  1168. package/dist/uploads/uploadFiles.js +7 -2
  1169. package/dist/uploads/uploadFiles.js.map +1 -1
  1170. package/dist/uploads/validateISOBaseMediaFile.d.ts +4 -0
  1171. package/dist/uploads/validateISOBaseMediaFile.d.ts.map +1 -0
  1172. package/dist/uploads/validateISOBaseMediaFile.js +91 -0
  1173. package/dist/uploads/validateISOBaseMediaFile.js.map +1 -0
  1174. package/dist/uploads/validateSvg.d.ts +10 -4
  1175. package/dist/uploads/validateSvg.d.ts.map +1 -1
  1176. package/dist/uploads/validateSvg.js +280 -40
  1177. package/dist/uploads/validateSvg.js.map +1 -1
  1178. package/dist/uploads/validateUploadFilename.d.ts +3 -0
  1179. package/dist/uploads/validateUploadFilename.d.ts.map +1 -0
  1180. package/dist/uploads/validateUploadFilename.js +13 -0
  1181. package/dist/uploads/validateUploadFilename.js.map +1 -0
  1182. package/dist/uploads/validateUploadURL.d.ts +13 -0
  1183. package/dist/uploads/validateUploadURL.d.ts.map +1 -0
  1184. package/dist/uploads/validateUploadURL.js +37 -0
  1185. package/dist/uploads/validateUploadURL.js.map +1 -0
  1186. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  1187. package/dist/utilities/addDataAndFileToRequest.js +14 -45
  1188. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  1189. package/dist/utilities/appendNonTrashedFilter.d.ts +1 -1
  1190. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  1191. package/dist/utilities/appendNonTrashedFilter.js.map +1 -1
  1192. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  1193. package/dist/utilities/canAccessAdmin.js +2 -0
  1194. package/dist/utilities/canAccessAdmin.js.map +1 -1
  1195. package/dist/utilities/checkDocumentLockStatus.d.ts +19 -0
  1196. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  1197. package/dist/utilities/checkDocumentLockStatus.js +74 -0
  1198. package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
  1199. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  1200. package/dist/utilities/configToJSONSchema.js +0 -9
  1201. package/dist/utilities/configToJSONSchema.js.map +1 -1
  1202. package/dist/utilities/createPayloadRequest.d.ts +12 -10
  1203. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  1204. package/dist/utilities/createPayloadRequest.js +98 -81
  1205. package/dist/utilities/createPayloadRequest.js.map +1 -1
  1206. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts +14 -0
  1207. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts.map +1 -0
  1208. package/dist/utilities/createPayloadRequestFromWebRequest.js +95 -0
  1209. package/dist/utilities/createPayloadRequestFromWebRequest.js.map +1 -0
  1210. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  1211. package/dist/utilities/deepCopyObject.js +110 -19
  1212. package/dist/utilities/deepCopyObject.js.map +1 -1
  1213. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts +30 -0
  1214. package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts.map +1 -0
  1215. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js +71 -0
  1216. package/dist/utilities/entityInputSchema/filterFieldsByAccess.js.map +1 -0
  1217. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts +13 -0
  1218. package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts.map +1 -0
  1219. package/dist/utilities/entityInputSchema/getEntityInputSchema.js +66 -0
  1220. package/dist/utilities/entityInputSchema/getEntityInputSchema.js.map +1 -0
  1221. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts +10 -0
  1222. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts.map +1 -0
  1223. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js +384 -0
  1224. package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js.map +1 -0
  1225. package/dist/utilities/entityInputSchema/types.d.ts +16 -0
  1226. package/dist/utilities/entityInputSchema/types.d.ts.map +1 -0
  1227. package/dist/utilities/entityInputSchema/types.js +3 -0
  1228. package/dist/utilities/entityInputSchema/types.js.map +1 -0
  1229. package/dist/utilities/entityInputSchema/validateEntityData.d.ts +13 -0
  1230. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -0
  1231. package/dist/utilities/entityInputSchema/validateEntityData.js +138 -0
  1232. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -0
  1233. package/dist/utilities/fieldPath.d.ts +13 -0
  1234. package/dist/utilities/fieldPath.d.ts.map +1 -0
  1235. package/dist/utilities/fieldPath.js +51 -0
  1236. package/dist/utilities/fieldPath.js.map +1 -0
  1237. package/dist/utilities/fieldValueExists.d.ts +29 -0
  1238. package/dist/utilities/fieldValueExists.d.ts.map +1 -0
  1239. package/dist/utilities/fieldValueExists.js +37 -0
  1240. package/dist/utilities/fieldValueExists.js.map +1 -0
  1241. package/dist/utilities/formatAdminURL.d.ts +1 -0
  1242. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  1243. package/dist/utilities/formatAdminURL.js +22 -4
  1244. package/dist/utilities/formatAdminURL.js.map +1 -1
  1245. package/dist/utilities/getEntityPermissions/entityDocExists.d.ts.map +1 -1
  1246. package/dist/utilities/getEntityPermissions/entityDocExists.js +36 -5
  1247. package/dist/utilities/getEntityPermissions/entityDocExists.js.map +1 -1
  1248. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  1249. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +1 -0
  1250. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  1251. package/dist/utilities/getNextVersion.d.ts +7 -0
  1252. package/dist/utilities/getNextVersion.d.ts.map +1 -0
  1253. package/dist/utilities/getNextVersion.js +20 -0
  1254. package/dist/utilities/getNextVersion.js.map +1 -0
  1255. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  1256. package/dist/utilities/getObjectDotNotation.js +7 -1
  1257. package/dist/utilities/getObjectDotNotation.js.map +1 -1
  1258. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  1259. package/dist/utilities/getRequestOrigin.js.map +1 -1
  1260. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  1261. package/dist/utilities/getSafeRedirect.js +16 -9
  1262. package/dist/utilities/getSafeRedirect.js.map +1 -1
  1263. package/dist/utilities/getTopLevelFieldNames.d.ts +2 -0
  1264. package/dist/utilities/getTopLevelFieldNames.d.ts.map +1 -0
  1265. package/dist/utilities/getTopLevelFieldNames.js +3 -0
  1266. package/dist/utilities/getTopLevelFieldNames.js.map +1 -0
  1267. package/dist/utilities/getUniqueFieldValue.d.ts +28 -0
  1268. package/dist/utilities/getUniqueFieldValue.d.ts.map +1 -0
  1269. package/dist/utilities/getUniqueFieldValue.js +27 -0
  1270. package/dist/utilities/getUniqueFieldValue.js.map +1 -0
  1271. package/dist/utilities/getVirtualFieldNames.d.ts +14 -0
  1272. package/dist/utilities/getVirtualFieldNames.d.ts.map +1 -0
  1273. package/dist/utilities/getVirtualFieldNames.js +35 -0
  1274. package/dist/utilities/getVirtualFieldNames.js.map +1 -0
  1275. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  1276. package/dist/utilities/handleEndpoints.js +8 -7
  1277. package/dist/utilities/handleEndpoints.js.map +1 -1
  1278. package/dist/utilities/headersWithCors.js +1 -1
  1279. package/dist/utilities/headersWithCors.js.map +1 -1
  1280. package/dist/utilities/killTransaction.d.ts +7 -0
  1281. package/dist/utilities/killTransaction.d.ts.map +1 -1
  1282. package/dist/utilities/killTransaction.js +7 -0
  1283. package/dist/utilities/killTransaction.js.map +1 -1
  1284. package/dist/utilities/logError.d.ts.map +1 -1
  1285. package/dist/utilities/logError.js +5 -2
  1286. package/dist/utilities/logError.js.map +1 -1
  1287. package/dist/utilities/nextJsDevReloadStrategy.d.ts +7 -0
  1288. package/dist/utilities/nextJsDevReloadStrategy.d.ts.map +1 -0
  1289. package/dist/utilities/nextJsDevReloadStrategy.js +59 -0
  1290. package/dist/utilities/nextJsDevReloadStrategy.js.map +1 -0
  1291. package/dist/utilities/parseDocumentID.d.ts +4 -1
  1292. package/dist/utilities/parseDocumentID.d.ts.map +1 -1
  1293. package/dist/utilities/parseDocumentID.js +7 -1
  1294. package/dist/utilities/parseDocumentID.js.map +1 -1
  1295. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  1296. package/dist/utilities/parseParams/index.js +3 -1
  1297. package/dist/utilities/parseParams/index.js.map +1 -1
  1298. package/dist/utilities/sanitizeUploadPrefix.d.ts +5 -0
  1299. package/dist/utilities/sanitizeUploadPrefix.d.ts.map +1 -0
  1300. package/dist/utilities/sanitizeUploadPrefix.js +18 -0
  1301. package/dist/utilities/sanitizeUploadPrefix.js.map +1 -0
  1302. package/dist/utilities/sharedInputSchemas.d.ts +52 -0
  1303. package/dist/utilities/sharedInputSchemas.d.ts.map +1 -0
  1304. package/dist/utilities/sharedInputSchemas.js +101 -0
  1305. package/dist/utilities/sharedInputSchemas.js.map +1 -0
  1306. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts +4 -0
  1307. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts.map +1 -0
  1308. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js +261 -0
  1309. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -0
  1310. package/dist/utilities/telemetry/featureInfo/types.d.ts +63 -0
  1311. package/dist/utilities/telemetry/featureInfo/types.d.ts.map +1 -0
  1312. package/dist/utilities/telemetry/featureInfo/types.js +3 -0
  1313. package/dist/utilities/telemetry/featureInfo/types.js.map +1 -0
  1314. package/dist/utilities/telemetry/getProjectContext.d.ts +16 -0
  1315. package/dist/utilities/telemetry/getProjectContext.d.ts.map +1 -0
  1316. package/dist/utilities/telemetry/getProjectContext.js +43 -0
  1317. package/dist/utilities/telemetry/getProjectContext.js.map +1 -0
  1318. package/dist/utilities/telemetry/index.d.ts +6 -1
  1319. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  1320. package/dist/utilities/telemetry/index.js +21 -1
  1321. package/dist/utilities/telemetry/index.js.map +1 -1
  1322. package/dist/utilities/transformPointDataToPayload.d.ts +7 -0
  1323. package/dist/utilities/transformPointDataToPayload.d.ts.map +1 -0
  1324. package/dist/utilities/transformPointDataToPayload.js +28 -0
  1325. package/dist/utilities/transformPointDataToPayload.js.map +1 -0
  1326. package/dist/utilities/traverseFields.d.ts.map +1 -1
  1327. package/dist/utilities/traverseFields.js +25 -36
  1328. package/dist/utilities/traverseFields.js.map +1 -1
  1329. package/dist/utilities/unflatten.d.ts.map +1 -1
  1330. package/dist/utilities/unflatten.js +21 -9
  1331. package/dist/utilities/unflatten.js.map +1 -1
  1332. package/dist/utilities/unflattenData.d.ts +3 -0
  1333. package/dist/utilities/unflattenData.d.ts.map +1 -0
  1334. package/dist/utilities/unflattenData.js +14 -0
  1335. package/dist/utilities/unflattenData.js.map +1 -0
  1336. package/dist/utilities/zod.d.ts +5 -0
  1337. package/dist/utilities/zod.d.ts.map +1 -0
  1338. package/dist/utilities/zod.js +21 -0
  1339. package/dist/utilities/zod.js.map +1 -0
  1340. package/dist/versions/allLocalesPublicationStatus.d.ts +38 -0
  1341. package/dist/versions/allLocalesPublicationStatus.d.ts.map +1 -0
  1342. package/dist/versions/allLocalesPublicationStatus.js +57 -0
  1343. package/dist/versions/allLocalesPublicationStatus.js.map +1 -0
  1344. package/dist/versions/deleteCollectionVersions.d.ts +11 -1
  1345. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  1346. package/dist/versions/deleteCollectionVersions.js +10 -3
  1347. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  1348. package/dist/versions/deleteScheduledPublishJobs.d.ts +5 -1
  1349. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  1350. package/dist/versions/deleteScheduledPublishJobs.js +11 -5
  1351. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  1352. package/dist/versions/drafts/appendVersionToQueryKey.d.ts +1 -0
  1353. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  1354. package/dist/versions/drafts/appendVersionToQueryKey.js +6 -12
  1355. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  1356. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  1357. package/dist/versions/getLatestGlobalVersion.js +10 -2
  1358. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  1359. package/dist/versions/getRestoredStatusesToAuthorize.d.ts +9 -0
  1360. package/dist/versions/getRestoredStatusesToAuthorize.d.ts.map +1 -0
  1361. package/dist/versions/getRestoredStatusesToAuthorize.js +22 -0
  1362. package/dist/versions/getRestoredStatusesToAuthorize.js.map +1 -0
  1363. package/dist/versions/isInheritedReadVersionsAccess.d.ts +6 -0
  1364. package/dist/versions/isInheritedReadVersionsAccess.d.ts.map +1 -0
  1365. package/dist/versions/isInheritedReadVersionsAccess.js +30 -0
  1366. package/dist/versions/isInheritedReadVersionsAccess.js.map +1 -0
  1367. package/dist/versions/schedule/job.d.ts +2 -2
  1368. package/dist/versions/schedule/job.d.ts.map +1 -1
  1369. package/dist/versions/schedule/job.js +12 -8
  1370. package/dist/versions/schedule/job.js.map +1 -1
  1371. package/dist/versions/schedule/types.d.ts +5 -1
  1372. package/dist/versions/schedule/types.d.ts.map +1 -1
  1373. package/dist/versions/schedule/types.js.map +1 -1
  1374. package/package.json +28 -10
  1375. package/skills/payload/SKILL.md +544 -0
  1376. package/skills/payload/reference/ACCESS-CONTROL-ADVANCED.md +718 -0
  1377. package/skills/payload/reference/ACCESS-CONTROL.md +700 -0
  1378. package/skills/payload/reference/ADAPTERS.md +312 -0
  1379. package/skills/payload/reference/ADVANCED.md +393 -0
  1380. package/skills/payload/reference/COLLECTIONS.md +336 -0
  1381. package/skills/payload/reference/ENDPOINTS.md +650 -0
  1382. package/skills/payload/reference/FIELD-TYPE-GUARDS.md +553 -0
  1383. package/skills/payload/reference/FIELDS.md +748 -0
  1384. package/skills/payload/reference/HOOKS.md +186 -0
  1385. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +1445 -0
  1386. package/skills/payload/reference/QUERIES.md +282 -0
  1387. package/dist/auth/cookies.spec.js +0 -34
  1388. package/dist/auth/cookies.spec.js.map +0 -1
  1389. package/dist/auth/strategies/local/authenticate.spec.js +0 -83
  1390. package/dist/auth/strategies/local/authenticate.spec.js.map +0 -1
  1391. package/dist/bin/build.d.ts.map +0 -1
  1392. package/dist/bin/build.js.map +0 -1
  1393. package/dist/bin/build.spec.js +0 -594
  1394. package/dist/bin/build.spec.js.map +0 -1
  1395. package/dist/bin/frameworkConventions.d.ts.map +0 -1
  1396. package/dist/bin/frameworkConventions.js.map +0 -1
  1397. package/dist/bin/generateImportMap/generateImportMap.spec.js +0 -176
  1398. package/dist/bin/generateImportMap/generateImportMap.spec.js.map +0 -1
  1399. package/dist/bin/generateImportMap/index.d.ts.map +0 -1
  1400. package/dist/bin/generateImportMap/index.js.map +0 -1
  1401. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +0 -1
  1402. package/dist/bin/generateImportMap/iterateCollections.js.map +0 -1
  1403. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +0 -1
  1404. package/dist/bin/generateImportMap/iterateConfig.js.map +0 -1
  1405. package/dist/bin/generateImportMap/iterateFields.d.ts.map +0 -1
  1406. package/dist/bin/generateImportMap/iterateFields.js.map +0 -1
  1407. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +0 -1
  1408. package/dist/bin/generateImportMap/iterateGlobals.js.map +0 -1
  1409. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +0 -1
  1410. package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +0 -1
  1411. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +0 -1
  1412. package/dist/bin/generateImportMap/utilities/getFromImportMap.js.map +0 -1
  1413. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +0 -1
  1414. package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +0 -1
  1415. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.d.ts.map +0 -1
  1416. package/dist/bin/generateImportMap/utilities/parsePayloadComponent.js.map +0 -1
  1417. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +0 -1
  1418. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +0 -1
  1419. package/dist/bin/generateTypes.d.ts +0 -6
  1420. package/dist/bin/generateTypes.d.ts.map +0 -1
  1421. package/dist/bin/generateTypes.js.map +0 -1
  1422. package/dist/bin/index.d.ts +0 -2
  1423. package/dist/bin/index.d.ts.map +0 -1
  1424. package/dist/bin/index.js +0 -200
  1425. package/dist/bin/index.js.map +0 -1
  1426. package/dist/bin/info.d.ts +0 -2
  1427. package/dist/bin/info.d.ts.map +0 -1
  1428. package/dist/bin/info.js +0 -56
  1429. package/dist/bin/info.js.map +0 -1
  1430. package/dist/bin/loadEnv.d.ts.map +0 -1
  1431. package/dist/bin/loadEnv.js.map +0 -1
  1432. package/dist/bin/migrate.d.ts +0 -15
  1433. package/dist/bin/migrate.d.ts.map +0 -1
  1434. package/dist/bin/migrate.js +0 -102
  1435. package/dist/bin/migrate.js.map +0 -1
  1436. package/dist/collections/config/defaults.spec.js +0 -47
  1437. package/dist/collections/config/defaults.spec.js.map +0 -1
  1438. package/dist/collections/config/sanitize.spec.js +0 -120
  1439. package/dist/collections/config/sanitize.spec.js.map +0 -1
  1440. package/dist/collections/config/useAsTitle.spec.js +0 -187
  1441. package/dist/collections/config/useAsTitle.spec.js.map +0 -1
  1442. package/dist/database/defaultUpdateJobs.d.ts +0 -3
  1443. package/dist/database/defaultUpdateJobs.d.ts.map +0 -1
  1444. package/dist/database/defaultUpdateJobs.js +0 -41
  1445. package/dist/database/defaultUpdateJobs.js.map +0 -1
  1446. package/dist/database/migrations/findMigrationDir.spec.js +0 -47
  1447. package/dist/database/migrations/findMigrationDir.spec.js.map +0 -1
  1448. package/dist/fields/baseFields/slug/countVersions.d.ts +0 -13
  1449. package/dist/fields/baseFields/slug/countVersions.d.ts.map +0 -1
  1450. package/dist/fields/baseFields/slug/countVersions.js +0 -27
  1451. package/dist/fields/baseFields/slug/countVersions.js.map +0 -1
  1452. package/dist/fields/config/reservedFieldNames.spec.js +0 -149
  1453. package/dist/fields/config/reservedFieldNames.spec.js.map +0 -1
  1454. package/dist/fields/config/sanitize.spec.js +0 -745
  1455. package/dist/fields/config/sanitize.spec.js.map +0 -1
  1456. package/dist/fields/isFieldDisabled.spec.js +0 -134
  1457. package/dist/fields/isFieldDisabled.spec.js.map +0 -1
  1458. package/dist/fields/validations.spec.js +0 -990
  1459. package/dist/fields/validations.spec.js.map +0 -1
  1460. package/dist/globals/config/sanitize.spec.js +0 -43
  1461. package/dist/globals/config/sanitize.spec.js.map +0 -1
  1462. package/dist/hierarchy/utils/getLocalizedValue.spec.js +0 -250
  1463. package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +0 -1
  1464. package/dist/locked-documents/config.spec.js +0 -298
  1465. package/dist/locked-documents/config.spec.js.map +0 -1
  1466. package/dist/uploads/checkFileAccess.spec.js +0 -109
  1467. package/dist/uploads/checkFileAccess.spec.js.map +0 -1
  1468. package/dist/uploads/endpoints/getFileFromURL.d.ts +0 -3
  1469. package/dist/uploads/endpoints/getFileFromURL.d.ts.map +0 -1
  1470. package/dist/uploads/endpoints/getFileFromURL.js.map +0 -1
  1471. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js +0 -29
  1472. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js.map +0 -1
  1473. package/dist/uploads/getExternalFile.d.ts +0 -10
  1474. package/dist/uploads/getExternalFile.d.ts.map +0 -1
  1475. package/dist/uploads/getExternalFile.js +0 -73
  1476. package/dist/uploads/getExternalFile.js.map +0 -1
  1477. package/dist/uploads/getSafeFilename.spec.js +0 -274
  1478. package/dist/uploads/getSafeFilename.spec.js.map +0 -1
  1479. package/dist/uploads/matchMimeType.spec.js +0 -66
  1480. package/dist/uploads/matchMimeType.spec.js.map +0 -1
  1481. package/dist/uploads/mimeTypeValidator.spec.js +0 -84
  1482. package/dist/uploads/mimeTypeValidator.spec.js.map +0 -1
  1483. package/dist/uploads/tempFile.d.ts +0 -7
  1484. package/dist/uploads/tempFile.d.ts.map +0 -1
  1485. package/dist/uploads/tempFile.js +0 -39
  1486. package/dist/uploads/tempFile.js.map +0 -1
  1487. package/dist/utilities/addDataAndFileToRequest.spec.js +0 -41
  1488. package/dist/utilities/addDataAndFileToRequest.spec.js.map +0 -1
  1489. package/dist/utilities/addSelectGenericsToGeneratedTypes.spec.js +0 -563
  1490. package/dist/utilities/addSelectGenericsToGeneratedTypes.spec.js.map +0 -1
  1491. package/dist/utilities/combineWhereConstraints.spec.js +0 -131
  1492. package/dist/utilities/combineWhereConstraints.spec.js.map +0 -1
  1493. package/dist/utilities/configToJSONSchema.spec.js +0 -1162
  1494. package/dist/utilities/configToJSONSchema.spec.js.map +0 -1
  1495. package/dist/utilities/createLocalReq.d.ts +0 -15
  1496. package/dist/utilities/createLocalReq.d.ts.map +0 -1
  1497. package/dist/utilities/createLocalReq.js +0 -110
  1498. package/dist/utilities/createLocalReq.js.map +0 -1
  1499. package/dist/utilities/createLocalReq.spec.js +0 -125
  1500. package/dist/utilities/createLocalReq.spec.js.map +0 -1
  1501. package/dist/utilities/filterDataToSelectedLocales.spec.js +0 -529
  1502. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +0 -1
  1503. package/dist/utilities/flattenTopLevelFields.spec.js +0 -659
  1504. package/dist/utilities/flattenTopLevelFields.spec.js.map +0 -1
  1505. package/dist/utilities/formatAdminURL.spec.js +0 -168
  1506. package/dist/utilities/formatAdminURL.spec.js.map +0 -1
  1507. package/dist/utilities/formatErrors.spec.js +0 -101
  1508. package/dist/utilities/formatErrors.spec.js.map +0 -1
  1509. package/dist/utilities/formatLabels.spec.js +0 -38
  1510. package/dist/utilities/formatLabels.spec.js.map +0 -1
  1511. package/dist/utilities/getFieldByPath.spec.js +0 -157
  1512. package/dist/utilities/getFieldByPath.spec.js.map +0 -1
  1513. package/dist/utilities/getFieldPermissions.spec.js +0 -78
  1514. package/dist/utilities/getFieldPermissions.spec.js.map +0 -1
  1515. package/dist/utilities/getRequestOrigin.spec.js +0 -151
  1516. package/dist/utilities/getRequestOrigin.spec.js.map +0 -1
  1517. package/dist/utilities/getSafeRedirect.spec.js +0 -84
  1518. package/dist/utilities/getSafeRedirect.spec.js.map +0 -1
  1519. package/dist/utilities/isURLAllowed.spec.js +0 -78
  1520. package/dist/utilities/isURLAllowed.spec.js.map +0 -1
  1521. package/dist/utilities/isolateObjectProperty.spec.js +0 -120
  1522. package/dist/utilities/isolateObjectProperty.spec.js.map +0 -1
  1523. package/dist/utilities/mergeLocalizedData.spec.js +0 -1108
  1524. package/dist/utilities/mergeLocalizedData.spec.js.map +0 -1
  1525. package/dist/utilities/optionsAreEqual.spec.js +0 -319
  1526. package/dist/utilities/optionsAreEqual.spec.js.map +0 -1
  1527. package/dist/utilities/parseParams/index.spec.js +0 -384
  1528. package/dist/utilities/parseParams/index.spec.js.map +0 -1
  1529. package/dist/utilities/profiling.spec.js +0 -53
  1530. package/dist/utilities/profiling.spec.js.map +0 -1
  1531. package/dist/utilities/sanitizePermissions.spec.js +0 -1639
  1532. package/dist/utilities/sanitizePermissions.spec.js.map +0 -1
  1533. package/dist/utilities/sanitizeUserDataForEmail.spec.js +0 -134
  1534. package/dist/utilities/sanitizeUserDataForEmail.spec.js.map +0 -1
  1535. package/dist/utilities/telemetry/index.spec.js +0 -43
  1536. package/dist/utilities/telemetry/index.spec.js.map +0 -1
  1537. package/dist/utilities/traverseFields.spec.js +0 -53
  1538. package/dist/utilities/traverseFields.spec.js.map +0 -1
  1539. package/dist/utilities/validateTimezones.spec.js +0 -493
  1540. package/dist/utilities/validateTimezones.spec.js.map +0 -1
  1541. /package/dist/{bin → cli/commands/generateImportMap}/frameworkConventions.d.ts +0 -0
  1542. /package/dist/{bin → cli/commands/generateImportMap}/frameworkConventions.js +0 -0
  1543. /package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.js +0 -0
  1544. /package/dist/{bin → cli/commands}/generateImportMap/iterateFields.js +0 -0
  1545. /package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.js +0 -0
  1546. /package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.js +0 -0
  1547. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.js +0 -0
  1548. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts +0 -0
  1549. /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.js +0 -0
  1550. /package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.js +0 -0
  1551. /package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.d.ts +0 -0
  1552. /package/dist/{bin → cli/runtime}/loadEnv.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/configToJSONSchema.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { JSONSchema4, JSONSchema4TypeName } from 'json-schema'\n\nimport { createHash } from 'crypto'\n\nimport type { Auth } from '../auth/types.js'\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { FieldAffectingData, FlattenedField, Option } from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\n\nimport { MissingEditorProp } from '../errors/MissingEditorProp.js'\nimport { fieldAffectsData, fieldIsVirtual } from '../fields/config/types.js'\nimport { generateJobsJSONSchemas } from '../queues/config/generateJobsJSONSchemas.js'\nimport { flattenAllFields } from './flattenAllFields.js'\nimport { formatNames, toWords } from './formatLabels.js'\nimport { getCollectionIDFieldTypes } from './getCollectionIDFieldTypes.js'\nimport { optionsAreEqual } from './optionsAreEqual.js'\n\n/** Read (`output`) vs write (`input`) shape: `input` is what `create`/`update` accept. */\nexport type SchemaVariant = 'input' | 'output'\n\n// Virtual fields (computed) and join fields (derived from the inverse relationship) are read-only.\nconst fieldIsInputExcluded = (field: FlattenedField): boolean =>\n field.type === 'join' || fieldIsVirtual(field)\n\nconst fieldIsRequired = (field: FlattenedField): boolean => {\n const isConditional = Boolean(field?.admin && field?.admin?.condition)\n if (isConditional) {\n return false\n }\n\n const isMarkedRequired = 'required' in field && field.required === true\n if (fieldAffectsData(field) && isMarkedRequired) {\n return true\n }\n\n // if any subfields are required, this field is required\n if ('fields' in field && field.type !== 'array') {\n return field.flattenedFields.some((subField) => fieldIsRequired(subField))\n }\n\n return false\n}\n\nfunction buildOptionEnums(options: Option[]): string[] {\n return options.map((option) => {\n if (typeof option === 'object' && 'value' in option) {\n return option.value\n }\n\n return option\n })\n}\n\nfunction generateEntitySchemas(\n entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[],\n): JSONSchema4 {\n const properties = [...entities].reduce(\n (acc, { slug }) => {\n acc[slug] = {\n $ref: `#/$defs/${slug}`,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nfunction generateEntitySelectSchemas(\n entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[],\n): JSONSchema4 {\n const properties = [...entities].reduce(\n (acc, { slug }) => {\n acc[slug] = {\n $ref: `#/$defs/${slug}_select`,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nfunction generateEntityInputSchemas(\n entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[],\n): JSONSchema4 {\n const properties = [...entities].reduce(\n (acc, { slug }) => {\n acc[slug] = {\n $ref: `#/$defs/${slug}_input`,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nfunction generateCollectionJoinsSchemas(collections: SanitizedCollectionConfig[]): JSONSchema4 {\n const properties = [...collections].reduce<Record<string, JSONSchema4>>(\n (acc, { slug, joins, polymorphicJoins }) => {\n const schema = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n required: [] as string[],\n } satisfies JSONSchema4\n\n for (const collectionSlug in joins) {\n for (const join of joins[collectionSlug]!) {\n ;(schema.properties as any)[join.joinPath] = {\n type: 'string',\n enum: [collectionSlug],\n }\n schema.required.push(join.joinPath)\n }\n }\n\n for (const join of polymorphicJoins) {\n ;(schema.properties as any)[join.joinPath] = {\n type: 'string',\n enum: join.field.collection,\n }\n schema.required.push(join.joinPath)\n }\n\n if (Object.keys(schema.properties).length > 0) {\n acc[slug] = schema\n }\n\n return acc\n },\n {},\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nconst widgetWidths = ['x-small', 'small', 'medium', 'large', 'x-large', 'full'] as const\n\nfunction getAllowedWidgetWidths({\n maxWidth,\n minWidth,\n}: {\n maxWidth?: (typeof widgetWidths)[number]\n minWidth?: (typeof widgetWidths)[number]\n}): string[] {\n const minIndex = minWidth ? widgetWidths.indexOf(minWidth) : 0\n const maxIndex = maxWidth ? widgetWidths.indexOf(maxWidth) : widgetWidths.length - 1\n\n if (minIndex === -1 || maxIndex === -1 || minIndex > maxIndex) {\n return [...widgetWidths]\n }\n\n return widgetWidths.slice(minIndex, maxIndex + 1)\n}\n\nfunction generateWidgetSchemas({\n collectionIDFieldTypes,\n config,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n}: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config: SanitizedConfig\n forceInlineBlocks?: boolean\n i18n?: I18n\n interfaceNameDefinitions: Map<string, JSONSchema4>\n typeStringDefinitions: Set<string>\n}): {\n definitions: Record<string, JSONSchema4>\n schema: JSONSchema4\n} {\n const widgets = config.admin?.dashboard?.widgets ?? []\n const definitions: Record<string, JSONSchema4> = {}\n const properties: Record<string, JSONSchema4> = {}\n\n for (const widget of widgets) {\n const definition = `${widget.slug}_widget`\n const widthEnum = getAllowedWidgetWidths({\n maxWidth: widget.maxWidth,\n minWidth: widget.minWidth,\n })\n let dataSchema: JSONSchema4\n\n if (widget.fields?.length) {\n const widgetFieldSchemas = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: flattenAllFields({ fields: widget.fields }),\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n })\n\n dataSchema = {\n type: 'object',\n additionalProperties: false,\n ...widgetFieldSchemas,\n }\n } else {\n dataSchema = {\n type: 'object',\n additionalProperties: true,\n }\n }\n\n definitions[definition] = {\n type: 'object',\n additionalProperties: false,\n properties: {\n data: dataSchema,\n width: {\n type: 'string',\n enum: widthEnum,\n },\n },\n required: ['width'],\n }\n\n properties[widget.slug] = {\n $ref: `#/$defs/${definition}`,\n }\n }\n\n return {\n definitions,\n schema: {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n },\n }\n}\n\nfunction generateLocaleEntitySchemas(localization: SanitizedConfig['localization']): JSONSchema4 {\n if (localization && 'locales' in localization && localization?.locales) {\n const localesFromConfig = localization?.locales\n\n const locales = [...localesFromConfig].map((locale) => {\n return locale.code\n }, [])\n\n return {\n type: 'string',\n enum: locales,\n }\n }\n\n return {\n type: 'null',\n }\n}\n\nfunction generateFallbackLocaleEntitySchemas(\n localization: SanitizedConfig['localization'],\n): JSONSchema4 {\n if (localization && 'localeCodes' in localization && localization?.localeCodes) {\n const localeCodes = [...localization.localeCodes].map((localeCode) => {\n return localeCode\n }, [])\n\n return {\n oneOf: [\n { type: 'string', enum: ['false', 'none', 'null'] },\n { type: 'boolean', enum: [false] },\n { type: 'null' },\n { type: 'string', enum: localeCodes },\n { type: 'array', items: { type: 'string', enum: localeCodes } },\n ],\n }\n }\n\n return {\n type: 'null',\n }\n}\n\nfunction generateAuthEntitySchemas(entities: SanitizedCollectionConfig[]): JSONSchema4 {\n const properties: JSONSchema4[] = [...entities]\n .filter(({ auth }) => Boolean(auth))\n .map(({ slug }) => {\n return { $ref: `#/$defs/${slug}` }\n }, {})\n\n return {\n oneOf: properties,\n }\n}\n\n/**\n * Generates the JSON Schema for database configuration\n *\n * @example { db: idType: string }\n */\nfunction generateDbEntitySchema(config: SanitizedConfig): JSONSchema4 {\n const defaultIDType: JSONSchema4 =\n config.db?.defaultIDType === 'number' ? { type: 'number' } : { type: 'string' }\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n defaultIDType,\n },\n required: ['defaultIDType'],\n }\n}\n\n/**\n * Returns a JSON Schema Type with 'null' added if the field is not required.\n */\nexport function withNullableJSONSchemaType(\n fieldType: JSONSchema4TypeName,\n isRequired: boolean,\n): JSONSchema4TypeName | JSONSchema4TypeName[] {\n const fieldTypes = [fieldType]\n if (isRequired) {\n return fieldType\n }\n fieldTypes.push('null')\n return fieldTypes\n}\n\nfunction entityOrFieldToJsDocs({\n entity,\n i18n,\n}: {\n entity: FlattenedField | SanitizedCollectionConfig | SanitizedGlobalConfig\n i18n?: I18n\n}): string | undefined {\n let description: string | undefined = undefined\n if (entity?.admin?.description) {\n if (typeof entity?.admin?.description === 'string') {\n description = entity?.admin?.description\n } else if (typeof entity?.admin?.description === 'object') {\n if (entity?.admin?.description?.en) {\n description = entity?.admin?.description?.en\n } else if (entity?.admin?.description?.[i18n!.language]) {\n description = entity?.admin?.description?.[i18n!.language]\n }\n } else if (typeof entity?.admin?.description === 'function' && i18n) {\n // do not evaluate description functions for generating JSDocs. The output of\n // those can differ depending on where and when they are called, creating\n // inconsistencies in the generated JSDocs.\n }\n }\n return description\n}\n\ntype ConfigToJSONSchemaOptions = {\n forceInlineBlocks?: boolean\n}\n\nexport type FieldsToJSONSchemaArgs = {\n /**\n * Used for relationship fields, to determine whether to use a string or\n * number type for the ID. While there is a default ID field type set by\n * the db adapter, they can differ on a collection-level if they have\n * custom ID fields.\n */\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n fields: FlattenedField[]\n /**\n * If true, blocks are inlined into each `block` field instead of being\n * lifted to a top-level definition. Used by the MCP plugin.\n */\n forceInlineBlocks?: boolean\n i18n?: I18n\n /** Allows you to define new top-level interfaces that can be re-used in the output schema. */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n /**\n * Allows you to append raw TS source to `payload-types.ts`. Identical\n * strings de-dupe naturally, so the same helper written from many fields\n * ends up emitted once.\n */\n typeStringDefinitions: Set<string>\n variant?: SchemaVariant\n}\n\nexport function fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant = 'output',\n}: FieldsToJSONSchemaArgs): {\n properties: {\n [k: string]: JSONSchema4\n }\n required: string[]\n} {\n const requiredFieldNames = new Set<string>()\n\n // Registers a named-interface (group/tab/array/select) def and returns its `$ref` name. For input,\n // shares the read-shaped def when byte-identical; otherwise registers an `Input`-suffixed twin so\n // the write shape doesn't collide with the read one.\n const registerNamedInterface = (name: string, schema: JSONSchema4): string => {\n if (variant === 'input') {\n const outputDef = interfaceNameDefinitions.get(name)\n if (outputDef && JSON.stringify(outputDef) === JSON.stringify(schema)) {\n return name\n }\n const inputName = `${name}Input`\n interfaceNameDefinitions.set(inputName, schema)\n return inputName\n }\n interfaceNameDefinitions.set(name, schema)\n return name\n }\n\n return {\n properties: Object.fromEntries(\n fields.reduce((fieldSchemas, field, index) => {\n if (variant === 'input' && fieldIsInputExcluded(field)) {\n return fieldSchemas\n }\n\n const hasDefaultValue = 'defaultValue' in field && field.defaultValue !== undefined\n // `isRequired` only controls nullability (a non-required field gets `| null`). It does not\n // change between variants, so e.g. a defaulted field stays non-null on input.\n const isRequired = fieldAffectsData(field) && fieldIsRequired(field)\n // `isOptionalOnInput` controls the `?`: on input, defaulted fields can be omitted.\n const isOptionalOnInput = variant === 'input' && hasDefaultValue\n\n const fieldDescription = entityOrFieldToJsDocs({ entity: field, i18n })\n const baseFieldSchema: JSONSchema4 = {}\n if (fieldDescription) {\n baseFieldSchema.description = fieldDescription\n }\n\n let fieldSchema: JSONSchema4\n\n switch (field.type) {\n case 'array': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: field.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n }),\n },\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n break\n }\n case 'blocks': {\n // Check for a case where no blocks are provided.\n // We need to generate an empty array for this case, note that JSON schema 4 doesn't support empty arrays\n // so the best we can get is `unknown[]`\n const hasBlocks = Boolean(field.blocks.length)\n\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: hasBlocks\n ? {\n oneOf: field.blocks.map((blockOrReference) => {\n const block =\n typeof blockOrReference === 'string'\n ? config?.blocks?.find((b) => b.slug === blockOrReference)\n : blockOrReference\n\n if (!block) {\n return {}\n }\n\n const blockFieldSchemas = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: block.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n })\n\n const blockSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {\n ...blockFieldSchemas.properties,\n blockType: {\n const: block.slug,\n },\n },\n required: ['blockType', ...blockFieldSchemas.required],\n }\n\n return forceInlineBlocks\n ? blockSchema\n : {\n $ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions, variant)}`,\n }\n }),\n }\n : {},\n }\n break\n }\n case 'checkbox': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('boolean', isRequired),\n }\n break\n }\n case 'code':\n case 'date':\n case 'email':\n case 'slug':\n case 'textarea': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n }\n break\n }\n\n case 'group': {\n if (fieldAffectsData(field)) {\n fieldSchema = {\n ...baseFieldSchema,\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: field.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n }),\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n }\n break\n }\n\n case 'join': {\n let items: JSONSchema4\n\n if (Array.isArray(field.collection)) {\n items = {\n oneOf: field.collection.map((collection) => ({\n type: 'object',\n additionalProperties: false,\n properties: {\n relationTo: {\n const: collection,\n },\n value: {\n oneOf: [\n {\n type: collectionIDFieldTypes[collection],\n },\n {\n $ref: `#/$defs/${collection}`,\n },\n ],\n },\n },\n required: ['collectionSlug', 'value'],\n })),\n }\n } else {\n items = {\n oneOf: [\n {\n type: collectionIDFieldTypes[field.collection],\n },\n {\n $ref: `#/$defs/${field.collection}`,\n },\n ],\n }\n }\n\n fieldSchema = {\n ...baseFieldSchema,\n type: 'object',\n additionalProperties: false,\n properties: {\n docs: {\n type: 'array',\n items,\n },\n hasNextPage: { type: 'boolean' },\n totalDocs: { type: 'number' },\n },\n }\n break\n }\n\n case 'json': {\n fieldSchema = field.jsonSchema?.schema || {\n ...baseFieldSchema,\n type: ['object', 'array', 'string', 'number', 'boolean', 'null'],\n }\n break\n }\n\n case 'number': {\n if (field.hasMany === true) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: { type: 'number' },\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('number', isRequired),\n }\n }\n break\n }\n\n case 'point': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: [\n {\n type: 'number',\n },\n {\n type: 'number',\n },\n ],\n maxItems: 2,\n minItems: 2,\n }\n break\n }\n\n case 'radio': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n enum: buildOptionEnums(field.options),\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n\n break\n }\n case 'relationship':\n case 'upload': {\n // Read: an ID or the populated doc. Input: only the ID, so drop the `$ref`.\n const relationValueSchema = (relation: string): JSONSchema4 =>\n variant === 'input'\n ? { type: collectionIDFieldTypes[relation] }\n : {\n oneOf: [\n { type: collectionIDFieldTypes[relation] },\n { $ref: `#/$defs/${relation}` },\n ],\n }\n\n if (Array.isArray(field.relationTo)) {\n if (field.hasMany) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n oneOf: field.relationTo.map((relation) => {\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n relationTo: {\n const: relation,\n },\n value: relationValueSchema(relation),\n },\n required: ['value', 'relationTo'],\n }\n }),\n },\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n oneOf: field.relationTo.map((relation) => {\n return {\n type: withNullableJSONSchemaType('object', isRequired),\n additionalProperties: false,\n properties: {\n relationTo: {\n const: relation,\n },\n value: relationValueSchema(relation),\n },\n required: ['value', 'relationTo'],\n }\n }),\n }\n }\n } else if (field.hasMany) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items:\n variant === 'input'\n ? { type: collectionIDFieldTypes[field.relationTo] }\n : {\n oneOf: [\n {\n type: collectionIDFieldTypes[field.relationTo],\n },\n {\n $ref: `#/$defs/${field.relationTo}`,\n },\n ],\n },\n }\n } else if (variant === 'input') {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType(\n collectionIDFieldTypes[field.relationTo]!,\n isRequired,\n ),\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n oneOf: [\n {\n type: withNullableJSONSchemaType(\n collectionIDFieldTypes[field.relationTo]!,\n isRequired,\n ),\n },\n { $ref: `#/$defs/${field.relationTo}` },\n ],\n }\n }\n\n break\n }\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n if (field.editor.jsonSchema) {\n fieldSchema = {\n ...baseFieldSchema,\n ...field.editor.jsonSchema({\n collectionIDFieldTypes,\n config,\n field,\n i18n,\n interfaceNameDefinitions,\n isRequired,\n typeStringDefinitions,\n variant,\n }),\n }\n } else {\n // Maintain backwards compatibility with existing rich text editors\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n },\n }\n }\n\n break\n }\n\n case 'select': {\n const optionEnums = buildOptionEnums(field.options)\n // We get the previous field to check for a date in the case of a timezone select\n // This works because timezone selects are always inserted right after a date with 'timezone: true'\n const previousField = fields?.[index - 1]\n const isTimezoneField =\n previousField?.type === 'date' && previousField.timezone && field.name.includes('_tz')\n\n // Check if the timezone field's options match the global config's supported timezones\n const hasMatchingGlobalTimezones =\n isTimezoneField &&\n config &&\n optionsAreEqual(field.options, config.admin?.timezones?.supportedTimezones)\n\n // Timezone selects should reference the supportedTimezones definition\n // only if the field's options match the global config\n if (isTimezoneField && hasMatchingGlobalTimezones) {\n fieldSchema = {\n $ref: `#/$defs/supportedTimezones`,\n }\n } else {\n if (field.hasMany) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'string',\n },\n }\n if (optionEnums?.length) {\n ;(fieldSchema.items as JSONSchema4).enum = optionEnums\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n }\n if (optionEnums?.length) {\n fieldSchema.enum = optionEnums\n }\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n break\n }\n\n break\n }\n case 'tab': {\n fieldSchema = {\n ...baseFieldSchema,\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: field.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n }),\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n break\n }\n\n case 'text':\n if (field.hasMany === true) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: { type: 'string' },\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n }\n }\n break\n\n default: {\n break\n }\n }\n\n if ('jsonSchema' in field && field?.jsonSchema?.length) {\n for (const schema of field.jsonSchema) {\n fieldSchema = schema({ jsonSchema: fieldSchema!, variant })\n }\n }\n\n if (fieldSchema! && fieldAffectsData(field)) {\n if (isRequired && !isOptionalOnInput && fieldSchema.required !== false) {\n requiredFieldNames.add(field.name)\n }\n fieldSchemas.set(field.name, fieldSchema)\n }\n\n return fieldSchemas\n }, new Map<string, JSONSchema4>()),\n ),\n required: Array.from(requiredFieldNames),\n }\n}\n\n// This function is part of the public API and is exported through payload/utilities\nexport function entityToJSONSchema(\n config: SanitizedConfig,\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig,\n interfaceNameDefinitions: Map<string, JSONSchema4>,\n defaultIDType: 'number' | 'text',\n typeStringDefinitions: Set<string>,\n collectionIDFieldTypes?: { [key: string]: 'number' | 'string' },\n i18n?: I18n,\n forceInlineBlocks?: boolean,\n variant: SchemaVariant = 'output',\n): JSONSchema4 {\n if (!collectionIDFieldTypes) {\n collectionIDFieldTypes = getCollectionIDFieldTypes({ config, defaultIDType })\n }\n\n const isInput = variant === 'input'\n\n const baseTitle = entity.typescript?.interface\n ? entity.typescript.interface\n : formatNames(entity.slug).singular\n const title = isInput ? `${baseTitle}Input` : baseTitle\n\n let mutableFields = [...entity.flattenedFields]\n\n // `required: true` keeps `id` non-null. On input it's made optional further below (it's dropped\n // from `required`) so you can omit it or pass a custom ID, but it's still never `null`.\n const idField: FieldAffectingData = {\n name: 'id',\n type: defaultIDType as 'text',\n required: true,\n }\n const customIdField = mutableFields.find((field) => field.name === 'id') as FieldAffectingData\n\n if (customIdField && customIdField.type !== 'group' && customIdField.type !== 'tab') {\n mutableFields = mutableFields.map((field) =>\n field === customIdField ? { ...field, required: true } : field,\n )\n } else {\n mutableFields.unshift(idField)\n }\n\n if (isInput) {\n // Timestamps are managed by Payload. `_status` remains because create/update accept it.\n mutableFields = mutableFields.filter(\n (field) => field.name !== 'createdAt' && field.name !== 'updatedAt',\n )\n } else if ('timestamps' in entity && entity.timestamps !== false) {\n // mark timestamp fields required\n mutableFields = mutableFields.map((field) => {\n if (field.name === 'createdAt' || field.name === 'updatedAt') {\n return {\n ...field,\n required: true,\n }\n }\n return field\n })\n }\n\n if (\n 'auth' in entity &&\n entity.auth &&\n (!entity.auth?.disableLocalStrategy ||\n (typeof entity.auth?.disableLocalStrategy === 'object' &&\n entity.auth.disableLocalStrategy.enableFields))\n ) {\n mutableFields.push({\n name: 'password',\n type: 'text',\n })\n }\n\n const isAuthCollection = 'auth' in entity && entity.auth\n\n const fieldsSchema = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: mutableFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n })\n\n // On input, `id` is optional (omit it, or pass a custom ID). Removing it from `required` makes\n // it optional without making it nullable.\n if (isInput && Array.isArray(fieldsSchema.required)) {\n fieldsSchema.required = fieldsSchema.required.filter((name) => name !== 'id')\n }\n\n // The `User`-union discriminator (read-side, e.g. `req.user`); not part of create/update data.\n if (isAuthCollection && !isInput) {\n fieldsSchema.properties = {\n ...fieldsSchema.properties,\n collection: { type: 'string', enum: [entity.slug] },\n }\n fieldsSchema.required = [...(fieldsSchema.required || []), 'collection']\n }\n\n const jsonSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n title,\n ...fieldsSchema,\n }\n\n const entityDescription = entityOrFieldToJsDocs({ entity, i18n })\n\n if (entityDescription) {\n jsonSchema.description = entityDescription\n }\n\n return jsonSchema\n}\n\n/**\n * Like {@link entityToJSONSchema}, but returns a standalone schema for one collection or global:\n * the entity plus only the `$defs` it actually uses, so it resolves on its own rather than\n * as part of the whole config schema.\n *\n * Relationship/upload `$ref`s to other collections are left in place - the caller handles those.\n * (The `input` variant reduces relationships to IDs, so only rich-text node `$defs` still ref them.)\n */\nexport function entityToStandaloneJSONSchema({\n config,\n defaultIDType,\n entity,\n i18n,\n variant = 'output',\n}: {\n config: SanitizedConfig\n defaultIDType: 'number' | 'text'\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig\n i18n?: I18n\n variant?: SchemaVariant\n}): JSONSchema4 {\n const definitions = new Map<string, JSONSchema4>()\n\n // entityToJSONSchema fills `definitions` with everything the fields reference (node unions, blocks).\n const schema = entityToJSONSchema(\n config,\n entity,\n definitions,\n defaultIDType,\n new Set(),\n undefined,\n i18n,\n true, // forceInlineBlocks\n variant,\n )\n\n // Timezone fields `$ref` supportedTimezones, which lives on the root config schema, so add it here.\n const supportedTimezones = config.admin?.timezones?.supportedTimezones\n if (\n supportedTimezones?.length &&\n schemaHasRef([schema, ...definitions.values()], '#/$defs/supportedTimezones')\n ) {\n definitions.set('supportedTimezones', timezonesToJSONSchema(supportedTimezones))\n }\n\n return {\n $schema: 'https://json-schema.org/draft/2020-12/schema',\n ...schema,\n $defs: Object.fromEntries(definitions),\n }\n}\n\n/**\n * Recursive function that returns true if\n * `node` has a `$ref` to `ref` somewhere inside it.\n * */\nfunction schemaHasRef(node: unknown, ref: string): boolean {\n if (Array.isArray(node)) {\n return node.some((child) => schemaHasRef(child, ref))\n }\n if (node && typeof node === 'object') {\n const obj = node as Record<string, unknown>\n if (obj.$ref === ref) {\n return true\n }\n return Object.values(obj).some((value) => schemaHasRef(value, ref))\n }\n return false\n}\n\nexport function fieldsToSelectJSONSchema({\n config,\n fields,\n interfaceNameDefinitions,\n}: {\n config: SanitizedConfig\n fields: FlattenedField[]\n interfaceNameDefinitions: Map<string, JSONSchema4>\n}): JSONSchema4 {\n const schema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n }\n\n for (const field of fields) {\n switch (field.type) {\n case 'array':\n case 'group':\n case 'tab': {\n let fieldSchema: JSONSchema4 = fieldsToSelectJSONSchema({\n config,\n fields: field.flattenedFields,\n interfaceNameDefinitions,\n })\n\n if (field.interfaceName) {\n const definition = `${field.interfaceName}_select`\n interfaceNameDefinitions.set(definition, fieldSchema)\n\n fieldSchema = {\n $ref: `#/$defs/${definition}`,\n }\n }\n\n schema.properties![field.name] = {\n oneOf: [\n {\n type: 'boolean',\n },\n fieldSchema,\n ],\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n }\n\n for (const block of field.blocks) {\n if (typeof block === 'string') {\n continue // TODO\n }\n\n let blockSchema = fieldsToSelectJSONSchema({\n config,\n fields: block.flattenedFields,\n interfaceNameDefinitions,\n })\n\n if (block.interfaceName) {\n const definition = `${block.interfaceName}_select`\n interfaceNameDefinitions.set(definition, blockSchema)\n blockSchema = {\n $ref: `#/$defs/${definition}`,\n }\n }\n\n blocksSchema.properties![block.slug] = {\n oneOf: [\n {\n type: 'boolean',\n },\n blockSchema,\n ],\n }\n }\n\n schema.properties![field.name] = {\n oneOf: [\n {\n type: 'boolean',\n },\n blocksSchema,\n ],\n }\n\n break\n }\n\n default:\n schema.properties![field.name] = {\n type: 'boolean',\n }\n break\n }\n }\n\n return schema\n}\n\nconst fieldType: JSONSchema4 = {\n type: 'string',\n required: false,\n}\nconst generateAuthFieldTypes = ({\n type,\n loginWithUsername,\n}: {\n loginWithUsername: Auth['loginWithUsername']\n type: 'forgotOrUnlock' | 'login' | 'register'\n}): JSONSchema4 => {\n if (loginWithUsername) {\n switch (type) {\n case 'forgotOrUnlock': {\n if (loginWithUsername.allowEmailLogin) {\n // allow email or username for unlock/forgot-password\n return {\n additionalProperties: false,\n oneOf: [\n {\n additionalProperties: false,\n properties: { email: fieldType },\n required: ['email'],\n },\n {\n additionalProperties: false,\n properties: { username: fieldType },\n required: ['username'],\n },\n ],\n }\n } else {\n // allow only username for unlock/forgot-password\n return {\n additionalProperties: false,\n properties: { username: fieldType },\n required: ['username'],\n }\n }\n }\n\n case 'login': {\n if (loginWithUsername.allowEmailLogin) {\n // allow username or email and require password for login\n return {\n additionalProperties: false,\n oneOf: [\n {\n additionalProperties: false,\n properties: { email: fieldType, password: fieldType },\n required: ['email', 'password'],\n },\n {\n additionalProperties: false,\n properties: { password: fieldType, username: fieldType },\n required: ['username', 'password'],\n },\n ],\n }\n } else {\n // allow only username and password for login\n return {\n additionalProperties: false,\n properties: {\n password: fieldType,\n username: fieldType,\n },\n required: ['username', 'password'],\n }\n }\n }\n\n case 'register': {\n const requiredFields: ('email' | 'password' | 'username')[] = ['password']\n const properties: {\n email?: JSONSchema4['properties']\n password?: JSONSchema4['properties']\n username?: JSONSchema4['properties']\n } = {\n password: fieldType,\n username: fieldType,\n }\n\n if (loginWithUsername.requireEmail) {\n requiredFields.push('email')\n }\n if (loginWithUsername.requireUsername) {\n requiredFields.push('username')\n }\n if (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin) {\n properties.email = fieldType\n }\n\n return {\n additionalProperties: false,\n properties,\n required: requiredFields,\n }\n }\n }\n }\n\n // default email (and password for login/register)\n return {\n additionalProperties: false,\n properties: { email: fieldType, password: fieldType },\n required: ['email', 'password'],\n }\n}\n\nexport function authCollectionToOperationsJSONSchema(\n config: SanitizedCollectionConfig,\n): JSONSchema4 {\n const loginWithUsername = config.auth?.loginWithUsername\n const loginUserFields: JSONSchema4 = generateAuthFieldTypes({ type: 'login', loginWithUsername })\n const forgotOrUnlockUserFields: JSONSchema4 = generateAuthFieldTypes({\n type: 'forgotOrUnlock',\n loginWithUsername,\n })\n const registerUserFields: JSONSchema4 = generateAuthFieldTypes({\n type: 'register',\n loginWithUsername,\n })\n\n const properties: JSONSchema4['properties'] = {\n forgotPassword: forgotOrUnlockUserFields,\n login: loginUserFields,\n registerFirstUser: registerUserFields,\n unlock: forgotOrUnlockUserFields,\n }\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n title: `${formatNames(config.slug).singular}AuthOperations`,\n }\n}\n\n// Generates the JSON Schema for supported timezones\nexport function timezonesToJSONSchema(\n supportedTimezones: SanitizedConfig['admin']['timezones']['supportedTimezones'],\n): JSONSchema4 {\n return {\n description: 'Supported timezones in IANA format.',\n enum: supportedTimezones.map((timezone) =>\n typeof timezone === 'string' ? timezone : timezone.value,\n ),\n }\n}\n\nfunction generateAuthOperationSchemas(collections: SanitizedCollectionConfig[]): JSONSchema4 {\n const properties = collections.reduce(\n (acc, collection) => {\n if (collection.auth) {\n acc[collection.slug] = {\n $ref: `#/$defs/auth/${collection.slug}`,\n }\n }\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nconst hashBlockSchema = (schema: JSONSchema4): string =>\n createHash('sha256').update(JSON.stringify(schema)).digest('hex').slice(0, 8).toUpperCase()\n\n/**\n * Registers a block's schema as a top-level definition and returns its name.\n *\n * The name is the block's `interfaceName`, or a PascalCase form of its slug. If a different block\n * already uses that name - whether it was auto-generated or an explicit `interfaceName` - this one\n * gets a content-hash suffix (`Hero_3F2A1B0C`) so the two don't overwrite each other. Registering\n * the same block shape again reuses its name.\n *\n * The `input` variant adds an `Input` suffix (`HeroInput`) - unless the read-shaped def is already\n * registered with byte-identical content (a block with nothing that differs between input and\n * output), in which case it's shared as-is rather than emitting a redundant twin.\n */\nexport function registerBlockInterface(\n block: { interfaceName?: string; slug: string },\n blockSchema: JSONSchema4,\n interfaceNameDefinitions: Map<string, JSONSchema4>,\n variant: SchemaVariant = 'output',\n): string {\n const rawName = block.interfaceName ?? toWords(block.slug, true)\n\n if (variant === 'input') {\n const outputDef = interfaceNameDefinitions.get(rawName)\n if (outputDef && hashBlockSchema(outputDef) === hashBlockSchema(blockSchema)) {\n return rawName\n }\n }\n\n const baseName = variant === 'input' ? `${rawName}Input` : rawName\n const existing = interfaceNameDefinitions.get(baseName)\n\n // The name is free - claim it.\n if (!existing) {\n interfaceNameDefinitions.set(baseName, blockSchema)\n return baseName\n }\n\n const hash = hashBlockSchema(blockSchema)\n\n // The same block shape is already registered under this name, so reuse it.\n if (hashBlockSchema(existing) === hash) {\n return baseName\n }\n\n // A different block already owns the name. Disambiguate this one with its hash.\n blockSchema.description = `Multiple blocks resolve to the \\`${baseName}\\` interface with different fields, so a content hash is appended to keep the generated types stable and unambiguous. Set a unique \\`interfaceName\\` on the block to choose the name yourself. See https://payloadcms.com/docs/typescript/generating-types#block-interface-name-collisions`\n\n const uniqueName = `${baseName}_${hash}`\n interfaceNameDefinitions.set(uniqueName, blockSchema)\n return uniqueName\n}\n\n/**\n * This is used for generating the TypeScript types (payload-types.ts) with the payload generate:types command.\n */\nexport function configToJSONSchema(\n config: SanitizedConfig,\n defaultIDType?: 'number' | 'text',\n i18n?: I18n,\n { forceInlineBlocks }: ConfigToJSONSchemaOptions = {},\n): { jsonSchema: JSONSchema4; typeStringDefinitions: Set<string> } {\n // a mutable Map of top-level definitions in the generated JSON Schema.\n // - `array`/`group`/named-`tab` fields are registered here when they set\n // `interfaceName` (otherwise they stay inline).\n // - `block` configs always register here via `registerBlockInterface`, keyed by\n // `block.interfaceName` if set, else a PascalCase form of the slug (with a\n // content-hash suffix when two different blocks resolve to the same name).\n const interfaceNameDefinitions: Map<string, JSONSchema4> = new Map()\n // a mutable Set for raw TS source to be appended to `payload-types.ts`.\n const typeStringDefinitions: Set<string> = new Set()\n\n // Used for relationship fields, to determine whether to use a string or number type for the ID.\n const collectionIDFieldTypes = getCollectionIDFieldTypes({\n config,\n defaultIDType: defaultIDType!,\n })\n\n // Collections and Globals have to be moved to the top-level definitions as well. Reason: The top-level type will be the `Config` type - we don't want all collection and global\n // types to be inlined inside the `Config` type\n\n const entities: {\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig\n type: 'collection' | 'global'\n }[] = [\n ...config.globals.map((global) => ({ type: 'global' as const, entity: global })),\n ...config.collections.map((collection) => ({\n type: 'collection' as const,\n entity: collection,\n })),\n ]\n\n const generateInputTypes = config.typescript?.generateInputTypes === true\n\n const entityDefinitions: { [k: string]: JSONSchema4 } = entities.reduce(\n (acc, { type, entity }) => {\n acc[entity.slug] = entityToJSONSchema(\n config,\n entity,\n interfaceNameDefinitions,\n defaultIDType!,\n typeStringDefinitions,\n collectionIDFieldTypes,\n i18n,\n forceInlineBlocks,\n )\n\n if (generateInputTypes) {\n acc[`${entity.slug}_input`] = entityToJSONSchema(\n config,\n entity,\n interfaceNameDefinitions,\n defaultIDType!,\n typeStringDefinitions,\n collectionIDFieldTypes,\n i18n,\n forceInlineBlocks,\n 'input',\n )\n }\n\n const select = fieldsToSelectJSONSchema({\n config,\n fields: entity.flattenedFields,\n interfaceNameDefinitions,\n })\n\n if (type === 'global') {\n select.properties!.globalType = {\n type: 'boolean',\n }\n }\n\n acc[`${entity.slug}_select`] = {\n type: 'object',\n additionalProperties: false,\n ...select,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n const timezoneDefinitions = timezonesToJSONSchema(config.admin.timezones.supportedTimezones)\n const widgetSchemas = generateWidgetSchemas({\n collectionIDFieldTypes,\n config,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n })\n\n const authOperationDefinitions = [...config.collections]\n .filter(({ auth }) => Boolean(auth))\n .reduce(\n (acc, authCollection) => {\n acc.auth[authCollection.slug] = authCollectionToOperationsJSONSchema(authCollection)\n return acc\n },\n { auth: {} as Record<string, JSONSchema4> },\n )\n\n const jobsSchemas = config.jobs\n ? generateJobsJSONSchemas(\n config,\n config.jobs,\n interfaceNameDefinitions,\n collectionIDFieldTypes,\n typeStringDefinitions,\n i18n,\n )\n : {}\n\n const blocksDefinition: JSONSchema4 | undefined = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n required: [],\n }\n if (config?.blocks?.length) {\n for (const block of config.blocks) {\n const blockFieldSchemas = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: block.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n })\n\n const blockSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {\n ...blockFieldSchemas.properties,\n blockType: {\n const: block.slug,\n },\n },\n required: ['blockType', ...blockFieldSchemas.required],\n }\n\n blocksDefinition.properties![block.slug] = {\n $ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions)}`,\n }\n ;(blocksDefinition.required as string[]).push(block.slug)\n }\n }\n\n let jsonSchema: JSONSchema4 = {\n $defs: {\n supportedTimezones: timezoneDefinitions,\n ...entityDefinitions,\n ...widgetSchemas.definitions,\n ...Object.fromEntries(interfaceNameDefinitions),\n ...authOperationDefinitions,\n },\n $schema: 'https://json-schema.org/draft/2020-12/schema',\n additionalProperties: false,\n // These properties here will be very simple, as all the complexity is in the definitions. These are just the properties for the top-level `Config` type\n type: 'object',\n properties: {\n auth: generateAuthOperationSchemas(config.collections),\n blocks: blocksDefinition,\n collections: generateEntitySchemas(config.collections || []),\n collectionsJoins: generateCollectionJoinsSchemas(config.collections || []),\n collectionsSelect: generateEntitySelectSchemas(config.collections || []),\n db: generateDbEntitySchema(config),\n fallbackLocale: generateFallbackLocaleEntitySchemas(config.localization),\n globals: generateEntitySchemas(config.globals || []),\n globalsSelect: generateEntitySelectSchemas(config.globals || []),\n locale: generateLocaleEntitySchemas(config.localization),\n widgets: widgetSchemas.schema,\n ...(generateInputTypes\n ? {\n collectionsInput: generateEntityInputSchemas(config.collections || []),\n globalsInput: generateEntityInputSchemas(config.globals || []),\n }\n : {}),\n ...(config.typescript?.strictDraftTypes\n ? {\n strictDraftTypes: {\n type: 'boolean',\n const: true,\n },\n }\n : {}),\n user: generateAuthEntitySchemas(config.collections),\n },\n required: [\n 'user',\n 'locale',\n 'fallbackLocale',\n 'collections',\n 'collectionsSelect',\n 'collectionsJoins',\n 'globalsSelect',\n ...(generateInputTypes ? ['collectionsInput', 'globalsInput'] : []),\n ...(config.typescript?.strictDraftTypes ? ['strictDraftTypes'] : []),\n 'globals',\n 'auth',\n 'db',\n 'jobs',\n 'blocks',\n 'widgets',\n ],\n title: 'Config',\n }\n\n if (jobsSchemas.definitions?.size) {\n for (const [key, value] of jobsSchemas.definitions) {\n jsonSchema.$defs![key] = value\n }\n }\n if (jobsSchemas.properties) {\n jsonSchema.properties!.jobs = {\n type: 'object',\n additionalProperties: false,\n properties: jobsSchemas.properties,\n required: ['tasks', 'workflows'],\n }\n }\n\n if (config?.typescript?.schema?.length) {\n for (const schema of config.typescript.schema) {\n jsonSchema = schema({ collectionIDFieldTypes, config, i18n: i18n!, jsonSchema })\n }\n }\n\n return { jsonSchema, typeStringDefinitions }\n}\n"],"names":["createHash","MissingEditorProp","fieldAffectsData","fieldIsVirtual","generateJobsJSONSchemas","flattenAllFields","formatNames","toWords","getCollectionIDFieldTypes","optionsAreEqual","fieldIsInputExcluded","field","type","fieldIsRequired","isConditional","Boolean","admin","condition","isMarkedRequired","required","flattenedFields","some","subField","buildOptionEnums","options","map","option","value","generateEntitySchemas","entities","properties","reduce","acc","slug","$ref","additionalProperties","Object","keys","generateEntitySelectSchemas","generateEntityInputSchemas","generateCollectionJoinsSchemas","collections","joins","polymorphicJoins","schema","collectionSlug","join","joinPath","enum","push","collection","length","widgetWidths","getAllowedWidgetWidths","maxWidth","minWidth","minIndex","indexOf","maxIndex","slice","generateWidgetSchemas","collectionIDFieldTypes","config","forceInlineBlocks","i18n","interfaceNameDefinitions","typeStringDefinitions","widgets","dashboard","definitions","widget","definition","widthEnum","dataSchema","fields","widgetFieldSchemas","fieldsToJSONSchema","data","width","generateLocaleEntitySchemas","localization","locales","localesFromConfig","locale","code","generateFallbackLocaleEntitySchemas","localeCodes","localeCode","oneOf","items","generateAuthEntitySchemas","filter","auth","generateDbEntitySchema","defaultIDType","db","withNullableJSONSchemaType","fieldType","isRequired","fieldTypes","entityOrFieldToJsDocs","entity","description","undefined","en","language","variant","requiredFieldNames","Set","registerNamedInterface","name","outputDef","get","JSON","stringify","inputName","set","fromEntries","fieldSchemas","index","hasDefaultValue","defaultValue","isOptionalOnInput","fieldDescription","baseFieldSchema","fieldSchema","interfaceName","hasBlocks","blocks","blockOrReference","block","find","b","blockFieldSchemas","blockSchema","blockType","const","registerBlockInterface","Array","isArray","relationTo","docs","hasNextPage","totalDocs","jsonSchema","hasMany","maxItems","minItems","relationValueSchema","relation","editor","Error","optionEnums","previousField","isTimezoneField","timezone","includes","hasMatchingGlobalTimezones","timezones","supportedTimezones","add","Map","from","entityToJSONSchema","isInput","baseTitle","typescript","interface","singular","title","mutableFields","idField","customIdField","unshift","timestamps","disableLocalStrategy","enableFields","isAuthCollection","fieldsSchema","entityDescription","entityToStandaloneJSONSchema","schemaHasRef","values","timezonesToJSONSchema","$schema","$defs","node","ref","child","obj","fieldsToSelectJSONSchema","blocksSchema","generateAuthFieldTypes","loginWithUsername","allowEmailLogin","email","username","password","requiredFields","requireEmail","requireUsername","authCollectionToOperationsJSONSchema","loginUserFields","forgotOrUnlockUserFields","registerUserFields","forgotPassword","login","registerFirstUser","unlock","generateAuthOperationSchemas","hashBlockSchema","update","digest","toUpperCase","rawName","baseName","existing","hash","uniqueName","configToJSONSchema","globals","global","generateInputTypes","entityDefinitions","select","globalType","timezoneDefinitions","widgetSchemas","authOperationDefinitions","authCollection","jobsSchemas","jobs","blocksDefinition","collectionsJoins","collectionsSelect","fallbackLocale","globalsSelect","collectionsInput","globalsInput","strictDraftTypes","user","size","key"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/configToJSONSchema.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { JSONSchema4, JSONSchema4TypeName } from 'json-schema'\n\nimport { createHash } from 'crypto'\n\nimport type { Auth } from '../auth/types.js'\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { FieldAffectingData, FlattenedField, Option } from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\n\nimport { MissingEditorProp } from '../errors/MissingEditorProp.js'\nimport { fieldAffectsData, fieldIsVirtual } from '../fields/config/types.js'\nimport { generateJobsJSONSchemas } from '../queues/config/generateJobsJSONSchemas.js'\nimport { flattenAllFields } from './flattenAllFields.js'\nimport { formatNames, toWords } from './formatLabels.js'\nimport { getCollectionIDFieldTypes } from './getCollectionIDFieldTypes.js'\nimport { optionsAreEqual } from './optionsAreEqual.js'\n\n/** Read (`output`) vs write (`input`) shape: `input` is what `create`/`update` accept. */\nexport type SchemaVariant = 'input' | 'output'\n\n// Virtual fields (computed) and join fields (derived from the inverse relationship) are read-only.\nconst fieldIsInputExcluded = (field: FlattenedField): boolean =>\n field.type === 'join' || fieldIsVirtual(field)\n\nconst fieldIsRequired = (field: FlattenedField): boolean => {\n const isConditional = Boolean(field?.admin && field?.admin?.condition)\n if (isConditional) {\n return false\n }\n\n const isMarkedRequired = 'required' in field && field.required === true\n if (fieldAffectsData(field) && isMarkedRequired) {\n return true\n }\n\n // if any subfields are required, this field is required\n if ('fields' in field && field.type !== 'array') {\n return field.flattenedFields.some((subField) => fieldIsRequired(subField))\n }\n\n return false\n}\n\nfunction buildOptionEnums(options: Option[]): string[] {\n return options.map((option) => {\n if (typeof option === 'object' && 'value' in option) {\n return option.value\n }\n\n return option\n })\n}\n\nfunction generateEntitySchemas(\n entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[],\n): JSONSchema4 {\n const properties = [...entities].reduce(\n (acc, { slug }) => {\n acc[slug] = {\n $ref: `#/$defs/${slug}`,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nfunction generateEntitySelectSchemas(\n entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[],\n): JSONSchema4 {\n const properties = [...entities].reduce(\n (acc, { slug }) => {\n acc[slug] = {\n $ref: `#/$defs/${slug}_select`,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nfunction generateEntityInputSchemas(\n entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[],\n): JSONSchema4 {\n const properties = [...entities].reduce(\n (acc, { slug }) => {\n acc[slug] = {\n $ref: `#/$defs/${slug}_input`,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nfunction generateCollectionJoinsSchemas(collections: SanitizedCollectionConfig[]): JSONSchema4 {\n const properties = [...collections].reduce<Record<string, JSONSchema4>>(\n (acc, { slug, joins, polymorphicJoins }) => {\n const schema = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n required: [] as string[],\n } satisfies JSONSchema4\n\n for (const collectionSlug in joins) {\n for (const join of joins[collectionSlug]!) {\n ;(schema.properties as any)[join.joinPath] = {\n type: 'string',\n enum: [collectionSlug],\n }\n schema.required.push(join.joinPath)\n }\n }\n\n for (const join of polymorphicJoins) {\n ;(schema.properties as any)[join.joinPath] = {\n type: 'string',\n enum: join.field.collection,\n }\n schema.required.push(join.joinPath)\n }\n\n if (Object.keys(schema.properties).length > 0) {\n acc[slug] = schema\n }\n\n return acc\n },\n {},\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nconst widgetWidths = ['x-small', 'small', 'medium', 'large', 'x-large', 'full'] as const\n\nfunction getAllowedWidgetWidths({\n maxWidth,\n minWidth,\n}: {\n maxWidth?: (typeof widgetWidths)[number]\n minWidth?: (typeof widgetWidths)[number]\n}): string[] {\n const minIndex = minWidth ? widgetWidths.indexOf(minWidth) : 0\n const maxIndex = maxWidth ? widgetWidths.indexOf(maxWidth) : widgetWidths.length - 1\n\n if (minIndex === -1 || maxIndex === -1 || minIndex > maxIndex) {\n return [...widgetWidths]\n }\n\n return widgetWidths.slice(minIndex, maxIndex + 1)\n}\n\nfunction generateWidgetSchemas({\n collectionIDFieldTypes,\n config,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n}: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config: SanitizedConfig\n forceInlineBlocks?: boolean\n i18n?: I18n\n interfaceNameDefinitions: Map<string, JSONSchema4>\n typeStringDefinitions: Set<string>\n}): {\n definitions: Record<string, JSONSchema4>\n schema: JSONSchema4\n} {\n const widgets = config.admin?.dashboard?.widgets ?? []\n const definitions: Record<string, JSONSchema4> = {}\n const properties: Record<string, JSONSchema4> = {}\n\n for (const widget of widgets) {\n const definition = `${widget.slug}_widget`\n const widthEnum = getAllowedWidgetWidths({\n maxWidth: widget.maxWidth,\n minWidth: widget.minWidth,\n })\n let dataSchema: JSONSchema4\n\n if (widget.fields?.length) {\n const widgetFieldSchemas = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: flattenAllFields({ fields: widget.fields }),\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n })\n\n dataSchema = {\n type: 'object',\n additionalProperties: false,\n ...widgetFieldSchemas,\n }\n } else {\n dataSchema = {\n type: 'object',\n additionalProperties: true,\n }\n }\n\n definitions[definition] = {\n type: 'object',\n additionalProperties: false,\n properties: {\n data: dataSchema,\n width: {\n type: 'string',\n enum: widthEnum,\n },\n },\n required: ['width'],\n }\n\n properties[widget.slug] = {\n $ref: `#/$defs/${definition}`,\n }\n }\n\n return {\n definitions,\n schema: {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n },\n }\n}\n\nfunction generateLocaleEntitySchemas(localization: SanitizedConfig['localization']): JSONSchema4 {\n if (localization && 'locales' in localization && localization?.locales) {\n const localesFromConfig = localization?.locales\n\n const locales = [...localesFromConfig].map((locale) => {\n return locale.code\n }, [])\n\n return {\n type: 'string',\n enum: locales,\n }\n }\n\n return {\n type: 'null',\n }\n}\n\nfunction generateFallbackLocaleEntitySchemas(\n localization: SanitizedConfig['localization'],\n): JSONSchema4 {\n if (localization && 'localeCodes' in localization && localization?.localeCodes) {\n const localeCodes = [...localization.localeCodes].map((localeCode) => {\n return localeCode\n }, [])\n\n return {\n oneOf: [\n { type: 'string', enum: ['false', 'none', 'null'] },\n { type: 'boolean', enum: [false] },\n { type: 'null' },\n { type: 'string', enum: localeCodes },\n { type: 'array', items: { type: 'string', enum: localeCodes } },\n ],\n }\n }\n\n return {\n type: 'null',\n }\n}\n\nfunction generateAuthEntitySchemas(entities: SanitizedCollectionConfig[]): JSONSchema4 {\n const properties: JSONSchema4[] = [...entities]\n .filter(({ auth }) => Boolean(auth))\n .map(({ slug }) => {\n return { $ref: `#/$defs/${slug}` }\n }, {})\n\n return {\n oneOf: properties,\n }\n}\n\n/**\n * Generates the JSON Schema for database configuration\n *\n * @example { db: idType: string }\n */\nfunction generateDbEntitySchema(config: SanitizedConfig): JSONSchema4 {\n const defaultIDType: JSONSchema4 =\n config.db?.defaultIDType === 'number' ? { type: 'number' } : { type: 'string' }\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n defaultIDType,\n },\n required: ['defaultIDType'],\n }\n}\n\n/**\n * Returns a JSON Schema Type with 'null' added if the field is not required.\n */\nexport function withNullableJSONSchemaType(\n fieldType: JSONSchema4TypeName,\n isRequired: boolean,\n): JSONSchema4TypeName | JSONSchema4TypeName[] {\n const fieldTypes = [fieldType]\n if (isRequired) {\n return fieldType\n }\n fieldTypes.push('null')\n return fieldTypes\n}\n\nfunction entityOrFieldToJsDocs({\n entity,\n i18n,\n}: {\n entity: FlattenedField | SanitizedCollectionConfig | SanitizedGlobalConfig\n i18n?: I18n\n}): string | undefined {\n let description: string | undefined = undefined\n if (entity?.admin?.description) {\n if (typeof entity?.admin?.description === 'string') {\n description = entity?.admin?.description\n } else if (typeof entity?.admin?.description === 'object') {\n if (entity?.admin?.description?.en) {\n description = entity?.admin?.description?.en\n } else if (entity?.admin?.description?.[i18n!.language]) {\n description = entity?.admin?.description?.[i18n!.language]\n }\n } else if (typeof entity?.admin?.description === 'function' && i18n) {\n // do not evaluate description functions for generating JSDocs. The output of\n // those can differ depending on where and when they are called, creating\n // inconsistencies in the generated JSDocs.\n }\n }\n return description\n}\n\ntype ConfigToJSONSchemaOptions = {\n forceInlineBlocks?: boolean\n}\n\nexport type FieldsToJSONSchemaArgs = {\n /**\n * Used for relationship fields, to determine whether to use a string or\n * number type for the ID. While there is a default ID field type set by\n * the db adapter, they can differ on a collection-level if they have\n * custom ID fields.\n */\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n fields: FlattenedField[]\n /**\n * If true, blocks are inlined into each `block` field instead of being\n * lifted to a top-level definition. Used by the MCP plugin.\n */\n forceInlineBlocks?: boolean\n i18n?: I18n\n /** Allows you to define new top-level interfaces that can be re-used in the output schema. */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n /**\n * Allows you to append raw TS source to `payload-types.ts`. Identical\n * strings de-dupe naturally, so the same helper written from many fields\n * ends up emitted once.\n */\n typeStringDefinitions: Set<string>\n variant?: SchemaVariant\n}\n\nexport function fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant = 'output',\n}: FieldsToJSONSchemaArgs): {\n properties: {\n [k: string]: JSONSchema4\n }\n required: string[]\n} {\n const requiredFieldNames = new Set<string>()\n\n // Registers a named-interface (group/tab/array/select) def and returns its `$ref` name. For input,\n // shares the read-shaped def when byte-identical; otherwise registers an `Input`-suffixed twin so\n // the write shape doesn't collide with the read one.\n const registerNamedInterface = (name: string, schema: JSONSchema4): string => {\n if (variant === 'input') {\n const outputDef = interfaceNameDefinitions.get(name)\n if (outputDef && JSON.stringify(outputDef) === JSON.stringify(schema)) {\n return name\n }\n const inputName = `${name}Input`\n interfaceNameDefinitions.set(inputName, schema)\n return inputName\n }\n interfaceNameDefinitions.set(name, schema)\n return name\n }\n\n return {\n properties: Object.fromEntries(\n fields.reduce((fieldSchemas, field, index) => {\n if (variant === 'input' && fieldIsInputExcluded(field)) {\n return fieldSchemas\n }\n\n const hasDefaultValue = 'defaultValue' in field && field.defaultValue !== undefined\n // `isRequired` only controls nullability (a non-required field gets `| null`). It does not\n // change between variants, so e.g. a defaulted field stays non-null on input.\n const isRequired = fieldAffectsData(field) && fieldIsRequired(field)\n // `isOptionalOnInput` controls the `?`: on input, defaulted fields can be omitted.\n const isOptionalOnInput = variant === 'input' && hasDefaultValue\n\n const fieldDescription = entityOrFieldToJsDocs({ entity: field, i18n })\n const baseFieldSchema: JSONSchema4 = {}\n if (fieldDescription) {\n baseFieldSchema.description = fieldDescription\n }\n\n let fieldSchema: JSONSchema4\n\n switch (field.type) {\n case 'array': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: field.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n }),\n },\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n break\n }\n case 'blocks': {\n // Check for a case where no blocks are provided.\n // We need to generate an empty array for this case, note that JSON schema 4 doesn't support empty arrays\n // so the best we can get is `unknown[]`\n const hasBlocks = Boolean(field.blocks.length)\n\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: hasBlocks\n ? {\n oneOf: field.blocks.map((blockOrReference) => {\n const block =\n typeof blockOrReference === 'string'\n ? config?.blocks?.find((b) => b.slug === blockOrReference)\n : blockOrReference\n\n if (!block) {\n return {}\n }\n\n const blockFieldSchemas = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: block.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n })\n\n const blockSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {\n ...blockFieldSchemas.properties,\n blockType: {\n const: block.slug,\n },\n },\n required: ['blockType', ...blockFieldSchemas.required],\n }\n\n return forceInlineBlocks\n ? blockSchema\n : {\n $ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions, variant)}`,\n }\n }),\n }\n : {},\n }\n break\n }\n case 'checkbox': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('boolean', isRequired),\n }\n break\n }\n case 'code':\n case 'date':\n case 'email':\n case 'slug':\n case 'textarea': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n }\n break\n }\n\n case 'group': {\n if (fieldAffectsData(field)) {\n fieldSchema = {\n ...baseFieldSchema,\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: field.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n }),\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n }\n break\n }\n\n case 'join': {\n let items: JSONSchema4\n\n if (Array.isArray(field.collection)) {\n items = {\n oneOf: field.collection.map((collection) => ({\n type: 'object',\n additionalProperties: false,\n properties: {\n relationTo: {\n const: collection,\n },\n value: {\n oneOf: [\n {\n type: collectionIDFieldTypes[collection],\n },\n {\n $ref: `#/$defs/${collection}`,\n },\n ],\n },\n },\n required: ['collectionSlug', 'value'],\n })),\n }\n } else {\n items = {\n oneOf: [\n {\n type: collectionIDFieldTypes[field.collection],\n },\n {\n $ref: `#/$defs/${field.collection}`,\n },\n ],\n }\n }\n\n fieldSchema = {\n ...baseFieldSchema,\n type: 'object',\n additionalProperties: false,\n properties: {\n docs: {\n type: 'array',\n items,\n },\n hasNextPage: { type: 'boolean' },\n totalDocs: { type: 'number' },\n },\n }\n break\n }\n\n case 'json': {\n fieldSchema = field.jsonSchema?.schema || {\n ...baseFieldSchema,\n type: ['object', 'array', 'string', 'number', 'boolean', 'null'],\n }\n break\n }\n\n case 'number': {\n if (field.hasMany === true) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: { type: 'number' },\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('number', isRequired),\n }\n }\n break\n }\n\n case 'point': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: [\n {\n type: 'number',\n },\n {\n type: 'number',\n },\n ],\n maxItems: 2,\n minItems: 2,\n }\n break\n }\n\n case 'radio': {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n enum: buildOptionEnums(field.options),\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n\n break\n }\n case 'relationship':\n case 'upload': {\n // Read: an ID or the populated doc. Input: only the ID, so drop the `$ref`.\n const relationValueSchema = (relation: string): JSONSchema4 =>\n variant === 'input'\n ? { type: collectionIDFieldTypes[relation] }\n : {\n oneOf: [\n { type: collectionIDFieldTypes[relation] },\n { $ref: `#/$defs/${relation}` },\n ],\n }\n\n if (Array.isArray(field.relationTo)) {\n if (field.hasMany) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n oneOf: field.relationTo.map((relation) => {\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n relationTo: {\n const: relation,\n },\n value: relationValueSchema(relation),\n },\n required: ['value', 'relationTo'],\n }\n }),\n },\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n oneOf: field.relationTo.map((relation) => {\n return {\n type: withNullableJSONSchemaType('object', isRequired),\n additionalProperties: false,\n properties: {\n relationTo: {\n const: relation,\n },\n value: relationValueSchema(relation),\n },\n required: ['value', 'relationTo'],\n }\n }),\n }\n }\n } else if (field.hasMany) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items:\n variant === 'input'\n ? { type: collectionIDFieldTypes[field.relationTo] }\n : {\n oneOf: [\n {\n type: collectionIDFieldTypes[field.relationTo],\n },\n {\n $ref: `#/$defs/${field.relationTo}`,\n },\n ],\n },\n }\n } else if (variant === 'input') {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType(\n collectionIDFieldTypes[field.relationTo]!,\n isRequired,\n ),\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n oneOf: [\n {\n type: withNullableJSONSchemaType(\n collectionIDFieldTypes[field.relationTo]!,\n isRequired,\n ),\n },\n { $ref: `#/$defs/${field.relationTo}` },\n ],\n }\n }\n\n break\n }\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n if (field.editor.jsonSchema) {\n fieldSchema = {\n ...baseFieldSchema,\n ...field.editor.jsonSchema({\n collectionIDFieldTypes,\n config,\n field,\n i18n,\n interfaceNameDefinitions,\n isRequired,\n typeStringDefinitions,\n variant,\n }),\n }\n } else {\n // Maintain backwards compatibility with existing rich text editors\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n },\n }\n }\n\n break\n }\n\n case 'select': {\n const optionEnums = buildOptionEnums(field.options)\n // We get the previous field to check for a date in the case of a timezone select\n // This works because timezone selects are always inserted right after a date with 'timezone: true'\n const previousField = fields?.[index - 1]\n const isTimezoneField =\n previousField?.type === 'date' && previousField.timezone && field.name.includes('_tz')\n\n // Check if the timezone field's options match the global config's supported timezones\n const hasMatchingGlobalTimezones =\n isTimezoneField &&\n config &&\n optionsAreEqual(field.options, config.admin?.timezones?.supportedTimezones)\n\n // Timezone selects should reference the supportedTimezones definition\n // only if the field's options match the global config\n if (isTimezoneField && hasMatchingGlobalTimezones) {\n fieldSchema = {\n $ref: `#/$defs/supportedTimezones`,\n }\n } else {\n if (field.hasMany) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'string',\n },\n }\n if (optionEnums?.length) {\n ;(fieldSchema.items as JSONSchema4).enum = optionEnums\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n }\n if (optionEnums?.length) {\n fieldSchema.enum = optionEnums\n }\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n break\n }\n\n break\n }\n case 'tab': {\n fieldSchema = {\n ...baseFieldSchema,\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: field.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n }),\n }\n\n if (field.interfaceName) {\n fieldSchema = {\n $ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`,\n }\n }\n break\n }\n\n case 'text':\n if (field.hasMany === true) {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('array', isRequired),\n items: { type: 'string' },\n }\n } else {\n fieldSchema = {\n ...baseFieldSchema,\n type: withNullableJSONSchemaType('string', isRequired),\n }\n }\n break\n\n default: {\n break\n }\n }\n\n if ('jsonSchema' in field && field?.jsonSchema?.length) {\n for (const schema of field.jsonSchema) {\n fieldSchema = schema({ jsonSchema: fieldSchema!, variant })\n }\n }\n\n if (fieldSchema! && fieldAffectsData(field)) {\n if (isRequired && !isOptionalOnInput && fieldSchema.required !== false) {\n requiredFieldNames.add(field.name)\n }\n fieldSchemas.set(field.name, fieldSchema)\n }\n\n return fieldSchemas\n }, new Map<string, JSONSchema4>()),\n ),\n required: Array.from(requiredFieldNames),\n }\n}\n\n// This function is part of the public API and is exported through payload/utilities\nexport function entityToJSONSchema(\n config: SanitizedConfig,\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig,\n interfaceNameDefinitions: Map<string, JSONSchema4>,\n defaultIDType: 'number' | 'text',\n typeStringDefinitions: Set<string>,\n collectionIDFieldTypes?: { [key: string]: 'number' | 'string' },\n i18n?: I18n,\n forceInlineBlocks?: boolean,\n variant: SchemaVariant = 'output',\n): JSONSchema4 {\n if (!collectionIDFieldTypes) {\n collectionIDFieldTypes = getCollectionIDFieldTypes({ config, defaultIDType })\n }\n\n const isInput = variant === 'input'\n\n const baseTitle = entity.typescript?.interface\n ? entity.typescript.interface\n : formatNames(entity.slug).singular\n const title = isInput ? `${baseTitle}Input` : baseTitle\n\n let mutableFields = [...entity.flattenedFields]\n\n // `required: true` keeps `id` non-null. On input it's made optional further below (it's dropped\n // from `required`) so you can omit it or pass a custom ID, but it's still never `null`.\n const idField: FieldAffectingData = {\n name: 'id',\n type: defaultIDType as 'text',\n required: true,\n }\n const customIdField = mutableFields.find((field) => field.name === 'id') as FieldAffectingData\n\n if (customIdField && customIdField.type !== 'group' && customIdField.type !== 'tab') {\n mutableFields = mutableFields.map((field) =>\n field === customIdField ? { ...field, required: true } : field,\n )\n } else {\n mutableFields.unshift(idField)\n }\n\n if (isInput) {\n // Timestamps are managed by Payload. `_status` remains because create/update accept it.\n mutableFields = mutableFields.filter(\n (field) => field.name !== 'createdAt' && field.name !== 'updatedAt',\n )\n } else if ('timestamps' in entity && entity.timestamps !== false) {\n // mark timestamp fields required\n mutableFields = mutableFields.map((field) => {\n if (field.name === 'createdAt' || field.name === 'updatedAt') {\n return {\n ...field,\n required: true,\n }\n }\n return field\n })\n }\n\n if (\n 'auth' in entity &&\n entity.auth &&\n (!entity.auth?.disableLocalStrategy ||\n (typeof entity.auth?.disableLocalStrategy === 'object' &&\n entity.auth.disableLocalStrategy.enableFields))\n ) {\n mutableFields.push({\n name: 'password',\n type: 'text',\n })\n }\n\n const isAuthCollection = 'auth' in entity && entity.auth\n\n const fieldsSchema = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: mutableFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n variant,\n })\n\n // On input, `id` is optional (omit it, or pass a custom ID). Removing it from `required` makes\n // it optional without making it nullable.\n if (isInput && Array.isArray(fieldsSchema.required)) {\n fieldsSchema.required = fieldsSchema.required.filter((name) => name !== 'id')\n }\n\n // The `User`-union discriminator (read-side, e.g. `req.user`); not part of create/update data.\n if (isAuthCollection && !isInput) {\n fieldsSchema.properties = {\n ...fieldsSchema.properties,\n collection: { type: 'string', enum: [entity.slug] },\n }\n fieldsSchema.required = [...(fieldsSchema.required || []), 'collection']\n }\n\n const jsonSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n title,\n ...fieldsSchema,\n }\n\n const entityDescription = entityOrFieldToJsDocs({ entity, i18n })\n\n if (entityDescription) {\n jsonSchema.description = entityDescription\n }\n\n return jsonSchema\n}\n\n/**\n * Like {@link entityToJSONSchema}, but returns a standalone schema for one collection or global:\n * the entity plus only the `$defs` it actually uses, so it resolves on its own rather than\n * as part of the whole config schema.\n *\n * Relationship/upload `$ref`s to other collections are left in place - the caller handles those.\n * (The `input` variant reduces relationships to IDs, so only rich-text node `$defs` still ref them.)\n */\nexport function entityToStandaloneJSONSchema({\n config,\n defaultIDType,\n entity,\n i18n,\n variant = 'output',\n}: {\n config: SanitizedConfig\n defaultIDType: 'number' | 'text'\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig\n i18n?: I18n\n variant?: SchemaVariant\n}): JSONSchema4 {\n const definitions = new Map<string, JSONSchema4>()\n\n // entityToJSONSchema fills `definitions` with everything the fields reference (node unions, blocks).\n const schema = entityToJSONSchema(\n config,\n entity,\n definitions,\n defaultIDType,\n new Set(),\n undefined,\n i18n,\n true, // forceInlineBlocks\n variant,\n )\n\n // Timezone fields `$ref` supportedTimezones, which lives on the root config schema, so add it here.\n const supportedTimezones = config.admin?.timezones?.supportedTimezones\n if (\n supportedTimezones?.length &&\n schemaHasRef([schema, ...definitions.values()], '#/$defs/supportedTimezones')\n ) {\n definitions.set('supportedTimezones', timezonesToJSONSchema(supportedTimezones))\n }\n\n return {\n $schema: 'https://json-schema.org/draft/2020-12/schema',\n ...schema,\n $defs: Object.fromEntries(definitions),\n }\n}\n\n/**\n * Recursive function that returns true if\n * `node` has a `$ref` to `ref` somewhere inside it.\n * */\nfunction schemaHasRef(node: unknown, ref: string): boolean {\n if (Array.isArray(node)) {\n return node.some((child) => schemaHasRef(child, ref))\n }\n if (node && typeof node === 'object') {\n const obj = node as Record<string, unknown>\n if (obj.$ref === ref) {\n return true\n }\n return Object.values(obj).some((value) => schemaHasRef(value, ref))\n }\n return false\n}\n\nexport function fieldsToSelectJSONSchema({\n config,\n fields,\n interfaceNameDefinitions,\n}: {\n config: SanitizedConfig\n fields: FlattenedField[]\n interfaceNameDefinitions: Map<string, JSONSchema4>\n}): JSONSchema4 {\n const schema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n }\n\n for (const field of fields) {\n switch (field.type) {\n case 'array':\n case 'group':\n case 'tab': {\n let fieldSchema: JSONSchema4 = fieldsToSelectJSONSchema({\n config,\n fields: field.flattenedFields,\n interfaceNameDefinitions,\n })\n\n if (field.interfaceName) {\n const definition = `${field.interfaceName}_select`\n interfaceNameDefinitions.set(definition, fieldSchema)\n\n fieldSchema = {\n $ref: `#/$defs/${definition}`,\n }\n }\n\n schema.properties![field.name] = {\n oneOf: [\n {\n type: 'boolean',\n },\n fieldSchema,\n ],\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n }\n\n for (const block of field.blocks) {\n if (typeof block === 'string') {\n continue // TODO\n }\n\n let blockSchema = fieldsToSelectJSONSchema({\n config,\n fields: block.flattenedFields,\n interfaceNameDefinitions,\n })\n\n if (block.interfaceName) {\n const definition = `${block.interfaceName}_select`\n interfaceNameDefinitions.set(definition, blockSchema)\n blockSchema = {\n $ref: `#/$defs/${definition}`,\n }\n }\n\n blocksSchema.properties![block.slug] = {\n oneOf: [\n {\n type: 'boolean',\n },\n blockSchema,\n ],\n }\n }\n\n schema.properties![field.name] = {\n oneOf: [\n {\n type: 'boolean',\n },\n blocksSchema,\n ],\n }\n\n break\n }\n\n default:\n schema.properties![field.name] = {\n type: 'boolean',\n }\n break\n }\n }\n\n return schema\n}\n\nconst fieldType: JSONSchema4 = {\n type: 'string',\n required: false,\n}\nconst generateAuthFieldTypes = ({\n type,\n loginWithUsername,\n}: {\n loginWithUsername: Auth['loginWithUsername']\n type: 'forgotOrUnlock' | 'login' | 'register'\n}): JSONSchema4 => {\n if (loginWithUsername) {\n switch (type) {\n case 'forgotOrUnlock': {\n if (loginWithUsername.allowEmailLogin) {\n // allow email or username for unlock/forgot-password\n return {\n additionalProperties: false,\n oneOf: [\n {\n additionalProperties: false,\n properties: { email: fieldType },\n required: ['email'],\n },\n {\n additionalProperties: false,\n properties: { username: fieldType },\n required: ['username'],\n },\n ],\n }\n } else {\n // allow only username for unlock/forgot-password\n return {\n additionalProperties: false,\n properties: { username: fieldType },\n required: ['username'],\n }\n }\n }\n\n case 'login': {\n if (loginWithUsername.allowEmailLogin) {\n // allow username or email and require password for login\n return {\n additionalProperties: false,\n oneOf: [\n {\n additionalProperties: false,\n properties: { email: fieldType, password: fieldType },\n required: ['email', 'password'],\n },\n {\n additionalProperties: false,\n properties: { password: fieldType, username: fieldType },\n required: ['username', 'password'],\n },\n ],\n }\n } else {\n // allow only username and password for login\n return {\n additionalProperties: false,\n properties: {\n password: fieldType,\n username: fieldType,\n },\n required: ['username', 'password'],\n }\n }\n }\n\n case 'register': {\n const requiredFields: ('email' | 'password' | 'username')[] = ['password']\n const properties: {\n email?: JSONSchema4['properties']\n password?: JSONSchema4['properties']\n username?: JSONSchema4['properties']\n } = {\n password: fieldType,\n username: fieldType,\n }\n\n if (loginWithUsername.requireEmail) {\n requiredFields.push('email')\n }\n if (loginWithUsername.requireUsername) {\n requiredFields.push('username')\n }\n if (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin) {\n properties.email = fieldType\n }\n\n return {\n additionalProperties: false,\n properties,\n required: requiredFields,\n }\n }\n }\n }\n\n // default email (and password for login/register)\n return {\n additionalProperties: false,\n properties: { email: fieldType, password: fieldType },\n required: ['email', 'password'],\n }\n}\n\nexport function authCollectionToOperationsJSONSchema(\n config: SanitizedCollectionConfig,\n): JSONSchema4 {\n const loginWithUsername = config.auth?.loginWithUsername\n const loginUserFields: JSONSchema4 = generateAuthFieldTypes({ type: 'login', loginWithUsername })\n const forgotOrUnlockUserFields: JSONSchema4 = generateAuthFieldTypes({\n type: 'forgotOrUnlock',\n loginWithUsername,\n })\n const registerUserFields: JSONSchema4 = generateAuthFieldTypes({\n type: 'register',\n loginWithUsername,\n })\n\n const properties: JSONSchema4['properties'] = {\n forgotPassword: forgotOrUnlockUserFields,\n login: loginUserFields,\n registerFirstUser: registerUserFields,\n unlock: forgotOrUnlockUserFields,\n }\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n title: `${formatNames(config.slug).singular}AuthOperations`,\n }\n}\n\n// Generates the JSON Schema for supported timezones\nexport function timezonesToJSONSchema(\n supportedTimezones: SanitizedConfig['admin']['timezones']['supportedTimezones'],\n): JSONSchema4 {\n return {\n description: 'Supported timezones in IANA format.',\n enum: supportedTimezones.map((timezone) =>\n typeof timezone === 'string' ? timezone : timezone.value,\n ),\n }\n}\n\nfunction generateAuthOperationSchemas(collections: SanitizedCollectionConfig[]): JSONSchema4 {\n const properties = collections.reduce(\n (acc, collection) => {\n if (collection.auth) {\n acc[collection.slug] = {\n $ref: `#/$defs/auth/${collection.slug}`,\n }\n }\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\nconst hashBlockSchema = (schema: JSONSchema4): string =>\n createHash('sha256').update(JSON.stringify(schema)).digest('hex').slice(0, 8).toUpperCase()\n\n/**\n * Registers a block's schema as a top-level definition and returns its name.\n *\n * The name is the block's `interfaceName`, or a PascalCase form of its slug. If a different block\n * already uses that name - whether it was auto-generated or an explicit `interfaceName` - this one\n * gets a content-hash suffix (`Hero_3F2A1B0C`) so the two don't overwrite each other. Registering\n * the same block shape again reuses its name.\n *\n * The `input` variant adds an `Input` suffix (`HeroInput`) - unless the read-shaped def is already\n * registered with byte-identical content (a block with nothing that differs between input and\n * output), in which case it's shared as-is rather than emitting a redundant twin.\n */\nexport function registerBlockInterface(\n block: { interfaceName?: string; slug: string },\n blockSchema: JSONSchema4,\n interfaceNameDefinitions: Map<string, JSONSchema4>,\n variant: SchemaVariant = 'output',\n): string {\n const rawName = block.interfaceName ?? toWords(block.slug, true)\n\n if (variant === 'input') {\n const outputDef = interfaceNameDefinitions.get(rawName)\n if (outputDef && hashBlockSchema(outputDef) === hashBlockSchema(blockSchema)) {\n return rawName\n }\n }\n\n const baseName = variant === 'input' ? `${rawName}Input` : rawName\n const existing = interfaceNameDefinitions.get(baseName)\n\n // The name is free - claim it.\n if (!existing) {\n interfaceNameDefinitions.set(baseName, blockSchema)\n return baseName\n }\n\n const hash = hashBlockSchema(blockSchema)\n\n // The same block shape is already registered under this name, so reuse it.\n if (hashBlockSchema(existing) === hash) {\n return baseName\n }\n\n // A different block already owns the name. Disambiguate this one with its hash.\n blockSchema.description = `Multiple blocks resolve to the \\`${baseName}\\` interface with different fields, so a content hash is appended to keep the generated types stable and unambiguous. Set a unique \\`interfaceName\\` on the block to choose the name yourself. See https://payloadcms.com/docs/typescript/generating-types#block-interface-name-collisions`\n\n const uniqueName = `${baseName}_${hash}`\n interfaceNameDefinitions.set(uniqueName, blockSchema)\n return uniqueName\n}\n\n/**\n * This is used for generating the TypeScript types (payload-types.ts) with the payload generate:types command.\n */\nexport function configToJSONSchema(\n config: SanitizedConfig,\n defaultIDType?: 'number' | 'text',\n i18n?: I18n,\n { forceInlineBlocks }: ConfigToJSONSchemaOptions = {},\n): { jsonSchema: JSONSchema4; typeStringDefinitions: Set<string> } {\n // a mutable Map of top-level definitions in the generated JSON Schema.\n // - `array`/`group`/named-`tab` fields are registered here when they set\n // `interfaceName` (otherwise they stay inline).\n // - `block` configs always register here via `registerBlockInterface`, keyed by\n // `block.interfaceName` if set, else a PascalCase form of the slug (with a\n // content-hash suffix when two different blocks resolve to the same name).\n const interfaceNameDefinitions: Map<string, JSONSchema4> = new Map()\n // a mutable Set for raw TS source to be appended to `payload-types.ts`.\n const typeStringDefinitions: Set<string> = new Set()\n\n // Used for relationship fields, to determine whether to use a string or number type for the ID.\n const collectionIDFieldTypes = getCollectionIDFieldTypes({\n config,\n defaultIDType: defaultIDType!,\n })\n\n // Collections and Globals have to be moved to the top-level definitions as well. Reason: The top-level type will be the `Config` type - we don't want all collection and global\n // types to be inlined inside the `Config` type\n\n const entities: {\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig\n type: 'collection' | 'global'\n }[] = [\n ...config.globals.map((global) => ({ type: 'global' as const, entity: global })),\n ...config.collections.map((collection) => ({\n type: 'collection' as const,\n entity: collection,\n })),\n ]\n\n const generateInputTypes = config.typescript?.generateInputTypes === true\n\n const entityDefinitions: { [k: string]: JSONSchema4 } = entities.reduce(\n (acc, { type, entity }) => {\n acc[entity.slug] = entityToJSONSchema(\n config,\n entity,\n interfaceNameDefinitions,\n defaultIDType!,\n typeStringDefinitions,\n collectionIDFieldTypes,\n i18n,\n forceInlineBlocks,\n )\n\n if (generateInputTypes) {\n acc[`${entity.slug}_input`] = entityToJSONSchema(\n config,\n entity,\n interfaceNameDefinitions,\n defaultIDType!,\n typeStringDefinitions,\n collectionIDFieldTypes,\n i18n,\n forceInlineBlocks,\n 'input',\n )\n }\n\n const select = fieldsToSelectJSONSchema({\n config,\n fields: entity.flattenedFields,\n interfaceNameDefinitions,\n })\n\n if (type === 'global') {\n select.properties!.globalType = {\n type: 'boolean',\n }\n }\n\n acc[`${entity.slug}_select`] = {\n type: 'object',\n additionalProperties: false,\n ...select,\n }\n\n return acc\n },\n {} as Record<string, JSONSchema4>,\n )\n\n const timezoneDefinitions = timezonesToJSONSchema(config.admin.timezones.supportedTimezones)\n const widgetSchemas = generateWidgetSchemas({\n collectionIDFieldTypes,\n config,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n })\n\n const authOperationDefinitions = [...config.collections]\n .filter(({ auth }) => Boolean(auth))\n .reduce(\n (acc, authCollection) => {\n acc.auth[authCollection.slug] = authCollectionToOperationsJSONSchema(authCollection)\n return acc\n },\n { auth: {} as Record<string, JSONSchema4> },\n )\n\n const jobsSchemas = config.jobs\n ? generateJobsJSONSchemas(\n config,\n config.jobs,\n interfaceNameDefinitions,\n collectionIDFieldTypes,\n typeStringDefinitions,\n i18n,\n )\n : {}\n\n const blocksDefinition: JSONSchema4 | undefined = {\n type: 'object',\n additionalProperties: false,\n properties: {},\n required: [],\n }\n if (config?.blocks?.length) {\n for (const block of config.blocks) {\n const blockFieldSchemas = fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: block.flattenedFields,\n forceInlineBlocks,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n })\n\n const blockSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {\n ...blockFieldSchemas.properties,\n blockType: {\n const: block.slug,\n },\n },\n required: ['blockType', ...blockFieldSchemas.required],\n }\n\n blocksDefinition.properties![block.slug] = {\n $ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions)}`,\n }\n ;(blocksDefinition.required as string[]).push(block.slug)\n }\n }\n\n let jsonSchema: JSONSchema4 = {\n $defs: {\n supportedTimezones: timezoneDefinitions,\n ...entityDefinitions,\n ...widgetSchemas.definitions,\n ...Object.fromEntries(interfaceNameDefinitions),\n ...authOperationDefinitions,\n },\n $schema: 'https://json-schema.org/draft/2020-12/schema',\n additionalProperties: false,\n // These properties here will be very simple, as all the complexity is in the definitions. These are just the properties for the top-level `Config` type\n type: 'object',\n properties: {\n auth: generateAuthOperationSchemas(config.collections),\n blocks: blocksDefinition,\n collections: generateEntitySchemas(config.collections || []),\n collectionsJoins: generateCollectionJoinsSchemas(config.collections || []),\n collectionsSelect: generateEntitySelectSchemas(config.collections || []),\n db: generateDbEntitySchema(config),\n fallbackLocale: generateFallbackLocaleEntitySchemas(config.localization),\n globals: generateEntitySchemas(config.globals || []),\n globalsSelect: generateEntitySelectSchemas(config.globals || []),\n locale: generateLocaleEntitySchemas(config.localization),\n widgets: widgetSchemas.schema,\n ...(generateInputTypes\n ? {\n collectionsInput: generateEntityInputSchemas(config.collections || []),\n globalsInput: generateEntityInputSchemas(config.globals || []),\n }\n : {}),\n user: generateAuthEntitySchemas(config.collections),\n },\n required: [\n 'user',\n 'locale',\n 'fallbackLocale',\n 'collections',\n 'collectionsSelect',\n 'collectionsJoins',\n 'globalsSelect',\n ...(generateInputTypes ? ['collectionsInput', 'globalsInput'] : []),\n 'globals',\n 'auth',\n 'db',\n 'jobs',\n 'blocks',\n 'widgets',\n ],\n title: 'Config',\n }\n\n if (jobsSchemas.definitions?.size) {\n for (const [key, value] of jobsSchemas.definitions) {\n jsonSchema.$defs![key] = value\n }\n }\n if (jobsSchemas.properties) {\n jsonSchema.properties!.jobs = {\n type: 'object',\n additionalProperties: false,\n properties: jobsSchemas.properties,\n required: ['tasks', 'workflows'],\n }\n }\n\n if (config?.typescript?.schema?.length) {\n for (const schema of config.typescript.schema) {\n jsonSchema = schema({ collectionIDFieldTypes, config, i18n: i18n!, jsonSchema })\n }\n }\n\n return { jsonSchema, typeStringDefinitions }\n}\n"],"names":["createHash","MissingEditorProp","fieldAffectsData","fieldIsVirtual","generateJobsJSONSchemas","flattenAllFields","formatNames","toWords","getCollectionIDFieldTypes","optionsAreEqual","fieldIsInputExcluded","field","type","fieldIsRequired","isConditional","Boolean","admin","condition","isMarkedRequired","required","flattenedFields","some","subField","buildOptionEnums","options","map","option","value","generateEntitySchemas","entities","properties","reduce","acc","slug","$ref","additionalProperties","Object","keys","generateEntitySelectSchemas","generateEntityInputSchemas","generateCollectionJoinsSchemas","collections","joins","polymorphicJoins","schema","collectionSlug","join","joinPath","enum","push","collection","length","widgetWidths","getAllowedWidgetWidths","maxWidth","minWidth","minIndex","indexOf","maxIndex","slice","generateWidgetSchemas","collectionIDFieldTypes","config","forceInlineBlocks","i18n","interfaceNameDefinitions","typeStringDefinitions","widgets","dashboard","definitions","widget","definition","widthEnum","dataSchema","fields","widgetFieldSchemas","fieldsToJSONSchema","data","width","generateLocaleEntitySchemas","localization","locales","localesFromConfig","locale","code","generateFallbackLocaleEntitySchemas","localeCodes","localeCode","oneOf","items","generateAuthEntitySchemas","filter","auth","generateDbEntitySchema","defaultIDType","db","withNullableJSONSchemaType","fieldType","isRequired","fieldTypes","entityOrFieldToJsDocs","entity","description","undefined","en","language","variant","requiredFieldNames","Set","registerNamedInterface","name","outputDef","get","JSON","stringify","inputName","set","fromEntries","fieldSchemas","index","hasDefaultValue","defaultValue","isOptionalOnInput","fieldDescription","baseFieldSchema","fieldSchema","interfaceName","hasBlocks","blocks","blockOrReference","block","find","b","blockFieldSchemas","blockSchema","blockType","const","registerBlockInterface","Array","isArray","relationTo","docs","hasNextPage","totalDocs","jsonSchema","hasMany","maxItems","minItems","relationValueSchema","relation","editor","Error","optionEnums","previousField","isTimezoneField","timezone","includes","hasMatchingGlobalTimezones","timezones","supportedTimezones","add","Map","from","entityToJSONSchema","isInput","baseTitle","typescript","interface","singular","title","mutableFields","idField","customIdField","unshift","timestamps","disableLocalStrategy","enableFields","isAuthCollection","fieldsSchema","entityDescription","entityToStandaloneJSONSchema","schemaHasRef","values","timezonesToJSONSchema","$schema","$defs","node","ref","child","obj","fieldsToSelectJSONSchema","blocksSchema","generateAuthFieldTypes","loginWithUsername","allowEmailLogin","email","username","password","requiredFields","requireEmail","requireUsername","authCollectionToOperationsJSONSchema","loginUserFields","forgotOrUnlockUserFields","registerUserFields","forgotPassword","login","registerFirstUser","unlock","generateAuthOperationSchemas","hashBlockSchema","update","digest","toUpperCase","rawName","baseName","existing","hash","uniqueName","configToJSONSchema","globals","global","generateInputTypes","entityDefinitions","select","globalType","timezoneDefinitions","widgetSchemas","authOperationDefinitions","authCollection","jobsSchemas","jobs","blocksDefinition","collectionsJoins","collectionsSelect","fallbackLocale","globalsSelect","collectionsInput","globalsInput","user","size","key"],"mappings":"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"}
@@ -1,14 +1,16 @@
1
- import type { SanitizedConfig } from '../config/types.js';
1
+ import type { Payload, RequestContext, TypedLocale, User } from '../index.js';
2
2
  import type { PayloadRequest } from '../types/index.js';
3
- type Args = {
4
- canSetHeaders?: boolean;
5
- config: Promise<SanitizedConfig> | SanitizedConfig;
6
- params?: {
7
- collection: string;
8
- };
9
- payloadInstanceCacheKey?: string;
10
- request: Request;
3
+ export type CreatePayloadRequestArgs = {
4
+ context?: RequestContext;
5
+ depth?: number;
6
+ fallbackLocale?: false | TypedLocale;
7
+ locale?: string;
8
+ payload: Payload;
9
+ req?: Partial<PayloadRequest>;
10
+ urlSuffix?: string;
11
+ user?: User;
11
12
  };
12
- export declare const createPayloadRequest: ({ canSetHeaders, config: configPromise, params, payloadInstanceCacheKey, request, }: Args) => Promise<PayloadRequest>;
13
+ type CreatePayloadRequest = (args: CreatePayloadRequestArgs) => Promise<PayloadRequest>;
14
+ export declare const createPayloadRequest: CreatePayloadRequest;
13
15
  export {};
14
16
  //# sourceMappingURL=createPayloadRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPayloadRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/createPayloadRequest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,KAAK,EAAkC,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAUvF,KAAK,IAAI,GAAG;IACV,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,oBAAoB,wFAM9B,IAAI,KAAG,OAAO,CAAC,cAAc,CA2G/B,CAAA"}
1
+ {"version":3,"file":"createPayloadRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/createPayloadRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAsFvD,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,KAAK,GAAG,WAAW,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;AAEvF,eAAO,MAAM,oBAAoB,EAAE,oBA6DlC,CAAA"}