@payloadcms/next 3.0.0-canary.67aae47 → 3.0.0-canary.6b9e4be
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 +10 -0
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/fetchAPI-multipart/isEligibleRequest.js +1 -1
- package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
- package/dist/layouts/Root/index.d.ts +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +3 -1
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/utilities/getClientConfig.d.ts +2 -1
- package/dist/utilities/getClientConfig.d.ts.map +1 -1
- package/dist/utilities/getClientConfig.js +4 -2
- package/dist/utilities/getClientConfig.js.map +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +1 -2
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +80 -113
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/Document/getIsLocked.d.ts +3 -4
- package/dist/views/Document/getIsLocked.d.ts.map +1 -1
- package/dist/views/Document/getIsLocked.js +5 -4
- package/dist/views/Document/getIsLocked.js.map +1 -1
- package/dist/views/Document/handleServerFunction.d.ts +2 -1
- package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
- package/dist/views/Document/handleServerFunction.js +6 -3
- package/dist/views/Document/handleServerFunction.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +1 -2
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/List/handleServerFunction.d.ts +2 -1
- package/dist/views/List/handleServerFunction.d.ts.map +1 -1
- package/dist/views/List/handleServerFunction.js +6 -3
- package/dist/views/List/handleServerFunction.js.map +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.d.ts +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.d.ts.map +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.js +4 -4
- package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js +11 -19
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +2 -1
- package/dist/views/Root/index.js.map +1 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +10 -0
- package/dist/withPayload.js.map +1 -1
- package/license.md +22 -0
- package/package.json +16 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["c","_c","DocumentControls","DocumentFields","DocumentLocked","DocumentTakeOver","Form","LeaveWithoutSaving","OperationProvider","SetDocumentStepNav","SetDocumentTitle","useAuth","useConfig","useDocumentDrawerContext","useDocumentEvents","useDocumentInfo","useServerFunctions","useTranslation","handleBackToDashboard","handleGoBack","handleTakeOver","useRouter","React","Fragment","useCallback","useEffect","useRef","useState","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","collectionConfig","config","fields","globalConfig","schemaPath","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","lastUpdateTime","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","getFormState","onSave","onSaveFromProps","operation","admin","user","userSlug","routes","adminRoute","router","t","previewWindowType","refreshCookieAsync","reportUpdate","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","abortControllerRef","AbortController","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","json","entitySlug","updatedAt","result","toISOString","onChange","formState","prevFormState","current","abort","_err","abortController","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","returnLockStatus","signal","previousOwnerId","lockedUserID","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","path","includes","shouldShowDocumentLockedModal","_jsx","_jsxs","className","disabled","method","onSuccess","isActive","onReadOnly","onTakeOver","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","useAsTitle","view","fallback","toString","data","permissions","readOnlyForIncomingUser","slug","filter","Boolean","join","forceSidebarWrap","readOnly","schemaPathSegments","LivePreviewClient","props","$","breakpoints","url","t0","getEntityConfig","t1","serverURL","api","apiRoute","t2","eventType","isPopupOpen","openPopupWindow","popupRef","t3","children","fieldSchema"],"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n ClientUser,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n DocumentLocked,\n DocumentTakeOver,\n Form,\n LeaveWithoutSaving,\n OperationProvider,\n SetDocumentStepNav,\n SetDocumentTitle,\n useAuth,\n useConfig,\n useDocumentDrawerContext,\n useDocumentEvents,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport './index.scss'\nimport { LivePreview } from './Preview/index.js'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const { getFormState } = useServerFunctions()\n\n const { onSave: onSaveFromProps } = useDocumentDrawerContext()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const router = useRouter()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const abortControllerRef = useRef(new AbortController())\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n collectionSlug,\n globalSlug,\n id,\n isLockingEnabled,\n onSaveFromProps,\n refreshCookieAsync,\n reportUpdate,\n setDocumentIsLocked,\n user,\n userSlug,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n if (abortControllerRef.current) {\n try {\n abortControllerRef.current.abort()\n } catch (_err) {\n // swallow error\n }\n }\n\n const abortController = new AbortController()\n abortControllerRef.current = abortController\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath,\n signal: abortController.signal,\n updateLastEdited,\n })\n\n setDocumentIsLocked(true)\n\n if (isLockingEnabled) {\n const previousOwnerId =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerId) {\n if (previousOwnerId === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n }\n\n return state\n },\n [\n editSessionStartTime,\n isLockingEnabled,\n getDocPreferences,\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n operation,\n schemaPath,\n setDocumentIsLocked,\n user.id,\n setCurrentEditor,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (abortControllerRef.current) {\n try {\n abortControllerRef.current.abort()\n } catch (_err) {\n // swallow error\n }\n }\n\n if (!isLockingEnabled) {\n return\n }\n\n const currentPath = window.location.pathname\n\n const documentId = id || globalSlug\n\n // Routes where we do NOT want to unlock the document\n const stayWithinDocumentPaths = ['preview', 'api', 'versions']\n\n const isStayingWithinDocument = stayWithinDocumentPaths.some((path) =>\n currentPath.includes(path),\n )\n\n // Unlock the document only if we're actually navigating away from the document\n if (documentId && documentIsLocked && !isStayingWithinDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n // eslint-disable-next-line react-compiler/react-compiler\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || !hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving &&\n !isReadOnlyForIncomingUser && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={[collectionSlug || globalSlug]}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["c","_c","DocumentControls","DocumentFields","DocumentLocked","DocumentTakeOver","Form","LeaveWithoutSaving","OperationProvider","SetDocumentStepNav","SetDocumentTitle","useAuth","useConfig","useDocumentDrawerContext","useDocumentEvents","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","handleBackToDashboard","handleGoBack","handleTakeOver","useRouter","React","Fragment","useCallback","useEffect","useRef","useState","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","collectionConfig","config","fields","globalConfig","schemaPath","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","lastUpdateTime","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","getFormState","onSave","onSaveFromProps","operation","admin","user","userSlug","routes","adminRoute","router","t","previewWindowType","refreshCookieAsync","reportUpdate","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","formStateAbortControllerRef","AbortController","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","json","entitySlug","updatedAt","result","toISOString","onChange","formState","prevFormState","current","controller","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","returnLockStatus","signal","previousOwnerId","lockedUserID","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","path","includes","shouldShowDocumentLockedModal","_jsx","_jsxs","className","disabled","method","onSuccess","isActive","onReadOnly","onTakeOver","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","useAsTitle","view","fallback","toString","data","permissions","readOnlyForIncomingUser","slug","filter","Boolean","join","forceSidebarWrap","readOnly","schemaPathSegments","LivePreviewClient","props","$","breakpoints","url","t0","getEntityConfig","t1","serverURL","api","apiRoute","t2","eventType","isPopupOpen","openPopupWindow","popupRef","t3","children","fieldSchema"],"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n ClientUser,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n DocumentLocked,\n DocumentTakeOver,\n Form,\n LeaveWithoutSaving,\n OperationProvider,\n SetDocumentStepNav,\n SetDocumentTitle,\n useAuth,\n useConfig,\n useDocumentDrawerContext,\n useDocumentEvents,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n abortAndIgnore,\n handleBackToDashboard,\n handleGoBack,\n handleTakeOver,\n} from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport './index.scss'\nimport { LivePreview } from './Preview/index.js'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const { getFormState } = useServerFunctions()\n\n const { onSave: onSaveFromProps } = useDocumentDrawerContext()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const router = useRouter()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const formStateAbortControllerRef = useRef(new AbortController())\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n collectionSlug,\n globalSlug,\n id,\n isLockingEnabled,\n onSaveFromProps,\n refreshCookieAsync,\n reportUpdate,\n setDocumentIsLocked,\n user,\n userSlug,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(formStateAbortControllerRef.current)\n\n const controller = new AbortController()\n formStateAbortControllerRef.current = controller\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath,\n signal: controller.signal,\n updateLastEdited,\n })\n\n setDocumentIsLocked(true)\n\n if (isLockingEnabled) {\n const previousOwnerId =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerId) {\n if (previousOwnerId === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n }\n\n return state\n },\n [\n editSessionStartTime,\n isLockingEnabled,\n getDocPreferences,\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n operation,\n schemaPath,\n setDocumentIsLocked,\n user.id,\n setCurrentEditor,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (!isLockingEnabled) {\n return\n }\n\n const currentPath = window.location.pathname\n\n const documentId = id || globalSlug\n\n // Routes where we do NOT want to unlock the document\n const stayWithinDocumentPaths = ['preview', 'api', 'versions']\n\n const isStayingWithinDocument = stayWithinDocumentPaths.some((path) =>\n currentPath.includes(path),\n )\n\n // Unlock the document only if we're actually navigating away from the document\n if (documentId && documentIsLocked && !isStayingWithinDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n return () => {\n abortAndIgnore(formStateAbortControllerRef.current)\n }\n })\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n // eslint-disable-next-line react-compiler/react-compiler\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || !hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving &&\n !isReadOnlyForIncomingUser && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={[collectionSlug || globalSlug]}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKzD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,oGAKlB;IACD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKzD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,oGAKlB;IACD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BA0IA,CAAA"}
|
package/dist/views/Root/index.js
CHANGED
|
@@ -89,7 +89,8 @@ export const RootPage = async ({
|
|
|
89
89
|
}
|
|
90
90
|
const clientConfig = await getClientConfig({
|
|
91
91
|
config,
|
|
92
|
-
i18n: initPageResult?.req.i18n
|
|
92
|
+
i18n: initPageResult?.req.i18n,
|
|
93
|
+
importMap
|
|
93
94
|
});
|
|
94
95
|
const RenderedView = /*#__PURE__*/_jsx(RenderServerComponent, {
|
|
95
96
|
clientProps: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["RenderServerComponent","formatAdminURL","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","getClientConfig","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","initPageOptions","serverProps","templateClassName","templateType","viewActions","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","RenderedView","_jsx","clientProps","Fallback","_jsxs","className","locale","permissions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { ImportMap, SanitizedConfig } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { getClientConfig } from '../../utilities/getClientConfig.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n const currentRoute = formatAdminURL({\n adminRoute,\n path: `${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n DefaultView,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewActions,\n } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = await getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n })\n\n const RenderedView = (\n <RenderServerComponent\n clientProps={{ clientConfig }}\n Component={DefaultView.payloadComponent}\n Fallback={DefaultView.Component}\n importMap={importMap}\n serverProps={{\n ...serverProps,\n clientConfig,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n }}\n />\n )\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={viewActions}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","names":["RenderServerComponent","formatAdminURL","notFound","redirect","React","Fragment","DefaultTemplate","MinimalTemplate","getClientConfig","initPage","getViewFromConfig","generatePageMetadata","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","initPageOptions","serverProps","templateClassName","templateType","viewActions","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","RenderedView","_jsx","clientProps","Fallback","_jsxs","className","locale","permissions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { ImportMap, SanitizedConfig } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { getClientConfig } from '../../utilities/getClientConfig.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport { generatePageMetadata } from './meta.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n const currentRoute = formatAdminURL({\n adminRoute,\n path: `${Array.isArray(params.segments) ? `/${params.segments.join('/')}` : ''}`,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n DefaultView,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewActions,\n } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = await getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const RenderedView = (\n <RenderServerComponent\n clientProps={{ clientConfig }}\n Component={DefaultView.payloadComponent}\n Fallback={DefaultView.Component}\n importMap={importMap}\n serverProps={{\n ...serverProps,\n clientConfig,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n }}\n />\n )\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={viewActions}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,CAmJrC"}
|
package/dist/withPayload.js
CHANGED
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
console.warn('Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.');
|
|
9
9
|
env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true';
|
|
10
10
|
}
|
|
11
|
+
if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {
|
|
12
|
+
const consoleWarn = console.warn;
|
|
13
|
+
console.warn = (...args) => {
|
|
14
|
+
// Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805
|
|
15
|
+
if (typeof args[1] === 'string' && args[1].includes('Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\nTry to install it into the project directory by running')) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
consoleWarn(...args);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
11
21
|
const poweredByHeader = {
|
|
12
22
|
key: 'X-Powered-By',
|
|
13
23
|
value: 'Next.js, Payload'
|
package/dist/withPayload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","poweredByHeader","key","value","toReturn","outputFileTracingExcludes","outputFileTracingIncludes","turbo","resolveAlias","headers","headersFromConfig","source","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n turbo: {\n ...(nextConfig?.experimental?.turbo || {}),\n resolveAlias: {\n ...(nextConfig?.experimental?.turbo?.resolveAlias || {}),\n 'payload-mock-package': 'payload-mock-package',\n },\n },\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"AAAA;;;;KAKA,OAAO,MAAMA,WAAA,GAAcA,CAACC,UAAA,GAAa,CAAC,CAAC;EACzC,MAAMC,GAAA,GAAMD,UAAA,EAAYC,GAAA,IAAO,CAAC;EAEhC,IAAID,UAAA,CAAWE,YAAY,EAAEC,UAAA,EAAYC,OAAA,EAAS;IAChDC,OAAA,CAAQC,IAAI,CACV;IAEFL,GAAA,CAAIM,uCAAuC,GAAG;EAChD;EAEA,MAAMC,eAAA,GAAkB;IACtBC,GAAA,EAAK;IACLC,KAAA,EAAO;EACT;EAEA;;;EAGA,MAAMC,QAAA,GAAW;IACf,
|
|
1
|
+
{"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","outputFileTracingExcludes","outputFileTracingIncludes","turbo","resolveAlias","headers","headersFromConfig","source","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const consoleWarn = console.warn\n\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n typeof args[1] === 'string' &&\n args[1].includes(\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running',\n )\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n turbo: {\n ...(nextConfig?.experimental?.turbo || {}),\n resolveAlias: {\n ...(nextConfig?.experimental?.turbo?.resolveAlias || {}),\n 'payload-mock-package': 'payload-mock-package',\n },\n },\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"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","ignoreList":[]}
|
package/license.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2024 Payload CMS, Inc. <info@payloadcms.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.0.0-canary.
|
|
3
|
+
"version": "3.0.0-canary.6b9e4be",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/payloadcms/payload.git",
|
|
8
8
|
"directory": "packages/next"
|
|
9
9
|
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "Payload <dev@payloadcms.com> (https://payloadcms.com)",
|
|
12
|
+
"maintainers": [
|
|
13
|
+
{
|
|
14
|
+
"name": "Payload",
|
|
15
|
+
"email": "info@payloadcms.com",
|
|
16
|
+
"url": "https://payloadcms.com"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
10
19
|
"type": "module",
|
|
11
20
|
"exports": {
|
|
12
21
|
"./css": {
|
|
@@ -71,9 +80,9 @@
|
|
|
71
80
|
"sonner": "^1.5.0",
|
|
72
81
|
"uuid": "10.0.0",
|
|
73
82
|
"ws": "^8.16.0",
|
|
74
|
-
"@payloadcms/graphql": "3.0.0-canary.
|
|
75
|
-
"@payloadcms/
|
|
76
|
-
"@payloadcms/
|
|
83
|
+
"@payloadcms/graphql": "3.0.0-canary.6b9e4be",
|
|
84
|
+
"@payloadcms/ui": "3.0.0-canary.6b9e4be",
|
|
85
|
+
"@payloadcms/translations": "3.0.0-canary.6b9e4be"
|
|
77
86
|
},
|
|
78
87
|
"devDependencies": {
|
|
79
88
|
"@babel/cli": "^7.24.5",
|
|
@@ -90,15 +99,15 @@
|
|
|
90
99
|
"babel-plugin-react-compiler": "0.0.0-experimental-24ec0eb-20240918",
|
|
91
100
|
"esbuild": "0.23.1",
|
|
92
101
|
"esbuild-sass-plugin": "3.3.1",
|
|
93
|
-
"eslint-plugin-react-compiler": "
|
|
102
|
+
"eslint-plugin-react-compiler": "19.0.0-beta-a7bf2bd-20241110",
|
|
94
103
|
"swc-plugin-transform-remove-imports": "1.15.0",
|
|
95
104
|
"@payloadcms/eslint-config": "3.0.0-beta.112",
|
|
96
|
-
"payload": "3.0.0-canary.
|
|
105
|
+
"payload": "3.0.0-canary.6b9e4be"
|
|
97
106
|
},
|
|
98
107
|
"peerDependencies": {
|
|
99
108
|
"graphql": "^16.8.1",
|
|
100
109
|
"next": "^15.0.0",
|
|
101
|
-
"payload": "3.0.0-canary.
|
|
110
|
+
"payload": "3.0.0-canary.6b9e4be"
|
|
102
111
|
},
|
|
103
112
|
"engines": {
|
|
104
113
|
"node": "^18.20.2 || >=20.9.0"
|