@ruya.sa/next 3.71.3
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/LICENSE.md +22 -0
- package/dist/auth/login.js +67 -0
- package/dist/auth/login.js.map +1 -0
- package/dist/auth/logout.js +52 -0
- package/dist/auth/logout.js.map +1 -0
- package/dist/auth/refresh.js +56 -0
- package/dist/auth/refresh.js.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/dummy.css +0 -0
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +19 -0
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +81 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +66 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/index.js +78 -0
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +29 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +72 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -0
- package/dist/elements/DocumentHeader/index.js +36 -0
- package/dist/elements/DocumentHeader/index.js.map +1 -0
- package/dist/elements/FormHeader/index.js +20 -0
- package/dist/elements/FormHeader/index.js.map +1 -0
- package/dist/elements/Logo/index.js +39 -0
- package/dist/elements/Logo/index.js.map +1 -0
- package/dist/elements/Nav/NavHamburger/index.js +51 -0
- package/dist/elements/Nav/NavHamburger/index.js.map +1 -0
- package/dist/elements/Nav/NavWrapper/index.js +61 -0
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -0
- package/dist/elements/Nav/SettingsMenuButton/index.js +45 -0
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -0
- package/dist/elements/Nav/getNavPrefs.js +26 -0
- package/dist/elements/Nav/getNavPrefs.js.map +1 -0
- package/dist/elements/Nav/index.client.js +133 -0
- package/dist/elements/Nav/index.client.js.map +1 -0
- package/dist/elements/Nav/index.js +145 -0
- package/dist/elements/Nav/index.js.map +1 -0
- package/dist/esbuildEntry.js +5 -0
- package/dist/esbuildEntry.js.map +1 -0
- package/dist/exports/auth.js +4 -0
- package/dist/exports/auth.js.map +1 -0
- package/dist/exports/client.js +6 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/layouts.js +3 -0
- package/dist/exports/layouts.js.map +1 -0
- package/dist/exports/routes.js +3 -0
- package/dist/exports/routes.js.map +1 -0
- package/dist/exports/rsc.js +4 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/exports/templates.js +3 -0
- package/dist/exports/templates.js.map +1 -0
- package/dist/exports/utilities.js +53 -0
- package/dist/exports/utilities.js.map +1 -0
- package/dist/exports/views.js +10 -0
- package/dist/exports/views.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts/Root/NestProviders.js +24 -0
- package/dist/layouts/Root/NestProviders.js.map +1 -0
- package/dist/layouts/Root/checkDependencies.js +49 -0
- package/dist/layouts/Root/checkDependencies.js.map +1 -0
- package/dist/layouts/Root/index.js +120 -0
- package/dist/layouts/Root/index.js.map +1 -0
- package/dist/routes/graphql/handler.js +137 -0
- package/dist/routes/graphql/handler.js.map +1 -0
- package/dist/routes/graphql/index.js +3 -0
- package/dist/routes/graphql/index.js.map +1 -0
- package/dist/routes/graphql/playground.js +31 -0
- package/dist/routes/graphql/playground.js.map +1 -0
- package/dist/routes/index.js +3 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/rest/index.js +33 -0
- package/dist/routes/rest/index.js.map +1 -0
- package/dist/routes/rest/og/image.js +86 -0
- package/dist/routes/rest/og/image.js.map +1 -0
- package/dist/routes/rest/og/index.js +70 -0
- package/dist/routes/rest/og/index.js.map +1 -0
- package/dist/routes/rest/og/roboto-regular.woff +0 -0
- package/dist/templates/Default/NavHamburger/index.js +25 -0
- package/dist/templates/Default/NavHamburger/index.js.map +1 -0
- package/dist/templates/Default/Wrapper/index.js +49 -0
- package/dist/templates/Default/Wrapper/index.js.map +1 -0
- package/dist/templates/Default/index.js +129 -0
- package/dist/templates/Default/index.js.map +1 -0
- package/dist/templates/Minimal/index.js +21 -0
- package/dist/templates/Minimal/index.js.map +1 -0
- package/dist/utilities/getExistingAuthToken.js +6 -0
- package/dist/utilities/getExistingAuthToken.js.map +1 -0
- package/dist/utilities/getNextRequestI18n.js +22 -0
- package/dist/utilities/getNextRequestI18n.js.map +1 -0
- package/dist/utilities/getPayloadHMR.js +15 -0
- package/dist/utilities/getPayloadHMR.js.map +1 -0
- package/dist/utilities/getPreferences.js +26 -0
- package/dist/utilities/getPreferences.js.map +1 -0
- package/dist/utilities/getRequestLocale.js +20 -0
- package/dist/utilities/getRequestLocale.js.map +1 -0
- package/dist/utilities/getRequestTheme.js +22 -0
- package/dist/utilities/getRequestTheme.js.map +1 -0
- package/dist/utilities/getRouteWithoutAdmin.js +7 -0
- package/dist/utilities/getRouteWithoutAdmin.js.map +1 -0
- package/dist/utilities/handleAuthRedirect.js +41 -0
- package/dist/utilities/handleAuthRedirect.js.map +1 -0
- package/dist/utilities/handleServerFunctions.js +57 -0
- package/dist/utilities/handleServerFunctions.js.map +1 -0
- package/dist/utilities/initReq.js +110 -0
- package/dist/utilities/initReq.js.map +1 -0
- package/dist/utilities/isCustomAdminView.js +31 -0
- package/dist/utilities/isCustomAdminView.js.map +1 -0
- package/dist/utilities/isPublicAdminRoute.js +25 -0
- package/dist/utilities/isPublicAdminRoute.js.map +1 -0
- package/dist/utilities/meta.js +69 -0
- package/dist/utilities/meta.js.map +1 -0
- package/dist/utilities/selectiveCache.js +38 -0
- package/dist/utilities/selectiveCache.js.map +1 -0
- package/dist/utilities/setPayloadAuthCookie.js +27 -0
- package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
- package/dist/utilities/slugify.js +47 -0
- package/dist/utilities/slugify.js.map +1 -0
- package/dist/utilities/timestamp.js +8 -0
- package/dist/utilities/timestamp.js.map +1 -0
- package/dist/views/API/LocaleSelector/index.js +44 -0
- package/dist/views/API/LocaleSelector/index.js.map +1 -0
- package/dist/views/API/RenderJSON/index.js +135 -0
- package/dist/views/API/RenderJSON/index.js.map +1 -0
- package/dist/views/API/index.client.js +209 -0
- package/dist/views/API/index.client.js.map +1 -0
- package/dist/views/API/index.js +7 -0
- package/dist/views/API/index.js.map +1 -0
- package/dist/views/API/metadata.js +29 -0
- package/dist/views/API/metadata.js.map +1 -0
- package/dist/views/Account/ResetPreferences/index.js +112 -0
- package/dist/views/Account/ResetPreferences/index.js.map +1 -0
- package/dist/views/Account/Settings/LanguageSelector.js +52 -0
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -0
- package/dist/views/Account/Settings/index.js +33 -0
- package/dist/views/Account/Settings/index.js.map +1 -0
- package/dist/views/Account/ToggleTheme/index.js +60 -0
- package/dist/views/Account/ToggleTheme/index.js.map +1 -0
- package/dist/views/Account/index.client.js +37 -0
- package/dist/views/Account/index.client.js.map +1 -0
- package/dist/views/Account/index.js +178 -0
- package/dist/views/Account/index.js.map +1 -0
- package/dist/views/Account/metadata.js +14 -0
- package/dist/views/Account/metadata.js.map +1 -0
- package/dist/views/BrowseByFolder/buildView.js +169 -0
- package/dist/views/BrowseByFolder/buildView.js.map +1 -0
- package/dist/views/BrowseByFolder/index.js +20 -0
- package/dist/views/BrowseByFolder/index.js.map +1 -0
- package/dist/views/BrowseByFolder/metadata.js +18 -0
- package/dist/views/BrowseByFolder/metadata.js.map +1 -0
- package/dist/views/CollectionFolders/buildView.js +156 -0
- package/dist/views/CollectionFolders/buildView.js.map +1 -0
- package/dist/views/CollectionFolders/index.js +20 -0
- package/dist/views/CollectionFolders/index.js.map +1 -0
- package/dist/views/CollectionFolders/metadata.js +25 -0
- package/dist/views/CollectionFolders/metadata.js.map +1 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.js +64 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -0
- package/dist/views/CollectionTrash/index.js +21 -0
- package/dist/views/CollectionTrash/index.js.map +1 -0
- package/dist/views/CollectionTrash/metadata.js +25 -0
- package/dist/views/CollectionTrash/metadata.js.map +1 -0
- package/dist/views/CreateFirstUser/index.client.js +112 -0
- package/dist/views/CreateFirstUser/index.client.js.map +1 -0
- package/dist/views/CreateFirstUser/index.js +88 -0
- package/dist/views/CreateFirstUser/index.js.map +1 -0
- package/dist/views/CreateFirstUser/metadata.js +14 -0
- package/dist/views/CreateFirstUser/metadata.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +147 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +431 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.js +87 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +99 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +58 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +72 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +158 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js +38 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +264 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -0
- package/dist/views/Dashboard/Default/index.js +52 -0
- package/dist/views/Dashboard/Default/index.js.map +1 -0
- package/dist/views/Dashboard/index.js +50 -0
- package/dist/views/Dashboard/index.js.map +1 -0
- package/dist/views/Dashboard/metadata.js +16 -0
- package/dist/views/Dashboard/metadata.js.map +1 -0
- package/dist/views/Document/getCustomDocumentViewByKey.js +4 -0
- package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -0
- package/dist/views/Document/getCustomViewByRoute.js +35 -0
- package/dist/views/Document/getCustomViewByRoute.js.map +1 -0
- package/dist/views/Document/getDocPreferences.js +45 -0
- package/dist/views/Document/getDocPreferences.js.map +1 -0
- package/dist/views/Document/getDocumentData.js +60 -0
- package/dist/views/Document/getDocumentData.js.map +1 -0
- package/dist/views/Document/getDocumentPermissions.js +87 -0
- package/dist/views/Document/getDocumentPermissions.js.map +1 -0
- package/dist/views/Document/getDocumentView.js +310 -0
- package/dist/views/Document/getDocumentView.js.map +1 -0
- package/dist/views/Document/getIsLocked.js +79 -0
- package/dist/views/Document/getIsLocked.js.map +1 -0
- package/dist/views/Document/getMetaBySegment.js +150 -0
- package/dist/views/Document/getMetaBySegment.js.map +1 -0
- package/dist/views/Document/getVersions.js +210 -0
- package/dist/views/Document/getVersions.js.map +1 -0
- package/dist/views/Document/handleServerFunction.js +135 -0
- package/dist/views/Document/handleServerFunction.js.map +1 -0
- package/dist/views/Document/index.js +390 -0
- package/dist/views/Document/index.js.map +1 -0
- package/dist/views/Document/metadata.js +3 -0
- package/dist/views/Document/metadata.js.map +1 -0
- package/dist/views/Document/renderDocumentSlots.js +154 -0
- package/dist/views/Document/renderDocumentSlots.js.map +1 -0
- package/dist/views/Edit/index.js +11 -0
- package/dist/views/Edit/index.js.map +1 -0
- package/dist/views/Edit/metadata.js +52 -0
- package/dist/views/Edit/metadata.js.map +1 -0
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +179 -0
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -0
- package/dist/views/ForgotPassword/index.js +72 -0
- package/dist/views/ForgotPassword/index.js.map +1 -0
- package/dist/views/ForgotPassword/metadata.js +14 -0
- package/dist/views/ForgotPassword/metadata.js.map +1 -0
- package/dist/views/List/createSerializableValue.js +14 -0
- package/dist/views/List/createSerializableValue.js.map +1 -0
- package/dist/views/List/enrichDocsWithVersionStatus.js +96 -0
- package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -0
- package/dist/views/List/extractRelationshipDisplayValue.js +17 -0
- package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -0
- package/dist/views/List/extractValueOrRelationshipID.js +19 -0
- package/dist/views/List/extractValueOrRelationshipID.js.map +1 -0
- package/dist/views/List/handleGroupBy.js +160 -0
- package/dist/views/List/handleGroupBy.js.map +1 -0
- package/dist/views/List/handleServerFunction.js +130 -0
- package/dist/views/List/handleServerFunction.js.map +1 -0
- package/dist/views/List/index.js +356 -0
- package/dist/views/List/index.js.map +1 -0
- package/dist/views/List/metadata.js +24 -0
- package/dist/views/List/metadata.js.map +1 -0
- package/dist/views/List/renderListViewSlots.js +80 -0
- package/dist/views/List/renderListViewSlots.js.map +1 -0
- package/dist/views/List/resolveAllFilterOptions.js +49 -0
- package/dist/views/List/resolveAllFilterOptions.js.map +1 -0
- package/dist/views/List/transformColumnsToSelect.js +11 -0
- package/dist/views/List/transformColumnsToSelect.js.map +1 -0
- package/dist/views/Login/LoginField/index.js +98 -0
- package/dist/views/Login/LoginField/index.js.map +1 -0
- package/dist/views/Login/LoginForm/index.js +177 -0
- package/dist/views/Login/LoginForm/index.js.map +1 -0
- package/dist/views/Login/index.js +95 -0
- package/dist/views/Login/index.js.map +1 -0
- package/dist/views/Login/metadata.js +14 -0
- package/dist/views/Login/metadata.js.map +1 -0
- package/dist/views/Logout/LogoutClient.js +140 -0
- package/dist/views/Logout/LogoutClient.js.map +1 -0
- package/dist/views/Logout/index.js +36 -0
- package/dist/views/Logout/index.js.map +1 -0
- package/dist/views/Logout/metadata.js +13 -0
- package/dist/views/Logout/metadata.js.map +1 -0
- package/dist/views/NotFound/index.client.js +88 -0
- package/dist/views/NotFound/index.client.js.map +1 -0
- package/dist/views/NotFound/index.js +87 -0
- package/dist/views/NotFound/index.js.map +1 -0
- package/dist/views/NotFound/metadata.js +11 -0
- package/dist/views/NotFound/metadata.js.map +1 -0
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +117 -0
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
- package/dist/views/ResetPassword/index.js +83 -0
- package/dist/views/ResetPassword/index.js.map +1 -0
- package/dist/views/ResetPassword/metadata.js +14 -0
- package/dist/views/ResetPassword/metadata.js.map +1 -0
- package/dist/views/Root/attachViewActions.js +27 -0
- package/dist/views/Root/attachViewActions.js.map +1 -0
- package/dist/views/Root/generateCustomViewMetadata.js +25 -0
- package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
- package/dist/views/Root/getCustomViewByKey.js +16 -0
- package/dist/views/Root/getCustomViewByKey.js.map +1 -0
- package/dist/views/Root/getCustomViewByRoute.js +48 -0
- package/dist/views/Root/getCustomViewByRoute.js.map +1 -0
- package/dist/views/Root/getDocumentViewInfo.js +28 -0
- package/dist/views/Root/getDocumentViewInfo.js.map +1 -0
- package/dist/views/Root/getRouteData.js +359 -0
- package/dist/views/Root/getRouteData.js.map +1 -0
- package/dist/views/Root/index.js +300 -0
- package/dist/views/Root/index.js.map +1 -0
- package/dist/views/Root/isPathMatchingRoute.js +29 -0
- package/dist/views/Root/isPathMatchingRoute.js.map +1 -0
- package/dist/views/Root/metadata.js +209 -0
- package/dist/views/Root/metadata.js.map +1 -0
- package/dist/views/Unauthorized/index.js +54 -0
- package/dist/views/Unauthorized/index.js.map +1 -0
- package/dist/views/Unauthorized/metadata.js +14 -0
- package/dist/views/Unauthorized/metadata.js.map +1 -0
- package/dist/views/Verify/index.client.js +50 -0
- package/dist/views/Verify/index.client.js.map +1 -0
- package/dist/views/Verify/index.js +71 -0
- package/dist/views/Verify/index.js.map +1 -0
- package/dist/views/Verify/metadata.js +14 -0
- package/dist/views/Verify/metadata.js.map +1 -0
- package/dist/views/Version/Default/SelectedLocalesContext.js +8 -0
- package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -0
- package/dist/views/Version/Default/SetStepNav.js +135 -0
- package/dist/views/Version/Default/SetStepNav.js.map +1 -0
- package/dist/views/Version/Default/index.js +253 -0
- package/dist/views/Version/Default/index.js.map +1 -0
- package/dist/views/Version/Default/types.js +2 -0
- package/dist/views/Version/Default/types.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +130 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +80 -0
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +439 -0
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +61 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +75 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +66 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +129 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +45 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +188 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +87 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +155 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +100 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +222 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +35 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/index.js +13 -0
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +242 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +861 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +47 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +45 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +135 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
- package/dist/views/Version/Restore/index.js +106 -0
- package/dist/views/Version/Restore/index.js.map +1 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +56 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +240 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -0
- package/dist/views/Version/SelectComparison/index.js +57 -0
- package/dist/views/Version/SelectComparison/index.js.map +1 -0
- package/dist/views/Version/SelectComparison/types.js +2 -0
- package/dist/views/Version/SelectComparison/types.js.map +1 -0
- package/dist/views/Version/SelectLocales/index.js +39 -0
- package/dist/views/Version/SelectLocales/index.js.map +1 -0
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +110 -0
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -0
- package/dist/views/Version/VersionPillLabel/getVersionLabel.js +34 -0
- package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -0
- package/dist/views/Version/fetchVersions.js +151 -0
- package/dist/views/Version/fetchVersions.js.map +1 -0
- package/dist/views/Version/index.js +349 -0
- package/dist/views/Version/index.js.map +1 -0
- package/dist/views/Version/metadata.js +58 -0
- package/dist/views/Version/metadata.js.map +1 -0
- package/dist/views/Versions/buildColumns.js +88 -0
- package/dist/views/Versions/buildColumns.js.map +1 -0
- package/dist/views/Versions/cells/AutosaveCell/index.js +45 -0
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -0
- package/dist/views/Versions/cells/CreatedAt/index.js +60 -0
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -0
- package/dist/views/Versions/cells/ID/index.js +12 -0
- package/dist/views/Versions/cells/ID/index.js.map +1 -0
- package/dist/views/Versions/index.client.js +89 -0
- package/dist/views/Versions/index.client.js.map +1 -0
- package/dist/views/Versions/index.js +157 -0
- package/dist/views/Versions/index.js.map +1 -0
- package/dist/views/Versions/metadata.js +51 -0
- package/dist/views/Versions/metadata.js.map +1 -0
- package/dist/views/Versions/types.js +2 -0
- package/dist/views/Versions/types.js.map +1 -0
- package/dist/withPayload/withPayload.js +162 -0
- package/dist/withPayload/withPayload.js.map +1 -0
- package/dist/withPayload/withPayload.spec.js +40 -0
- package/dist/withPayload/withPayload.spec.js.map +1 -0
- package/dist/withPayload/withPayload.utils.js +133 -0
- package/dist/withPayload/withPayload.utils.js.map +1 -0
- package/dist/withPayload/withPayloadLegacy.js +47 -0
- package/dist/withPayload/withPayloadLegacy.js.map +1 -0
- package/package.json +153 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { hasSavePermission as getHasSavePermission, isEditing as getIsEditing } from '@ruya.sa/ui/shared';
|
|
2
|
+
import { docAccessOperation, docAccessOperationGlobal, logError } from '@ruya.sa/payload';
|
|
3
|
+
import { hasDraftsEnabled } from '@ruya.sa/payload/shared';
|
|
4
|
+
export const getDocumentPermissions = async args => {
|
|
5
|
+
const {
|
|
6
|
+
id,
|
|
7
|
+
collectionConfig,
|
|
8
|
+
data = {},
|
|
9
|
+
globalConfig,
|
|
10
|
+
req
|
|
11
|
+
} = args;
|
|
12
|
+
let docPermissions;
|
|
13
|
+
let hasPublishPermission = false;
|
|
14
|
+
if (collectionConfig) {
|
|
15
|
+
try {
|
|
16
|
+
docPermissions = await docAccessOperation({
|
|
17
|
+
id,
|
|
18
|
+
collection: {
|
|
19
|
+
config: collectionConfig
|
|
20
|
+
},
|
|
21
|
+
data: {
|
|
22
|
+
...data,
|
|
23
|
+
_status: 'draft'
|
|
24
|
+
},
|
|
25
|
+
req
|
|
26
|
+
});
|
|
27
|
+
if (hasDraftsEnabled(collectionConfig)) {
|
|
28
|
+
hasPublishPermission = (await docAccessOperation({
|
|
29
|
+
id,
|
|
30
|
+
collection: {
|
|
31
|
+
config: collectionConfig
|
|
32
|
+
},
|
|
33
|
+
data: {
|
|
34
|
+
...data,
|
|
35
|
+
_status: 'published'
|
|
36
|
+
},
|
|
37
|
+
req
|
|
38
|
+
})).update;
|
|
39
|
+
}
|
|
40
|
+
} catch (err) {
|
|
41
|
+
logError({
|
|
42
|
+
err,
|
|
43
|
+
payload: req.payload
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (globalConfig) {
|
|
48
|
+
try {
|
|
49
|
+
docPermissions = await docAccessOperationGlobal({
|
|
50
|
+
data,
|
|
51
|
+
globalConfig,
|
|
52
|
+
req
|
|
53
|
+
});
|
|
54
|
+
if (hasDraftsEnabled(globalConfig)) {
|
|
55
|
+
hasPublishPermission = (await docAccessOperationGlobal({
|
|
56
|
+
data: {
|
|
57
|
+
...data,
|
|
58
|
+
_status: 'published'
|
|
59
|
+
},
|
|
60
|
+
globalConfig,
|
|
61
|
+
req
|
|
62
|
+
})).update;
|
|
63
|
+
}
|
|
64
|
+
} catch (err) {
|
|
65
|
+
logError({
|
|
66
|
+
err,
|
|
67
|
+
payload: req.payload
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const hasSavePermission = getHasSavePermission({
|
|
72
|
+
collectionSlug: collectionConfig?.slug,
|
|
73
|
+
docPermissions,
|
|
74
|
+
globalSlug: globalConfig?.slug,
|
|
75
|
+
isEditing: getIsEditing({
|
|
76
|
+
id,
|
|
77
|
+
collectionSlug: collectionConfig?.slug,
|
|
78
|
+
globalSlug: globalConfig?.slug
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
docPermissions,
|
|
83
|
+
hasPublishPermission,
|
|
84
|
+
hasSavePermission
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=getDocumentPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","logError","hasDraftsEnabled","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","collection","config","_status","update","err","payload","collectionSlug","slug","globalSlug"],"sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"sourcesContent":["import type {\n Data,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n} from '@ruya.sa/payload'\n\nimport {\n hasSavePermission as getHasSavePermission,\n isEditing as getIsEditing,\n} from '@ruya.sa/ui/shared'\nimport { docAccessOperation, docAccessOperationGlobal, logError } from '@ruya.sa/payload'\nimport { hasDraftsEnabled } from '@ruya.sa/payload/shared'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\n /**\n * When called for creating a new document, id is not provided.\n */\n id?: number | string\n req: PayloadRequest\n}): Promise<{\n docPermissions: SanitizedDocumentPermissions\n hasPublishPermission: boolean\n hasSavePermission: boolean\n}> => {\n const { id, collectionConfig, data = {}, globalConfig, req } = args\n\n let docPermissions: SanitizedDocumentPermissions\n let hasPublishPermission = false\n\n if (collectionConfig) {\n try {\n docPermissions = await docAccessOperation({\n id,\n collection: {\n config: collectionConfig,\n },\n data: {\n ...data,\n _status: 'draft',\n },\n req,\n })\n\n if (hasDraftsEnabled(collectionConfig)) {\n hasPublishPermission = (\n await docAccessOperation({\n id,\n collection: {\n config: collectionConfig,\n },\n data: {\n ...data,\n _status: 'published',\n },\n req,\n })\n ).update\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n }\n }\n\n if (globalConfig) {\n try {\n docPermissions = await docAccessOperationGlobal({\n data,\n globalConfig,\n req,\n })\n\n if (hasDraftsEnabled(globalConfig)) {\n hasPublishPermission = (\n await docAccessOperationGlobal({\n data: {\n ...data,\n _status: 'published',\n },\n globalConfig,\n req,\n })\n ).update\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n }\n }\n\n const hasSavePermission = getHasSavePermission({\n collectionSlug: collectionConfig?.slug,\n docPermissions,\n globalSlug: globalConfig?.slug,\n isEditing: getIsEditing({\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n }),\n })\n\n return {\n docPermissions,\n hasPublishPermission,\n hasSavePermission,\n }\n}\n"],"mappings":"AAQA,SACEA,iBAAA,IAAqBC,oBAAoB,EACzCC,SAAA,IAAaC,YAAY,QACpB;AACP,SAASC,kBAAkB,EAAEC,wBAAwB,EAAEC,QAAQ,QAAQ;AACvE,SAASC,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,sBAAA,GAAyB,MAAOC,IAAA;EAc3C,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,IAAA,GAAO,CAAC,CAAC;IAAEC,YAAY;IAAEC;EAAG,CAAE,GAAGL,IAAA;EAE/D,IAAIM,cAAA;EACJ,IAAIC,oBAAA,GAAuB;EAE3B,IAAIL,gBAAA,EAAkB;IACpB,IAAI;MACFI,cAAA,GAAiB,MAAMX,kBAAA,CAAmB;QACxCM,EAAA;QACAO,UAAA,EAAY;UACVC,MAAA,EAAQP;QACV;QACAC,IAAA,EAAM;UACJ,GAAGA,IAAI;UACPO,OAAA,EAAS;QACX;QACAL;MACF;MAEA,IAAIP,gBAAA,CAAiBI,gBAAA,GAAmB;QACtCK,oBAAA,GAAuB,CACrB,MAAMZ,kBAAA,CAAmB;UACvBM,EAAA;UACAO,UAAA,EAAY;YACVC,MAAA,EAAQP;UACV;UACAC,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPO,OAAA,EAAS;UACX;UACAL;QACF,EAAC,EACDM,MAAM;MACV;IACF,EAAE,OAAOC,GAAA,EAAK;MACZf,QAAA,CAAS;QAAEe,GAAA;QAAKC,OAAA,EAASR,GAAA,CAAIQ;MAAQ;IACvC;EACF;EAEA,IAAIT,YAAA,EAAc;IAChB,IAAI;MACFE,cAAA,GAAiB,MAAMV,wBAAA,CAAyB;QAC9CO,IAAA;QACAC,YAAA;QACAC;MACF;MAEA,IAAIP,gBAAA,CAAiBM,YAAA,GAAe;QAClCG,oBAAA,GAAuB,CACrB,MAAMX,wBAAA,CAAyB;UAC7BO,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPO,OAAA,EAAS;UACX;UACAN,YAAA;UACAC;QACF,EAAC,EACDM,MAAM;MACV;IACF,EAAE,OAAOC,GAAA,EAAK;MACZf,QAAA,CAAS;QAAEe,GAAA;QAAKC,OAAA,EAASR,GAAA,CAAIQ;MAAQ;IACvC;EACF;EAEA,MAAMtB,iBAAA,GAAoBC,oBAAA,CAAqB;IAC7CsB,cAAA,EAAgBZ,gBAAA,EAAkBa,IAAA;IAClCT,cAAA;IACAU,UAAA,EAAYZ,YAAA,EAAcW,IAAA;IAC1BtB,SAAA,EAAWC,YAAA,CAAa;MACtBO,EAAA;MACAa,cAAA,EAAgBZ,gBAAA,EAAkBa,IAAA;MAClCC,UAAA,EAAYZ,YAAA,EAAcW;IAC5B;EACF;EAEA,OAAO;IACLT,cAAA;IACAC,oBAAA;IACAhB;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { APIView as DefaultAPIView } from '../API/index.js';
|
|
2
|
+
import { EditView as DefaultEditView } from '../Edit/index.js';
|
|
3
|
+
import { UnauthorizedViewWithGutter } from '../Unauthorized/index.js';
|
|
4
|
+
import { VersionView as DefaultVersionView } from '../Version/index.js';
|
|
5
|
+
import { VersionsView as DefaultVersionsView } from '../Versions/index.js';
|
|
6
|
+
import { getCustomDocumentViewByKey } from './getCustomDocumentViewByKey.js';
|
|
7
|
+
import { getCustomViewByRoute } from './getCustomViewByRoute.js';
|
|
8
|
+
export const getDocumentView = ({
|
|
9
|
+
collectionConfig,
|
|
10
|
+
config,
|
|
11
|
+
docPermissions,
|
|
12
|
+
globalConfig,
|
|
13
|
+
routeSegments
|
|
14
|
+
}) => {
|
|
15
|
+
// Conditionally import and lazy load the default view
|
|
16
|
+
let View = null;
|
|
17
|
+
let viewKey;
|
|
18
|
+
const {
|
|
19
|
+
routes: {
|
|
20
|
+
admin: adminRoute
|
|
21
|
+
}
|
|
22
|
+
} = config;
|
|
23
|
+
const views = collectionConfig && collectionConfig?.admin?.components?.views || globalConfig && globalConfig?.admin?.components?.views;
|
|
24
|
+
if (!docPermissions?.read) {
|
|
25
|
+
throw new Error('not-found');
|
|
26
|
+
}
|
|
27
|
+
if (collectionConfig) {
|
|
28
|
+
const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] = routeSegments;
|
|
29
|
+
// --> /collections/:collectionSlug/:id
|
|
30
|
+
// --> /collections/:collectionSlug/create
|
|
31
|
+
switch (routeSegments.length) {
|
|
32
|
+
case 3:
|
|
33
|
+
{
|
|
34
|
+
switch (segment3) {
|
|
35
|
+
// --> /collections/:collectionSlug/create
|
|
36
|
+
case 'create':
|
|
37
|
+
{
|
|
38
|
+
if ('create' in docPermissions && docPermissions.create) {
|
|
39
|
+
View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView;
|
|
40
|
+
} else {
|
|
41
|
+
View = UnauthorizedViewWithGutter;
|
|
42
|
+
}
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
// --> /collections/:collectionSlug/:id
|
|
46
|
+
default:
|
|
47
|
+
{
|
|
48
|
+
const baseRoute = [adminRoute !== '/' && adminRoute, 'collections', collectionSlug, segment3].filter(Boolean).join('/');
|
|
49
|
+
const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments].filter(Boolean).join('/');
|
|
50
|
+
const {
|
|
51
|
+
Component: CustomViewComponent,
|
|
52
|
+
viewKey: customViewKey
|
|
53
|
+
} = getCustomViewByRoute({
|
|
54
|
+
baseRoute,
|
|
55
|
+
currentRoute,
|
|
56
|
+
views
|
|
57
|
+
});
|
|
58
|
+
if (customViewKey) {
|
|
59
|
+
viewKey = customViewKey;
|
|
60
|
+
View = CustomViewComponent;
|
|
61
|
+
} else {
|
|
62
|
+
View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView;
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
// --> /collections/:collectionSlug/:id/api
|
|
70
|
+
// --> /collections/:collectionSlug/:id/versions
|
|
71
|
+
// --> /collections/:collectionSlug/:id/<custom-segment>
|
|
72
|
+
// --> /collections/:collectionSlug/trash/:id
|
|
73
|
+
case 4:
|
|
74
|
+
{
|
|
75
|
+
// --> /collections/:collectionSlug/trash/:id
|
|
76
|
+
if (segment3 === 'trash' && segment4) {
|
|
77
|
+
View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
switch (segment4) {
|
|
81
|
+
// --> /collections/:collectionSlug/:id/api
|
|
82
|
+
case 'api':
|
|
83
|
+
{
|
|
84
|
+
if (collectionConfig?.admin?.hideAPIURL !== true) {
|
|
85
|
+
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case 'versions':
|
|
90
|
+
{
|
|
91
|
+
// --> /collections/:collectionSlug/:id/versions
|
|
92
|
+
if (docPermissions?.readVersions) {
|
|
93
|
+
View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView;
|
|
94
|
+
} else {
|
|
95
|
+
View = UnauthorizedViewWithGutter;
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
// --> /collections/:collectionSlug/:id/<custom-segment>
|
|
100
|
+
default:
|
|
101
|
+
{
|
|
102
|
+
const baseRoute = [adminRoute !== '/' && adminRoute, 'collections', collectionSlug, segment3].filter(Boolean).join('/');
|
|
103
|
+
const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments].filter(Boolean).join('/');
|
|
104
|
+
const {
|
|
105
|
+
Component: CustomViewComponent,
|
|
106
|
+
viewKey: customViewKey
|
|
107
|
+
} = getCustomViewByRoute({
|
|
108
|
+
baseRoute,
|
|
109
|
+
currentRoute,
|
|
110
|
+
views
|
|
111
|
+
});
|
|
112
|
+
if (customViewKey) {
|
|
113
|
+
viewKey = customViewKey;
|
|
114
|
+
View = CustomViewComponent;
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
// --> /collections/:collectionSlug/trash/:id/api
|
|
122
|
+
// --> /collections/:collectionSlug/trash/:id/versions
|
|
123
|
+
// --> /collections/:collectionSlug/trash/:id/<custom-segment>
|
|
124
|
+
// --> /collections/:collectionSlug/:id/versions/:version
|
|
125
|
+
case 5:
|
|
126
|
+
{
|
|
127
|
+
// --> /collections/:slug/trash/:id/api
|
|
128
|
+
if (segment3 === 'trash') {
|
|
129
|
+
switch (segment5) {
|
|
130
|
+
case 'api':
|
|
131
|
+
{
|
|
132
|
+
if (collectionConfig?.admin?.hideAPIURL !== true) {
|
|
133
|
+
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
// --> /collections/:slug/trash/:id/versions
|
|
138
|
+
case 'versions':
|
|
139
|
+
{
|
|
140
|
+
if (docPermissions?.readVersions) {
|
|
141
|
+
View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView;
|
|
142
|
+
} else {
|
|
143
|
+
View = UnauthorizedViewWithGutter;
|
|
144
|
+
}
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
default:
|
|
148
|
+
{
|
|
149
|
+
View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView;
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// --> /collections/:collectionSlug/:id/versions/:version
|
|
154
|
+
} else if (segment4 === 'versions') {
|
|
155
|
+
if (docPermissions?.readVersions) {
|
|
156
|
+
View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView;
|
|
157
|
+
} else {
|
|
158
|
+
View = UnauthorizedViewWithGutter;
|
|
159
|
+
}
|
|
160
|
+
} else {
|
|
161
|
+
// --> /collections/:collectionSlug/:id/<custom>/<custom>
|
|
162
|
+
const baseRoute = [adminRoute !== '/' && adminRoute, collectionEntity, collectionSlug, segment3].filter(Boolean).join('/');
|
|
163
|
+
const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments].filter(Boolean).join('/');
|
|
164
|
+
const {
|
|
165
|
+
Component: CustomViewComponent,
|
|
166
|
+
viewKey: customViewKey
|
|
167
|
+
} = getCustomViewByRoute({
|
|
168
|
+
baseRoute,
|
|
169
|
+
currentRoute,
|
|
170
|
+
views
|
|
171
|
+
});
|
|
172
|
+
if (customViewKey) {
|
|
173
|
+
viewKey = customViewKey;
|
|
174
|
+
View = CustomViewComponent;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
// --> /collections/:collectionSlug/trash/:id/versions/:version
|
|
180
|
+
// --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>
|
|
181
|
+
default:
|
|
182
|
+
{
|
|
183
|
+
// --> /collections/:collectionSlug/trash/:id/versions/:version
|
|
184
|
+
const isTrashedVersionView = segment3 === 'trash' && segment5 === 'versions';
|
|
185
|
+
if (isTrashedVersionView) {
|
|
186
|
+
if (docPermissions?.readVersions) {
|
|
187
|
+
View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView;
|
|
188
|
+
} else {
|
|
189
|
+
View = UnauthorizedViewWithGutter;
|
|
190
|
+
}
|
|
191
|
+
} else {
|
|
192
|
+
// --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>
|
|
193
|
+
const baseRoute = [adminRoute !== '/' && adminRoute, collectionEntity, collectionSlug, segment3].filter(Boolean).join('/');
|
|
194
|
+
const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments].filter(Boolean).join('/');
|
|
195
|
+
const {
|
|
196
|
+
Component: CustomViewComponent,
|
|
197
|
+
viewKey: customViewKey
|
|
198
|
+
} = getCustomViewByRoute({
|
|
199
|
+
baseRoute,
|
|
200
|
+
currentRoute,
|
|
201
|
+
views
|
|
202
|
+
});
|
|
203
|
+
if (customViewKey) {
|
|
204
|
+
viewKey = customViewKey;
|
|
205
|
+
View = CustomViewComponent;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (globalConfig) {
|
|
213
|
+
const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments;
|
|
214
|
+
switch (routeSegments.length) {
|
|
215
|
+
// --> /globals/:globalSlug
|
|
216
|
+
case 2:
|
|
217
|
+
{
|
|
218
|
+
View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
case 3:
|
|
222
|
+
{
|
|
223
|
+
// --> /globals/:globalSlug/api
|
|
224
|
+
// --> /globals/:globalSlug/versions
|
|
225
|
+
// --> /globals/:globalSlug/<custom-segment>
|
|
226
|
+
switch (segment3) {
|
|
227
|
+
// --> /globals/:globalSlug/api
|
|
228
|
+
case 'api':
|
|
229
|
+
{
|
|
230
|
+
if (globalConfig?.admin?.hideAPIURL !== true) {
|
|
231
|
+
View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView;
|
|
232
|
+
}
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
case 'versions':
|
|
236
|
+
{
|
|
237
|
+
// --> /globals/:globalSlug/versions
|
|
238
|
+
if (docPermissions?.readVersions) {
|
|
239
|
+
View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView;
|
|
240
|
+
} else {
|
|
241
|
+
View = UnauthorizedViewWithGutter;
|
|
242
|
+
}
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
// --> /globals/:globalSlug/<custom-segment>
|
|
246
|
+
default:
|
|
247
|
+
{
|
|
248
|
+
if (docPermissions?.read) {
|
|
249
|
+
const baseRoute = [adminRoute, globalEntity, globalSlug, segment3].filter(Boolean).join('/');
|
|
250
|
+
const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/');
|
|
251
|
+
const {
|
|
252
|
+
Component: CustomViewComponent,
|
|
253
|
+
viewKey: customViewKey
|
|
254
|
+
} = getCustomViewByRoute({
|
|
255
|
+
baseRoute,
|
|
256
|
+
currentRoute,
|
|
257
|
+
views
|
|
258
|
+
});
|
|
259
|
+
if (customViewKey) {
|
|
260
|
+
viewKey = customViewKey;
|
|
261
|
+
View = CustomViewComponent;
|
|
262
|
+
} else {
|
|
263
|
+
View = DefaultEditView;
|
|
264
|
+
}
|
|
265
|
+
} else {
|
|
266
|
+
View = UnauthorizedViewWithGutter;
|
|
267
|
+
}
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
// --> /globals/:globalSlug/versions/:version
|
|
274
|
+
// --> /globals/:globalSlug/<custom-segment>/<custom-segment>
|
|
275
|
+
default:
|
|
276
|
+
{
|
|
277
|
+
// --> /globals/:globalSlug/versions/:version
|
|
278
|
+
if (segment3 === 'versions') {
|
|
279
|
+
if (docPermissions?.readVersions) {
|
|
280
|
+
View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView;
|
|
281
|
+
} else {
|
|
282
|
+
View = UnauthorizedViewWithGutter;
|
|
283
|
+
}
|
|
284
|
+
} else {
|
|
285
|
+
// --> /globals/:globalSlug/<custom-segment>/<custom-segment>
|
|
286
|
+
const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug].filter(Boolean).join('/');
|
|
287
|
+
const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/');
|
|
288
|
+
const {
|
|
289
|
+
Component: CustomViewComponent,
|
|
290
|
+
viewKey: customViewKey
|
|
291
|
+
} = getCustomViewByRoute({
|
|
292
|
+
baseRoute,
|
|
293
|
+
currentRoute,
|
|
294
|
+
views
|
|
295
|
+
});
|
|
296
|
+
if (customViewKey) {
|
|
297
|
+
viewKey = customViewKey;
|
|
298
|
+
View = CustomViewComponent;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return {
|
|
306
|
+
View,
|
|
307
|
+
viewKey
|
|
308
|
+
};
|
|
309
|
+
};
|
|
310
|
+
//# sourceMappingURL=getDocumentView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDocumentView.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","UnauthorizedViewWithGutter","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomDocumentViewByKey","getCustomViewByRoute","getDocumentView","collectionConfig","config","docPermissions","globalConfig","routeSegments","View","viewKey","routes","admin","adminRoute","views","components","read","Error","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","length","create","baseRoute","filter","Boolean","join","currentRoute","Component","CustomViewComponent","customViewKey","hideAPIURL","readVersions","isTrashedVersionView","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getDocumentView.tsx"],"sourcesContent":["import type {\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedConfig,\n SanitizedGlobalConfig,\n SanitizedGlobalPermission,\n} from '@ruya.sa/payload'\nimport type React from 'react'\n\nimport type { ViewToRender } from './index.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomDocumentViewByKey } from './getCustomDocumentViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\nexport const getDocumentView = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n}): {\n View: ViewToRender\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let View: ViewToRender = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n if (!docPermissions?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/create\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n // --> /collections/:collectionSlug/create\n case 'create': {\n if ('create' in docPermissions && docPermissions.create) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n } else {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/<custom-segment>\n // --> /collections/:collectionSlug/trash/:id\n case 4: {\n // --> /collections/:collectionSlug/trash/:id\n if (segment3 === 'trash' && segment4) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n switch (segment4) {\n // --> /collections/:collectionSlug/:id/api\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n }\n break\n }\n\n case 'versions': {\n // --> /collections/:collectionSlug/:id/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/<custom-segment>\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/api\n // --> /collections/:collectionSlug/trash/:id/versions\n // --> /collections/:collectionSlug/trash/:id/<custom-segment>\n // --> /collections/:collectionSlug/:id/versions/:version\n case 5: {\n // --> /collections/:slug/trash/:id/api\n if (segment3 === 'trash') {\n switch (segment5) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n }\n break\n }\n // --> /collections/:slug/trash/:id/versions\n case 'versions': {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n default: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n }\n // --> /collections/:collectionSlug/:id/versions/:version\n } else if (segment4 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n default: {\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n const isTrashedVersionView = segment3 === 'trash' && segment5 === 'versions'\n\n if (isTrashedVersionView) {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n switch (routeSegments.length) {\n // --> /globals/:globalSlug\n case 2: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n\n case 3: {\n // --> /globals/:globalSlug/api\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/<custom-segment>\n switch (segment3) {\n // --> /globals/:globalSlug/api\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n }\n\n break\n }\n\n case 'versions': {\n // --> /globals/:globalSlug/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /globals/:globalSlug/<custom-segment>\n default: {\n if (docPermissions?.read) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n View = CustomViewComponent\n } else {\n View = DefaultEditView\n }\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n }\n break\n }\n\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n default: {\n // --> /globals/:globalSlug/versions/:version\n if (segment3 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n return {\n View,\n viewKey,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { sanitizeID } from '@ruya.sa/ui/shared';
|
|
2
|
+
import { extractID } from '@ruya.sa/payload/shared';
|
|
3
|
+
export const getIsLocked = async ({
|
|
4
|
+
id,
|
|
5
|
+
collectionConfig,
|
|
6
|
+
globalConfig,
|
|
7
|
+
isEditing,
|
|
8
|
+
req
|
|
9
|
+
}) => {
|
|
10
|
+
const entityConfig = collectionConfig || globalConfig;
|
|
11
|
+
const entityHasLockingEnabled = entityConfig?.lockDocuments !== undefined ? entityConfig?.lockDocuments : true;
|
|
12
|
+
// Check if the locked-documents collection exists
|
|
13
|
+
if (!req.payload.collections?.['payload-locked-documents']) {
|
|
14
|
+
// If the collection doesn't exist, locking is not available
|
|
15
|
+
return {
|
|
16
|
+
isLocked: false
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (!entityHasLockingEnabled || !isEditing) {
|
|
20
|
+
return {
|
|
21
|
+
isLocked: false
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const where = {};
|
|
25
|
+
const lockDurationDefault = 300 // Default 5 minutes in seconds
|
|
26
|
+
;
|
|
27
|
+
const lockDuration = typeof entityConfig.lockDocuments === 'object' ? entityConfig.lockDocuments.duration : lockDurationDefault;
|
|
28
|
+
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
29
|
+
const now = new Date().getTime();
|
|
30
|
+
if (globalConfig) {
|
|
31
|
+
where.and = [{
|
|
32
|
+
globalSlug: {
|
|
33
|
+
equals: globalConfig.slug
|
|
34
|
+
}
|
|
35
|
+
}, {
|
|
36
|
+
updatedAt: {
|
|
37
|
+
greater_than: new Date(now - lockDurationInMilliseconds)
|
|
38
|
+
}
|
|
39
|
+
}];
|
|
40
|
+
} else {
|
|
41
|
+
where.and = [{
|
|
42
|
+
'document.value': {
|
|
43
|
+
equals: sanitizeID(id)
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
'document.relationTo': {
|
|
47
|
+
equals: collectionConfig.slug
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
updatedAt: {
|
|
51
|
+
greater_than: new Date(now - lockDurationInMilliseconds)
|
|
52
|
+
}
|
|
53
|
+
}];
|
|
54
|
+
}
|
|
55
|
+
const {
|
|
56
|
+
docs
|
|
57
|
+
} = await req.payload.find({
|
|
58
|
+
collection: 'payload-locked-documents',
|
|
59
|
+
depth: 1,
|
|
60
|
+
overrideAccess: false,
|
|
61
|
+
req,
|
|
62
|
+
where
|
|
63
|
+
});
|
|
64
|
+
if (docs.length > 0) {
|
|
65
|
+
const currentEditor = docs[0].user?.value;
|
|
66
|
+
const lastUpdateTime = new Date(docs[0].updatedAt).getTime();
|
|
67
|
+
if (extractID(currentEditor) !== req.user.id) {
|
|
68
|
+
return {
|
|
69
|
+
currentEditor,
|
|
70
|
+
isLocked: true,
|
|
71
|
+
lastUpdateTime
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
isLocked: false
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=getIsLocked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getIsLocked.js","names":["sanitizeID","extractID","getIsLocked","id","collectionConfig","globalConfig","isEditing","req","entityConfig","entityHasLockingEnabled","lockDocuments","undefined","payload","collections","isLocked","where","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","now","Date","getTime","and","globalSlug","equals","slug","updatedAt","greater_than","docs","find","collection","depth","overrideAccess","length","currentEditor","user","value","lastUpdateTime"],"sources":["../../../src/views/Document/getIsLocked.ts"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n TypedUser,\n Where,\n} from '@ruya.sa/payload'\n\nimport { sanitizeID } from '@ruya.sa/ui/shared'\nimport { extractID } from '@ruya.sa/payload/shared'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n isEditing: boolean\n req: PayloadRequest\n}\n\ntype Result = Promise<{\n currentEditor?: TypedUser\n isLocked: boolean\n lastUpdateTime?: number\n}>\n\nexport const getIsLocked = async ({\n id,\n collectionConfig,\n globalConfig,\n isEditing,\n req,\n}: Args): Result => {\n const entityConfig = collectionConfig || globalConfig\n\n const entityHasLockingEnabled =\n entityConfig?.lockDocuments !== undefined ? entityConfig?.lockDocuments : true\n\n // Check if the locked-documents collection exists\n if (!req.payload.collections?.['payload-locked-documents']) {\n // If the collection doesn't exist, locking is not available\n return {\n isLocked: false,\n }\n }\n\n if (!entityHasLockingEnabled || !isEditing) {\n return {\n isLocked: false,\n }\n }\n\n const where: Where = {}\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof entityConfig.lockDocuments === 'object'\n ? entityConfig.lockDocuments.duration\n : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const now = new Date().getTime()\n\n if (globalConfig) {\n where.and = [\n {\n globalSlug: {\n equals: globalConfig.slug,\n },\n },\n {\n updatedAt: {\n greater_than: new Date(now - lockDurationInMilliseconds),\n },\n },\n ]\n } else {\n where.and = [\n {\n 'document.value': {\n equals: sanitizeID(id),\n },\n },\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n {\n updatedAt: {\n greater_than: new Date(now - lockDurationInMilliseconds),\n },\n },\n ]\n }\n\n const { docs } = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n req,\n where,\n })\n\n if (docs.length > 0) {\n const currentEditor = docs[0].user?.value\n const lastUpdateTime = new Date(docs[0].updatedAt).getTime()\n\n if (extractID(currentEditor) !== req.user.id) {\n return {\n currentEditor,\n isLocked: true,\n lastUpdateTime,\n }\n }\n }\n\n return {\n isLocked: false,\n }\n}\n"],"mappings":"AAQA,SAASA,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAgB1B,OAAO,MAAMC,WAAA,GAAc,MAAAA,CAAO;EAChCC,EAAE;EACFC,gBAAgB;EAChBC,YAAY;EACZC,SAAS;EACTC;AAAG,CACE;EACL,MAAMC,YAAA,GAAeJ,gBAAA,IAAoBC,YAAA;EAEzC,MAAMI,uBAAA,GACJD,YAAA,EAAcE,aAAA,KAAkBC,SAAA,GAAYH,YAAA,EAAcE,aAAA,GAAgB;EAE5E;EACA,IAAI,CAACH,GAAA,CAAIK,OAAO,CAACC,WAAW,GAAG,2BAA2B,EAAE;IAC1D;IACA,OAAO;MACLC,QAAA,EAAU;IACZ;EACF;EAEA,IAAI,CAACL,uBAAA,IAA2B,CAACH,SAAA,EAAW;IAC1C,OAAO;MACLQ,QAAA,EAAU;IACZ;EACF;EAEA,MAAMC,KAAA,GAAe,CAAC;EAEtB,MAAMC,mBAAA,GAAsB,IAAI;EAAA;EAChC,MAAMC,YAAA,GACJ,OAAOT,YAAA,CAAaE,aAAa,KAAK,WAClCF,YAAA,CAAaE,aAAa,CAACQ,QAAQ,GACnCF,mBAAA;EACN,MAAMG,0BAAA,GAA6BF,YAAA,GAAe;EAElD,MAAMG,GAAA,GAAM,IAAIC,IAAA,GAAOC,OAAO;EAE9B,IAAIjB,YAAA,EAAc;IAChBU,KAAA,CAAMQ,GAAG,GAAG,CACV;MACEC,UAAA,EAAY;QACVC,MAAA,EAAQpB,YAAA,CAAaqB;MACvB;IACF,GACA;MACEC,SAAA,EAAW;QACTC,YAAA,EAAc,IAAIP,IAAA,CAAKD,GAAA,GAAMD,0BAAA;MAC/B;IACF,EACD;EACH,OAAO;IACLJ,KAAA,CAAMQ,GAAG,GAAG,CACV;MACE,kBAAkB;QAChBE,MAAA,EAAQzB,UAAA,CAAWG,EAAA;MACrB;IACF,GACA;MACE,uBAAuB;QACrBsB,MAAA,EAAQrB,gBAAA,CAAiBsB;MAC3B;IACF,GACA;MACEC,SAAA,EAAW;QACTC,YAAA,EAAc,IAAIP,IAAA,CAAKD,GAAA,GAAMD,0BAAA;MAC/B;IACF,EACD;EACH;EAEA,MAAM;IAAEU;EAAI,CAAE,GAAG,MAAMtB,GAAA,CAAIK,OAAO,CAACkB,IAAI,CAAC;IACtCC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,cAAA,EAAgB;IAChB1B,GAAA;IACAQ;EACF;EAEA,IAAIc,IAAA,CAAKK,MAAM,GAAG,GAAG;IACnB,MAAMC,aAAA,GAAgBN,IAAI,CAAC,EAAE,CAACO,IAAI,EAAEC,KAAA;IACpC,MAAMC,cAAA,GAAiB,IAAIjB,IAAA,CAAKQ,IAAI,CAAC,EAAE,CAACF,SAAS,EAAEL,OAAO;IAE1D,IAAIrB,SAAA,CAAUkC,aAAA,MAAmB5B,GAAA,CAAI6B,IAAI,CAACjC,EAAE,EAAE;MAC5C,OAAO;QACLgC,aAAA;QACArB,QAAA,EAAU;QACVwB;MACF;IACF;EACF;EAEA,OAAO;IACLxB,QAAA,EAAU;EACZ;AACF","ignoreList":[]}
|