payload 3.0.0-alpha.48 → 3.0.0-alpha.49

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 (275) hide show
  1. package/config.d.ts +4 -1
  2. package/config.js +4 -1
  3. package/dist/admin/RichText.d.ts +3 -7
  4. package/dist/admin/RichText.d.ts.map +1 -1
  5. package/dist/admin/RichText.js.map +1 -1
  6. package/dist/admin/forms/Error.d.ts +1 -0
  7. package/dist/admin/forms/Error.d.ts.map +1 -1
  8. package/dist/admin/forms/Error.js.map +1 -1
  9. package/dist/admin/forms/Form.d.ts +5 -0
  10. package/dist/admin/forms/Form.d.ts.map +1 -1
  11. package/dist/admin/forms/Form.js.map +1 -1
  12. package/dist/admin/forms/Label.d.ts +2 -1
  13. package/dist/admin/forms/Label.d.ts.map +1 -1
  14. package/dist/admin/forms/Label.js.map +1 -1
  15. package/dist/admin/forms/RowLabel.d.ts +2 -9
  16. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  17. package/dist/admin/forms/RowLabel.js.map +1 -1
  18. package/dist/admin/types.d.ts +2 -2
  19. package/dist/admin/types.d.ts.map +1 -1
  20. package/dist/admin/types.js.map +1 -1
  21. package/dist/admin/views/types.d.ts +8 -3
  22. package/dist/admin/views/types.d.ts.map +1 -1
  23. package/dist/admin/views/types.js.map +1 -1
  24. package/dist/auth/baseFields/apiKey.js +1 -1
  25. package/dist/auth/baseFields/apiKey.js.map +1 -1
  26. package/dist/auth/cookies.d.ts +4 -0
  27. package/dist/auth/cookies.d.ts.map +1 -1
  28. package/dist/auth/cookies.js +1 -1
  29. package/dist/auth/cookies.js.map +1 -1
  30. package/dist/auth/operations/forgotPassword.js +1 -1
  31. package/dist/auth/operations/forgotPassword.js.map +1 -1
  32. package/dist/auth/operations/login.d.ts +1 -5
  33. package/dist/auth/operations/login.d.ts.map +1 -1
  34. package/dist/auth/operations/login.js +0 -3
  35. package/dist/auth/operations/login.js.map +1 -1
  36. package/dist/auth/operations/me.d.ts +4 -4
  37. package/dist/auth/operations/me.d.ts.map +1 -1
  38. package/dist/auth/operations/me.js.map +1 -1
  39. package/dist/auth/operations/registerFirstUser.d.ts +1 -9
  40. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  41. package/dist/auth/operations/resetPassword.js +1 -1
  42. package/dist/auth/operations/resetPassword.js.map +1 -1
  43. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  44. package/dist/auth/strategies/apiKey.js +2 -0
  45. package/dist/auth/strategies/apiKey.js.map +1 -1
  46. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  47. package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -0
  48. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  49. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  50. package/dist/auth/strategies/local/register.js +3 -0
  51. package/dist/auth/strategies/local/register.js.map +1 -1
  52. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  53. package/dist/auth/strategies/local/resetLoginAttempts.js +1 -0
  54. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
  55. package/dist/auth/types.d.ts +6 -1
  56. package/dist/auth/types.d.ts.map +1 -1
  57. package/dist/auth/types.js.map +1 -1
  58. package/dist/collections/config/client.d.ts +311 -0
  59. package/dist/collections/config/client.d.ts.map +1 -0
  60. package/dist/collections/config/client.js +56 -0
  61. package/dist/collections/config/client.js.map +1 -0
  62. package/dist/collections/config/defaults.d.ts +5 -5
  63. package/dist/collections/config/sanitize.d.ts.map +1 -1
  64. package/dist/collections/config/sanitize.js +4 -0
  65. package/dist/collections/config/sanitize.js.map +1 -1
  66. package/dist/collections/config/schema.d.ts.map +1 -1
  67. package/dist/collections/config/schema.js +0 -3
  68. package/dist/collections/config/schema.js.map +1 -1
  69. package/dist/collections/config/types.d.ts +4 -36
  70. package/dist/collections/config/types.d.ts.map +1 -1
  71. package/dist/collections/config/types.js.map +1 -1
  72. package/dist/collections/operations/create.d.ts +1 -9
  73. package/dist/collections/operations/create.d.ts.map +1 -1
  74. package/dist/collections/operations/delete.d.ts +2 -10
  75. package/dist/collections/operations/delete.d.ts.map +1 -1
  76. package/dist/collections/operations/duplicate.d.ts +14 -0
  77. package/dist/collections/operations/duplicate.d.ts.map +1 -0
  78. package/dist/collections/operations/duplicate.js +275 -0
  79. package/dist/collections/operations/duplicate.js.map +1 -0
  80. package/dist/collections/operations/find.d.ts.map +1 -1
  81. package/dist/collections/operations/findByID.d.ts.map +1 -1
  82. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  83. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  84. package/dist/collections/operations/local/create.js +1 -1
  85. package/dist/collections/operations/local/create.js.map +1 -1
  86. package/dist/collections/operations/local/duplicate.d.ts +21 -0
  87. package/dist/collections/operations/local/duplicate.d.ts.map +1 -0
  88. package/dist/collections/operations/local/duplicate.js +22 -0
  89. package/dist/collections/operations/local/duplicate.js.map +1 -0
  90. package/dist/collections/operations/local/index.d.ts +7 -5
  91. package/dist/collections/operations/local/index.d.ts.map +1 -1
  92. package/dist/collections/operations/local/index.js +2 -0
  93. package/dist/collections/operations/local/index.js.map +1 -1
  94. package/dist/collections/operations/local/update.js +1 -1
  95. package/dist/collections/operations/local/update.js.map +1 -1
  96. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  97. package/dist/collections/operations/update.d.ts +1 -5
  98. package/dist/collections/operations/update.d.ts.map +1 -1
  99. package/dist/collections/operations/updateByID.d.ts +1 -9
  100. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  101. package/dist/collections/operations/utils.d.ts +1 -1
  102. package/dist/collections/operations/utils.d.ts.map +1 -1
  103. package/dist/config/client.d.ts +14 -0
  104. package/dist/config/client.d.ts.map +1 -0
  105. package/dist/config/client.js +59 -0
  106. package/dist/config/client.js.map +1 -0
  107. package/dist/config/defaults.d.ts.map +1 -1
  108. package/dist/config/defaults.js +0 -2
  109. package/dist/config/defaults.js.map +1 -1
  110. package/dist/config/load.d.ts.map +1 -1
  111. package/dist/config/load.js +3 -4
  112. package/dist/config/load.js.map +1 -1
  113. package/dist/config/schema.d.ts.map +1 -1
  114. package/dist/config/schema.js +0 -2
  115. package/dist/config/schema.js.map +1 -1
  116. package/dist/config/types.d.ts +23 -20
  117. package/dist/config/types.d.ts.map +1 -1
  118. package/dist/config/types.js.map +1 -1
  119. package/dist/config/validate.d.ts +1 -2
  120. package/dist/config/validate.d.ts.map +1 -1
  121. package/dist/config/validate.js +3 -4
  122. package/dist/config/validate.js.map +1 -1
  123. package/dist/database/types.d.ts +2 -2
  124. package/dist/database/types.d.ts.map +1 -1
  125. package/dist/database/types.js.map +1 -1
  126. package/dist/exports/config.d.ts +4 -1
  127. package/dist/exports/config.d.ts.map +1 -1
  128. package/dist/exports/config.js +4 -1
  129. package/dist/exports/config.js.map +1 -1
  130. package/dist/exports/operations.d.ts +1 -0
  131. package/dist/exports/operations.d.ts.map +1 -1
  132. package/dist/exports/operations.js +1 -0
  133. package/dist/exports/operations.js.map +1 -1
  134. package/dist/exports/types.d.ts +9 -4
  135. package/dist/exports/types.d.ts.map +1 -1
  136. package/dist/exports/types.js.map +1 -1
  137. package/dist/exports/uploads.d.ts +2 -0
  138. package/dist/exports/uploads.d.ts.map +1 -0
  139. package/dist/exports/uploads.js +3 -0
  140. package/dist/exports/uploads.js.map +1 -0
  141. package/dist/exports/utilities.d.ts +4 -1
  142. package/dist/exports/utilities.d.ts.map +1 -1
  143. package/dist/exports/utilities.js +4 -1
  144. package/dist/exports/utilities.js.map +1 -1
  145. package/dist/fields/config/client.d.ts +1272 -0
  146. package/dist/{config/createClientConfig.d.ts.map → fields/config/client.d.ts.map} +1 -1
  147. package/dist/fields/config/client.js +54 -0
  148. package/dist/fields/config/client.js.map +1 -0
  149. package/dist/fields/config/sanitize.d.ts.map +1 -1
  150. package/dist/fields/config/sanitize.js +2 -0
  151. package/dist/fields/config/sanitize.js.map +1 -1
  152. package/dist/fields/config/schema.d.ts.map +1 -1
  153. package/dist/fields/config/schema.js +1 -2
  154. package/dist/fields/config/schema.js.map +1 -1
  155. package/dist/fields/config/types.d.ts +25 -6
  156. package/dist/fields/config/types.d.ts.map +1 -1
  157. package/dist/fields/config/types.js +1 -1
  158. package/dist/fields/config/types.js.map +1 -1
  159. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  160. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  161. package/dist/fields/hooks/beforeValidate/index.d.ts +2 -1
  162. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  163. package/dist/fields/hooks/beforeValidate/index.js +2 -1
  164. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  165. package/dist/fields/hooks/beforeValidate/promise.d.ts +2 -1
  166. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  167. package/dist/fields/hooks/beforeValidate/promise.js +30 -1
  168. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  169. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +2 -1
  170. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  171. package/dist/fields/hooks/beforeValidate/traverseFields.js +2 -1
  172. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  173. package/dist/fields/setDefaultBeforeDuplicate.d.ts +3 -0
  174. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -0
  175. package/dist/fields/setDefaultBeforeDuplicate.js +23 -0
  176. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -0
  177. package/dist/fields/validations.d.ts +3 -3
  178. package/dist/globals/config/client.d.ts +14 -0
  179. package/dist/globals/config/client.d.ts.map +1 -0
  180. package/dist/globals/config/client.js +42 -0
  181. package/dist/globals/config/client.js.map +1 -0
  182. package/dist/globals/config/types.d.ts +2 -21
  183. package/dist/globals/config/types.d.ts.map +1 -1
  184. package/dist/globals/config/types.js.map +1 -1
  185. package/dist/globals/operations/findOne.d.ts.map +1 -1
  186. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  187. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  188. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  189. package/dist/globals/operations/update.d.ts +1 -9
  190. package/dist/globals/operations/update.d.ts.map +1 -1
  191. package/dist/index.d.ts +16 -14
  192. package/dist/index.d.ts.map +1 -1
  193. package/dist/index.js +13 -9
  194. package/dist/index.js.map +1 -1
  195. package/dist/preferences/operations/findOne.d.ts.map +1 -1
  196. package/dist/preferences/operations/findOne.js +3 -7
  197. package/dist/preferences/operations/findOne.js.map +1 -1
  198. package/dist/preferences/types.d.ts +5 -4
  199. package/dist/preferences/types.d.ts.map +1 -1
  200. package/dist/preferences/types.js.map +1 -1
  201. package/dist/uploads/generateFileData.d.ts.map +1 -1
  202. package/dist/uploads/generateFileData.js +1 -1
  203. package/dist/uploads/generateFileData.js.map +1 -1
  204. package/dist/uploads/getFileByPath.d.ts +1 -2
  205. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  206. package/dist/uploads/getFileByPath.js +1 -2
  207. package/dist/uploads/getFileByPath.js.map +1 -1
  208. package/dist/utilities/createLocalReq.d.ts +1 -1
  209. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  210. package/dist/utilities/createLocalReq.js +20 -23
  211. package/dist/utilities/createLocalReq.js.map +1 -1
  212. package/dist/utilities/fieldSchemaToJSON.d.ts +2 -2
  213. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  214. package/dist/utilities/fieldSchemaToJSON.js +20 -10
  215. package/dist/utilities/fieldSchemaToJSON.js.map +1 -1
  216. package/dist/utilities/flattenTopLevelFields.d.ts +2 -1
  217. package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
  218. package/dist/utilities/flattenTopLevelFields.js +1 -1
  219. package/dist/utilities/flattenTopLevelFields.js.map +1 -1
  220. package/dist/utilities/getEntityPolicies.js +3 -3
  221. package/dist/utilities/getEntityPolicies.js.map +1 -1
  222. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  223. package/dist/utilities/mergeListSearchAndWhere.d.ts +12 -0
  224. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
  225. package/dist/utilities/mergeListSearchAndWhere.js +57 -0
  226. package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
  227. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  228. package/dist/utilities/telemetry/events/adminInit.d.ts +1 -1
  229. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  230. package/dist/utilities/telemetry/events/adminInit.js +1 -1
  231. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  232. package/dist/utilities/telemetry/oneWayHash.d.ts +1 -0
  233. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  234. package/dist/utilities/wait.d.ts +1 -2
  235. package/dist/utilities/wait.d.ts.map +1 -1
  236. package/dist/utilities/wait.js +1 -2
  237. package/dist/utilities/wait.js.map +1 -1
  238. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  239. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -0
  240. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  241. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  242. package/dist/versions/enforceMaxVersions.js +1 -0
  243. package/dist/versions/enforceMaxVersions.js.map +1 -1
  244. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  245. package/dist/versions/getLatestCollectionVersion.js +2 -0
  246. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  247. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  248. package/dist/versions/getLatestGlobalVersion.js +1 -0
  249. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  250. package/dist/versions/saveVersion.d.ts.map +1 -1
  251. package/dist/versions/saveVersion.js +1 -0
  252. package/dist/versions/saveVersion.js.map +1 -1
  253. package/operations.d.ts +1 -0
  254. package/operations.js +1 -0
  255. package/package.json +3 -3
  256. package/types.d.ts +9 -4
  257. package/uploads.d.ts +2 -0
  258. package/uploads.js +3 -0
  259. package/utilities.d.ts +4 -1
  260. package/utilities.js +4 -1
  261. package/components.d.ts +0 -14
  262. package/components.js +0 -71
  263. package/dist/config/createClientConfig.d.ts +0 -1246
  264. package/dist/config/createClientConfig.js +0 -175
  265. package/dist/config/createClientConfig.js.map +0 -1
  266. package/dist/localization/middleware.d.ts +0 -5
  267. package/dist/localization/middleware.d.ts.map +0 -1
  268. package/dist/localization/middleware.js +0 -37
  269. package/dist/localization/middleware.js.map +0 -1
  270. package/dist/localization/sanitizeFallbackLocale.d.ts +0 -3
  271. package/dist/localization/sanitizeFallbackLocale.d.ts.map +0 -1
  272. package/dist/localization/sanitizeFallbackLocale.js +0 -9
  273. package/dist/localization/sanitizeFallbackLocale.js.map +0 -1
  274. package/graphql.d.ts +0 -3
  275. package/graphql.js +0 -27
package/config.d.ts CHANGED
@@ -1,11 +1,14 @@
1
1
  export { buildConfig } from './dist/config/build.js';
2
2
  export * from './dist/config/types.js';
3
3
  export type { FieldTypes } from './dist/admin/forms/FieldTypes.js';
4
+ export { createClientCollectionConfig } from './dist/collections/config/client.js';
4
5
  export { defaults as collectionDefaults } from './dist/collections/config/defaults.js';
5
- export { createClientConfig } from './dist/config/createClientConfig.js';
6
+ export { createClientConfig } from './dist/config/client.js';
6
7
  export { defaults } from './dist/config/defaults.js';
7
8
  export { sanitizeConfig } from './dist/config/sanitize.js';
8
9
  export { baseBlockFields } from './dist/fields/baseFields/baseBlockFields.js';
9
10
  export { baseIDField } from './dist/fields/baseFields/baseIDField.js';
11
+ export { createClientFieldConfig } from './dist/fields/config/client.js';
10
12
  export { sanitizeFields } from './dist/fields/config/sanitize.js';
13
+ export { createClientGlobalConfig } from './dist/globals/config/client.js';
11
14
  //# sourceMappingURL=config.d.ts.map
package/config.js CHANGED
@@ -1,11 +1,14 @@
1
1
  export { buildConfig } from './dist/config/build.js';
2
2
  export * from './dist/config/types.js';
3
+ export { createClientCollectionConfig } from './dist/collections/config/client.js';
3
4
  export { defaults as collectionDefaults } from './dist/collections/config/defaults.js';
4
- export { createClientConfig } from './dist/config/createClientConfig.js';
5
+ export { createClientConfig } from './dist/config/client.js';
5
6
  export { defaults } from './dist/config/defaults.js';
6
7
  export { sanitizeConfig } from './dist/config/sanitize.js';
7
8
  export { baseBlockFields } from './dist/fields/baseFields/baseBlockFields.js';
8
9
  export { baseIDField } from './dist/fields/baseFields/baseIDField.js';
10
+ export { createClientFieldConfig } from './dist/fields/config/client.js';
9
11
  export { sanitizeFields } from './dist/fields/config/sanitize.js';
12
+ export { createClientGlobalConfig } from './dist/globals/config/client.js';
10
13
 
11
14
  //# sourceMappingURL=config.js.map
@@ -2,7 +2,6 @@ import type { JSONSchema4 } from 'json-schema';
2
2
  import type { SanitizedConfig } from '../config/types.js';
3
3
  import type { Field, RichTextField, Validate } from '../fields/config/types.js';
4
4
  import type { PayloadRequest, RequestContext } from '../types/index.js';
5
- import type { CellComponentProps } from './elements/Cell.js';
6
5
  export type RichTextFieldProps<Value extends object, AdapterProps, ExtraFieldProperties = {}> = Omit<RichTextField<Value, AdapterProps, ExtraFieldProperties>, 'type'> & {
7
6
  path?: string;
8
7
  };
@@ -48,12 +47,9 @@ type RichTextAdapterBase<Value extends object = object, AdapterProps = any, Extr
48
47
  }) => Promise<void> | null;
49
48
  validate: Validate<Value, Value, unknown, RichTextField<Value, AdapterProps, ExtraFieldProperties>>;
50
49
  };
51
- export type RichTextAdapter<Value extends object = object, AdapterProps = any, ExtraFieldProperties = {}> = RichTextAdapterBase<Value, AdapterProps, ExtraFieldProperties> & ({
52
- CellComponent: React.FC<CellComponentProps<RichTextField<Value, AdapterProps, ExtraFieldProperties>>>;
50
+ export type RichTextAdapter<Value extends object = object, AdapterProps = any, ExtraFieldProperties = {}> = RichTextAdapterBase<Value, AdapterProps, ExtraFieldProperties> & {
51
+ CellComponent: React.FC<any>;
53
52
  FieldComponent: React.FC<RichTextFieldProps<Value, AdapterProps, ExtraFieldProperties>>;
54
- } | {
55
- LazyCellComponent: () => Promise<React.FC<CellComponentProps<RichTextField<Value, AdapterProps, ExtraFieldProperties>>>>;
56
- LazyFieldComponent: () => Promise<React.FC<RichTextFieldProps<Value, AdapterProps, ExtraFieldProperties>>>;
57
- });
53
+ };
58
54
  export {};
59
55
  //# sourceMappingURL=RichText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/admin/RichText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,MAAM,EACpB,YAAY,EACZ,oBAAoB,GAAG,EAAE,IACvB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,GAAG;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,mBAAmB,CACtB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,YAAY,GAAG,GAAG,EAClB,oBAAoB,GAAG,EAAE,IACvB;IACF,gBAAgB,CAAC,EAAE,CAAC,EAClB,KAAK,EACL,mBAAmB,EACnB,UAAU,GACX,EAAE;QACD,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAA;QAC/D,mBAAmB,EAAE,KAAK,CAAA;QAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACpC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,oBAAoB,EAAE,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,eAAe,CAAA;QACvB,UAAU,EAAE,MAAM,CAAA;KACnB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAClC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,MAAM,EAAE,eAAe,CAAA;QACvB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/B,UAAU,EAAE,MAAM,CAAA;KACnB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,EACd,sBAAsB,EACtB,MAAM,EACN,KAAK,EACL,wBAAwB,EACxB,UAAU,GACX,EAAE;QACD,sBAAsB,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;SAAE,CAAA;QAC9D,MAAM,CAAC,EAAE,eAAe,CAAA;QACxB,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAA;QAC/D;;WAEG;QACH,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAClD,UAAU,EAAE,OAAO,CAAA;KACpB,KAAK,WAAW,CAAA;IACjB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,OAAO,EAAE,cAAc,CAAA;QACvB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAA;QAC/D,QAAQ,EAAE,OAAO,CAAA;QACjB,cAAc,EAAE,OAAO,CAAA;QACvB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;QACnC,GAAG,EAAE,cAAc,CAAA;QACnB,gBAAgB,EAAE,OAAO,CAAA;QACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACpC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,QAAQ,CAChB,KAAK,EACL,KAAK,EACL,OAAO,EACP,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CACzD,CAAA;CACF,CAAA;AAED,MAAM,MAAM,eAAe,CACzB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,YAAY,GAAG,GAAG,EAClB,oBAAoB,GAAG,EAAE,IACvB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,GAChE,CACI;IACE,aAAa,EAAE,KAAK,CAAC,EAAE,CACrB,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAC7E,CAAA;IACD,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAA;CACxF,GACD;IACE,iBAAiB,EAAE,MAAM,OAAO,CAC9B,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CACvF,CAAA;IACD,kBAAkB,EAAE,MAAM,OAAO,CAC/B,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CACxE,CAAA;CACF,CACJ,CAAA"}
1
+ {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/admin/RichText.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/admin/RichText.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\n\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { Field, RichTextField, Validate } from '../fields/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../types/index.js'\nimport type { CellComponentProps } from './elements/Cell.js'\n\nexport type RichTextFieldProps<\n Value extends object,\n AdapterProps,\n ExtraFieldProperties = {},\n> = Omit<RichTextField<Value, AdapterProps, ExtraFieldProperties>, 'type'> & {\n path?: string\n}\n\ntype RichTextAdapterBase<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = {\n afterReadPromise?: ({\n field,\n incomingEditorState,\n siblingDoc,\n }: {\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n incomingEditorState: Value\n siblingDoc: Record<string, unknown>\n }) => Promise<void> | null\n generateComponentMap: (args: {\n config: SanitizedConfig\n schemaPath: string\n }) => Map<string, React.ReactNode>\n generateSchemaMap?: (args: {\n config: SanitizedConfig\n schemaMap: Map<string, Field[]>\n schemaPath: string\n }) => Map<string, Field[]>\n outputSchema?: ({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n }: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n populationPromise?: (data: {\n context: RequestContext\n currentDepth?: number\n depth: number\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n findMany: boolean\n flattenLocales: boolean\n overrideAccess?: boolean\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: Record<string, unknown>\n }) => Promise<void> | null\n validate: Validate<\n Value,\n Value,\n unknown,\n RichTextField<Value, AdapterProps, ExtraFieldProperties>\n >\n}\n\nexport type RichTextAdapter<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = RichTextAdapterBase<Value, AdapterProps, ExtraFieldProperties> &\n (\n | {\n CellComponent: React.FC<\n CellComponentProps<RichTextField<Value, AdapterProps, ExtraFieldProperties>>\n >\n FieldComponent: React.FC<RichTextFieldProps<Value, AdapterProps, ExtraFieldProperties>>\n }\n | {\n LazyCellComponent: () => Promise<\n React.FC<CellComponentProps<RichTextField<Value, AdapterProps, ExtraFieldProperties>>>\n >\n LazyFieldComponent: () => Promise<\n React.FC<RichTextFieldProps<Value, AdapterProps, ExtraFieldProperties>>\n >\n }\n )\n"],"names":[],"mappings":"AA2EA,WAoBG"}
1
+ {"version":3,"sources":["../../src/admin/RichText.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\n\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { Field, RichTextField, Validate } from '../fields/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../types/index.js'\n\nexport type RichTextFieldProps<\n Value extends object,\n AdapterProps,\n ExtraFieldProperties = {},\n> = Omit<RichTextField<Value, AdapterProps, ExtraFieldProperties>, 'type'> & {\n path?: string\n}\n\ntype RichTextAdapterBase<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = {\n afterReadPromise?: ({\n field,\n incomingEditorState,\n siblingDoc,\n }: {\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n incomingEditorState: Value\n siblingDoc: Record<string, unknown>\n }) => Promise<void> | null\n generateComponentMap: (args: {\n config: SanitizedConfig\n schemaPath: string\n }) => Map<string, React.ReactNode>\n generateSchemaMap?: (args: {\n config: SanitizedConfig\n schemaMap: Map<string, Field[]>\n schemaPath: string\n }) => Map<string, Field[]>\n outputSchema?: ({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n }: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n populationPromise?: (data: {\n context: RequestContext\n currentDepth?: number\n depth: number\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n findMany: boolean\n flattenLocales: boolean\n overrideAccess?: boolean\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: Record<string, unknown>\n }) => Promise<void> | null\n validate: Validate<\n Value,\n Value,\n unknown,\n RichTextField<Value, AdapterProps, ExtraFieldProperties>\n >\n}\n\nexport type RichTextAdapter<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = RichTextAdapterBase<Value, AdapterProps, ExtraFieldProperties> & {\n CellComponent: React.FC<any>\n FieldComponent: React.FC<RichTextFieldProps<Value, AdapterProps, ExtraFieldProperties>>\n}\n"],"names":[],"mappings":"AA0EA,WAOC"}
@@ -1,4 +1,5 @@
1
1
  export type ErrorProps = {
2
+ CustomError?: React.ReactNode;
2
3
  alignCaret?: 'center' | 'left' | 'right';
3
4
  message?: string;
4
5
  path?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/admin/forms/Error.ts"],"sourcesContent":["export type ErrorProps = {\n alignCaret?: 'center' | 'left' | 'right'\n message?: string\n path?: string\n showError?: boolean\n}\n"],"names":[],"mappings":"AAAA,WAKC"}
1
+ {"version":3,"sources":["../../../src/admin/forms/Error.ts"],"sourcesContent":["export type ErrorProps = {\n CustomError?: React.ReactNode\n alignCaret?: 'center' | 'left' | 'right'\n message?: string\n path?: string\n showError?: boolean\n}\n"],"names":[],"mappings":"AAAA,WAMC"}
@@ -1,4 +1,5 @@
1
1
  import type { ClientValidate, Field } from '../../fields/config/types.js';
2
+ import type { Where } from '../../types/index.js';
2
3
  export type Data = {
3
4
  [key: string]: any;
4
5
  };
@@ -8,11 +9,15 @@ export type Row = {
8
9
  errorPaths?: Set<string>;
9
10
  id: string;
10
11
  };
12
+ export type FilterOptionsResult = {
13
+ [relation: string]: Where | boolean;
14
+ };
11
15
  export type FormField = {
12
16
  disableFormData?: boolean;
13
17
  errorMessage?: string;
14
18
  errorPaths?: Set<string>;
15
19
  fieldSchema?: Field;
20
+ filterOptions?: FilterOptionsResult;
16
21
  initialValue: unknown;
17
22
  passesCondition?: boolean;
18
23
  rows?: Row[];
@@ -1 +1 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzE,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,CAAA"}
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/admin/forms/Form.ts"],"sourcesContent":["import type { ClientValidate, Field } from '../../fields/config/types.js'\n\nexport type Data = {\n [key: string]: any\n}\n\nexport type Row = {\n blockType?: string\n collapsed?: boolean\n errorPaths?: Set<string>\n id: string\n}\n\nexport type FormField = {\n disableFormData?: boolean\n errorMessage?: string\n errorPaths?: Set<string>\n fieldSchema?: Field\n initialValue: unknown\n passesCondition?: boolean\n rows?: Row[]\n valid: boolean\n validate?: ClientValidate\n value: unknown\n}\n\nexport type FormState = {\n [path: string]: FormField\n}\n"],"names":[],"mappings":"AA0BA,WAEC"}
1
+ {"version":3,"sources":["../../../src/admin/forms/Form.ts"],"sourcesContent":["import type { ClientValidate, Field } from '../../fields/config/types.js'\nimport type { Where } from '../../types/index.js'\n\nexport type Data = {\n [key: string]: any\n}\n\nexport type Row = {\n blockType?: string\n collapsed?: boolean\n errorPaths?: Set<string>\n id: string\n}\n\nexport type FilterOptionsResult = {\n [relation: string]: Where | boolean\n}\n\nexport type FormField = {\n disableFormData?: boolean\n errorMessage?: string\n errorPaths?: Set<string>\n fieldSchema?: Field\n filterOptions?: FilterOptionsResult\n initialValue: unknown\n passesCondition?: boolean\n rows?: Row[]\n valid: boolean\n validate?: ClientValidate\n value: unknown\n}\n\nexport type FormState = {\n [path: string]: FormField\n}\n"],"names":[],"mappings":"AAgCA,WAEC"}
@@ -1,6 +1,7 @@
1
1
  export type LabelProps = {
2
+ CustomLabel?: React.ReactNode;
2
3
  htmlFor?: string;
3
- label?: JSX.Element | Record<string, string> | false | string;
4
+ label?: Record<string, string> | false | string;
4
5
  required?: boolean;
5
6
  };
6
7
  //# sourceMappingURL=Label.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Label.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM,CAAA;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Label.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/admin/forms/Label.ts"],"sourcesContent":["export type LabelProps = {\n htmlFor?: string\n label?: JSX.Element | Record<string, string> | false | string\n required?: boolean\n}\n"],"names":[],"mappings":"AAAA,WAIC"}
1
+ {"version":3,"sources":["../../../src/admin/forms/Label.ts"],"sourcesContent":["export type LabelProps = {\n CustomLabel?: React.ReactNode\n htmlFor?: string\n label?: Record<string, string> | false | string\n required?: boolean\n}\n"],"names":[],"mappings":"AAAA,WAKC"}
@@ -1,10 +1,3 @@
1
- import type { Data } from './Form.js';
2
- export type RowLabelArgs = {
3
- data: Data;
4
- index?: number;
5
- path: string;
6
- };
7
- export type RowLabelFunction = (args: RowLabelArgs) => string;
8
- export type RowLabelComponent = React.ComponentType<RowLabelArgs>;
9
- export type RowLabel = Record<string, string> | RowLabelComponent | RowLabelFunction | string;
1
+ export type RowLabelComponent = React.ComponentType;
2
+ export type RowLabel = Record<string, string> | RowLabelComponent | string;
10
3
  //# sourceMappingURL=RowLabel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RowLabel.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/RowLabel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAA;AAE7D,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;AAEjE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"RowLabel.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/RowLabel.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAA;AAEnD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,GAAG,MAAM,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/admin/forms/RowLabel.ts"],"sourcesContent":["import type { Data } from './Form.js'\n\nexport type RowLabelArgs = {\n data: Data\n index?: number\n path: string\n}\n\nexport type RowLabelFunction = (args: RowLabelArgs) => string\n\nexport type RowLabelComponent = React.ComponentType<RowLabelArgs>\n\nexport type RowLabel = Record<string, string> | RowLabelComponent | RowLabelFunction | string\n"],"names":[],"mappings":"AAYA,WAA6F"}
1
+ {"version":3,"sources":["../../../src/admin/forms/RowLabel.ts"],"sourcesContent":["export type RowLabelComponent = React.ComponentType\n\nexport type RowLabel = Record<string, string> | RowLabelComponent | string\n"],"names":[],"mappings":"AAEA,WAA0E"}
@@ -13,8 +13,8 @@ export type { CustomSaveDraftButtonProps } from './elements/SaveDraftButton.js';
13
13
  export type { DocumentTab, DocumentTabComponent, DocumentTabCondition, DocumentTabConfig, DocumentTabProps, } from './elements/Tab.js';
14
14
  export type { ErrorProps } from './forms/Error.js';
15
15
  export type { Description, DescriptionComponent, DescriptionFunction, } from './forms/FieldDescription.js';
16
- export type { Data, FormField, FormState, Row } from './forms/Form.js';
16
+ export type { Data, FilterOptionsResult, FormField, FormState, Row } from './forms/Form.js';
17
17
  export type { LabelProps } from './forms/Label.js';
18
18
  export type { RowLabel, RowLabelComponent } from './forms/RowLabel.js';
19
- export type { AdminViewComponent, EditViewProps, InitPageResult, ServerSideEditViewProps, } from './views/types.js';
19
+ export type { AdminViewComponent, AdminViewProps, EditViewProps, InitPageResult, ServerSideEditViewProps, } from './views/types.js';
20
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/admin/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACxE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC5F,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAChF,YAAY,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACtE,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,uBAAuB,GACxB,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/admin/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACxE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC5F,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAChF,YAAY,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAC3F,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEtE,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,EACd,uBAAuB,GACxB,MAAM,kBAAkB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/admin/types.ts"],"sourcesContent":["export type { RichTextAdapter, RichTextFieldProps } from './RichText.js'\nexport type { CellComponentProps, CellProps } from './elements/Cell.js'\nexport type { ConditionalDateProps } from './elements/DatePicker.js'\nexport type { DayPickerProps, SharedProps, TimePickerProps } from './elements/DatePicker.js'\nexport type { DefaultPreviewButtonProps } from './elements/PreviewButton.js'\nexport type { CustomPreviewButtonProps } from './elements/PreviewButton.js'\nexport type { DefaultPublishButtonProps } from './elements/PublishButton.js'\nexport type { CustomPublishButtonProps } from './elements/PublishButton.js'\nexport type { DefaultSaveButtonProps } from './elements/SaveButton.js'\nexport type { CustomSaveButtonProps } from './elements/SaveButton.js'\nexport type { DefaultSaveDraftButtonProps } from './elements/SaveDraftButton.js'\nexport type { CustomSaveDraftButtonProps } from './elements/SaveDraftButton.js'\nexport type {\n DocumentTab,\n DocumentTabComponent,\n DocumentTabCondition,\n DocumentTabConfig,\n DocumentTabProps,\n} from './elements/Tab.js'\nexport type { ErrorProps } from './forms/Error.js'\nexport type {\n Description,\n DescriptionComponent,\n DescriptionFunction,\n} from './forms/FieldDescription.js'\nexport type { Data, FormField, FormState, Row } from './forms/Form.js'\nexport type { LabelProps } from './forms/Label.js'\nexport type { RowLabel, RowLabelComponent } from './forms/RowLabel.js'\nexport type {\n AdminViewComponent,\n EditViewProps,\n InitPageResult,\n ServerSideEditViewProps,\n} from './views/types.js'\n"],"names":[],"mappings":"AA4BA,WAKyB"}
1
+ {"version":3,"sources":["../../src/admin/types.ts"],"sourcesContent":["export type { RichTextAdapter, RichTextFieldProps } from './RichText.js'\nexport type { CellComponentProps, CellProps } from './elements/Cell.js'\nexport type { ConditionalDateProps } from './elements/DatePicker.js'\nexport type { DayPickerProps, SharedProps, TimePickerProps } from './elements/DatePicker.js'\nexport type { DefaultPreviewButtonProps } from './elements/PreviewButton.js'\nexport type { CustomPreviewButtonProps } from './elements/PreviewButton.js'\nexport type { DefaultPublishButtonProps } from './elements/PublishButton.js'\nexport type { CustomPublishButtonProps } from './elements/PublishButton.js'\nexport type { DefaultSaveButtonProps } from './elements/SaveButton.js'\nexport type { CustomSaveButtonProps } from './elements/SaveButton.js'\nexport type { DefaultSaveDraftButtonProps } from './elements/SaveDraftButton.js'\nexport type { CustomSaveDraftButtonProps } from './elements/SaveDraftButton.js'\nexport type {\n DocumentTab,\n DocumentTabComponent,\n DocumentTabCondition,\n DocumentTabConfig,\n DocumentTabProps,\n} from './elements/Tab.js'\nexport type { ErrorProps } from './forms/Error.js'\nexport type {\n Description,\n DescriptionComponent,\n DescriptionFunction,\n} from './forms/FieldDescription.js'\nexport type { Data, FilterOptionsResult, FormField, FormState, Row } from './forms/Form.js'\nexport type { LabelProps } from './forms/Label.js'\nexport type { RowLabel, RowLabelComponent } from './forms/RowLabel.js'\n\nexport type {\n AdminViewComponent,\n AdminViewProps,\n EditViewProps,\n InitPageResult,\n ServerSideEditViewProps,\n} from './views/types.js'\n"],"names":[],"mappings":"AA6BA,WAMyB"}
@@ -1,5 +1,5 @@
1
1
  import type { Translations } from '@payloadcms/translations';
2
- import type { Permissions, User } from '../../auth/index.js';
2
+ import type { Permissions } from '../../auth/index.js';
3
3
  import type { SanitizedCollectionConfig } from '../../collections/config/types.js';
4
4
  import type { SanitizedGlobalConfig } from '../../globals/config/types.js';
5
5
  import type { PayloadRequest } from '../../types/index.js';
@@ -12,8 +12,13 @@ export type AdminViewConfig = {
12
12
  strict?: boolean;
13
13
  };
14
14
  export type AdminViewProps = {
15
- canAccessAdmin?: boolean;
16
- user: User | null | undefined;
15
+ initPageResult: InitPageResult;
16
+ params?: {
17
+ [key: string]: string | string[] | undefined;
18
+ };
19
+ searchParams: {
20
+ [key: string]: string | string[] | undefined;
21
+ };
17
22
  };
18
23
  export type AdminViewComponent = React.ComponentType<AdminViewProps>;
19
24
  export type AdminView = AdminViewComponent | AdminViewConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/admin/views/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,kBAAkB,CAAA;IAC7B,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;AAEpE,MAAM,MAAM,SAAS,GAAG,kBAAkB,GAAG,eAAe,CAAA;AAE5D,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/admin/views/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,kBAAkB,CAAA;IAC7B,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IACzD,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;AAEpE,MAAM,MAAM,SAAS,GAAG,kBAAkB,GAAG,eAAe,CAAA;AAE5D,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/admin/views/types.ts"],"sourcesContent":["import type { Translations } from '@payloadcms/translations'\n\nimport type { Permissions, User } from '../../auth/index.js'\nimport type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { PayloadRequest } from '../../types/index.js'\n\nexport type AdminViewConfig = {\n Component: AdminViewComponent\n /** Whether the path should be matched exactly or as a prefix */\n exact?: boolean\n path: string\n sensitive?: boolean\n strict?: boolean\n}\n\nexport type AdminViewProps = {\n canAccessAdmin?: boolean\n user: User | null | undefined\n}\n\nexport type AdminViewComponent = React.ComponentType<AdminViewProps>\n\nexport type AdminView = AdminViewComponent | AdminViewConfig\n\nexport type EditViewProps = {\n collectionSlug?: string\n globalSlug?: string\n}\n\nexport type InitPageResult = {\n collectionConfig?: SanitizedCollectionConfig\n cookies: Map<string, string>\n docID?: string\n globalConfig?: SanitizedGlobalConfig\n locale: Locale\n permissions: Permissions\n req: PayloadRequest\n translations: Translations\n}\n\nexport type ServerSideEditViewProps = {\n initPageResult: InitPageResult\n routeSegments: string[]\n searchParams: { [key: string]: string | string[] | undefined }\n}\n"],"names":[],"mappings":"AAyCA,WAIC"}
1
+ {"version":3,"sources":["../../../src/admin/views/types.ts"],"sourcesContent":["import type { Translations } from '@payloadcms/translations'\n\nimport type { Permissions } from '../../auth/index.js'\nimport type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { PayloadRequest } from '../../types/index.js'\n\nexport type AdminViewConfig = {\n Component: AdminViewComponent\n /** Whether the path should be matched exactly or as a prefix */\n exact?: boolean\n path: string\n sensitive?: boolean\n strict?: boolean\n}\n\nexport type AdminViewProps = {\n initPageResult: InitPageResult\n params?: { [key: string]: string | string[] | undefined }\n searchParams: { [key: string]: string | string[] | undefined }\n}\n\nexport type AdminViewComponent = React.ComponentType<AdminViewProps>\n\nexport type AdminView = AdminViewComponent | AdminViewConfig\n\nexport type EditViewProps = {\n collectionSlug?: string\n globalSlug?: string\n}\n\nexport type InitPageResult = {\n collectionConfig?: SanitizedCollectionConfig\n cookies: Map<string, string>\n docID?: string\n globalConfig?: SanitizedGlobalConfig\n locale: Locale\n permissions: Permissions\n req: PayloadRequest\n translations: Translations\n}\n\nexport type ServerSideEditViewProps = {\n initPageResult: InitPageResult\n routeSegments: string[]\n searchParams: { [key: string]: string | string[] | undefined }\n}\n"],"names":[],"mappings":"AA0CA,WAIC"}
@@ -45,7 +45,7 @@ export default [
45
45
  hidden: true,
46
46
  hooks: {
47
47
  beforeValidate: [
48
- async ({ data, req, value })=>{
48
+ ({ data, req, value })=>{
49
49
  if (data.apiKey) {
50
50
  return crypto.createHmac('sha1', req.payload.secret).update(data.apiKey).digest('hex');
51
51
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/baseFields/apiKey.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport type { Field, FieldHook } from '../../fields/config/types.js'\n\nimport { extractTranslations } from '../../translations/extractTranslations.js'\n\nconst labels = extractTranslations(['authentication:enableAPIKey', 'authentication:apiKey'])\n\nconst encryptKey: FieldHook = ({ req, value }) =>\n value ? req.payload.encrypt(value as string) : null\nconst decryptKey: FieldHook = ({ req, value }) =>\n value ? req.payload.decrypt(value as string) : undefined\n\nexport default [\n {\n name: 'enableAPIKey',\n type: 'checkbox',\n admin: {\n components: {\n Field: () => null,\n },\n },\n defaultValue: false,\n label: labels['authentication:enableAPIKey'],\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: () => null,\n },\n },\n hooks: {\n afterRead: [decryptKey],\n beforeChange: [encryptKey],\n },\n label: labels['authentication:apiKey'],\n },\n {\n name: 'apiKeyIndex',\n type: 'text',\n admin: {\n disabled: true,\n },\n hidden: true,\n hooks: {\n beforeValidate: [\n async ({ data, req, value }) => {\n if (data.apiKey) {\n return crypto\n .createHmac('sha1', req.payload.secret)\n .update(data.apiKey as string)\n .digest('hex')\n }\n if (data.enableAPIKey === false) {\n return null\n }\n return value\n },\n ],\n },\n },\n] as Field[]\n"],"names":["crypto","extractTranslations","labels","encryptKey","req","value","payload","encrypt","decryptKey","decrypt","undefined","name","type","admin","components","Field","defaultValue","label","hooks","afterRead","beforeChange","disabled","hidden","beforeValidate","data","apiKey","createHmac","secret","update","digest","enableAPIKey"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAI3B,SAASC,mBAAmB,QAAQ,4CAA2C;AAE/E,MAAMC,SAASD,oBAAoB;IAAC;IAA+B;CAAwB;AAE3F,MAAME,aAAwB,CAAC,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAC3CA,QAAQD,IAAIE,OAAO,CAACC,OAAO,CAACF,SAAmB;AACjD,MAAMG,aAAwB,CAAC,EAAEJ,GAAG,EAAEC,KAAK,EAAE,GAC3CA,QAAQD,IAAIE,OAAO,CAACG,OAAO,CAACJ,SAAmBK;AAEjD,eAAe;IACb;QACEC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO,IAAM;YACf;QACF;QACAC,cAAc;QACdC,OAAOf,MAAM,CAAC,8BAA8B;IAC9C;IACA;QACES,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO,IAAM;YACf;QACF;QACAG,OAAO;YACLC,WAAW;gBAACX;aAAW;YACvBY,cAAc;gBAACjB;aAAW;QAC5B;QACAc,OAAOf,MAAM,CAAC,wBAAwB;IACxC;IACA;QACES,MAAM;QACNC,MAAM;QACNC,OAAO;YACLQ,UAAU;QACZ;QACAC,QAAQ;QACRJ,OAAO;YACLK,gBAAgB;gBACd,OAAO,EAAEC,IAAI,EAAEpB,GAAG,EAAEC,KAAK,EAAE;oBACzB,IAAImB,KAAKC,MAAM,EAAE;wBACf,OAAOzB,OACJ0B,UAAU,CAAC,QAAQtB,IAAIE,OAAO,CAACqB,MAAM,EACrCC,MAAM,CAACJ,KAAKC,MAAM,EAClBI,MAAM,CAAC;oBACZ;oBACA,IAAIL,KAAKM,YAAY,KAAK,OAAO;wBAC/B,OAAO;oBACT;oBACA,OAAOzB;gBACT;aACD;QACH;IACF;CACD,CAAW"}
1
+ {"version":3,"sources":["../../../src/auth/baseFields/apiKey.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport type { Field, FieldHook } from '../../fields/config/types.js'\n\nimport { extractTranslations } from '../../translations/extractTranslations.js'\n\nconst labels = extractTranslations(['authentication:enableAPIKey', 'authentication:apiKey'])\n\nconst encryptKey: FieldHook = ({ req, value }) =>\n value ? req.payload.encrypt(value as string) : null\nconst decryptKey: FieldHook = ({ req, value }) =>\n value ? req.payload.decrypt(value as string) : undefined\n\nexport default [\n {\n name: 'enableAPIKey',\n type: 'checkbox',\n admin: {\n components: {\n Field: () => null,\n },\n },\n defaultValue: false,\n label: labels['authentication:enableAPIKey'],\n },\n {\n name: 'apiKey',\n type: 'text',\n admin: {\n components: {\n Field: () => null,\n },\n },\n hooks: {\n afterRead: [decryptKey],\n beforeChange: [encryptKey],\n },\n label: labels['authentication:apiKey'],\n },\n {\n name: 'apiKeyIndex',\n type: 'text',\n admin: {\n disabled: true,\n },\n hidden: true,\n hooks: {\n beforeValidate: [\n ({ data, req, value }) => {\n if (data.apiKey) {\n return crypto\n .createHmac('sha1', req.payload.secret)\n .update(data.apiKey as string)\n .digest('hex')\n }\n if (data.enableAPIKey === false) {\n return null\n }\n return value\n },\n ],\n },\n },\n] as Field[]\n"],"names":["crypto","extractTranslations","labels","encryptKey","req","value","payload","encrypt","decryptKey","decrypt","undefined","name","type","admin","components","Field","defaultValue","label","hooks","afterRead","beforeChange","disabled","hidden","beforeValidate","data","apiKey","createHmac","secret","update","digest","enableAPIKey"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAI3B,SAASC,mBAAmB,QAAQ,4CAA2C;AAE/E,MAAMC,SAASD,oBAAoB;IAAC;IAA+B;CAAwB;AAE3F,MAAME,aAAwB,CAAC,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAC3CA,QAAQD,IAAIE,OAAO,CAACC,OAAO,CAACF,SAAmB;AACjD,MAAMG,aAAwB,CAAC,EAAEJ,GAAG,EAAEC,KAAK,EAAE,GAC3CA,QAAQD,IAAIE,OAAO,CAACG,OAAO,CAACJ,SAAmBK;AAEjD,eAAe;IACb;QACEC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO,IAAM;YACf;QACF;QACAC,cAAc;QACdC,OAAOf,MAAM,CAAC,8BAA8B;IAC9C;IACA;QACES,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO,IAAM;YACf;QACF;QACAG,OAAO;YACLC,WAAW;gBAACX;aAAW;YACvBY,cAAc;gBAACjB;aAAW;QAC5B;QACAc,OAAOf,MAAM,CAAC,wBAAwB;IACxC;IACA;QACES,MAAM;QACNC,MAAM;QACNC,OAAO;YACLQ,UAAU;QACZ;QACAC,QAAQ;QACRJ,OAAO;YACLK,gBAAgB;gBACd,CAAC,EAAEC,IAAI,EAAEpB,GAAG,EAAEC,KAAK,EAAE;oBACnB,IAAImB,KAAKC,MAAM,EAAE;wBACf,OAAOzB,OACJ0B,UAAU,CAAC,QAAQtB,IAAIE,OAAO,CAACqB,MAAM,EACrCC,MAAM,CAACJ,KAAKC,MAAM,EAClBI,MAAM,CAAC;oBACZ;oBACA,IAAIL,KAAKM,YAAY,KAAK,OAAO;wBAC/B,OAAO;oBACT;oBACA,OAAOzB;gBACT;aACD;QACH;IACF;CACD,CAAW"}
@@ -13,6 +13,10 @@ type CookieOptions = {
13
13
  };
14
14
  export declare const generateCookies: (cookies: CookieOptions[]) => string;
15
15
  export declare const generateCookie: (args: CookieOptions) => string;
16
+ type GetCookieExpirationArgs = {
17
+ seconds: number;
18
+ };
19
+ export declare const getCookieExpiration: ({ seconds }: GetCookieExpirationArgs) => Date;
16
20
  type GeneratePayloadCookieArgs = {
17
21
  collectionConfig: SanitizedCollectionConfig;
18
22
  payload: Payload;
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/auth/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AACjF,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACpC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,eAAe,YAAa,aAAa,EAAE,KAAG,MAE1D,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,aAAa,KAAG,MAoCpD,CAAA;AAeD,KAAK,yBAAyB,GAAG;IAE/B,gBAAgB,EAAE,yBAAyB,CAAA;IAE3C,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AACD,eAAO,MAAM,qBAAqB,0CAI/B,yBAAyB,KAAG,MAkB9B,CAAA;AAED,eAAO,MAAM,4BAA4B,mCAGtC,KAAK,yBAAyB,EAAE,OAAO,CAAC,KAAG,MAmB7C,CAAA;AAED,eAAO,MAAM,YAAY,YAAa,OAAO,CAAC,SAAS,CAAC,KAAG,IAAI,MAAM,EAAE,MAAM,CAoB5E,CAAA"}
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/auth/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AACjF,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACpC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,eAAe,YAAa,aAAa,EAAE,KAAG,MAE1D,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,aAAa,KAAG,MAoCpD,CAAA;AAED,KAAK,uBAAuB,GAAG;IAK7B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,eAAO,MAAM,mBAAmB,gBAAwB,uBAAuB,SAI9E,CAAA;AAED,KAAK,yBAAyB,GAAG;IAE/B,gBAAgB,EAAE,yBAAyB,CAAA;IAE3C,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AACD,eAAO,MAAM,qBAAqB,0CAI/B,yBAAyB,KAAG,MAkB9B,CAAA;AAED,eAAO,MAAM,4BAA4B,mCAGtC,KAAK,yBAAyB,EAAE,OAAO,CAAC,KAAG,MAmB7C,CAAA;AAED,eAAO,MAAM,YAAY,YAAa,OAAO,CAAC,SAAS,CAAC,KAAG,IAAI,MAAM,EAAE,MAAM,CAoB5E,CAAA"}
@@ -28,7 +28,7 @@ export const generateCookie = (args)=>{
28
28
  }
29
29
  return cookieString;
30
30
  };
31
- const getCookieExpiration = ({ seconds = 7200 })=>{
31
+ export const getCookieExpiration = ({ seconds = 7200 })=>{
32
32
  const currentTime = new Date();
33
33
  currentTime.setSeconds(currentTime.getSeconds() + seconds);
34
34
  return currentTime;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/cookies.ts"],"sourcesContent":["import type { Payload } from '../index.js'\nimport type { SanitizedCollectionConfig } from './../collections/config/types.js'\ntype CookieOptions = {\n domain?: string\n expires?: Date\n httpOnly?: boolean\n maxAge?: number\n name: string\n path?: string\n sameSite?: 'Lax' | 'None' | 'Strict'\n secure?: boolean\n value?: string\n}\n\nexport const generateCookies = (cookies: CookieOptions[]): string => {\n return cookies.map((options) => generateCookie(options)).join('; ')\n}\n\nexport const generateCookie = (args: CookieOptions): string => {\n const { name, domain, expires, httpOnly, maxAge, path, sameSite, secure: secureArg, value } = args\n\n let cookieString = `${name}=${value || ''}`\n\n const secure = secureArg || sameSite === 'None'\n\n if (expires) {\n cookieString += `; Expires=${expires.toUTCString()}`\n }\n\n if (maxAge) {\n cookieString += `; Max-Age=${maxAge}`\n }\n\n if (domain) {\n cookieString += `; Domain=${domain}`\n }\n\n if (path) {\n cookieString += `; Path=${path}`\n }\n\n if (secure) {\n cookieString += '; Secure'\n }\n\n if (httpOnly) {\n cookieString += '; HttpOnly'\n }\n\n if (sameSite) {\n cookieString += `; SameSite=${sameSite}`\n }\n\n return cookieString\n}\n\ntype GetCookieExpirationArgs = {\n /*\n The number of seconds until the cookie expires\n @default 7200 seconds (2 hours)\n */\n seconds: number\n}\nconst getCookieExpiration = ({ seconds = 7200 }: GetCookieExpirationArgs) => {\n const currentTime = new Date()\n currentTime.setSeconds(currentTime.getSeconds() + seconds)\n return currentTime\n}\n\ntype GeneratePayloadCookieArgs = {\n /* The auth collection config */\n collectionConfig: SanitizedCollectionConfig\n /* An instance of payload */\n payload: Payload\n /* The token to be stored in the cookie */\n token: string\n}\nexport const generatePayloadCookie = ({\n collectionConfig,\n payload,\n token,\n}: GeneratePayloadCookieArgs): string => {\n const sameSite =\n typeof collectionConfig.auth.cookies.sameSite === 'string'\n ? collectionConfig.auth.cookies.sameSite\n : collectionConfig.auth.cookies.sameSite\n ? 'Strict'\n : undefined\n\n return generateCookie({\n name: `${payload.config.cookiePrefix}-token`,\n domain: collectionConfig.auth.cookies.domain ?? undefined,\n expires: getCookieExpiration({ seconds: collectionConfig.auth.tokenExpiration }),\n httpOnly: true,\n path: '/',\n sameSite,\n secure: collectionConfig.auth.cookies.secure,\n value: token,\n })\n}\n\nexport const generateExpiredPayloadCookie = ({\n collectionConfig,\n payload,\n}: Omit<GeneratePayloadCookieArgs, 'token'>): string => {\n const sameSite =\n typeof collectionConfig.auth.cookies.sameSite === 'string'\n ? collectionConfig.auth.cookies.sameSite\n : collectionConfig.auth.cookies.sameSite\n ? 'Strict'\n : undefined\n\n const expires = new Date(Date.now() - 1000)\n\n return generateCookie({\n name: `${payload.config.cookiePrefix}-token`,\n domain: collectionConfig.auth.cookies.domain ?? undefined,\n expires,\n httpOnly: true,\n path: '/',\n sameSite,\n secure: collectionConfig.auth.cookies.secure,\n })\n}\n\nexport const parseCookies = (headers: Request['headers']): Map<string, string> => {\n const cookieMap = new Map<string, string>()\n const cookie = headers.get('Cookie')\n\n if (cookie) {\n cookie.split(';').forEach((cookie) => {\n const parts = cookie.split('=')\n const key = parts.shift().trim()\n const encodedValue = parts.join('=')\n\n try {\n const decodedValue = decodeURI(encodedValue)\n cookieMap.set(key, decodedValue)\n } catch (e) {\n return null\n }\n })\n }\n\n return cookieMap\n}\n"],"names":["generateCookies","cookies","map","options","generateCookie","join","args","name","domain","expires","httpOnly","maxAge","path","sameSite","secure","secureArg","value","cookieString","toUTCString","getCookieExpiration","seconds","currentTime","Date","setSeconds","getSeconds","generatePayloadCookie","collectionConfig","payload","token","auth","undefined","config","cookiePrefix","tokenExpiration","generateExpiredPayloadCookie","now","parseCookies","headers","cookieMap","Map","cookie","get","split","forEach","parts","key","shift","trim","encodedValue","decodedValue","decodeURI","set","e"],"mappings":"AAcA,OAAO,MAAMA,kBAAkB,CAACC;IAC9B,OAAOA,QAAQC,GAAG,CAAC,CAACC,UAAYC,eAAeD,UAAUE,IAAI,CAAC;AAChE,EAAC;AAED,OAAO,MAAMD,iBAAiB,CAACE;IAC7B,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,QAAQC,SAAS,EAAEC,KAAK,EAAE,GAAGV;IAE9F,IAAIW,eAAe,CAAC,EAAEV,KAAK,CAAC,EAAES,SAAS,GAAG,CAAC;IAE3C,MAAMF,SAASC,aAAaF,aAAa;IAEzC,IAAIJ,SAAS;QACXQ,gBAAgB,CAAC,UAAU,EAAER,QAAQS,WAAW,GAAG,CAAC;IACtD;IAEA,IAAIP,QAAQ;QACVM,gBAAgB,CAAC,UAAU,EAAEN,OAAO,CAAC;IACvC;IAEA,IAAIH,QAAQ;QACVS,gBAAgB,CAAC,SAAS,EAAET,OAAO,CAAC;IACtC;IAEA,IAAII,MAAM;QACRK,gBAAgB,CAAC,OAAO,EAAEL,KAAK,CAAC;IAClC;IAEA,IAAIE,QAAQ;QACVG,gBAAgB;IAClB;IAEA,IAAIP,UAAU;QACZO,gBAAgB;IAClB;IAEA,IAAIJ,UAAU;QACZI,gBAAgB,CAAC,WAAW,EAAEJ,SAAS,CAAC;IAC1C;IAEA,OAAOI;AACT,EAAC;AASD,MAAME,sBAAsB,CAAC,EAAEC,UAAU,IAAI,EAA2B;IACtE,MAAMC,cAAc,IAAIC;IACxBD,YAAYE,UAAU,CAACF,YAAYG,UAAU,KAAKJ;IAClD,OAAOC;AACT;AAUA,OAAO,MAAMI,wBAAwB,CAAC,EACpCC,gBAAgB,EAChBC,OAAO,EACPC,KAAK,EACqB;IAC1B,MAAMf,WACJ,OAAOa,iBAAiBG,IAAI,CAAC5B,OAAO,CAACY,QAAQ,KAAK,WAC9Ca,iBAAiBG,IAAI,CAAC5B,OAAO,CAACY,QAAQ,GACtCa,iBAAiBG,IAAI,CAAC5B,OAAO,CAACY,QAAQ,GACpC,WACAiB;IAER,OAAO1B,eAAe;QACpBG,MAAM,CAAC,EAAEoB,QAAQI,MAAM,CAACC,YAAY,CAAC,MAAM,CAAC;QAC5CxB,QAAQkB,iBAAiBG,IAAI,CAAC5B,OAAO,CAACO,MAAM,IAAIsB;QAChDrB,SAASU,oBAAoB;YAAEC,SAASM,iBAAiBG,IAAI,CAACI,eAAe;QAAC;QAC9EvB,UAAU;QACVE,MAAM;QACNC;QACAC,QAAQY,iBAAiBG,IAAI,CAAC5B,OAAO,CAACa,MAAM;QAC5CE,OAAOY;IACT;AACF,EAAC;AAED,OAAO,MAAMM,+BAA+B,CAAC,EAC3CR,gBAAgB,EAChBC,OAAO,EACkC;IACzC,MAAMd,WACJ,OAAOa,iBAAiBG,IAAI,CAAC5B,OAAO,CAACY,QAAQ,KAAK,WAC9Ca,iBAAiBG,IAAI,CAAC5B,OAAO,CAACY,QAAQ,GACtCa,iBAAiBG,IAAI,CAAC5B,OAAO,CAACY,QAAQ,GACpC,WACAiB;IAER,MAAMrB,UAAU,IAAIa,KAAKA,KAAKa,GAAG,KAAK;IAEtC,OAAO/B,eAAe;QACpBG,MAAM,CAAC,EAAEoB,QAAQI,MAAM,CAACC,YAAY,CAAC,MAAM,CAAC;QAC5CxB,QAAQkB,iBAAiBG,IAAI,CAAC5B,OAAO,CAACO,MAAM,IAAIsB;QAChDrB;QACAC,UAAU;QACVE,MAAM;QACNC;QACAC,QAAQY,iBAAiBG,IAAI,CAAC5B,OAAO,CAACa,MAAM;IAC9C;AACF,EAAC;AAED,OAAO,MAAMsB,eAAe,CAACC;IAC3B,MAAMC,YAAY,IAAIC;IACtB,MAAMC,SAASH,QAAQI,GAAG,CAAC;IAE3B,IAAID,QAAQ;QACVA,OAAOE,KAAK,CAAC,KAAKC,OAAO,CAAC,CAACH;YACzB,MAAMI,QAAQJ,OAAOE,KAAK,CAAC;YAC3B,MAAMG,MAAMD,MAAME,KAAK,GAAGC,IAAI;YAC9B,MAAMC,eAAeJ,MAAMvC,IAAI,CAAC;YAEhC,IAAI;gBACF,MAAM4C,eAAeC,UAAUF;gBAC/BV,UAAUa,GAAG,CAACN,KAAKI;YACrB,EAAE,OAAOG,GAAG;gBACV,OAAO;YACT;QACF;IACF;IAEA,OAAOd;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/auth/cookies.ts"],"sourcesContent":["import type { Payload } from '../index.js'\nimport type { SanitizedCollectionConfig } from './../collections/config/types.js'\ntype CookieOptions = {\n domain?: string\n expires?: Date\n httpOnly?: boolean\n maxAge?: number\n name: string\n path?: string\n sameSite?: 'Lax' | 'None' | 'Strict'\n secure?: boolean\n value?: string\n}\n\nexport const generateCookies = (cookies: CookieOptions[]): string => {\n return cookies.map((options) => generateCookie(options)).join('; ')\n}\n\nexport const generateCookie = (args: CookieOptions): string => {\n const { name, domain, expires, httpOnly, maxAge, path, sameSite, secure: secureArg, value } = args\n\n let cookieString = `${name}=${value || ''}`\n\n const secure = secureArg || sameSite === 'None'\n\n if (expires) {\n cookieString += `; Expires=${expires.toUTCString()}`\n }\n\n if (maxAge) {\n cookieString += `; Max-Age=${maxAge}`\n }\n\n if (domain) {\n cookieString += `; Domain=${domain}`\n }\n\n if (path) {\n cookieString += `; Path=${path}`\n }\n\n if (secure) {\n cookieString += '; Secure'\n }\n\n if (httpOnly) {\n cookieString += '; HttpOnly'\n }\n\n if (sameSite) {\n cookieString += `; SameSite=${sameSite}`\n }\n\n return cookieString\n}\n\ntype GetCookieExpirationArgs = {\n /*\n The number of seconds until the cookie expires\n @default 7200 seconds (2 hours)\n */\n seconds: number\n}\nexport const getCookieExpiration = ({ seconds = 7200 }: GetCookieExpirationArgs) => {\n const currentTime = new Date()\n currentTime.setSeconds(currentTime.getSeconds() + seconds)\n return currentTime\n}\n\ntype GeneratePayloadCookieArgs = {\n /* The auth collection config */\n collectionConfig: SanitizedCollectionConfig\n /* An instance of payload */\n payload: Payload\n /* The token to be stored in the cookie */\n token: string\n}\nexport const generatePayloadCookie = ({\n collectionConfig,\n payload,\n token,\n}: GeneratePayloadCookieArgs): string => {\n const sameSite =\n typeof collectionConfig.auth.cookies.sameSite === 'string'\n ? collectionConfig.auth.cookies.sameSite\n : collectionConfig.auth.cookies.sameSite\n ? 'Strict'\n : undefined\n\n return generateCookie({\n name: `${payload.config.cookiePrefix}-token`,\n domain: collectionConfig.auth.cookies.domain ?? undefined,\n expires: getCookieExpiration({ seconds: collectionConfig.auth.tokenExpiration }),\n httpOnly: true,\n path: '/',\n sameSite,\n secure: collectionConfig.auth.cookies.secure,\n value: token,\n })\n}\n\nexport const generateExpiredPayloadCookie = ({\n collectionConfig,\n payload,\n}: Omit<GeneratePayloadCookieArgs, 'token'>): string => {\n const sameSite =\n typeof collectionConfig.auth.cookies.sameSite === 'string'\n ? collectionConfig.auth.cookies.sameSite\n : collectionConfig.auth.cookies.sameSite\n ? 'Strict'\n : undefined\n\n const expires = new Date(Date.now() - 1000)\n\n return generateCookie({\n name: `${payload.config.cookiePrefix}-token`,\n domain: collectionConfig.auth.cookies.domain ?? undefined,\n expires,\n httpOnly: true,\n path: '/',\n sameSite,\n secure: collectionConfig.auth.cookies.secure,\n })\n}\n\nexport const parseCookies = (headers: Request['headers']): Map<string, string> => {\n const cookieMap = new Map<string, string>()\n const cookie = headers.get('Cookie')\n\n if (cookie) {\n cookie.split(';').forEach((cookie) => {\n const parts = cookie.split('=')\n const key = parts.shift().trim()\n const encodedValue = parts.join('=')\n\n try {\n const decodedValue = decodeURI(encodedValue)\n cookieMap.set(key, decodedValue)\n } catch (e) {\n return null\n }\n })\n }\n\n return cookieMap\n}\n"],"names":["generateCookies","cookies","map","options","generateCookie","join","args","name","domain","expires","httpOnly","maxAge","path","sameSite","secure","secureArg","value","cookieString","toUTCString","getCookieExpiration","seconds","currentTime","Date","setSeconds","getSeconds","generatePayloadCookie","collectionConfig","payload","token","auth","undefined","config","cookiePrefix","tokenExpiration","generateExpiredPayloadCookie","now","parseCookies","headers","cookieMap","Map","cookie","get","split","forEach","parts","key","shift","trim","encodedValue","decodedValue","decodeURI","set","e"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import crypto from 'crypto';
2
- import { URL } from 'url';
3
2
  import httpStatus from 'http-status';
3
+ import { URL } from 'url';
4
4
  import { buildAfterOperation } from '../../collections/operations/utils.js';
5
5
  import { APIError } from '../../errors/index.js';
6
6
  import { commitTransaction } from '../../utilities/commitTransaction.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/forgotPassword.ts"],"sourcesContent":["import crypto from 'crypto'\nimport { URL } from 'url'\nimport httpStatus from 'http-status'\n\nimport type { Collection } from '../../collections/config/types.js'\nimport type { PayloadRequest } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utils.js'\nimport { APIError } from '../../errors/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\n\nexport type Arguments = {\n collection: Collection\n data: {\n [key: string]: unknown\n email: string\n }\n disableEmail?: boolean\n expiration?: number\n req: PayloadRequest\n}\n\nexport type Result = string\n\nexport const forgotPasswordOperation = async (incomingArgs: Arguments): Promise<null | string> => {\n if (!Object.prototype.hasOwnProperty.call(incomingArgs.data, 'email')) {\n throw new APIError('Missing email.', httpStatus.BAD_REQUEST)\n }\n\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection?.config,\n context: args.req.context,\n operation: 'forgotPassword',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n data,\n disableEmail,\n expiration,\n req: {\n payload: { config, emailOptions, sendEmail: email },\n payload,\n },\n req,\n } = args\n\n // /////////////////////////////////////\n // Forget password\n // /////////////////////////////////////\n\n let token: string = crypto.randomBytes(20).toString('hex')\n\n type UserDoc = {\n id: number | string\n resetPasswordExpiration?: string\n resetPasswordToken?: string\n }\n\n if (!data.email) {\n throw new APIError('Missing email.', httpStatus.BAD_REQUEST)\n }\n\n let user = await payload.db.findOne<UserDoc>({\n collection: collectionConfig.slug,\n req,\n where: { email: { equals: data.email.toLowerCase() } },\n })\n\n // We don't want to indicate specifically that an email was not found,\n // as doing so could lead to the exposure of registered emails.\n // Therefore, we prefer to fail silently.\n if (!user) return null\n\n user.resetPasswordToken = token\n user.resetPasswordExpiration = new Date(expiration || Date.now() + 3600000).toISOString() // 1 hour\n\n user = await payload.update({\n id: user.id,\n collection: collectionConfig.slug,\n data: user,\n req,\n })\n\n if (!disableEmail) {\n const protocol = new URL(req.url).protocol\n const serverURL =\n config.serverURL !== null && config.serverURL !== ''\n ? config.serverURL\n : `${protocol}://${req.headers.get('host')}`\n\n let html = `${req.t('authentication:youAreReceivingResetPassword')}\n <a href=\"${serverURL}${config.routes.admin}/reset/${token}\">\n ${serverURL}${config.routes.admin}/reset/${token}\n </a>\n ${req.t('authentication:youDidNotRequestPassword')}`\n\n if (typeof collectionConfig.auth.forgotPassword.generateEmailHTML === 'function') {\n html = await collectionConfig.auth.forgotPassword.generateEmailHTML({\n req,\n token,\n user,\n })\n }\n\n let subject = req.t('authentication:resetYourPassword')\n\n if (typeof collectionConfig.auth.forgotPassword.generateEmailSubject === 'function') {\n subject = await collectionConfig.auth.forgotPassword.generateEmailSubject({\n req,\n token,\n user,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n email({\n from: `\"${emailOptions.fromName}\" <${emailOptions.fromAddress}>`,\n html,\n subject,\n to: data.email,\n })\n }\n\n // /////////////////////////////////////\n // afterForgotPassword - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterForgotPassword.reduce(async (priorHook, hook) => {\n await priorHook\n await hook({ args, collection: args.collection?.config, context: req.context })\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n token = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'forgotPassword',\n result: token,\n })\n\n if (shouldCommit) await commitTransaction(req)\n\n return token\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["crypto","URL","httpStatus","buildAfterOperation","APIError","commitTransaction","initTransaction","killTransaction","forgotPasswordOperation","incomingArgs","Object","prototype","hasOwnProperty","call","data","BAD_REQUEST","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","disableEmail","expiration","payload","emailOptions","sendEmail","email","token","randomBytes","toString","user","db","findOne","slug","where","equals","toLowerCase","resetPasswordToken","resetPasswordExpiration","Date","now","toISOString","update","id","protocol","url","serverURL","headers","get","html","t","routes","admin","auth","forgotPassword","generateEmailHTML","subject","generateEmailSubject","from","fromName","fromAddress","to","afterForgotPassword","result","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/auth/operations/forgotPassword.ts"],"sourcesContent":["import crypto from 'crypto'\nimport httpStatus from 'http-status'\nimport { URL } from 'url'\n\nimport type { Collection } from '../../collections/config/types.js'\nimport type { PayloadRequest } from '../../types/index.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utils.js'\nimport { APIError } from '../../errors/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\n\nexport type Arguments = {\n collection: Collection\n data: {\n [key: string]: unknown\n email: string\n }\n disableEmail?: boolean\n expiration?: number\n req: PayloadRequest\n}\n\nexport type Result = string\n\nexport const forgotPasswordOperation = async (incomingArgs: Arguments): Promise<null | string> => {\n if (!Object.prototype.hasOwnProperty.call(incomingArgs.data, 'email')) {\n throw new APIError('Missing email.', httpStatus.BAD_REQUEST)\n }\n\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection?.config,\n context: args.req.context,\n operation: 'forgotPassword',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n data,\n disableEmail,\n expiration,\n req: {\n payload: { config, emailOptions, sendEmail: email },\n payload,\n },\n req,\n } = args\n\n // /////////////////////////////////////\n // Forget password\n // /////////////////////////////////////\n\n let token: string = crypto.randomBytes(20).toString('hex')\n\n type UserDoc = {\n id: number | string\n resetPasswordExpiration?: string\n resetPasswordToken?: string\n }\n\n if (!data.email) {\n throw new APIError('Missing email.', httpStatus.BAD_REQUEST)\n }\n\n let user = await payload.db.findOne<UserDoc>({\n collection: collectionConfig.slug,\n req,\n where: { email: { equals: data.email.toLowerCase() } },\n })\n\n // We don't want to indicate specifically that an email was not found,\n // as doing so could lead to the exposure of registered emails.\n // Therefore, we prefer to fail silently.\n if (!user) return null\n\n user.resetPasswordToken = token\n user.resetPasswordExpiration = new Date(expiration || Date.now() + 3600000).toISOString() // 1 hour\n\n user = await payload.update({\n id: user.id,\n collection: collectionConfig.slug,\n data: user,\n req,\n })\n\n if (!disableEmail) {\n const protocol = new URL(req.url).protocol\n const serverURL =\n config.serverURL !== null && config.serverURL !== ''\n ? config.serverURL\n : `${protocol}://${req.headers.get('host')}`\n\n let html = `${req.t('authentication:youAreReceivingResetPassword')}\n <a href=\"${serverURL}${config.routes.admin}/reset/${token}\">\n ${serverURL}${config.routes.admin}/reset/${token}\n </a>\n ${req.t('authentication:youDidNotRequestPassword')}`\n\n if (typeof collectionConfig.auth.forgotPassword.generateEmailHTML === 'function') {\n html = await collectionConfig.auth.forgotPassword.generateEmailHTML({\n req,\n token,\n user,\n })\n }\n\n let subject = req.t('authentication:resetYourPassword')\n\n if (typeof collectionConfig.auth.forgotPassword.generateEmailSubject === 'function') {\n subject = await collectionConfig.auth.forgotPassword.generateEmailSubject({\n req,\n token,\n user,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n email({\n from: `\"${emailOptions.fromName}\" <${emailOptions.fromAddress}>`,\n html,\n subject,\n to: data.email,\n })\n }\n\n // /////////////////////////////////////\n // afterForgotPassword - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterForgotPassword.reduce(async (priorHook, hook) => {\n await priorHook\n await hook({ args, collection: args.collection?.config, context: req.context })\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n token = await buildAfterOperation({\n args,\n collection: args.collection?.config,\n operation: 'forgotPassword',\n result: token,\n })\n\n if (shouldCommit) await commitTransaction(req)\n\n return token\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["crypto","httpStatus","URL","buildAfterOperation","APIError","commitTransaction","initTransaction","killTransaction","forgotPasswordOperation","incomingArgs","Object","prototype","hasOwnProperty","call","data","BAD_REQUEST","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","disableEmail","expiration","payload","emailOptions","sendEmail","email","token","randomBytes","toString","user","db","findOne","slug","where","equals","toLowerCase","resetPasswordToken","resetPasswordExpiration","Date","now","toISOString","update","id","protocol","url","serverURL","headers","get","html","t","routes","admin","auth","forgotPassword","generateEmailHTML","subject","generateEmailSubject","from","fromName","fromAddress","to","afterForgotPassword","result","error"],"mappings":"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"}
@@ -19,10 +19,6 @@ export type Arguments = {
19
19
  showHiddenFields?: boolean;
20
20
  };
21
21
  export declare const loginOperation: <TSlug extends string | number | symbol>(incomingArgs: Arguments) => Promise<Result & {
22
- user: {
23
- [slug: string]: import("../../collections/config/types.js").TypeWithID & Record<string, unknown>;
24
- [slug: number]: import("../../collections/config/types.js").TypeWithID & Record<string, unknown>;
25
- [slug: symbol]: import("../../collections/config/types.js").TypeWithID & Record<string, unknown>;
26
- }[TSlug];
22
+ user: GeneratedTypes['collections'][TSlug];
27
23
  }>;
28
24
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/login.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAevC,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,cAAc,yDACX,SAAS;;;;;;EAqNxB,CAAA"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/login.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAevC,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,cAAc,yDACX,SAAS,KACtB,QAAQ,MAAM,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAA;CAAE,CAgNjE,CAAA"}
@@ -159,9 +159,6 @@ export const loginOperation = async (incomingArgs)=>{
159
159
  operation: 'login',
160
160
  result
161
161
  });
162
- if (collectionConfig.auth.removeTokenFromResponses) {
163
- delete result.token;
164
- }
165
162
  // /////////////////////////////////////
166
163
  // Return results
167
164
  // /////////////////////////////////////
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/auth/operations/login.ts"],"sourcesContent":["import jwt from 'jsonwebtoken'\n\nimport type { Collection } from '../../collections/config/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { User } from '../types.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utils.js'\nimport { AuthenticationError, LockedAuth } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { getFieldsToSign } from '../getFieldsToSign.js'\nimport isLocked from '../isLocked.js'\nimport { authenticateLocalStrategy } from '../strategies/local/authenticate.js'\nimport { incrementLoginAttempts } from '../strategies/local/incrementLoginAttempts.js'\nimport { resetLoginAttempts } from '../strategies/local/resetLoginAttempts.js'\n\nexport type Result = {\n exp?: number\n token?: string\n user?: User\n}\n\nexport type Arguments = {\n collection: Collection\n data: {\n email: string\n password: string\n }\n depth?: number\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const loginOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments,\n): Promise<Result & { user: GeneratedTypes['collections'][TSlug] }> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection?.config,\n context: args.req.context,\n operation: 'login',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n data,\n depth,\n overrideAccess,\n req,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { secret },\n },\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Login\n // /////////////////////////////////////\n\n const { email: unsanitizedEmail, password } = data\n\n const email = unsanitizedEmail ? unsanitizedEmail.toLowerCase().trim() : null\n\n let user = await payload.db.findOne<any>({\n collection: collectionConfig.slug,\n req,\n where: { email: { equals: email.toLowerCase() } },\n })\n\n if (!user || (args.collection.config.auth.verify && user._verified === false)) {\n throw new AuthenticationError(req.t)\n }\n\n if (user && isLocked(user.lockUntil)) {\n throw new LockedAuth(req.t)\n }\n\n const authResult = await authenticateLocalStrategy({ doc: user, password })\n\n user = sanitizeInternalFields(user)\n\n const maxLoginAttemptsEnabled = args.collection.config.auth.maxLoginAttempts > 0\n\n if (!authResult) {\n if (maxLoginAttemptsEnabled) {\n await incrementLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n }\n\n if (shouldCommit) await commitTransaction(req)\n\n throw new AuthenticationError(req.t)\n }\n\n if (maxLoginAttemptsEnabled) {\n await resetLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n }\n\n const fieldsToSign = getFieldsToSign({\n collectionConfig,\n email,\n user,\n })\n\n await collectionConfig.hooks.beforeLogin.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n user,\n })) || user\n }, Promise.resolve())\n\n const token = jwt.sign(fieldsToSign, secret, {\n expiresIn: collectionConfig.auth.tokenExpiration,\n })\n\n req.user = user\n\n // /////////////////////////////////////\n // afterLogin - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterLogin.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n token,\n user,\n })) || user\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n user = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: user,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: req.context,\n doc: user,\n req,\n })) || user\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: req.context,\n doc: user,\n req,\n })) || user\n }, Promise.resolve())\n\n let result: Result & { user: GeneratedTypes['collections'][TSlug] } = {\n exp: (jwt.decode(token) as jwt.JwtPayload).exp,\n token,\n user,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: args.collection?.config,\n operation: 'login',\n result,\n })\n\n if (collectionConfig.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["jwt","buildAfterOperation","AuthenticationError","LockedAuth","afterRead","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","getFieldsToSign","isLocked","authenticateLocalStrategy","incrementLoginAttempts","resetLoginAttempts","loginOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","data","depth","overrideAccess","fallbackLocale","locale","payload","secret","showHiddenFields","email","unsanitizedEmail","password","toLowerCase","trim","user","db","findOne","slug","where","equals","auth","verify","_verified","t","lockUntil","authResult","doc","maxLoginAttemptsEnabled","maxLoginAttempts","fieldsToSign","beforeLogin","token","sign","expiresIn","tokenExpiration","afterLogin","global","result","exp","decode","removeTokenFromResponses","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/auth/operations/login.ts"],"sourcesContent":["import jwt from 'jsonwebtoken'\n\nimport type { Collection } from '../../collections/config/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { User } from '../types.js'\n\nimport { buildAfterOperation } from '../../collections/operations/utils.js'\nimport { AuthenticationError, LockedAuth } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { getFieldsToSign } from '../getFieldsToSign.js'\nimport isLocked from '../isLocked.js'\nimport { authenticateLocalStrategy } from '../strategies/local/authenticate.js'\nimport { incrementLoginAttempts } from '../strategies/local/incrementLoginAttempts.js'\nimport { resetLoginAttempts } from '../strategies/local/resetLoginAttempts.js'\n\nexport type Result = {\n exp?: number\n token?: string\n user?: User\n}\n\nexport type Arguments = {\n collection: Collection\n data: {\n email: string\n password: string\n }\n depth?: number\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const loginOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments,\n): Promise<Result & { user: GeneratedTypes['collections'][TSlug] }> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection?.config,\n context: args.req.context,\n operation: 'login',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n data,\n depth,\n overrideAccess,\n req,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { secret },\n },\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Login\n // /////////////////////////////////////\n\n const { email: unsanitizedEmail, password } = data\n\n const email = unsanitizedEmail ? unsanitizedEmail.toLowerCase().trim() : null\n\n let user = await payload.db.findOne<any>({\n collection: collectionConfig.slug,\n req,\n where: { email: { equals: email.toLowerCase() } },\n })\n\n if (!user || (args.collection.config.auth.verify && user._verified === false)) {\n throw new AuthenticationError(req.t)\n }\n\n if (user && isLocked(user.lockUntil)) {\n throw new LockedAuth(req.t)\n }\n\n const authResult = await authenticateLocalStrategy({ doc: user, password })\n\n user = sanitizeInternalFields(user)\n\n const maxLoginAttemptsEnabled = args.collection.config.auth.maxLoginAttempts > 0\n\n if (!authResult) {\n if (maxLoginAttemptsEnabled) {\n await incrementLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n }\n\n if (shouldCommit) await commitTransaction(req)\n\n throw new AuthenticationError(req.t)\n }\n\n if (maxLoginAttemptsEnabled) {\n await resetLoginAttempts({\n collection: collectionConfig,\n doc: user,\n payload: req.payload,\n req,\n })\n }\n\n const fieldsToSign = getFieldsToSign({\n collectionConfig,\n email,\n user,\n })\n\n await collectionConfig.hooks.beforeLogin.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n user,\n })) || user\n }, Promise.resolve())\n\n const token = jwt.sign(fieldsToSign, secret, {\n expiresIn: collectionConfig.auth.tokenExpiration,\n })\n\n req.user = user\n\n // /////////////////////////////////////\n // afterLogin - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterLogin.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: args.req.context,\n req: args.req,\n token,\n user,\n })) || user\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n user = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: user,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: req.context,\n doc: user,\n req,\n })) || user\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n user =\n (await hook({\n collection: args.collection?.config,\n context: req.context,\n doc: user,\n req,\n })) || user\n }, Promise.resolve())\n\n let result: Result & { user: GeneratedTypes['collections'][TSlug] } = {\n exp: (jwt.decode(token) as jwt.JwtPayload).exp,\n token,\n user,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: args.collection?.config,\n operation: 'login',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["jwt","buildAfterOperation","AuthenticationError","LockedAuth","afterRead","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","getFieldsToSign","isLocked","authenticateLocalStrategy","incrementLoginAttempts","resetLoginAttempts","loginOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","data","depth","overrideAccess","fallbackLocale","locale","payload","secret","showHiddenFields","email","unsanitizedEmail","password","toLowerCase","trim","user","db","findOne","slug","where","equals","auth","verify","_verified","t","lockUntil","authResult","doc","maxLoginAttemptsEnabled","maxLoginAttempts","fieldsToSign","beforeLogin","token","sign","expiresIn","tokenExpiration","afterLogin","global","result","exp","decode","error"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import type { Collection } from '../../collections/config/types.js';
2
2
  import type { PayloadRequest } from '../../types/index.js';
3
- import type { User } from '../types.js';
4
- export type Result = {
3
+ import type { ClientUser } from '../types.js';
4
+ export type MeOperationResult = {
5
5
  collection?: string;
6
6
  exp?: number;
7
7
  token?: string;
8
- user?: User;
8
+ user?: ClientUser;
9
9
  };
10
10
  export type Arguments = {
11
11
  collection: Collection;
12
12
  currentToken?: string;
13
13
  req: PayloadRequest;
14
14
  };
15
- export declare const meOperation: ({ collection, currentToken, req, }: Arguments) => Promise<Result>;
15
+ export declare const meOperation: ({ collection, currentToken, req, }: Arguments) => Promise<MeOperationResult>;
16
16
  //# sourceMappingURL=me.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/me.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,MAAM,MAAM,GAAG;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,WAAW,uCAIrB,SAAS,KAAG,QAAQ,MAAM,CAuD5B,CAAA"}
1
+ {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../../src/auth/operations/me.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAQ,MAAM,aAAa,CAAA;AAEnD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,WAAW,uCAIrB,SAAS,KAAG,QAAQ,iBAAiB,CAuDvC,CAAA"}