payload 3.0.0-beta.55 → 3.0.0-beta.57

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 (422) hide show
  1. package/dist/admin/RichText.d.ts +3 -3
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/admin/views/types.d.ts +2 -2
  5. package/dist/admin/views/types.d.ts.map +1 -1
  6. package/dist/admin/views/types.js.map +1 -1
  7. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  8. package/dist/auth/baseFields/auth.js +0 -14
  9. package/dist/auth/baseFields/auth.js.map +1 -1
  10. package/dist/auth/baseFields/loginField.d.ts +4 -0
  11. package/dist/auth/baseFields/loginField.d.ts.map +1 -0
  12. package/dist/auth/baseFields/loginField.js +35 -0
  13. package/dist/auth/baseFields/loginField.js.map +1 -0
  14. package/dist/auth/defaultAccess.d.ts +2 -2
  15. package/dist/auth/defaultAccess.d.ts.map +1 -1
  16. package/dist/auth/defaultAccess.js.map +1 -1
  17. package/dist/auth/executeAccess.d.ts +2 -2
  18. package/dist/auth/executeAccess.d.ts.map +1 -1
  19. package/dist/auth/executeAccess.js.map +1 -1
  20. package/dist/auth/executeAuthStrategies.d.ts +2 -3
  21. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  22. package/dist/auth/executeAuthStrategies.js +6 -4
  23. package/dist/auth/executeAuthStrategies.js.map +1 -1
  24. package/dist/auth/getAccessResults.d.ts +2 -2
  25. package/dist/auth/getAccessResults.d.ts.map +1 -1
  26. package/dist/auth/getAccessResults.js.map +1 -1
  27. package/dist/auth/getFieldsToSign.d.ts +2 -2
  28. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  29. package/dist/auth/getFieldsToSign.js.map +1 -1
  30. package/dist/auth/operations/access.d.ts +2 -2
  31. package/dist/auth/operations/access.d.ts.map +1 -1
  32. package/dist/auth/operations/access.js.map +1 -1
  33. package/dist/auth/operations/auth.d.ts +3 -2
  34. package/dist/auth/operations/auth.d.ts.map +1 -1
  35. package/dist/auth/operations/auth.js +3 -1
  36. package/dist/auth/operations/auth.js.map +1 -1
  37. package/dist/auth/operations/forgotPassword.d.ts +7 -7
  38. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  39. package/dist/auth/operations/forgotPassword.js +11 -6
  40. package/dist/auth/operations/forgotPassword.js.map +1 -1
  41. package/dist/auth/operations/init.d.ts +2 -2
  42. package/dist/auth/operations/init.d.ts.map +1 -1
  43. package/dist/auth/operations/init.js.map +1 -1
  44. package/dist/auth/operations/local/auth.js.map +1 -1
  45. package/dist/auth/operations/local/forgotPassword.d.ts +2 -2
  46. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  47. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  48. package/dist/auth/operations/local/login.d.ts +4 -7
  49. package/dist/auth/operations/local/login.d.ts.map +1 -1
  50. package/dist/auth/operations/local/login.js.map +1 -1
  51. package/dist/auth/operations/local/resetPassword.d.ts +2 -2
  52. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  53. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  54. package/dist/auth/operations/local/unlock.d.ts +2 -2
  55. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  56. package/dist/auth/operations/local/unlock.js.map +1 -1
  57. package/dist/auth/operations/local/verifyEmail.d.ts +2 -2
  58. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  59. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  60. package/dist/auth/operations/login.d.ts +6 -9
  61. package/dist/auth/operations/login.d.ts.map +1 -1
  62. package/dist/auth/operations/login.js +41 -17
  63. package/dist/auth/operations/login.js.map +1 -1
  64. package/dist/auth/operations/logout.d.ts +2 -2
  65. package/dist/auth/operations/logout.d.ts.map +1 -1
  66. package/dist/auth/operations/logout.js.map +1 -1
  67. package/dist/auth/operations/me.d.ts +3 -3
  68. package/dist/auth/operations/me.d.ts.map +1 -1
  69. package/dist/auth/operations/me.js +25 -10
  70. package/dist/auth/operations/me.js.map +1 -1
  71. package/dist/auth/operations/refresh.d.ts +3 -3
  72. package/dist/auth/operations/refresh.d.ts.map +1 -1
  73. package/dist/auth/operations/refresh.js +35 -18
  74. package/dist/auth/operations/refresh.js.map +1 -1
  75. package/dist/auth/operations/registerFirstUser.d.ts +4 -7
  76. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  77. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  78. package/dist/auth/operations/resetPassword.d.ts +2 -2
  79. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  80. package/dist/auth/operations/resetPassword.js +1 -0
  81. package/dist/auth/operations/resetPassword.js.map +1 -1
  82. package/dist/auth/operations/unlock.d.ts +2 -2
  83. package/dist/auth/operations/unlock.d.ts.map +1 -1
  84. package/dist/auth/operations/unlock.js.map +1 -1
  85. package/dist/auth/operations/verifyEmail.d.ts +2 -2
  86. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  87. package/dist/auth/operations/verifyEmail.js.map +1 -1
  88. package/dist/auth/sendVerificationEmail.d.ts +2 -2
  89. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  90. package/dist/auth/sendVerificationEmail.js.map +1 -1
  91. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  92. package/dist/auth/strategies/apiKey.js +9 -3
  93. package/dist/auth/strategies/apiKey.js.map +1 -1
  94. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  95. package/dist/auth/strategies/jwt.js +9 -3
  96. package/dist/auth/strategies/jwt.js.map +1 -1
  97. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts +3 -1
  98. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  99. package/dist/auth/strategies/local/generatePasswordSaltHash.js +10 -7
  100. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  101. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  102. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  103. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  104. package/dist/auth/strategies/local/register.d.ts +2 -2
  105. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  106. package/dist/auth/strategies/local/register.js +19 -7
  107. package/dist/auth/strategies/local/register.js.map +1 -1
  108. package/dist/auth/strategies/local/resetLoginAttempts.d.ts +2 -2
  109. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  110. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
  111. package/dist/auth/types.d.ts +21 -15
  112. package/dist/auth/types.d.ts.map +1 -1
  113. package/dist/auth/types.js.map +1 -1
  114. package/dist/collections/config/client.d.ts +7 -5
  115. package/dist/collections/config/client.d.ts.map +1 -1
  116. package/dist/collections/config/defaults.d.ts +8 -5
  117. package/dist/collections/config/defaults.d.ts.map +1 -1
  118. package/dist/collections/config/defaults.js +4 -1
  119. package/dist/collections/config/defaults.js.map +1 -1
  120. package/dist/collections/config/sanitize.d.ts.map +1 -1
  121. package/dist/collections/config/sanitize.js +3 -0
  122. package/dist/collections/config/sanitize.js.map +1 -1
  123. package/dist/collections/config/schema.d.ts.map +1 -1
  124. package/dist/collections/config/schema.js +8 -5
  125. package/dist/collections/config/schema.js.map +1 -1
  126. package/dist/collections/config/types.d.ts +50 -20
  127. package/dist/collections/config/types.d.ts.map +1 -1
  128. package/dist/collections/config/types.js.map +1 -1
  129. package/dist/collections/dataloader.d.ts.map +1 -1
  130. package/dist/collections/dataloader.js +1 -1
  131. package/dist/collections/dataloader.js.map +1 -1
  132. package/dist/collections/operations/count.d.ts +2 -2
  133. package/dist/collections/operations/count.d.ts.map +1 -1
  134. package/dist/collections/operations/count.js.map +1 -1
  135. package/dist/collections/operations/create.d.ts +2 -2
  136. package/dist/collections/operations/create.d.ts.map +1 -1
  137. package/dist/collections/operations/create.js.map +1 -1
  138. package/dist/collections/operations/delete.d.ts +2 -2
  139. package/dist/collections/operations/delete.d.ts.map +1 -1
  140. package/dist/collections/operations/delete.js.map +1 -1
  141. package/dist/collections/operations/deleteByID.d.ts +2 -2
  142. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  143. package/dist/collections/operations/deleteByID.js.map +1 -1
  144. package/dist/collections/operations/docAccess.d.ts +2 -2
  145. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  146. package/dist/collections/operations/docAccess.js.map +1 -1
  147. package/dist/collections/operations/duplicate.d.ts +2 -2
  148. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  149. package/dist/collections/operations/duplicate.js.map +1 -1
  150. package/dist/collections/operations/find.d.ts +2 -2
  151. package/dist/collections/operations/find.d.ts.map +1 -1
  152. package/dist/collections/operations/find.js.map +1 -1
  153. package/dist/collections/operations/findByID.d.ts +2 -2
  154. package/dist/collections/operations/findByID.d.ts.map +1 -1
  155. package/dist/collections/operations/findByID.js.map +1 -1
  156. package/dist/collections/operations/findVersionByID.d.ts +2 -2
  157. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  158. package/dist/collections/operations/findVersionByID.js.map +1 -1
  159. package/dist/collections/operations/findVersions.d.ts +2 -2
  160. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  161. package/dist/collections/operations/findVersions.js.map +1 -1
  162. package/dist/collections/operations/local/count.d.ts +2 -2
  163. package/dist/collections/operations/local/count.d.ts.map +1 -1
  164. package/dist/collections/operations/local/count.js.map +1 -1
  165. package/dist/collections/operations/local/create.d.ts +2 -2
  166. package/dist/collections/operations/local/create.d.ts.map +1 -1
  167. package/dist/collections/operations/local/create.js.map +1 -1
  168. package/dist/collections/operations/local/delete.d.ts +2 -2
  169. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  170. package/dist/collections/operations/local/delete.js.map +1 -1
  171. package/dist/collections/operations/local/duplicate.d.ts +2 -2
  172. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  173. package/dist/collections/operations/local/duplicate.js.map +1 -1
  174. package/dist/collections/operations/local/find.d.ts +2 -2
  175. package/dist/collections/operations/local/find.d.ts.map +1 -1
  176. package/dist/collections/operations/local/find.js.map +1 -1
  177. package/dist/collections/operations/local/findByID.d.ts +2 -2
  178. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  179. package/dist/collections/operations/local/findByID.js.map +1 -1
  180. package/dist/collections/operations/local/findVersionByID.d.ts +2 -2
  181. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  182. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  183. package/dist/collections/operations/local/findVersions.d.ts +2 -2
  184. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  185. package/dist/collections/operations/local/findVersions.js.map +1 -1
  186. package/dist/collections/operations/local/restoreVersion.d.ts +2 -2
  187. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  188. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  189. package/dist/collections/operations/local/update.d.ts +2 -2
  190. package/dist/collections/operations/local/update.d.ts.map +1 -1
  191. package/dist/collections/operations/local/update.js.map +1 -1
  192. package/dist/collections/operations/restoreVersion.d.ts +2 -2
  193. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  194. package/dist/collections/operations/restoreVersion.js.map +1 -1
  195. package/dist/collections/operations/update.d.ts +2 -2
  196. package/dist/collections/operations/update.d.ts.map +1 -1
  197. package/dist/collections/operations/update.js.map +1 -1
  198. package/dist/collections/operations/updateByID.d.ts +2 -2
  199. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  200. package/dist/collections/operations/updateByID.js +1 -0
  201. package/dist/collections/operations/updateByID.js.map +1 -1
  202. package/dist/collections/operations/utils.d.ts +2 -2
  203. package/dist/collections/operations/utils.d.ts.map +1 -1
  204. package/dist/collections/operations/utils.js.map +1 -1
  205. package/dist/config/schema.d.ts.map +1 -1
  206. package/dist/config/schema.js +4 -2
  207. package/dist/config/schema.js.map +1 -1
  208. package/dist/config/types.d.ts +14 -4
  209. package/dist/config/types.d.ts.map +1 -1
  210. package/dist/config/types.js.map +1 -1
  211. package/dist/database/migrations/migrate.js.map +1 -1
  212. package/dist/database/migrations/migrateDown.js.map +1 -1
  213. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  214. package/dist/database/migrations/migrateReset.js.map +1 -1
  215. package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -2
  216. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  217. package/dist/database/queryValidation/validateQueryPaths.js +3 -3
  218. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  219. package/dist/database/queryValidation/validateSearchParams.d.ts +2 -2
  220. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  221. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  222. package/dist/database/types.d.ts +20 -20
  223. package/dist/database/types.d.ts.map +1 -1
  224. package/dist/database/types.js.map +1 -1
  225. package/dist/errors/APIError.d.ts.map +1 -1
  226. package/dist/errors/APIError.js +4 -1
  227. package/dist/errors/APIError.js.map +1 -1
  228. package/dist/errors/AuthenticationError.d.ts +1 -1
  229. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  230. package/dist/errors/AuthenticationError.js +2 -2
  231. package/dist/errors/AuthenticationError.js.map +1 -1
  232. package/dist/errors/ValidationError.d.ts +13 -5
  233. package/dist/errors/ValidationError.d.ts.map +1 -1
  234. package/dist/errors/ValidationError.js +3 -3
  235. package/dist/errors/ValidationError.js.map +1 -1
  236. package/dist/fields/config/client.d.ts +84 -2
  237. package/dist/fields/config/client.d.ts.map +1 -1
  238. package/dist/fields/config/client.js +2 -1
  239. package/dist/fields/config/client.js.map +1 -1
  240. package/dist/fields/config/schema.d.ts.map +1 -1
  241. package/dist/fields/config/schema.js +1 -0
  242. package/dist/fields/config/schema.js.map +1 -1
  243. package/dist/fields/config/types.d.ts +19 -7
  244. package/dist/fields/config/types.d.ts.map +1 -1
  245. package/dist/fields/config/types.js.map +1 -1
  246. package/dist/fields/getDefaultValue.d.ts +2 -2
  247. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  248. package/dist/fields/getDefaultValue.js.map +1 -1
  249. package/dist/fields/hooks/afterChange/index.d.ts +2 -2
  250. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  251. package/dist/fields/hooks/afterChange/index.js.map +1 -1
  252. package/dist/fields/hooks/afterChange/promise.d.ts +2 -2
  253. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  254. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  255. package/dist/fields/hooks/afterChange/traverseFields.d.ts +2 -2
  256. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  257. package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
  258. package/dist/fields/hooks/afterRead/index.d.ts +2 -2
  259. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  260. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  261. package/dist/fields/hooks/afterRead/promise.d.ts +2 -2
  262. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  263. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  264. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -2
  265. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  266. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  267. package/dist/fields/hooks/afterRead/traverseFields.d.ts +2 -2
  268. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  269. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  270. package/dist/fields/hooks/beforeChange/index.d.ts +2 -2
  271. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  272. package/dist/fields/hooks/beforeChange/index.js +5 -1
  273. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  274. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -2
  275. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  276. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  277. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -2
  278. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  279. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  280. package/dist/fields/hooks/beforeValidate/index.d.ts +2 -2
  281. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  282. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  283. package/dist/fields/hooks/beforeValidate/promise.d.ts +2 -2
  284. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  285. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  286. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +2 -2
  287. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  288. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  289. package/dist/fields/validations.d.ts +5 -1
  290. package/dist/fields/validations.d.ts.map +1 -1
  291. package/dist/globals/config/types.d.ts +7 -7
  292. package/dist/globals/config/types.d.ts.map +1 -1
  293. package/dist/globals/config/types.js.map +1 -1
  294. package/dist/globals/operations/docAccess.d.ts +2 -2
  295. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  296. package/dist/globals/operations/docAccess.js.map +1 -1
  297. package/dist/globals/operations/findOne.d.ts +2 -2
  298. package/dist/globals/operations/findOne.d.ts.map +1 -1
  299. package/dist/globals/operations/findOne.js.map +1 -1
  300. package/dist/globals/operations/findVersionByID.d.ts +2 -2
  301. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  302. package/dist/globals/operations/findVersionByID.js.map +1 -1
  303. package/dist/globals/operations/findVersions.d.ts +2 -2
  304. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  305. package/dist/globals/operations/findVersions.js.map +1 -1
  306. package/dist/globals/operations/local/findOne.d.ts +2 -2
  307. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  308. package/dist/globals/operations/local/findOne.js.map +1 -1
  309. package/dist/globals/operations/local/findVersionByID.d.ts +2 -2
  310. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  311. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  312. package/dist/globals/operations/local/findVersions.d.ts +2 -2
  313. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  314. package/dist/globals/operations/local/findVersions.js.map +1 -1
  315. package/dist/globals/operations/local/restoreVersion.d.ts +2 -2
  316. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  317. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  318. package/dist/globals/operations/local/update.d.ts +2 -2
  319. package/dist/globals/operations/local/update.d.ts.map +1 -1
  320. package/dist/globals/operations/local/update.js.map +1 -1
  321. package/dist/globals/operations/restoreVersion.d.ts +2 -2
  322. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  323. package/dist/globals/operations/restoreVersion.js.map +1 -1
  324. package/dist/globals/operations/update.d.ts +2 -2
  325. package/dist/globals/operations/update.d.ts.map +1 -1
  326. package/dist/globals/operations/update.js.map +1 -1
  327. package/dist/index.d.ts +21 -1
  328. package/dist/index.d.ts.map +1 -1
  329. package/dist/index.js +2 -0
  330. package/dist/index.js.map +1 -1
  331. package/dist/preferences/deleteUserPreferences.d.ts +2 -2
  332. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  333. package/dist/preferences/deleteUserPreferences.js.map +1 -1
  334. package/dist/preferences/requestHandlers/delete.js.map +1 -1
  335. package/dist/preferences/requestHandlers/findOne.js.map +1 -1
  336. package/dist/preferences/requestHandlers/update.js.map +1 -1
  337. package/dist/preferences/types.d.ts +3 -3
  338. package/dist/preferences/types.d.ts.map +1 -1
  339. package/dist/preferences/types.js.map +1 -1
  340. package/dist/types/index.d.ts +16 -5
  341. package/dist/types/index.d.ts.map +1 -1
  342. package/dist/types/index.js.map +1 -1
  343. package/dist/uploads/deleteAssociatedFiles.d.ts +2 -2
  344. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  345. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  346. package/dist/uploads/docWithFilenameExists.d.ts +2 -2
  347. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  348. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  349. package/dist/uploads/generateFileData.d.ts +2 -2
  350. package/dist/uploads/generateFileData.d.ts.map +1 -1
  351. package/dist/uploads/generateFileData.js.map +1 -1
  352. package/dist/uploads/getExternalFile.d.ts +2 -2
  353. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  354. package/dist/uploads/getExternalFile.js.map +1 -1
  355. package/dist/uploads/getFileByPath.d.ts +2 -2
  356. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  357. package/dist/uploads/getFileByPath.js.map +1 -1
  358. package/dist/uploads/getImageSize.d.ts +2 -2
  359. package/dist/uploads/getImageSize.d.ts.map +1 -1
  360. package/dist/uploads/getImageSize.js.map +1 -1
  361. package/dist/uploads/getSafeFilename.d.ts +2 -2
  362. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  363. package/dist/uploads/getSafeFilename.js.map +1 -1
  364. package/dist/uploads/imageResizer.d.ts +3 -3
  365. package/dist/uploads/imageResizer.d.ts.map +1 -1
  366. package/dist/uploads/imageResizer.js.map +1 -1
  367. package/dist/uploads/types.d.ts +2 -2
  368. package/dist/uploads/types.d.ts.map +1 -1
  369. package/dist/uploads/types.js.map +1 -1
  370. package/dist/uploads/unlinkTempFiles.d.ts +2 -2
  371. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  372. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  373. package/dist/uploads/uploadFiles.d.ts +2 -2
  374. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  375. package/dist/uploads/uploadFiles.js.map +1 -1
  376. package/dist/utilities/commitTransaction.d.ts +2 -2
  377. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  378. package/dist/utilities/commitTransaction.js.map +1 -1
  379. package/dist/utilities/configToJSONSchema.d.ts +1 -0
  380. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  381. package/dist/utilities/configToJSONSchema.js +104 -4
  382. package/dist/utilities/configToJSONSchema.js.map +1 -1
  383. package/dist/utilities/configToJSONSchema.spec.js +58 -0
  384. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  385. package/dist/utilities/createLocalReq.d.ts +3 -3
  386. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  387. package/dist/utilities/createLocalReq.js.map +1 -1
  388. package/dist/utilities/getEntityPolicies.d.ts +2 -2
  389. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  390. package/dist/utilities/getEntityPolicies.js.map +1 -1
  391. package/dist/utilities/initTransaction.d.ts +2 -2
  392. package/dist/utilities/initTransaction.d.ts.map +1 -1
  393. package/dist/utilities/initTransaction.js.map +1 -1
  394. package/dist/utilities/isEntityHidden.d.ts +2 -2
  395. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  396. package/dist/utilities/isEntityHidden.js.map +1 -1
  397. package/dist/utilities/killTransaction.d.ts +2 -2
  398. package/dist/utilities/killTransaction.d.ts.map +1 -1
  399. package/dist/utilities/killTransaction.js.map +1 -1
  400. package/dist/utilities/logger.js.map +1 -1
  401. package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
  402. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  403. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  404. package/dist/versions/deleteCollectionVersions.d.ts +2 -2
  405. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  406. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  407. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +2 -2
  408. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  409. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  410. package/dist/versions/enforceMaxVersions.d.ts +2 -2
  411. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  412. package/dist/versions/enforceMaxVersions.js.map +1 -1
  413. package/dist/versions/getLatestCollectionVersion.d.ts +2 -2
  414. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  415. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  416. package/dist/versions/getLatestGlobalVersion.d.ts +2 -2
  417. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  418. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  419. package/dist/versions/saveVersion.d.ts +2 -2
  420. package/dist/versions/saveVersion.d.ts.map +1 -1
  421. package/dist/versions/saveVersion.js.map +1 -1
  422. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"generatePasswordSaltHash.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/generatePasswordSaltHash.ts"],"names":[],"mappings":"AAyBA,KAAK,IAAI,GAAG;IACV,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,wBAAwB,kBAElC,IAAI,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAc/C,CAAA"}
1
+ {"version":3,"file":"generatePasswordSaltHash.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/generatePasswordSaltHash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAyBrF,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,wBAAwB,8BAGlC,IAAI,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiB/C,CAAA"}
@@ -11,15 +11,18 @@ function randomBytes() {
11
11
  function pbkdf2Promisified(password, salt) {
12
12
  return new Promise((resolve, reject)=>crypto.pbkdf2(password, salt, 25000, 512, 'sha256', (err, hashRaw)=>err ? reject(err) : resolve(hashRaw)));
13
13
  }
14
- export const generatePasswordSaltHash = async ({ password })=>{
14
+ export const generatePasswordSaltHash = async ({ collection, password })=>{
15
15
  const validationResult = defaultPasswordValidator(password);
16
16
  if (typeof validationResult === 'string') {
17
- throw new ValidationError([
18
- {
19
- field: 'password',
20
- message: validationResult
21
- }
22
- ]);
17
+ throw new ValidationError({
18
+ collection: collection?.slug,
19
+ errors: [
20
+ {
21
+ field: 'password',
22
+ message: validationResult
23
+ }
24
+ ]
25
+ });
23
26
  }
24
27
  const saltBuffer = await randomBytes();
25
28
  const salt = saltBuffer.toString('hex');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/auth/strategies/local/generatePasswordSaltHash.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport { ValidationError } from '../../../errors/index.js'\n\nconst defaultPasswordValidator = (password: string): string | true => {\n if (!password) return 'No password was given'\n if (password.length < 3) return 'Password must be at least 3 characters'\n\n return true\n}\n\nfunction randomBytes(): Promise<Buffer> {\n return new Promise((resolve, reject) =>\n crypto.randomBytes(32, (err, saltBuffer) => (err ? reject(err) : resolve(saltBuffer))),\n )\n}\n\nfunction pbkdf2Promisified(password: string, salt: string): Promise<Buffer> {\n return new Promise((resolve, reject) =>\n crypto.pbkdf2(password, salt, 25000, 512, 'sha256', (err, hashRaw) =>\n err ? reject(err) : resolve(hashRaw),\n ),\n )\n}\n\ntype Args = {\n password: string\n}\n\nexport const generatePasswordSaltHash = async ({\n password,\n}: Args): Promise<{ hash: string; salt: string }> => {\n const validationResult = defaultPasswordValidator(password)\n\n if (typeof validationResult === 'string') {\n throw new ValidationError([{ field: 'password', message: validationResult }])\n }\n\n const saltBuffer = await randomBytes()\n const salt = saltBuffer.toString('hex')\n\n const hashRaw = await pbkdf2Promisified(password, salt)\n const hash = hashRaw.toString('hex')\n\n return { hash, salt }\n}\n"],"names":["crypto","ValidationError","defaultPasswordValidator","password","length","randomBytes","Promise","resolve","reject","err","saltBuffer","pbkdf2Promisified","salt","pbkdf2","hashRaw","generatePasswordSaltHash","validationResult","field","message","toString","hash"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAE3B,SAASC,eAAe,QAAQ,2BAA0B;AAE1D,MAAMC,2BAA2B,CAACC;IAChC,IAAI,CAACA,UAAU,OAAO;IACtB,IAAIA,SAASC,MAAM,GAAG,GAAG,OAAO;IAEhC,OAAO;AACT;AAEA,SAASC;IACP,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAC3BR,OAAOK,WAAW,CAAC,IAAI,CAACI,KAAKC,aAAgBD,MAAMD,OAAOC,OAAOF,QAAQG;AAE7E;AAEA,SAASC,kBAAkBR,QAAgB,EAAES,IAAY;IACvD,OAAO,IAAIN,QAAQ,CAACC,SAASC,SAC3BR,OAAOa,MAAM,CAACV,UAAUS,MAAM,OAAO,KAAK,UAAU,CAACH,KAAKK,UACxDL,MAAMD,OAAOC,OAAOF,QAAQO;AAGlC;AAMA,OAAO,MAAMC,2BAA2B,OAAO,EAC7CZ,QAAQ,EACH;IACL,MAAMa,mBAAmBd,yBAAyBC;IAElD,IAAI,OAAOa,qBAAqB,UAAU;QACxC,MAAM,IAAIf,gBAAgB;YAAC;gBAAEgB,OAAO;gBAAYC,SAASF;YAAiB;SAAE;IAC9E;IAEA,MAAMN,aAAa,MAAML;IACzB,MAAMO,OAAOF,WAAWS,QAAQ,CAAC;IAEjC,MAAML,UAAU,MAAMH,kBAAkBR,UAAUS;IAClD,MAAMQ,OAAON,QAAQK,QAAQ,CAAC;IAE9B,OAAO;QAAEC;QAAMR;IAAK;AACtB,EAAC"}
1
+ {"version":3,"sources":["../../../../src/auth/strategies/local/generatePasswordSaltHash.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\n\nimport { ValidationError } from '../../../errors/index.js'\n\nconst defaultPasswordValidator = (password: string): string | true => {\n if (!password) return 'No password was given'\n if (password.length < 3) return 'Password must be at least 3 characters'\n\n return true\n}\n\nfunction randomBytes(): Promise<Buffer> {\n return new Promise((resolve, reject) =>\n crypto.randomBytes(32, (err, saltBuffer) => (err ? reject(err) : resolve(saltBuffer))),\n )\n}\n\nfunction pbkdf2Promisified(password: string, salt: string): Promise<Buffer> {\n return new Promise((resolve, reject) =>\n crypto.pbkdf2(password, salt, 25000, 512, 'sha256', (err, hashRaw) =>\n err ? reject(err) : resolve(hashRaw),\n ),\n )\n}\n\ntype Args = {\n collection: SanitizedCollectionConfig\n password: string\n}\n\nexport const generatePasswordSaltHash = async ({\n collection,\n password,\n}: Args): Promise<{ hash: string; salt: string }> => {\n const validationResult = defaultPasswordValidator(password)\n\n if (typeof validationResult === 'string') {\n throw new ValidationError({\n collection: collection?.slug,\n errors: [{ field: 'password', message: validationResult }],\n })\n }\n\n const saltBuffer = await randomBytes()\n const salt = saltBuffer.toString('hex')\n\n const hashRaw = await pbkdf2Promisified(password, salt)\n const hash = hashRaw.toString('hex')\n\n return { hash, salt }\n}\n"],"names":["crypto","ValidationError","defaultPasswordValidator","password","length","randomBytes","Promise","resolve","reject","err","saltBuffer","pbkdf2Promisified","salt","pbkdf2","hashRaw","generatePasswordSaltHash","collection","validationResult","slug","errors","field","message","toString","hash"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAI3B,SAASC,eAAe,QAAQ,2BAA0B;AAE1D,MAAMC,2BAA2B,CAACC;IAChC,IAAI,CAACA,UAAU,OAAO;IACtB,IAAIA,SAASC,MAAM,GAAG,GAAG,OAAO;IAEhC,OAAO;AACT;AAEA,SAASC;IACP,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAC3BR,OAAOK,WAAW,CAAC,IAAI,CAACI,KAAKC,aAAgBD,MAAMD,OAAOC,OAAOF,QAAQG;AAE7E;AAEA,SAASC,kBAAkBR,QAAgB,EAAES,IAAY;IACvD,OAAO,IAAIN,QAAQ,CAACC,SAASC,SAC3BR,OAAOa,MAAM,CAACV,UAAUS,MAAM,OAAO,KAAK,UAAU,CAACH,KAAKK,UACxDL,MAAMD,OAAOC,OAAOF,QAAQO;AAGlC;AAOA,OAAO,MAAMC,2BAA2B,OAAO,EAC7CC,UAAU,EACVb,QAAQ,EACH;IACL,MAAMc,mBAAmBf,yBAAyBC;IAElD,IAAI,OAAOc,qBAAqB,UAAU;QACxC,MAAM,IAAIhB,gBAAgB;YACxBe,YAAYA,YAAYE;YACxBC,QAAQ;gBAAC;oBAAEC,OAAO;oBAAYC,SAASJ;gBAAiB;aAAE;QAC5D;IACF;IAEA,MAAMP,aAAa,MAAML;IACzB,MAAMO,OAAOF,WAAWY,QAAQ,CAAC;IAEjC,MAAMR,UAAU,MAAMH,kBAAkBR,UAAUS;IAClD,MAAMW,OAAOT,QAAQQ,QAAQ,CAAC;IAE9B,OAAO;QAAEC;QAAMX;IAAK;AACtB,EAAC"}
@@ -1,11 +1,11 @@
1
1
  import type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js';
2
2
  import type { Payload } from '../../../index.js';
3
- import type { PayloadRequestWithData } from '../../../types/index.js';
3
+ import type { PayloadRequest } from '../../../types/index.js';
4
4
  type Args = {
5
5
  collection: SanitizedCollectionConfig;
6
6
  doc: TypeWithID & Record<string, unknown>;
7
7
  payload: Payload;
8
- req: PayloadRequestWithData;
8
+ req: PayloadRequest;
9
9
  };
10
10
  export declare const incrementLoginAttempts: ({ collection, doc, payload, req, }: Args) => Promise<void>;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"incrementLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAErE,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,sBAAsB,uCAKhC,IAAI,KAAG,OAAO,CAAC,IAAI,CA0CrB,CAAA"}
1
+ {"version":3,"file":"incrementLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,sBAAsB,uCAKhC,IAAI,KAAG,OAAO,CAAC,IAAI,CA0CrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js'\nimport type { Payload } from '../../../index.js'\nimport type { PayloadRequestWithData } from '../../../types/index.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n doc: TypeWithID & Record<string, unknown>\n payload: Payload\n req: PayloadRequestWithData\n}\n\nexport const incrementLoginAttempts = async ({\n collection,\n doc,\n payload,\n req,\n}: Args): Promise<void> => {\n const {\n auth: { lockTime, maxLoginAttempts },\n } = collection\n\n if ('lockUntil' in doc && typeof doc.lockUntil === 'string') {\n const lockUntil = new Date(doc.lockUntil).getTime()\n\n // Expired lock, restart count at 1\n if (lockUntil < Date.now()) {\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data: {\n lockUntil: null,\n loginAttempts: 1,\n },\n depth: 0,\n req,\n })\n }\n\n return\n }\n\n const data: Record<string, unknown> = {\n loginAttempts: Number(doc.loginAttempts) + 1,\n }\n\n // Lock the account if at max attempts and not already locked\n if (typeof doc.loginAttempts === 'number' && doc.loginAttempts + 1 >= maxLoginAttempts) {\n const lockUntil = new Date(Date.now() + lockTime)\n data.lockUntil = lockUntil\n }\n\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data,\n depth: 0,\n req,\n })\n}\n"],"names":["incrementLoginAttempts","collection","doc","payload","req","auth","lockTime","maxLoginAttempts","lockUntil","Date","getTime","now","update","id","slug","data","loginAttempts","depth","Number"],"mappings":"AAWA,OAAO,MAAMA,yBAAyB,OAAO,EAC3CC,UAAU,EACVC,GAAG,EACHC,OAAO,EACPC,GAAG,EACE;IACL,MAAM,EACJC,MAAM,EAAEC,QAAQ,EAAEC,gBAAgB,EAAE,EACrC,GAAGN;IAEJ,IAAI,eAAeC,OAAO,OAAOA,IAAIM,SAAS,KAAK,UAAU;QAC3D,MAAMA,YAAY,IAAIC,KAAKP,IAAIM,SAAS,EAAEE,OAAO;QAEjD,mCAAmC;QACnC,IAAIF,YAAYC,KAAKE,GAAG,IAAI;YAC1B,MAAMR,QAAQS,MAAM,CAAC;gBACnBC,IAAIX,IAAIW,EAAE;gBACVZ,YAAYA,WAAWa,IAAI;gBAC3BC,MAAM;oBACJP,WAAW;oBACXQ,eAAe;gBACjB;gBACAC,OAAO;gBACPb;YACF;QACF;QAEA;IACF;IAEA,MAAMW,OAAgC;QACpCC,eAAeE,OAAOhB,IAAIc,aAAa,IAAI;IAC7C;IAEA,6DAA6D;IAC7D,IAAI,OAAOd,IAAIc,aAAa,KAAK,YAAYd,IAAIc,aAAa,GAAG,KAAKT,kBAAkB;QACtF,MAAMC,YAAY,IAAIC,KAAKA,KAAKE,GAAG,KAAKL;QACxCS,KAAKP,SAAS,GAAGA;IACnB;IAEA,MAAML,QAAQS,MAAM,CAAC;QACnBC,IAAIX,IAAIW,EAAE;QACVZ,YAAYA,WAAWa,IAAI;QAC3BC;QACAE,OAAO;QACPb;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/auth/strategies/local/incrementLoginAttempts.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js'\nimport type { Payload } from '../../../index.js'\nimport type { PayloadRequest } from '../../../types/index.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n doc: TypeWithID & Record<string, unknown>\n payload: Payload\n req: PayloadRequest\n}\n\nexport const incrementLoginAttempts = async ({\n collection,\n doc,\n payload,\n req,\n}: Args): Promise<void> => {\n const {\n auth: { lockTime, maxLoginAttempts },\n } = collection\n\n if ('lockUntil' in doc && typeof doc.lockUntil === 'string') {\n const lockUntil = new Date(doc.lockUntil).getTime()\n\n // Expired lock, restart count at 1\n if (lockUntil < Date.now()) {\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data: {\n lockUntil: null,\n loginAttempts: 1,\n },\n depth: 0,\n req,\n })\n }\n\n return\n }\n\n const data: Record<string, unknown> = {\n loginAttempts: Number(doc.loginAttempts) + 1,\n }\n\n // Lock the account if at max attempts and not already locked\n if (typeof doc.loginAttempts === 'number' && doc.loginAttempts + 1 >= maxLoginAttempts) {\n const lockUntil = new Date(Date.now() + lockTime)\n data.lockUntil = lockUntil\n }\n\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data,\n depth: 0,\n req,\n })\n}\n"],"names":["incrementLoginAttempts","collection","doc","payload","req","auth","lockTime","maxLoginAttempts","lockUntil","Date","getTime","now","update","id","slug","data","loginAttempts","depth","Number"],"mappings":"AAWA,OAAO,MAAMA,yBAAyB,OAAO,EAC3CC,UAAU,EACVC,GAAG,EACHC,OAAO,EACPC,GAAG,EACE;IACL,MAAM,EACJC,MAAM,EAAEC,QAAQ,EAAEC,gBAAgB,EAAE,EACrC,GAAGN;IAEJ,IAAI,eAAeC,OAAO,OAAOA,IAAIM,SAAS,KAAK,UAAU;QAC3D,MAAMA,YAAY,IAAIC,KAAKP,IAAIM,SAAS,EAAEE,OAAO;QAEjD,mCAAmC;QACnC,IAAIF,YAAYC,KAAKE,GAAG,IAAI;YAC1B,MAAMR,QAAQS,MAAM,CAAC;gBACnBC,IAAIX,IAAIW,EAAE;gBACVZ,YAAYA,WAAWa,IAAI;gBAC3BC,MAAM;oBACJP,WAAW;oBACXQ,eAAe;gBACjB;gBACAC,OAAO;gBACPb;YACF;QACF;QAEA;IACF;IAEA,MAAMW,OAAgC;QACpCC,eAAeE,OAAOhB,IAAIc,aAAa,IAAI;IAC7C;IAEA,6DAA6D;IAC7D,IAAI,OAAOd,IAAIc,aAAa,KAAK,YAAYd,IAAIc,aAAa,GAAG,KAAKT,kBAAkB;QACtF,MAAMC,YAAY,IAAIC,KAAKA,KAAKE,GAAG,KAAKL;QACxCS,KAAKP,SAAS,GAAGA;IACnB;IAEA,MAAML,QAAQS,MAAM,CAAC;QACnBC,IAAIX,IAAIW,EAAE;QACVZ,YAAYA,WAAWa,IAAI;QAC3BC;QACAE,OAAO;QACPb;IACF;AACF,EAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { SanitizedCollectionConfig } from '../../../collections/config/types.js';
2
2
  import type { Payload } from '../../../index.js';
3
- import type { PayloadRequestWithData } from '../../../types/index.js';
3
+ import type { PayloadRequest } from '../../../types/index.js';
4
4
  type Args = {
5
5
  collection: SanitizedCollectionConfig;
6
6
  doc: Record<string, unknown>;
7
7
  password: string;
8
8
  payload: Payload;
9
- req: PayloadRequestWithData;
9
+ req: PayloadRequest;
10
10
  };
11
11
  export declare const registerLocalStrategy: ({ collection, doc, password, payload, req, }: Args) => Promise<Record<string, unknown>>;
12
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAKrE,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,qBAAqB,iDAM/B,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkCxC,CAAA"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAK7D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,iDAM/B,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkDxC,CAAA"}
@@ -1,27 +1,39 @@
1
1
  import { ValidationError } from '../../../errors/index.js';
2
2
  import { generatePasswordSaltHash } from './generatePasswordSaltHash.js';
3
3
  export const registerLocalStrategy = async ({ collection, doc, password, payload, req })=>{
4
+ const loginWithUsername = collection?.auth?.loginWithUsername;
4
5
  const existingUser = await payload.find({
5
6
  collection: collection.slug,
6
7
  depth: 0,
7
8
  limit: 1,
8
9
  pagination: false,
9
10
  req,
10
- where: {
11
+ where: loginWithUsername ? {
12
+ username: {
13
+ equals: doc.username
14
+ }
15
+ } : {
11
16
  email: {
12
17
  equals: doc.email
13
18
  }
14
19
  }
15
20
  });
16
21
  if (existingUser.docs.length > 0) {
17
- throw new ValidationError([
18
- {
19
- field: 'email',
20
- message: req.t('error:userEmailAlreadyRegistered')
21
- }
22
- ]);
22
+ throw new ValidationError({
23
+ collection: collection.slug,
24
+ errors: [
25
+ loginWithUsername ? {
26
+ field: 'username',
27
+ message: req.t('error:usernameAlreadyRegistered')
28
+ } : {
29
+ field: 'email',
30
+ message: req.t('error:userEmailAlreadyRegistered')
31
+ }
32
+ ]
33
+ });
23
34
  }
24
35
  const { hash, salt } = await generatePasswordSaltHash({
36
+ collection,
25
37
  password
26
38
  });
27
39
  const sanitizedDoc = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/auth/strategies/local/register.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { Payload } from '../../../index.js'\nimport type { PayloadRequestWithData } from '../../../types/index.js'\n\nimport { ValidationError } from '../../../errors/index.js'\nimport { generatePasswordSaltHash } from './generatePasswordSaltHash.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n doc: Record<string, unknown>\n password: string\n payload: Payload\n req: PayloadRequestWithData\n}\n\nexport const registerLocalStrategy = async ({\n collection,\n doc,\n password,\n payload,\n req,\n}: Args): Promise<Record<string, unknown>> => {\n const existingUser = await payload.find({\n collection: collection.slug,\n depth: 0,\n limit: 1,\n pagination: false,\n req,\n where: {\n email: {\n equals: doc.email,\n },\n },\n })\n\n if (existingUser.docs.length > 0) {\n throw new ValidationError([\n { field: 'email', message: req.t('error:userEmailAlreadyRegistered') },\n ])\n }\n\n const { hash, salt } = await generatePasswordSaltHash({ password })\n\n const sanitizedDoc = { ...doc }\n if (sanitizedDoc.password) delete sanitizedDoc.password\n\n return payload.db.create({\n collection: collection.slug,\n data: {\n ...sanitizedDoc,\n hash,\n salt,\n },\n req,\n })\n}\n"],"names":["ValidationError","generatePasswordSaltHash","registerLocalStrategy","collection","doc","password","payload","req","existingUser","find","slug","depth","limit","pagination","where","email","equals","docs","length","field","message","t","hash","salt","sanitizedDoc","db","create","data"],"mappings":"AAIA,SAASA,eAAe,QAAQ,2BAA0B;AAC1D,SAASC,wBAAwB,QAAQ,gCAA+B;AAUxE,OAAO,MAAMC,wBAAwB,OAAO,EAC1CC,UAAU,EACVC,GAAG,EACHC,QAAQ,EACRC,OAAO,EACPC,GAAG,EACE;IACL,MAAMC,eAAe,MAAMF,QAAQG,IAAI,CAAC;QACtCN,YAAYA,WAAWO,IAAI;QAC3BC,OAAO;QACPC,OAAO;QACPC,YAAY;QACZN;QACAO,OAAO;YACLC,OAAO;gBACLC,QAAQZ,IAAIW,KAAK;YACnB;QACF;IACF;IAEA,IAAIP,aAAaS,IAAI,CAACC,MAAM,GAAG,GAAG;QAChC,MAAM,IAAIlB,gBAAgB;YACxB;gBAAEmB,OAAO;gBAASC,SAASb,IAAIc,CAAC,CAAC;YAAoC;SACtE;IACH;IAEA,MAAM,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAG,MAAMtB,yBAAyB;QAAEI;IAAS;IAEjE,MAAMmB,eAAe;QAAE,GAAGpB,GAAG;IAAC;IAC9B,IAAIoB,aAAanB,QAAQ,EAAE,OAAOmB,aAAanB,QAAQ;IAEvD,OAAOC,QAAQmB,EAAE,CAACC,MAAM,CAAC;QACvBvB,YAAYA,WAAWO,IAAI;QAC3BiB,MAAM;YACJ,GAAGH,YAAY;YACfF;YACAC;QACF;QACAhB;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/auth/strategies/local/register.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { Payload } from '../../../index.js'\nimport type { PayloadRequest } from '../../../types/index.js'\n\nimport { ValidationError } from '../../../errors/index.js'\nimport { generatePasswordSaltHash } from './generatePasswordSaltHash.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n doc: Record<string, unknown>\n password: string\n payload: Payload\n req: PayloadRequest\n}\n\nexport const registerLocalStrategy = async ({\n collection,\n doc,\n password,\n payload,\n req,\n}: Args): Promise<Record<string, unknown>> => {\n const loginWithUsername = collection?.auth?.loginWithUsername\n\n const existingUser = await payload.find({\n collection: collection.slug,\n depth: 0,\n limit: 1,\n pagination: false,\n req,\n where: loginWithUsername\n ? {\n username: {\n equals: doc.username,\n },\n }\n : {\n email: {\n equals: doc.email,\n },\n },\n })\n\n if (existingUser.docs.length > 0) {\n throw new ValidationError({\n collection: collection.slug,\n errors: [\n loginWithUsername\n ? {\n field: 'username',\n message: req.t('error:usernameAlreadyRegistered'),\n }\n : { field: 'email', message: req.t('error:userEmailAlreadyRegistered') },\n ],\n })\n }\n\n const { hash, salt } = await generatePasswordSaltHash({ collection, password })\n\n const sanitizedDoc = { ...doc }\n if (sanitizedDoc.password) delete sanitizedDoc.password\n\n return payload.db.create({\n collection: collection.slug,\n data: {\n ...sanitizedDoc,\n hash,\n salt,\n },\n req,\n })\n}\n"],"names":["ValidationError","generatePasswordSaltHash","registerLocalStrategy","collection","doc","password","payload","req","loginWithUsername","auth","existingUser","find","slug","depth","limit","pagination","where","username","equals","email","docs","length","errors","field","message","t","hash","salt","sanitizedDoc","db","create","data"],"mappings":"AAIA,SAASA,eAAe,QAAQ,2BAA0B;AAC1D,SAASC,wBAAwB,QAAQ,gCAA+B;AAUxE,OAAO,MAAMC,wBAAwB,OAAO,EAC1CC,UAAU,EACVC,GAAG,EACHC,QAAQ,EACRC,OAAO,EACPC,GAAG,EACE;IACL,MAAMC,oBAAoBL,YAAYM,MAAMD;IAE5C,MAAME,eAAe,MAAMJ,QAAQK,IAAI,CAAC;QACtCR,YAAYA,WAAWS,IAAI;QAC3BC,OAAO;QACPC,OAAO;QACPC,YAAY;QACZR;QACAS,OAAOR,oBACH;YACES,UAAU;gBACRC,QAAQd,IAAIa,QAAQ;YACtB;QACF,IACA;YACEE,OAAO;gBACLD,QAAQd,IAAIe,KAAK;YACnB;QACF;IACN;IAEA,IAAIT,aAAaU,IAAI,CAACC,MAAM,GAAG,GAAG;QAChC,MAAM,IAAIrB,gBAAgB;YACxBG,YAAYA,WAAWS,IAAI;YAC3BU,QAAQ;gBACNd,oBACI;oBACEe,OAAO;oBACPC,SAASjB,IAAIkB,CAAC,CAAC;gBACjB,IACA;oBAAEF,OAAO;oBAASC,SAASjB,IAAIkB,CAAC,CAAC;gBAAoC;aAC1E;QACH;IACF;IAEA,MAAM,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAG,MAAM1B,yBAAyB;QAAEE;QAAYE;IAAS;IAE7E,MAAMuB,eAAe;QAAE,GAAGxB,GAAG;IAAC;IAC9B,IAAIwB,aAAavB,QAAQ,EAAE,OAAOuB,aAAavB,QAAQ;IAEvD,OAAOC,QAAQuB,EAAE,CAACC,MAAM,CAAC;QACvB3B,YAAYA,WAAWS,IAAI;QAC3BmB,MAAM;YACJ,GAAGH,YAAY;YACfF;YACAC;QACF;QACApB;IACF;AACF,EAAC"}
@@ -1,11 +1,11 @@
1
1
  import type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js';
2
2
  import type { Payload } from '../../../index.js';
3
- import type { PayloadRequestWithData } from '../../../types/index.js';
3
+ import type { PayloadRequest } from '../../../types/index.js';
4
4
  type Args = {
5
5
  collection: SanitizedCollectionConfig;
6
6
  doc: TypeWithID & Record<string, unknown>;
7
7
  payload: Payload;
8
- req: PayloadRequestWithData;
8
+ req: PayloadRequest;
9
9
  };
10
10
  export declare const resetLoginAttempts: ({ collection, doc, payload, req, }: Args) => Promise<void>;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"resetLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/resetLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAErE,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,kBAAkB,uCAK5B,IAAI,KAAG,OAAO,CAAC,IAAI,CAarB,CAAA"}
1
+ {"version":3,"file":"resetLoginAttempts.d.ts","sourceRoot":"","sources":["../../../../src/auth/strategies/local/resetLoginAttempts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,kBAAkB,uCAK5B,IAAI,KAAG,OAAO,CAAC,IAAI,CAarB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/auth/strategies/local/resetLoginAttempts.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js'\nimport type { Payload } from '../../../index.js'\nimport type { PayloadRequestWithData } from '../../../types/index.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n doc: TypeWithID & Record<string, unknown>\n payload: Payload\n req: PayloadRequestWithData\n}\n\nexport const resetLoginAttempts = async ({\n collection,\n doc,\n payload,\n req,\n}: Args): Promise<void> => {\n if (!('lockUntil' in doc && typeof doc.lockUntil === 'string') || doc.loginAttempts === 0) return\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data: {\n lockUntil: null,\n loginAttempts: 0,\n },\n depth: 0,\n overrideAccess: true,\n req,\n })\n}\n"],"names":["resetLoginAttempts","collection","doc","payload","req","lockUntil","loginAttempts","update","id","slug","data","depth","overrideAccess"],"mappings":"AAWA,OAAO,MAAMA,qBAAqB,OAAO,EACvCC,UAAU,EACVC,GAAG,EACHC,OAAO,EACPC,GAAG,EACE;IACL,IAAI,CAAE,CAAA,eAAeF,OAAO,OAAOA,IAAIG,SAAS,KAAK,QAAO,KAAMH,IAAII,aAAa,KAAK,GAAG;IAC3F,MAAMH,QAAQI,MAAM,CAAC;QACnBC,IAAIN,IAAIM,EAAE;QACVP,YAAYA,WAAWQ,IAAI;QAC3BC,MAAM;YACJL,WAAW;YACXC,eAAe;QACjB;QACAK,OAAO;QACPC,gBAAgB;QAChBR;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/auth/strategies/local/resetLoginAttempts.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js'\nimport type { Payload } from '../../../index.js'\nimport type { PayloadRequest } from '../../../types/index.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig\n doc: TypeWithID & Record<string, unknown>\n payload: Payload\n req: PayloadRequest\n}\n\nexport const resetLoginAttempts = async ({\n collection,\n doc,\n payload,\n req,\n}: Args): Promise<void> => {\n if (!('lockUntil' in doc && typeof doc.lockUntil === 'string') || doc.loginAttempts === 0) return\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data: {\n lockUntil: null,\n loginAttempts: 0,\n },\n depth: 0,\n overrideAccess: true,\n req,\n })\n}\n"],"names":["resetLoginAttempts","collection","doc","payload","req","lockUntil","loginAttempts","update","id","slug","data","depth","overrideAccess"],"mappings":"AAWA,OAAO,MAAMA,qBAAqB,OAAO,EACvCC,UAAU,EACVC,GAAG,EACHC,OAAO,EACPC,GAAG,EACE;IACL,IAAI,CAAE,CAAA,eAAeF,OAAO,OAAOA,IAAIG,SAAS,KAAK,QAAO,KAAMH,IAAII,aAAa,KAAK,GAAG;IAC3F,MAAMH,QAAQI,MAAM,CAAC;QACnBC,IAAIN,IAAIM,EAAE;QACVP,YAAYA,WAAWQ,IAAI;QAC3BC,MAAM;YACJL,WAAW;YACXC,eAAe;QACjB;QACAK,OAAO;QACPC,gBAAgB;QAChBR;IACF;AACF,EAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { DeepRequired } from 'ts-essentials';
2
2
  import type { Payload } from '../index.js';
3
- import type { PayloadRequestWithData, Where } from '../types/index.js';
3
+ import type { PayloadRequest, Where } from '../types/index.js';
4
4
  export type Permission = {
5
5
  permission: boolean;
6
6
  where?: Record<string, unknown>;
@@ -57,40 +57,45 @@ export type Permissions = {
57
57
  export type User = {
58
58
  [key: string]: any;
59
59
  collection: string;
60
- email: string;
60
+ email?: string;
61
61
  id: number | string;
62
+ username?: string;
62
63
  };
63
64
  /**
64
65
  * `collection` is not available one the client. It's only available on the server (req.user)
65
66
  * On the client, you can access the collection via config.admin.user. Config can be accessed using the useConfig() hook
66
67
  */
67
68
  export type ClientUser = Omit<User, 'collection'>;
68
- type GenerateVerifyEmailHTML = (args: {
69
- req: PayloadRequestWithData;
69
+ type GenerateVerifyEmailHTML<TUser = any> = (args: {
70
+ req: PayloadRequest;
70
71
  token: string;
71
- user: any;
72
+ user: TUser;
72
73
  }) => Promise<string> | string;
73
- type GenerateVerifyEmailSubject = (args: {
74
- req: PayloadRequestWithData;
74
+ type GenerateVerifyEmailSubject<TUser = any> = (args: {
75
+ req: PayloadRequest;
75
76
  token: string;
76
- user: any;
77
+ user: TUser;
77
78
  }) => Promise<string> | string;
78
- type GenerateForgotPasswordEmailHTML = (args?: {
79
- req?: PayloadRequestWithData;
79
+ type GenerateForgotPasswordEmailHTML<TUser = any> = (args?: {
80
+ req?: PayloadRequest;
80
81
  token?: string;
81
- user?: unknown;
82
+ user?: TUser;
82
83
  }) => Promise<string> | string;
83
- type GenerateForgotPasswordEmailSubject = (args?: {
84
- req?: PayloadRequestWithData;
84
+ type GenerateForgotPasswordEmailSubject<TUser = any> = (args?: {
85
+ req?: PayloadRequest;
85
86
  token?: string;
86
- user?: any;
87
+ user?: TUser;
87
88
  }) => Promise<string> | string;
88
89
  export type AuthStrategyFunctionArgs = {
89
90
  headers: Request['headers'];
90
91
  isGraphQL?: boolean;
91
92
  payload: Payload;
92
93
  };
93
- export type AuthStrategyFunction = (args: AuthStrategyFunctionArgs) => Promise<User | null> | User | null;
94
+ export type AuthStrategyResult = {
95
+ responseHeaders?: Headers;
96
+ user: User | null;
97
+ };
98
+ export type AuthStrategyFunction = (args: AuthStrategyFunctionArgs) => AuthStrategyResult | Promise<AuthStrategyResult>;
94
99
  export type AuthStrategy = {
95
100
  authenticate: AuthStrategyFunction;
96
101
  name: string;
@@ -108,6 +113,7 @@ export interface IncomingAuthType {
108
113
  generateEmailSubject?: GenerateForgotPasswordEmailSubject;
109
114
  };
110
115
  lockTime?: number;
116
+ loginWithUsername?: boolean;
111
117
  maxLoginAttempts?: number;
112
118
  removeTokenFromResponses?: true;
113
119
  strategies?: AuthStrategy[];
@@ -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 { Payload } from '../index.js'\nimport type { PayloadRequestWithData, Where } from '../types/index.js'\n\nexport type Permission = {\n permission: boolean\n where?: Record<string, unknown>\n}\n\nexport type FieldPermissions = {\n blocks?: {\n [blockSlug: string]: {\n fields: {\n [fieldName: string]: FieldPermissions\n }\n }\n }\n create: {\n permission: boolean\n }\n fields?: {\n [fieldName: string]: FieldPermissions\n }\n read: {\n permission: boolean\n }\n update: {\n permission: boolean\n }\n}\n\nexport type CollectionPermission = {\n create: Permission\n delete: Permission\n fields: {\n [fieldName: string]: FieldPermissions\n }\n read: Permission\n readVersions?: Permission\n update: Permission\n}\n\nexport type GlobalPermission = {\n fields: {\n [fieldName: string]: FieldPermissions\n }\n read: Permission\n readVersions?: Permission\n update: Permission\n}\n\nexport type DocumentPermissions = CollectionPermission | GlobalPermission\nexport type Permissions = {\n canAccessAdmin: boolean\n collections: {\n [collectionSlug: string]: CollectionPermission\n }\n globals?: {\n [globalSlug: string]: GlobalPermission\n }\n}\n\nexport type User = {\n [key: string]: any // This NEEDS to be an any, otherwise it breaks the Omit for ClientUser below\n collection: string\n email: string\n id: number | string\n}\n\n/**\n * `collection` is not available one the client. It's only available on the server (req.user)\n * On the client, you can access the collection via config.admin.user. Config can be accessed using the useConfig() hook\n */\nexport type ClientUser = Omit<User, 'collection'>\n\ntype GenerateVerifyEmailHTML = (args: {\n req: PayloadRequestWithData\n token: string\n user: any\n}) => Promise<string> | string\ntype GenerateVerifyEmailSubject = (args: {\n req: PayloadRequestWithData\n token: string\n user: any\n}) => Promise<string> | string\n\ntype GenerateForgotPasswordEmailHTML = (args?: {\n req?: PayloadRequestWithData\n token?: string\n user?: unknown\n}) => Promise<string> | string\ntype GenerateForgotPasswordEmailSubject = (args?: {\n req?: PayloadRequestWithData\n token?: string\n user?: any\n}) => Promise<string> | string\n\nexport type AuthStrategyFunctionArgs = {\n headers: Request['headers']\n isGraphQL?: boolean\n payload: Payload\n}\nexport type AuthStrategyFunction = (\n args: AuthStrategyFunctionArgs,\n) => Promise<User | null> | User | null\nexport type AuthStrategy = {\n authenticate: AuthStrategyFunction\n name: string\n}\n\nexport interface IncomingAuthType {\n cookies?: {\n domain?: string\n sameSite?: 'Lax' | 'None' | 'Strict' | boolean\n secure?: boolean\n }\n depth?: number\n disableLocalStrategy?: true\n forgotPassword?: {\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n lockTime?: number\n maxLoginAttempts?: number\n removeTokenFromResponses?: true\n strategies?: AuthStrategy[]\n tokenExpiration?: number\n useAPIKey?: boolean\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 extends Omit<DeepRequired<IncomingAuthType>, 'forgotPassword' | 'verify'> {\n forgotPassword?: {\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n verify?: VerifyConfig | boolean\n}\n\nexport function hasWhereAccessResult(result: Where | boolean): result is Where {\n return result && typeof result === 'object'\n}\n"],"names":["hasWhereAccessResult","result"],"mappings":"AAsJA,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 { Payload } from '../index.js'\nimport type { PayloadRequest, Where } from '../types/index.js'\n\nexport type Permission = {\n permission: boolean\n where?: Record<string, unknown>\n}\n\nexport type FieldPermissions = {\n blocks?: {\n [blockSlug: string]: {\n fields: {\n [fieldName: string]: FieldPermissions\n }\n }\n }\n create: {\n permission: boolean\n }\n fields?: {\n [fieldName: string]: FieldPermissions\n }\n read: {\n permission: boolean\n }\n update: {\n permission: boolean\n }\n}\n\nexport type CollectionPermission = {\n create: Permission\n delete: Permission\n fields: {\n [fieldName: string]: FieldPermissions\n }\n read: Permission\n readVersions?: Permission\n update: Permission\n}\n\nexport type GlobalPermission = {\n fields: {\n [fieldName: string]: FieldPermissions\n }\n read: Permission\n readVersions?: Permission\n update: Permission\n}\n\nexport type DocumentPermissions = CollectionPermission | GlobalPermission\nexport type Permissions = {\n canAccessAdmin: boolean\n collections: {\n [collectionSlug: string]: CollectionPermission\n }\n globals?: {\n [globalSlug: string]: GlobalPermission\n }\n}\n\nexport type User = {\n [key: string]: any // This NEEDS to be an any, otherwise it breaks the Omit for ClientUser below\n collection: string\n email?: string\n id: number | string\n username?: string\n}\n\n/**\n * `collection` is not available one the client. It's only available on the server (req.user)\n * On the client, you can access the collection via config.admin.user. Config can be accessed using the useConfig() hook\n */\nexport type ClientUser = Omit<User, 'collection'>\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 headers: Request['headers']\n isGraphQL?: boolean\n payload: Payload\n}\n\nexport type AuthStrategyResult = {\n responseHeaders?: Headers\n user: User | 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 interface IncomingAuthType {\n cookies?: {\n domain?: string\n sameSite?: 'Lax' | 'None' | 'Strict' | boolean\n secure?: boolean\n }\n depth?: number\n disableLocalStrategy?: true\n forgotPassword?: {\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n lockTime?: number\n loginWithUsername?: boolean\n maxLoginAttempts?: number\n removeTokenFromResponses?: true\n strategies?: AuthStrategy[]\n tokenExpiration?: number\n useAPIKey?: boolean\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 extends Omit<DeepRequired<IncomingAuthType>, 'forgotPassword' | 'verify'> {\n forgotPassword?: {\n generateEmailHTML?: GenerateForgotPasswordEmailHTML\n generateEmailSubject?: GenerateForgotPasswordEmailSubject\n }\n verify?: VerifyConfig | boolean\n}\n\nexport function hasWhereAccessResult(result: Where | boolean): result is Where {\n return result && typeof result === 'object'\n}\n"],"names":["hasWhereAccessResult","result"],"mappings":"AAgKA,OAAO,SAASA,qBAAqBC,MAAuB;IAC1D,OAAOA,UAAU,OAAOA,WAAW;AACrC"}
@@ -21,10 +21,10 @@ export declare const createClientCollectionConfig: ({ collection, t, }: {
21
21
  versions: import("../../versions/types.js").SanitizedCollectionVersions;
22
22
  admin: {
23
23
  components: {
24
- AfterList: import("../../config/types.js").CustomComponent[];
25
- AfterListTable: import("../../config/types.js").CustomComponent[];
26
- BeforeList: import("../../config/types.js").CustomComponent[];
27
- BeforeListTable: import("../../config/types.js").CustomComponent[];
24
+ afterList: import("../../config/types.js").CustomComponent[];
25
+ afterListTable: import("../../config/types.js").CustomComponent[];
26
+ beforeList: import("../../config/types.js").CustomComponent[];
27
+ beforeListTable: import("../../config/types.js").CustomComponent[];
28
28
  edit: {
29
29
  Description: import("../../config/types.js").EntityDescriptionComponent;
30
30
  PreviewButton: import("../../index.js").CustomPreviewButton;
@@ -283,13 +283,15 @@ export declare const createClientCollectionConfig: ({ collection, t, }: {
283
283
  beforeOperation: import("./types.js").BeforeOperationHook[];
284
284
  beforeRead: import("./types.js").BeforeReadHook[];
285
285
  beforeValidate: import("./types.js").BeforeValidateHook[];
286
+ me: import("./types.js").MeHook[];
287
+ refresh: import("./types.js").RefreshHook[];
286
288
  };
287
289
  typescript: {
288
290
  interface: string;
289
291
  };
290
292
  access: {
291
293
  admin: ({ req }: {
292
- req: import("../../index.js").PayloadRequestWithData;
294
+ req: import("../../index.js").PayloadRequest;
293
295
  }) => Promise<boolean> | boolean;
294
296
  create: import("../../config/types.js").Access;
295
297
  delete: import("../../config/types.js").Access;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/collections/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAA;AAE/F,MAAM,MAAM,8BAA8B,GAAG,MAAM,IAAI,CACrD,yBAAyB,EACzB,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAC5C,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,IAAI,CAC1D,yBAAyB,CAAC,OAAO,CAAC,EAClC,YAAY,GAAG,QAAQ,GAAG,SAAS,CACpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,yBAAyB,EACzB,OAAO,GAAG,QAAQ,GAAG,8BAA8B,CACpD,GAAG;IACF,KAAK,EAAE,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,EAClC,QAAQ,GAAG,aAAa,GAAG,mCAAmC,CAC/D,GAAG;QACF,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;KACvE,CAAA;IACD,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B,CAAA;AAED,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAI3D,eAAO,MAAM,4BAA4B,uBAGtC;IACD,UAAU,EAAE,yBAAyB,CAAA;IACrC,CAAC,EAAE,SAAS,CAAA;CACb;;;;;;;;;;;;;;;;;;;;;;;;kCAVuC,MAAO,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;+BA6E4/I,MAAO,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA9B5iJ,CADJ;;4BACiF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBjF,CAAA;AAED,eAAO,MAAM,6BAA6B,wBAGvC;IACD,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,sBAAsB,EACwD,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/collections/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAA;AAE/F,MAAM,MAAM,8BAA8B,GAAG,MAAM,IAAI,CACrD,yBAAyB,EACzB,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAC5C,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,IAAI,CAC1D,yBAAyB,CAAC,OAAO,CAAC,EAClC,YAAY,GAAG,QAAQ,GAAG,SAAS,CACpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,yBAAyB,EACzB,OAAO,GAAG,QAAQ,GAAG,8BAA8B,CACpD,GAAG;IACF,KAAK,EAAE,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,EAClC,QAAQ,GAAG,aAAa,GAAG,mCAAmC,CAC/D,GAAG;QACF,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;KACvE,CAAA;IACD,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B,CAAA;AAED,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAI3D,eAAO,MAAM,4BAA4B,uBAGtC;IACD,UAAU,EAAE,yBAAyB,CAAA;IACrC,CAAC,EAAE,SAAS,CAAA;CACb;;;;;;;;;;;;;;;;;;;;;;;;kCAVuC,MAAO,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;;wCARe,aAAY;;;;;;kCAQ5B,CAAC;;;;;;;;;;;;;;;;;;;;+BA6EuhK,MAAO,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA9BtjK,CAAC;;4BAChB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBN,CAAA;AAED,eAAO,MAAM,6BAA6B,wBAGvC;IACD,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,sBAAsB,EACwD,CAAA"}
@@ -1,19 +1,19 @@
1
1
  export declare const defaults: {
2
2
  access: {
3
3
  create: ({ req: { user } }: {
4
- req: import("../../index.js").PayloadRequestWithData;
4
+ req: import("../../index.js").PayloadRequest;
5
5
  }) => boolean;
6
6
  delete: ({ req: { user } }: {
7
- req: import("../../index.js").PayloadRequestWithData;
7
+ req: import("../../index.js").PayloadRequest;
8
8
  }) => boolean;
9
9
  read: ({ req: { user } }: {
10
- req: import("../../index.js").PayloadRequestWithData;
10
+ req: import("../../index.js").PayloadRequest;
11
11
  }) => boolean;
12
12
  unlock: ({ req: { user } }: {
13
- req: import("../../index.js").PayloadRequestWithData;
13
+ req: import("../../index.js").PayloadRequest;
14
14
  }) => boolean;
15
15
  update: ({ req: { user } }: {
16
- req: import("../../index.js").PayloadRequestWithData;
16
+ req: import("../../index.js").PayloadRequest;
17
17
  }) => boolean;
18
18
  };
19
19
  admin: {
@@ -47,6 +47,8 @@ export declare const defaults: {
47
47
  beforeOperation: any[];
48
48
  beforeRead: any[];
49
49
  beforeValidate: any[];
50
+ me: any[];
51
+ refresh: any[];
50
52
  };
51
53
  timestamps: boolean;
52
54
  upload: boolean;
@@ -59,6 +61,7 @@ export declare const authDefaults: {
59
61
  };
60
62
  forgotPassword: {};
61
63
  lockTime: number;
64
+ loginWithUsername: boolean;
62
65
  maxLoginAttempts: number;
63
66
  tokenExpiration: number;
64
67
  verify: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/collections/config/defaults.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CpB,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;CAUxB,CAAA"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/collections/config/defaults.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CpB,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;CAWxB,CAAA"}
@@ -43,7 +43,9 @@ export const defaults = {
43
43
  beforeLogin: [],
44
44
  beforeOperation: [],
45
45
  beforeRead: [],
46
- beforeValidate: []
46
+ beforeValidate: [],
47
+ me: [],
48
+ refresh: []
47
49
  },
48
50
  timestamps: true,
49
51
  upload: false,
@@ -56,6 +58,7 @@ export const authDefaults = {
56
58
  },
57
59
  forgotPassword: {},
58
60
  lockTime: 600000,
61
+ loginWithUsername: false,
59
62
  maxLoginAttempts: 5,
60
63
  tokenExpiration: 7200,
61
64
  verify: false
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/defaults.ts"],"sourcesContent":["import defaultAccess from '../../auth/defaultAccess.js'\n\nexport const defaults = {\n access: {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n unlock: defaultAccess,\n update: defaultAccess,\n },\n admin: {\n components: {},\n custom: {},\n enableRichTextLink: true,\n enableRichTextRelationship: true,\n pagination: {\n defaultLimit: 10,\n limits: [5, 10, 25, 50, 100],\n },\n useAsTitle: 'id',\n },\n auth: false,\n custom: {},\n endpoints: [],\n fields: [],\n hooks: {\n afterChange: [],\n afterDelete: [],\n afterForgotPassword: [],\n afterLogin: [],\n afterLogout: [],\n afterMe: [],\n afterOperation: [],\n afterRead: [],\n afterRefresh: [],\n beforeChange: [],\n beforeDelete: [],\n beforeLogin: [],\n beforeOperation: [],\n beforeRead: [],\n beforeValidate: [],\n },\n timestamps: true,\n upload: false,\n versions: false,\n}\n\nexport const authDefaults = {\n cookies: {\n sameSite: 'Lax',\n secure: false,\n },\n forgotPassword: {},\n lockTime: 600000, // 10 minutes\n maxLoginAttempts: 5,\n tokenExpiration: 7200,\n verify: false,\n}\n"],"names":["defaultAccess","defaults","access","create","delete","read","unlock","update","admin","components","custom","enableRichTextLink","enableRichTextRelationship","pagination","defaultLimit","limits","useAsTitle","auth","endpoints","fields","hooks","afterChange","afterDelete","afterForgotPassword","afterLogin","afterLogout","afterMe","afterOperation","afterRead","afterRefresh","beforeChange","beforeDelete","beforeLogin","beforeOperation","beforeRead","beforeValidate","timestamps","upload","versions","authDefaults","cookies","sameSite","secure","forgotPassword","lockTime","maxLoginAttempts","tokenExpiration","verify"],"mappings":"AAAA,OAAOA,mBAAmB,8BAA6B;AAEvD,OAAO,MAAMC,WAAW;IACtBC,QAAQ;QACNC,QAAQH;QACRI,QAAQJ;QACRK,MAAML;QACNM,QAAQN;QACRO,QAAQP;IACV;IACAQ,OAAO;QACLC,YAAY,CAAC;QACbC,QAAQ,CAAC;QACTC,oBAAoB;QACpBC,4BAA4B;QAC5BC,YAAY;YACVC,cAAc;YACdC,QAAQ;gBAAC;gBAAG;gBAAI;gBAAI;gBAAI;aAAI;QAC9B;QACAC,YAAY;IACd;IACAC,MAAM;IACNP,QAAQ,CAAC;IACTQ,WAAW,EAAE;IACbC,QAAQ,EAAE;IACVC,OAAO;QACLC,aAAa,EAAE;QACfC,aAAa,EAAE;QACfC,qBAAqB,EAAE;QACvBC,YAAY,EAAE;QACdC,aAAa,EAAE;QACfC,SAAS,EAAE;QACXC,gBAAgB,EAAE;QAClBC,WAAW,EAAE;QACbC,cAAc,EAAE;QAChBC,cAAc,EAAE;QAChBC,cAAc,EAAE;QAChBC,aAAa,EAAE;QACfC,iBAAiB,EAAE;QACnBC,YAAY,EAAE;QACdC,gBAAgB,EAAE;IACpB;IACAC,YAAY;IACZC,QAAQ;IACRC,UAAU;AACZ,EAAC;AAED,OAAO,MAAMC,eAAe;IAC1BC,SAAS;QACPC,UAAU;QACVC,QAAQ;IACV;IACAC,gBAAgB,CAAC;IACjBC,UAAU;IACVC,kBAAkB;IAClBC,iBAAiB;IACjBC,QAAQ;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../src/collections/config/defaults.ts"],"sourcesContent":["import defaultAccess from '../../auth/defaultAccess.js'\n\nexport const defaults = {\n access: {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n unlock: defaultAccess,\n update: defaultAccess,\n },\n admin: {\n components: {},\n custom: {},\n enableRichTextLink: true,\n enableRichTextRelationship: true,\n pagination: {\n defaultLimit: 10,\n limits: [5, 10, 25, 50, 100],\n },\n useAsTitle: 'id',\n },\n auth: false,\n custom: {},\n endpoints: [],\n fields: [],\n hooks: {\n afterChange: [],\n afterDelete: [],\n afterForgotPassword: [],\n afterLogin: [],\n afterLogout: [],\n afterMe: [],\n afterOperation: [],\n afterRead: [],\n afterRefresh: [],\n beforeChange: [],\n beforeDelete: [],\n beforeLogin: [],\n beforeOperation: [],\n beforeRead: [],\n beforeValidate: [],\n me: [],\n refresh: [],\n },\n timestamps: true,\n upload: false,\n versions: false,\n}\n\nexport const authDefaults = {\n cookies: {\n sameSite: 'Lax',\n secure: false,\n },\n forgotPassword: {},\n lockTime: 600000, // 10 minutes\n loginWithUsername: false,\n maxLoginAttempts: 5,\n tokenExpiration: 7200,\n verify: false,\n}\n"],"names":["defaultAccess","defaults","access","create","delete","read","unlock","update","admin","components","custom","enableRichTextLink","enableRichTextRelationship","pagination","defaultLimit","limits","useAsTitle","auth","endpoints","fields","hooks","afterChange","afterDelete","afterForgotPassword","afterLogin","afterLogout","afterMe","afterOperation","afterRead","afterRefresh","beforeChange","beforeDelete","beforeLogin","beforeOperation","beforeRead","beforeValidate","me","refresh","timestamps","upload","versions","authDefaults","cookies","sameSite","secure","forgotPassword","lockTime","loginWithUsername","maxLoginAttempts","tokenExpiration","verify"],"mappings":"AAAA,OAAOA,mBAAmB,8BAA6B;AAEvD,OAAO,MAAMC,WAAW;IACtBC,QAAQ;QACNC,QAAQH;QACRI,QAAQJ;QACRK,MAAML;QACNM,QAAQN;QACRO,QAAQP;IACV;IACAQ,OAAO;QACLC,YAAY,CAAC;QACbC,QAAQ,CAAC;QACTC,oBAAoB;QACpBC,4BAA4B;QAC5BC,YAAY;YACVC,cAAc;YACdC,QAAQ;gBAAC;gBAAG;gBAAI;gBAAI;gBAAI;aAAI;QAC9B;QACAC,YAAY;IACd;IACAC,MAAM;IACNP,QAAQ,CAAC;IACTQ,WAAW,EAAE;IACbC,QAAQ,EAAE;IACVC,OAAO;QACLC,aAAa,EAAE;QACfC,aAAa,EAAE;QACfC,qBAAqB,EAAE;QACvBC,YAAY,EAAE;QACdC,aAAa,EAAE;QACfC,SAAS,EAAE;QACXC,gBAAgB,EAAE;QAClBC,WAAW,EAAE;QACbC,cAAc,EAAE;QAChBC,cAAc,EAAE;QAChBC,cAAc,EAAE;QAChBC,aAAa,EAAE;QACfC,iBAAiB,EAAE;QACnBC,YAAY,EAAE;QACdC,gBAAgB,EAAE;QAClBC,IAAI,EAAE;QACNC,SAAS,EAAE;IACb;IACAC,YAAY;IACZC,QAAQ;IACRC,UAAU;AACZ,EAAC;AAED,OAAO,MAAMC,eAAe;IAC1BC,SAAS;QACPC,UAAU;QACVC,QAAQ;IACV;IACAC,gBAAgB,CAAC;IACjBC,UAAU;IACVC,mBAAmB;IACnBC,kBAAkB;IAClBC,iBAAiB;IACjBC,QAAQ;AACV,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAiB7E,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/E,OAAO,CAAC,yBAAyB,CAgJnC,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAkB7E,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/E,OAAO,CAAC,yBAAyB,CAoJnC,CAAA"}
@@ -2,6 +2,7 @@ import merge from 'deepmerge';
2
2
  import baseAccountLockFields from '../../auth/baseFields/accountLock.js';
3
3
  import baseAPIKeyFields from '../../auth/baseFields/apiKey.js';
4
4
  import baseAuthFields from '../../auth/baseFields/auth.js';
5
+ import baseLoginField from '../../auth/baseFields/loginField.js';
5
6
  import baseVerificationFields from '../../auth/baseFields/verification.js';
6
7
  import { TimestampsRequired } from '../../errors/TimestampsRequired.js';
7
8
  import { sanitizeFields } from '../../fields/config/sanitize.js';
@@ -106,6 +107,8 @@ export const sanitizeCollection = async (config, collection, /**
106
107
  authFields = authFields.concat(baseAPIKeyFields);
107
108
  }
108
109
  if (!sanitized.auth.disableLocalStrategy) {
110
+ const loginField = sanitized.auth.loginWithUsername ? 'username' : 'email';
111
+ authFields = authFields.concat(baseLoginField(loginField));
109
112
  authFields = authFields.concat(baseAuthFields);
110
113
  if (sanitized.auth.verify) {
111
114
  if (sanitized.auth.verify === true) sanitized.auth.verify = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig } from './types.js'\n\nimport baseAccountLockFields from '../../auth/baseFields/accountLock.js'\nimport baseAPIKeyFields from '../../auth/baseFields/apiKey.js'\nimport baseAuthFields from '../../auth/baseFields/auth.js'\nimport baseVerificationFields from '../../auth/baseFields/verification.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport { isPlainObject } from '../../utilities/isPlainObject.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { authDefaults, defaults } from './defaults.js'\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedCollectionConfig> => {\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = merge(defaults, collection, {\n isMergeableObject: isPlainObject,\n })\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt = null\n let hasCreatedAt = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') hasUpdatedAt = true\n if (field.name === 'createdAt') hasCreatedAt = true\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n }\n\n sanitized.labels = sanitized.labels || formatLabels(sanitized.slug)\n\n if (sanitized.versions) {\n if (sanitized.versions === true) sanitized.versions = { drafts: false }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (sanitized.versions.drafts.validate === undefined) {\n sanitized.versions.drafts.validate = false\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, baseVersionFields)\n }\n }\n\n if (sanitized.upload) {\n if (sanitized.upload === true) sanitized.upload = {}\n\n // disable duplicate for uploads by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin.useAsTitle =\n sanitized.admin.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n sanitized.auth = merge(authDefaults, typeof sanitized.auth === 'object' ? sanitized.auth : {}, {\n isMergeableObject: isPlainObject,\n })\n\n let authFields = []\n\n if (sanitized.auth.useAPIKey) {\n authFields = authFields.concat(baseAPIKeyFields)\n }\n\n if (!sanitized.auth.disableLocalStrategy) {\n authFields = authFields.concat(baseAuthFields)\n\n if (sanitized.auth.verify) {\n if (sanitized.auth.verify === true) sanitized.auth.verify = {}\n authFields = authFields.concat(baseVerificationFields)\n }\n\n if (sanitized.auth.maxLoginAttempts > 0) {\n authFields = authFields.concat(baseAccountLockFields)\n }\n }\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n if (!sanitized.auth.strategies) {\n sanitized.auth.strategies = []\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, authFields)\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = config.collections.map((c) => c.slug) || []\n sanitized.fields = await sanitizeFields({\n config,\n fields: sanitized.fields,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n return sanitized as SanitizedCollectionConfig\n}\n"],"names":["merge","baseAccountLockFields","baseAPIKeyFields","baseAuthFields","baseVerificationFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","formatLabels","isPlainObject","baseVersionFields","versionDefaults","authDefaults","defaults","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","isMergeableObject","timestamps","hasUpdatedAt","hasCreatedAt","fields","some","field","name","push","type","admin","disableBulkEdit","hidden","label","t","index","labels","slug","versions","drafts","autosave","validate","interval","autosaveInterval","undefined","upload","disableDuplicate","staticDir","useAsTitle","uploadFields","auth","authFields","useAPIKey","concat","disableLocalStrategy","verify","maxLoginAttempts","strategies","validRelationships","collections","map","c"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig } from './types.js'\n\nimport baseAccountLockFields from '../../auth/baseFields/accountLock.js'\nimport baseAPIKeyFields from '../../auth/baseFields/apiKey.js'\nimport baseAuthFields from '../../auth/baseFields/auth.js'\nimport baseLoginField from '../../auth/baseFields/loginField.js'\nimport baseVerificationFields from '../../auth/baseFields/verification.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport { isPlainObject } from '../../utilities/isPlainObject.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { authDefaults, defaults } from './defaults.js'\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedCollectionConfig> => {\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = merge(defaults, collection, {\n isMergeableObject: isPlainObject,\n })\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt = null\n let hasCreatedAt = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') hasUpdatedAt = true\n if (field.name === 'createdAt') hasCreatedAt = true\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n }\n\n sanitized.labels = sanitized.labels || formatLabels(sanitized.slug)\n\n if (sanitized.versions) {\n if (sanitized.versions === true) sanitized.versions = { drafts: false }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (sanitized.versions.drafts.validate === undefined) {\n sanitized.versions.drafts.validate = false\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, baseVersionFields)\n }\n }\n\n if (sanitized.upload) {\n if (sanitized.upload === true) sanitized.upload = {}\n\n // disable duplicate for uploads by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin.useAsTitle =\n sanitized.admin.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n sanitized.auth = merge(authDefaults, typeof sanitized.auth === 'object' ? sanitized.auth : {}, {\n isMergeableObject: isPlainObject,\n })\n\n let authFields = []\n\n if (sanitized.auth.useAPIKey) {\n authFields = authFields.concat(baseAPIKeyFields)\n }\n\n if (!sanitized.auth.disableLocalStrategy) {\n const loginField = sanitized.auth.loginWithUsername ? 'username' : 'email'\n\n authFields = authFields.concat(baseLoginField(loginField))\n\n authFields = authFields.concat(baseAuthFields)\n\n if (sanitized.auth.verify) {\n if (sanitized.auth.verify === true) sanitized.auth.verify = {}\n authFields = authFields.concat(baseVerificationFields)\n }\n\n if (sanitized.auth.maxLoginAttempts > 0) {\n authFields = authFields.concat(baseAccountLockFields)\n }\n }\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n if (!sanitized.auth.strategies) {\n sanitized.auth.strategies = []\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, authFields)\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = config.collections.map((c) => c.slug) || []\n sanitized.fields = await sanitizeFields({\n config,\n fields: sanitized.fields,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n return sanitized as SanitizedCollectionConfig\n}\n"],"names":["merge","baseAccountLockFields","baseAPIKeyFields","baseAuthFields","baseLoginField","baseVerificationFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","formatLabels","isPlainObject","baseVersionFields","versionDefaults","authDefaults","defaults","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","isMergeableObject","timestamps","hasUpdatedAt","hasCreatedAt","fields","some","field","name","push","type","admin","disableBulkEdit","hidden","label","t","index","labels","slug","versions","drafts","autosave","validate","interval","autosaveInterval","undefined","upload","disableDuplicate","staticDir","useAsTitle","uploadFields","auth","authFields","useAPIKey","concat","disableLocalStrategy","loginField","loginWithUsername","verify","maxLoginAttempts","strategies","validRelationships","collections","map","c"],"mappings":"AAAA,OAAOA,WAAW,YAAW;AAK7B,OAAOC,2BAA2B,uCAAsC;AACxE,OAAOC,sBAAsB,kCAAiC;AAC9D,OAAOC,oBAAoB,gCAA+B;AAC1D,OAAOC,oBAAoB,sCAAqC;AAChE,OAAOC,4BAA4B,wCAAuC;AAC1E,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,cAAc,QAAQ,kCAAiC;AAChE,SAASC,gBAAgB,QAAQ,+BAA8B;AAC/D,OAAOC,qBAAqB,kCAAiC;AAC7D,SAASC,mBAAmB,QAAQ,iCAAgC;AACpE,SAASC,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,aAAa,QAAQ,mCAAkC;AAChE,OAAOC,uBAAuB,+BAA8B;AAC5D,SAASC,eAAe,QAAQ,6BAA4B;AAC5D,SAASC,YAAY,EAAEC,QAAQ,QAAQ,gBAAe;AAEtD,OAAO,MAAMC,qBAAqB,OAChCC,QACAC,YACA;;;GAGC,GACDC;IAEA,oCAAoC;IACpC,iCAAiC;IACjC,oCAAoC;IAEpC,MAAMC,YAA8BrB,MAAMgB,UAAUG,YAAY;QAC9DG,mBAAmBV;IACrB;IAEA,IAAIS,UAAUE,UAAU,KAAK,OAAO;QAClC,+CAA+C;QAC/C,IAAIC,eAAe;QACnB,IAAIC,eAAe;QACnBJ,UAAUK,MAAM,CAACC,IAAI,CAAC,CAACC;YACrB,IAAIpB,iBAAiBoB,QAAQ;gBAC3B,IAAIA,MAAMC,IAAI,KAAK,aAAaL,eAAe;gBAC/C,IAAII,MAAMC,IAAI,KAAK,aAAaJ,eAAe;YACjD;YACA,OAAOA,gBAAgBD;QACzB;QACA,IAAI,CAACA,cAAc;YACjBH,UAAUK,MAAM,CAACI,IAAI,CAAC;gBACpBD,MAAM;gBACNE,MAAM;gBACNC,OAAO;oBACLC,iBAAiB;oBACjBC,QAAQ;gBACV;gBACAC,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACtB;QACF;QACA,IAAI,CAACX,cAAc;YACjBJ,UAAUK,MAAM,CAACI,IAAI,CAAC;gBACpBD,MAAM;gBACNG,OAAO;oBACLC,iBAAiB;oBACjBC,QAAQ;gBACV;gBACA,8KAA8K;gBAC9KH,MAAM;gBACNM,OAAO;gBACPF,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACtB;QACF;IACF;IAEAf,UAAUiB,MAAM,GAAGjB,UAAUiB,MAAM,IAAI3B,aAAaU,UAAUkB,IAAI;IAElE,IAAIlB,UAAUmB,QAAQ,EAAE;QACtB,IAAInB,UAAUmB,QAAQ,KAAK,MAAMnB,UAAUmB,QAAQ,GAAG;YAAEC,QAAQ;QAAM;QAEtE,IAAIpB,UAAUE,UAAU,KAAK,OAAO;YAClC,MAAM,IAAIjB,mBAAmBa;QAC/B;QAEA,IAAIE,UAAUmB,QAAQ,CAACC,MAAM,EAAE;YAC7B,IAAIpB,UAAUmB,QAAQ,CAACC,MAAM,KAAK,MAAM;gBACtCpB,UAAUmB,QAAQ,CAACC,MAAM,GAAG;oBAC1BC,UAAU;oBACVC,UAAU;gBACZ;YACF;YAEA,IAAItB,UAAUmB,QAAQ,CAACC,MAAM,CAACC,QAAQ,KAAK,MAAM;gBAC/CrB,UAAUmB,QAAQ,CAACC,MAAM,CAACC,QAAQ,GAAG;oBACnCE,UAAU9B,gBAAgB+B,gBAAgB;gBAC5C;YACF;YAEA,IAAIxB,UAAUmB,QAAQ,CAACC,MAAM,CAACE,QAAQ,KAAKG,WAAW;gBACpDzB,UAAUmB,QAAQ,CAACC,MAAM,CAACE,QAAQ,GAAG;YACvC;YAEAtB,UAAUK,MAAM,GAAGjB,gBAAgBY,UAAUK,MAAM,EAAEb;QACvD;IACF;IAEA,IAAIQ,UAAU0B,MAAM,EAAE;QACpB,IAAI1B,UAAU0B,MAAM,KAAK,MAAM1B,UAAU0B,MAAM,GAAG,CAAC;QAEnD,2CAA2C;QAC3C1B,UAAU2B,gBAAgB,GAAG3B,UAAU2B,gBAAgB,IAAI;QAE3D3B,UAAU0B,MAAM,CAACE,SAAS,GAAG5B,UAAU0B,MAAM,CAACE,SAAS,IAAI5B,UAAUkB,IAAI;QACzElB,UAAUW,KAAK,CAACkB,UAAU,GACxB7B,UAAUW,KAAK,CAACkB,UAAU,IAAI7B,UAAUW,KAAK,CAACkB,UAAU,KAAK,OACzD7B,UAAUW,KAAK,CAACkB,UAAU,GAC1B;QAEN,MAAMC,eAAezC,oBAAoB;YACvCS,YAAYE;YACZH;QACF;QAEAG,UAAUK,MAAM,GAAGjB,gBAAgBY,UAAUK,MAAM,EAAEyB;IACvD;IAEA,IAAI9B,UAAU+B,IAAI,EAAE;QAClB/B,UAAU+B,IAAI,GAAGpD,MAAMe,cAAc,OAAOM,UAAU+B,IAAI,KAAK,WAAW/B,UAAU+B,IAAI,GAAG,CAAC,GAAG;YAC7F9B,mBAAmBV;QACrB;QAEA,IAAIyC,aAAa,EAAE;QAEnB,IAAIhC,UAAU+B,IAAI,CAACE,SAAS,EAAE;YAC5BD,aAAaA,WAAWE,MAAM,CAACrD;QACjC;QAEA,IAAI,CAACmB,UAAU+B,IAAI,CAACI,oBAAoB,EAAE;YACxC,MAAMC,aAAapC,UAAU+B,IAAI,CAACM,iBAAiB,GAAG,aAAa;YAEnEL,aAAaA,WAAWE,MAAM,CAACnD,eAAeqD;YAE9CJ,aAAaA,WAAWE,MAAM,CAACpD;YAE/B,IAAIkB,UAAU+B,IAAI,CAACO,MAAM,EAAE;gBACzB,IAAItC,UAAU+B,IAAI,CAACO,MAAM,KAAK,MAAMtC,UAAU+B,IAAI,CAACO,MAAM,GAAG,CAAC;gBAC7DN,aAAaA,WAAWE,MAAM,CAAClD;YACjC;YAEA,IAAIgB,UAAU+B,IAAI,CAACQ,gBAAgB,GAAG,GAAG;gBACvCP,aAAaA,WAAWE,MAAM,CAACtD;YACjC;QACF;QAEA,4DAA4D;QAC5DoB,UAAU2B,gBAAgB,GAAG3B,UAAU2B,gBAAgB,IAAI;QAE3D,IAAI,CAAC3B,UAAU+B,IAAI,CAACS,UAAU,EAAE;YAC9BxC,UAAU+B,IAAI,CAACS,UAAU,GAAG,EAAE;QAChC;QAEAxC,UAAUK,MAAM,GAAGjB,gBAAgBY,UAAUK,MAAM,EAAE2B;IACvD;IAEA,oCAAoC;IACpC,kBAAkB;IAClB,oCAAoC;IAEpC,MAAMS,qBAAqB5C,OAAO6C,WAAW,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAE1B,IAAI,KAAK,EAAE;IACtElB,UAAUK,MAAM,GAAG,MAAMnB,eAAe;QACtCW;QACAQ,QAAQL,UAAUK,MAAM;QACxBN;QACA0C;IACF;IAEA,OAAOzC;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/collections/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAUrB,QAAA,MAAM,gBAAgB,uBA0NpB,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/collections/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAUrB,QAAA,MAAM,gBAAgB,uBA6NpB,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
@@ -15,10 +15,10 @@ const collectionSchema = joi.object().keys({
15
15
  }),
16
16
  admin: joi.object({
17
17
  components: joi.object({
18
- AfterList: joi.array().items(componentSchema),
19
- AfterListTable: joi.array().items(componentSchema),
20
- BeforeList: joi.array().items(componentSchema),
21
- BeforeListTable: joi.array().items(componentSchema),
18
+ afterList: joi.array().items(componentSchema),
19
+ afterListTable: joi.array().items(componentSchema),
20
+ beforeList: joi.array().items(componentSchema),
21
+ beforeListTable: joi.array().items(componentSchema),
22
22
  edit: joi.object({
23
23
  Description: componentSchema,
24
24
  PreviewButton: componentSchema,
@@ -79,6 +79,7 @@ const collectionSchema = joi.object().keys({
79
79
  generateEmailSubject: joi.func()
80
80
  }),
81
81
  lockTime: joi.number(),
82
+ loginWithUsername: joi.boolean(),
82
83
  maxLoginAttempts: joi.number(),
83
84
  removeTokenFromResponses: joi.boolean().valid(true),
84
85
  strategies: joi.array().items(joi.object().keys({
@@ -117,7 +118,9 @@ const collectionSchema = joi.object().keys({
117
118
  beforeLogin: joi.array().items(joi.func()),
118
119
  beforeOperation: joi.array().items(joi.func()),
119
120
  beforeRead: joi.array().items(joi.func()),
120
- beforeValidate: joi.array().items(joi.func())
121
+ beforeValidate: joi.array().items(joi.func()),
122
+ me: joi.array().items(joi.func()),
123
+ refresh: joi.array().items(joi.func())
121
124
  }),
122
125
  labels: joi.object({
123
126
  plural: joi.alternatives().try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [