payload 4.0.0-internal.e387174 → 4.0.0-internal.e7d4ebc

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 (391) hide show
  1. package/dist/__testing__/predefinedMigration.d.ts +4 -3
  2. package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
  3. package/dist/admin/functions/index.d.ts +0 -7
  4. package/dist/admin/functions/index.d.ts.map +1 -1
  5. package/dist/admin/functions/index.js.map +1 -1
  6. package/dist/admin/types.d.ts +1 -1
  7. package/dist/admin/types.d.ts.map +1 -1
  8. package/dist/admin/types.js.map +1 -1
  9. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  10. package/dist/auth/cookies.d.ts +2 -2
  11. package/dist/auth/cookies.d.ts.map +1 -1
  12. package/dist/auth/defaultAccess.d.ts.map +1 -1
  13. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
  14. package/dist/auth/executeAccess.d.ts.map +1 -1
  15. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  16. package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
  17. package/dist/auth/extractJWT.d.ts +1 -1
  18. package/dist/auth/extractJWT.d.ts.map +1 -1
  19. package/dist/auth/getAuthFields.d.ts.map +1 -1
  20. package/dist/auth/getFieldsToSign.d.ts +1 -1
  21. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  22. package/dist/auth/getLoginOptions.d.ts +1 -1
  23. package/dist/auth/getLoginOptions.d.ts.map +1 -1
  24. package/dist/auth/isUserLocked.d.ts.map +1 -1
  25. package/dist/auth/jwt.d.ts.map +1 -1
  26. package/dist/auth/operations/access.d.ts.map +1 -1
  27. package/dist/auth/operations/auth.d.ts.map +1 -1
  28. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  29. package/dist/auth/operations/init.d.ts.map +1 -1
  30. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  31. package/dist/auth/operations/login.d.ts.map +1 -1
  32. package/dist/auth/operations/logout.d.ts.map +1 -1
  33. package/dist/auth/operations/me.d.ts +2 -2
  34. package/dist/auth/operations/me.d.ts.map +1 -1
  35. package/dist/auth/operations/me.js.map +1 -1
  36. package/dist/auth/operations/refresh.d.ts.map +1 -1
  37. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  38. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  39. package/dist/auth/operations/unlock.d.ts.map +1 -1
  40. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  41. package/dist/auth/sessions.d.ts.map +1 -1
  42. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  43. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  44. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  45. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  46. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  47. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  48. package/dist/auth/types.d.ts +4 -7
  49. package/dist/auth/types.d.ts.map +1 -1
  50. package/dist/auth/types.js.map +1 -1
  51. package/dist/bin/build.spec.js +90 -1
  52. package/dist/bin/build.spec.js.map +1 -1
  53. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -1
  54. package/dist/bin/migrate.d.ts.map +1 -1
  55. package/dist/collections/config/client.d.ts +10 -4
  56. package/dist/collections/config/client.d.ts.map +1 -1
  57. package/dist/collections/config/client.js +6 -1
  58. package/dist/collections/config/client.js.map +1 -1
  59. package/dist/collections/config/defaults.d.ts.map +1 -1
  60. package/dist/collections/config/sanitize.d.ts.map +1 -1
  61. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  62. package/dist/collections/config/types.d.ts +2 -2
  63. package/dist/collections/config/types.d.ts.map +1 -1
  64. package/dist/collections/config/types.js.map +1 -1
  65. package/dist/collections/config/useAsTitle.d.ts.map +1 -1
  66. package/dist/collections/dataloader.d.ts +1 -1
  67. package/dist/collections/dataloader.d.ts.map +1 -1
  68. package/dist/collections/operations/count.d.ts.map +1 -1
  69. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  70. package/dist/collections/operations/create.d.ts.map +1 -1
  71. package/dist/collections/operations/delete.d.ts.map +1 -1
  72. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  73. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  74. package/dist/collections/operations/find.d.ts.map +1 -1
  75. package/dist/collections/operations/findByID.d.ts.map +1 -1
  76. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  77. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  78. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  79. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  80. package/dist/collections/operations/update.d.ts.map +1 -1
  81. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  82. package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
  83. package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
  84. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -1
  85. package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
  86. package/dist/collections/operations/utilities/types.d.ts +20 -20
  87. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  88. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  89. package/dist/config/client.d.ts.map +1 -1
  90. package/dist/config/defaults.d.ts.map +1 -1
  91. package/dist/config/orderable/fractional-indexing.d.ts +23 -23
  92. package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
  93. package/dist/config/orderable/index.d.ts.map +1 -1
  94. package/dist/config/sanitize.d.ts.map +1 -1
  95. package/dist/config/sanitize.js +4 -0
  96. package/dist/config/sanitize.js.map +1 -1
  97. package/dist/config/types.d.ts.map +1 -1
  98. package/dist/database/combineQueries.d.ts.map +1 -1
  99. package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
  100. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  101. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  102. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
  103. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  104. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  105. package/dist/database/types.d.ts +1 -5
  106. package/dist/database/types.d.ts.map +1 -1
  107. package/dist/database/types.js.map +1 -1
  108. package/dist/duplicateDocument/index.d.ts.map +1 -1
  109. package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
  110. package/dist/errors/APIError.d.ts.map +1 -1
  111. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  112. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  113. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  114. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  115. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  116. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  117. package/dist/errors/FileUploadError.d.ts.map +1 -1
  118. package/dist/errors/Forbidden.d.ts.map +1 -1
  119. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  120. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  121. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  122. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  123. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  124. package/dist/errors/Locked.d.ts.map +1 -1
  125. package/dist/errors/LockedAuth.d.ts.map +1 -1
  126. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  127. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  128. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  129. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  130. package/dist/errors/MissingFile.d.ts.map +1 -1
  131. package/dist/errors/NotFound.d.ts.map +1 -1
  132. package/dist/errors/QueryError.d.ts.map +1 -1
  133. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  134. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  135. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  136. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  137. package/dist/errors/ValidationError.d.ts.map +1 -1
  138. package/dist/exports/internal.d.ts +3 -0
  139. package/dist/exports/internal.d.ts.map +1 -1
  140. package/dist/exports/internal.js +4 -1
  141. package/dist/exports/internal.js.map +1 -1
  142. package/dist/fields/baseFields/slug/generateSlug.d.ts +16 -5
  143. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  144. package/dist/fields/baseFields/slug/generateSlug.js +22 -26
  145. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  146. package/dist/fields/config/client.d.ts +3 -3
  147. package/dist/fields/config/client.d.ts.map +1 -1
  148. package/dist/fields/config/sanitize.d.ts.map +1 -1
  149. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  150. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  151. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  152. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  153. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  154. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  155. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  156. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  157. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  158. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  159. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  160. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  161. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  162. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  163. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
  164. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  165. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
  166. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  167. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  168. package/dist/fields/hooks/beforeValidate/promise.js +5 -3
  169. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  170. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts +10 -0
  171. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts.map +1 -0
  172. package/dist/fields/hooks/beforeValidate/stripNullRows.js +18 -0
  173. package/dist/fields/hooks/beforeValidate/stripNullRows.js.map +1 -0
  174. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  175. package/dist/fields/isFieldDisabled.d.ts.map +1 -1
  176. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  177. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
  178. package/dist/globals/config/client.d.ts +4 -4
  179. package/dist/globals/config/client.d.ts.map +1 -1
  180. package/dist/globals/config/sanitize.d.ts.map +1 -1
  181. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  182. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  183. package/dist/globals/operations/findOne.d.ts.map +1 -1
  184. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  185. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  186. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  187. package/dist/globals/operations/update.d.ts.map +1 -1
  188. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  189. package/dist/hierarchy/buildParentField.d.ts.map +1 -1
  190. package/dist/hierarchy/constants.d.ts.map +1 -1
  191. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  192. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  193. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
  194. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
  195. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  196. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
  197. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  198. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
  199. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
  200. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
  201. package/dist/index.bundled.d.ts +3913 -3875
  202. package/dist/index.d.ts +8 -8
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  205. package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
  206. package/dist/locked-documents/config.d.ts.map +1 -1
  207. package/dist/preferences/config.d.ts.map +1 -1
  208. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  209. package/dist/preferences/keys.d.ts +5 -5
  210. package/dist/preferences/keys.d.ts.map +1 -1
  211. package/dist/query-presets/access.d.ts.map +1 -1
  212. package/dist/query-presets/config.d.ts.map +1 -1
  213. package/dist/query-presets/constraints.d.ts.map +1 -1
  214. package/dist/query-presets/types.d.ts +1 -1
  215. package/dist/query-presets/types.d.ts.map +1 -1
  216. package/dist/queues/endpoints/run.d.ts.map +1 -1
  217. package/dist/queues/errors/index.d.ts.map +1 -1
  218. package/dist/queues/localAPI.d.ts +8 -8
  219. package/dist/queues/localAPI.d.ts.map +1 -1
  220. package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
  221. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  222. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  223. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  224. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
  225. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
  226. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  227. package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
  228. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  229. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  230. package/dist/types/constants.d.ts +2 -2
  231. package/dist/types/constants.d.ts.map +1 -1
  232. package/dist/types/index.d.ts +1 -4
  233. package/dist/types/index.d.ts.map +1 -1
  234. package/dist/types/index.js.map +1 -1
  235. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  236. package/dist/uploads/checkFileRestrictions.d.ts +1 -1
  237. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  238. package/dist/uploads/checkFileRestrictions.js +15 -1
  239. package/dist/uploads/checkFileRestrictions.js.map +1 -1
  240. package/dist/uploads/cropImage.d.ts.map +1 -1
  241. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  242. package/dist/uploads/endpoints/uploadInstructions.d.ts +15 -0
  243. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -0
  244. package/dist/uploads/endpoints/uploadInstructions.js +84 -0
  245. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -0
  246. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
  247. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  248. package/dist/uploads/fetchAPI-multipart/processMultipart.js +4 -0
  249. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  250. package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
  251. package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
  252. package/dist/uploads/fileExists.d.ts.map +1 -1
  253. package/dist/uploads/generateFileData.d.ts.map +1 -1
  254. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  255. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  256. package/dist/uploads/getFileByPath.d.ts +1 -1
  257. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  258. package/dist/uploads/getFileFromUploadInstructions.d.ts +8 -0
  259. package/dist/uploads/getFileFromUploadInstructions.d.ts.map +1 -0
  260. package/dist/uploads/getFileFromUploadInstructions.js +62 -0
  261. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -0
  262. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  263. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  264. package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
  265. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
  266. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +1 -1
  267. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
  268. package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
  269. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
  270. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  271. package/dist/uploads/safeFetch.d.ts.map +1 -1
  272. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  273. package/dist/uploads/stagedUpload.d.ts +27 -0
  274. package/dist/uploads/stagedUpload.d.ts.map +1 -0
  275. package/dist/uploads/stagedUpload.js +197 -0
  276. package/dist/uploads/stagedUpload.js.map +1 -0
  277. package/dist/uploads/tempFile.d.ts.map +1 -1
  278. package/dist/uploads/types.d.ts +53 -1
  279. package/dist/uploads/types.d.ts.map +1 -1
  280. package/dist/uploads/types.js.map +1 -1
  281. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  282. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  283. package/dist/utilities/addDataAndFileToRequest.js +12 -45
  284. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  285. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  286. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  287. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
  288. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  289. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  290. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  291. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  292. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  293. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  294. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
  295. package/dist/utilities/escapeRegExp.d.ts.map +1 -1
  296. package/dist/utilities/extractID.d.ts.map +1 -1
  297. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  298. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  299. package/dist/utilities/formatErrors.d.ts.map +1 -1
  300. package/dist/utilities/formatLabels.d.ts.map +1 -1
  301. package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
  302. package/dist/utilities/getBlockSelect.d.ts.map +1 -1
  303. package/dist/utilities/getDataByPath.d.ts.map +1 -1
  304. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  305. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  306. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  307. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  308. package/dist/utilities/getRequestEntity.d.ts.map +1 -1
  309. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  310. package/dist/utilities/getRequestOrigin.d.ts +2 -2
  311. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  312. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  313. package/dist/utilities/getSelectMode.d.ts.map +1 -1
  314. package/dist/utilities/getSiblingData.d.ts.map +1 -1
  315. package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
  316. package/dist/utilities/getVersionsConfig.d.ts +1 -1
  317. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  318. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  319. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  320. package/dist/utilities/isEntityHidden.d.ts +2 -2
  321. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  322. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  323. package/dist/utilities/isValidID.d.ts +1 -1
  324. package/dist/utilities/isValidID.d.ts.map +1 -1
  325. package/dist/utilities/logError.d.ts.map +1 -1
  326. package/dist/utilities/logger.d.ts +1 -1
  327. package/dist/utilities/logger.d.ts.map +1 -1
  328. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  329. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
  330. package/dist/utilities/miniChalk.d.ts.map +1 -1
  331. package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
  332. package/dist/utilities/parseBooleanString.d.ts.map +1 -1
  333. package/dist/utilities/parseCookies.d.ts +1 -1
  334. package/dist/utilities/parseCookies.d.ts.map +1 -1
  335. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  336. package/dist/utilities/profiling.d.ts.map +1 -1
  337. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  338. package/dist/utilities/resolveSelect.d.ts.map +1 -1
  339. package/dist/utilities/routeError.d.ts.map +1 -1
  340. package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
  341. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  342. package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
  343. package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
  344. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  345. package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
  346. package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
  347. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  348. package/dist/utilities/slugify.d.ts.map +1 -1
  349. package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
  350. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  351. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  352. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  353. package/dist/utilities/telemetry/index.d.ts +1 -1
  354. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  355. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  356. package/dist/utilities/timestamp.d.ts.map +1 -1
  357. package/dist/utilities/toKebabCase.d.ts.map +1 -1
  358. package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
  359. package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
  360. package/dist/utilities/traverseFields.d.ts.map +1 -1
  361. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  362. package/dist/utilities/unflatten.d.ts.map +1 -1
  363. package/dist/utilities/validateMimeType.d.ts.map +1 -1
  364. package/dist/utilities/validateTimezones.d.ts.map +1 -1
  365. package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
  366. package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
  367. package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
  368. package/dist/versions/baseFields.d.ts.map +1 -1
  369. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  370. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  371. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  372. package/dist/versions/defaults.d.ts.map +1 -1
  373. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  374. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  375. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  376. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
  377. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  378. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  379. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  380. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  381. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  382. package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
  383. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  384. package/dist/versions/payloadPackageList.js +0 -1
  385. package/dist/versions/payloadPackageList.js.map +1 -1
  386. package/dist/versions/schedule/job.d.ts.map +1 -1
  387. package/package.json +2 -2
  388. package/dist/fields/baseFields/slug/countVersions.d.ts +0 -13
  389. package/dist/fields/baseFields/slug/countVersions.d.ts.map +0 -1
  390. package/dist/fields/baseFields/slug/countVersions.js +0 -27
  391. package/dist/fields/baseFields/slug/countVersions.js.map +0 -1
@@ -96,7 +96,8 @@ export type SanitizedPermissions = {
96
96
  */
97
97
  export type AuthRuntimeFields = {
98
98
  /**
99
- * The session ID of the current request. Present only when sessions are enabled.
99
+ * The session ID of the current request. May be present on request-authenticated users when
100
+ * sessions are enabled.
100
101
  */
101
102
  _sid?: string;
102
103
  /**
@@ -111,14 +112,10 @@ export type AuthRuntimeFields = {
111
112
  */
112
113
  /**
113
114
  * The signed-in user: the read user plus the runtime auth markers (`_strategy`, `_sid`). This is
114
- * what `req.user`, `payload.auth()`, the `me` operation, and auth strategies return.
115
+ * what `req.user`, `payload.auth()`, the `me` operation, auth strategies, and `useAuth().user`
116
+ * return.
115
117
  */
116
118
  export type AuthenticatedUser = AuthRuntimeFields & User;
117
- /**
118
- * The user as available on the client (`useAuth().user`). It is the authenticated user as
119
- * serialized to the browser: `collection` and `_strategy` are present, `_sid` is not sent.
120
- */
121
- export type ClientUser = AuthenticatedUser;
122
119
  export type UserSession = {
123
120
  createdAt?: Date | null | string;
124
121
  expiresAt: Date | string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/types.ts"],"sourcesContent":["import type { DeepRequired } from 'ts-essentials'\n\nimport type { CollectionSlug, GlobalSlug, Payload, User } from '../index.js'\nimport type { PayloadRequest, Where } from '../types/index.js'\n\n/**\n * A permission object that can be used to determine if a user has access to a specific operation.\n */\nexport type Permission = {\n permission: boolean\n where?: Where\n}\n\nexport type FieldsPermissions = {\n [fieldName: string]: FieldPermissions\n}\n\nexport type BlockPermissions = {\n create: Permission\n fields: FieldsPermissions\n read: Permission\n update: Permission\n}\n\nexport type SanitizedBlockPermissions =\n | {\n fields: SanitizedFieldsPermissions\n }\n | true\n\nexport type BlocksPermissions = {\n [blockSlug: string]: BlockPermissions\n}\n\nexport type SanitizedBlocksPermissions =\n | {\n [blockSlug: string]: SanitizedBlockPermissions\n }\n | true\n\nexport type FieldPermissions = {\n blocks?: BlocksPermissions\n create?: Permission\n fields?: FieldsPermissions\n read?: Permission\n update?: Permission\n}\n\nexport type SanitizedFieldPermissions =\n | {\n blocks?: SanitizedBlocksPermissions\n create: true\n fields?: SanitizedFieldsPermissions\n read: true\n update: true\n }\n | true\n\nexport type SanitizedFieldsPermissions =\n | {\n [fieldName: string]: SanitizedFieldPermissions\n }\n | true\n\nexport type CollectionPermission = {\n create?: Permission\n delete?: Permission\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n // Auth-enabled Collections only\n unlock?: Permission\n update?: Permission\n}\n\nexport type SanitizedCollectionPermission = {\n create?: true\n delete?: true\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n // Auth-enabled Collections only\n unlock?: true\n update?: true\n}\n\nexport type GlobalPermission = {\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n update?: Permission\n}\n\nexport type SanitizedGlobalPermission = {\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n update?: true\n}\n\nexport type DocumentPermissions = CollectionPermission | GlobalPermission\n\nexport type SanitizedDocumentPermissions = SanitizedCollectionPermission | SanitizedGlobalPermission\n\nexport type Permissions = {\n canAccessAdmin: boolean\n collections?: Record<CollectionSlug, CollectionPermission>\n globals?: Record<GlobalSlug, GlobalPermission>\n}\n\nexport type SanitizedPermissions = {\n canAccessAdmin?: boolean\n collections?: {\n [collectionSlug: string]: SanitizedCollectionPermission\n }\n globals?: {\n [globalSlug: string]: SanitizedGlobalPermission\n }\n}\n\n/**\n * Fields injected onto a user at authentication time. They are never stored in the database and\n * never present on a plain document read (e.g. `payload.findByID`) - only on the authenticated\n * user (`req.user`, login/auth/me results, auth strategies).\n */\nexport type AuthRuntimeFields = {\n /**\n * The session ID of the current request. Present only when sessions are enabled.\n */\n _sid?: string\n /**\n * The name of the auth strategy that authenticated the request (e.g. `local-jwt`).\n */\n _strategy?: string\n}\n\n/**\n * Note: AuthenticatedUser still carries the write-only `password` from `User` (always `undefined` at runtime).\n * Stripping it cleanly isn't possible, because auth operations build the authenticated user\n * from a read `User` doc, so a `never`-typed `password` would break those assignments\n */\n/**\n * The signed-in user: the read user plus the runtime auth markers (`_strategy`, `_sid`). This is\n * what `req.user`, `payload.auth()`, the `me` operation, and auth strategies return.\n */\nexport type AuthenticatedUser = AuthRuntimeFields & User\n\n/**\n * The user as available on the client (`useAuth().user`). It is the authenticated user as\n * serialized to the browser: `collection` and `_strategy` are present, `_sid` is not sent.\n */\nexport type ClientUser = AuthenticatedUser\n\nexport type UserSession = {\n createdAt?: Date | null | string\n expiresAt: Date | string\n id: string\n}\ntype GenerateVerifyEmailHTML<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateVerifyEmailSubject<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailHTML<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailSubject<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\nexport type AuthStrategyFunctionArgs = {\n /**\n * Specifies whether or not response headers can be set from this strategy.\n */\n canSetHeaders?: boolean\n headers: Request['headers']\n isGraphQL?: boolean\n payload: Payload\n /**\n * The AuthStrategy name property from the payload config.\n */\n strategyName?: string\n}\n\nexport type AuthStrategyResult = {\n responseHeaders?: Headers\n user: AuthenticatedUser | null\n}\n\nexport type AuthStrategyFunction = (\n args: AuthStrategyFunctionArgs,\n) => AuthStrategyResult | Promise<AuthStrategyResult>\nexport type AuthStrategy = {\n authenticate: AuthStrategyFunction\n name: string\n}\n\nexport type LoginWithUsernameOptions =\n | {\n allowEmailLogin?: false\n requireEmail?: boolean\n // If `allowEmailLogin` is false, `requireUsername` must be true (default: true)\n requireUsername?: true\n }\n | {\n allowEmailLogin?: true\n requireEmail?: boolean\n requireUsername?: boolean\n }\n\nexport interface IncomingAuthType {\n /**\n * Set cookie options, including secure, sameSite, and domain. For advanced users.\n */\n cookies?: {\n domain?: string\n sameSite?: 'Lax' | 'None' | 'Strict' | boolean\n secure?: boolean\n }\n /**\n * How many levels deep a user document should be populated when creating the JWT and binding the user to the req. Defaults to 0 and should only be modified if absolutely necessary, as this will affect performance.\n * @default 0\n */\n depth?: number\n /**\n * Advanced - disable Payload's built-in local auth strategy. Only use this property if you have replaced Payload's auth mechanisms with your own.\n */\n disableLocalStrategy?:\n | {\n /**\n * Include auth fields on the collection even though the local strategy is disabled.\n * Useful when you do not want the database or types to vary depending on the auth configuration.\n */\n enableFields?: true\n optionalPassword?: true\n }\n | true\n /**\n * Customize the way that the forgotPassword operation functions.\n * @link https://payloadcms.com/docs/authentication/email#forgot-password\n */\n forgotPassword?: {\n /**\n * The number of milliseconds that the forgot password token should be valid for.\n * @default 3600000 // 1 hour\n */\n expiration?: number\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n /**\n * Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than maxLoginAttempts allows for.\n */\n lockTime?: number\n /**\n * Ability to allow users to login with username/password.\n *\n * @link https://payloadcms.com/docs/authentication/overview#login-with-username\n */\n loginWithUsername?: boolean | LoginWithUsernameOptions\n /**\n * Only allow a user to attempt logging in X amount of times. Automatically locks out a user from authenticating if this limit is passed. Set to 0 to disable.\n */\n maxLoginAttempts?: number\n /***\n * Set to true if you want to remove the token from the returned authentication API responses such as login or refresh.\n */\n removeTokenFromResponses?: true\n /**\n * Advanced - an array of custom authentification strategies to extend this collection's authentication with.\n * @link https://payloadcms.com/docs/authentication/custom-strategies\n */\n strategies?: AuthStrategy[]\n /**\n * Controls how many seconds the token will be valid for. Default is 2 hours.\n * @default 7200\n * @link https://payloadcms.com/docs/authentication/overview#config-options\n */\n tokenExpiration?: number\n /**\n * Payload Authentication provides for API keys to be set on each user within an Authentication-enabled Collection.\n * @default false\n * @link https://payloadcms.com/docs/authentication/api-keys\n */\n useAPIKey?: boolean\n\n /**\n * Use sessions for authentication. Enabled by default.\n * @default true\n */\n useSessions?: boolean\n\n /**\n * Set to true or pass an object with verification options to require users to verify by email before they are allowed to log into your app.\n * @link https://payloadcms.com/docs/authentication/email#email-verification\n */\n verify?:\n | {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n }\n | boolean\n}\n\nexport type VerifyConfig = {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n}\n\nexport interface Auth\n extends Omit<DeepRequired<IncomingAuthType>, 'forgotPassword' | 'loginWithUsername' | 'verify'> {\n forgotPassword?: {\n expiration?: number\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n loginWithUsername: false | LoginWithUsernameOptions\n verify?: boolean | VerifyConfig\n}\n\nexport function hasWhereAccessResult(result: boolean | Where): result is Where {\n return result && typeof result === 'object'\n}\n"],"names":["hasWhereAccessResult","result"],"mappings":"AA4UA,OAAO,SAASA,qBAAqBC,MAAuB;IAC1D,OAAOA,UAAU,OAAOA,WAAW;AACrC"}
1
+ {"version":3,"sources":["../../src/auth/types.ts"],"sourcesContent":["import type { DeepRequired } from 'ts-essentials'\n\nimport type { CollectionSlug, GlobalSlug, Payload, User } from '../index.js'\nimport type { PayloadRequest, Where } from '../types/index.js'\n\n/**\n * A permission object that can be used to determine if a user has access to a specific operation.\n */\nexport type Permission = {\n permission: boolean\n where?: Where\n}\n\nexport type FieldsPermissions = {\n [fieldName: string]: FieldPermissions\n}\n\nexport type BlockPermissions = {\n create: Permission\n fields: FieldsPermissions\n read: Permission\n update: Permission\n}\n\nexport type SanitizedBlockPermissions =\n | {\n fields: SanitizedFieldsPermissions\n }\n | true\n\nexport type BlocksPermissions = {\n [blockSlug: string]: BlockPermissions\n}\n\nexport type SanitizedBlocksPermissions =\n | {\n [blockSlug: string]: SanitizedBlockPermissions\n }\n | true\n\nexport type FieldPermissions = {\n blocks?: BlocksPermissions\n create?: Permission\n fields?: FieldsPermissions\n read?: Permission\n update?: Permission\n}\n\nexport type SanitizedFieldPermissions =\n | {\n blocks?: SanitizedBlocksPermissions\n create: true\n fields?: SanitizedFieldsPermissions\n read: true\n update: true\n }\n | true\n\nexport type SanitizedFieldsPermissions =\n | {\n [fieldName: string]: SanitizedFieldPermissions\n }\n | true\n\nexport type CollectionPermission = {\n create?: Permission\n delete?: Permission\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n // Auth-enabled Collections only\n unlock?: Permission\n update?: Permission\n}\n\nexport type SanitizedCollectionPermission = {\n create?: true\n delete?: true\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n // Auth-enabled Collections only\n unlock?: true\n update?: true\n}\n\nexport type GlobalPermission = {\n fields: FieldsPermissions\n read?: Permission\n readVersions?: Permission\n update?: Permission\n}\n\nexport type SanitizedGlobalPermission = {\n fields: SanitizedFieldsPermissions\n read?: true\n readVersions?: true\n update?: true\n}\n\nexport type DocumentPermissions = CollectionPermission | GlobalPermission\n\nexport type SanitizedDocumentPermissions = SanitizedCollectionPermission | SanitizedGlobalPermission\n\nexport type Permissions = {\n canAccessAdmin: boolean\n collections?: Record<CollectionSlug, CollectionPermission>\n globals?: Record<GlobalSlug, GlobalPermission>\n}\n\nexport type SanitizedPermissions = {\n canAccessAdmin?: boolean\n collections?: {\n [collectionSlug: string]: SanitizedCollectionPermission\n }\n globals?: {\n [globalSlug: string]: SanitizedGlobalPermission\n }\n}\n\n/**\n * Fields injected onto a user at authentication time. They are never stored in the database and\n * never present on a plain document read (e.g. `payload.findByID`) - only on the authenticated\n * user (`req.user`, login/auth/me results, auth strategies).\n */\nexport type AuthRuntimeFields = {\n /**\n * The session ID of the current request. May be present on request-authenticated users when\n * sessions are enabled.\n */\n _sid?: string\n /**\n * The name of the auth strategy that authenticated the request (e.g. `local-jwt`).\n */\n _strategy?: string\n}\n\n/**\n * Note: AuthenticatedUser still carries the write-only `password` from `User` (always `undefined` at runtime).\n * Stripping it cleanly isn't possible, because auth operations build the authenticated user\n * from a read `User` doc, so a `never`-typed `password` would break those assignments\n */\n/**\n * The signed-in user: the read user plus the runtime auth markers (`_strategy`, `_sid`). This is\n * what `req.user`, `payload.auth()`, the `me` operation, auth strategies, and `useAuth().user`\n * return.\n */\nexport type AuthenticatedUser = AuthRuntimeFields & User\n\nexport type UserSession = {\n createdAt?: Date | null | string\n expiresAt: Date | string\n id: string\n}\ntype GenerateVerifyEmailHTML<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateVerifyEmailSubject<TUser = any> = (args: {\n req: PayloadRequest\n token: string\n user: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailHTML<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailSubject<TUser = any> = (args?: {\n req?: PayloadRequest\n token?: string\n user?: TUser\n}) => Promise<string> | string\n\nexport type AuthStrategyFunctionArgs = {\n /**\n * Specifies whether or not response headers can be set from this strategy.\n */\n canSetHeaders?: boolean\n headers: Request['headers']\n isGraphQL?: boolean\n payload: Payload\n /**\n * The AuthStrategy name property from the payload config.\n */\n strategyName?: string\n}\n\nexport type AuthStrategyResult = {\n responseHeaders?: Headers\n user: AuthenticatedUser | null\n}\n\nexport type AuthStrategyFunction = (\n args: AuthStrategyFunctionArgs,\n) => AuthStrategyResult | Promise<AuthStrategyResult>\nexport type AuthStrategy = {\n authenticate: AuthStrategyFunction\n name: string\n}\n\nexport type LoginWithUsernameOptions =\n | {\n allowEmailLogin?: false\n requireEmail?: boolean\n // If `allowEmailLogin` is false, `requireUsername` must be true (default: true)\n requireUsername?: true\n }\n | {\n allowEmailLogin?: true\n requireEmail?: boolean\n requireUsername?: boolean\n }\n\nexport interface IncomingAuthType {\n /**\n * Set cookie options, including secure, sameSite, and domain. For advanced users.\n */\n cookies?: {\n domain?: string\n sameSite?: 'Lax' | 'None' | 'Strict' | boolean\n secure?: boolean\n }\n /**\n * How many levels deep a user document should be populated when creating the JWT and binding the user to the req. Defaults to 0 and should only be modified if absolutely necessary, as this will affect performance.\n * @default 0\n */\n depth?: number\n /**\n * Advanced - disable Payload's built-in local auth strategy. Only use this property if you have replaced Payload's auth mechanisms with your own.\n */\n disableLocalStrategy?:\n | {\n /**\n * Include auth fields on the collection even though the local strategy is disabled.\n * Useful when you do not want the database or types to vary depending on the auth configuration.\n */\n enableFields?: true\n optionalPassword?: true\n }\n | true\n /**\n * Customize the way that the forgotPassword operation functions.\n * @link https://payloadcms.com/docs/authentication/email#forgot-password\n */\n forgotPassword?: {\n /**\n * The number of milliseconds that the forgot password token should be valid for.\n * @default 3600000 // 1 hour\n */\n expiration?: number\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n /**\n * Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than maxLoginAttempts allows for.\n */\n lockTime?: number\n /**\n * Ability to allow users to login with username/password.\n *\n * @link https://payloadcms.com/docs/authentication/overview#login-with-username\n */\n loginWithUsername?: boolean | LoginWithUsernameOptions\n /**\n * Only allow a user to attempt logging in X amount of times. Automatically locks out a user from authenticating if this limit is passed. Set to 0 to disable.\n */\n maxLoginAttempts?: number\n /***\n * Set to true if you want to remove the token from the returned authentication API responses such as login or refresh.\n */\n removeTokenFromResponses?: true\n /**\n * Advanced - an array of custom authentification strategies to extend this collection's authentication with.\n * @link https://payloadcms.com/docs/authentication/custom-strategies\n */\n strategies?: AuthStrategy[]\n /**\n * Controls how many seconds the token will be valid for. Default is 2 hours.\n * @default 7200\n * @link https://payloadcms.com/docs/authentication/overview#config-options\n */\n tokenExpiration?: number\n /**\n * Payload Authentication provides for API keys to be set on each user within an Authentication-enabled Collection.\n * @default false\n * @link https://payloadcms.com/docs/authentication/api-keys\n */\n useAPIKey?: boolean\n\n /**\n * Use sessions for authentication. Enabled by default.\n * @default true\n */\n useSessions?: boolean\n\n /**\n * Set to true or pass an object with verification options to require users to verify by email before they are allowed to log into your app.\n * @link https://payloadcms.com/docs/authentication/email#email-verification\n */\n verify?:\n | {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n }\n | boolean\n}\n\nexport type VerifyConfig = {\n generateEmailHTML?: GenerateVerifyEmailHTML\n generateEmailSubject?: GenerateVerifyEmailSubject\n}\n\nexport interface Auth\n extends Omit<DeepRequired<IncomingAuthType>, 'forgotPassword' | 'loginWithUsername' | 'verify'> {\n forgotPassword?: {\n expiration?: number\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n loginWithUsername: false | LoginWithUsernameOptions\n verify?: boolean | VerifyConfig\n}\n\nexport function hasWhereAccessResult(result: boolean | Where): result is Where {\n return result && typeof result === 'object'\n}\n"],"names":["hasWhereAccessResult","result"],"mappings":"AAwUA,OAAO,SAASA,qBAAqBC,MAAuB;IAC1D,OAAOA,UAAU,OAAOA,WAAW;AACrC"}
@@ -1,4 +1,4 @@
1
- import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
1
+ import { existsSync, mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest';
@@ -50,6 +50,7 @@ describe('resolveNextBin', ()=>{
50
50
  // next is installed at the repo root; resolving from cwd must succeed
51
51
  const binPath = resolveNextBin(process.cwd());
52
52
  expect(binPath).toMatch(/next[\\/].*bin[\\/]next$/);
53
+ expect(existsSync(binPath)).toBe(true);
53
54
  });
54
55
  it('throws a clear error when next cannot be resolved', ()=>{
55
56
  expect(()=>resolveNextBin('/nonexistent-project-root')).toThrow(/next/i);
@@ -60,6 +61,7 @@ describe('resolveViteBin', ()=>{
60
61
  // vite is installed at the repo root; resolving from cwd must succeed
61
62
  const binPath = resolveViteBin(process.cwd());
62
63
  expect(binPath).toMatch(/vite[\\/].*bin[\\/]vite\.js$/);
64
+ expect(existsSync(binPath)).toBe(true);
63
65
  });
64
66
  it('throws a clear error when vite cannot be resolved', async ()=>{
65
67
  // Vitest injects its own transitive `vite` dep onto NODE_PATH, so resolving
@@ -116,6 +118,93 @@ describe('resolveBuildCommand', ()=>{
116
118
  ]);
117
119
  });
118
120
  });
121
+ // Resolution against isolated fixture projects, complementing the cwd/real-install
122
+ // checks above. Installing a fake package into a real temp node_modules proves
123
+ // `createRequire` walks the consumer's node_modules rather than repo hoisting or
124
+ // vitest's ambient NODE_PATH, and exercises bin-field shapes the real installs don't.
125
+ describe('bin resolution walks the consumer project node_modules', ()=>{
126
+ const binFixtureDirs = [];
127
+ /**
128
+ * Build a throwaway project with a fake installed package whose package.json
129
+ * carries the given `bin` field. Returns the project root to pass as `cwd`. The
130
+ * bin target file is created so existsSync assertions are meaningful.
131
+ */ const makeProjectWithPackage = ({ binField, binRelPath, packageName })=>{
132
+ // realpath so exact path comparisons hold on macOS, where /var symlinks to
133
+ // /private/var and require.resolve returns the resolved path.
134
+ const root = realpathSync(mkdtempSync(path.join(os.tmpdir(), 'payload-build-bin-')));
135
+ binFixtureDirs.push(root);
136
+ writeFileSync(path.join(root, 'package.json'), JSON.stringify({
137
+ name: 'fixture-app'
138
+ }));
139
+ const pkgDir = path.join(root, 'node_modules', packageName);
140
+ mkdirSync(pkgDir, {
141
+ recursive: true
142
+ });
143
+ writeFileSync(path.join(pkgDir, 'package.json'), JSON.stringify({
144
+ bin: binField,
145
+ name: packageName,
146
+ version: '0.0.0'
147
+ }));
148
+ if (binRelPath) {
149
+ const binFull = path.join(pkgDir, binRelPath);
150
+ mkdirSync(path.dirname(binFull), {
151
+ recursive: true
152
+ });
153
+ writeFileSync(binFull, '');
154
+ }
155
+ return root;
156
+ };
157
+ afterEach(()=>{
158
+ for (const dir of binFixtureDirs){
159
+ rmSync(dir, {
160
+ force: true,
161
+ recursive: true
162
+ });
163
+ }
164
+ binFixtureDirs.length = 0;
165
+ });
166
+ it('resolves the next bin from an isolated project using the object-form bin field', ()=>{
167
+ const root = makeProjectWithPackage({
168
+ binField: {
169
+ next: './dist/bin/next'
170
+ },
171
+ binRelPath: 'dist/bin/next',
172
+ packageName: 'next'
173
+ });
174
+ const binPath = resolveNextBin(root);
175
+ expect(binPath).toBe(path.join(root, 'node_modules', 'next', 'dist', 'bin', 'next'));
176
+ expect(existsSync(binPath)).toBe(true);
177
+ });
178
+ it('resolves the vite bin from an isolated project using the object-form bin field', ()=>{
179
+ const root = makeProjectWithPackage({
180
+ binField: {
181
+ vite: 'bin/vite.js'
182
+ },
183
+ binRelPath: 'bin/vite.js',
184
+ packageName: 'vite'
185
+ });
186
+ const binPath = resolveViteBin(root);
187
+ expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'bin', 'vite.js'));
188
+ expect(existsSync(binPath)).toBe(true);
189
+ });
190
+ it('resolves a string-form bin field', ()=>{
191
+ const root = makeProjectWithPackage({
192
+ binField: './cli.js',
193
+ binRelPath: 'cli.js',
194
+ packageName: 'vite'
195
+ });
196
+ const binPath = resolveViteBin(root);
197
+ expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'cli.js'));
198
+ expect(existsSync(binPath)).toBe(true);
199
+ });
200
+ it('throws a clear error when the package declares no bin field', ()=>{
201
+ const root = makeProjectWithPackage({
202
+ binField: undefined,
203
+ packageName: 'vite'
204
+ });
205
+ expect(()=>resolveViteBin(root)).toThrow(/binary path/i);
206
+ });
207
+ });
119
208
  describe('build', ()=>{
120
209
  let exitMock;
121
210
  let originalArgv;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/build.spec.ts"],"sourcesContent":["import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\n\nimport { describe, expect, it, vi, beforeEach, afterEach } from 'vitest'\n\n// Default fake child auto-fires `exit(0)` synchronously so ordering/generation\n// tests resolve. Specific tests override via `mockReturnValueOnce` to drive the\n// exit/error handlers manually.\nconst spawnMock = vi.fn(() => ({\n on(event: string, cb: (arg?: never) => void) {\n if (event === 'exit') {\n cb(0 as never)\n }\n return this\n },\n}))\nconst generateImportMapMock = vi.fn(async () => {})\nconst generateTypesMock = vi.fn(async () => {})\n\nvi.mock('node:child_process', () => ({ spawn: spawnMock }))\nvi.mock('./generateImportMap/index.js', () => ({ generateImportMap: generateImportMapMock }))\nvi.mock('./generateTypes.js', () => ({ generateTypes: generateTypesMock }))\n\n// Imported after mocks are registered\nconst {\n build,\n detectFramework,\n getForwardedArgs,\n resolveBuildCommand,\n resolveNextBin,\n resolveViteBin,\n} = await import('./build.js')\n\nconst fakeConfig = {} as never\n\ndescribe('getForwardedArgs', () => {\n it('returns args after the build token and strips --no-types', () => {\n expect(getForwardedArgs(['build', '--turbopack', '--no-types', 'foo'])).toEqual([\n '--turbopack',\n 'foo',\n ])\n })\n\n it('returns empty array when only build is present', () => {\n expect(getForwardedArgs(['build'])).toEqual([])\n })\n})\n\ndescribe('resolveNextBin', () => {\n it('resolves next bin from the current project', () => {\n // next is installed at the repo root; resolving from cwd must succeed\n const binPath = resolveNextBin(process.cwd())\n expect(binPath).toMatch(/next[\\\\/].*bin[\\\\/]next$/)\n })\n\n it('throws a clear error when next cannot be resolved', () => {\n expect(() => resolveNextBin('/nonexistent-project-root')).toThrow(/next/i)\n })\n})\n\ndescribe('resolveViteBin', () => {\n it('resolves the vite bin from the current project', () => {\n // vite is installed at the repo root; resolving from cwd must succeed\n const binPath = resolveViteBin(process.cwd())\n expect(binPath).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n })\n\n it('throws a clear error when vite cannot be resolved', async () => {\n // Vitest injects its own transitive `vite` dep onto NODE_PATH, so resolving\n // \"vite\" from any cwd would otherwise succeed in this test process even\n // when the project under test has no vite installed. Mock module\n // resolution itself to simulate a real \"vite not installed\" project.\n vi.resetModules()\n vi.doMock('node:module', async (importOriginal) => {\n const actual = await importOriginal<typeof import('node:module')>()\n return {\n ...actual,\n createRequire: () => ({\n resolve: () => {\n throw new Error('Cannot find module')\n },\n }),\n }\n })\n\n const { resolveViteBin: resolveViteBinWithoutVite } = await import('./build.js')\n expect(() => resolveViteBinWithoutVite('/nonexistent-project-root')).toThrow(/vite/i)\n\n vi.doUnmock('node:module')\n vi.resetModules()\n })\n})\n\ndescribe('resolveBuildCommand', () => {\n it('maps next to the next bin and build args', () => {\n const { args, bin } = resolveBuildCommand({\n cwd: process.cwd(),\n forwardedArgs: ['--turbopack'],\n framework: 'next',\n })\n expect(bin).toMatch(/next[\\\\/].*bin[\\\\/]next$/)\n expect(args).toEqual(['build', '--turbopack'])\n })\n\n it('maps tanstack-start to the vite bin and build args', () => {\n const { args, bin } = resolveBuildCommand({\n cwd: process.cwd(),\n forwardedArgs: ['--mode', 'staging'],\n framework: 'tanstack-start',\n })\n expect(bin).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(args).toEqual(['build', '--mode', 'staging'])\n })\n})\n\ndescribe('build', () => {\n let exitMock: ReturnType<typeof vi.spyOn>\n let originalArgv: string[]\n let originalFrameworkEnv: string | undefined\n let cwdSpy: ReturnType<typeof vi.spyOn> | undefined\n const buildTempDirs: string[] = []\n\n beforeEach(() => {\n spawnMock.mockClear()\n generateImportMapMock.mockClear()\n generateTypesMock.mockClear()\n originalArgv = process.argv\n process.argv = ['node', 'payload', 'build']\n exitMock = vi.spyOn(process, 'exit').mockImplementation((() => undefined) as never)\n originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK\n // Force next for the legacy tests so they don't depend on the repo-root\n // package.json's ambient `next` dependency for auto-detection.\n process.env.PAYLOAD_FRAMEWORK = 'next'\n })\n\n afterEach(() => {\n process.argv = originalArgv\n exitMock.mockRestore()\n if (originalFrameworkEnv === undefined) {\n delete process.env.PAYLOAD_FRAMEWORK\n } else {\n process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv\n }\n if (cwdSpy) {\n cwdSpy.mockRestore()\n cwdSpy = undefined\n }\n for (const dir of buildTempDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n buildTempDirs.length = 0\n })\n\n it('generates the import map before spawning, and generates types by default', async () => {\n await build({ config: fakeConfig })\n\n expect(generateImportMapMock).toHaveBeenCalledTimes(1)\n expect(generateTypesMock).toHaveBeenCalledTimes(1)\n expect(spawnMock).toHaveBeenCalledTimes(1)\n expect(generateImportMapMock.mock.invocationCallOrder[0]).toBeLessThan(\n spawnMock.mock.invocationCallOrder[0],\n )\n })\n\n it('skips type generation with --no-types', async () => {\n process.argv = ['node', 'payload', 'build', '--no-types']\n\n await build({ config: fakeConfig })\n\n expect(generateImportMapMock).toHaveBeenCalledTimes(1)\n expect(generateTypesMock).not.toHaveBeenCalled()\n expect(spawnMock).toHaveBeenCalledTimes(1)\n })\n\n it('exits 1 and does not spawn when generation fails', async () => {\n generateImportMapMock.mockRejectedValueOnce(new Error('boom'))\n\n await build({ config: fakeConfig })\n\n expect(exitMock).toHaveBeenCalledWith(1)\n expect(spawnMock).not.toHaveBeenCalled()\n })\n\n it('spawns next build with forwarded args and propagates the child exit code', async () => {\n process.argv = ['node', 'payload', 'build', '--turbopack']\n let exitCb: ((code: number | null) => void) | undefined\n spawnMock.mockReturnValueOnce({\n on(event: string, cb: (code: number | null) => void) {\n if (event === 'exit') {\n exitCb = cb\n }\n return this\n },\n })\n\n const buildPromise = build({ config: fakeConfig })\n\n // generation awaits before spawn; let those microtasks settle\n await vi.waitFor(() => expect(spawnMock).toHaveBeenCalledTimes(1))\n const [execPath, spawnArgs, opts] = spawnMock.mock.calls[0]\n expect(execPath).toBe(process.execPath)\n expect(spawnArgs[1]).toBe('build')\n expect(spawnArgs).toContain('--turbopack')\n expect(opts).toEqual({ stdio: 'inherit' })\n\n // Simulate the child exiting with a non-zero code\n exitCb?.(2)\n await buildPromise\n expect(exitMock).toHaveBeenCalledWith(2)\n })\n\n it('does not exit until the spawned child exits, then propagates its code', async () => {\n let exitCb: ((code: number | null) => void) | undefined\n spawnMock.mockReturnValueOnce({\n on(event: string, cb: (code: number | null) => void) {\n if (event === 'exit') {\n exitCb = cb\n }\n return this\n },\n })\n\n let resolved = false\n const buildPromise = build({ config: fakeConfig }).then(() => {\n resolved = true\n })\n\n // Wait for generation to settle and the child to be spawned. build() must\n // still be pending because the child has not exited yet.\n await vi.waitFor(() => expect(exitCb).toBeDefined())\n // Flush all pending microtasks; the OLD (buggy) build() resolved here\n // without awaiting the child, so this assertion catches the race.\n await new Promise((r) => setTimeout(r, 0))\n expect(resolved).toBe(false)\n expect(exitMock).not.toHaveBeenCalled()\n\n // Child exits non-zero -> build() must exit with that exact code\n exitCb?.(3)\n await buildPromise\n expect(resolved).toBe(true)\n expect(exitMock).toHaveBeenCalledWith(3)\n })\n\n it('spawns vite build for a detected tanstack project', async () => {\n delete process.env.PAYLOAD_FRAMEWORK\n process.argv = ['node', 'payload', 'build', '--mode', 'staging']\n const tanstackDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-ts-'))\n buildTempDirs.push(tanstackDir)\n writeFileSync(\n path.join(tanstackDir, 'package.json'),\n JSON.stringify({ dependencies: { '@tanstack/react-start': '1.168.26' } }),\n )\n cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(tanstackDir)\n\n await build({ config: fakeConfig })\n\n expect(spawnMock).toHaveBeenCalledTimes(1)\n const [, spawnArgs] = spawnMock.mock.calls[0]\n expect(spawnArgs[0]).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(spawnArgs.slice(1)).toEqual(['build', '--mode', 'staging'])\n })\n\n it('exits 1 and does not spawn when the framework cannot be detected', async () => {\n delete process.env.PAYLOAD_FRAMEWORK\n const emptyDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-empty-'))\n buildTempDirs.push(emptyDir)\n writeFileSync(path.join(emptyDir, 'package.json'), JSON.stringify({}))\n cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(emptyDir)\n\n await build({ config: fakeConfig })\n\n expect(exitMock).toHaveBeenCalledWith(1)\n expect(spawnMock).not.toHaveBeenCalled()\n })\n})\n\ndescribe('detectFramework', () => {\n const createdDirs: string[] = []\n let originalFrameworkEnv: string | undefined\n\n const makeProject = (files: { contents?: string; path: string }[]): string => {\n const dir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-'))\n createdDirs.push(dir)\n for (const file of files) {\n const full = path.join(dir, file.path)\n mkdirSync(path.dirname(full), { recursive: true })\n writeFileSync(full, file.contents ?? '')\n }\n return dir\n }\n\n const pkg = (deps: Record<string, string>): string => JSON.stringify({ dependencies: deps })\n\n beforeEach(() => {\n originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK\n delete process.env.PAYLOAD_FRAMEWORK\n })\n\n afterEach(() => {\n if (originalFrameworkEnv === undefined) {\n delete process.env.PAYLOAD_FRAMEWORK\n } else {\n process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv\n }\n for (const dir of createdDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n createdDirs.length = 0\n })\n\n it('honors PAYLOAD_FRAMEWORK=tanstack-start over auto-detection', () => {\n process.env.PAYLOAD_FRAMEWORK = 'tanstack-start'\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('honors PAYLOAD_FRAMEWORK=next over auto-detection', () => {\n process.env.PAYLOAD_FRAMEWORK = 'next'\n const dir = makeProject([\n { contents: pkg({ '@tanstack/react-start': '1.168.26' }), path: 'package.json' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('throws when PAYLOAD_FRAMEWORK is an unsupported value', () => {\n process.env.PAYLOAD_FRAMEWORK = 'svelte'\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(() => detectFramework(dir)).toThrow(/PAYLOAD_FRAMEWORK/)\n })\n\n it('detects next from the next dependency', () => {\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('detects tanstack-start from the @tanstack/react-start dependency', () => {\n const dir = makeProject([\n { contents: pkg({ '@tanstack/react-start': '1.168.26' }), path: 'package.json' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('falls back to next.config when deps are inconclusive', () => {\n const dir = makeProject([\n { contents: pkg({}), path: 'package.json' },\n { path: 'next.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('falls back to vite.config when deps are inconclusive', () => {\n const dir = makeProject([\n { contents: pkg({}), path: 'package.json' },\n { path: 'vite.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('falls back to the (payload) folder convention', () => {\n const dir = makeProject([{ path: 'app/(payload)/admin/page.tsx' }])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('falls back to the _payload folder convention', () => {\n const dir = makeProject([{ path: 'app/_payload/route.tsx' }])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('resolves ambiguous deps using the config-file layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'next.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('resolves ambiguous deps to tanstack-start via the config-file layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'vite.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('resolves ambiguous deps and configs via the folder-convention layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'app/_payload/route.tsx' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('throws a no-framework error when nothing is detected', () => {\n const dir = makeProject([{ contents: pkg({}), path: 'package.json' }])\n expect(() => detectFramework(dir)).toThrow(/Could not determine your framework/)\n })\n\n it('throws a conflict error when signals stay ambiguous', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'next.config.ts' },\n { path: 'vite.config.ts' },\n ])\n expect(() => detectFramework(dir)).toThrow(/conflicting signals/)\n })\n})\n"],"names":["mkdirSync","mkdtempSync","rmSync","writeFileSync","os","path","describe","expect","it","vi","beforeEach","afterEach","spawnMock","fn","on","event","cb","generateImportMapMock","generateTypesMock","mock","spawn","generateImportMap","generateTypes","build","detectFramework","getForwardedArgs","resolveBuildCommand","resolveNextBin","resolveViteBin","fakeConfig","toEqual","binPath","process","cwd","toMatch","toThrow","resetModules","doMock","importOriginal","actual","createRequire","resolve","Error","resolveViteBinWithoutVite","doUnmock","args","bin","forwardedArgs","framework","exitMock","originalArgv","originalFrameworkEnv","cwdSpy","buildTempDirs","mockClear","argv","spyOn","mockImplementation","undefined","env","PAYLOAD_FRAMEWORK","mockRestore","dir","force","recursive","length","config","toHaveBeenCalledTimes","invocationCallOrder","toBeLessThan","not","toHaveBeenCalled","mockRejectedValueOnce","toHaveBeenCalledWith","exitCb","mockReturnValueOnce","buildPromise","waitFor","execPath","spawnArgs","opts","calls","toBe","toContain","stdio","resolved","then","toBeDefined","Promise","r","setTimeout","tanstackDir","join","tmpdir","push","JSON","stringify","dependencies","mockReturnValue","slice","emptyDir","createdDirs","makeProject","files","file","full","dirname","contents","pkg","deps","next"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/bin/build.spec.ts"],"sourcesContent":["import { existsSync, mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\n\nimport { describe, expect, it, vi, beforeEach, afterEach } from 'vitest'\n\n// Default fake child auto-fires `exit(0)` synchronously so ordering/generation\n// tests resolve. Specific tests override via `mockReturnValueOnce` to drive the\n// exit/error handlers manually.\nconst spawnMock = vi.fn(() => ({\n on(event: string, cb: (arg?: never) => void) {\n if (event === 'exit') {\n cb(0 as never)\n }\n return this\n },\n}))\nconst generateImportMapMock = vi.fn(async () => {})\nconst generateTypesMock = vi.fn(async () => {})\n\nvi.mock('node:child_process', () => ({ spawn: spawnMock }))\nvi.mock('./generateImportMap/index.js', () => ({ generateImportMap: generateImportMapMock }))\nvi.mock('./generateTypes.js', () => ({ generateTypes: generateTypesMock }))\n\n// Imported after mocks are registered\nconst {\n build,\n detectFramework,\n getForwardedArgs,\n resolveBuildCommand,\n resolveNextBin,\n resolveViteBin,\n} = await import('./build.js')\n\nconst fakeConfig = {} as never\n\ndescribe('getForwardedArgs', () => {\n it('returns args after the build token and strips --no-types', () => {\n expect(getForwardedArgs(['build', '--turbopack', '--no-types', 'foo'])).toEqual([\n '--turbopack',\n 'foo',\n ])\n })\n\n it('returns empty array when only build is present', () => {\n expect(getForwardedArgs(['build'])).toEqual([])\n })\n})\n\ndescribe('resolveNextBin', () => {\n it('resolves next bin from the current project', () => {\n // next is installed at the repo root; resolving from cwd must succeed\n const binPath = resolveNextBin(process.cwd())\n expect(binPath).toMatch(/next[\\\\/].*bin[\\\\/]next$/)\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('throws a clear error when next cannot be resolved', () => {\n expect(() => resolveNextBin('/nonexistent-project-root')).toThrow(/next/i)\n })\n})\n\ndescribe('resolveViteBin', () => {\n it('resolves the vite bin from the current project', () => {\n // vite is installed at the repo root; resolving from cwd must succeed\n const binPath = resolveViteBin(process.cwd())\n expect(binPath).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('throws a clear error when vite cannot be resolved', async () => {\n // Vitest injects its own transitive `vite` dep onto NODE_PATH, so resolving\n // \"vite\" from any cwd would otherwise succeed in this test process even\n // when the project under test has no vite installed. Mock module\n // resolution itself to simulate a real \"vite not installed\" project.\n vi.resetModules()\n vi.doMock('node:module', async (importOriginal) => {\n const actual = await importOriginal<typeof import('node:module')>()\n return {\n ...actual,\n createRequire: () => ({\n resolve: () => {\n throw new Error('Cannot find module')\n },\n }),\n }\n })\n\n const { resolveViteBin: resolveViteBinWithoutVite } = await import('./build.js')\n expect(() => resolveViteBinWithoutVite('/nonexistent-project-root')).toThrow(/vite/i)\n\n vi.doUnmock('node:module')\n vi.resetModules()\n })\n})\n\ndescribe('resolveBuildCommand', () => {\n it('maps next to the next bin and build args', () => {\n const { args, bin } = resolveBuildCommand({\n cwd: process.cwd(),\n forwardedArgs: ['--turbopack'],\n framework: 'next',\n })\n expect(bin).toMatch(/next[\\\\/].*bin[\\\\/]next$/)\n expect(args).toEqual(['build', '--turbopack'])\n })\n\n it('maps tanstack-start to the vite bin and build args', () => {\n const { args, bin } = resolveBuildCommand({\n cwd: process.cwd(),\n forwardedArgs: ['--mode', 'staging'],\n framework: 'tanstack-start',\n })\n expect(bin).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(args).toEqual(['build', '--mode', 'staging'])\n })\n})\n\n// Resolution against isolated fixture projects, complementing the cwd/real-install\n// checks above. Installing a fake package into a real temp node_modules proves\n// `createRequire` walks the consumer's node_modules rather than repo hoisting or\n// vitest's ambient NODE_PATH, and exercises bin-field shapes the real installs don't.\ndescribe('bin resolution walks the consumer project node_modules', () => {\n const binFixtureDirs: string[] = []\n\n /**\n * Build a throwaway project with a fake installed package whose package.json\n * carries the given `bin` field. Returns the project root to pass as `cwd`. The\n * bin target file is created so existsSync assertions are meaningful.\n */\n const makeProjectWithPackage = ({\n binField,\n binRelPath,\n packageName,\n }: {\n binField: unknown\n binRelPath?: string\n packageName: string\n }): string => {\n // realpath so exact path comparisons hold on macOS, where /var symlinks to\n // /private/var and require.resolve returns the resolved path.\n const root = realpathSync(mkdtempSync(path.join(os.tmpdir(), 'payload-build-bin-')))\n binFixtureDirs.push(root)\n writeFileSync(path.join(root, 'package.json'), JSON.stringify({ name: 'fixture-app' }))\n\n const pkgDir = path.join(root, 'node_modules', packageName)\n mkdirSync(pkgDir, { recursive: true })\n writeFileSync(\n path.join(pkgDir, 'package.json'),\n JSON.stringify({ bin: binField, name: packageName, version: '0.0.0' }),\n )\n\n if (binRelPath) {\n const binFull = path.join(pkgDir, binRelPath)\n mkdirSync(path.dirname(binFull), { recursive: true })\n writeFileSync(binFull, '')\n }\n\n return root\n }\n\n afterEach(() => {\n for (const dir of binFixtureDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n binFixtureDirs.length = 0\n })\n\n it('resolves the next bin from an isolated project using the object-form bin field', () => {\n const root = makeProjectWithPackage({\n binField: { next: './dist/bin/next' },\n binRelPath: 'dist/bin/next',\n packageName: 'next',\n })\n\n const binPath = resolveNextBin(root)\n\n expect(binPath).toBe(path.join(root, 'node_modules', 'next', 'dist', 'bin', 'next'))\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('resolves the vite bin from an isolated project using the object-form bin field', () => {\n const root = makeProjectWithPackage({\n binField: { vite: 'bin/vite.js' },\n binRelPath: 'bin/vite.js',\n packageName: 'vite',\n })\n\n const binPath = resolveViteBin(root)\n\n expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'bin', 'vite.js'))\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('resolves a string-form bin field', () => {\n const root = makeProjectWithPackage({\n binField: './cli.js',\n binRelPath: 'cli.js',\n packageName: 'vite',\n })\n\n const binPath = resolveViteBin(root)\n\n expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'cli.js'))\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('throws a clear error when the package declares no bin field', () => {\n const root = makeProjectWithPackage({ binField: undefined, packageName: 'vite' })\n\n expect(() => resolveViteBin(root)).toThrow(/binary path/i)\n })\n})\n\ndescribe('build', () => {\n let exitMock: ReturnType<typeof vi.spyOn>\n let originalArgv: string[]\n let originalFrameworkEnv: string | undefined\n let cwdSpy: ReturnType<typeof vi.spyOn> | undefined\n const buildTempDirs: string[] = []\n\n beforeEach(() => {\n spawnMock.mockClear()\n generateImportMapMock.mockClear()\n generateTypesMock.mockClear()\n originalArgv = process.argv\n process.argv = ['node', 'payload', 'build']\n exitMock = vi.spyOn(process, 'exit').mockImplementation((() => undefined) as never)\n originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK\n // Force next for the legacy tests so they don't depend on the repo-root\n // package.json's ambient `next` dependency for auto-detection.\n process.env.PAYLOAD_FRAMEWORK = 'next'\n })\n\n afterEach(() => {\n process.argv = originalArgv\n exitMock.mockRestore()\n if (originalFrameworkEnv === undefined) {\n delete process.env.PAYLOAD_FRAMEWORK\n } else {\n process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv\n }\n if (cwdSpy) {\n cwdSpy.mockRestore()\n cwdSpy = undefined\n }\n for (const dir of buildTempDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n buildTempDirs.length = 0\n })\n\n it('generates the import map before spawning, and generates types by default', async () => {\n await build({ config: fakeConfig })\n\n expect(generateImportMapMock).toHaveBeenCalledTimes(1)\n expect(generateTypesMock).toHaveBeenCalledTimes(1)\n expect(spawnMock).toHaveBeenCalledTimes(1)\n expect(generateImportMapMock.mock.invocationCallOrder[0]).toBeLessThan(\n spawnMock.mock.invocationCallOrder[0],\n )\n })\n\n it('skips type generation with --no-types', async () => {\n process.argv = ['node', 'payload', 'build', '--no-types']\n\n await build({ config: fakeConfig })\n\n expect(generateImportMapMock).toHaveBeenCalledTimes(1)\n expect(generateTypesMock).not.toHaveBeenCalled()\n expect(spawnMock).toHaveBeenCalledTimes(1)\n })\n\n it('exits 1 and does not spawn when generation fails', async () => {\n generateImportMapMock.mockRejectedValueOnce(new Error('boom'))\n\n await build({ config: fakeConfig })\n\n expect(exitMock).toHaveBeenCalledWith(1)\n expect(spawnMock).not.toHaveBeenCalled()\n })\n\n it('spawns next build with forwarded args and propagates the child exit code', async () => {\n process.argv = ['node', 'payload', 'build', '--turbopack']\n let exitCb: ((code: number | null) => void) | undefined\n spawnMock.mockReturnValueOnce({\n on(event: string, cb: (code: number | null) => void) {\n if (event === 'exit') {\n exitCb = cb\n }\n return this\n },\n })\n\n const buildPromise = build({ config: fakeConfig })\n\n // generation awaits before spawn; let those microtasks settle\n await vi.waitFor(() => expect(spawnMock).toHaveBeenCalledTimes(1))\n const [execPath, spawnArgs, opts] = spawnMock.mock.calls[0]\n expect(execPath).toBe(process.execPath)\n expect(spawnArgs[1]).toBe('build')\n expect(spawnArgs).toContain('--turbopack')\n expect(opts).toEqual({ stdio: 'inherit' })\n\n // Simulate the child exiting with a non-zero code\n exitCb?.(2)\n await buildPromise\n expect(exitMock).toHaveBeenCalledWith(2)\n })\n\n it('does not exit until the spawned child exits, then propagates its code', async () => {\n let exitCb: ((code: number | null) => void) | undefined\n spawnMock.mockReturnValueOnce({\n on(event: string, cb: (code: number | null) => void) {\n if (event === 'exit') {\n exitCb = cb\n }\n return this\n },\n })\n\n let resolved = false\n const buildPromise = build({ config: fakeConfig }).then(() => {\n resolved = true\n })\n\n // Wait for generation to settle and the child to be spawned. build() must\n // still be pending because the child has not exited yet.\n await vi.waitFor(() => expect(exitCb).toBeDefined())\n // Flush all pending microtasks; the OLD (buggy) build() resolved here\n // without awaiting the child, so this assertion catches the race.\n await new Promise((r) => setTimeout(r, 0))\n expect(resolved).toBe(false)\n expect(exitMock).not.toHaveBeenCalled()\n\n // Child exits non-zero -> build() must exit with that exact code\n exitCb?.(3)\n await buildPromise\n expect(resolved).toBe(true)\n expect(exitMock).toHaveBeenCalledWith(3)\n })\n\n it('spawns vite build for a detected tanstack project', async () => {\n delete process.env.PAYLOAD_FRAMEWORK\n process.argv = ['node', 'payload', 'build', '--mode', 'staging']\n const tanstackDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-ts-'))\n buildTempDirs.push(tanstackDir)\n writeFileSync(\n path.join(tanstackDir, 'package.json'),\n JSON.stringify({ dependencies: { '@tanstack/react-start': '1.168.26' } }),\n )\n cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(tanstackDir)\n\n await build({ config: fakeConfig })\n\n expect(spawnMock).toHaveBeenCalledTimes(1)\n const [, spawnArgs] = spawnMock.mock.calls[0]\n expect(spawnArgs[0]).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(spawnArgs.slice(1)).toEqual(['build', '--mode', 'staging'])\n })\n\n it('exits 1 and does not spawn when the framework cannot be detected', async () => {\n delete process.env.PAYLOAD_FRAMEWORK\n const emptyDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-empty-'))\n buildTempDirs.push(emptyDir)\n writeFileSync(path.join(emptyDir, 'package.json'), JSON.stringify({}))\n cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(emptyDir)\n\n await build({ config: fakeConfig })\n\n expect(exitMock).toHaveBeenCalledWith(1)\n expect(spawnMock).not.toHaveBeenCalled()\n })\n})\n\ndescribe('detectFramework', () => {\n const createdDirs: string[] = []\n let originalFrameworkEnv: string | undefined\n\n const makeProject = (files: { contents?: string; path: string }[]): string => {\n const dir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-'))\n createdDirs.push(dir)\n for (const file of files) {\n const full = path.join(dir, file.path)\n mkdirSync(path.dirname(full), { recursive: true })\n writeFileSync(full, file.contents ?? '')\n }\n return dir\n }\n\n const pkg = (deps: Record<string, string>): string => JSON.stringify({ dependencies: deps })\n\n beforeEach(() => {\n originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK\n delete process.env.PAYLOAD_FRAMEWORK\n })\n\n afterEach(() => {\n if (originalFrameworkEnv === undefined) {\n delete process.env.PAYLOAD_FRAMEWORK\n } else {\n process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv\n }\n for (const dir of createdDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n createdDirs.length = 0\n })\n\n it('honors PAYLOAD_FRAMEWORK=tanstack-start over auto-detection', () => {\n process.env.PAYLOAD_FRAMEWORK = 'tanstack-start'\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('honors PAYLOAD_FRAMEWORK=next over auto-detection', () => {\n process.env.PAYLOAD_FRAMEWORK = 'next'\n const dir = makeProject([\n { contents: pkg({ '@tanstack/react-start': '1.168.26' }), path: 'package.json' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('throws when PAYLOAD_FRAMEWORK is an unsupported value', () => {\n process.env.PAYLOAD_FRAMEWORK = 'svelte'\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(() => detectFramework(dir)).toThrow(/PAYLOAD_FRAMEWORK/)\n })\n\n it('detects next from the next dependency', () => {\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('detects tanstack-start from the @tanstack/react-start dependency', () => {\n const dir = makeProject([\n { contents: pkg({ '@tanstack/react-start': '1.168.26' }), path: 'package.json' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('falls back to next.config when deps are inconclusive', () => {\n const dir = makeProject([\n { contents: pkg({}), path: 'package.json' },\n { path: 'next.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('falls back to vite.config when deps are inconclusive', () => {\n const dir = makeProject([\n { contents: pkg({}), path: 'package.json' },\n { path: 'vite.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('falls back to the (payload) folder convention', () => {\n const dir = makeProject([{ path: 'app/(payload)/admin/page.tsx' }])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('falls back to the _payload folder convention', () => {\n const dir = makeProject([{ path: 'app/_payload/route.tsx' }])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('resolves ambiguous deps using the config-file layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'next.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('resolves ambiguous deps to tanstack-start via the config-file layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'vite.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('resolves ambiguous deps and configs via the folder-convention layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'app/_payload/route.tsx' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('throws a no-framework error when nothing is detected', () => {\n const dir = makeProject([{ contents: pkg({}), path: 'package.json' }])\n expect(() => detectFramework(dir)).toThrow(/Could not determine your framework/)\n })\n\n it('throws a conflict error when signals stay ambiguous', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'next.config.ts' },\n { path: 'vite.config.ts' },\n ])\n expect(() => detectFramework(dir)).toThrow(/conflicting signals/)\n })\n})\n"],"names":["existsSync","mkdirSync","mkdtempSync","realpathSync","rmSync","writeFileSync","os","path","describe","expect","it","vi","beforeEach","afterEach","spawnMock","fn","on","event","cb","generateImportMapMock","generateTypesMock","mock","spawn","generateImportMap","generateTypes","build","detectFramework","getForwardedArgs","resolveBuildCommand","resolveNextBin","resolveViteBin","fakeConfig","toEqual","binPath","process","cwd","toMatch","toBe","toThrow","resetModules","doMock","importOriginal","actual","createRequire","resolve","Error","resolveViteBinWithoutVite","doUnmock","args","bin","forwardedArgs","framework","binFixtureDirs","makeProjectWithPackage","binField","binRelPath","packageName","root","join","tmpdir","push","JSON","stringify","name","pkgDir","recursive","version","binFull","dirname","dir","force","length","next","vite","undefined","exitMock","originalArgv","originalFrameworkEnv","cwdSpy","buildTempDirs","mockClear","argv","spyOn","mockImplementation","env","PAYLOAD_FRAMEWORK","mockRestore","config","toHaveBeenCalledTimes","invocationCallOrder","toBeLessThan","not","toHaveBeenCalled","mockRejectedValueOnce","toHaveBeenCalledWith","exitCb","mockReturnValueOnce","buildPromise","waitFor","execPath","spawnArgs","opts","calls","toContain","stdio","resolved","then","toBeDefined","Promise","r","setTimeout","tanstackDir","dependencies","mockReturnValue","slice","emptyDir","createdDirs","makeProject","files","file","full","contents","pkg","deps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFromImportMap.d.ts","sourceRoot":"","sources":["../../../../src/bin/generateImportMap/utilities/getFromImportMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAI5C,eAAO,MAAM,gBAAgB,GAAI,OAAO,EAAE,MAAM;IAC9C,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,KAAG,OAuBH,CAAA"}
1
+ {"version":3,"file":"getFromImportMap.d.ts","sourceRoot":"","sources":["../../../../src/bin/generateImportMap/utilities/getFromImportMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAI5C,eAAO,MAAM,gBAAgB,GAAI,OAAO,QAAQ;IAC9C,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,KAAG,OAuBH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/bin/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAczD,eAAO,MAAM,iBAAiB,UAQ7B,CAAA;AAID,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,sCAAsC,IAAI,KAAG,OAAO,CAAC,IAAI,CAkGtF,CAAA"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/bin/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAczD,eAAO,MAAM,iBAAiB,UAQ7B,CAAA;AAID,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,OAAO,yCAAgD,IAAI,KAAG,OAAO,CAAC,IAAI,CAkGtF,CAAA"}
@@ -5,10 +5,14 @@ import type { LivePreviewConfig, ServerOnlyLivePreviewProperties, StaticLabel }
5
5
  import type { ClientField } from '../../fields/config/client.js';
6
6
  import type { ClientHierarchyConfig } from '../../hierarchy/types.js';
7
7
  import type { Payload } from '../../types/index.js';
8
+ import type { SanitizedUploadConfig, UploadInstructionsCapability } from '../../uploads/types.js';
8
9
  import type { SanitizedCollectionConfig } from './types.js';
9
10
  export type ServerOnlyCollectionProperties = keyof Pick<SanitizedCollectionConfig, 'access' | 'custom' | 'endpoints' | 'flattenedFields' | 'hooks' | 'indexes' | 'joins' | 'polymorphicJoins' | 'sanitizedIndexes' | 'select'>;
10
11
  export type ServerOnlyCollectionAdminProperties = keyof Pick<SanitizedCollectionConfig['admin'], 'baseFilter' | 'baseListFilter' | 'components' | 'formatDocURL' | 'hidden'>;
11
- export type ServerOnlyUploadProperties = keyof Pick<SanitizedCollectionConfig['upload'], 'admin' | 'adminThumbnail' | 'externalFileHeaderFilter' | 'handlers' | 'modifyResponseHeaders' | 'withMetadata'>;
12
+ export type ServerOnlyUploadProperties = keyof Pick<SanitizedCollectionConfig['upload'], 'admin' | 'adminThumbnail' | 'externalFileHeaderFilter' | 'handlers' | 'modifyResponseHeaders' | 'uploadInstructions' | 'withMetadata'>;
13
+ type ClientUploadConfig = {
14
+ uploadInstructions: Pick<UploadInstructionsCapability, 'useInAdmin'>;
15
+ } & Omit<SanitizedUploadConfig, 'uploadInstructions'>;
12
16
  export type ClientCollectionConfig = {
13
17
  admin: {
14
18
  description?: StaticDescription;
@@ -24,17 +28,19 @@ export type ClientCollectionConfig = {
24
28
  plural: StaticLabel;
25
29
  singular: StaticLabel;
26
30
  };
27
- } & Omit<SanitizedCollectionConfig, 'admin' | 'auth' | 'fields' | 'hierarchy' | 'labels' | ServerOnlyCollectionProperties>;
31
+ upload: ClientUploadConfig;
32
+ } & Omit<SanitizedCollectionConfig, 'admin' | 'auth' | 'fields' | 'hierarchy' | 'labels' | 'upload' | ServerOnlyCollectionProperties>;
28
33
  export declare const createClientCollectionConfig: ({ collection, defaultIDType, i18n, importMap, }: {
29
34
  collection: SanitizedCollectionConfig;
30
- defaultIDType: Payload["config"]["db"]["defaultIDType"];
35
+ defaultIDType: Payload['config']['db']['defaultIDType'];
31
36
  i18n: I18nClient;
32
37
  importMap: ImportMap;
33
38
  }) => ClientCollectionConfig;
34
39
  export declare const createClientCollectionConfigs: ({ collections, defaultIDType, i18n, importMap, }: {
35
40
  collections: SanitizedCollectionConfig[];
36
- defaultIDType: Payload["config"]["db"]["defaultIDType"];
41
+ defaultIDType: Payload['config']['db']['defaultIDType'];
37
42
  i18n: I18nClient;
38
43
  importMap: ImportMap;
39
44
  }) => ClientCollectionConfig[];
45
+ export {};
40
46
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/collections/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,0BAA0B,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EACjB,+BAA+B,EAC/B,WAAW,EACZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAI3D,MAAM,MAAM,8BAA8B,GAAG,MAAM,IAAI,CACrD,yBAAyB,EACvB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,SAAS,GACT,OAAO,GACP,kBAAkB,GAClB,kBAAkB,GAClB,QAAQ,CACX,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,IAAI,CAC1D,yBAAyB,CAAC,OAAO,CAAC,EAClC,YAAY,GAAG,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAC3E,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,IAAI,CACjD,yBAAyB,CAAC,QAAQ,CAAC,EACjC,OAAO,GACP,gBAAgB,GAChB,0BAA0B,GAC1B,UAAU,GACV,uBAAuB,GACvB,cAAc,CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE;QACL,WAAW,CAAC,EAAE,iBAAiB,CAAA;QAC/B,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;QACtE,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,GAAG,IAAI,CACN,yBAAyB,CAAC,OAAO,CAAC,EAChC,YAAY,GACZ,aAAa,GACb,cAAc,GACd,OAAO,GACP,aAAa,GACb,SAAS,GACT,mCAAmC,CACtC,CAAA;IACD,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAC7B,yBAAyB,CAAC,MAAM,CAAC,EACjC,gBAAgB,GAAG,YAAY,GAAG,QAAQ,CAC3C,CAAA;IACD,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAA;IACzC,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;QACnB,QAAQ,EAAE,WAAW,CAAA;KACtB,CAAA;CACF,GAAG,IAAI,CACN,yBAAyB,EACzB,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,8BAA8B,CACtF,CAAA;AAqCD,eAAO,MAAM,4BAA4B,GAAI,iDAK1C;IACD,UAAU,EAAE,yBAAyB,CAAA;IACrC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,sBA0LH,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,kDAK3C;IACD,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,sBAAsB,EAezB,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/collections/config/client.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ const serverOnlyUploadProperties = [
17
17
  'externalFileHeaderFilter',
18
18
  'handlers',
19
19
  'modifyResponseHeaders',
20
+ 'uploadInstructions',
20
21
  'withMetadata'
21
22
  ];
22
23
  const serverOnlyCollectionAdminProperties = [
@@ -148,7 +149,11 @@ export const createClientCollectionConfig = ({ collection, defaultIDType, i18n,
148
149
  if (!collection.upload) {
149
150
  break;
150
151
  }
151
- clientCollection.upload = {};
152
+ clientCollection.upload = {
153
+ uploadInstructions: {
154
+ useInAdmin: collection.upload.uploadInstructions?.useInAdmin ?? false
155
+ }
156
+ };
152
157
  for(const uploadKey in collection.upload){
153
158
  if (serverOnlyUploadProperties.includes(uploadKey)) {
154
159
  continue;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/client.ts"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\n\nimport type { StaticDescription } from '../../admin/types.js'\nimport type { ImportMap } from '../../bin/generateImportMap/index.js'\nimport type {\n LivePreviewConfig,\n ServerOnlyLivePreviewProperties,\n StaticLabel,\n} from '../../config/types.js'\nimport type { ClientField } from '../../fields/config/client.js'\nimport type { ClientHierarchyConfig } from '../../hierarchy/types.js'\nimport type { Payload } from '../../types/index.js'\nimport type { SanitizedUploadConfig } from '../../uploads/types.js'\nimport type { SanitizedCollectionConfig } from './types.js'\n\nimport { createClientFields } from '../../fields/config/client.js'\n\nexport type ServerOnlyCollectionProperties = keyof Pick<\n SanitizedCollectionConfig,\n | 'access'\n | 'custom'\n | 'endpoints'\n | 'flattenedFields'\n | 'hooks'\n | 'indexes'\n | 'joins'\n | 'polymorphicJoins'\n | 'sanitizedIndexes'\n | 'select'\n>\n\nexport type ServerOnlyCollectionAdminProperties = keyof Pick<\n SanitizedCollectionConfig['admin'],\n 'baseFilter' | 'baseListFilter' | 'components' | 'formatDocURL' | 'hidden'\n>\n\nexport type ServerOnlyUploadProperties = keyof Pick<\n SanitizedCollectionConfig['upload'],\n | 'admin'\n | 'adminThumbnail'\n | 'externalFileHeaderFilter'\n | 'handlers'\n | 'modifyResponseHeaders'\n | 'withMetadata'\n>\n\nexport type ClientCollectionConfig = {\n admin: {\n description?: StaticDescription\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n preview?: boolean\n } & Omit<\n SanitizedCollectionConfig['admin'],\n | 'components'\n | 'description'\n | 'formatDocURL'\n | 'joins'\n | 'livePreview'\n | 'preview'\n | ServerOnlyCollectionAdminProperties\n >\n auth?: { verify?: true } & Omit<\n SanitizedCollectionConfig['auth'],\n 'forgotPassword' | 'strategies' | 'verify'\n >\n fields: ClientField[]\n hierarchy?: ClientHierarchyConfig | false\n labels: {\n plural: StaticLabel\n singular: StaticLabel\n }\n} & Omit<\n SanitizedCollectionConfig,\n 'admin' | 'auth' | 'fields' | 'hierarchy' | 'labels' | ServerOnlyCollectionProperties\n>\n\nconst serverOnlyCollectionProperties: Partial<ServerOnlyCollectionProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n 'joins',\n 'polymorphicJoins',\n 'flattenedFields',\n 'indexes',\n 'sanitizedIndexes',\n 'select',\n // `upload`\n // `admin`\n // are all handled separately\n]\n\nconst serverOnlyUploadProperties: Partial<ServerOnlyUploadProperties>[] = [\n 'admin',\n 'adminThumbnail',\n 'externalFileHeaderFilter',\n 'handlers',\n 'modifyResponseHeaders',\n 'withMetadata',\n]\n\nconst serverOnlyCollectionAdminProperties: Partial<ServerOnlyCollectionAdminProperties>[] = [\n 'hidden',\n 'baseFilter',\n 'baseListFilter',\n 'components',\n 'formatDocURL',\n // 'preview' is handled separately\n // `livePreview` is handled separately\n]\n\nexport const createClientCollectionConfig = ({\n collection,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collection: SanitizedCollectionConfig\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig => {\n const clientCollection = {} as Partial<ClientCollectionConfig>\n\n for (const key in collection) {\n if (serverOnlyCollectionProperties.includes(key as any)) {\n continue\n }\n switch (key) {\n case 'admin':\n if (!collection.admin) {\n break\n }\n\n clientCollection.admin = {} as ClientCollectionConfig['admin']\n\n for (const adminKey in collection.admin) {\n if (serverOnlyCollectionAdminProperties.includes(adminKey as any)) {\n continue\n }\n\n switch (adminKey) {\n case 'description':\n if (\n typeof collection.admin.description === 'string' ||\n typeof collection.admin.description === 'object'\n ) {\n if (collection.admin.description) {\n clientCollection.admin.description = collection.admin.description\n }\n } else if (typeof collection.admin.description === 'function') {\n const description = collection.admin.description({ t: i18n.t as TFunction })\n\n if (description) {\n clientCollection.admin.description = description\n }\n }\n break\n\n case 'livePreview':\n clientCollection.admin.livePreview = {}\n\n if (collection.admin.livePreview?.breakpoints) {\n clientCollection.admin.livePreview.breakpoints =\n collection.admin.livePreview.breakpoints\n }\n\n break\n\n case 'preview':\n if (collection.admin.preview) {\n clientCollection.admin.preview = true\n }\n\n break\n\n default:\n ;(clientCollection as any).admin[adminKey] =\n collection.admin[adminKey as keyof SanitizedCollectionConfig['admin']]\n }\n }\n\n break\n\n case 'auth':\n if (!collection.auth) {\n break\n }\n\n clientCollection.auth = {} as { verify?: true } & SanitizedCollectionConfig['auth']\n\n if (collection.auth.cookies) {\n clientCollection.auth.cookies = collection.auth.cookies\n }\n\n if (collection.auth.depth !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.depth = collection.auth.depth\n }\n\n if (collection.auth.disableLocalStrategy) {\n clientCollection.auth.disableLocalStrategy = collection.auth.disableLocalStrategy\n }\n\n if (collection.auth.lockTime !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.lockTime = collection.auth.lockTime\n }\n\n if (collection.auth.loginWithUsername) {\n clientCollection.auth.loginWithUsername = collection.auth.loginWithUsername\n }\n\n if (collection.auth.maxLoginAttempts !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.maxLoginAttempts = collection.auth.maxLoginAttempts\n }\n\n if (collection.auth.removeTokenFromResponses) {\n clientCollection.auth.removeTokenFromResponses = collection.auth.removeTokenFromResponses\n }\n\n if (collection.auth.useAPIKey) {\n clientCollection.auth.useAPIKey = collection.auth.useAPIKey\n }\n\n if (collection.auth.tokenExpiration) {\n clientCollection.auth.tokenExpiration = collection.auth.tokenExpiration\n }\n\n if (collection.auth.verify) {\n clientCollection.auth.verify = true\n }\n\n break\n\n case 'fields':\n clientCollection.fields = createClientFields({\n defaultIDType,\n fields: collection.fields,\n i18n,\n importMap,\n })\n\n break\n\n case 'hierarchy': {\n if (!collection.hierarchy || typeof collection.hierarchy !== 'object') {\n clientCollection.hierarchy = false\n break\n }\n\n // Strip slugify function as it can't cross server-client boundary\n const { slugify: _slugify, ...clientHierarchy } = collection.hierarchy\n clientCollection.hierarchy = clientHierarchy as ClientHierarchyConfig\n\n break\n }\n\n case 'labels':\n clientCollection.labels = {\n plural:\n typeof collection.labels.plural === 'function'\n ? collection.labels.plural({ i18n, t: i18n.t as TFunction })\n : collection.labels.plural,\n singular:\n typeof collection.labels.singular === 'function'\n ? collection.labels.singular({ i18n, t: i18n.t as TFunction })\n : collection.labels.singular,\n }\n\n break\n\n case 'upload':\n if (!collection.upload) {\n break\n }\n\n clientCollection.upload = {} as SanitizedUploadConfig\n\n for (const uploadKey in collection.upload) {\n if (serverOnlyUploadProperties.includes(uploadKey as any)) {\n continue\n }\n\n if (uploadKey === 'imageSizes') {\n clientCollection.upload.imageSizes = collection.upload.imageSizes?.map((size) => {\n const sanitizedSize = { ...size }\n if ('generateImageName' in sanitizedSize) {\n delete sanitizedSize.generateImageName\n }\n return sanitizedSize\n })\n } else {\n ;(clientCollection.upload as any)[uploadKey] =\n collection.upload[uploadKey as keyof SanitizedUploadConfig]\n }\n }\n\n break\n\n default:\n ;(clientCollection as any)[key] = collection[key as keyof SanitizedCollectionConfig]\n }\n }\n\n return clientCollection as ClientCollectionConfig\n}\n\nexport const createClientCollectionConfigs = ({\n collections,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collections: SanitizedCollectionConfig[]\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig[] => {\n const clientCollections = new Array(collections.length)\n\n for (let i = 0; i < collections.length; i++) {\n const collection = collections[i]!\n\n clientCollections[i] = createClientCollectionConfig({\n collection,\n defaultIDType,\n i18n,\n importMap,\n })\n }\n\n return clientCollections\n}\n"],"names":["createClientFields","serverOnlyCollectionProperties","serverOnlyUploadProperties","serverOnlyCollectionAdminProperties","createClientCollectionConfig","collection","defaultIDType","i18n","importMap","clientCollection","key","includes","admin","adminKey","description","t","livePreview","breakpoints","preview","auth","cookies","depth","undefined","disableLocalStrategy","lockTime","loginWithUsername","maxLoginAttempts","removeTokenFromResponses","useAPIKey","tokenExpiration","verify","fields","hierarchy","slugify","_slugify","clientHierarchy","labels","plural","singular","upload","uploadKey","imageSizes","map","size","sanitizedSize","generateImageName","createClientCollectionConfigs","collections","clientCollections","Array","length","i"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/config/client.ts"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\n\nimport type { StaticDescription } from '../../admin/types.js'\nimport type { ImportMap } from '../../bin/generateImportMap/index.js'\nimport type {\n LivePreviewConfig,\n ServerOnlyLivePreviewProperties,\n StaticLabel,\n} from '../../config/types.js'\nimport type { ClientField } from '../../fields/config/client.js'\nimport type { ClientHierarchyConfig } from '../../hierarchy/types.js'\nimport type { Payload } from '../../types/index.js'\nimport type { SanitizedUploadConfig, UploadInstructionsCapability } from '../../uploads/types.js'\nimport type { SanitizedCollectionConfig } from './types.js'\n\nimport { createClientFields } from '../../fields/config/client.js'\n\nexport type ServerOnlyCollectionProperties = keyof Pick<\n SanitizedCollectionConfig,\n | 'access'\n | 'custom'\n | 'endpoints'\n | 'flattenedFields'\n | 'hooks'\n | 'indexes'\n | 'joins'\n | 'polymorphicJoins'\n | 'sanitizedIndexes'\n | 'select'\n>\n\nexport type ServerOnlyCollectionAdminProperties = keyof Pick<\n SanitizedCollectionConfig['admin'],\n 'baseFilter' | 'baseListFilter' | 'components' | 'formatDocURL' | 'hidden'\n>\n\nexport type ServerOnlyUploadProperties = keyof Pick<\n SanitizedCollectionConfig['upload'],\n | 'admin'\n | 'adminThumbnail'\n | 'externalFileHeaderFilter'\n | 'handlers'\n | 'modifyResponseHeaders'\n | 'uploadInstructions'\n | 'withMetadata'\n>\n\ntype ClientUploadConfig = {\n uploadInstructions: Pick<UploadInstructionsCapability, 'useInAdmin'>\n} & Omit<SanitizedUploadConfig, 'uploadInstructions'>\n\nexport type ClientCollectionConfig = {\n admin: {\n description?: StaticDescription\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n preview?: boolean\n } & Omit<\n SanitizedCollectionConfig['admin'],\n | 'components'\n | 'description'\n | 'formatDocURL'\n | 'joins'\n | 'livePreview'\n | 'preview'\n | ServerOnlyCollectionAdminProperties\n >\n auth?: { verify?: true } & Omit<\n SanitizedCollectionConfig['auth'],\n 'forgotPassword' | 'strategies' | 'verify'\n >\n fields: ClientField[]\n hierarchy?: ClientHierarchyConfig | false\n labels: {\n plural: StaticLabel\n singular: StaticLabel\n }\n upload: ClientUploadConfig\n} & Omit<\n SanitizedCollectionConfig,\n 'admin' | 'auth' | 'fields' | 'hierarchy' | 'labels' | 'upload' | ServerOnlyCollectionProperties\n>\n\nconst serverOnlyCollectionProperties: Partial<ServerOnlyCollectionProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n 'joins',\n 'polymorphicJoins',\n 'flattenedFields',\n 'indexes',\n 'sanitizedIndexes',\n 'select',\n // `upload`\n // `admin`\n // are all handled separately\n]\n\nconst serverOnlyUploadProperties: Partial<ServerOnlyUploadProperties>[] = [\n 'admin',\n 'adminThumbnail',\n 'externalFileHeaderFilter',\n 'handlers',\n 'modifyResponseHeaders',\n 'uploadInstructions',\n 'withMetadata',\n]\n\nconst serverOnlyCollectionAdminProperties: Partial<ServerOnlyCollectionAdminProperties>[] = [\n 'hidden',\n 'baseFilter',\n 'baseListFilter',\n 'components',\n 'formatDocURL',\n // 'preview' is handled separately\n // `livePreview` is handled separately\n]\n\nexport const createClientCollectionConfig = ({\n collection,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collection: SanitizedCollectionConfig\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig => {\n const clientCollection = {} as Partial<ClientCollectionConfig>\n\n for (const key in collection) {\n if (serverOnlyCollectionProperties.includes(key as any)) {\n continue\n }\n switch (key) {\n case 'admin':\n if (!collection.admin) {\n break\n }\n\n clientCollection.admin = {} as ClientCollectionConfig['admin']\n\n for (const adminKey in collection.admin) {\n if (serverOnlyCollectionAdminProperties.includes(adminKey as any)) {\n continue\n }\n\n switch (adminKey) {\n case 'description':\n if (\n typeof collection.admin.description === 'string' ||\n typeof collection.admin.description === 'object'\n ) {\n if (collection.admin.description) {\n clientCollection.admin.description = collection.admin.description\n }\n } else if (typeof collection.admin.description === 'function') {\n const description = collection.admin.description({ t: i18n.t as TFunction })\n\n if (description) {\n clientCollection.admin.description = description\n }\n }\n break\n\n case 'livePreview':\n clientCollection.admin.livePreview = {}\n\n if (collection.admin.livePreview?.breakpoints) {\n clientCollection.admin.livePreview.breakpoints =\n collection.admin.livePreview.breakpoints\n }\n\n break\n\n case 'preview':\n if (collection.admin.preview) {\n clientCollection.admin.preview = true\n }\n\n break\n\n default:\n ;(clientCollection as any).admin[adminKey] =\n collection.admin[adminKey as keyof SanitizedCollectionConfig['admin']]\n }\n }\n\n break\n\n case 'auth':\n if (!collection.auth) {\n break\n }\n\n clientCollection.auth = {} as { verify?: true } & SanitizedCollectionConfig['auth']\n\n if (collection.auth.cookies) {\n clientCollection.auth.cookies = collection.auth.cookies\n }\n\n if (collection.auth.depth !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.depth = collection.auth.depth\n }\n\n if (collection.auth.disableLocalStrategy) {\n clientCollection.auth.disableLocalStrategy = collection.auth.disableLocalStrategy\n }\n\n if (collection.auth.lockTime !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.lockTime = collection.auth.lockTime\n }\n\n if (collection.auth.loginWithUsername) {\n clientCollection.auth.loginWithUsername = collection.auth.loginWithUsername\n }\n\n if (collection.auth.maxLoginAttempts !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.maxLoginAttempts = collection.auth.maxLoginAttempts\n }\n\n if (collection.auth.removeTokenFromResponses) {\n clientCollection.auth.removeTokenFromResponses = collection.auth.removeTokenFromResponses\n }\n\n if (collection.auth.useAPIKey) {\n clientCollection.auth.useAPIKey = collection.auth.useAPIKey\n }\n\n if (collection.auth.tokenExpiration) {\n clientCollection.auth.tokenExpiration = collection.auth.tokenExpiration\n }\n\n if (collection.auth.verify) {\n clientCollection.auth.verify = true\n }\n\n break\n\n case 'fields':\n clientCollection.fields = createClientFields({\n defaultIDType,\n fields: collection.fields,\n i18n,\n importMap,\n })\n\n break\n\n case 'hierarchy': {\n if (!collection.hierarchy || typeof collection.hierarchy !== 'object') {\n clientCollection.hierarchy = false\n break\n }\n\n // Strip slugify function as it can't cross server-client boundary\n const { slugify: _slugify, ...clientHierarchy } = collection.hierarchy\n clientCollection.hierarchy = clientHierarchy as ClientHierarchyConfig\n\n break\n }\n\n case 'labels':\n clientCollection.labels = {\n plural:\n typeof collection.labels.plural === 'function'\n ? collection.labels.plural({ i18n, t: i18n.t as TFunction })\n : collection.labels.plural,\n singular:\n typeof collection.labels.singular === 'function'\n ? collection.labels.singular({ i18n, t: i18n.t as TFunction })\n : collection.labels.singular,\n }\n\n break\n\n case 'upload':\n if (!collection.upload) {\n break\n }\n\n clientCollection.upload = {\n uploadInstructions: {\n useInAdmin: collection.upload.uploadInstructions?.useInAdmin ?? false,\n },\n } as ClientUploadConfig\n\n for (const uploadKey in collection.upload) {\n if (serverOnlyUploadProperties.includes(uploadKey as any)) {\n continue\n }\n\n if (uploadKey === 'imageSizes') {\n clientCollection.upload.imageSizes = collection.upload.imageSizes?.map((size) => {\n const sanitizedSize = { ...size }\n if ('generateImageName' in sanitizedSize) {\n delete sanitizedSize.generateImageName\n }\n return sanitizedSize\n })\n } else {\n ;(clientCollection.upload as any)[uploadKey] =\n collection.upload[uploadKey as keyof SanitizedUploadConfig]\n }\n }\n\n break\n\n default:\n ;(clientCollection as any)[key] = collection[key as keyof SanitizedCollectionConfig]\n }\n }\n\n return clientCollection as ClientCollectionConfig\n}\n\nexport const createClientCollectionConfigs = ({\n collections,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collections: SanitizedCollectionConfig[]\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig[] => {\n const clientCollections = new Array(collections.length)\n\n for (let i = 0; i < collections.length; i++) {\n const collection = collections[i]!\n\n clientCollections[i] = createClientCollectionConfig({\n collection,\n defaultIDType,\n i18n,\n importMap,\n })\n }\n\n return clientCollections\n}\n"],"names":["createClientFields","serverOnlyCollectionProperties","serverOnlyUploadProperties","serverOnlyCollectionAdminProperties","createClientCollectionConfig","collection","defaultIDType","i18n","importMap","clientCollection","key","includes","admin","adminKey","description","t","livePreview","breakpoints","preview","auth","cookies","depth","undefined","disableLocalStrategy","lockTime","loginWithUsername","maxLoginAttempts","removeTokenFromResponses","useAPIKey","tokenExpiration","verify","fields","hierarchy","slugify","_slugify","clientHierarchy","labels","plural","singular","upload","uploadInstructions","useInAdmin","uploadKey","imageSizes","map","size","sanitizedSize","generateImageName","createClientCollectionConfigs","collections","clientCollections","Array","length","i"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/collections/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CA8C9C,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,YAAY,gBAAgB,KAAG,gBA0D5E,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,MAAM,gBAAgB,KAAG,gBAqBhE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,wBAIvC,CAAA;AAED,eAAO,MAAM,oCAAoC,GAC/C,mBAAmB,wBAAwB,KAC1C,wBAM6B,CAAA"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/collections/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CA8C9C,CAAA;AAED,eAAO,MAAM,6BAA6B,eAAgB,gBAAgB,KAAG,gBA0D5E,CAAA;AAED,eAAO,MAAM,uBAAuB,SAAU,gBAAgB,KAAG,gBAqBhE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,wBAIvC,CAAA;AAED,eAAO,MAAM,oCAAoC,sBAC5B,wBAAwB,KAC1C,wBAM6B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAG1B,MAAM,YAAY,CAAA;AA0BnB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,YAAY,gBAAgB,KAAG,IAuBvE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,YAAY,gBAAgB;AAC5B;;;GAGG;AACH,+BAA+B,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAChF,sBAAsB,MAAM,EAAE;AAC9B;;GAEG;AACH,iBAAiB,iBAAiB,EAAE,KACnC,OAAO,CAAC,yBAAyB,CA+SnC,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAG1B,MAAM,YAAY,CAAA;AA0BnB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAAgB,gBAAgB,KAAG,IAuBvE,CAAA;AAED,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB;AAC5B;;;GAGG;+BAC4B,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,wBAC1D,MAAM,EAAE;AAC9B;;GAEG;iBACc,iBAAiB,EAAE,KACnC,OAAO,CAAC,yBAAyB,CA+SnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizeCompoundIndexes.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitizeCompoundIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAKvE,eAAO,MAAM,uBAAuB,GAAI,sBAGrC;IACD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB,KAAG,sBAAsB,EA2BzB,CAAA"}
1
+ {"version":3,"file":"sanitizeCompoundIndexes.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitizeCompoundIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAKvE,eAAO,MAAM,uBAAuB,yBAGjC;IACD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB,KAAG,sBAAsB,EA2BzB,CAAA"}
@@ -3,7 +3,7 @@ import type { DeepRequired, IsAny, MarkOptional } from 'ts-essentials';
3
3
  import type { CustomUpload, ViewTypes } from '../../admin/types.js';
4
4
  import type { Arguments as MeArguments } from '../../auth/operations/me.js';
5
5
  import type { Arguments as RefreshArguments, Result as RefreshResult } from '../../auth/operations/refresh.js';
6
- import type { Auth, ClientUser, IncomingAuthType } from '../../auth/types.js';
6
+ import type { Auth, IncomingAuthType } from '../../auth/types.js';
7
7
  import type { Access, AfterErrorHookArgs, AfterErrorResult, CustomComponent, Endpoint, EntityDescription, GeneratePreviewURL, LabelFunction, LivePreviewConfig, MetaConfig, PayloadComponent, SharedAdminComponents, SharedEditViewComponents, SharedEntityViews, StaticLabel } from '../../config/types.js';
8
8
  import type { DBIdentifierName } from '../../database/types.js';
9
9
  import type { Field, FlattenedField, JoinField, RelationshipField, UploadField } from '../../fields/config/types.js';
@@ -371,7 +371,7 @@ export type CollectionAdminOptions = {
371
371
  * Exclude the collection from the admin nav and routes
372
372
  */
373
373
  hidden?: ((args: {
374
- user: ClientUser;
374
+ user: PayloadRequest['user'];
375
375
  }) => boolean) | boolean;
376
376
  /**
377
377
  * Additional fields to be searched via the full text search