@payloadcms/next 3.0.0-canary.ef0a8d0 → 3.0.0-canary.f13d413
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.
- package/dist/cjs/withPayload.cjs +18 -11
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +5 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +7 -5
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.d.ts +14 -0
- package/dist/elements/EmailAndUsername/index.d.ts.map +1 -0
- package/dist/elements/EmailAndUsername/index.js +85 -0
- package/dist/elements/EmailAndUsername/index.js.map +1 -0
- package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js +2 -0
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +15 -5
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +0 -17
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +1 -4
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/routes/rest/auth/login.d.ts.map +1 -1
- package/dist/routes/rest/auth/login.js +1 -1
- package/dist/routes/rest/auth/login.js.map +1 -1
- package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
- package/dist/routes/rest/auth/unlock.js +7 -3
- package/dist/routes/rest/auth/unlock.js.map +1 -1
- package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
- package/dist/routes/rest/collections/restoreVersion.js +2 -0
- package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
- package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
- package/dist/routes/rest/globals/restoreVersion.js +2 -0
- package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +30 -5
- package/dist/routes/rest/index.js.map +1 -1
- package/dist/routes/rest/routeError.d.ts.map +1 -1
- package/dist/routes/rest/routeError.js +3 -3
- package/dist/routes/rest/routeError.js.map +1 -1
- package/dist/scss/app.scss +5 -10
- package/dist/scss/toastify.scss +59 -0
- package/dist/scss/toasts.scss +75 -45
- package/dist/scss/type.scss +14 -23
- package/dist/scss/vars.scss +26 -47
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequest.js +10 -7
- package/dist/utilities/createPayloadRequest.js.map +1 -1
- package/dist/utilities/getNextRequestI18n.d.ts +3 -3
- package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
- package/dist/utilities/getNextRequestI18n.js +3 -1
- package/dist/utilities/getNextRequestI18n.js.map +1 -1
- package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
- package/dist/utilities/getPayloadHMR.js +5 -4
- package/dist/utilities/getPayloadHMR.js.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.d.ts +4 -0
- package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.js +17 -4
- package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
- package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAuthRedirect.js +15 -3
- package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
- package/dist/utilities/initPage/index.js.map +1 -1
- package/dist/utilities/initPage/shared.d.ts +14 -2
- package/dist/utilities/initPage/shared.d.ts.map +1 -1
- package/dist/utilities/initPage/shared.js +14 -4
- package/dist/utilities/initPage/shared.js.map +1 -1
- package/dist/utilities/mergeHeaders.d.ts +1 -1
- package/dist/utilities/mergeHeaders.d.ts.map +1 -1
- package/dist/utilities/mergeHeaders.js +7 -33
- package/dist/utilities/mergeHeaders.js.map +1 -1
- package/dist/utilities/meta.d.ts.map +1 -1
- package/dist/utilities/meta.js +2 -4
- package/dist/utilities/meta.js.map +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +14 -23
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts +2 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +14 -12
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.js +11 -29
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.scss +4 -0
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +13 -4
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.scss +11 -7
- package/dist/views/Document/getDocumentData.d.ts +1 -0
- package/dist/views/Document/getDocumentData.d.ts.map +1 -1
- package/dist/views/Document/getDocumentData.js +3 -2
- package/dist/views/Document/getDocumentData.js.map +1 -1
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js +3 -3
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +26 -33
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +2 -1
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/index.js +69 -33
- package/dist/views/Edit/Default/Auth/index.js.map +1 -1
- package/dist/views/Edit/Default/Auth/types.d.ts +4 -1
- package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/types.js.map +1 -1
- package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/SetDocumentStepNav/index.js +15 -5
- package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/Default/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/index.js +29 -23
- package/dist/views/Edit/Default/index.js.map +1 -1
- package/dist/views/Edit/Default/index.scss +2 -2
- package/dist/views/ForgotPassword/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/index.js +12 -4
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/Default/index.scss +2 -5
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +27 -7
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/Login/LoginField/index.d.ts +9 -0
- package/dist/views/Login/LoginField/index.d.ts.map +1 -0
- package/dist/views/Login/LoginField/index.js +46 -0
- package/dist/views/Login/LoginField/index.js.map +1 -0
- package/dist/views/Login/LoginForm/index.d.ts +3 -0
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +30 -71
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/index.d.ts.map +1 -1
- package/dist/views/Login/index.js +7 -0
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
- package/dist/views/Logout/LogoutClient.js +7 -2
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.js +2 -2
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.client.d.ts.map +1 -1
- package/dist/views/NotFound/index.client.js +3 -2
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +5 -1
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/NotFound/meta.d.ts +2 -2
- package/dist/views/NotFound/meta.d.ts.map +1 -1
- package/dist/views/NotFound/meta.js.map +1 -1
- package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
- package/dist/views/ResetPassword/index.client.js +19 -31
- package/dist/views/ResetPassword/index.client.js.map +1 -1
- package/dist/views/ResetPassword/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/index.js +7 -3
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js +5 -1
- package/dist/views/Root/getViewFromConfig.js.map +1 -1
- package/dist/views/Root/index.d.ts +2 -2
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +14 -8
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.js +1 -0
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.d.ts.map +1 -1
- package/dist/views/Verify/index.js +9 -2
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/Default/SetStepNav.d.ts +1 -2
- package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js +21 -6
- package/dist/views/Version/Default/SetStepNav.js.map +1 -1
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +4 -2
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +41 -21
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +5 -5
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/types.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +46 -13
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/Restore/index.scss +31 -0
- package/dist/views/Version/Restore/types.d.ts +1 -0
- package/dist/views/Version/Restore/types.d.ts.map +1 -1
- package/dist/views/Version/Restore/types.js.map +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +4 -4
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +10 -4
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/index.client.d.ts.map +1 -1
- package/dist/views/Versions/index.client.js +3 -2
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +18 -11
- package/dist/withPayload.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayloadHMR to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayloadHMR to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","reload","ws","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"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"}
|
|
@@ -8,5 +8,9 @@ export declare const handleAdminPage: ({ adminRoute, config, permissions, route,
|
|
|
8
8
|
collectionConfig: SanitizedCollectionConfig;
|
|
9
9
|
docID: string;
|
|
10
10
|
globalConfig: SanitizedGlobalConfig;
|
|
11
|
+
} | {
|
|
12
|
+
collectionConfig?: undefined;
|
|
13
|
+
docID?: undefined;
|
|
14
|
+
globalConfig?: undefined;
|
|
11
15
|
};
|
|
12
16
|
//# sourceMappingURL=handleAdminPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAdminPage.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAMhB,eAAO,MAAM,eAAe,gDAKzB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd
|
|
1
|
+
{"version":3,"file":"handleAdminPage.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAMhB,eAAO,MAAM,eAAe,gDAKzB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd;;;;;;;;CAwCA,CAAA"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { notFound } from 'next/navigation.js';
|
|
2
|
-
import { isAdminAuthRoute, isAdminRoute } from './shared.js';
|
|
2
|
+
import { getRouteWithoutAdmin, isAdminAuthRoute, isAdminRoute } from './shared.js';
|
|
3
3
|
export const handleAdminPage = ({ adminRoute, config, permissions, route })=>{
|
|
4
|
-
if (isAdminRoute(
|
|
5
|
-
|
|
4
|
+
if (isAdminRoute({
|
|
5
|
+
adminRoute,
|
|
6
|
+
config,
|
|
7
|
+
route
|
|
8
|
+
})) {
|
|
9
|
+
const routeWithoutAdmin = getRouteWithoutAdmin({
|
|
10
|
+
adminRoute,
|
|
11
|
+
route
|
|
12
|
+
});
|
|
13
|
+
const routeSegments = routeWithoutAdmin.split('/').filter(Boolean);
|
|
6
14
|
const [entityType, entitySlug, createOrID] = routeSegments;
|
|
7
15
|
const collectionSlug = entityType === 'collections' ? entitySlug : undefined;
|
|
8
16
|
const globalSlug = entityType === 'globals' ? entitySlug : undefined;
|
|
@@ -21,7 +29,11 @@ export const handleAdminPage = ({ adminRoute, config, permissions, route })=>{
|
|
|
21
29
|
notFound();
|
|
22
30
|
}
|
|
23
31
|
}
|
|
24
|
-
if (!permissions.canAccessAdmin && !isAdminAuthRoute(
|
|
32
|
+
if (!permissions.canAccessAdmin && !isAdminAuthRoute({
|
|
33
|
+
adminRoute,
|
|
34
|
+
config,
|
|
35
|
+
route
|
|
36
|
+
})) {
|
|
25
37
|
notFound();
|
|
26
38
|
}
|
|
27
39
|
return {
|
|
@@ -30,6 +42,7 @@ export const handleAdminPage = ({ adminRoute, config, permissions, route })=>{
|
|
|
30
42
|
globalConfig
|
|
31
43
|
};
|
|
32
44
|
}
|
|
45
|
+
return {};
|
|
33
46
|
};
|
|
34
47
|
|
|
35
48
|
//# sourceMappingURL=handleAdminPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"sourcesContent":["import type {\n Permissions,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { isAdminAuthRoute, isAdminRoute } from './shared.js'\n\nexport const handleAdminPage = ({\n adminRoute,\n config,\n permissions,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n permissions: Permissions\n route: string\n}) => {\n if (isAdminRoute(
|
|
1
|
+
{"version":3,"sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"sourcesContent":["import type {\n Permissions,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { getRouteWithoutAdmin, isAdminAuthRoute, isAdminRoute } from './shared.js'\n\nexport const handleAdminPage = ({\n adminRoute,\n config,\n permissions,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n permissions: Permissions\n route: string\n}) => {\n if (isAdminRoute({ adminRoute, config, route })) {\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n const routeSegments = routeWithoutAdmin.split('/').filter(Boolean)\n const [entityType, entitySlug, createOrID] = routeSegments\n const collectionSlug = entityType === 'collections' ? entitySlug : undefined\n const globalSlug = entityType === 'globals' ? entitySlug : undefined\n const docID = collectionSlug && createOrID !== 'create' ? createOrID : undefined\n\n let collectionConfig: SanitizedCollectionConfig | undefined\n let globalConfig: SanitizedGlobalConfig | undefined\n\n if (collectionSlug) {\n collectionConfig = config.collections.find((collection) => collection.slug === collectionSlug)\n\n if (!collectionConfig) {\n notFound()\n }\n }\n\n if (globalSlug) {\n globalConfig = config.globals.find((global) => global.slug === globalSlug)\n\n if (!globalConfig) {\n notFound()\n }\n }\n\n if (!permissions.canAccessAdmin && !isAdminAuthRoute({ adminRoute, config, route })) {\n notFound()\n }\n\n return {\n collectionConfig,\n docID,\n globalConfig,\n }\n }\n\n return {}\n}\n"],"names":["notFound","getRouteWithoutAdmin","isAdminAuthRoute","isAdminRoute","handleAdminPage","adminRoute","config","permissions","route","routeWithoutAdmin","routeSegments","split","filter","Boolean","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","docID","collectionConfig","globalConfig","collections","find","collection","slug","globals","global","canAccessAdmin"],"mappings":"AAOA,SAASA,QAAQ,QAAQ,qBAAoB;AAE7C,SAASC,oBAAoB,EAAEC,gBAAgB,EAAEC,YAAY,QAAQ,cAAa;AAElF,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,UAAU,EACVC,MAAM,EACNC,WAAW,EACXC,KAAK,EAMN;IACC,IAAIL,aAAa;QAAEE;QAAYC;QAAQE;IAAM,IAAI;QAC/C,MAAMC,oBAAoBR,qBAAqB;YAAEI;YAAYG;QAAM;QACnE,MAAME,gBAAgBD,kBAAkBE,KAAK,CAAC,KAAKC,MAAM,CAACC;QAC1D,MAAM,CAACC,YAAYC,YAAYC,WAAW,GAAGN;QAC7C,MAAMO,iBAAiBH,eAAe,gBAAgBC,aAAaG;QACnE,MAAMC,aAAaL,eAAe,YAAYC,aAAaG;QAC3D,MAAME,QAAQH,kBAAkBD,eAAe,WAAWA,aAAaE;QAEvE,IAAIG;QACJ,IAAIC;QAEJ,IAAIL,gBAAgB;YAClBI,mBAAmBf,OAAOiB,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKT;YAE/E,IAAI,CAACI,kBAAkB;gBACrBrB;YACF;QACF;QAEA,IAAImB,YAAY;YACdG,eAAehB,OAAOqB,OAAO,CAACH,IAAI,CAAC,CAACI,SAAWA,OAAOF,IAAI,KAAKP;YAE/D,IAAI,CAACG,cAAc;gBACjBtB;YACF;QACF;QAEA,IAAI,CAACO,YAAYsB,cAAc,IAAI,CAAC3B,iBAAiB;YAAEG;YAAYC;YAAQE;QAAM,IAAI;YACnFR;QACF;QAEA,OAAO;YACLqB;YACAD;YACAE;QACF;IACF;IAEA,OAAO,CAAC;AACV,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,kEAK5B;IACD,MAAM,MAAA;IACN,2BAA2B,EAAE,OAAO,GAAG,MAAM,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CACnD,SAsCA,CAAA"}
|
|
@@ -1,16 +1,28 @@
|
|
|
1
|
+
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
1
2
|
import { redirect } from 'next/navigation.js';
|
|
2
3
|
import * as qs from 'qs-esm';
|
|
3
4
|
import { isAdminAuthRoute, isAdminRoute } from './shared.js';
|
|
4
5
|
export const handleAuthRedirect = ({ config, redirectUnauthenticatedUser, route, searchParams })=>{
|
|
5
6
|
const { admin: { routes: { login: loginRouteFromConfig } }, routes: { admin: adminRoute } } = config;
|
|
6
|
-
if (!isAdminAuthRoute(
|
|
7
|
+
if (!isAdminAuthRoute({
|
|
8
|
+
adminRoute,
|
|
9
|
+
config,
|
|
10
|
+
route
|
|
11
|
+
})) {
|
|
7
12
|
if (searchParams && 'redirect' in searchParams) delete searchParams.redirect;
|
|
8
13
|
const redirectRoute = encodeURIComponent(route + Object.keys(searchParams ?? {}).length ? `${qs.stringify(searchParams, {
|
|
9
14
|
addQueryPrefix: true
|
|
10
15
|
})}` : undefined);
|
|
11
|
-
const adminLoginRoute =
|
|
16
|
+
const adminLoginRoute = formatAdminURL({
|
|
17
|
+
adminRoute,
|
|
18
|
+
path: loginRouteFromConfig
|
|
19
|
+
});
|
|
12
20
|
const customLoginRoute = typeof redirectUnauthenticatedUser === 'string' ? redirectUnauthenticatedUser : undefined;
|
|
13
|
-
const loginRoute = isAdminRoute(
|
|
21
|
+
const loginRoute = isAdminRoute({
|
|
22
|
+
adminRoute,
|
|
23
|
+
config,
|
|
24
|
+
route
|
|
25
|
+
}) ? adminLoginRoute : customLoginRoute || loginRouteFromConfig;
|
|
14
26
|
const parsedLoginRouteSearchParams = qs.parse(loginRoute.split('?')[1] ?? '');
|
|
15
27
|
const searchParamsWithRedirect = `${qs.stringify({
|
|
16
28
|
...parsedLoginRouteSearchParams,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"sourcesContent":["import { redirect } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\n\nimport { isAdminAuthRoute, isAdminRoute } from './shared.js'\n\nexport const handleAuthRedirect = ({\n config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n}: {\n config\n redirectUnauthenticatedUser: boolean | string\n route: string\n searchParams: { [key: string]: string | string[] }\n}) => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (!isAdminAuthRoute(config, route
|
|
1
|
+
{"version":3,"sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"sourcesContent":["import { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\n\nimport { isAdminAuthRoute, isAdminRoute } from './shared.js'\n\nexport const handleAuthRedirect = ({\n config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n}: {\n config\n redirectUnauthenticatedUser: boolean | string\n route: string\n searchParams: { [key: string]: string | string[] }\n}) => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (!isAdminAuthRoute({ adminRoute, config, route })) {\n if (searchParams && 'redirect' in searchParams) delete searchParams.redirect\n\n const redirectRoute = encodeURIComponent(\n route + Object.keys(searchParams ?? {}).length\n ? `${qs.stringify(searchParams, { addQueryPrefix: true })}`\n : undefined,\n )\n\n const adminLoginRoute = formatAdminURL({ adminRoute, path: loginRouteFromConfig })\n\n const customLoginRoute =\n typeof redirectUnauthenticatedUser === 'string' ? redirectUnauthenticatedUser : undefined\n\n const loginRoute = isAdminRoute({ adminRoute, config, route })\n ? adminLoginRoute\n : customLoginRoute || loginRouteFromConfig\n\n const parsedLoginRouteSearchParams = qs.parse(loginRoute.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n redirect(`${loginRoute.split('?')[0]}${searchParamsWithRedirect}`)\n }\n}\n"],"names":["formatAdminURL","redirect","qs","isAdminAuthRoute","isAdminRoute","handleAuthRedirect","config","redirectUnauthenticatedUser","route","searchParams","admin","routes","login","loginRouteFromConfig","adminRoute","redirectRoute","encodeURIComponent","Object","keys","length","stringify","addQueryPrefix","undefined","adminLoginRoute","path","customLoginRoute","loginRoute","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"mappings":"AAAA,SAASA,cAAc,QAAQ,wBAAuB;AACtD,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,YAAYC,QAAQ,SAAQ;AAE5B,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,cAAa;AAE5D,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,MAAM,EACNC,2BAA2B,EAC3BC,KAAK,EACLC,YAAY,EAMb;IACC,MAAM,EACJC,OAAO,EACLC,QAAQ,EAAEC,OAAOC,oBAAoB,EAAE,EACxC,EACDF,QAAQ,EAAED,OAAOI,UAAU,EAAE,EAC9B,GAAGR;IAEJ,IAAI,CAACH,iBAAiB;QAAEW;QAAYR;QAAQE;IAAM,IAAI;QACpD,IAAIC,gBAAgB,cAAcA,cAAc,OAAOA,aAAaR,QAAQ;QAE5E,MAAMc,gBAAgBC,mBACpBR,QAAQS,OAAOC,IAAI,CAACT,gBAAgB,CAAC,GAAGU,MAAM,GAC1C,CAAC,EAAEjB,GAAGkB,SAAS,CAACX,cAAc;YAAEY,gBAAgB;QAAK,GAAG,CAAC,GACzDC;QAGN,MAAMC,kBAAkBvB,eAAe;YAAEc;YAAYU,MAAMX;QAAqB;QAEhF,MAAMY,mBACJ,OAAOlB,gCAAgC,WAAWA,8BAA8Be;QAElF,MAAMI,aAAatB,aAAa;YAAEU;YAAYR;YAAQE;QAAM,KACxDe,kBACAE,oBAAoBZ;QAExB,MAAMc,+BAA+BzB,GAAG0B,KAAK,CAACF,WAAWG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;QAE1E,MAAMC,2BAA2B,CAAC,EAAE5B,GAAGkB,SAAS,CAC9C;YACE,GAAGO,4BAA4B;YAC/B,GAAIZ,gBAAgB;gBAAEd,UAAUc;YAAc,IAAI,CAAC,CAAC;QACtD,GACA;YAAEM,gBAAgB;QAAK,GACvB,CAAC;QAEHpB,SAAS,CAAC,EAAEyB,WAAWG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAEC,yBAAyB,CAAC;IACnE;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { InitPageResult, Locale, PayloadRequest, VisibleEntities } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createLocalReq, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { getPayloadHMR } from '../getPayloadHMR.js'\nimport { getRequestLanguage } from '../getRequestLanguage.js'\nimport { handleAdminPage } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\n\nexport const initPage = async ({\n config: configPromise,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const payload = await getPayloadHMR({ config: configPromise })\n\n const {\n collections,\n globals,\n i18n: i18nConfig,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n const cookies = parseCookies(headers)\n const language = getRequestLanguage({ config: payload.config, cookies, headers })\n\n const i18n: I18n = await initI18n({\n config: i18nConfig,\n context: 'client',\n language,\n })\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n req: {\n headers,\n host: headers.get('host'),\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n req.user = user\n\n const localeParam = searchParams?.locale as string\n let locale: Locale\n\n if (localization) {\n const defaultLocaleCode = localization.defaultLocale ? localization.defaultLocale : 'en'\n let localeCode: string = localeParam\n\n if (!localeCode) {\n try {\n localeCode = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n 'user.relationTo': {\n equals: payload.config.admin.user,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n {\n key: {\n equals: 'locale',\n },\n },\n ],\n },\n })\n ?.then((res) => res.docs?.[0]?.value as string)\n } catch (error) {} // eslint-disable-line no-empty\n }\n\n locale = findLocaleFromCode(localization, localeCode)\n\n if (!locale) locale = findLocaleFromCode(localization, defaultLocaleCode)\n req.locale = locale.code\n }\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n if (redirectUnauthenticatedUser && !user) {\n handleAuthRedirect({\n config: payload.config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n })\n }\n\n const { collectionConfig, docID, globalConfig } = handleAdminPage({\n adminRoute,\n config: payload.config,\n permissions,\n route,\n })\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"names":["initI18n","findLocaleFromCode","headers","getHeaders","createLocalReq","isEntityHidden","parseCookies","qs","getPayloadHMR","getRequestLanguage","handleAdminPage","handleAuthRedirect","initPage","config","configPromise","redirectUnauthenticatedUser","route","searchParams","payload","collections","globals","i18n","i18nConfig","localization","routes","admin","adminRoute","queryString","stringify","addQueryPrefix","cookies","language","context","languageOptions","Object","entries","supportedLanguages","reduce","acc","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","req","fallbackLocale","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","permissions","user","auth","localeParam","locale","defaultLocaleCode","defaultLocale","localeCode","find","collection","limit","where","and","equals","id","key","then","res","docs","error","code","visibleEntities","map","slug","hidden","filter","Boolean","collectionConfig","docID","globalConfig"],"mappings":"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"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { SanitizedConfig } from 'payload';
|
|
2
|
-
export declare const isAdminRoute: (
|
|
3
|
-
|
|
2
|
+
export declare const isAdminRoute: ({ adminRoute, config, route, }: {
|
|
3
|
+
adminRoute: string;
|
|
4
|
+
config: SanitizedConfig;
|
|
5
|
+
route: string;
|
|
6
|
+
}) => boolean;
|
|
7
|
+
export declare const isAdminAuthRoute: ({ adminRoute, config, route, }: {
|
|
8
|
+
adminRoute: string;
|
|
9
|
+
config: SanitizedConfig;
|
|
10
|
+
route: string;
|
|
11
|
+
}) => boolean;
|
|
12
|
+
export declare const getRouteWithoutAdmin: ({ adminRoute, route, }: {
|
|
13
|
+
adminRoute: string;
|
|
14
|
+
route: string;
|
|
15
|
+
}) => string;
|
|
4
16
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAa9C,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAa9C,eAAO,MAAM,YAAY,mCAItB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAEH,CAAA;AAED,eAAO,MAAM,gBAAgB,mCAI1B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAQH,CAAA;AAED,eAAO,MAAM,oBAAoB,2BAG9B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,MAEH,CAAA"}
|
|
@@ -8,12 +8,22 @@ const authRouteKeys = [
|
|
|
8
8
|
'unauthorized',
|
|
9
9
|
'reset'
|
|
10
10
|
];
|
|
11
|
-
export const isAdminRoute = (
|
|
12
|
-
return route.startsWith(adminRoute)
|
|
11
|
+
export const isAdminRoute = ({ adminRoute, config, route })=>{
|
|
12
|
+
return route.startsWith(adminRoute) && !isAdminAuthRoute({
|
|
13
|
+
adminRoute,
|
|
14
|
+
config,
|
|
15
|
+
route
|
|
16
|
+
});
|
|
13
17
|
};
|
|
14
|
-
export const isAdminAuthRoute = (config, route
|
|
18
|
+
export const isAdminAuthRoute = ({ adminRoute, config, route })=>{
|
|
15
19
|
const authRoutes = config.admin?.routes ? Object.entries(config.admin.routes).filter(([key])=>authRouteKeys.includes(key)).map(([_, value])=>value) : [];
|
|
16
|
-
return authRoutes.some((r)=>
|
|
20
|
+
return authRoutes.some((r)=>getRouteWithoutAdmin({
|
|
21
|
+
adminRoute,
|
|
22
|
+
route
|
|
23
|
+
}).startsWith(r));
|
|
24
|
+
};
|
|
25
|
+
export const getRouteWithoutAdmin = ({ adminRoute, route })=>{
|
|
26
|
+
return adminRoute && adminRoute !== '/' ? route.replace(adminRoute, '') : route;
|
|
17
27
|
};
|
|
18
28
|
|
|
19
29
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nconst authRouteKeys: (keyof SanitizedConfig['admin']['routes'])[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isAdminRoute = (route: string
|
|
1
|
+
{"version":3,"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nconst authRouteKeys: (keyof SanitizedConfig['admin']['routes'])[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isAdminRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n return route.startsWith(adminRoute) && !isAdminAuthRoute({ adminRoute, config, route })\n}\n\nexport const isAdminAuthRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n const authRoutes = config.admin?.routes\n ? Object.entries(config.admin.routes)\n .filter(([key]) => authRouteKeys.includes(key as keyof SanitizedConfig['admin']['routes']))\n .map(([_, value]) => value)\n : []\n\n return authRoutes.some((r) => getRouteWithoutAdmin({ adminRoute, route }).startsWith(r))\n}\n\nexport const getRouteWithoutAdmin = ({\n adminRoute,\n route,\n}: {\n adminRoute: string\n route: string\n}): string => {\n return adminRoute && adminRoute !== '/' ? route.replace(adminRoute, '') : route\n}\n"],"names":["authRouteKeys","isAdminRoute","adminRoute","config","route","startsWith","isAdminAuthRoute","authRoutes","admin","routes","Object","entries","filter","key","includes","map","_","value","some","r","getRouteWithoutAdmin","replace"],"mappings":"AAEA,MAAMA,gBAA8D;IAClE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,MAAMC,eAAe,CAAC,EAC3BC,UAAU,EACVC,MAAM,EACNC,KAAK,EAKN;IACC,OAAOA,MAAMC,UAAU,CAACH,eAAe,CAACI,iBAAiB;QAAEJ;QAAYC;QAAQC;IAAM;AACvF,EAAC;AAED,OAAO,MAAME,mBAAmB,CAAC,EAC/BJ,UAAU,EACVC,MAAM,EACNC,KAAK,EAKN;IACC,MAAMG,aAAaJ,OAAOK,KAAK,EAAEC,SAC7BC,OAAOC,OAAO,CAACR,OAAOK,KAAK,CAACC,MAAM,EAC/BG,MAAM,CAAC,CAAC,CAACC,IAAI,GAAKb,cAAcc,QAAQ,CAACD,MACzCE,GAAG,CAAC,CAAC,CAACC,GAAGC,MAAM,GAAKA,SACvB,EAAE;IAEN,OAAOV,WAAWW,IAAI,CAAC,CAACC,IAAMC,qBAAqB;YAAElB;YAAYE;QAAM,GAAGC,UAAU,CAACc;AACvF,EAAC;AAED,OAAO,MAAMC,uBAAuB,CAAC,EACnClB,UAAU,EACVE,KAAK,EAIN;IACC,OAAOF,cAAcA,eAAe,MAAME,MAAMiB,OAAO,CAACnB,YAAY,MAAME;AAC5E,EAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const mergeHeaders: (sourceHeaders: Headers, destinationHeaders: Headers) => Headers;
|
|
2
2
|
//# sourceMappingURL=mergeHeaders.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeHeaders.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeHeaders.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mergeHeaders.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeHeaders.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,kBAAmB,OAAO,sBAAsB,OAAO,KAAG,OAUlF,CAAA"}
|
|
@@ -1,37 +1,11 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
'proxy-authenticate',
|
|
6
|
-
'vary'
|
|
7
|
-
];
|
|
8
|
-
export function mergeHeaders(sourceHeaders, destinationHeaders) {
|
|
9
|
-
// Create a map to store combined headers
|
|
10
|
-
const combinedHeaders = new Headers();
|
|
11
|
-
// Add existing destination headers to the combined map
|
|
12
|
-
destinationHeaders.forEach((value, key)=>{
|
|
13
|
-
combinedHeaders.set(key, value);
|
|
14
|
-
});
|
|
15
|
-
// Add source headers to the combined map, joining specific headers
|
|
1
|
+
export const mergeHeaders = (sourceHeaders, destinationHeaders)=>{
|
|
2
|
+
// Create a new Headers object
|
|
3
|
+
const combinedHeaders = new Headers(destinationHeaders);
|
|
4
|
+
// Append sourceHeaders to combinedHeaders
|
|
16
5
|
sourceHeaders.forEach((value, key)=>{
|
|
17
|
-
|
|
18
|
-
if (headersToJoin.includes(lowerKey)) {
|
|
19
|
-
if (combinedHeaders.has(key)) {
|
|
20
|
-
combinedHeaders.set(key, `${combinedHeaders.get(key)}, ${value}`);
|
|
21
|
-
} else {
|
|
22
|
-
combinedHeaders.set(key, value);
|
|
23
|
-
}
|
|
24
|
-
} else {
|
|
25
|
-
combinedHeaders.set(key, value);
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
// Clear the destination headers and set the combined headers
|
|
29
|
-
destinationHeaders.forEach((_, key)=>{
|
|
30
|
-
destinationHeaders.delete(key);
|
|
31
|
-
});
|
|
32
|
-
combinedHeaders.forEach((value, key)=>{
|
|
33
|
-
destinationHeaders.append(key, value);
|
|
6
|
+
combinedHeaders.append(key, value);
|
|
34
7
|
});
|
|
35
|
-
|
|
8
|
+
return combinedHeaders;
|
|
9
|
+
};
|
|
36
10
|
|
|
37
11
|
//# sourceMappingURL=mergeHeaders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/mergeHeaders.ts"],"sourcesContent":["const
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/mergeHeaders.ts"],"sourcesContent":["export const mergeHeaders = (sourceHeaders: Headers, destinationHeaders: Headers): Headers => {\n // Create a new Headers object\n const combinedHeaders = new Headers(destinationHeaders)\n\n // Append sourceHeaders to combinedHeaders\n sourceHeaders.forEach((value, key) => {\n combinedHeaders.append(key, value)\n })\n\n return combinedHeaders\n}\n"],"names":["mergeHeaders","sourceHeaders","destinationHeaders","combinedHeaders","Headers","forEach","value","key","append"],"mappings":"AAAA,OAAO,MAAMA,eAAe,CAACC,eAAwBC;IACnD,8BAA8B;IAC9B,MAAMC,kBAAkB,IAAIC,QAAQF;IAEpC,0CAA0C;IAC1CD,cAAcI,OAAO,CAAC,CAACC,OAAOC;QAC5BJ,gBAAgBK,MAAM,CAACD,KAAKD;IAC9B;IAEA,OAAOH;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/utilities/meta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/utilities/meta.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAYrD,eAAO,MAAM,IAAI,SAAgB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,KAAG,OAAO,CAAC,GAAG,CAwFhF,CAAA"}
|
package/dist/utilities/meta.js
CHANGED
|
@@ -22,11 +22,9 @@ export const meta = async (args)=>{
|
|
|
22
22
|
url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight
|
|
23
23
|
}
|
|
24
24
|
];
|
|
25
|
-
let icons =
|
|
26
|
-
;
|
|
25
|
+
let icons = payloadIcons;
|
|
27
26
|
if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {
|
|
28
|
-
icons =
|
|
29
|
-
;
|
|
27
|
+
icons = customIcons;
|
|
30
28
|
}
|
|
31
29
|
const metaTitle = `${title} ${titleSuffix}`;
|
|
32
30
|
const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { IconConfig, MetaConfig } from 'payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const meta = async (args: { serverURL: string } & MetaConfig): Promise<any> => {\n const {\n defaultOGImageType,\n description,\n icons: customIcons,\n keywords,\n openGraph: openGraphFromProps,\n serverURL,\n title,\n titleSuffix,\n } = args\n\n const payloadIcons: IconConfig[] = [\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ]\n\n let icons = payloadIcons\n\n if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {\n icons = customIcons\n }\n\n const metaTitle = `${title} ${titleSuffix}`\n\n const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`\n\n const mergedOpenGraph: Metadata['openGraph'] = {\n ...(defaultOpenGraph || {}),\n ...(defaultOGImageType === 'dynamic'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 630,\n url: `/api/og${qs.stringify(\n {\n description: openGraphFromProps?.description || defaultOpenGraph.description,\n title: ogTitle,\n },\n {\n addQueryPrefix: true,\n },\n )}`,\n width: 1200,\n },\n ],\n }\n : {}),\n ...(defaultOGImageType === 'static'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 480,\n url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,\n width: 640,\n },\n ],\n }\n : {}),\n title: ogTitle,\n ...(openGraphFromProps || {}),\n }\n\n return Promise.resolve({\n description,\n icons,\n keywords,\n metadataBase: new URL(\n serverURL ||\n process.env.PAYLOAD_PUBLIC_SERVER_URL ||\n `http://localhost:${process.env.PORT || 3000}`,\n ),\n openGraph: mergedOpenGraph,\n title: metaTitle,\n })\n}\n"],"names":["payloadFaviconDark","payloadFaviconLight","staticOGImage","qs","defaultOpenGraph","description","siteName","title","meta","args","defaultOGImageType","icons","customIcons","keywords","openGraph","openGraphFromProps","serverURL","titleSuffix","payloadIcons","type","rel","sizes","url","src","media","Array","isArray","metaTitle","ogTitle","mergedOpenGraph","images","alt","height","stringify","addQueryPrefix","width","Promise","resolve","metadataBase","URL","process","env","PAYLOAD_PUBLIC_SERVER_URL","PORT"],"mappings":"AAGA,SAASA,kBAAkB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,wBAAuB;AAC9F,YAAYC,QAAQ,SAAQ;AAE5B,MAAMC,mBAAmB;IACvBC,aACE;IACFC,UAAU;IACVC,OAAO;AACT;AAEA,OAAO,MAAMC,OAAO,OAAOC;IACzB,MAAM,EACJC,kBAAkB,EAClBL,WAAW,EACXM,OAAOC,WAAW,EAClBC,QAAQ,EACRC,WAAWC,kBAAkB,EAC7BC,SAAS,EACTT,KAAK,EACLU,WAAW,EACZ,GAAGR;IAEJ,MAAMS,eAA6B;QACjC;YACEC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOtB,uBAAuB,WAAWA,oBAAoBuB,MAAMvB;QAC1E;QACA;YACEmB,MAAM;YACNK,OAAO;YACPJ,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOrB,wBAAwB,WAAWA,qBAAqBsB,MAAMtB;QAC5E;KACD;IAED,IAAIU,QAAQO;IAEZ,IAAIN,eAAe,OAAOA,gBAAgB,YAAYa,MAAMC,OAAO,CAACd,cAAc;QAChFD,QAAQC;IACV;IAEA,MAAMe,YAAY,CAAC,EAAEpB,MAAM,CAAC,EAAEU,YAAY,CAAC;IAE3C,MAAMW,UAAU,CAAC,EAAE,OAAOb,oBAAoBR,UAAU,WAAWQ,mBAAmBR,KAAK,GAAGA,MAAM,CAAC,EAAEU,YAAY,CAAC;IAEpH,MAAMY,kBAAyC;QAC7C,GAAIzB,oBAAoB,CAAC,CAAC;QAC1B,GAAIM,uBAAuB,YACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,CAAC,OAAO,EAAEnB,GAAG8B,SAAS,CACzB;wBACE5B,aAAaU,oBAAoBV,eAAeD,iBAAiBC,WAAW;wBAC5EE,OAAOqB;oBACT,GACA;wBACEM,gBAAgB;oBAClB,GACA,CAAC;oBACHC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN,GAAIzB,uBAAuB,WACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,OAAOpB,kBAAkB,WAAWA,eAAeqB,MAAMrB;oBAC9DiC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN5B,OAAOqB;QACP,GAAIb,sBAAsB,CAAC,CAAC;IAC9B;IAEA,OAAOqB,QAAQC,OAAO,CAAC;QACrBhC;QACAM;QACAE;QACAyB,cAAc,IAAIC,IAChBvB,aACEwB,QAAQC,GAAG,CAACC,yBAAyB,IACrC,CAAC,iBAAiB,EAAEF,QAAQC,GAAG,CAACE,IAAI,IAAI,KAAK,CAAC;QAElD7B,WAAWe;QACXtB,OAAOoB;IACT;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Account/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,SAAS,CAAA;AAKtE,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Account/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,SAAS,CAAA;AAKtE,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAEnD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2F5C,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { DocumentInfoProvider,
|
|
2
|
+
import { DocumentInfoProvider, HydrateClientUser } from '@payloadcms/ui';
|
|
3
3
|
import { RenderCustomComponent } from '@payloadcms/ui/shared';
|
|
4
4
|
import { notFound } from 'next/navigation.js';
|
|
5
5
|
import React from 'react';
|
|
@@ -37,7 +37,6 @@ export const Account = async ({ initPageResult, params, searchParams })=>{
|
|
|
37
37
|
i18n: i18n,
|
|
38
38
|
languageOptions: languageOptions
|
|
39
39
|
}),
|
|
40
|
-
action: `${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`,
|
|
41
40
|
apiURL: `${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`,
|
|
42
41
|
collectionSlug: userSlug,
|
|
43
42
|
docPermissions: docPermissions,
|
|
@@ -59,27 +58,19 @@ export const Account = async ({ initPageResult, params, searchParams })=>{
|
|
|
59
58
|
permissions: permissions,
|
|
60
59
|
user: user
|
|
61
60
|
}),
|
|
62
|
-
/*#__PURE__*/ _jsx(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
locale,
|
|
76
|
-
params,
|
|
77
|
-
payload,
|
|
78
|
-
permissions,
|
|
79
|
-
searchParams,
|
|
80
|
-
user
|
|
81
|
-
}
|
|
82
|
-
})
|
|
61
|
+
/*#__PURE__*/ _jsx(RenderCustomComponent, {
|
|
62
|
+
CustomComponent: typeof CustomAccountComponent === 'function' ? CustomAccountComponent : undefined,
|
|
63
|
+
DefaultComponent: EditView,
|
|
64
|
+
componentProps: viewComponentProps,
|
|
65
|
+
serverOnlyProps: {
|
|
66
|
+
i18n,
|
|
67
|
+
locale,
|
|
68
|
+
params,
|
|
69
|
+
payload,
|
|
70
|
+
permissions,
|
|
71
|
+
searchParams,
|
|
72
|
+
user
|
|
73
|
+
}
|
|
83
74
|
})
|
|
84
75
|
]
|
|
85
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Account/index.tsx"],"sourcesContent":["import type { AdminViewProps, ServerSideEditViewProps } from 'payload'\n\nimport { DocumentInfoProvider,
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Account/index.tsx"],"sourcesContent":["import type { AdminViewProps, ServerSideEditViewProps } from 'payload'\n\nimport { DocumentInfoProvider, HydrateClientUser } from '@payloadcms/ui'\nimport { RenderCustomComponent } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { EditView } from '../Edit/index.js'\nimport { Settings } from './Settings/index.js'\n\nexport { generateAccountMetadata } from './meta.js'\n\nexport const Account: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n languageOptions,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: { components: { views: { Account: CustomAccountComponent } = {} } = {}, user: userSlug },\n routes: { api },\n serverURL,\n } = config\n\n const collectionConfig = config.collections.find((collection) => collection.slug === userSlug)\n\n if (collectionConfig && user?.id) {\n const { docPermissions, hasPublishPermission, hasSavePermission } =\n await getDocumentPermissions({\n id: user.id,\n collectionConfig,\n data: user,\n req,\n })\n\n const { data, formState } = await getDocumentData({\n id: user.id,\n collectionConfig,\n locale,\n req,\n })\n\n const viewComponentProps: ServerSideEditViewProps = {\n initPageResult,\n params,\n routeSegments: [],\n searchParams,\n }\n\n return (\n <DocumentInfoProvider\n AfterFields={<Settings i18n={i18n} languageOptions={languageOptions} />}\n apiURL={`${serverURL}${api}/${userSlug}${user?.id ? `/${user.id}` : ''}`}\n collectionSlug={userSlug}\n docPermissions={docPermissions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={user?.id.toString()}\n initialData={data}\n initialState={formState}\n isEditing\n >\n <DocumentHeader\n collectionConfig={collectionConfig}\n config={payload.config}\n hideTabs\n i18n={i18n}\n permissions={permissions}\n />\n <HydrateClientUser permissions={permissions} user={user} />\n <RenderCustomComponent\n CustomComponent={\n typeof CustomAccountComponent === 'function' ? CustomAccountComponent : undefined\n }\n DefaultComponent={EditView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </DocumentInfoProvider>\n )\n }\n\n return notFound()\n}\n"],"names":["DocumentInfoProvider","HydrateClientUser","RenderCustomComponent","notFound","React","DocumentHeader","getDocumentData","getDocumentPermissions","EditView","Settings","generateAccountMetadata","Account","initPageResult","params","searchParams","languageOptions","locale","permissions","req","i18n","payload","config","user","admin","components","views","CustomAccountComponent","userSlug","routes","api","serverURL","collectionConfig","collections","find","collection","slug","id","docPermissions","hasPublishPermission","hasSavePermission","data","formState","viewComponentProps","routeSegments","AfterFields","apiURL","collectionSlug","toString","initialData","initialState","isEditing","hideTabs","CustomComponent","undefined","DefaultComponent","componentProps","serverOnlyProps"],"mappings":";AAEA,SAASA,oBAAoB,EAAEC,iBAAiB,QAAQ,iBAAgB;AACxE,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,cAAc,QAAQ,yCAAwC;AACvE,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,sBAAsB,QAAQ,wCAAuC;AAC9E,SAASC,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,QAAQ,QAAQ,sBAAqB;AAE9C,SAASC,uBAAuB,QAAQ,YAAW;AAEnD,OAAO,MAAMC,UAAoC,OAAO,EACtDC,cAAc,EACdC,MAAM,EACNC,YAAY,EACb;IACC,MAAM,EACJC,eAAe,EACfC,MAAM,EACNC,WAAW,EACXC,GAAG,EACHA,KAAK,EACHC,IAAI,EACJC,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,EACF,GAAGV;IAEJ,MAAM,EACJW,OAAO,EAAEC,YAAY,EAAEC,OAAO,EAAEd,SAASe,sBAAsB,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEJ,MAAMK,QAAQ,EAAE,EAC/FC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGT;IAEJ,MAAMU,mBAAmBV,OAAOW,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKR;IAErF,IAAII,oBAAoBT,MAAMc,IAAI;QAChC,MAAM,EAAEC,cAAc,EAAEC,oBAAoB,EAAEC,iBAAiB,EAAE,GAC/D,MAAMhC,uBAAuB;YAC3B6B,IAAId,KAAKc,EAAE;YACXL;YACAS,MAAMlB;YACNJ;QACF;QAEF,MAAM,EAAEsB,IAAI,EAAEC,SAAS,EAAE,GAAG,MAAMnC,gBAAgB;YAChD8B,IAAId,KAAKc,EAAE;YACXL;YACAf;YACAE;QACF;QAEA,MAAMwB,qBAA8C;YAClD9B;YACAC;YACA8B,eAAe,EAAE;YACjB7B;QACF;QAEA,qBACE,MAACd;YACC4C,2BAAa,KAACnC;gBAASU,MAAMA;gBAAMJ,iBAAiBA;;YACpD8B,QAAQ,CAAC,EAAEf,UAAU,EAAED,IAAI,CAAC,EAAEF,SAAS,EAAEL,MAAMc,KAAK,CAAC,CAAC,EAAEd,KAAKc,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YACxEU,gBAAgBnB;YAChBU,gBAAgBA;YAChBC,sBAAsBA;YACtBC,mBAAmBA;YACnBH,IAAId,MAAMc,GAAGW;YACbC,aAAaR;YACbS,cAAcR;YACdS,SAAS;;8BAET,KAAC7C;oBACC0B,kBAAkBA;oBAClBV,QAAQD,QAAQC,MAAM;oBACtB8B,QAAQ;oBACRhC,MAAMA;oBACNF,aAAaA;;8BAEf,KAAChB;oBAAkBgB,aAAaA;oBAAaK,MAAMA;;8BACnD,KAACpB;oBACCkD,iBACE,OAAO1B,2BAA2B,aAAaA,yBAAyB2B;oBAE1EC,kBAAkB9C;oBAClB+C,gBAAgBb;oBAChBc,iBAAiB;wBACfrC;wBACAH;wBACAH;wBACAO;wBACAH;wBACAH;wBACAQ;oBACF;;;;IAIR;IAEA,OAAOnB;AACT,EAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { FormState } from 'payload';
|
|
1
|
+
import type { FormState, LoginWithUsernameOptions } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export declare const CreateFirstUserClient: React.FC<{
|
|
4
4
|
initialState: FormState;
|
|
5
|
+
loginWithUsername?: LoginWithUsernameOptions | false;
|
|
5
6
|
userSlug: string;
|
|
6
7
|
}>;
|
|
7
8
|
//# sourceMappingURL=index.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAclE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,wBAAwB,GAAG,KAAK,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;CACjB,CA6DA,CAAA"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ConfirmPasswordField,
|
|
3
|
+
import { ConfirmPasswordField, Form, FormSubmit, PasswordField, RenderFields, useComponentMap, useConfig, useTranslation } from '@payloadcms/ui';
|
|
4
4
|
import { getFormState } from '@payloadcms/ui/shared';
|
|
5
5
|
import React from 'react';
|
|
6
|
-
|
|
6
|
+
import { RenderEmailAndUsernameFields } from '../../elements/EmailAndUsername/index.js';
|
|
7
|
+
export const CreateFirstUserClient = ({ initialState, loginWithUsername, userSlug })=>{
|
|
7
8
|
const { getFieldMap } = useComponentMap();
|
|
8
9
|
const { routes: { admin, api: apiRoute }, serverURL } = useConfig();
|
|
9
10
|
const { t } = useTranslation();
|
|
10
11
|
const fieldMap = getFieldMap({
|
|
11
12
|
collectionSlug: userSlug
|
|
12
13
|
});
|
|
13
|
-
const onChange = React.useCallback(async ({ formState: prevFormState })=>{
|
|
14
|
-
return getFormState({
|
|
14
|
+
const onChange = React.useCallback(async ({ formState: prevFormState })=>getFormState({
|
|
15
15
|
apiRoute,
|
|
16
16
|
body: {
|
|
17
17
|
collectionSlug: userSlug,
|
|
18
18
|
formState: prevFormState,
|
|
19
19
|
operation: 'create',
|
|
20
|
-
schemaPath: userSlug
|
|
20
|
+
schemaPath: `_${userSlug}.auth`
|
|
21
21
|
},
|
|
22
22
|
serverURL
|
|
23
|
-
})
|
|
24
|
-
}, [
|
|
23
|
+
}), [
|
|
25
24
|
apiRoute,
|
|
26
25
|
userSlug,
|
|
27
26
|
serverURL
|
|
@@ -36,27 +35,30 @@ export const CreateFirstUserClient = ({ initialState, userSlug })=>{
|
|
|
36
35
|
redirect: admin,
|
|
37
36
|
validationOperation: "create",
|
|
38
37
|
children: [
|
|
39
|
-
/*#__PURE__*/ _jsx(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
/*#__PURE__*/ _jsx(RenderEmailAndUsernameFields, {
|
|
39
|
+
className: "emailAndUsername",
|
|
40
|
+
loginWithUsername: loginWithUsername,
|
|
41
|
+
operation: "create",
|
|
42
|
+
readOnly: false
|
|
44
43
|
}),
|
|
45
44
|
/*#__PURE__*/ _jsx(PasswordField, {
|
|
46
45
|
autoComplete: "off",
|
|
47
46
|
label: t('authentication:newPassword'),
|
|
48
47
|
name: "password",
|
|
48
|
+
path: "password",
|
|
49
49
|
required: true
|
|
50
50
|
}),
|
|
51
51
|
/*#__PURE__*/ _jsx(ConfirmPasswordField, {}),
|
|
52
52
|
/*#__PURE__*/ _jsx(RenderFields, {
|
|
53
53
|
fieldMap: fieldMap,
|
|
54
|
+
forceRender: true,
|
|
54
55
|
operation: "create",
|
|
55
56
|
path: "",
|
|
56
57
|
readOnly: false,
|
|
57
58
|
schemaPath: userSlug
|
|
58
59
|
}),
|
|
59
60
|
/*#__PURE__*/ _jsx(FormSubmit, {
|
|
61
|
+
size: "large",
|
|
60
62
|
children: t('general:create')
|
|
61
63
|
})
|
|
62
64
|
]
|