payload 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ee5d8bd

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 (703) hide show
  1. package/dist/admin/adapters/router.d.ts +1 -1
  2. package/dist/admin/adapters/router.d.ts.map +1 -1
  3. package/dist/admin/adapters/router.js.map +1 -1
  4. package/dist/admin/forms/Diff.d.ts +0 -4
  5. package/dist/admin/forms/Diff.d.ts.map +1 -1
  6. package/dist/admin/forms/Diff.js.map +1 -1
  7. package/dist/admin/forms/Form.d.ts +0 -2
  8. package/dist/admin/forms/Form.d.ts.map +1 -1
  9. package/dist/admin/forms/Form.js.map +1 -1
  10. package/dist/admin/initAdminContext.d.ts.map +1 -1
  11. package/dist/admin/initAdminContext.js +0 -10
  12. package/dist/admin/initAdminContext.js.map +1 -1
  13. package/dist/auth/createAuthToken.d.ts +26 -0
  14. package/dist/auth/createAuthToken.d.ts.map +1 -0
  15. package/dist/auth/createAuthToken.js +39 -0
  16. package/dist/auth/createAuthToken.js.map +1 -0
  17. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  18. package/dist/auth/endpoints/refresh.js +2 -1
  19. package/dist/auth/endpoints/refresh.js.map +1 -1
  20. package/dist/auth/getFieldsToSign.js.map +1 -1
  21. package/dist/auth/loginWithCookie.d.ts.map +1 -1
  22. package/dist/auth/loginWithCookie.js +1 -0
  23. package/dist/auth/loginWithCookie.js.map +1 -1
  24. package/dist/auth/operations/local/login.d.ts.map +1 -1
  25. package/dist/auth/operations/local/login.js +1 -0
  26. package/dist/auth/operations/local/login.js.map +1 -1
  27. package/dist/auth/operations/login.d.ts +2 -0
  28. package/dist/auth/operations/login.d.ts.map +1 -1
  29. package/dist/auth/operations/login.js +6 -19
  30. package/dist/auth/operations/login.js.map +1 -1
  31. package/dist/auth/operations/refresh.d.ts +8 -0
  32. package/dist/auth/operations/refresh.d.ts.map +1 -1
  33. package/dist/auth/operations/refresh.js +50 -19
  34. package/dist/auth/operations/refresh.js.map +1 -1
  35. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  36. package/dist/auth/operations/resetPassword.js +54 -20
  37. package/dist/auth/operations/resetPassword.js.map +1 -1
  38. package/dist/auth/refreshAuthToken.d.ts +32 -0
  39. package/dist/auth/refreshAuthToken.d.ts.map +1 -0
  40. package/dist/auth/refreshAuthToken.js +113 -0
  41. package/dist/auth/refreshAuthToken.js.map +1 -0
  42. package/dist/auth/serverFunctions/cookies.js.map +1 -1
  43. package/dist/auth/serverFunctions/login.js.map +1 -1
  44. package/dist/auth/sessions.d.ts +9 -2
  45. package/dist/auth/sessions.d.ts.map +1 -1
  46. package/dist/auth/sessions.js +6 -5
  47. package/dist/auth/sessions.js.map +1 -1
  48. package/dist/auth/types.d.ts +25 -1
  49. package/dist/auth/types.d.ts.map +1 -1
  50. package/dist/auth/types.js.map +1 -1
  51. package/dist/cli/commands/data/utilities.d.ts +1 -1
  52. package/dist/cli/commands/data/utilities.d.ts.map +1 -1
  53. package/dist/cli/commands/data/utilities.js.map +1 -1
  54. package/dist/cli/defineCLICommand.js +1 -1
  55. package/dist/cli/defineCLICommand.js.map +1 -1
  56. package/dist/collections/config/client.d.ts +1 -1
  57. package/dist/collections/config/client.d.ts.map +1 -1
  58. package/dist/collections/config/client.js +0 -1
  59. package/dist/collections/config/client.js.map +1 -1
  60. package/dist/collections/config/defaults.d.ts +2 -0
  61. package/dist/collections/config/defaults.d.ts.map +1 -1
  62. package/dist/collections/config/defaults.js +4 -0
  63. package/dist/collections/config/defaults.js.map +1 -1
  64. package/dist/collections/config/sanitize.d.ts.map +1 -1
  65. package/dist/collections/config/sanitize.js +3 -0
  66. package/dist/collections/config/sanitize.js.map +1 -1
  67. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  68. package/dist/collections/config/sanitizeCompoundIndexes.js +0 -9
  69. package/dist/collections/config/sanitizeCompoundIndexes.js.map +1 -1
  70. package/dist/collections/config/types.d.ts +4 -21
  71. package/dist/collections/config/types.d.ts.map +1 -1
  72. package/dist/collections/config/types.js.map +1 -1
  73. package/dist/collections/dataloader.d.ts +1 -10
  74. package/dist/collections/dataloader.d.ts.map +1 -1
  75. package/dist/collections/dataloader.js +6 -14
  76. package/dist/collections/dataloader.js.map +1 -1
  77. package/dist/collections/operations/create.d.ts.map +1 -1
  78. package/dist/collections/operations/create.js +0 -13
  79. package/dist/collections/operations/create.js.map +1 -1
  80. package/dist/collections/operations/delete.d.ts.map +1 -1
  81. package/dist/collections/operations/delete.js +121 -638
  82. package/dist/collections/operations/delete.js.map +1 -1
  83. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  84. package/dist/collections/operations/deleteByID.js +32 -238
  85. package/dist/collections/operations/deleteByID.js.map +1 -1
  86. package/dist/collections/operations/findByID.d.ts.map +1 -1
  87. package/dist/collections/operations/findByID.js +0 -6
  88. package/dist/collections/operations/findByID.js.map +1 -1
  89. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  90. package/dist/collections/operations/findDistinct.js +6 -7
  91. package/dist/collections/operations/findDistinct.js.map +1 -1
  92. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  93. package/dist/collections/operations/findVersionByID.js +7 -0
  94. package/dist/collections/operations/findVersionByID.js.map +1 -1
  95. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  96. package/dist/collections/operations/findVersions.js +5 -0
  97. package/dist/collections/operations/findVersions.js.map +1 -1
  98. package/dist/collections/operations/local/count.d.ts +4 -9
  99. package/dist/collections/operations/local/count.d.ts.map +1 -1
  100. package/dist/collections/operations/local/count.js.map +1 -1
  101. package/dist/collections/operations/local/countVersions.d.ts +0 -4
  102. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  103. package/dist/collections/operations/local/countVersions.js.map +1 -1
  104. package/dist/collections/operations/local/create.d.ts +4 -9
  105. package/dist/collections/operations/local/create.d.ts.map +1 -1
  106. package/dist/collections/operations/local/create.js.map +1 -1
  107. package/dist/collections/operations/local/delete.d.ts +4 -9
  108. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  109. package/dist/collections/operations/local/delete.js.map +1 -1
  110. package/dist/collections/operations/local/duplicate.d.ts +0 -5
  111. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  112. package/dist/collections/operations/local/duplicate.js.map +1 -1
  113. package/dist/collections/operations/local/find.d.ts +4 -9
  114. package/dist/collections/operations/local/find.d.ts.map +1 -1
  115. package/dist/collections/operations/local/find.js.map +1 -1
  116. package/dist/collections/operations/local/findByID.d.ts +4 -9
  117. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  118. package/dist/collections/operations/local/findByID.js.map +1 -1
  119. package/dist/collections/operations/local/findDistinct.d.ts +0 -5
  120. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  121. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  122. package/dist/collections/operations/local/findVersionByID.d.ts +0 -5
  123. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  124. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  125. package/dist/collections/operations/local/findVersions.d.ts +0 -5
  126. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  127. package/dist/collections/operations/local/findVersions.js.map +1 -1
  128. package/dist/collections/operations/local/restoreVersion.d.ts +0 -5
  129. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  130. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  131. package/dist/collections/operations/local/update.d.ts +4 -9
  132. package/dist/collections/operations/local/update.d.ts.map +1 -1
  133. package/dist/collections/operations/local/update.js.map +1 -1
  134. package/dist/collections/operations/renameFile.js +1 -1
  135. package/dist/collections/operations/renameFile.js.map +1 -1
  136. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  137. package/dist/collections/operations/restoreVersion.js +76 -157
  138. package/dist/collections/operations/restoreVersion.js.map +1 -1
  139. package/dist/collections/operations/update.d.ts.map +1 -1
  140. package/dist/collections/operations/update.js +171 -357
  141. package/dist/collections/operations/update.js.map +1 -1
  142. package/dist/collections/operations/updateByID.d.ts +0 -15
  143. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  144. package/dist/collections/operations/updateByID.js +60 -265
  145. package/dist/collections/operations/updateByID.js.map +1 -1
  146. package/dist/collections/operations/utilities/buildBeforeOperation.d.ts.map +1 -1
  147. package/dist/collections/operations/utilities/buildBeforeOperation.js +0 -7
  148. package/dist/collections/operations/utilities/buildBeforeOperation.js.map +1 -1
  149. package/dist/collections/operations/utilities/update.d.ts +1 -14
  150. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  151. package/dist/collections/operations/utilities/update.js +20 -92
  152. package/dist/collections/operations/utilities/update.js.map +1 -1
  153. package/dist/collections/operations/validate.js +4 -4
  154. package/dist/collections/operations/validate.js.map +1 -1
  155. package/dist/config/client.d.ts +1 -3
  156. package/dist/config/client.d.ts.map +1 -1
  157. package/dist/config/client.js +1 -9
  158. package/dist/config/client.js.map +1 -1
  159. package/dist/config/defaults.d.ts.map +1 -1
  160. package/dist/config/defaults.js +1 -0
  161. package/dist/config/defaults.js.map +1 -1
  162. package/dist/config/definePlugin.js.map +1 -1
  163. package/dist/config/sanitize.d.ts.map +1 -1
  164. package/dist/config/sanitize.js +2 -40
  165. package/dist/config/sanitize.js.map +1 -1
  166. package/dist/config/types.d.ts +13 -21
  167. package/dist/config/types.d.ts.map +1 -1
  168. package/dist/config/types.js.map +1 -1
  169. package/dist/database/defaultCopy.d.ts.map +1 -1
  170. package/dist/database/defaultCopy.js +0 -1
  171. package/dist/database/defaultCopy.js.map +1 -1
  172. package/dist/database/types.d.ts +4 -75
  173. package/dist/database/types.d.ts.map +1 -1
  174. package/dist/database/types.js.map +1 -1
  175. package/dist/exports/build-config.d.ts +9 -0
  176. package/dist/exports/build-config.d.ts.map +1 -0
  177. package/dist/exports/build-config.js +38 -0
  178. package/dist/exports/build-config.js.map +1 -0
  179. package/dist/exports/shared.d.ts +0 -2
  180. package/dist/exports/shared.d.ts.map +1 -1
  181. package/dist/exports/shared.js +0 -2
  182. package/dist/exports/shared.js.map +1 -1
  183. package/dist/fields/baseFields/authorship/index.d.ts +1 -2
  184. package/dist/fields/baseFields/authorship/index.d.ts.map +1 -1
  185. package/dist/fields/baseFields/authorship/index.js +0 -12
  186. package/dist/fields/baseFields/authorship/index.js.map +1 -1
  187. package/dist/fields/config/client.js.map +1 -1
  188. package/dist/fields/config/reservedFieldNames.d.ts.map +1 -1
  189. package/dist/fields/config/reservedFieldNames.js.map +1 -1
  190. package/dist/fields/config/types.d.ts.map +1 -1
  191. package/dist/fields/config/types.js.map +1 -1
  192. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  193. package/dist/fields/hooks/afterRead/index.d.ts +0 -8
  194. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  195. package/dist/fields/hooks/afterRead/index.js +2 -6
  196. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  197. package/dist/fields/hooks/afterRead/promise.d.ts +1 -3
  198. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  199. package/dist/fields/hooks/afterRead/promise.js +17 -41
  200. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  201. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  202. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +0 -2
  203. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  204. package/dist/fields/hooks/afterRead/traverseFields.d.ts +1 -3
  205. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  206. package/dist/fields/hooks/afterRead/traverseFields.js +2 -4
  207. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  208. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  209. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.js +0 -3
  210. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.js.map +1 -1
  211. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts +14 -0
  212. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts.map +1 -0
  213. package/dist/fields/hooks/beforeChange/flattenValidationData.js +36 -0
  214. package/dist/fields/hooks/beforeChange/flattenValidationData.js.map +1 -0
  215. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
  216. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  217. package/dist/fields/hooks/beforeChange/promise.js +96 -22
  218. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  219. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
  220. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  221. package/dist/fields/hooks/beforeChange/traverseFields.js +2 -1
  222. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  223. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  224. package/dist/fields/hooks/beforeValidate/promise.js +0 -8
  225. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  226. package/dist/fields/validations.d.ts.map +1 -1
  227. package/dist/fields/validations.js +4 -1
  228. package/dist/fields/validations.js.map +1 -1
  229. package/dist/globals/config/types.d.ts +2 -6
  230. package/dist/globals/config/types.d.ts.map +1 -1
  231. package/dist/globals/config/types.js.map +1 -1
  232. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  233. package/dist/globals/operations/countGlobalVersions.js +0 -7
  234. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  235. package/dist/globals/operations/findOne.d.ts.map +1 -1
  236. package/dist/globals/operations/findOne.js +0 -7
  237. package/dist/globals/operations/findOne.js.map +1 -1
  238. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  239. package/dist/globals/operations/findVersionByID.js +6 -6
  240. package/dist/globals/operations/findVersionByID.js.map +1 -1
  241. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  242. package/dist/globals/operations/findVersions.js +4 -6
  243. package/dist/globals/operations/findVersions.js.map +1 -1
  244. package/dist/globals/operations/local/countVersions.d.ts +0 -5
  245. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  246. package/dist/globals/operations/local/countVersions.js.map +1 -1
  247. package/dist/globals/operations/local/findOne.d.ts +0 -5
  248. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  249. package/dist/globals/operations/local/findOne.js.map +1 -1
  250. package/dist/globals/operations/local/findVersionByID.d.ts +0 -5
  251. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  252. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  253. package/dist/globals/operations/local/findVersions.d.ts +0 -5
  254. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  255. package/dist/globals/operations/local/findVersions.js.map +1 -1
  256. package/dist/globals/operations/local/restoreVersion.d.ts +0 -5
  257. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  258. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  259. package/dist/globals/operations/local/update.d.ts +0 -5
  260. package/dist/globals/operations/local/update.d.ts.map +1 -1
  261. package/dist/globals/operations/local/update.js +18 -61
  262. package/dist/globals/operations/local/update.js.map +1 -1
  263. package/dist/globals/operations/restoreVersion.d.ts +2 -3
  264. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  265. package/dist/globals/operations/restoreVersion.js +24 -61
  266. package/dist/globals/operations/restoreVersion.js.map +1 -1
  267. package/dist/globals/operations/update.d.ts.map +1 -1
  268. package/dist/globals/operations/update.js +8 -86
  269. package/dist/globals/operations/update.js.map +1 -1
  270. package/dist/globals/operations/validate.js +1 -1
  271. package/dist/globals/operations/validate.js.map +1 -1
  272. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  273. package/dist/hierarchy/addHierarchyToCollection.js +32 -21
  274. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  275. package/dist/hierarchy/createFolderField.js.map +1 -1
  276. package/dist/hierarchy/getInitialTreeData.d.ts +1 -3
  277. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  278. package/dist/hierarchy/getInitialTreeData.js +1 -4
  279. package/dist/hierarchy/getInitialTreeData.js.map +1 -1
  280. package/dist/hierarchy/resolveHierarchyCollections.js +9 -3
  281. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  282. package/dist/hierarchy/utils/computePaths.d.ts.map +1 -1
  283. package/dist/hierarchy/utils/computePaths.js.map +1 -1
  284. package/dist/index.bundled.d.ts +4336 -5501
  285. package/dist/index.d.ts +27 -51
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +14 -37
  288. package/dist/index.js.map +1 -1
  289. package/dist/llm-instructions/getInstructionsCollection.d.ts.map +1 -1
  290. package/dist/llm-instructions/getInstructionsCollection.js +2 -0
  291. package/dist/llm-instructions/getInstructionsCollection.js.map +1 -1
  292. package/dist/preferences/keys.d.ts +4 -11
  293. package/dist/preferences/keys.d.ts.map +1 -1
  294. package/dist/preferences/keys.js +3 -10
  295. package/dist/preferences/keys.js.map +1 -1
  296. package/dist/preferences/types.d.ts +0 -19
  297. package/dist/preferences/types.d.ts.map +1 -1
  298. package/dist/preferences/types.js.map +1 -1
  299. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +1 -1
  300. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  301. package/dist/types/index.d.ts +0 -13
  302. package/dist/types/index.d.ts.map +1 -1
  303. package/dist/types/index.js.map +1 -1
  304. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  305. package/dist/uploads/deleteAssociatedFiles.js +29 -108
  306. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  307. package/dist/uploads/endpoints/getFile.d.ts.map +1 -1
  308. package/dist/uploads/endpoints/getFile.js +0 -5
  309. package/dist/uploads/endpoints/getFile.js.map +1 -1
  310. package/dist/uploads/fileExists.d.ts.map +1 -1
  311. package/dist/uploads/fileExists.js +2 -5
  312. package/dist/uploads/fileExists.js.map +1 -1
  313. package/dist/uploads/fileVersioning/archive.d.ts.map +1 -1
  314. package/dist/uploads/fileVersioning/archive.js +1 -15
  315. package/dist/uploads/fileVersioning/archive.js.map +1 -1
  316. package/dist/uploads/fileVersioning/cleanup.d.ts +0 -7
  317. package/dist/uploads/fileVersioning/cleanup.d.ts.map +1 -1
  318. package/dist/uploads/fileVersioning/cleanup.js +0 -12
  319. package/dist/uploads/fileVersioning/cleanup.js.map +1 -1
  320. package/dist/uploads/fileVersioning/cloudStorage.d.ts.map +1 -1
  321. package/dist/uploads/fileVersioning/cloudStorage.js +1 -16
  322. package/dist/uploads/fileVersioning/cloudStorage.js.map +1 -1
  323. package/dist/uploads/fileVersioning/resolveHistoricalFile.js.map +1 -1
  324. package/dist/uploads/formatFilesize.js +1 -1
  325. package/dist/uploads/formatFilesize.js.map +1 -1
  326. package/dist/uploads/generateFileData.d.ts +0 -5
  327. package/dist/uploads/generateFileData.d.ts.map +1 -1
  328. package/dist/uploads/generateFileData.js +2 -74
  329. package/dist/uploads/generateFileData.js.map +1 -1
  330. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  331. package/dist/uploads/getBaseFields.js +29 -46
  332. package/dist/uploads/getBaseFields.js.map +1 -1
  333. package/dist/uploads/getFileContentRequirement.js.map +1 -1
  334. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -1
  335. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  336. package/dist/uploads/getSafeFilename.js +3 -5
  337. package/dist/uploads/getSafeFilename.js.map +1 -1
  338. package/dist/uploads/safeFetch.js.map +1 -1
  339. package/dist/uploads/stagedUpload.js.map +1 -1
  340. package/dist/uploads/transformers/handleDynamicFileRequest.js +11 -2
  341. package/dist/uploads/transformers/handleDynamicFileRequest.js.map +1 -1
  342. package/dist/uploads/types.d.ts +0 -11
  343. package/dist/uploads/types.d.ts.map +1 -1
  344. package/dist/uploads/types.js.map +1 -1
  345. package/dist/uploads/uploadFiles.d.ts +1 -4
  346. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  347. package/dist/uploads/uploadFiles.js +5 -29
  348. package/dist/uploads/uploadFiles.js.map +1 -1
  349. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  350. package/dist/utilities/addSelectGenericsToGeneretedTypes.js +0 -1
  351. package/dist/utilities/addSelectGenericsToGeneretedTypes.js.map +1 -1
  352. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  353. package/dist/utilities/assertNoValidationWrite.d.ts.map +1 -1
  354. package/dist/utilities/assertNoValidationWrite.js +0 -4
  355. package/dist/utilities/assertNoValidationWrite.js.map +1 -1
  356. package/dist/utilities/checkDocumentLockStatus.d.ts +6 -15
  357. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  358. package/dist/utilities/checkDocumentLockStatus.js +11 -44
  359. package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
  360. package/dist/utilities/cloneValidationRequest.js.map +1 -1
  361. package/dist/utilities/commitTransaction.d.ts +0 -4
  362. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  363. package/dist/utilities/commitTransaction.js +1 -41
  364. package/dist/utilities/commitTransaction.js.map +1 -1
  365. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  366. package/dist/utilities/configToJSONSchema.js +2 -18
  367. package/dist/utilities/configToJSONSchema.js.map +1 -1
  368. package/dist/utilities/createPayloadRequest.d.ts +0 -5
  369. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  370. package/dist/utilities/createPayloadRequest.js +3 -50
  371. package/dist/utilities/createPayloadRequest.js.map +1 -1
  372. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts +12 -1
  373. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts.map +1 -1
  374. package/dist/utilities/createPayloadRequestFromWebRequest.js +9 -5
  375. package/dist/utilities/createPayloadRequestFromWebRequest.js.map +1 -1
  376. package/dist/utilities/deepCopyObject.js.map +1 -1
  377. package/dist/utilities/documentMatchingWhereExists.js +1 -1
  378. package/dist/utilities/documentMatchingWhereExists.js.map +1 -1
  379. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -1
  380. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -1
  381. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  382. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  383. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +1 -0
  384. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  385. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  386. package/dist/utilities/getVersionsConfig.d.ts +4 -0
  387. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  388. package/dist/utilities/getVersionsConfig.js +5 -0
  389. package/dist/utilities/getVersionsConfig.js.map +1 -1
  390. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  391. package/dist/utilities/handleEndpoints.js +10 -9
  392. package/dist/utilities/handleEndpoints.js.map +1 -1
  393. package/dist/utilities/httpStatus.d.ts +0 -2
  394. package/dist/utilities/httpStatus.d.ts.map +1 -1
  395. package/dist/utilities/httpStatus.js +1 -3
  396. package/dist/utilities/httpStatus.js.map +1 -1
  397. package/dist/utilities/initTransaction.d.ts.map +1 -1
  398. package/dist/utilities/initTransaction.js +7 -35
  399. package/dist/utilities/initTransaction.js.map +1 -1
  400. package/dist/utilities/killTransaction.d.ts.map +1 -1
  401. package/dist/utilities/killTransaction.js +0 -27
  402. package/dist/utilities/killTransaction.js.map +1 -1
  403. package/dist/utilities/parseParams/index.js.map +1 -1
  404. package/dist/utilities/parseValidationLocale.js.map +1 -1
  405. package/dist/utilities/sanitizePopulateParam.js.map +1 -1
  406. package/dist/utilities/telemetry/conf/index.d.ts +4 -1
  407. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  408. package/dist/utilities/telemetry/conf/index.js.map +1 -1
  409. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -1
  410. package/dist/versions/allLocalesPublicationStatus.js.map +1 -1
  411. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  412. package/dist/versions/buildCollectionFields.js +0 -23
  413. package/dist/versions/buildCollectionFields.js.map +1 -1
  414. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  415. package/dist/versions/buildGlobalFields.js +0 -14
  416. package/dist/versions/buildGlobalFields.js.map +1 -1
  417. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  418. package/dist/versions/buildVersionCompoundIndexes.js +2 -8
  419. package/dist/versions/buildVersionCompoundIndexes.js.map +1 -1
  420. package/dist/versions/deleteCollectionVersions.d.ts +1 -2
  421. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  422. package/dist/versions/deleteCollectionVersions.js +8 -37
  423. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  424. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  425. package/dist/versions/deleteScheduledPublishJobs.js +0 -4
  426. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  427. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  428. package/dist/versions/drafts/appendVersionToQueryKey.js +1 -9
  429. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  430. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  431. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -8
  432. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  433. package/dist/versions/enforceMaxVersions.d.ts +0 -1
  434. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  435. package/dist/versions/enforceMaxVersions.js +6 -22
  436. package/dist/versions/enforceMaxVersions.js.map +1 -1
  437. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  438. package/dist/versions/getLatestCollectionVersion.js +2 -10
  439. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  440. package/dist/versions/getLatestGlobalVersion.d.ts +2 -6
  441. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  442. package/dist/versions/getLatestGlobalVersion.js +21 -65
  443. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  444. package/dist/versions/isInheritedReadVersionsAccess.js.map +1 -1
  445. package/dist/versions/saveVersion.d.ts +0 -7
  446. package/dist/versions/saveVersion.d.ts.map +1 -1
  447. package/dist/versions/saveVersion.js +4 -27
  448. package/dist/versions/saveVersion.js.map +1 -1
  449. package/dist/versions/updateLatestVersion.d.ts +0 -1
  450. package/dist/versions/updateLatestVersion.d.ts.map +1 -1
  451. package/dist/versions/updateLatestVersion.js +7 -24
  452. package/dist/versions/updateLatestVersion.js.map +1 -1
  453. package/package.json +30 -28
  454. package/skills/payload/reference/ENDPOINTS.md +3 -9
  455. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +4 -4
  456. package/dist/admin/getAdminPreferences.d.ts +0 -10
  457. package/dist/admin/getAdminPreferences.d.ts.map +0 -1
  458. package/dist/admin/getAdminPreferences.js +0 -53
  459. package/dist/admin/getAdminPreferences.js.map +0 -1
  460. package/dist/admin/getRequestBranch.d.ts +0 -6
  461. package/dist/admin/getRequestBranch.d.ts.map +0 -1
  462. package/dist/admin/getRequestBranch.js +0 -17
  463. package/dist/admin/getRequestBranch.js.map +0 -1
  464. package/dist/branching/appendBranchFilter.d.ts +0 -30
  465. package/dist/branching/appendBranchFilter.d.ts.map +0 -1
  466. package/dist/branching/appendBranchFilter.js +0 -105
  467. package/dist/branching/appendBranchFilter.js.map +0 -1
  468. package/dist/branching/assertBranchAccess.d.ts +0 -10
  469. package/dist/branching/assertBranchAccess.d.ts.map +0 -1
  470. package/dist/branching/assertBranchAccess.js +0 -36
  471. package/dist/branching/assertBranchAccess.js.map +0 -1
  472. package/dist/branching/assertBranchActionAccess.d.ts +0 -10
  473. package/dist/branching/assertBranchActionAccess.d.ts.map +0 -1
  474. package/dist/branching/assertBranchActionAccess.js +0 -15
  475. package/dist/branching/assertBranchActionAccess.js.map +0 -1
  476. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.d.ts +0 -53
  477. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.d.ts.map +0 -1
  478. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.js +0 -833
  479. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.js.map +0 -1
  480. package/dist/branching/assertBranchReadable.d.ts +0 -36
  481. package/dist/branching/assertBranchReadable.d.ts.map +0 -1
  482. package/dist/branching/assertBranchReadable.js +0 -83
  483. package/dist/branching/assertBranchReadable.js.map +0 -1
  484. package/dist/branching/assertBranchUpdateAccess.d.ts +0 -8
  485. package/dist/branching/assertBranchUpdateAccess.d.ts.map +0 -1
  486. package/dist/branching/assertBranchUpdateAccess.js +0 -12
  487. package/dist/branching/assertBranchUpdateAccess.js.map +0 -1
  488. package/dist/branching/assertBranchWritable.d.ts +0 -18
  489. package/dist/branching/assertBranchWritable.d.ts.map +0 -1
  490. package/dist/branching/assertBranchWritable.js +0 -46
  491. package/dist/branching/assertBranchWritable.js.map +0 -1
  492. package/dist/branching/branchIDs.d.ts +0 -38
  493. package/dist/branching/branchIDs.d.ts.map +0 -1
  494. package/dist/branching/branchIDs.js +0 -113
  495. package/dist/branching/branchIDs.js.map +0 -1
  496. package/dist/branching/branchSelect.d.ts +0 -42
  497. package/dist/branching/branchSelect.d.ts.map +0 -1
  498. package/dist/branching/branchSelect.js +0 -97
  499. package/dist/branching/branchSelect.js.map +0 -1
  500. package/dist/branching/checkFieldAccess.d.ts +0 -21
  501. package/dist/branching/checkFieldAccess.d.ts.map +0 -1
  502. package/dist/branching/checkFieldAccess.js +0 -238
  503. package/dist/branching/checkFieldAccess.js.map +0 -1
  504. package/dist/branching/collections.d.ts +0 -14
  505. package/dist/branching/collections.d.ts.map +0 -1
  506. package/dist/branching/collections.js +0 -713
  507. package/dist/branching/collections.js.map +0 -1
  508. package/dist/branching/combineBranchAccess.d.ts +0 -6
  509. package/dist/branching/combineBranchAccess.d.ts.map +0 -1
  510. package/dist/branching/combineBranchAccess.js +0 -22
  511. package/dist/branching/combineBranchAccess.js.map +0 -1
  512. package/dist/branching/copyUploadFilesToBranch.d.ts +0 -9
  513. package/dist/branching/copyUploadFilesToBranch.d.ts.map +0 -1
  514. package/dist/branching/copyUploadFilesToBranch.js +0 -126
  515. package/dist/branching/copyUploadFilesToBranch.js.map +0 -1
  516. package/dist/branching/createShadowRow.d.ts +0 -70
  517. package/dist/branching/createShadowRow.d.ts.map +0 -1
  518. package/dist/branching/createShadowRow.js +0 -296
  519. package/dist/branching/createShadowRow.js.map +0 -1
  520. package/dist/branching/discard.d.ts +0 -52
  521. package/dist/branching/discard.d.ts.map +0 -1
  522. package/dist/branching/discard.js +0 -428
  523. package/dist/branching/discard.js.map +0 -1
  524. package/dist/branching/effectiveOperations.d.ts +0 -55
  525. package/dist/branching/effectiveOperations.d.ts.map +0 -1
  526. package/dist/branching/effectiveOperations.js +0 -472
  527. package/dist/branching/effectiveOperations.js.map +0 -1
  528. package/dist/branching/endpoints/discard.d.ts +0 -15
  529. package/dist/branching/endpoints/discard.d.ts.map +0 -1
  530. package/dist/branching/endpoints/discard.js +0 -55
  531. package/dist/branching/endpoints/discard.js.map +0 -1
  532. package/dist/branching/endpoints/merge.d.ts +0 -34
  533. package/dist/branching/endpoints/merge.d.ts.map +0 -1
  534. package/dist/branching/endpoints/merge.js +0 -119
  535. package/dist/branching/endpoints/merge.js.map +0 -1
  536. package/dist/branching/forkDocument.d.ts +0 -20
  537. package/dist/branching/forkDocument.d.ts.map +0 -1
  538. package/dist/branching/forkDocument.js +0 -169
  539. package/dist/branching/forkDocument.js.map +0 -1
  540. package/dist/branching/globalMergeWrites.d.ts +0 -21
  541. package/dist/branching/globalMergeWrites.d.ts.map +0 -1
  542. package/dist/branching/globalMergeWrites.js +0 -146
  543. package/dist/branching/globalMergeWrites.js.map +0 -1
  544. package/dist/branching/globals.d.ts +0 -49
  545. package/dist/branching/globals.d.ts.map +0 -1
  546. package/dist/branching/globals.js +0 -197
  547. package/dist/branching/globals.js.map +0 -1
  548. package/dist/branching/hooks.d.ts +0 -24
  549. package/dist/branching/hooks.d.ts.map +0 -1
  550. package/dist/branching/hooks.js +0 -92
  551. package/dist/branching/hooks.js.map +0 -1
  552. package/dist/branching/injectBranchFields.d.ts +0 -40
  553. package/dist/branching/injectBranchFields.d.ts.map +0 -1
  554. package/dist/branching/injectBranchFields.js +0 -229
  555. package/dist/branching/injectBranchFields.js.map +0 -1
  556. package/dist/branching/merge/applyMergeChange.d.ts +0 -27
  557. package/dist/branching/merge/applyMergeChange.d.ts.map +0 -1
  558. package/dist/branching/merge/applyMergeChange.js +0 -853
  559. package/dist/branching/merge/applyMergeChange.js.map +0 -1
  560. package/dist/branching/merge/branchMergeStatus.d.ts +0 -12
  561. package/dist/branching/merge/branchMergeStatus.d.ts.map +0 -1
  562. package/dist/branching/merge/branchMergeStatus.js +0 -74
  563. package/dist/branching/merge/branchMergeStatus.js.map +0 -1
  564. package/dist/branching/merge/executeMerge.d.ts +0 -22
  565. package/dist/branching/merge/executeMerge.d.ts.map +0 -1
  566. package/dist/branching/merge/executeMerge.js +0 -600
  567. package/dist/branching/merge/executeMerge.js.map +0 -1
  568. package/dist/branching/merge/finalizeMerge.d.ts +0 -40
  569. package/dist/branching/merge/finalizeMerge.d.ts.map +0 -1
  570. package/dist/branching/merge/finalizeMerge.js +0 -237
  571. package/dist/branching/merge/finalizeMerge.js.map +0 -1
  572. package/dist/branching/merge/mergeLedger.d.ts +0 -40
  573. package/dist/branching/merge/mergeLedger.d.ts.map +0 -1
  574. package/dist/branching/merge/mergeLedger.js +0 -130
  575. package/dist/branching/merge/mergeLedger.js.map +0 -1
  576. package/dist/branching/merge/prepareMerge.d.ts +0 -41
  577. package/dist/branching/merge/prepareMerge.d.ts.map +0 -1
  578. package/dist/branching/merge/prepareMerge.js +0 -234
  579. package/dist/branching/merge/prepareMerge.js.map +0 -1
  580. package/dist/branching/merge/recoverMerge.d.ts +0 -16
  581. package/dist/branching/merge/recoverMerge.d.ts.map +0 -1
  582. package/dist/branching/merge/recoverMerge.js +0 -199
  583. package/dist/branching/merge/recoverMerge.js.map +0 -1
  584. package/dist/branching/merge/retryFailedCleanups.d.ts +0 -36
  585. package/dist/branching/merge/retryFailedCleanups.d.ts.map +0 -1
  586. package/dist/branching/merge/retryFailedCleanups.js +0 -335
  587. package/dist/branching/merge/retryFailedCleanups.js.map +0 -1
  588. package/dist/branching/merge/utilities.d.ts +0 -35
  589. package/dist/branching/merge/utilities.d.ts.map +0 -1
  590. package/dist/branching/merge/utilities.js +0 -54
  591. package/dist/branching/merge/utilities.js.map +0 -1
  592. package/dist/branching/merge.d.ts +0 -88
  593. package/dist/branching/merge.d.ts.map +0 -1
  594. package/dist/branching/merge.js +0 -163
  595. package/dist/branching/merge.js.map +0 -1
  596. package/dist/branching/mergeWriteGuard.d.ts +0 -20
  597. package/dist/branching/mergeWriteGuard.d.ts.map +0 -1
  598. package/dist/branching/mergeWriteGuard.js +0 -27
  599. package/dist/branching/mergeWriteGuard.js.map +0 -1
  600. package/dist/branching/preflight.d.ts +0 -71
  601. package/dist/branching/preflight.d.ts.map +0 -1
  602. package/dist/branching/preflight.js +0 -757
  603. package/dist/branching/preflight.js.map +0 -1
  604. package/dist/branching/readLocalizedBranchWrite.d.ts +0 -14
  605. package/dist/branching/readLocalizedBranchWrite.d.ts.map +0 -1
  606. package/dist/branching/readLocalizedBranchWrite.js +0 -90
  607. package/dist/branching/readLocalizedBranchWrite.js.map +0 -1
  608. package/dist/branching/readMergeSnapshot.d.ts +0 -18
  609. package/dist/branching/readMergeSnapshot.d.ts.map +0 -1
  610. package/dist/branching/readMergeSnapshot.js +0 -99
  611. package/dist/branching/readMergeSnapshot.js.map +0 -1
  612. package/dist/branching/resolveBranch.d.ts +0 -153
  613. package/dist/branching/resolveBranch.d.ts.map +0 -1
  614. package/dist/branching/resolveBranch.js +0 -363
  615. package/dist/branching/resolveBranch.js.map +0 -1
  616. package/dist/branching/resolveBranchActionAccess.d.ts +0 -8
  617. package/dist/branching/resolveBranchActionAccess.d.ts.map +0 -1
  618. package/dist/branching/resolveBranchActionAccess.js +0 -9
  619. package/dist/branching/resolveBranchActionAccess.js.map +0 -1
  620. package/dist/branching/resolveBranchQuery.d.ts +0 -48
  621. package/dist/branching/resolveBranchQuery.d.ts.map +0 -1
  622. package/dist/branching/resolveBranchQuery.js +0 -115
  623. package/dist/branching/resolveBranchQuery.js.map +0 -1
  624. package/dist/branching/resolveBranchRowID.d.ts +0 -22
  625. package/dist/branching/resolveBranchRowID.d.ts.map +0 -1
  626. package/dist/branching/resolveBranchRowID.js +0 -70
  627. package/dist/branching/resolveBranchRowID.js.map +0 -1
  628. package/dist/branching/sanitizeBranchingConfig.d.ts +0 -31
  629. package/dist/branching/sanitizeBranchingConfig.d.ts.map +0 -1
  630. package/dist/branching/sanitizeBranchingConfig.js +0 -110
  631. package/dist/branching/sanitizeBranchingConfig.js.map +0 -1
  632. package/dist/branching/schedule/job.d.ts +0 -51
  633. package/dist/branching/schedule/job.d.ts.map +0 -1
  634. package/dist/branching/schedule/job.js +0 -151
  635. package/dist/branching/schedule/job.js.map +0 -1
  636. package/dist/branching/selectBranchChanges.d.ts +0 -8
  637. package/dist/branching/selectBranchChanges.d.ts.map +0 -1
  638. package/dist/branching/selectBranchChanges.js +0 -9
  639. package/dist/branching/selectBranchChanges.js.map +0 -1
  640. package/dist/branching/stripBranchMergeData.d.ts +0 -11
  641. package/dist/branching/stripBranchMergeData.d.ts.map +0 -1
  642. package/dist/branching/stripBranchMergeData.js +0 -20
  643. package/dist/branching/stripBranchMergeData.js.map +0 -1
  644. package/dist/branching/tombstone.d.ts +0 -91
  645. package/dist/branching/tombstone.d.ts.map +0 -1
  646. package/dist/branching/tombstone.js +0 -546
  647. package/dist/branching/tombstone.js.map +0 -1
  648. package/dist/branching/types.d.ts +0 -158
  649. package/dist/branching/types.d.ts.map +0 -1
  650. package/dist/branching/types.js +0 -54
  651. package/dist/branching/types.js.map +0 -1
  652. package/dist/branching/validation.d.ts +0 -47
  653. package/dist/branching/validation.d.ts.map +0 -1
  654. package/dist/branching/validation.js +0 -272
  655. package/dist/branching/validation.js.map +0 -1
  656. package/dist/branching/versions.d.ts +0 -131
  657. package/dist/branching/versions.d.ts.map +0 -1
  658. package/dist/branching/versions.js +0 -572
  659. package/dist/branching/versions.js.map +0 -1
  660. package/dist/collections/operations/utilities/createOperationRetryRequest.d.ts +0 -23
  661. package/dist/collections/operations/utilities/createOperationRetryRequest.d.ts.map +0 -1
  662. package/dist/collections/operations/utilities/createOperationRetryRequest.js +0 -683
  663. package/dist/collections/operations/utilities/createOperationRetryRequest.js.map +0 -1
  664. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.d.ts +0 -3
  665. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.d.ts.map +0 -1
  666. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.js +0 -3
  667. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.js.map +0 -1
  668. package/dist/uploads/appendBranchToFileURL.d.ts +0 -6
  669. package/dist/uploads/appendBranchToFileURL.d.ts.map +0 -1
  670. package/dist/uploads/appendBranchToFileURL.js +0 -24
  671. package/dist/uploads/appendBranchToFileURL.js.map +0 -1
  672. package/dist/uploads/deleteUploadFilesExclusiveToDocument.d.ts +0 -15
  673. package/dist/uploads/deleteUploadFilesExclusiveToDocument.d.ts.map +0 -1
  674. package/dist/uploads/deleteUploadFilesExclusiveToDocument.js +0 -62
  675. package/dist/uploads/deleteUploadFilesExclusiveToDocument.js.map +0 -1
  676. package/dist/uploads/fileIdentity.d.ts +0 -24
  677. package/dist/uploads/fileIdentity.d.ts.map +0 -1
  678. package/dist/uploads/fileIdentity.js +0 -36
  679. package/dist/uploads/fileIdentity.js.map +0 -1
  680. package/dist/uploads/fileQuarantine.d.ts +0 -17
  681. package/dist/uploads/fileQuarantine.d.ts.map +0 -1
  682. package/dist/uploads/fileQuarantine.js +0 -52
  683. package/dist/uploads/fileQuarantine.js.map +0 -1
  684. package/dist/uploads/linkFileWithoutOverwrite.d.ts +0 -13
  685. package/dist/uploads/linkFileWithoutOverwrite.d.ts.map +0 -1
  686. package/dist/uploads/linkFileWithoutOverwrite.js +0 -13
  687. package/dist/uploads/linkFileWithoutOverwrite.js.map +0 -1
  688. package/dist/uploads/uploadFileRollback.d.ts +0 -31
  689. package/dist/uploads/uploadFileRollback.d.ts.map +0 -1
  690. package/dist/uploads/uploadFileRollback.js +0 -269
  691. package/dist/uploads/uploadFileRollback.js.map +0 -1
  692. package/dist/utilities/extractRelationshipID.d.ts +0 -4
  693. package/dist/utilities/extractRelationshipID.d.ts.map +0 -1
  694. package/dist/utilities/extractRelationshipID.js +0 -14
  695. package/dist/utilities/extractRelationshipID.js.map +0 -1
  696. package/dist/utilities/transactionCallbacks.d.ts +0 -77
  697. package/dist/utilities/transactionCallbacks.d.ts.map +0 -1
  698. package/dist/utilities/transactionCallbacks.js +0 -299
  699. package/dist/utilities/transactionCallbacks.js.map +0 -1
  700. package/dist/utilities/transactionMutationTracker.d.ts +0 -21
  701. package/dist/utilities/transactionMutationTracker.d.ts.map +0 -1
  702. package/dist/utilities/transactionMutationTracker.js +0 -71
  703. package/dist/utilities/transactionMutationTracker.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getVersionsConfig.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { GlobalConfig } from '../globals/config/types.js'\nimport type { Autosave, SanitizedDrafts } from '../versions/types.js'\n\nimport { versionDefaults } from '../versions/defaults.js'\n\ntype EntityConfig = Pick<CollectionConfig | GlobalConfig, 'versions'>\n\n/**\n * Check if an entity has drafts enabled\n */\nexport const hasDraftsEnabled = (config: EntityConfig): boolean => {\n return Boolean(config?.versions && typeof config.versions === 'object' && config.versions.drafts)\n}\n\n/**\n * Check if an entity has localized status enabled\n */\nexport const hasLocalizeStatusEnabled = (config: EntityConfig): boolean => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n (config.versions.drafts as SanitizedDrafts).localizeStatus,\n )\n}\n\n/**\n * Check if an entity has autosave enabled\n */\nexport const hasAutosaveEnabled = (\n config: EntityConfig,\n): config is {\n versions: {\n drafts: { autosave: Autosave | false }\n }\n} & EntityConfig => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.autosave,\n )\n}\n\n/**\n * Check if an entity has validate drafts enabled\n */\nexport const hasDraftValidationEnabled = (config: EntityConfig): boolean => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.validate,\n )\n}\n\nexport const hasScheduledPublishEnabled = (\n config: EntityConfig,\n): config is {\n versions: {\n drafts: { schedulePublish: SanitizedDrafts['schedulePublish'] }\n }\n} & EntityConfig => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.schedulePublish,\n )\n}\n\n/**\n * Get the maximum number of versions to keep for an entity\n * Returns maxPerDoc for collections or max for globals\n */\nexport const getVersionsMax = (config: EntityConfig): number => {\n if (!config?.versions || typeof config.versions !== 'object') {\n return 0\n }\n // Collections have maxPerDoc, globals have max\n if ('maxPerDoc' in config.versions) {\n return config.versions.maxPerDoc ?? 100\n }\n if ('max' in config.versions) {\n return config.versions.max ?? 100\n }\n return 0\n}\n\nexport const getAutosaveInterval = (config: EntityConfig): number => {\n let interval = versionDefaults.autosaveInterval\n if (\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.autosave &&\n typeof config.versions.drafts.autosave === 'object'\n ) {\n interval = config.versions.drafts.autosave.interval ?? versionDefaults.autosaveInterval\n }\n return interval\n}\n"],"names":["versionDefaults","hasDraftsEnabled","config","Boolean","versions","drafts","hasLocalizeStatusEnabled","localizeStatus","hasAutosaveEnabled","autosave","hasDraftValidationEnabled","validate","hasScheduledPublishEnabled","schedulePublish","getVersionsMax","maxPerDoc","max","getAutosaveInterval","interval","autosaveInterval"],"mappings":"AAIA,SAASA,eAAe,QAAQ,0BAAyB;AAIzD;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAACC;IAC/B,OAAOC,QAAQD,QAAQE,YAAY,OAAOF,OAAOE,QAAQ,KAAK,YAAYF,OAAOE,QAAQ,CAACC,MAAM;AAClG,EAAC;AAED;;CAEC,GACD,OAAO,MAAMC,2BAA2B,CAACJ;IACvC,OAAOC,QACLD,QAAQE,YACN,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACC,MAAM,IACtB,OAAOH,OAAOE,QAAQ,CAACC,MAAM,KAAK,YAClC,AAACH,OAAOE,QAAQ,CAACC,MAAM,CAAqBE,cAAc;AAEhE,EAAC;AAED;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAChCN;IAMA,OAAOC,QACLD,QAAQE,YACN,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACC,MAAM,IACtB,OAAOH,OAAOE,QAAQ,CAACC,MAAM,KAAK,YAClCH,OAAOE,QAAQ,CAACC,MAAM,CAACI,QAAQ;AAErC,EAAC;AAED;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACR;IACxC,OAAOC,QACLD,QAAQE,YACN,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACC,MAAM,IACtB,OAAOH,OAAOE,QAAQ,CAACC,MAAM,KAAK,YAClCH,OAAOE,QAAQ,CAACC,MAAM,CAACM,QAAQ;AAErC,EAAC;AAED,OAAO,MAAMC,6BAA6B,CACxCV;IAMA,OAAOC,QACLD,QAAQE,YACN,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACC,MAAM,IACtB,OAAOH,OAAOE,QAAQ,CAACC,MAAM,KAAK,YAClCH,OAAOE,QAAQ,CAACC,MAAM,CAACQ,eAAe;AAE5C,EAAC;AAED;;;CAGC,GACD,OAAO,MAAMC,iBAAiB,CAACZ;IAC7B,IAAI,CAACA,QAAQE,YAAY,OAAOF,OAAOE,QAAQ,KAAK,UAAU;QAC5D,OAAO;IACT;IACA,+CAA+C;IAC/C,IAAI,eAAeF,OAAOE,QAAQ,EAAE;QAClC,OAAOF,OAAOE,QAAQ,CAACW,SAAS,IAAI;IACtC;IACA,IAAI,SAASb,OAAOE,QAAQ,EAAE;QAC5B,OAAOF,OAAOE,QAAQ,CAACY,GAAG,IAAI;IAChC;IACA,OAAO;AACT,EAAC;AAED,OAAO,MAAMC,sBAAsB,CAACf;IAClC,IAAIgB,WAAWlB,gBAAgBmB,gBAAgB;IAC/C,IACEjB,QAAQE,YACR,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACC,MAAM,IACtB,OAAOH,OAAOE,QAAQ,CAACC,MAAM,KAAK,YAClCH,OAAOE,QAAQ,CAACC,MAAM,CAACI,QAAQ,IAC/B,OAAOP,OAAOE,QAAQ,CAACC,MAAM,CAACI,QAAQ,KAAK,UAC3C;QACAS,WAAWhB,OAAOE,QAAQ,CAACC,MAAM,CAACI,QAAQ,CAACS,QAAQ,IAAIlB,gBAAgBmB,gBAAgB;IACzF;IACA,OAAOD;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/getVersionsConfig.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { GlobalConfig } from '../globals/config/types.js'\nimport type { Autosave, SanitizedDrafts } from '../versions/types.js'\n\nimport { versionDefaults } from '../versions/defaults.js'\n\ntype EntityConfig = Pick<CollectionConfig | GlobalConfig, 'versions'>\n\n/**\n * Check if an entity has versions enabled at all\n */\nexport const hasVersionsEnabled = (config: EntityConfig): boolean => {\n return Boolean(config?.versions)\n}\n\n/**\n * Check if an entity has drafts enabled\n */\nexport const hasDraftsEnabled = (config: EntityConfig): boolean => {\n return Boolean(config?.versions && typeof config.versions === 'object' && config.versions.drafts)\n}\n\n/**\n * Check if an entity has localized status enabled\n */\nexport const hasLocalizeStatusEnabled = (config: EntityConfig): boolean => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n (config.versions.drafts as SanitizedDrafts).localizeStatus,\n )\n}\n\n/**\n * Check if an entity has autosave enabled\n */\nexport const hasAutosaveEnabled = (\n config: EntityConfig,\n): config is {\n versions: {\n drafts: { autosave: Autosave | false }\n }\n} & EntityConfig => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.autosave,\n )\n}\n\n/**\n * Check if an entity has validate drafts enabled\n */\nexport const hasDraftValidationEnabled = (config: EntityConfig): boolean => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.validate,\n )\n}\n\nexport const hasScheduledPublishEnabled = (\n config: EntityConfig,\n): config is {\n versions: {\n drafts: { schedulePublish: SanitizedDrafts['schedulePublish'] }\n }\n} & EntityConfig => {\n return Boolean(\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.schedulePublish,\n )\n}\n\n/**\n * Get the maximum number of versions to keep for an entity\n * Returns maxPerDoc for collections or max for globals\n */\nexport const getVersionsMax = (config: EntityConfig): number => {\n if (!config?.versions || typeof config.versions !== 'object') {\n return 0\n }\n // Collections have maxPerDoc, globals have max\n if ('maxPerDoc' in config.versions) {\n return config.versions.maxPerDoc ?? 100\n }\n if ('max' in config.versions) {\n return config.versions.max ?? 100\n }\n return 0\n}\n\nexport const getAutosaveInterval = (config: EntityConfig): number => {\n let interval = versionDefaults.autosaveInterval\n if (\n config?.versions &&\n typeof config.versions === 'object' &&\n config.versions.drafts &&\n typeof config.versions.drafts === 'object' &&\n config.versions.drafts.autosave &&\n typeof config.versions.drafts.autosave === 'object'\n ) {\n interval = config.versions.drafts.autosave.interval ?? versionDefaults.autosaveInterval\n }\n return interval\n}\n"],"names":["versionDefaults","hasVersionsEnabled","config","Boolean","versions","hasDraftsEnabled","drafts","hasLocalizeStatusEnabled","localizeStatus","hasAutosaveEnabled","autosave","hasDraftValidationEnabled","validate","hasScheduledPublishEnabled","schedulePublish","getVersionsMax","maxPerDoc","max","getAutosaveInterval","interval","autosaveInterval"],"mappings":"AAIA,SAASA,eAAe,QAAQ,0BAAyB;AAIzD;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAACC;IACjC,OAAOC,QAAQD,QAAQE;AACzB,EAAC;AAED;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAACH;IAC/B,OAAOC,QAAQD,QAAQE,YAAY,OAAOF,OAAOE,QAAQ,KAAK,YAAYF,OAAOE,QAAQ,CAACE,MAAM;AAClG,EAAC;AAED;;CAEC,GACD,OAAO,MAAMC,2BAA2B,CAACL;IACvC,OAAOC,QACLD,QAAQE,YACR,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACE,MAAM,IACtB,OAAOJ,OAAOE,QAAQ,CAACE,MAAM,KAAK,YAClC,AAACJ,OAAOE,QAAQ,CAACE,MAAM,CAAqBE,cAAc;AAE9D,EAAC;AAED;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAChCP;IAMA,OAAOC,QACLD,QAAQE,YACR,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACE,MAAM,IACtB,OAAOJ,OAAOE,QAAQ,CAACE,MAAM,KAAK,YAClCJ,OAAOE,QAAQ,CAACE,MAAM,CAACI,QAAQ;AAEnC,EAAC;AAED;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACT;IACxC,OAAOC,QACLD,QAAQE,YACR,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACE,MAAM,IACtB,OAAOJ,OAAOE,QAAQ,CAACE,MAAM,KAAK,YAClCJ,OAAOE,QAAQ,CAACE,MAAM,CAACM,QAAQ;AAEnC,EAAC;AAED,OAAO,MAAMC,6BAA6B,CACxCX;IAMA,OAAOC,QACLD,QAAQE,YACR,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACE,MAAM,IACtB,OAAOJ,OAAOE,QAAQ,CAACE,MAAM,KAAK,YAClCJ,OAAOE,QAAQ,CAACE,MAAM,CAACQ,eAAe;AAE1C,EAAC;AAED;;;CAGC,GACD,OAAO,MAAMC,iBAAiB,CAACb;IAC7B,IAAI,CAACA,QAAQE,YAAY,OAAOF,OAAOE,QAAQ,KAAK,UAAU;QAC5D,OAAO;IACT;IACA,+CAA+C;IAC/C,IAAI,eAAeF,OAAOE,QAAQ,EAAE;QAClC,OAAOF,OAAOE,QAAQ,CAACY,SAAS,IAAI;IACtC;IACA,IAAI,SAASd,OAAOE,QAAQ,EAAE;QAC5B,OAAOF,OAAOE,QAAQ,CAACa,GAAG,IAAI;IAChC;IACA,OAAO;AACT,EAAC;AAED,OAAO,MAAMC,sBAAsB,CAAChB;IAClC,IAAIiB,WAAWnB,gBAAgBoB,gBAAgB;IAC/C,IACElB,QAAQE,YACR,OAAOF,OAAOE,QAAQ,KAAK,YAC3BF,OAAOE,QAAQ,CAACE,MAAM,IACtB,OAAOJ,OAAOE,QAAQ,CAACE,MAAM,KAAK,YAClCJ,OAAOE,QAAQ,CAACE,MAAM,CAACI,QAAQ,IAC/B,OAAOR,OAAOE,QAAQ,CAACE,MAAM,CAACI,QAAQ,KAAK,UAC3C;QACAS,WAAWjB,OAAOE,QAAQ,CAACE,MAAM,CAACI,QAAQ,CAACS,QAAQ,IAAInB,gBAAgBoB,gBAAgB;IACzF;IACA,OAAOD;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handleEndpoints.d.ts","sourceRoot":"","sources":["../../src/utilities/handleEndpoints.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA4BnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,eAAe,kFAMzB;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,OAAO,CAAC,QAAQ,CAyNnB,CAAA"}
1
+ {"version":3,"file":"handleEndpoints.d.ts","sourceRoot":"","sources":["../../src/utilities/handleEndpoints.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA8BnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,eAAe,kFAMzB;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,OAAO,CAAC,QAAQ,CA0NnB,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { match } from 'path-to-regexp';
2
- import { assertBranchReadable } from '../branching/assertBranchReadable.js';
3
- import { createPayloadRequestFromWebRequest } from './createPayloadRequestFromWebRequest.js';
2
+ import { authenticateRequest, createPayloadRequestFromWebRequest } from './createPayloadRequestFromWebRequest.js';
4
3
  import { formatAdminURL, stripTrailingSlash } from './formatAdminURL.js';
5
4
  import { headersWithCors } from './headersWithCors.js';
6
5
  import { httpStatus } from './httpStatus.js';
@@ -101,13 +100,9 @@ const notFoundResponse = (req, pathname)=>{
101
100
  canSetHeaders: true,
102
101
  config: incomingConfig,
103
102
  payloadInstanceCacheKey,
104
- request
105
- });
106
- // Here rather than inside `createPayloadRequest`: the check needs the resolved user,
107
- // and it has to be able to fail as a formatted response, which means the request has
108
- // to exist first. §12.5 — a caller may not read through a branch they cannot see.
109
- await assertBranchReadable({
110
- req
103
+ request,
104
+ // Once the endpoint is known, so endpoints can opt out with `disableAuth`
105
+ shouldAuthenticate: false
111
106
  });
112
107
  const { payload } = req;
113
108
  const { config } = payload;
@@ -205,6 +200,12 @@ const notFoundResponse = (req, pathname)=>{
205
200
  }
206
201
  return notFoundResponse(req, pathname);
207
202
  }
203
+ if (!endpoint?.disableAuth) {
204
+ await authenticateRequest({
205
+ canSetHeaders: true,
206
+ req
207
+ });
208
+ }
208
209
  const response = await handler(req);
209
210
  return new Response(response.body, {
210
211
  headers: headersWithCors({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/handleEndpoints.ts"],"sourcesContent":["import { match } from 'path-to-regexp'\n\nimport type { Collection } from '../collections/config/types.js'\nimport type { Endpoint, PayloadHandler, SanitizedConfig } from '../config/types.js'\nimport type { APIError } from '../errors/APIError.js'\nimport type { GlobalConfig } from '../globals/config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { assertBranchReadable } from '../branching/assertBranchReadable.js'\nimport { createPayloadRequestFromWebRequest } from './createPayloadRequestFromWebRequest.js'\nimport { formatAdminURL, stripTrailingSlash } from './formatAdminURL.js'\nimport { headersWithCors } from './headersWithCors.js'\nimport { httpStatus } from './httpStatus.js'\nimport { mergeHeaders } from './mergeHeaders.js'\nimport { routeError } from './routeError.js'\n\nconst notFoundResponse = (req: PayloadRequest, pathname?: string) => {\n return Response.json(\n {\n message: `Route not found \"${pathname ?? new URL(req.url!).pathname}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n}\n\n/**\n * Attaches the Payload REST API to any backend framework that uses Fetch Request/Response\n * like Next.js (app router), Remix, Bun, Hono.\n *\n * ### Example: Using Hono\n * ```ts\n * import { handleEndpoints } from 'payload';\n * import { serve } from '@hono/node-server';\n * import { loadEnv } from 'payload/node';\n *\n * const port = 3001;\n * loadEnv();\n *\n * const { default: config } = await import('@payload-config');\n *\n * const server = serve({\n * fetch: async (request) => {\n * const response = await handleEndpoints({\n * config,\n * request: request.clone(),\n * });\n *\n * return response;\n * },\n * port,\n * });\n *\n * server.on('listening', () => {\n * console.log(`API server is listening on http://localhost:${port}/api`);\n * });\n * ```\n */\nexport const handleEndpoints = async ({\n basePath = '',\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request,\n}: {\n basePath?: string\n config: Promise<SanitizedConfig> | SanitizedConfig\n /** Override path from the request */\n path?: string\n payloadInstanceCacheKey?: string\n request: Request\n}): Promise<Response> => {\n let handler!: PayloadHandler\n let req: PayloadRequest\n let collection!: Collection\n\n // This can be used against GET request search params size limit.\n // Instead you can do POST request with a text body as search params.\n // We use this internally for relationships querying on the frontend\n // packages/ui/src/fields/Relationship/index.tsx\n if (\n request.method.toLowerCase() === 'post' &&\n (request.headers.get('X-Payload-HTTP-Method-Override') === 'GET' ||\n request.headers.get('X-HTTP-Method-Override') === 'GET')\n ) {\n // Extract properties before consuming the body — srvx (TanStack Start) uses\n // lazy property getters that reconstruct the underlying Request, which throws\n // after the body has been read via .text() / .json().\n const requestHeaders = request.headers\n const requestSignal = request.signal\n\n let url = request.url\n let data: any = undefined\n\n if (request.headers.get('Content-Type') === 'application/x-www-form-urlencoded') {\n const search = await request.text()\n url = `${request.url}?${search}`\n } else if (request.headers.get('Content-Type') === 'application/json') {\n // May not be supported by every endpoint\n data = await request.json()\n\n // createPayloadRequestFromWebRequest reads locale and fallbackLocale from searchParams.\n if (data?.locale) {\n url += `?locale=${data.locale}`\n }\n if (data?.fallbackLocale) {\n url += `&fallbackLocale=${data.depth}`\n }\n }\n\n const req = new Request(url, {\n headers: requestHeaders,\n method: 'GET',\n signal: requestSignal,\n })\n\n if (data) {\n // @ts-expect-error attach data to request - less overhead than using urlencoded\n req.data = data\n }\n\n const response = await handleEndpoints({\n basePath,\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request: req,\n })\n\n return response\n }\n\n try {\n req = await createPayloadRequestFromWebRequest({\n canSetHeaders: true,\n config: incomingConfig,\n payloadInstanceCacheKey,\n request,\n })\n\n // Here rather than inside `createPayloadRequest`: the check needs the resolved user,\n // and it has to be able to fail as a formatted response, which means the request has\n // to exist first. §12.5 — a caller may not read through a branch they cannot see.\n await assertBranchReadable({ req })\n\n const { payload } = req\n const { config } = payload\n\n const rawPathname = path ?? new URL(req.url!).pathname\n const pathname = stripTrailingSlash(rawPathname)\n const rawBaseAPIPath = formatAdminURL({\n apiRoute: config.routes.api,\n path: '',\n })\n const baseAPIPath = stripTrailingSlash(rawBaseAPIPath)\n\n if (!pathname.startsWith(baseAPIPath)) {\n return notFoundResponse(req, pathname)\n }\n\n // /api/posts/route -> /posts/route\n let adjustedPathname = pathname.replace(baseAPIPath, '')\n\n let isGlobals = false\n\n // /globals/header/route -> /header/route\n if (adjustedPathname.startsWith('/globals')) {\n isGlobals = true\n adjustedPathname = adjustedPathname.replace('/globals', '')\n }\n\n const segments = adjustedPathname.split('/')\n // remove empty string first element\n segments.shift()\n\n const firstParam = segments[0]\n\n let globalConfig!: GlobalConfig\n\n // first param can be a global slug or collection slug, find the relevant config\n if (firstParam) {\n if (isGlobals) {\n globalConfig = payload.globals.config.find((each) => each.slug === firstParam)!\n } else if (payload.collections[firstParam]) {\n collection = payload.collections[firstParam]\n }\n }\n\n let endpoints: Endpoint[] | false = config.endpoints\n\n if (collection) {\n endpoints = collection.config.endpoints\n // /posts/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${collection.config.slug}`, '')\n } else if (globalConfig) {\n // /header/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${globalConfig.slug}`, '')\n endpoints = globalConfig.endpoints!\n }\n\n // sanitize when endpoint.path is '/'\n if (adjustedPathname === '') {\n adjustedPathname = '/'\n }\n\n if (endpoints === false) {\n return Response.json(\n {\n message: `Cannot ${req.method?.toUpperCase()} ${req.url}`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_IMPLEMENTED,\n },\n )\n }\n\n // Find the relevant endpoint configuration\n const endpoint = endpoints?.find((endpoint) => {\n if (endpoint.method !== req.method?.toLowerCase()) {\n return false\n }\n\n const pathMatchFn = match(endpoint.path, { decode: decodeURIComponent })\n\n const matchResult = pathMatchFn(adjustedPathname)\n\n if (!matchResult) {\n return false\n }\n\n req.routeParams = matchResult.params as Record<string, unknown>\n\n // Inject to routeParams the slug as well so it can be used later\n if (collection) {\n req.routeParams.collection = collection.config.slug\n } else if (globalConfig) {\n req.routeParams.global = globalConfig.slug\n }\n\n return true\n })\n\n if (endpoint) {\n handler = endpoint.handler\n }\n\n if (!handler) {\n // If no custom handler found and this is an OPTIONS request,\n // return default CORS response for preflight requests\n if (req.method?.toLowerCase() === 'options') {\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n }\n\n return notFoundResponse(req, pathname)\n }\n\n const response = await handler(req)\n\n return new Response(response.body, {\n headers: headersWithCors({\n headers: mergeHeaders(req.responseHeaders ?? new Headers(), response.headers),\n req,\n }),\n status: response.status,\n statusText: response.statusText,\n })\n } catch (_err) {\n const err = _err as APIError\n return routeError({\n collection,\n config: incomingConfig,\n err,\n req: req!,\n })\n }\n}\n"],"names":["match","assertBranchReadable","createPayloadRequestFromWebRequest","formatAdminURL","stripTrailingSlash","headersWithCors","httpStatus","mergeHeaders","routeError","notFoundResponse","req","pathname","Response","json","message","URL","url","headers","Headers","status","NOT_FOUND","handleEndpoints","basePath","config","incomingConfig","path","payloadInstanceCacheKey","request","handler","collection","method","toLowerCase","get","requestHeaders","requestSignal","signal","data","undefined","search","text","locale","fallbackLocale","depth","Request","response","canSetHeaders","payload","rawPathname","rawBaseAPIPath","apiRoute","routes","api","baseAPIPath","startsWith","adjustedPathname","replace","isGlobals","segments","split","shift","firstParam","globalConfig","globals","find","each","slug","collections","endpoints","toUpperCase","NOT_IMPLEMENTED","endpoint","pathMatchFn","decode","decodeURIComponent","matchResult","routeParams","params","global","body","responseHeaders","statusText","_err","err"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/handleEndpoints.ts"],"sourcesContent":["import { match } from 'path-to-regexp'\n\nimport type { Collection } from '../collections/config/types.js'\nimport type { Endpoint, PayloadHandler, SanitizedConfig } from '../config/types.js'\nimport type { APIError } from '../errors/APIError.js'\nimport type { GlobalConfig } from '../globals/config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport {\n authenticateRequest,\n createPayloadRequestFromWebRequest,\n} from './createPayloadRequestFromWebRequest.js'\nimport { formatAdminURL, stripTrailingSlash } from './formatAdminURL.js'\nimport { headersWithCors } from './headersWithCors.js'\nimport { httpStatus } from './httpStatus.js'\nimport { mergeHeaders } from './mergeHeaders.js'\nimport { routeError } from './routeError.js'\n\nconst notFoundResponse = (req: PayloadRequest, pathname?: string) => {\n return Response.json(\n {\n message: `Route not found \"${pathname ?? new URL(req.url!).pathname}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n}\n\n/**\n * Attaches the Payload REST API to any backend framework that uses Fetch Request/Response\n * like Next.js (app router), Remix, Bun, Hono.\n *\n * ### Example: Using Hono\n * ```ts\n * import { handleEndpoints } from 'payload';\n * import { serve } from '@hono/node-server';\n * import { loadEnv } from 'payload/node';\n *\n * const port = 3001;\n * loadEnv();\n *\n * const { default: config } = await import('@payload-config');\n *\n * const server = serve({\n * fetch: async (request) => {\n * const response = await handleEndpoints({\n * config,\n * request: request.clone(),\n * });\n *\n * return response;\n * },\n * port,\n * });\n *\n * server.on('listening', () => {\n * console.log(`API server is listening on http://localhost:${port}/api`);\n * });\n * ```\n */\nexport const handleEndpoints = async ({\n basePath = '',\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request,\n}: {\n basePath?: string\n config: Promise<SanitizedConfig> | SanitizedConfig\n /** Override path from the request */\n path?: string\n payloadInstanceCacheKey?: string\n request: Request\n}): Promise<Response> => {\n let handler!: PayloadHandler\n let req: PayloadRequest\n let collection!: Collection\n\n // This can be used against GET request search params size limit.\n // Instead you can do POST request with a text body as search params.\n // We use this internally for relationships querying on the frontend\n // packages/ui/src/fields/Relationship/index.tsx\n if (\n request.method.toLowerCase() === 'post' &&\n (request.headers.get('X-Payload-HTTP-Method-Override') === 'GET' ||\n request.headers.get('X-HTTP-Method-Override') === 'GET')\n ) {\n // Extract properties before consuming the body — srvx (TanStack Start) uses\n // lazy property getters that reconstruct the underlying Request, which throws\n // after the body has been read via .text() / .json().\n const requestHeaders = request.headers\n const requestSignal = request.signal\n\n let url = request.url\n let data: any = undefined\n\n if (request.headers.get('Content-Type') === 'application/x-www-form-urlencoded') {\n const search = await request.text()\n url = `${request.url}?${search}`\n } else if (request.headers.get('Content-Type') === 'application/json') {\n // May not be supported by every endpoint\n data = await request.json()\n\n // createPayloadRequestFromWebRequest reads locale and fallbackLocale from searchParams.\n if (data?.locale) {\n url += `?locale=${data.locale}`\n }\n if (data?.fallbackLocale) {\n url += `&fallbackLocale=${data.depth}`\n }\n }\n\n const req = new Request(url, {\n headers: requestHeaders,\n method: 'GET',\n signal: requestSignal,\n })\n\n if (data) {\n // @ts-expect-error attach data to request - less overhead than using urlencoded\n req.data = data\n }\n\n const response = await handleEndpoints({\n basePath,\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request: req,\n })\n\n return response\n }\n\n try {\n req = await createPayloadRequestFromWebRequest({\n canSetHeaders: true,\n config: incomingConfig,\n payloadInstanceCacheKey,\n request,\n // Once the endpoint is known, so endpoints can opt out with `disableAuth`\n shouldAuthenticate: false,\n })\n\n const { payload } = req\n const { config } = payload\n\n const rawPathname = path ?? new URL(req.url!).pathname\n const pathname = stripTrailingSlash(rawPathname)\n const rawBaseAPIPath = formatAdminURL({\n apiRoute: config.routes.api,\n path: '',\n })\n const baseAPIPath = stripTrailingSlash(rawBaseAPIPath)\n\n if (!pathname.startsWith(baseAPIPath)) {\n return notFoundResponse(req, pathname)\n }\n\n // /api/posts/route -> /posts/route\n let adjustedPathname = pathname.replace(baseAPIPath, '')\n\n let isGlobals = false\n\n // /globals/header/route -> /header/route\n if (adjustedPathname.startsWith('/globals')) {\n isGlobals = true\n adjustedPathname = adjustedPathname.replace('/globals', '')\n }\n\n const segments = adjustedPathname.split('/')\n // remove empty string first element\n segments.shift()\n\n const firstParam = segments[0]\n\n let globalConfig!: GlobalConfig\n\n // first param can be a global slug or collection slug, find the relevant config\n if (firstParam) {\n if (isGlobals) {\n globalConfig = payload.globals.config.find((each) => each.slug === firstParam)!\n } else if (payload.collections[firstParam]) {\n collection = payload.collections[firstParam]\n }\n }\n\n let endpoints: Endpoint[] | false = config.endpoints\n\n if (collection) {\n endpoints = collection.config.endpoints\n // /posts/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${collection.config.slug}`, '')\n } else if (globalConfig) {\n // /header/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${globalConfig.slug}`, '')\n endpoints = globalConfig.endpoints!\n }\n\n // sanitize when endpoint.path is '/'\n if (adjustedPathname === '') {\n adjustedPathname = '/'\n }\n\n if (endpoints === false) {\n return Response.json(\n {\n message: `Cannot ${req.method?.toUpperCase()} ${req.url}`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_IMPLEMENTED,\n },\n )\n }\n\n // Find the relevant endpoint configuration\n const endpoint = endpoints?.find((endpoint) => {\n if (endpoint.method !== req.method?.toLowerCase()) {\n return false\n }\n\n const pathMatchFn = match(endpoint.path, { decode: decodeURIComponent })\n\n const matchResult = pathMatchFn(adjustedPathname)\n\n if (!matchResult) {\n return false\n }\n\n req.routeParams = matchResult.params as Record<string, unknown>\n\n // Inject to routeParams the slug as well so it can be used later\n if (collection) {\n req.routeParams.collection = collection.config.slug\n } else if (globalConfig) {\n req.routeParams.global = globalConfig.slug\n }\n\n return true\n })\n\n if (endpoint) {\n handler = endpoint.handler\n }\n\n if (!handler) {\n // If no custom handler found and this is an OPTIONS request,\n // return default CORS response for preflight requests\n if (req.method?.toLowerCase() === 'options') {\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n }\n\n return notFoundResponse(req, pathname)\n }\n\n if (!endpoint?.disableAuth) {\n await authenticateRequest({ canSetHeaders: true, req })\n }\n\n const response = await handler(req)\n\n return new Response(response.body, {\n headers: headersWithCors({\n headers: mergeHeaders(req.responseHeaders ?? new Headers(), response.headers),\n req,\n }),\n status: response.status,\n statusText: response.statusText,\n })\n } catch (_err) {\n const err = _err as APIError\n return routeError({\n collection,\n config: incomingConfig,\n err,\n req: req!,\n })\n }\n}\n"],"names":["match","authenticateRequest","createPayloadRequestFromWebRequest","formatAdminURL","stripTrailingSlash","headersWithCors","httpStatus","mergeHeaders","routeError","notFoundResponse","req","pathname","Response","json","message","URL","url","headers","Headers","status","NOT_FOUND","handleEndpoints","basePath","config","incomingConfig","path","payloadInstanceCacheKey","request","handler","collection","method","toLowerCase","get","requestHeaders","requestSignal","signal","data","undefined","search","text","locale","fallbackLocale","depth","Request","response","canSetHeaders","shouldAuthenticate","payload","rawPathname","rawBaseAPIPath","apiRoute","routes","api","baseAPIPath","startsWith","adjustedPathname","replace","isGlobals","segments","split","shift","firstParam","globalConfig","globals","find","each","slug","collections","endpoints","toUpperCase","NOT_IMPLEMENTED","endpoint","pathMatchFn","decode","decodeURIComponent","matchResult","routeParams","params","global","disableAuth","body","responseHeaders","statusText","_err","err"],"mappings":"AAAA,SAASA,KAAK,QAAQ,iBAAgB;AAQtC,SACEC,mBAAmB,EACnBC,kCAAkC,QAC7B,0CAAyC;AAChD,SAASC,cAAc,EAAEC,kBAAkB,QAAQ,sBAAqB;AACxE,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,UAAU,QAAQ,kBAAiB;AAE5C,MAAMC,mBAAmB,CAACC,KAAqBC;IAC7C,OAAOC,SAASC,IAAI,CAClB;QACEC,SAAS,CAAC,iBAAiB,EAAEH,YAAY,IAAII,IAAIL,IAAIM,GAAG,EAAGL,QAAQ,CAAC,CAAC,CAAC;IACxE,GACA;QACEM,SAASZ,gBAAgB;YACvBY,SAAS,IAAIC;YACbR;QACF;QACAS,QAAQb,WAAWc,SAAS;IAC9B;AAEJ;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BC,GACD,OAAO,MAAMC,kBAAkB,OAAO,EACpCC,WAAW,EAAE,EACbC,QAAQC,cAAc,EACtBC,IAAI,EACJC,uBAAuB,EACvBC,OAAO,EAQR;IACC,IAAIC;IACJ,IAAIlB;IACJ,IAAImB;IAEJ,iEAAiE;IACjE,qEAAqE;IACrE,oEAAoE;IACpE,gDAAgD;IAChD,IACEF,QAAQG,MAAM,CAACC,WAAW,OAAO,UAChCJ,CAAAA,QAAQV,OAAO,CAACe,GAAG,CAAC,sCAAsC,SACzDL,QAAQV,OAAO,CAACe,GAAG,CAAC,8BAA8B,KAAI,GACxD;QACA,4EAA4E;QAC5E,8EAA8E;QAC9E,sDAAsD;QACtD,MAAMC,iBAAiBN,QAAQV,OAAO;QACtC,MAAMiB,gBAAgBP,QAAQQ,MAAM;QAEpC,IAAInB,MAAMW,QAAQX,GAAG;QACrB,IAAIoB,OAAYC;QAEhB,IAAIV,QAAQV,OAAO,CAACe,GAAG,CAAC,oBAAoB,qCAAqC;YAC/E,MAAMM,SAAS,MAAMX,QAAQY,IAAI;YACjCvB,MAAM,GAAGW,QAAQX,GAAG,CAAC,CAAC,EAAEsB,QAAQ;QAClC,OAAO,IAAIX,QAAQV,OAAO,CAACe,GAAG,CAAC,oBAAoB,oBAAoB;YACrE,yCAAyC;YACzCI,OAAO,MAAMT,QAAQd,IAAI;YAEzB,wFAAwF;YACxF,IAAIuB,MAAMI,QAAQ;gBAChBxB,OAAO,CAAC,QAAQ,EAAEoB,KAAKI,MAAM,EAAE;YACjC;YACA,IAAIJ,MAAMK,gBAAgB;gBACxBzB,OAAO,CAAC,gBAAgB,EAAEoB,KAAKM,KAAK,EAAE;YACxC;QACF;QAEA,MAAMhC,MAAM,IAAIiC,QAAQ3B,KAAK;YAC3BC,SAASgB;YACTH,QAAQ;YACRK,QAAQD;QACV;QAEA,IAAIE,MAAM;YACR,gFAAgF;YAChF1B,IAAI0B,IAAI,GAAGA;QACb;QAEA,MAAMQ,WAAW,MAAMvB,gBAAgB;YACrCC;YACAC,QAAQC;YACRC;YACAC;YACAC,SAASjB;QACX;QAEA,OAAOkC;IACT;IAEA,IAAI;QACFlC,MAAM,MAAMR,mCAAmC;YAC7C2C,eAAe;YACftB,QAAQC;YACRE;YACAC;YACA,0EAA0E;YAC1EmB,oBAAoB;QACtB;QAEA,MAAM,EAAEC,OAAO,EAAE,GAAGrC;QACpB,MAAM,EAAEa,MAAM,EAAE,GAAGwB;QAEnB,MAAMC,cAAcvB,QAAQ,IAAIV,IAAIL,IAAIM,GAAG,EAAGL,QAAQ;QACtD,MAAMA,WAAWP,mBAAmB4C;QACpC,MAAMC,iBAAiB9C,eAAe;YACpC+C,UAAU3B,OAAO4B,MAAM,CAACC,GAAG;YAC3B3B,MAAM;QACR;QACA,MAAM4B,cAAcjD,mBAAmB6C;QAEvC,IAAI,CAACtC,SAAS2C,UAAU,CAACD,cAAc;YACrC,OAAO5C,iBAAiBC,KAAKC;QAC/B;QAEA,mCAAmC;QACnC,IAAI4C,mBAAmB5C,SAAS6C,OAAO,CAACH,aAAa;QAErD,IAAII,YAAY;QAEhB,yCAAyC;QACzC,IAAIF,iBAAiBD,UAAU,CAAC,aAAa;YAC3CG,YAAY;YACZF,mBAAmBA,iBAAiBC,OAAO,CAAC,YAAY;QAC1D;QAEA,MAAME,WAAWH,iBAAiBI,KAAK,CAAC;QACxC,oCAAoC;QACpCD,SAASE,KAAK;QAEd,MAAMC,aAAaH,QAAQ,CAAC,EAAE;QAE9B,IAAII;QAEJ,gFAAgF;QAChF,IAAID,YAAY;YACd,IAAIJ,WAAW;gBACbK,eAAef,QAAQgB,OAAO,CAACxC,MAAM,CAACyC,IAAI,CAAC,CAACC,OAASA,KAAKC,IAAI,KAAKL;YACrE,OAAO,IAAId,QAAQoB,WAAW,CAACN,WAAW,EAAE;gBAC1ChC,aAAakB,QAAQoB,WAAW,CAACN,WAAW;YAC9C;QACF;QAEA,IAAIO,YAAgC7C,OAAO6C,SAAS;QAEpD,IAAIvC,YAAY;YACduC,YAAYvC,WAAWN,MAAM,CAAC6C,SAAS;YACvC,yBAAyB;YACzBb,mBAAmBA,iBAAiBC,OAAO,CAAC,CAAC,CAAC,EAAE3B,WAAWN,MAAM,CAAC2C,IAAI,EAAE,EAAE;QAC5E,OAAO,IAAIJ,cAAc;YACvB,0BAA0B;YAC1BP,mBAAmBA,iBAAiBC,OAAO,CAAC,CAAC,CAAC,EAAEM,aAAaI,IAAI,EAAE,EAAE;YACrEE,YAAYN,aAAaM,SAAS;QACpC;QAEA,qCAAqC;QACrC,IAAIb,qBAAqB,IAAI;YAC3BA,mBAAmB;QACrB;QAEA,IAAIa,cAAc,OAAO;YACvB,OAAOxD,SAASC,IAAI,CAClB;gBACEC,SAAS,CAAC,OAAO,EAAEJ,IAAIoB,MAAM,EAAEuC,cAAc,CAAC,EAAE3D,IAAIM,GAAG,EAAE;YAC3D,GACA;gBACEC,SAASZ,gBAAgB;oBACvBY,SAAS,IAAIC;oBACbR;gBACF;gBACAS,QAAQb,WAAWgE,eAAe;YACpC;QAEJ;QAEA,2CAA2C;QAC3C,MAAMC,WAAWH,WAAWJ,KAAK,CAACO;YAChC,IAAIA,SAASzC,MAAM,KAAKpB,IAAIoB,MAAM,EAAEC,eAAe;gBACjD,OAAO;YACT;YAEA,MAAMyC,cAAcxE,MAAMuE,SAAS9C,IAAI,EAAE;gBAAEgD,QAAQC;YAAmB;YAEtE,MAAMC,cAAcH,YAAYjB;YAEhC,IAAI,CAACoB,aAAa;gBAChB,OAAO;YACT;YAEAjE,IAAIkE,WAAW,GAAGD,YAAYE,MAAM;YAEpC,iEAAiE;YACjE,IAAIhD,YAAY;gBACdnB,IAAIkE,WAAW,CAAC/C,UAAU,GAAGA,WAAWN,MAAM,CAAC2C,IAAI;YACrD,OAAO,IAAIJ,cAAc;gBACvBpD,IAAIkE,WAAW,CAACE,MAAM,GAAGhB,aAAaI,IAAI;YAC5C;YAEA,OAAO;QACT;QAEA,IAAIK,UAAU;YACZ3C,UAAU2C,SAAS3C,OAAO;QAC5B;QAEA,IAAI,CAACA,SAAS;YACZ,6DAA6D;YAC7D,sDAAsD;YACtD,IAAIlB,IAAIoB,MAAM,EAAEC,kBAAkB,WAAW;gBAC3C,OAAOnB,SAASC,IAAI,CAClB,CAAC,GACD;oBACEI,SAASZ,gBAAgB;wBACvBY,SAAS,IAAIC;wBACbR;oBACF;oBACAS,QAAQ;gBACV;YAEJ;YAEA,OAAOV,iBAAiBC,KAAKC;QAC/B;QAEA,IAAI,CAAC4D,UAAUQ,aAAa;YAC1B,MAAM9E,oBAAoB;gBAAE4C,eAAe;gBAAMnC;YAAI;QACvD;QAEA,MAAMkC,WAAW,MAAMhB,QAAQlB;QAE/B,OAAO,IAAIE,SAASgC,SAASoC,IAAI,EAAE;YACjC/D,SAASZ,gBAAgB;gBACvBY,SAASV,aAAaG,IAAIuE,eAAe,IAAI,IAAI/D,WAAW0B,SAAS3B,OAAO;gBAC5EP;YACF;YACAS,QAAQyB,SAASzB,MAAM;YACvB+D,YAAYtC,SAASsC,UAAU;QACjC;IACF,EAAE,OAAOC,MAAM;QACb,MAAMC,MAAMD;QACZ,OAAO3E,WAAW;YAChBqB;YACAN,QAAQC;YACR4D;YACA1E,KAAKA;QACP;IACF;AACF,EAAC"}
@@ -1,7 +1,6 @@
1
1
  /** HTTP status codes used by Payload. */
2
2
  export declare const httpStatus: {
3
3
  readonly BAD_REQUEST: 400;
4
- readonly CONFLICT: 409;
5
4
  readonly CREATED: 201;
6
5
  readonly FORBIDDEN: 403;
7
6
  readonly INTERNAL_SERVER_ERROR: 500;
@@ -13,6 +12,5 @@ export declare const httpStatus: {
13
12
  readonly REQUEST_ENTITY_TOO_LARGE: 413;
14
13
  readonly REQUESTED_RANGE_NOT_SATISFIABLE: 416;
15
14
  readonly UNAUTHORIZED: 401;
16
- readonly UNPROCESSABLE_ENTITY: 422;
17
15
  };
18
16
  //# sourceMappingURL=httpStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpStatus.d.ts","sourceRoot":"","sources":["../../src/utilities/httpStatus.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,eAAO,MAAM,UAAU;aACrB,WAAW,EAAE,GAAG;aAChB,QAAQ,EAAE,GAAG;aACb,OAAO,EAAE,GAAG;aACZ,SAAS,EAAE,GAAG;aACd,qBAAqB,EAAE,GAAG;aAC1B,MAAM,EAAE,GAAG;aACX,SAAS,EAAE,GAAG;aACd,eAAe,EAAE,GAAG;aACpB,EAAE,EAAE,GAAG;aACP,eAAe,EAAE,GAAG;aACpB,wBAAwB,EAAE,GAAG;aAC7B,+BAA+B,EAAE,GAAG;aACpC,YAAY,EAAE,GAAG;aACjB,oBAAoB,EAAE,GAAG;CACjB,CAAA"}
1
+ {"version":3,"file":"httpStatus.d.ts","sourceRoot":"","sources":["../../src/utilities/httpStatus.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,eAAO,MAAM,UAAU;aACrB,WAAW,EAAE,GAAG;aAChB,OAAO,EAAE,GAAG;aACZ,SAAS,EAAE,GAAG;aACd,qBAAqB,EAAE,GAAG;aAC1B,MAAM,EAAE,GAAG;aACX,SAAS,EAAE,GAAG;aACd,eAAe,EAAE,GAAG;aACpB,EAAE,EAAE,GAAG;aACP,eAAe,EAAE,GAAG;aACpB,wBAAwB,EAAE,GAAG;aAC7B,+BAA+B,EAAE,GAAG;aACpC,YAAY,EAAE,GAAG;CACT,CAAA"}
@@ -1,6 +1,5 @@
1
1
  /** HTTP status codes used by Payload. */ export const httpStatus = {
2
2
  BAD_REQUEST: 400,
3
- CONFLICT: 409,
4
3
  CREATED: 201,
5
4
  FORBIDDEN: 403,
6
5
  INTERNAL_SERVER_ERROR: 500,
@@ -11,8 +10,7 @@
11
10
  PARTIAL_CONTENT: 206,
12
11
  REQUEST_ENTITY_TOO_LARGE: 413,
13
12
  REQUESTED_RANGE_NOT_SATISFIABLE: 416,
14
- UNAUTHORIZED: 401,
15
- UNPROCESSABLE_ENTITY: 422
13
+ UNAUTHORIZED: 401
16
14
  };
17
15
 
18
16
  //# sourceMappingURL=httpStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/httpStatus.ts"],"sourcesContent":["/** HTTP status codes used by Payload. */\nexport const httpStatus = {\n BAD_REQUEST: 400,\n CONFLICT: 409,\n CREATED: 201,\n FORBIDDEN: 403,\n INTERNAL_SERVER_ERROR: 500,\n LOCKED: 423,\n NOT_FOUND: 404,\n NOT_IMPLEMENTED: 501,\n OK: 200,\n PARTIAL_CONTENT: 206,\n REQUEST_ENTITY_TOO_LARGE: 413,\n REQUESTED_RANGE_NOT_SATISFIABLE: 416,\n UNAUTHORIZED: 401,\n UNPROCESSABLE_ENTITY: 422,\n} as const\n"],"names":["httpStatus","BAD_REQUEST","CONFLICT","CREATED","FORBIDDEN","INTERNAL_SERVER_ERROR","LOCKED","NOT_FOUND","NOT_IMPLEMENTED","OK","PARTIAL_CONTENT","REQUEST_ENTITY_TOO_LARGE","REQUESTED_RANGE_NOT_SATISFIABLE","UNAUTHORIZED","UNPROCESSABLE_ENTITY"],"mappings":"AAAA,uCAAuC,GACvC,OAAO,MAAMA,aAAa;IACxBC,aAAa;IACbC,UAAU;IACVC,SAAS;IACTC,WAAW;IACXC,uBAAuB;IACvBC,QAAQ;IACRC,WAAW;IACXC,iBAAiB;IACjBC,IAAI;IACJC,iBAAiB;IACjBC,0BAA0B;IAC1BC,iCAAiC;IACjCC,cAAc;IACdC,sBAAsB;AACxB,EAAU"}
1
+ {"version":3,"sources":["../../src/utilities/httpStatus.ts"],"sourcesContent":["/** HTTP status codes used by Payload. */\nexport const httpStatus = {\n BAD_REQUEST: 400,\n CREATED: 201,\n FORBIDDEN: 403,\n INTERNAL_SERVER_ERROR: 500,\n LOCKED: 423,\n NOT_FOUND: 404,\n NOT_IMPLEMENTED: 501,\n OK: 200,\n PARTIAL_CONTENT: 206,\n REQUEST_ENTITY_TOO_LARGE: 413,\n REQUESTED_RANGE_NOT_SATISFIABLE: 416,\n UNAUTHORIZED: 401,\n} as const\n"],"names":["httpStatus","BAD_REQUEST","CREATED","FORBIDDEN","INTERNAL_SERVER_ERROR","LOCKED","NOT_FOUND","NOT_IMPLEMENTED","OK","PARTIAL_CONTENT","REQUEST_ENTITY_TOO_LARGE","REQUESTED_RANGE_NOT_SATISFIABLE","UNAUTHORIZED"],"mappings":"AAAA,uCAAuC,GACvC,OAAO,MAAMA,aAAa;IACxBC,aAAa;IACbC,SAAS;IACTC,WAAW;IACXC,uBAAuB;IACvBC,QAAQ;IACRC,WAAW;IACXC,iBAAiB;IACjBC,IAAI;IACJC,iBAAiB;IACjBC,0BAA0B;IAC1BC,iCAAiC;IACjCC,cAAc;AAChB,EAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"initTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/initTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,wBAAsB,oBAAoB,CAAC,EACzC,GAAG,GACJ,EAAE;IACD,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;CAC3C,GAAG,OAAO,CAAC,OAAO,CAAC,CAInB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC,CA6DlB"}
1
+ {"version":3,"file":"initTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/initTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,wBAAsB,oBAAoB,CAAC,EACzC,GAAG,GACJ,EAAE;IACD,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;CAC3C,GAAG,OAAO,CAAC,OAAO,CAAC,CAInB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
@@ -9,18 +9,7 @@ export async function hasActiveTransaction({ req }) {
9
9
  const { payload, transactionID } = req;
10
10
  if (transactionID instanceof Promise) {
11
11
  // wait for whoever else is already creating the transaction
12
- let resolvedTransactionID;
13
- try {
14
- resolvedTransactionID = await transactionID;
15
- } catch (error) {
16
- if (req.transactionID === transactionID) {
17
- delete req.transactionID;
18
- }
19
- throw error;
20
- }
21
- if (!resolvedTransactionID && req.transactionID === transactionID) {
22
- delete req.transactionID;
23
- }
12
+ await transactionID;
24
13
  return false;
25
14
  }
26
15
  if (transactionID) {
@@ -29,30 +18,13 @@ export async function hasActiveTransaction({ req }) {
29
18
  }
30
19
  if (typeof payload.db.beginTransaction === 'function') {
31
20
  // create a new transaction
32
- const pendingTransactionID = payload.db.beginTransaction();
33
- const pendingTransactionToken = pendingTransactionID;
34
- req.transactionID = pendingTransactionToken;
35
- let resolvedTransactionID;
36
- try {
37
- resolvedTransactionID = await pendingTransactionID;
38
- } catch (error) {
39
- if (req.transactionID === pendingTransactionToken) {
40
- delete req.transactionID;
21
+ req.transactionID = payload.db.beginTransaction().then((transactionID)=>{
22
+ if (transactionID) {
23
+ req.transactionID = transactionID;
41
24
  }
42
- throw error;
43
- }
44
- if (!resolvedTransactionID && req.transactionID === pendingTransactionToken) {
45
- delete req.transactionID;
46
- }
47
- if (!resolvedTransactionID) {
48
- return false;
49
- }
50
- if (req.transactionID !== pendingTransactionToken) {
51
- await payload.db.rollbackTransaction(resolvedTransactionID);
52
- return false;
53
- }
54
- req.transactionID = resolvedTransactionID;
55
- return true;
25
+ return transactionID;
26
+ });
27
+ return !!await req.transactionID;
56
28
  }
57
29
  return false;
58
30
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/initTransaction.ts"],"sourcesContent":["import type { MarkRequired } from 'ts-essentials'\n\nimport type { PayloadRequest } from '../types/index.js'\n\nexport async function hasActiveTransaction({\n req,\n}: {\n req: Pick<PayloadRequest, 'transactionID'>\n}): Promise<boolean> {\n const transactionID = await req.transactionID\n\n return typeof transactionID === 'number' || typeof transactionID === 'string'\n}\n\n/**\n * Starts a new transaction using the db adapter with a random id and then assigns it to the req.transaction\n * @returns true if beginning a transaction and false when req already has a transaction to use\n */\nexport async function initTransaction(\n req: MarkRequired<Partial<PayloadRequest>, 'payload'>,\n): Promise<boolean> {\n const { payload, transactionID } = req\n if (transactionID instanceof Promise) {\n // wait for whoever else is already creating the transaction\n let resolvedTransactionID: Awaited<typeof transactionID>\n\n try {\n resolvedTransactionID = await transactionID\n } catch (error) {\n if (req.transactionID === transactionID) {\n delete req.transactionID\n }\n throw error\n }\n\n if (!resolvedTransactionID && req.transactionID === transactionID) {\n delete req.transactionID\n }\n return false\n }\n\n if (transactionID) {\n // we already have a transaction, we're not in charge of committing it\n return false\n }\n if (typeof payload.db.beginTransaction === 'function') {\n // create a new transaction\n const pendingTransactionID = payload.db.beginTransaction()\n const pendingTransactionToken = pendingTransactionID as Promise<number | string>\n\n req.transactionID = pendingTransactionToken\n let resolvedTransactionID: Awaited<typeof pendingTransactionID>\n\n try {\n resolvedTransactionID = await pendingTransactionID\n } catch (error) {\n if (req.transactionID === pendingTransactionToken) {\n delete req.transactionID\n }\n throw error\n }\n\n if (!resolvedTransactionID && req.transactionID === pendingTransactionToken) {\n delete req.transactionID\n }\n\n if (!resolvedTransactionID) {\n return false\n }\n\n if (req.transactionID !== pendingTransactionToken) {\n await payload.db.rollbackTransaction(resolvedTransactionID)\n\n return false\n }\n\n req.transactionID = resolvedTransactionID\n\n return true\n }\n return false\n}\n"],"names":["hasActiveTransaction","req","transactionID","initTransaction","payload","Promise","resolvedTransactionID","error","db","beginTransaction","pendingTransactionID","pendingTransactionToken","rollbackTransaction"],"mappings":"AAIA,OAAO,eAAeA,qBAAqB,EACzCC,GAAG,EAGJ;IACC,MAAMC,gBAAgB,MAAMD,IAAIC,aAAa;IAE7C,OAAO,OAAOA,kBAAkB,YAAY,OAAOA,kBAAkB;AACvE;AAEA;;;CAGC,GACD,OAAO,eAAeC,gBACpBF,GAAqD;IAErD,MAAM,EAAEG,OAAO,EAAEF,aAAa,EAAE,GAAGD;IACnC,IAAIC,yBAAyBG,SAAS;QACpC,4DAA4D;QAC5D,IAAIC;QAEJ,IAAI;YACFA,wBAAwB,MAAMJ;QAChC,EAAE,OAAOK,OAAO;YACd,IAAIN,IAAIC,aAAa,KAAKA,eAAe;gBACvC,OAAOD,IAAIC,aAAa;YAC1B;YACA,MAAMK;QACR;QAEA,IAAI,CAACD,yBAAyBL,IAAIC,aAAa,KAAKA,eAAe;YACjE,OAAOD,IAAIC,aAAa;QAC1B;QACA,OAAO;IACT;IAEA,IAAIA,eAAe;QACjB,sEAAsE;QACtE,OAAO;IACT;IACA,IAAI,OAAOE,QAAQI,EAAE,CAACC,gBAAgB,KAAK,YAAY;QACrD,2BAA2B;QAC3B,MAAMC,uBAAuBN,QAAQI,EAAE,CAACC,gBAAgB;QACxD,MAAME,0BAA0BD;QAEhCT,IAAIC,aAAa,GAAGS;QACpB,IAAIL;QAEJ,IAAI;YACFA,wBAAwB,MAAMI;QAChC,EAAE,OAAOH,OAAO;YACd,IAAIN,IAAIC,aAAa,KAAKS,yBAAyB;gBACjD,OAAOV,IAAIC,aAAa;YAC1B;YACA,MAAMK;QACR;QAEA,IAAI,CAACD,yBAAyBL,IAAIC,aAAa,KAAKS,yBAAyB;YAC3E,OAAOV,IAAIC,aAAa;QAC1B;QAEA,IAAI,CAACI,uBAAuB;YAC1B,OAAO;QACT;QAEA,IAAIL,IAAIC,aAAa,KAAKS,yBAAyB;YACjD,MAAMP,QAAQI,EAAE,CAACI,mBAAmB,CAACN;YAErC,OAAO;QACT;QAEAL,IAAIC,aAAa,GAAGI;QAEpB,OAAO;IACT;IACA,OAAO;AACT"}
1
+ {"version":3,"sources":["../../src/utilities/initTransaction.ts"],"sourcesContent":["import type { MarkRequired } from 'ts-essentials'\n\nimport type { PayloadRequest } from '../types/index.js'\n\nexport async function hasActiveTransaction({\n req,\n}: {\n req: Pick<PayloadRequest, 'transactionID'>\n}): Promise<boolean> {\n const transactionID = await req.transactionID\n\n return typeof transactionID === 'number' || typeof transactionID === 'string'\n}\n\n/**\n * Starts a new transaction using the db adapter with a random id and then assigns it to the req.transaction\n * @returns true if beginning a transaction and false when req already has a transaction to use\n */\nexport async function initTransaction(\n req: MarkRequired<Partial<PayloadRequest>, 'payload'>,\n): Promise<boolean> {\n const { payload, transactionID } = req\n if (transactionID instanceof Promise) {\n // wait for whoever else is already creating the transaction\n await transactionID\n return false\n }\n\n if (transactionID) {\n // we already have a transaction, we're not in charge of committing it\n return false\n }\n if (typeof payload.db.beginTransaction === 'function') {\n // create a new transaction\n req.transactionID = payload.db.beginTransaction().then((transactionID) => {\n if (transactionID) {\n req.transactionID = transactionID\n }\n\n return transactionID!\n })\n return !!(await req.transactionID)\n }\n return false\n}\n"],"names":["hasActiveTransaction","req","transactionID","initTransaction","payload","Promise","db","beginTransaction","then"],"mappings":"AAIA,OAAO,eAAeA,qBAAqB,EACzCC,GAAG,EAGJ;IACC,MAAMC,gBAAgB,MAAMD,IAAIC,aAAa;IAE7C,OAAO,OAAOA,kBAAkB,YAAY,OAAOA,kBAAkB;AACvE;AAEA;;;CAGC,GACD,OAAO,eAAeC,gBACpBF,GAAqD;IAErD,MAAM,EAAEG,OAAO,EAAEF,aAAa,EAAE,GAAGD;IACnC,IAAIC,yBAAyBG,SAAS;QACpC,4DAA4D;QAC5D,MAAMH;QACN,OAAO;IACT;IAEA,IAAIA,eAAe;QACjB,sEAAsE;QACtE,OAAO;IACT;IACA,IAAI,OAAOE,QAAQE,EAAE,CAACC,gBAAgB,KAAK,YAAY;QACrD,2BAA2B;QAC3BN,IAAIC,aAAa,GAAGE,QAAQE,EAAE,CAACC,gBAAgB,GAAGC,IAAI,CAAC,CAACN;YACtD,IAAIA,eAAe;gBACjBD,IAAIC,aAAa,GAAGA;YACtB;YAEA,OAAOA;QACT;QACA,OAAO,CAAC,CAAE,MAAMD,IAAIC,aAAa;IACnC;IACA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"killTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/killTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAUvD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,GACpD,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
1
+ {"version":3,"file":"killTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/killTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,GACpD,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -1,6 +1,4 @@
1
- import { resetBranchState } from '../branching/resolveBranch.js';
2
1
  import { rollbackFileOperations } from '../uploads/fileVersioning/fileOperationManager.js';
3
- import { clearTransactionCommitCallbacks, clearTransactionRollbackCallbacks, runTransactionRollbackCallbacks } from './transactionCallbacks.js';
4
2
  /**
5
3
  * Rollback the transaction from the req using the db adapter and removes it from the req
6
4
  *
@@ -13,10 +11,8 @@ import { clearTransactionCommitCallbacks, clearTransactionRollbackCallbacks, run
13
11
  */ export async function killTransaction(req) {
14
12
  const { payload, transactionID } = req;
15
13
  if (transactionID && !(transactionID instanceof Promise)) {
16
- let didRollBack = false;
17
14
  try {
18
15
  await payload.db.rollbackTransaction(req.transactionID);
19
- didRollBack = true;
20
16
  await rollbackFileOperations({
21
17
  req: req
22
18
  });
@@ -24,29 +20,6 @@ import { clearTransactionCommitCallbacks, clearTransactionRollbackCallbacks, run
24
20
  // swallow any errors while attempting to rollback
25
21
  }
26
22
  delete req.transactionID;
27
- clearTransactionCommitCallbacks({
28
- req,
29
- transactionID
30
- });
31
- if (didRollBack) {
32
- try {
33
- await runTransactionRollbackCallbacks({
34
- req,
35
- transactionID
36
- });
37
- } catch (err) {
38
- payload.logger.error({
39
- err,
40
- msg: 'A post-rollback callback failed.'
41
- });
42
- }
43
- } else {
44
- clearTransactionRollbackCallbacks({
45
- req,
46
- transactionID
47
- });
48
- }
49
- resetBranchState(req);
50
23
  }
51
24
  }
52
25
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/killTransaction.ts"],"sourcesContent":["import type { MarkRequired } from 'ts-essentials'\n\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { resetBranchState } from '../branching/resolveBranch.js'\nimport { rollbackFileOperations } from '../uploads/fileVersioning/fileOperationManager.js'\nimport {\n clearTransactionCommitCallbacks,\n clearTransactionRollbackCallbacks,\n runTransactionRollbackCallbacks,\n} from './transactionCallbacks.js'\n\n/**\n * Rollback the transaction from the req using the db adapter and removes it from the req\n *\n * Only call this from an operation that owns the transaction, i.e. one whose own\n * `initTransaction` call returned `true`. Operations that never open a transaction —\n * every read operation — must not call this: `req` is shared with the caller, so rolling\n * back here discards the caller's in-flight writes. If that caller catches the error\n * (a hook tolerating a missing doc, for example) it goes on to commit a transaction that\n * no longer exists, and the write is lost with no error surfaced.\n */\nexport async function killTransaction(\n req: MarkRequired<Partial<PayloadRequest>, 'payload'>,\n): Promise<void> {\n const { payload, transactionID } = req\n if (transactionID && !(transactionID instanceof Promise)) {\n let didRollBack = false\n\n try {\n await payload.db.rollbackTransaction(req.transactionID!)\n didRollBack = true\n await rollbackFileOperations({ req: req as PayloadRequest })\n } catch (ignore) {\n // swallow any errors while attempting to rollback\n }\n delete req.transactionID\n clearTransactionCommitCallbacks({ req, transactionID })\n\n if (didRollBack) {\n try {\n await runTransactionRollbackCallbacks({ req, transactionID })\n } catch (err) {\n payload.logger.error({ err, msg: 'A post-rollback callback failed.' })\n }\n } else {\n clearTransactionRollbackCallbacks({ req, transactionID })\n }\n\n resetBranchState(req as PayloadRequest)\n }\n}\n"],"names":["resetBranchState","rollbackFileOperations","clearTransactionCommitCallbacks","clearTransactionRollbackCallbacks","runTransactionRollbackCallbacks","killTransaction","req","payload","transactionID","Promise","didRollBack","db","rollbackTransaction","ignore","err","logger","error","msg"],"mappings":"AAIA,SAASA,gBAAgB,QAAQ,gCAA+B;AAChE,SAASC,sBAAsB,QAAQ,oDAAmD;AAC1F,SACEC,+BAA+B,EAC/BC,iCAAiC,EACjCC,+BAA+B,QAC1B,4BAA2B;AAElC;;;;;;;;;CASC,GACD,OAAO,eAAeC,gBACpBC,GAAqD;IAErD,MAAM,EAAEC,OAAO,EAAEC,aAAa,EAAE,GAAGF;IACnC,IAAIE,iBAAiB,CAAEA,CAAAA,yBAAyBC,OAAM,GAAI;QACxD,IAAIC,cAAc;QAElB,IAAI;YACF,MAAMH,QAAQI,EAAE,CAACC,mBAAmB,CAACN,IAAIE,aAAa;YACtDE,cAAc;YACd,MAAMT,uBAAuB;gBAAEK,KAAKA;YAAsB;QAC5D,EAAE,OAAOO,QAAQ;QACf,kDAAkD;QACpD;QACA,OAAOP,IAAIE,aAAa;QACxBN,gCAAgC;YAAEI;YAAKE;QAAc;QAErD,IAAIE,aAAa;YACf,IAAI;gBACF,MAAMN,gCAAgC;oBAAEE;oBAAKE;gBAAc;YAC7D,EAAE,OAAOM,KAAK;gBACZP,QAAQQ,MAAM,CAACC,KAAK,CAAC;oBAAEF;oBAAKG,KAAK;gBAAmC;YACtE;QACF,OAAO;YACLd,kCAAkC;gBAAEG;gBAAKE;YAAc;QACzD;QAEAR,iBAAiBM;IACnB;AACF"}
1
+ {"version":3,"sources":["../../src/utilities/killTransaction.ts"],"sourcesContent":["import type { MarkRequired } from 'ts-essentials'\n\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { rollbackFileOperations } from '../uploads/fileVersioning/fileOperationManager.js'\n\n/**\n * Rollback the transaction from the req using the db adapter and removes it from the req\n *\n * Only call this from an operation that owns the transaction, i.e. one whose own\n * `initTransaction` call returned `true`. Operations that never open a transaction —\n * every read operation — must not call this: `req` is shared with the caller, so rolling\n * back here discards the caller's in-flight writes. If that caller catches the error\n * (a hook tolerating a missing doc, for example) it goes on to commit a transaction that\n * no longer exists, and the write is lost with no error surfaced.\n */\nexport async function killTransaction(\n req: MarkRequired<Partial<PayloadRequest>, 'payload'>,\n): Promise<void> {\n const { payload, transactionID } = req\n if (transactionID && !(transactionID instanceof Promise)) {\n try {\n await payload.db.rollbackTransaction(req.transactionID!)\n await rollbackFileOperations({ req: req as PayloadRequest })\n } catch (ignore) {\n // swallow any errors while attempting to rollback\n }\n delete req.transactionID\n }\n}\n"],"names":["rollbackFileOperations","killTransaction","req","payload","transactionID","Promise","db","rollbackTransaction","ignore"],"mappings":"AAIA,SAASA,sBAAsB,QAAQ,oDAAmD;AAE1F;;;;;;;;;CASC,GACD,OAAO,eAAeC,gBACpBC,GAAqD;IAErD,MAAM,EAAEC,OAAO,EAAEC,aAAa,EAAE,GAAGF;IACnC,IAAIE,iBAAiB,CAAEA,CAAAA,yBAAyBC,OAAM,GAAI;QACxD,IAAI;YACF,MAAMF,QAAQG,EAAE,CAACC,mBAAmB,CAACL,IAAIE,aAAa;YACtD,MAAMJ,uBAAuB;gBAAEE,KAAKA;YAAsB;QAC5D,EAAE,OAAOM,QAAQ;QACf,kDAAkD;QACpD;QACA,OAAON,IAAIE,aAAa;IAC1B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/parseParams/index.ts"],"sourcesContent":["import type { JoinQuery, PopulateType, SelectType, Where } from '../../types/index.js'\nimport type { JoinParams } from '../sanitizeJoinParams.js'\n\nimport { isNumber } from '../isNumber.js'\nimport { parseBooleanString } from '../parseBooleanString.js'\nimport { sanitizeJoinParams } from '../sanitizeJoinParams.js'\nimport { sanitizePopulateParam } from '../sanitizePopulateParam.js'\nimport { sanitizeSelectParam } from '../sanitizeSelectParam.js'\nimport { sanitizeSortParams } from '../sanitizeSortParams.js'\n\nexport type RawParams = {\n [key: string]: unknown\n autosave?: string\n data?: string\n depth?: string\n draft?: string\n field?: string\n flattenLocales?: string\n joins?: JoinParams\n limit?: string\n overrideLock?: string\n page?: string\n pagination?: string\n populate?: unknown\n publishAllLocales?: string\n select?: unknown\n selectedLocales?: string\n sort?: string | string[]\n trash?: string\n unpublishAllLocales?: string\n where?: string | Where\n}\n\nexport type ParsedParams = {\n autosave?: boolean\n data?: Record<string, unknown>\n depth?: number\n draft?: boolean\n field?: string\n flattenLocales?: boolean\n joins?: JoinQuery\n limit?: number\n overrideLock?: boolean\n page?: number\n pagination?: boolean\n populate?: PopulateType\n publishAllLocales?: boolean\n select?: SelectType\n selectedLocales?: string[]\n sort?: string[]\n trash?: boolean\n unpublishAllLocales?: boolean\n where?: Where\n} & Record<string, unknown>\n\nexport const booleanParams = [\n 'autosave',\n 'draft',\n 'trash',\n 'overrideLock',\n 'pagination',\n 'flattenLocales',\n 'publishAllLocales',\n 'unpublishAllLocales',\n]\n\nexport const numberParams = ['depth', 'limit', 'page']\n\n/**\n * Takes raw query parameters and parses them into the correct types that Payload expects.\n * Examples:\n * a. `draft` provided as a string of \"true\" is converted to a boolean\n * b. `depth` provided as a string of \"0\" is converted to a number\n * c. `sort` provided as a comma-separated string or array is converted to an array of strings\n */\nexport const parseParams = (params: RawParams): ParsedParams => {\n const parsedParams = (params || {}) as ParsedParams\n\n // iterate through known params to make this very fast\n for (const key of booleanParams) {\n if (key in params) {\n parsedParams[key] = parseBooleanString(params[key] as boolean | string)\n }\n }\n\n for (const key of numberParams) {\n if (key in params) {\n if (isNumber(params[key])) {\n parsedParams[key] = Number(params[key])\n }\n }\n }\n\n if ('populate' in params) {\n parsedParams.populate = sanitizePopulateParam(params.populate)\n }\n\n if ('select' in params) {\n parsedParams.select = sanitizeSelectParam(params.select)\n }\n\n if ('joins' in params) {\n parsedParams.joins = sanitizeJoinParams(params.joins as JoinParams)\n }\n\n if ('sort' in params) {\n parsedParams.sort = sanitizeSortParams(params.sort)\n }\n\n if ('data' in params && typeof params.data === 'string' && params.data.length > 0) {\n parsedParams.data = JSON.parse(params.data)\n }\n\n if ('where' in params && typeof params.where === 'string' && params.where.length > 0) {\n parsedParams.where = JSON.parse(params.where) as Where\n }\n\n return parsedParams\n}\n"],"names":["isNumber","parseBooleanString","sanitizeJoinParams","sanitizePopulateParam","sanitizeSelectParam","sanitizeSortParams","booleanParams","numberParams","parseParams","params","parsedParams","key","Number","populate","select","joins","sort","data","length","JSON","parse","where"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,iBAAgB;AACzC,SAASC,kBAAkB,QAAQ,2BAA0B;AAC7D,SAASC,kBAAkB,QAAQ,2BAA0B;AAC7D,SAASC,qBAAqB,QAAQ,8BAA6B;AACnE,SAASC,mBAAmB,QAAQ,4BAA2B;AAC/D,SAASC,kBAAkB,QAAQ,2BAA0B;AA+C7D,OAAO,MAAMC,gBAAgB;IAC3B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAAA;AAED,OAAO,MAAMC,eAAe;IAAC;IAAS;IAAS;CAAO,CAAA;AAEtD;;;;;;CAMC,GACD,OAAO,MAAMC,cAAc,CAACC;IAC1B,MAAMC,eAAgBD,UAAU,CAAC;IAEjC,sDAAsD;IACtD,KAAK,MAAME,OAAOL,cAAe;QAC/B,IAAIK,OAAOF,QAAQ;YACjBC,YAAY,CAACC,IAAI,GAAGV,mBAAmBQ,MAAM,CAACE,IAAI;QACpD;IACF;IAEA,KAAK,MAAMA,OAAOJ,aAAc;QAC9B,IAAII,OAAOF,QAAQ;YACjB,IAAIT,SAASS,MAAM,CAACE,IAAI,GAAG;gBACzBD,YAAY,CAACC,IAAI,GAAGC,OAAOH,MAAM,CAACE,IAAI;YACxC;QACF;IACF;IAEA,IAAI,cAAcF,QAAQ;QACxBC,aAAaG,QAAQ,GAAGV,sBAAsBM,OAAOI,QAAQ;IAC/D;IAEA,IAAI,YAAYJ,QAAQ;QACtBC,aAAaI,MAAM,GAAGV,oBAAoBK,OAAOK,MAAM;IACzD;IAEA,IAAI,WAAWL,QAAQ;QACrBC,aAAaK,KAAK,GAAGb,mBAAmBO,OAAOM,KAAK;IACtD;IAEA,IAAI,UAAUN,QAAQ;QACpBC,aAAaM,IAAI,GAAGX,mBAAmBI,OAAOO,IAAI;IACpD;IAEA,IAAI,UAAUP,UAAU,OAAOA,OAAOQ,IAAI,KAAK,YAAYR,OAAOQ,IAAI,CAACC,MAAM,GAAG,GAAG;QACjFR,aAAaO,IAAI,GAAGE,KAAKC,KAAK,CAACX,OAAOQ,IAAI;IAC5C;IAEA,IAAI,WAAWR,UAAU,OAAOA,OAAOY,KAAK,KAAK,YAAYZ,OAAOY,KAAK,CAACH,MAAM,GAAG,GAAG;QACpFR,aAAaW,KAAK,GAAGF,KAAKC,KAAK,CAACX,OAAOY,KAAK;IAC9C;IAEA,OAAOX;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/parseParams/index.ts"],"sourcesContent":["import type { JoinQuery, PopulateType, SelectType, Where } from '../../types/index.js'\nimport type { JoinParams } from '../sanitizeJoinParams.js'\n\nimport { isNumber } from '../isNumber.js'\nimport { parseBooleanString } from '../parseBooleanString.js'\nimport { sanitizeJoinParams } from '../sanitizeJoinParams.js'\nimport { sanitizePopulateParam } from '../sanitizePopulateParam.js'\nimport { sanitizeSelectParam } from '../sanitizeSelectParam.js'\nimport { sanitizeSortParams } from '../sanitizeSortParams.js'\n\nexport type RawParams = {\n [key: string]: unknown\n autosave?: string\n data?: string\n depth?: string\n draft?: string\n field?: string\n flattenLocales?: string\n joins?: JoinParams\n limit?: string\n overrideLock?: string\n page?: string\n pagination?: string\n populate?: unknown\n publishAllLocales?: string\n select?: unknown\n selectedLocales?: string\n sort?: string | string[]\n trash?: string\n unpublishAllLocales?: string\n where?: string | Where\n}\n\nexport type ParsedParams = {\n autosave?: boolean\n data?: Record<string, unknown>\n depth?: number\n draft?: boolean\n field?: string\n flattenLocales?: boolean\n joins?: JoinQuery\n limit?: number\n overrideLock?: boolean\n page?: number\n pagination?: boolean\n populate?: PopulateType\n publishAllLocales?: boolean\n select?: SelectType\n selectedLocales?: string[]\n sort?: string[]\n trash?: boolean\n unpublishAllLocales?: boolean\n where?: Where\n} & Record<string, unknown>\n\nexport const booleanParams = [\n 'autosave',\n 'draft',\n 'trash',\n 'overrideLock',\n 'pagination',\n 'flattenLocales',\n 'publishAllLocales',\n 'unpublishAllLocales',\n]\n\nexport const numberParams = ['depth', 'limit', 'page']\n\n/**\n * Takes raw query parameters and parses them into the correct types that Payload expects.\n * Examples:\n * a. `draft` provided as a string of \"true\" is converted to a boolean\n * b. `depth` provided as a string of \"0\" is converted to a number\n * c. `sort` provided as a comma-separated string or array is converted to an array of strings\n */\nexport const parseParams = (params: RawParams): ParsedParams => {\n const parsedParams = (params || {}) as ParsedParams\n\n // iterate through known params to make this very fast\n for (const key of booleanParams) {\n if (key in params) {\n parsedParams[key] = parseBooleanString(params[key] as boolean | string)\n }\n }\n\n for (const key of numberParams) {\n if (key in params) {\n if (isNumber(params[key])) {\n parsedParams[key] = Number(params[key])\n }\n }\n }\n\n if ('populate' in params) {\n parsedParams.populate = sanitizePopulateParam(params.populate)\n }\n\n if ('select' in params) {\n parsedParams.select = sanitizeSelectParam(params.select)\n }\n\n if ('joins' in params) {\n parsedParams.joins = sanitizeJoinParams(params.joins)\n }\n\n if ('sort' in params) {\n parsedParams.sort = sanitizeSortParams(params.sort)\n }\n\n if ('data' in params && typeof params.data === 'string' && params.data.length > 0) {\n parsedParams.data = JSON.parse(params.data)\n }\n\n if ('where' in params && typeof params.where === 'string' && params.where.length > 0) {\n parsedParams.where = JSON.parse(params.where) as Where\n }\n\n return parsedParams\n}\n"],"names":["isNumber","parseBooleanString","sanitizeJoinParams","sanitizePopulateParam","sanitizeSelectParam","sanitizeSortParams","booleanParams","numberParams","parseParams","params","parsedParams","key","Number","populate","select","joins","sort","data","length","JSON","parse","where"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,iBAAgB;AACzC,SAASC,kBAAkB,QAAQ,2BAA0B;AAC7D,SAASC,kBAAkB,QAAQ,2BAA0B;AAC7D,SAASC,qBAAqB,QAAQ,8BAA6B;AACnE,SAASC,mBAAmB,QAAQ,4BAA2B;AAC/D,SAASC,kBAAkB,QAAQ,2BAA0B;AA+C7D,OAAO,MAAMC,gBAAgB;IAC3B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAAA;AAED,OAAO,MAAMC,eAAe;IAAC;IAAS;IAAS;CAAO,CAAA;AAEtD;;;;;;CAMC,GACD,OAAO,MAAMC,cAAc,CAACC;IAC1B,MAAMC,eAAgBD,UAAU,CAAC;IAEjC,sDAAsD;IACtD,KAAK,MAAME,OAAOL,cAAe;QAC/B,IAAIK,OAAOF,QAAQ;YACjBC,YAAY,CAACC,IAAI,GAAGV,mBAAmBQ,MAAM,CAACE,IAAI;QACpD;IACF;IAEA,KAAK,MAAMA,OAAOJ,aAAc;QAC9B,IAAII,OAAOF,QAAQ;YACjB,IAAIT,SAASS,MAAM,CAACE,IAAI,GAAG;gBACzBD,YAAY,CAACC,IAAI,GAAGC,OAAOH,MAAM,CAACE,IAAI;YACxC;QACF;IACF;IAEA,IAAI,cAAcF,QAAQ;QACxBC,aAAaG,QAAQ,GAAGV,sBAAsBM,OAAOI,QAAQ;IAC/D;IAEA,IAAI,YAAYJ,QAAQ;QACtBC,aAAaI,MAAM,GAAGV,oBAAoBK,OAAOK,MAAM;IACzD;IAEA,IAAI,WAAWL,QAAQ;QACrBC,aAAaK,KAAK,GAAGb,mBAAmBO,OAAOM,KAAK;IACtD;IAEA,IAAI,UAAUN,QAAQ;QACpBC,aAAaM,IAAI,GAAGX,mBAAmBI,OAAOO,IAAI;IACpD;IAEA,IAAI,UAAUP,UAAU,OAAOA,OAAOQ,IAAI,KAAK,YAAYR,OAAOQ,IAAI,CAACC,MAAM,GAAG,GAAG;QACjFR,aAAaO,IAAI,GAAGE,KAAKC,KAAK,CAACX,OAAOQ,IAAI;IAC5C;IAEA,IAAI,WAAWR,UAAU,OAAOA,OAAOY,KAAK,KAAK,YAAYZ,OAAOY,KAAK,CAACH,MAAM,GAAG,GAAG;QACpFR,aAAaW,KAAK,GAAGF,KAAKC,KAAK,CAACX,OAAOY,KAAK;IAC9C;IAEA,OAAOX;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/parseValidationLocale.ts"],"sourcesContent":["import type { TypedLocale } from '../index.js'\nimport type { ValidationLocaleSelector } from './resolveValidationLocales.js'\n\nimport { APIError } from '../errors/index.js'\nimport { httpStatus } from './httpStatus.js'\n\n/**\n * Parses a REST `locale` query value. Repeated query parameters are represented as an array and\n * `locale=all` selects all locales.\n */\nexport function parseValidationLocaleSelector(locale: unknown): ValidationLocaleSelector {\n if (typeof locale === 'string') {\n if (locale.length === 0) {\n throw new APIError('Validation requires a locale.', httpStatus.BAD_REQUEST)\n }\n\n if (locale === 'all') {\n return 'all'\n }\n\n return locale as TypedLocale\n }\n\n if (\n Array.isArray(locale) &&\n locale.length > 0 &&\n locale.every((value) => typeof value === 'string')\n ) {\n if (locale.some((value) => value.length === 0)) {\n throw new APIError('Validation requires a locale.', httpStatus.BAD_REQUEST)\n }\n\n return locale as [TypedLocale, ...TypedLocale[]]\n }\n\n throw new APIError('Validation requires a locale.', httpStatus.BAD_REQUEST)\n}\n\n/** Ensures a REST validation request body is a non-null JSON object. */\nexport function assertValidationData(data: unknown): asserts data is Record<string, unknown> {\n if (!data || Array.isArray(data) || typeof data !== 'object') {\n throw new APIError('Validation data must be an object.', httpStatus.BAD_REQUEST)\n }\n}\n"],"names":["APIError","httpStatus","parseValidationLocaleSelector","locale","length","BAD_REQUEST","Array","isArray","every","value","some","assertValidationData","data"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,UAAU,QAAQ,kBAAiB;AAE5C;;;CAGC,GACD,OAAO,SAASC,8BAA8BC,MAAe;IAC3D,IAAI,OAAOA,WAAW,UAAU;QAC9B,IAAIA,OAAOC,MAAM,KAAK,GAAG;YACvB,MAAM,IAAIJ,SAAS,iCAAiCC,WAAWI,WAAW;QAC5E;QAEA,IAAIF,WAAW,OAAO;YACpB,OAAO;QACT;QAEA,OAAOA;IACT;IAEA,IACEG,MAAMC,OAAO,CAACJ,WACdA,OAAOC,MAAM,GAAG,KAChBD,OAAOK,KAAK,CAAC,CAACC,QAAU,OAAOA,UAAU,WACzC;QACA,IAAIN,OAAOO,IAAI,CAAC,CAACD,QAAUA,MAAML,MAAM,KAAK,IAAI;YAC9C,MAAM,IAAIJ,SAAS,iCAAiCC,WAAWI,WAAW;QAC5E;QAEA,OAAOF;IACT;IAEA,MAAM,IAAIH,SAAS,iCAAiCC,WAAWI,WAAW;AAC5E;AAEA,sEAAsE,GACtE,OAAO,SAASM,qBAAqBC,IAAa;IAChD,IAAI,CAACA,QAAQN,MAAMC,OAAO,CAACK,SAAS,OAAOA,SAAS,UAAU;QAC5D,MAAM,IAAIZ,SAAS,sCAAsCC,WAAWI,WAAW;IACjF;AACF"}
1
+ {"version":3,"sources":["../../src/utilities/parseValidationLocale.ts"],"sourcesContent":["import type { TypedLocale } from '../index.js'\nimport type { ValidationLocaleSelector } from './resolveValidationLocales.js'\n\nimport { APIError } from '../errors/index.js'\nimport { httpStatus } from './httpStatus.js'\n\n/**\n * Parses a REST `locale` query value. Repeated query parameters are represented as an array and\n * `locale=all` selects all locales.\n */\nexport function parseValidationLocaleSelector(locale: unknown): ValidationLocaleSelector {\n if (typeof locale === 'string') {\n if (locale.length === 0) {\n throw new APIError('Validation requires a locale.', httpStatus.BAD_REQUEST)\n }\n\n if (locale === 'all') {\n return 'all'\n }\n\n return locale\n }\n\n if (\n Array.isArray(locale) &&\n locale.length > 0 &&\n locale.every((value) => typeof value === 'string')\n ) {\n if (locale.some((value) => value.length === 0)) {\n throw new APIError('Validation requires a locale.', httpStatus.BAD_REQUEST)\n }\n\n return locale as [TypedLocale, ...TypedLocale[]]\n }\n\n throw new APIError('Validation requires a locale.', httpStatus.BAD_REQUEST)\n}\n\n/** Ensures a REST validation request body is a non-null JSON object. */\nexport function assertValidationData(data: unknown): asserts data is Record<string, unknown> {\n if (!data || Array.isArray(data) || typeof data !== 'object') {\n throw new APIError('Validation data must be an object.', httpStatus.BAD_REQUEST)\n }\n}\n"],"names":["APIError","httpStatus","parseValidationLocaleSelector","locale","length","BAD_REQUEST","Array","isArray","every","value","some","assertValidationData","data"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,UAAU,QAAQ,kBAAiB;AAE5C;;;CAGC,GACD,OAAO,SAASC,8BAA8BC,MAAe;IAC3D,IAAI,OAAOA,WAAW,UAAU;QAC9B,IAAIA,OAAOC,MAAM,KAAK,GAAG;YACvB,MAAM,IAAIJ,SAAS,iCAAiCC,WAAWI,WAAW;QAC5E;QAEA,IAAIF,WAAW,OAAO;YACpB,OAAO;QACT;QAEA,OAAOA;IACT;IAEA,IACEG,MAAMC,OAAO,CAACJ,WACdA,OAAOC,MAAM,GAAG,KAChBD,OAAOK,KAAK,CAAC,CAACC,QAAU,OAAOA,UAAU,WACzC;QACA,IAAIN,OAAOO,IAAI,CAAC,CAACD,QAAUA,MAAML,MAAM,KAAK,IAAI;YAC9C,MAAM,IAAIJ,SAAS,iCAAiCC,WAAWI,WAAW;QAC5E;QAEA,OAAOF;IACT;IAEA,MAAM,IAAIH,SAAS,iCAAiCC,WAAWI,WAAW;AAC5E;AAEA,sEAAsE,GACtE,OAAO,SAASM,qBAAqBC,IAAa;IAChD,IAAI,CAACA,QAAQN,MAAMC,OAAO,CAACK,SAAS,OAAOA,SAAS,UAAU;QAC5D,MAAM,IAAIZ,SAAS,sCAAsCC,WAAWI,WAAW;IACjF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/sanitizePopulateParam.ts"],"sourcesContent":["import type { PopulateType } from '../types/index.js'\n\nimport { sanitizeSelectParam } from './sanitizeSelectParam.js'\n\n/**\n * Sanitizes REST populate query to PopulateType\n */\nexport const sanitizePopulateParam = (unsanitizedPopulate: unknown): PopulateType | undefined => {\n if (!unsanitizedPopulate || typeof unsanitizedPopulate !== 'object') {\n return\n }\n\n for (const k in unsanitizedPopulate) {\n ;(unsanitizedPopulate as Record<string, any>)[k] = sanitizeSelectParam(\n unsanitizedPopulate[k as keyof typeof unsanitizedPopulate],\n )\n }\n\n return unsanitizedPopulate as PopulateType\n}\n"],"names":["sanitizeSelectParam","sanitizePopulateParam","unsanitizedPopulate","k"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,2BAA0B;AAE9D;;CAEC,GACD,OAAO,MAAMC,wBAAwB,CAACC;IACpC,IAAI,CAACA,uBAAuB,OAAOA,wBAAwB,UAAU;QACnE;IACF;IAEA,IAAK,MAAMC,KAAKD,oBAAqB;;QACjCA,mBAA2C,CAACC,EAAE,GAAGH,oBACjDE,mBAAmB,CAACC,EAAsC;IAE9D;IAEA,OAAOD;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/sanitizePopulateParam.ts"],"sourcesContent":["import type { PopulateType } from '../types/index.js'\n\nimport { sanitizeSelectParam } from './sanitizeSelectParam.js'\n\n/**\n * Sanitizes REST populate query to PopulateType\n */\nexport const sanitizePopulateParam = (unsanitizedPopulate: unknown): PopulateType | undefined => {\n if (!unsanitizedPopulate || typeof unsanitizedPopulate !== 'object') {\n return\n }\n\n for (const k in unsanitizedPopulate) {\n ;(unsanitizedPopulate as Record<string, any>)[k] = sanitizeSelectParam(\n unsanitizedPopulate[k as keyof typeof unsanitizedPopulate],\n )\n }\n\n return unsanitizedPopulate\n}\n"],"names":["sanitizeSelectParam","sanitizePopulateParam","unsanitizedPopulate","k"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,2BAA0B;AAE9D;;CAEC,GACD,OAAO,MAAMC,wBAAwB,CAACC;IACpC,IAAI,CAACA,uBAAuB,OAAOA,wBAAwB,UAAU;QACnE;IACF;IAEA,IAAK,MAAMC,KAAKD,oBAAqB;;QACjCA,mBAA2C,CAACC,EAAE,GAAGH,oBACjDE,mBAAmB,CAACC,EAAsC;IAE9D;IAEA,OAAOD;AACT,EAAC"}
@@ -11,7 +11,10 @@
11
11
  *
12
12
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
13
13
  */
14
- export declare class Conf<T extends Record<string, any> = Record<string, unknown>> implements Iterable<[keyof T, T[keyof T]]> {
14
+ export declare class Conf<T extends Record<string, any> = Record<string, unknown>> implements Iterable<[
15
+ keyof T,
16
+ T[keyof T]
17
+ ]> {
15
18
  #private;
16
19
  private readonly _deserialize;
17
20
  private readonly _serialize;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utilities/telemetry/conf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsBH,qBAAa,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACvE,YAAW,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;IAG1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkE;IAE7F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAE5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,cAyBC;IAED,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,MAAM;IAMd;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAKxB;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAGzC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAG,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CA4BpE;IAEA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAI5D;IACD,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,KAAK,IAAI,CAAC,CAab;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,EAMjB;CACF;AAED,MAAM,MAAM,OAAO,GAAG;IACpB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAA;AAC/C,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utilities/telemetry/conf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsBH,qBAAa,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,YAAW,QAAQ,CAC5F;IAAC,MAAM,CAAC;IAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAAC,CACtB;;IAEC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkE;IAE7F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAE5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,cAyBC;IAED,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,MAAM;IAMd;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAKxB;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAGzC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAG,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CA4BpE;IAEA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAI5D;IACD,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,KAAK,IAAI,CAAC,CAab;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,EAMjB;CACF;AAED,MAAM,MAAM,OAAO,GAAG;IACpB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAA;AAC/C,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utilities/telemetry/conf/index.ts"],"sourcesContent":["/**\n * Taken & simplified from https://github.com/sindresorhus/conf/blob/main/source/index.ts\n *\n * MIT License\n *\n * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport assert from 'node:assert'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { envPaths } from './envPaths.js'\n\nconst createPlainObject = <T = Record<string, unknown>>(): T => Object.create(null)\n\nconst checkValueType = (key: string, value: unknown): void => {\n const nonJsonTypes = new Set(['function', 'symbol', 'undefined'])\n\n const type = typeof value\n\n if (nonJsonTypes.has(type)) {\n throw new TypeError(\n `Setting a value of type \\`${type}\\` for key \\`${key}\\` is not allowed as it's not supported by JSON`,\n )\n }\n}\n\nexport class Conf<T extends Record<string, any> = Record<string, unknown>>\n implements Iterable<[keyof T, T[keyof T]]>\n{\n readonly #options: Readonly<Partial<Options>>\n private readonly _deserialize: Deserialize<T> = (value) => JSON.parse(value)\n private readonly _serialize: Serialize<T> = (value) => JSON.stringify(value, undefined, '\\t')\n\n readonly events: EventTarget\n\n readonly path: string\n\n constructor() {\n const options: Partial<Options> = {\n configFileMode: 0o666,\n configName: 'config',\n fileExtension: 'json',\n projectSuffix: 'nodejs',\n }\n\n const cwd = envPaths('payload', { suffix: options.projectSuffix }).config\n\n this.#options = options\n\n this.events = new EventTarget()\n\n const fileExtension = options.fileExtension ? `.${options.fileExtension}` : ''\n this.path = path.resolve(cwd, `${options.configName ?? 'config'}${fileExtension}`)\n\n const fileStore = this.store\n const store = Object.assign(createPlainObject(), fileStore)\n\n try {\n assert.deepEqual(fileStore, store)\n } catch {\n this.store = store\n }\n }\n\n private _ensureDirectory(): void {\n // Ensure the directory exists as it could have been deleted in the meantime.\n fs.mkdirSync(path.dirname(this.path), { recursive: true })\n }\n\n private _write(value: T): void {\n const data: string | Uint8Array = this._serialize(value)\n\n fs.writeFileSync(this.path, data, { mode: this.#options.configFileMode })\n }\n\n /**\n Delete an item.\n\n @param key - The key of the item to delete.\n */\n delete(key: string): void {\n const { store } = this\n delete store[key]\n\n this.store = store\n }\n\n /**\n Get an item.\n\n @param key - The key of the item to get.\n */\n get<Key extends keyof T>(key: Key): T[Key] {\n const { store } = this\n return store[key]\n }\n\n /**\n Set an item or multiple items at once.\n\n @param key - You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties. Or a hashmap of items to set at once.\n @param value - Must be JSON serializable. Trying to set the type `undefined`, `function`, or `symbol` will result in a `TypeError`.\n */\n set<Key extends keyof T>(key: string, value?: T[Key] | unknown): void {\n if (typeof key !== 'string' && typeof key !== 'object') {\n throw new TypeError(\n `Expected \\`key\\` to be of type \\`string\\` or \\`object\\`, got ${typeof key}`,\n )\n }\n\n if (typeof key !== 'object' && value === undefined) {\n throw new TypeError('Use `delete()` to clear values')\n }\n\n const { store } = this\n\n const set = (key: string, value?: T | T[Key] | unknown): void => {\n checkValueType(key, value)\n store[key as Key] = value as T[Key]\n }\n\n if (typeof key === 'object') {\n const object = key\n for (const [key, value] of Object.entries(object)) {\n set(key, value)\n }\n } else {\n set(key, value)\n }\n\n this.store = store\n }\n\n *[Symbol.iterator](): IterableIterator<[keyof T, T[keyof T]]> {\n for (const [key, value] of Object.entries(this.store)) {\n yield [key, value]\n }\n }\n get size(): number {\n return Object.keys(this.store).length\n }\n get store(): T {\n try {\n const dataString = fs.readFileSync(this.path, 'utf8')\n const deserializedData = this._deserialize(dataString)\n return Object.assign(createPlainObject(), deserializedData)\n } catch (error: unknown) {\n if ((error as any)?.code === 'ENOENT') {\n this._ensureDirectory()\n return createPlainObject()\n }\n\n throw error\n }\n }\n\n set store(value: T) {\n this._ensureDirectory()\n\n this._write(value)\n\n this.events.dispatchEvent(new Event('change'))\n }\n}\n\nexport type Options = {\n /**\n The config is cleared if reading the config file causes a `SyntaxError`. This is a good behavior for unimportant data, as the config file is not intended to be hand-edited, so it usually means the config is corrupt and there's nothing the user can do about it anyway. However, if you let the user edit the config file directly, mistakes might happen and it could be more useful to throw an error when the config is invalid instead of clearing.\n\n @default false\n */\n clearInvalidConfig?: boolean\n\n /**\n The [mode](https://en.wikipedia.org/wiki/File-system_permissions#Numeric_notation) that will be used for the config file.\n\n You would usually not need this, but it could be useful if you want to restrict the permissions of the config file. Setting a permission such as `0o600` would result in a config file that can only be accessed by the user running the program.\n\n Note that setting restrictive permissions can cause problems if different users need to read the file. A common problem is a user running your tool with and without `sudo` and then not being able to access the config the second time.\n\n @default 0o666\n */\n readonly configFileMode?: number\n\n /**\n Name of the config file (without extension).\n\n Useful if you need multiple config files for your app or module. For example, different config files between two major versions.\n\n @default 'config'\n */\n configName?: string\n\n /**\n Extension of the config file.\n\n You would usually not need this, but could be useful if you want to interact with a file with a custom file extension that can be associated with your app. These might be simple save/export/preference files that are intended to be shareable or saved outside of the app.\n\n @default 'json'\n */\n fileExtension?: string\n\n readonly projectSuffix?: string\n}\n\nexport type Serialize<T> = (value: T) => string\nexport type Deserialize<T> = (text: string) => T\n"],"names":["assert","fs","path","envPaths","createPlainObject","Object","create","checkValueType","key","value","nonJsonTypes","Set","type","has","TypeError","Conf","_deserialize","JSON","parse","_serialize","stringify","undefined","events","options","configFileMode","configName","fileExtension","projectSuffix","cwd","suffix","config","EventTarget","resolve","fileStore","store","assign","deepEqual","_ensureDirectory","mkdirSync","dirname","recursive","_write","data","writeFileSync","mode","delete","get","set","object","entries","Symbol","iterator","size","keys","length","dataString","readFileSync","deserializedData","error","code","dispatchEvent","Event"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/utilities/telemetry/conf/index.ts"],"sourcesContent":["/**\n * Taken & simplified from https://github.com/sindresorhus/conf/blob/main/source/index.ts\n *\n * MIT License\n *\n * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport assert from 'node:assert'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { envPaths } from './envPaths.js'\n\nconst createPlainObject = <T = Record<string, unknown>>(): T => Object.create(null)\n\nconst checkValueType = (key: string, value: unknown): void => {\n const nonJsonTypes = new Set(['function', 'symbol', 'undefined'])\n\n const type = typeof value\n\n if (nonJsonTypes.has(type)) {\n throw new TypeError(\n `Setting a value of type \\`${type}\\` for key \\`${key}\\` is not allowed as it's not supported by JSON`,\n )\n }\n}\n\nexport class Conf<T extends Record<string, any> = Record<string, unknown>> implements Iterable<\n [keyof T, T[keyof T]]\n> {\n readonly #options: Readonly<Partial<Options>>\n private readonly _deserialize: Deserialize<T> = (value) => JSON.parse(value)\n private readonly _serialize: Serialize<T> = (value) => JSON.stringify(value, undefined, '\\t')\n\n readonly events: EventTarget\n\n readonly path: string\n\n constructor() {\n const options: Partial<Options> = {\n configFileMode: 0o666,\n configName: 'config',\n fileExtension: 'json',\n projectSuffix: 'nodejs',\n }\n\n const cwd = envPaths('payload', { suffix: options.projectSuffix }).config\n\n this.#options = options\n\n this.events = new EventTarget()\n\n const fileExtension = options.fileExtension ? `.${options.fileExtension}` : ''\n this.path = path.resolve(cwd, `${options.configName ?? 'config'}${fileExtension}`)\n\n const fileStore = this.store\n const store = Object.assign(createPlainObject(), fileStore)\n\n try {\n assert.deepEqual(fileStore, store)\n } catch {\n this.store = store\n }\n }\n\n private _ensureDirectory(): void {\n // Ensure the directory exists as it could have been deleted in the meantime.\n fs.mkdirSync(path.dirname(this.path), { recursive: true })\n }\n\n private _write(value: T): void {\n const data: string | Uint8Array = this._serialize(value)\n\n fs.writeFileSync(this.path, data, { mode: this.#options.configFileMode })\n }\n\n /**\n Delete an item.\n\n @param key - The key of the item to delete.\n */\n delete(key: string): void {\n const { store } = this\n delete store[key]\n\n this.store = store\n }\n\n /**\n Get an item.\n\n @param key - The key of the item to get.\n */\n get<Key extends keyof T>(key: Key): T[Key] {\n const { store } = this\n return store[key]\n }\n\n /**\n Set an item or multiple items at once.\n\n @param key - You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties. Or a hashmap of items to set at once.\n @param value - Must be JSON serializable. Trying to set the type `undefined`, `function`, or `symbol` will result in a `TypeError`.\n */\n set<Key extends keyof T>(key: string, value?: T[Key] | unknown): void {\n if (typeof key !== 'string' && typeof key !== 'object') {\n throw new TypeError(\n `Expected \\`key\\` to be of type \\`string\\` or \\`object\\`, got ${typeof key}`,\n )\n }\n\n if (typeof key !== 'object' && value === undefined) {\n throw new TypeError('Use `delete()` to clear values')\n }\n\n const { store } = this\n\n const set = (key: string, value?: T | T[Key] | unknown): void => {\n checkValueType(key, value)\n store[key as Key] = value as T[Key]\n }\n\n if (typeof key === 'object') {\n const object = key\n for (const [key, value] of Object.entries(object)) {\n set(key, value)\n }\n } else {\n set(key, value)\n }\n\n this.store = store\n }\n\n *[Symbol.iterator](): IterableIterator<[keyof T, T[keyof T]]> {\n for (const [key, value] of Object.entries(this.store)) {\n yield [key, value]\n }\n }\n get size(): number {\n return Object.keys(this.store).length\n }\n get store(): T {\n try {\n const dataString = fs.readFileSync(this.path, 'utf8')\n const deserializedData = this._deserialize(dataString)\n return Object.assign(createPlainObject(), deserializedData)\n } catch (error: unknown) {\n if ((error as any)?.code === 'ENOENT') {\n this._ensureDirectory()\n return createPlainObject()\n }\n\n throw error\n }\n }\n\n set store(value: T) {\n this._ensureDirectory()\n\n this._write(value)\n\n this.events.dispatchEvent(new Event('change'))\n }\n}\n\nexport type Options = {\n /**\n The config is cleared if reading the config file causes a `SyntaxError`. This is a good behavior for unimportant data, as the config file is not intended to be hand-edited, so it usually means the config is corrupt and there's nothing the user can do about it anyway. However, if you let the user edit the config file directly, mistakes might happen and it could be more useful to throw an error when the config is invalid instead of clearing.\n\n @default false\n */\n clearInvalidConfig?: boolean\n\n /**\n The [mode](https://en.wikipedia.org/wiki/File-system_permissions#Numeric_notation) that will be used for the config file.\n\n You would usually not need this, but it could be useful if you want to restrict the permissions of the config file. Setting a permission such as `0o600` would result in a config file that can only be accessed by the user running the program.\n\n Note that setting restrictive permissions can cause problems if different users need to read the file. A common problem is a user running your tool with and without `sudo` and then not being able to access the config the second time.\n\n @default 0o666\n */\n readonly configFileMode?: number\n\n /**\n Name of the config file (without extension).\n\n Useful if you need multiple config files for your app or module. For example, different config files between two major versions.\n\n @default 'config'\n */\n configName?: string\n\n /**\n Extension of the config file.\n\n You would usually not need this, but could be useful if you want to interact with a file with a custom file extension that can be associated with your app. These might be simple save/export/preference files that are intended to be shareable or saved outside of the app.\n\n @default 'json'\n */\n fileExtension?: string\n\n readonly projectSuffix?: string\n}\n\nexport type Serialize<T> = (value: T) => string\nexport type Deserialize<T> = (text: string) => T\n"],"names":["assert","fs","path","envPaths","createPlainObject","Object","create","checkValueType","key","value","nonJsonTypes","Set","type","has","TypeError","Conf","_deserialize","JSON","parse","_serialize","stringify","undefined","events","options","configFileMode","configName","fileExtension","projectSuffix","cwd","suffix","config","EventTarget","resolve","fileStore","store","assign","deepEqual","_ensureDirectory","mkdirSync","dirname","recursive","_write","data","writeFileSync","mode","delete","get","set","object","entries","Symbol","iterator","size","keys","length","dataString","readFileSync","deserializedData","error","code","dispatchEvent","Event"],"mappings":"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"}