@payloadcms/next 3.0.0-beta.101 → 3.0.0-beta.103

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.
@@ -7,7 +7,7 @@ const DEFAULT_OPTIONS = {
7
7
  abortOnLimit: false,
8
8
  createParentPath: false,
9
9
  debug: false,
10
- fileHandler: false,
10
+ defParamCharset: 'utf8',
11
11
  limitHandler: false,
12
12
  parseNested: false,
13
13
  preserveExtension: false,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["path","APIError","isEligibleRequest","processMultipart","debugLog","DEFAULT_OPTIONS","abortOnLimit","createParentPath","debug","fileHandler","limitHandler","parseNested","preserveExtension","responseOnLimit","safeFileNames","tempFileDir","join","process","cwd","uploadTimeout","uriDecodeFileNames","useTempFiles","fetchAPIFileUpload","options","request","uploadOptions","error","fields","undefined","files"],"sources":["../../src/fetchAPI-multipart/index.ts"],"sourcesContent":["import type { FetchAPIFileUploadOptions } from 'payload'\n\nimport path from 'path'\nimport { APIError } from 'payload'\n\nimport { isEligibleRequest } from './isEligibleRequest.js'\nimport { processMultipart } from './processMultipart.js'\nimport { debugLog } from './utilities.js'\n\nconst DEFAULT_OPTIONS = {\n abortOnLimit: false,\n createParentPath: false,\n debug: false,\n fileHandler: false,\n limitHandler: false,\n parseNested: false,\n preserveExtension: false,\n responseOnLimit: 'File size limit has been reached',\n safeFileNames: false,\n tempFileDir: path.join(process.cwd(), 'tmp'),\n uploadTimeout: 60000,\n uriDecodeFileNames: false,\n useTempFiles: false,\n}\n\nexport type FileShape = {\n data: Buffer\n encoding: string\n md5: Buffer | string\n mimetype: string\n mv: (filePath: string, callback: () => void) => Promise<void> | void\n name: string\n size: number\n tempFilePath: string\n truncated: boolean\n}\n\ntype FetchAPIFileUploadResponseFile = {\n data: Buffer\n mimetype: string\n name: string\n size: number\n tempFilePath?: string\n}\n\nexport type FetchAPIFileUploadResponse = {\n error?: APIError\n fields: Record<string, string>\n files: Record<string, FetchAPIFileUploadResponseFile>\n}\n\ntype FetchAPIFileUpload = (args: {\n options?: FetchAPIFileUploadOptions\n request: Request\n}) => Promise<FetchAPIFileUploadResponse>\nexport const fetchAPIFileUpload: FetchAPIFileUpload = async ({ options, request }) => {\n const uploadOptions: FetchAPIFileUploadOptions = { ...DEFAULT_OPTIONS, ...options }\n if (!isEligibleRequest(request)) {\n debugLog(uploadOptions, 'Request is not eligible for file upload!')\n return {\n error: new APIError('Request is not eligible for file upload', 500),\n fields: undefined,\n files: undefined,\n }\n } else {\n return processMultipart({ options: uploadOptions, request })\n }\n}\n"],"mappings":"AAEA,OAAOA,IAAA,MAAU;AACjB,SAASC,QAAQ,QAAQ;AAEzB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,QAAQ,QAAQ;AAEzB,MAAMC,eAAA,GAAkB;EACtBC,YAAA,EAAc;EACdC,gBAAA,EAAkB;EAClBC,KAAA,EAAO;EACPC,WAAA,EAAa;EACbC,YAAA,EAAc;EACdC,WAAA,EAAa;EACbC,iBAAA,EAAmB;EACnBC,eAAA,EAAiB;EACjBC,aAAA,EAAe;EACfC,WAAA,EAAaf,IAAA,CAAKgB,IAAI,CAACC,OAAA,CAAQC,GAAG,IAAI;EACtCC,aAAA,EAAe;EACfC,kBAAA,EAAoB;EACpBC,YAAA,EAAc;AAChB;AAgCA,OAAO,MAAMC,kBAAA,GAAyC,MAAAA,CAAO;EAAEC,OAAO;EAAEC;AAAO,CAAE;EAC/E,MAAMC,aAAA,GAA2C;IAAE,GAAGpB,eAAe;IAAE,GAAGkB;EAAQ;EAClF,IAAI,CAACrB,iBAAA,CAAkBsB,OAAA,GAAU;IAC/BpB,QAAA,CAASqB,aAAA,EAAe;IACxB,OAAO;MACLC,KAAA,EAAO,IAAIzB,QAAA,CAAS,2CAA2C;MAC/D0B,MAAA,EAAQC,SAAA;MACRC,KAAA,EAAOD;IACT;EACF,OAAO;IACL,OAAOzB,gBAAA,CAAiB;MAAEoB,OAAA,EAASE,aAAA;MAAeD;IAAQ;EAC5D;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["path","APIError","isEligibleRequest","processMultipart","debugLog","DEFAULT_OPTIONS","abortOnLimit","createParentPath","debug","defParamCharset","limitHandler","parseNested","preserveExtension","responseOnLimit","safeFileNames","tempFileDir","join","process","cwd","uploadTimeout","uriDecodeFileNames","useTempFiles","fetchAPIFileUpload","options","request","uploadOptions","error","fields","undefined","files"],"sources":["../../src/fetchAPI-multipart/index.ts"],"sourcesContent":["import type { FetchAPIFileUploadOptions } from 'payload'\n\nimport path from 'path'\nimport { APIError } from 'payload'\n\nimport { isEligibleRequest } from './isEligibleRequest.js'\nimport { processMultipart } from './processMultipart.js'\nimport { debugLog } from './utilities.js'\n\nconst DEFAULT_OPTIONS: FetchAPIFileUploadOptions = {\n abortOnLimit: false,\n createParentPath: false,\n debug: false,\n defParamCharset: 'utf8',\n limitHandler: false,\n parseNested: false,\n preserveExtension: false,\n responseOnLimit: 'File size limit has been reached',\n safeFileNames: false,\n tempFileDir: path.join(process.cwd(), 'tmp'),\n uploadTimeout: 60000,\n uriDecodeFileNames: false,\n useTempFiles: false,\n}\n\nexport type FileShape = {\n data: Buffer\n encoding: string\n md5: Buffer | string\n mimetype: string\n mv: (filePath: string, callback: () => void) => Promise<void> | void\n name: string\n size: number\n tempFilePath: string\n truncated: boolean\n}\n\ntype FetchAPIFileUploadResponseFile = {\n data: Buffer\n mimetype: string\n name: string\n size: number\n tempFilePath?: string\n}\n\nexport type FetchAPIFileUploadResponse = {\n error?: APIError\n fields: Record<string, string>\n files: Record<string, FetchAPIFileUploadResponseFile>\n}\n\ntype FetchAPIFileUpload = (args: {\n options?: FetchAPIFileUploadOptions\n request: Request\n}) => Promise<FetchAPIFileUploadResponse>\nexport const fetchAPIFileUpload: FetchAPIFileUpload = async ({ options, request }) => {\n const uploadOptions: FetchAPIFileUploadOptions = { ...DEFAULT_OPTIONS, ...options }\n if (!isEligibleRequest(request)) {\n debugLog(uploadOptions, 'Request is not eligible for file upload!')\n return {\n error: new APIError('Request is not eligible for file upload', 500),\n fields: undefined,\n files: undefined,\n }\n } else {\n return processMultipart({ options: uploadOptions, request })\n }\n}\n"],"mappings":"AAEA,OAAOA,IAAA,MAAU;AACjB,SAASC,QAAQ,QAAQ;AAEzB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,QAAQ,QAAQ;AAEzB,MAAMC,eAAA,GAA6C;EACjDC,YAAA,EAAc;EACdC,gBAAA,EAAkB;EAClBC,KAAA,EAAO;EACPC,eAAA,EAAiB;EACjBC,YAAA,EAAc;EACdC,WAAA,EAAa;EACbC,iBAAA,EAAmB;EACnBC,eAAA,EAAiB;EACjBC,aAAA,EAAe;EACfC,WAAA,EAAaf,IAAA,CAAKgB,IAAI,CAACC,OAAA,CAAQC,GAAG,IAAI;EACtCC,aAAA,EAAe;EACfC,kBAAA,EAAoB;EACpBC,YAAA,EAAc;AAChB;AAgCA,OAAO,MAAMC,kBAAA,GAAyC,MAAAA,CAAO;EAAEC,OAAO;EAAEC;AAAO,CAAE;EAC/E,MAAMC,aAAA,GAA2C;IAAE,GAAGpB,eAAe;IAAE,GAAGkB;EAAQ;EAClF,IAAI,CAACrB,iBAAA,CAAkBsB,OAAA,GAAU;IAC/BpB,QAAA,CAASqB,aAAA,EAAe;IACxB,OAAO;MACLC,KAAA,EAAO,IAAIzB,QAAA,CAAS,2CAA2C;MAC/D0B,MAAA,EAAQC,SAAA;MACRC,KAAA,EAAOD;IACT;EACF,OAAO;IACL,OAAOzB,gBAAA,CAAiB;MAAEoB,OAAA,EAASE,aAAA;MAAeD;IAAQ;EAC5D;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAmFA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAyFA,CAAA"}
@@ -6,11 +6,11 @@ import LinkImport from 'next/link.js';
6
6
  import React from 'react';
7
7
  const baseClass = 'login__form';
8
8
  const Link = LinkImport.default || LinkImport;
9
- import { Form, FormSubmit, PasswordField, useConfig, useTranslation } from '@payloadcms/ui';
9
+ import { Form, FormSubmit, PasswordField, useAuth, useConfig, useTranslation } from '@payloadcms/ui';
10
10
  import { formatAdminURL } from '@payloadcms/ui/shared';
11
11
  import { LoginField } from '../LoginField/index.js';
12
12
  export const LoginForm = t0 => {
13
- const $ = _c(19);
13
+ const $ = _c(22);
14
14
  const {
15
15
  prefillEmail,
16
16
  prefillPassword,
@@ -72,10 +72,13 @@ export const LoginForm = t0 => {
72
72
  const {
73
73
  t
74
74
  } = useTranslation();
75
+ const {
76
+ setUser
77
+ } = useAuth();
75
78
  const t6 = prefillPassword ?? undefined;
76
79
  const t7 = prefillPassword ?? undefined;
77
80
  let t8;
78
- if ($[6] !== t6 || $[7] !== t7 || $[8] !== loginWithUsername || $[9] !== prefillUsername || $[10] !== prefillEmail || $[11] !== apiRoute || $[12] !== userSlug || $[13] !== searchParams || $[14] !== adminRoute || $[15] !== loginType || $[16] !== t || $[17] !== forgotRoute) {
81
+ if ($[6] !== t6 || $[7] !== t7 || $[8] !== loginWithUsername || $[9] !== prefillUsername || $[10] !== prefillEmail || $[11] !== setUser || $[12] !== apiRoute || $[13] !== userSlug || $[14] !== searchParams || $[15] !== adminRoute || $[16] !== loginType || $[17] !== t || $[18] !== forgotRoute) {
79
82
  const initialState = {
80
83
  password: {
81
84
  initialValue: t6,
@@ -96,12 +99,24 @@ export const LoginForm = t0 => {
96
99
  value: prefillEmail ?? undefined
97
100
  };
98
101
  }
102
+ let t9;
103
+ if ($[20] !== setUser) {
104
+ t9 = data => {
105
+ setUser(data.user);
106
+ };
107
+ $[20] = setUser;
108
+ $[21] = t9;
109
+ } else {
110
+ t9 = $[21];
111
+ }
112
+ const handleLogin = t9;
99
113
  t8 = _jsxs(Form, {
100
114
  action: `${apiRoute}/${userSlug}/login`,
101
115
  className: baseClass,
102
116
  disableSuccessStatus: true,
103
117
  initialState,
104
118
  method: "POST",
119
+ onSuccess: handleLogin,
105
120
  redirect: typeof searchParams?.redirect === "string" ? searchParams.redirect : adminRoute,
106
121
  waitForAutocomplete: true,
107
122
  children: [_jsxs("div", {
@@ -131,16 +146,17 @@ export const LoginForm = t0 => {
131
146
  $[8] = loginWithUsername;
132
147
  $[9] = prefillUsername;
133
148
  $[10] = prefillEmail;
134
- $[11] = apiRoute;
135
- $[12] = userSlug;
136
- $[13] = searchParams;
137
- $[14] = adminRoute;
138
- $[15] = loginType;
139
- $[16] = t;
140
- $[17] = forgotRoute;
141
- $[18] = t8;
149
+ $[11] = setUser;
150
+ $[12] = apiRoute;
151
+ $[13] = userSlug;
152
+ $[14] = searchParams;
153
+ $[15] = adminRoute;
154
+ $[16] = loginType;
155
+ $[17] = t;
156
+ $[18] = forgotRoute;
157
+ $[19] = t8;
142
158
  } else {
143
- t8 = $[18];
159
+ t8 = $[19];
144
160
  }
145
161
  return t8;
146
162
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","LinkImport","React","baseClass","Link","default","Form","FormSubmit","PasswordField","useConfig","useTranslation","formatAdminURL","LoginField","LoginForm","t0","$","prefillEmail","prefillPassword","prefillUsername","searchParams","config","admin","t1","routes","t2","t3","user","userSlug","forgot","forgotRoute","adminRoute","api","apiRoute","t4","collections","find","collection","slug","collectionConfig","auth","authOptions","loginWithUsername","canLoginWithEmail","allowEmailLogin","canLoginWithUsername","t5","loginType","useState","t","t6","undefined","t7","t8","initialState","password","initialValue","valid","value","username","email","_jsxs","action","className","disableSuccessStatus","method","redirect","waitForAutocomplete","children","_jsx","type","field","name","label","required","href","path","size"],"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst baseClass = 'login__form'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nimport type { FormState } from 'payload'\n\nimport { Form, FormSubmit, PasswordField, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n } = config\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const canLoginWithEmail =\n !authOptions.loginWithUsername || authOptions.loginWithUsername.allowEmailLogin\n const canLoginWithUsername = authOptions.loginWithUsername\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) {\n return 'emailOrUsername'\n }\n if (canLoginWithUsername) {\n return 'username'\n }\n return 'email'\n })\n\n const { t } = useTranslation()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n return (\n <Form\n action={`${apiRoute}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n redirect={typeof searchParams?.redirect === 'string' ? searchParams.redirect : adminRoute}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField\n field={{\n name: 'password',\n label: t('general:password'),\n required: true,\n }}\n />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","LinkImport","React","baseClass","Link","default","Form","FormSubmit","PasswordField","useAuth","useConfig","useTranslation","formatAdminURL","LoginField","LoginForm","t0","$","prefillEmail","prefillPassword","prefillUsername","searchParams","config","admin","t1","routes","t2","t3","user","userSlug","forgot","forgotRoute","adminRoute","api","apiRoute","t4","collections","find","collection","slug","collectionConfig","auth","authOptions","loginWithUsername","canLoginWithEmail","allowEmailLogin","canLoginWithUsername","t5","loginType","useState","t","setUser","t6","undefined","t7","t8","initialState","password","initialValue","valid","value","username","email","t9","data","handleLogin","_jsxs","action","className","disableSuccessStatus","method","onSuccess","redirect","waitForAutocomplete","children","_jsx","type","field","name","label","required","href","path","size"],"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst baseClass = 'login__form'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nimport type { ClientUser, FormState } from 'payload'\n\nimport { Form, FormSubmit, PasswordField, useAuth, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n } = config\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const canLoginWithEmail =\n !authOptions.loginWithUsername || authOptions.loginWithUsername.allowEmailLogin\n const canLoginWithUsername = authOptions.loginWithUsername\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) {\n return 'emailOrUsername'\n }\n if (canLoginWithUsername) {\n return 'username'\n }\n return 'email'\n })\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n const handleLogin = (data: { user: ClientUser }) => {\n setUser(data.user)\n }\n\n return (\n <Form\n action={`${apiRoute}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n onSuccess={handleLogin}\n redirect={typeof searchParams?.redirect === 'string' ? searchParams.redirect : adminRoute}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField\n field={{\n name: 'password',\n label: t('general:password'),\n required: true,\n }}\n />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.0.0-beta.101",
3
+ "version": "3.0.0-beta.103",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,9 +63,9 @@
63
63
  "sonner": "^1.5.0",
64
64
  "uuid": "10.0.0",
65
65
  "ws": "^8.16.0",
66
- "@payloadcms/graphql": "3.0.0-beta.101",
67
- "@payloadcms/translations": "3.0.0-beta.101",
68
- "@payloadcms/ui": "3.0.0-beta.101"
66
+ "@payloadcms/graphql": "3.0.0-beta.103",
67
+ "@payloadcms/translations": "3.0.0-beta.103",
68
+ "@payloadcms/ui": "3.0.0-beta.103"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@babel/cli": "^7.24.5",
@@ -85,12 +85,12 @@
85
85
  "eslint-plugin-react-compiler": "0.0.0-experimental-72f06b2-20240822",
86
86
  "swc-plugin-transform-remove-imports": "1.15.0",
87
87
  "@payloadcms/eslint-config": "3.0.0-beta.97",
88
- "payload": "3.0.0-beta.101"
88
+ "payload": "3.0.0-beta.103"
89
89
  },
90
90
  "peerDependencies": {
91
91
  "graphql": "^16.8.1",
92
92
  "next": "^15.0.0-canary.104",
93
- "payload": "3.0.0-beta.101"
93
+ "payload": "3.0.0-beta.103"
94
94
  },
95
95
  "engines": {
96
96
  "node": "^18.20.2 || >=20.9.0"