@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,41 @@
|
|
|
1
|
+
import { formatAdminURL } from '@ruya.sa/payload/shared';
|
|
2
|
+
import * as qs from 'qs-esm';
|
|
3
|
+
export const handleAuthRedirect = ({
|
|
4
|
+
config,
|
|
5
|
+
route,
|
|
6
|
+
searchParams,
|
|
7
|
+
user
|
|
8
|
+
}) => {
|
|
9
|
+
const {
|
|
10
|
+
admin: {
|
|
11
|
+
routes: {
|
|
12
|
+
login: loginRouteFromConfig,
|
|
13
|
+
unauthorized: unauthorizedRoute
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
routes: {
|
|
17
|
+
admin: adminRoute
|
|
18
|
+
}
|
|
19
|
+
} = config;
|
|
20
|
+
if (searchParams && 'redirect' in searchParams) {
|
|
21
|
+
delete searchParams.redirect;
|
|
22
|
+
}
|
|
23
|
+
const redirectRoute = (route !== adminRoute ? route : '') + (Object.keys(searchParams ?? {}).length > 0 ? `${qs.stringify(searchParams, {
|
|
24
|
+
addQueryPrefix: true
|
|
25
|
+
})}` : '');
|
|
26
|
+
const redirectTo = formatAdminURL({
|
|
27
|
+
adminRoute,
|
|
28
|
+
path: user ? unauthorizedRoute : loginRouteFromConfig
|
|
29
|
+
});
|
|
30
|
+
const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '');
|
|
31
|
+
const searchParamsWithRedirect = `${qs.stringify({
|
|
32
|
+
...parsedLoginRouteSearchParams,
|
|
33
|
+
...(redirectRoute ? {
|
|
34
|
+
redirect: redirectRoute
|
|
35
|
+
} : {})
|
|
36
|
+
}, {
|
|
37
|
+
addQueryPrefix: true
|
|
38
|
+
})}`;
|
|
39
|
+
return `${redirectTo.split('?', 1)[0]}${searchParamsWithRedirect}`;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=handleAuthRedirect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleAuthRedirect.js","names":["formatAdminURL","qs","handleAuthRedirect","config","route","searchParams","user","admin","routes","login","loginRouteFromConfig","unauthorized","unauthorizedRoute","adminRoute","redirect","redirectRoute","Object","keys","length","stringify","addQueryPrefix","redirectTo","path","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"sources":["../../src/utilities/handleAuthRedirect.ts"],"sourcesContent":["import type { TypedUser } from '@ruya.sa/payload'\n\nimport { formatAdminURL } from '@ruya.sa/payload/shared'\nimport * as qs from 'qs-esm'\n\ntype Args = {\n config\n route: string\n searchParams: { [key: string]: string | string[] }\n user?: TypedUser\n}\n\nexport const handleAuthRedirect = ({ config, route, searchParams, user }: Args): string => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig, unauthorized: unauthorizedRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (searchParams && 'redirect' in searchParams) {\n delete searchParams.redirect\n }\n\n const redirectRoute =\n (route !== adminRoute ? route : '') +\n (Object.keys(searchParams ?? {}).length > 0\n ? `${qs.stringify(searchParams, { addQueryPrefix: true })}`\n : '')\n\n const redirectTo = formatAdminURL({\n adminRoute,\n path: user ? unauthorizedRoute : loginRouteFromConfig,\n })\n\n const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n return `${redirectTo.split('?', 1)[0]}${searchParamsWithRedirect}`\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AASpB,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC,YAAY;EAAEC;AAAI,CAAQ;EAC5E,MAAM;IACJC,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,oBAAoB;QAAEC,YAAA,EAAcC;MAAiB;IAAE,CACzE;IACDJ,MAAA,EAAQ;MAAED,KAAA,EAAOM;IAAU;EAAE,CAC9B,GAAGV,MAAA;EAEJ,IAAIE,YAAA,IAAgB,cAAcA,YAAA,EAAc;IAC9C,OAAOA,YAAA,CAAaS,QAAQ;EAC9B;EAEA,MAAMC,aAAA,GACJ,CAACX,KAAA,KAAUS,UAAA,GAAaT,KAAA,GAAQ,EAAC,KAChCY,MAAA,CAAOC,IAAI,CAACZ,YAAA,IAAgB,CAAC,GAAGa,MAAM,GAAG,IACtC,GAAGjB,EAAA,CAAGkB,SAAS,CAACd,YAAA,EAAc;IAAEe,cAAA,EAAgB;EAAK,IAAI,GACzD,EAAC;EAEP,MAAMC,UAAA,GAAarB,cAAA,CAAe;IAChCa,UAAA;IACAS,IAAA,EAAMhB,IAAA,GAAOM,iBAAA,GAAoBF;EACnC;EAEA,MAAMa,4BAAA,GAA+BtB,EAAA,CAAGuB,KAAK,CAACH,UAAA,CAAWI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;EAE1E,MAAMC,wBAAA,GAA2B,GAAGzB,EAAA,CAAGkB,SAAS,CAC9C;IACE,GAAGI,4BAA4B;IAC/B,IAAIR,aAAA,GAAgB;MAAED,QAAA,EAAUC;IAAc,IAAI,CAAC,CAAC;EACtD,GACA;IAAEK,cAAA,EAAgB;EAAK,IACtB;EAEH,OAAO,GAAGC,UAAA,CAAWI,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAGC,wBAAA,EAA0B;AACpE","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@ruya.sa/ui/rsc';
|
|
2
|
+
import { buildFormStateHandler } from '@ruya.sa/ui/utilities/buildFormState';
|
|
3
|
+
import { buildTableStateHandler } from '@ruya.sa/ui/utilities/buildTableState';
|
|
4
|
+
import { getFolderResultsComponentAndDataHandler } from '@ruya.sa/ui/utilities/getFolderResultsComponentAndData';
|
|
5
|
+
import { schedulePublishHandler } from '@ruya.sa/ui/utilities/schedulePublishHandler';
|
|
6
|
+
import { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js';
|
|
7
|
+
import { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js';
|
|
8
|
+
import { renderDocumentHandler } from '../views/Document/handleServerFunction.js';
|
|
9
|
+
import { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js';
|
|
10
|
+
import { renderListHandler } from '../views/List/handleServerFunction.js';
|
|
11
|
+
import { initReq } from './initReq.js';
|
|
12
|
+
import { slugifyHandler } from './slugify.js';
|
|
13
|
+
const baseServerFunctions = {
|
|
14
|
+
'copy-data-from-locale': copyDataFromLocaleHandler,
|
|
15
|
+
'form-state': buildFormStateHandler,
|
|
16
|
+
'get-default-layout': getDefaultLayoutHandler,
|
|
17
|
+
'get-folder-results-component-and-data': getFolderResultsComponentAndDataHandler,
|
|
18
|
+
'render-document': renderDocumentHandler,
|
|
19
|
+
'render-document-slots': renderDocumentSlotsHandler,
|
|
20
|
+
'render-field': _internal_renderFieldHandler,
|
|
21
|
+
'render-list': renderListHandler,
|
|
22
|
+
'render-widget': renderWidgetHandler,
|
|
23
|
+
'schedule-publish': schedulePublishHandler,
|
|
24
|
+
slugify: slugifyHandler,
|
|
25
|
+
'table-state': buildTableStateHandler
|
|
26
|
+
};
|
|
27
|
+
export const handleServerFunctions = async args => {
|
|
28
|
+
const {
|
|
29
|
+
name: fnKey,
|
|
30
|
+
args: fnArgs,
|
|
31
|
+
config: configPromise,
|
|
32
|
+
importMap,
|
|
33
|
+
serverFunctions: extraServerFunctions
|
|
34
|
+
} = args;
|
|
35
|
+
const {
|
|
36
|
+
req
|
|
37
|
+
} = await initReq({
|
|
38
|
+
configPromise,
|
|
39
|
+
importMap,
|
|
40
|
+
key: 'RootLayout'
|
|
41
|
+
});
|
|
42
|
+
const augmentedArgs = {
|
|
43
|
+
...fnArgs,
|
|
44
|
+
importMap,
|
|
45
|
+
req
|
|
46
|
+
};
|
|
47
|
+
const serverFunctions = {
|
|
48
|
+
...baseServerFunctions,
|
|
49
|
+
...(extraServerFunctions || {})
|
|
50
|
+
};
|
|
51
|
+
const fn = serverFunctions[fnKey];
|
|
52
|
+
if (!fn) {
|
|
53
|
+
throw new Error(`Unknown Server Function: ${fnKey}`);
|
|
54
|
+
}
|
|
55
|
+
return fn(augmentedArgs);
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=handleServerFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleServerFunctions.js","names":["_internal_renderFieldHandler","copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","getFolderResultsComponentAndDataHandler","schedulePublishHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","slugifyHandler","baseServerFunctions","slugify","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","serverFunctions","extraServerFunctions","req","key","augmentedArgs","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { ServerFunction, ServerFunctionHandler } from '@ruya.sa/payload'\n\nimport { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@ruya.sa/ui/rsc'\nimport { buildFormStateHandler } from '@ruya.sa/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@ruya.sa/ui/utilities/buildTableState'\nimport { getFolderResultsComponentAndDataHandler } from '@ruya.sa/ui/utilities/getFolderResultsComponentAndData'\nimport { schedulePublishHandler } from '@ruya.sa/ui/utilities/schedulePublishHandler'\n\nimport { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js'\nimport { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\nimport { slugifyHandler } from './slugify.js'\n\nconst baseServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'get-folder-results-component-and-data': getFolderResultsComponentAndDataHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'table-state': buildTableStateHandler,\n}\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const {\n name: fnKey,\n args: fnArgs,\n config: configPromise,\n importMap,\n serverFunctions: extraServerFunctions,\n } = args\n\n const { req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n })\n\n const augmentedArgs: Parameters<ServerFunction>[0] = {\n ...fnArgs,\n importMap,\n req,\n }\n\n const serverFunctions = {\n ...baseServerFunctions,\n ...(extraServerFunctions || {}),\n }\n\n const fn = serverFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,4BAA4B,EAAEC,yBAAyB,QAAQ;AACxE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,uCAAuC,QAAQ;AACxD,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAE/B,MAAMC,mBAAA,GAAgE;EACpE,yBAAyBZ,yBAAA;EACzB,cAAcC,qBAAA;EACd,sBAAsBI,uBAAA;EACtB,yCAAyCF,uCAAA;EACzC,mBAAmBI,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBT,4BAAA;EAChB,eAAeU,iBAAA;EACf,iBAAiBH,mBAAA;EACjB,oBAAoBF,sBAAA;EACpBS,OAAA,EAASF,cAAA;EACT,eAAeT;AACjB;AAEA,OAAO,MAAMY,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IACJC,IAAA,EAAMC,KAAK;IACXF,IAAA,EAAMG,MAAM;IACZC,MAAA,EAAQC,aAAa;IACrBC,SAAS;IACTC,eAAA,EAAiBC;EAAoB,CACtC,GAAGR,IAAA;EAEJ,MAAM;IAAES;EAAG,CAAE,GAAG,MAAMd,OAAA,CAAQ;IAC5BU,aAAA;IACAC,SAAA;IACAI,GAAA,EAAK;EACP;EAEA,MAAMC,aAAA,GAA+C;IACnD,GAAGR,MAAM;IACTG,SAAA;IACAG;EACF;EAEA,MAAMF,eAAA,GAAkB;IACtB,GAAGV,mBAAmB;IACtB,IAAIW,oBAAA,IAAwB,CAAC,CAAC;EAChC;EAEA,MAAMI,EAAA,GAAKL,eAAe,CAACL,KAAA,CAAM;EAEjC,IAAI,CAACU,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4BX,KAAA,EAAO;EACrD;EAEA,OAAOU,EAAA,CAAGD,aAAA;AACZ","ignoreList":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { initI18n } from '@ruya.sa/translations';
|
|
2
|
+
import { headers as getHeaders } from 'next/headers.js';
|
|
3
|
+
import { createLocalReq, executeAuthStrategies, getAccessResults, getPayload, getRequestLanguage, parseCookies } from '@ruya.sa/payload';
|
|
4
|
+
import { getRequestLocale } from './getRequestLocale.js';
|
|
5
|
+
import { selectiveCache } from './selectiveCache.js';
|
|
6
|
+
// Create cache instances for different parts of our application
|
|
7
|
+
const partialReqCache = selectiveCache('partialReq');
|
|
8
|
+
const reqCache = selectiveCache('req');
|
|
9
|
+
/**
|
|
10
|
+
* Initializes a full request object, including the `req` object and access control.
|
|
11
|
+
* As access control and getting the request locale is dependent on the current URL and
|
|
12
|
+
*/
|
|
13
|
+
export const initReq = async function ({
|
|
14
|
+
canSetHeaders,
|
|
15
|
+
configPromise,
|
|
16
|
+
importMap,
|
|
17
|
+
key,
|
|
18
|
+
overrides
|
|
19
|
+
}) {
|
|
20
|
+
const headers = await getHeaders();
|
|
21
|
+
const cookies = parseCookies(headers);
|
|
22
|
+
const partialResult = await partialReqCache.get(async () => {
|
|
23
|
+
const config = await configPromise;
|
|
24
|
+
const payload = await getPayload({
|
|
25
|
+
config,
|
|
26
|
+
cron: true,
|
|
27
|
+
importMap
|
|
28
|
+
});
|
|
29
|
+
const languageCode = getRequestLanguage({
|
|
30
|
+
config,
|
|
31
|
+
cookies,
|
|
32
|
+
headers
|
|
33
|
+
});
|
|
34
|
+
const i18n = await initI18n({
|
|
35
|
+
config: config.i18n,
|
|
36
|
+
context: 'client',
|
|
37
|
+
language: languageCode
|
|
38
|
+
});
|
|
39
|
+
const {
|
|
40
|
+
responseHeaders,
|
|
41
|
+
user
|
|
42
|
+
} = await executeAuthStrategies({
|
|
43
|
+
canSetHeaders,
|
|
44
|
+
headers,
|
|
45
|
+
payload
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
i18n,
|
|
49
|
+
languageCode,
|
|
50
|
+
payload,
|
|
51
|
+
responseHeaders,
|
|
52
|
+
user
|
|
53
|
+
};
|
|
54
|
+
}, 'global');
|
|
55
|
+
return reqCache.get(async () => {
|
|
56
|
+
const {
|
|
57
|
+
i18n,
|
|
58
|
+
languageCode,
|
|
59
|
+
payload,
|
|
60
|
+
responseHeaders,
|
|
61
|
+
user
|
|
62
|
+
} = partialResult;
|
|
63
|
+
const {
|
|
64
|
+
req: reqOverrides,
|
|
65
|
+
...optionsOverrides
|
|
66
|
+
} = overrides || {};
|
|
67
|
+
const req = await createLocalReq({
|
|
68
|
+
req: {
|
|
69
|
+
headers,
|
|
70
|
+
host: headers.get('host'),
|
|
71
|
+
i18n: i18n,
|
|
72
|
+
responseHeaders,
|
|
73
|
+
user,
|
|
74
|
+
...(reqOverrides || {})
|
|
75
|
+
},
|
|
76
|
+
...(optionsOverrides || {})
|
|
77
|
+
}, payload);
|
|
78
|
+
const locale = await getRequestLocale({
|
|
79
|
+
req
|
|
80
|
+
});
|
|
81
|
+
req.locale = locale?.code;
|
|
82
|
+
const permissions = await getAccessResults({
|
|
83
|
+
req
|
|
84
|
+
});
|
|
85
|
+
return {
|
|
86
|
+
cookies,
|
|
87
|
+
headers,
|
|
88
|
+
languageCode,
|
|
89
|
+
locale,
|
|
90
|
+
permissions,
|
|
91
|
+
req
|
|
92
|
+
};
|
|
93
|
+
}, key).then(result => {
|
|
94
|
+
// CRITICAL: Create a shallow copy of req before returning to prevent
|
|
95
|
+
// mutations from propagating to the cached req object.
|
|
96
|
+
// This ensures parallel operations using the same cache key don't affect each other.
|
|
97
|
+
return {
|
|
98
|
+
...result,
|
|
99
|
+
req: {
|
|
100
|
+
...result.req,
|
|
101
|
+
...(result.req?.context ? {
|
|
102
|
+
context: {
|
|
103
|
+
...result.req.context
|
|
104
|
+
}
|
|
105
|
+
} : {})
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=initReq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","getRequestLocale","selectiveCache","partialReqCache","reqCache","initReq","canSetHeaders","configPromise","importMap","key","overrides","cookies","partialResult","get","config","payload","cron","languageCode","i18n","context","language","responseHeaders","user","req","reqOverrides","optionsOverrides","host","locale","code","permissions","then","result"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { AcceptedLanguages, I18n, I18nClient } from '@ruya.sa/translations'\nimport type {\n ImportMap,\n Locale,\n Payload,\n PayloadRequest,\n SanitizedConfig,\n SanitizedPermissions,\n TypedUser,\n} from '@ruya.sa/payload'\n\nimport { initI18n } from '@ruya.sa/translations'\nimport { headers as getHeaders } from 'next/headers.js'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from '@ruya.sa/payload'\n\nimport { getRequestLocale } from './getRequestLocale.js'\nimport { selectiveCache } from './selectiveCache.js'\n\ntype Result = {\n cookies: Map<string, string>\n headers: Awaited<ReturnType<typeof getHeaders>>\n languageCode: AcceptedLanguages\n locale?: Locale\n permissions: SanitizedPermissions\n req: PayloadRequest\n}\n\ntype PartialResult = {\n i18n: I18nClient\n languageCode: AcceptedLanguages\n payload: Payload\n responseHeaders: Headers\n user: null | TypedUser\n}\n\n// Create cache instances for different parts of our application\nconst partialReqCache = selectiveCache<PartialResult>('partialReq')\nconst reqCache = selectiveCache<Result>('req')\n\n/**\n * Initializes a full request object, including the `req` object and access control.\n * As access control and getting the request locale is dependent on the current URL and\n */\nexport const initReq = async function ({\n canSetHeaders,\n configPromise,\n importMap,\n key,\n overrides,\n}: {\n canSetHeaders?: boolean\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n key: string\n overrides?: Parameters<typeof createLocalReq>[0]\n}): Promise<Result> {\n const headers = await getHeaders()\n const cookies = parseCookies(headers)\n\n const partialResult = await partialReqCache.get(async () => {\n const config = await configPromise\n const payload = await getPayload({ config, cron: true, importMap })\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const { responseHeaders, user } = await executeAuthStrategies({\n canSetHeaders,\n headers,\n payload,\n })\n\n return {\n i18n,\n languageCode,\n payload,\n responseHeaders,\n user,\n }\n }, 'global')\n\n return reqCache\n .get(async () => {\n const { i18n, languageCode, payload, responseHeaders, user } = partialResult\n\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n responseHeaders,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n const locale = await getRequestLocale({\n req,\n })\n\n req.locale = locale?.code\n\n const permissions = await getAccessResults({\n req,\n })\n\n return {\n cookies,\n headers,\n languageCode,\n locale,\n permissions,\n req,\n }\n }, key)\n .then((result) => {\n // CRITICAL: Create a shallow copy of req before returning to prevent\n // mutations from propagating to the cached req object.\n // This ensures parallel operations using the same cache key don't affect each other.\n return {\n ...result,\n req: {\n ...result.req,\n ...(result.req?.context\n ? {\n context: { ...result.req.context },\n }\n : {}),\n },\n }\n })\n}\n"],"mappings":"AAWA,SAASA,QAAQ,QAAQ;AACzB,SAASC,OAAA,IAAWC,UAAU,QAAQ;AACtC,SACEC,cAAc,EACdC,qBAAqB,EACrBC,gBAAgB,EAChBC,UAAU,EACVC,kBAAkB,EAClBC,YAAY,QACP;AAEP,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAmB/B;AACA,MAAMC,eAAA,GAAkBD,cAAA,CAA8B;AACtD,MAAME,QAAA,GAAWF,cAAA,CAAuB;AAExC;;;;AAIA,OAAO,MAAMG,OAAA,GAAU,eAAAA,CAAgB;EACrCC,aAAa;EACbC,aAAa;EACbC,SAAS;EACTC,GAAG;EACHC;AAAS,CAOV;EACC,MAAMjB,OAAA,GAAU,MAAMC,UAAA;EACtB,MAAMiB,OAAA,GAAUX,YAAA,CAAaP,OAAA;EAE7B,MAAMmB,aAAA,GAAgB,MAAMT,eAAA,CAAgBU,GAAG,CAAC;IAC9C,MAAMC,MAAA,GAAS,MAAMP,aAAA;IACrB,MAAMQ,OAAA,GAAU,MAAMjB,UAAA,CAAW;MAAEgB,MAAA;MAAQE,IAAA,EAAM;MAAMR;IAAU;IACjE,MAAMS,YAAA,GAAelB,kBAAA,CAAmB;MACtCe,MAAA;MACAH,OAAA;MACAlB;IACF;IAEA,MAAMyB,IAAA,GAAmB,MAAM1B,QAAA,CAAS;MACtCsB,MAAA,EAAQA,MAAA,CAAOI,IAAI;MACnBC,OAAA,EAAS;MACTC,QAAA,EAAUH;IACZ;IAEA,MAAM;MAAEI,eAAe;MAAEC;IAAI,CAAE,GAAG,MAAM1B,qBAAA,CAAsB;MAC5DU,aAAA;MACAb,OAAA;MACAsB;IACF;IAEA,OAAO;MACLG,IAAA;MACAD,YAAA;MACAF,OAAA;MACAM,eAAA;MACAC;IACF;EACF,GAAG;EAEH,OAAOlB,QAAA,CACJS,GAAG,CAAC;IACH,MAAM;MAAEK,IAAI;MAAED,YAAY;MAAEF,OAAO;MAAEM,eAAe;MAAEC;IAAI,CAAE,GAAGV,aAAA;IAE/D,MAAM;MAAEW,GAAA,EAAKC,YAAY;MAAE,GAAGC;IAAA,CAAkB,GAAGf,SAAA,IAAa,CAAC;IAEjE,MAAMa,GAAA,GAAM,MAAM5B,cAAA,CAChB;MACE4B,GAAA,EAAK;QACH9B,OAAA;QACAiC,IAAA,EAAMjC,OAAA,CAAQoB,GAAG,CAAC;QAClBK,IAAA,EAAMA,IAAA;QACNG,eAAA;QACAC,IAAA;QACA,IAAIE,YAAA,IAAgB,CAAC,CAAC;MACxB;MACA,IAAIC,gBAAA,IAAoB,CAAC,CAAC;IAC5B,GACAV,OAAA;IAGF,MAAMY,MAAA,GAAS,MAAM1B,gBAAA,CAAiB;MACpCsB;IACF;IAEAA,GAAA,CAAII,MAAM,GAAGA,MAAA,EAAQC,IAAA;IAErB,MAAMC,WAAA,GAAc,MAAMhC,gBAAA,CAAiB;MACzC0B;IACF;IAEA,OAAO;MACLZ,OAAA;MACAlB,OAAA;MACAwB,YAAA;MACAU,MAAA;MACAE,WAAA;MACAN;IACF;EACF,GAAGd,GAAA,EACFqB,IAAI,CAAEC,MAAA;IACL;IACA;IACA;IACA,OAAO;MACL,GAAGA,MAAM;MACTR,GAAA,EAAK;QACH,GAAGQ,MAAA,CAAOR,GAAG;QACb,IAAIQ,MAAA,CAAOR,GAAG,EAAEJ,OAAA,GACZ;UACEA,OAAA,EAAS;YAAE,GAAGY,MAAA,CAAOR,GAAG,CAACJ;UAAQ;QACnC,IACA,CAAC,CAAC;MACR;IACF;EACF;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { getRouteWithoutAdmin } from './getRouteWithoutAdmin.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns an array of views marked with 'public: true' in the config
|
|
4
|
+
*/
|
|
5
|
+
export const isCustomAdminView = ({
|
|
6
|
+
adminRoute,
|
|
7
|
+
config,
|
|
8
|
+
route
|
|
9
|
+
}) => {
|
|
10
|
+
if (config.admin?.components?.views) {
|
|
11
|
+
const isPublicAdminRoute = Object.entries(config.admin.components.views).some(([_, view]) => {
|
|
12
|
+
const routeWithoutAdmin = getRouteWithoutAdmin({
|
|
13
|
+
adminRoute,
|
|
14
|
+
route
|
|
15
|
+
});
|
|
16
|
+
if (view.exact) {
|
|
17
|
+
if (routeWithoutAdmin === view.path) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
} else {
|
|
21
|
+
if (routeWithoutAdmin.startsWith(view.path)) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
});
|
|
27
|
+
return isPublicAdminRoute;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=isCustomAdminView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isCustomAdminView.js","names":["getRouteWithoutAdmin","isCustomAdminView","adminRoute","config","route","admin","components","views","isPublicAdminRoute","Object","entries","some","_","view","routeWithoutAdmin","exact","path","startsWith"],"sources":["../../src/utilities/isCustomAdminView.ts"],"sourcesContent":["import type { SanitizedConfig } from '@ruya.sa/payload'\n\nimport { getRouteWithoutAdmin } from './getRouteWithoutAdmin.js'\n\n/**\n * Returns an array of views marked with 'public: true' in the config\n */\nexport const isCustomAdminView = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n if (config.admin?.components?.views) {\n const isPublicAdminRoute = Object.entries(config.admin.components.views).some(([_, view]) => {\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n\n if (view.exact) {\n if (routeWithoutAdmin === view.path) {\n return true\n }\n } else {\n if (routeWithoutAdmin.startsWith(view.path)) {\n return true\n }\n }\n return false\n })\n return isPublicAdminRoute\n }\n return false\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AAErC;;;AAGA,OAAO,MAAMC,iBAAA,GAAoBA,CAAC;EAChCC,UAAU;EACVC,MAAM;EACNC;AAAK,CAKN;EACC,IAAID,MAAA,CAAOE,KAAK,EAAEC,UAAA,EAAYC,KAAA,EAAO;IACnC,MAAMC,kBAAA,GAAqBC,MAAA,CAAOC,OAAO,CAACP,MAAA,CAAOE,KAAK,CAACC,UAAU,CAACC,KAAK,EAAEI,IAAI,CAAC,CAAC,CAACC,CAAA,EAAGC,IAAA,CAAK;MACtF,MAAMC,iBAAA,GAAoBd,oBAAA,CAAqB;QAAEE,UAAA;QAAYE;MAAM;MAEnE,IAAIS,IAAA,CAAKE,KAAK,EAAE;QACd,IAAID,iBAAA,KAAsBD,IAAA,CAAKG,IAAI,EAAE;UACnC,OAAO;QACT;MACF,OAAO;QACL,IAAIF,iBAAA,CAAkBG,UAAU,CAACJ,IAAA,CAAKG,IAAI,GAAG;UAC3C,OAAO;QACT;MACF;MACA,OAAO;IACT;IACA,OAAOR,kBAAA;EACT;EACA,OAAO;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getRouteWithoutAdmin } from './getRouteWithoutAdmin.js';
|
|
2
|
+
// Routes that require admin authentication
|
|
3
|
+
const publicAdminRoutes = ['createFirstUser', 'forgot', 'login', 'logout', 'forgot', 'inactivity', 'unauthorized', 'reset'];
|
|
4
|
+
export const isPublicAdminRoute = ({
|
|
5
|
+
adminRoute,
|
|
6
|
+
config,
|
|
7
|
+
route
|
|
8
|
+
}) => {
|
|
9
|
+
const isPublicAdminRoute = publicAdminRoutes.some(routeSegment => {
|
|
10
|
+
const segment = config.admin?.routes?.[routeSegment] || routeSegment;
|
|
11
|
+
const routeWithoutAdmin = getRouteWithoutAdmin({
|
|
12
|
+
adminRoute,
|
|
13
|
+
route
|
|
14
|
+
});
|
|
15
|
+
if (routeWithoutAdmin.startsWith(segment)) {
|
|
16
|
+
return true;
|
|
17
|
+
} else if (routeWithoutAdmin.includes('/verify/')) {
|
|
18
|
+
return true;
|
|
19
|
+
} else {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return isPublicAdminRoute;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=isPublicAdminRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPublicAdminRoute.js","names":["getRouteWithoutAdmin","publicAdminRoutes","isPublicAdminRoute","adminRoute","config","route","some","routeSegment","segment","admin","routes","routeWithoutAdmin","startsWith","includes"],"sources":["../../src/utilities/isPublicAdminRoute.ts"],"sourcesContent":["import type { SanitizedConfig } from '@ruya.sa/payload'\n\nimport { getRouteWithoutAdmin } from './getRouteWithoutAdmin.js'\n\n// Routes that require admin authentication\nconst publicAdminRoutes: (keyof Pick<\n SanitizedConfig['admin']['routes'],\n 'createFirstUser' | 'forgot' | 'inactivity' | 'login' | 'logout' | 'reset' | 'unauthorized'\n>)[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isPublicAdminRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n const isPublicAdminRoute = publicAdminRoutes.some((routeSegment) => {\n const segment = config.admin?.routes?.[routeSegment] || routeSegment\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n\n if (routeWithoutAdmin.startsWith(segment)) {\n return true\n } else if (routeWithoutAdmin.includes('/verify/')) {\n return true\n } else {\n return false\n }\n })\n\n return isPublicAdminRoute\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AAErC;AACA,MAAMC,iBAAA,GAGC,CACL,mBACA,UACA,SACA,UACA,UACA,cACA,gBACA,QACD;AAED,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,UAAU;EACVC,MAAM;EACNC;AAAK,CAKN;EACC,MAAMH,kBAAA,GAAqBD,iBAAA,CAAkBK,IAAI,CAAEC,YAAA;IACjD,MAAMC,OAAA,GAAUJ,MAAA,CAAOK,KAAK,EAAEC,MAAA,GAASH,YAAA,CAAa,IAAIA,YAAA;IACxD,MAAMI,iBAAA,GAAoBX,oBAAA,CAAqB;MAAEG,UAAA;MAAYE;IAAM;IAEnE,IAAIM,iBAAA,CAAkBC,UAAU,CAACJ,OAAA,GAAU;MACzC,OAAO;IACT,OAAO,IAAIG,iBAAA,CAAkBE,QAAQ,CAAC,aAAa;MACjD,OAAO;IACT,OAAO;MACL,OAAO;IACT;EACF;EAEA,OAAOX,kBAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@ruya.sa/ui/assets';
|
|
2
|
+
import * as qs from 'qs-esm';
|
|
3
|
+
const defaultOpenGraph = {
|
|
4
|
+
description: 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',
|
|
5
|
+
siteName: 'Payload App',
|
|
6
|
+
title: 'Payload App'
|
|
7
|
+
};
|
|
8
|
+
export const generateMetadata = async args => {
|
|
9
|
+
const {
|
|
10
|
+
defaultOGImageType,
|
|
11
|
+
serverURL,
|
|
12
|
+
titleSuffix,
|
|
13
|
+
...rest
|
|
14
|
+
} = args;
|
|
15
|
+
/**
|
|
16
|
+
* @todo find a way to remove the type assertion here.
|
|
17
|
+
* It is a result of needing to `DeepCopy` the `MetaConfig` type from Payload.
|
|
18
|
+
* This is required for the `DeepRequired` from `Config` to `SanitizedConfig`.
|
|
19
|
+
*/
|
|
20
|
+
const incomingMetadata = rest;
|
|
21
|
+
const icons = incomingMetadata.icons || [{
|
|
22
|
+
type: 'image/png',
|
|
23
|
+
rel: 'icon',
|
|
24
|
+
sizes: '32x32',
|
|
25
|
+
url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark
|
|
26
|
+
}, {
|
|
27
|
+
type: 'image/png',
|
|
28
|
+
media: '(prefers-color-scheme: dark)',
|
|
29
|
+
rel: 'icon',
|
|
30
|
+
sizes: '32x32',
|
|
31
|
+
url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight
|
|
32
|
+
}];
|
|
33
|
+
const metaTitle = [incomingMetadata.title, titleSuffix].filter(Boolean).join(' ');
|
|
34
|
+
const ogTitle = `${typeof incomingMetadata.openGraph?.title === 'string' ? incomingMetadata.openGraph.title : incomingMetadata.title} ${titleSuffix}`;
|
|
35
|
+
const mergedOpenGraph = {
|
|
36
|
+
...(defaultOpenGraph || {}),
|
|
37
|
+
...(defaultOGImageType === 'dynamic' ? {
|
|
38
|
+
images: [{
|
|
39
|
+
alt: ogTitle,
|
|
40
|
+
height: 630,
|
|
41
|
+
url: `/api/og${qs.stringify({
|
|
42
|
+
description: incomingMetadata.openGraph?.description || defaultOpenGraph.description,
|
|
43
|
+
title: ogTitle
|
|
44
|
+
}, {
|
|
45
|
+
addQueryPrefix: true
|
|
46
|
+
})}`,
|
|
47
|
+
width: 1200
|
|
48
|
+
}]
|
|
49
|
+
} : {}),
|
|
50
|
+
...(defaultOGImageType === 'static' ? {
|
|
51
|
+
images: [{
|
|
52
|
+
alt: ogTitle,
|
|
53
|
+
height: 480,
|
|
54
|
+
url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,
|
|
55
|
+
width: 640
|
|
56
|
+
}]
|
|
57
|
+
} : {}),
|
|
58
|
+
title: ogTitle,
|
|
59
|
+
...(incomingMetadata.openGraph || {})
|
|
60
|
+
};
|
|
61
|
+
return Promise.resolve({
|
|
62
|
+
...incomingMetadata,
|
|
63
|
+
icons,
|
|
64
|
+
metadataBase: new URL(serverURL || process.env.PAYLOAD_PUBLIC_SERVER_URL || `http://localhost:${process.env.PORT || 3000}`),
|
|
65
|
+
openGraph: mergedOpenGraph,
|
|
66
|
+
title: metaTitle
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","names":["payloadFaviconDark","payloadFaviconLight","staticOGImage","qs","defaultOpenGraph","description","siteName","title","generateMetadata","args","defaultOGImageType","serverURL","titleSuffix","rest","incomingMetadata","icons","type","rel","sizes","url","src","media","metaTitle","filter","Boolean","join","ogTitle","openGraph","mergedOpenGraph","images","alt","height","stringify","addQueryPrefix","width","Promise","resolve","metadataBase","URL","process","env","PAYLOAD_PUBLIC_SERVER_URL","PORT"],"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { Icon } from 'next/dist/lib/metadata/types/metadata-types.js'\nimport type { MetaConfig } from '@ruya.sa/payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@ruya.sa/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph: Metadata['openGraph'] = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const generateMetadata = async (\n args: { serverURL: string } & MetaConfig,\n): Promise<Metadata> => {\n const { defaultOGImageType, serverURL, titleSuffix, ...rest } = args\n\n /**\n * @todo find a way to remove the type assertion here.\n * It is a result of needing to `DeepCopy` the `MetaConfig` type from Payload.\n * This is required for the `DeepRequired` from `Config` to `SanitizedConfig`.\n */\n const incomingMetadata = rest as Metadata\n\n const icons: Metadata['icons'] =\n incomingMetadata.icons ||\n ([\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url:\n typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ] satisfies Array<Icon>)\n\n const metaTitle: Metadata['title'] = [incomingMetadata.title, titleSuffix]\n .filter(Boolean)\n .join(' ')\n\n const ogTitle = `${typeof incomingMetadata.openGraph?.title === 'string' ? incomingMetadata.openGraph.title : incomingMetadata.title} ${titleSuffix}`\n\n const mergedOpenGraph: Metadata['openGraph'] = {\n ...(defaultOpenGraph || {}),\n ...(defaultOGImageType === 'dynamic'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 630,\n url: `/api/og${qs.stringify(\n {\n description:\n incomingMetadata.openGraph?.description || defaultOpenGraph.description,\n title: ogTitle,\n },\n {\n addQueryPrefix: true,\n },\n )}`,\n width: 1200,\n },\n ],\n }\n : {}),\n ...(defaultOGImageType === 'static'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 480,\n url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,\n width: 640,\n },\n ],\n }\n : {}),\n title: ogTitle,\n ...(incomingMetadata.openGraph || {}),\n }\n\n return Promise.resolve({\n ...incomingMetadata,\n icons,\n metadataBase: new URL(\n serverURL ||\n process.env.PAYLOAD_PUBLIC_SERVER_URL ||\n `http://localhost:${process.env.PORT || 3000}`,\n ),\n openGraph: mergedOpenGraph,\n title: metaTitle,\n })\n}\n"],"mappings":"AAIA,SAASA,kBAAkB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ;AACvE,YAAYC,EAAA,MAAQ;AAEpB,MAAMC,gBAAA,GAA0C;EAC9CC,WAAA,EACE;EACFC,QAAA,EAAU;EACVC,KAAA,EAAO;AACT;AAEA,OAAO,MAAMC,gBAAA,GAAmB,MAC9BC,IAAA;EAEA,MAAM;IAAEC,kBAAkB;IAAEC,SAAS;IAAEC,WAAW;IAAE,GAAGC;EAAA,CAAM,GAAGJ,IAAA;EAEhE;;;;;EAKA,MAAMK,gBAAA,GAAmBD,IAAA;EAEzB,MAAME,KAAA,GACJD,gBAAA,CAAiBC,KAAK,IACrB,CACC;IACEC,IAAA,EAAM;IACNC,GAAA,EAAK;IACLC,KAAA,EAAO;IACPC,GAAA,EAAK,OAAOnB,kBAAA,KAAuB,WAAWA,kBAAA,EAAoBoB,GAAA,GAAMpB;EAC1E,GACA;IACEgB,IAAA,EAAM;IACNK,KAAA,EAAO;IACPJ,GAAA,EAAK;IACLC,KAAA,EAAO;IACPC,GAAA,EACE,OAAOlB,mBAAA,KAAwB,WAAWA,mBAAA,EAAqBmB,GAAA,GAAMnB;EACzE,EACD;EAEH,MAAMqB,SAAA,GAA+B,CAACR,gBAAA,CAAiBP,KAAK,EAAEK,WAAA,CAAY,CACvEW,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,MAAMC,OAAA,GAAU,GAAG,OAAOZ,gBAAA,CAAiBa,SAAS,EAAEpB,KAAA,KAAU,WAAWO,gBAAA,CAAiBa,SAAS,CAACpB,KAAK,GAAGO,gBAAA,CAAiBP,KAAK,IAAIK,WAAA,EAAa;EAErJ,MAAMgB,eAAA,GAAyC;IAC7C,IAAIxB,gBAAA,IAAoB,CAAC,CAAC;IAC1B,IAAIM,kBAAA,KAAuB,YACvB;MACEmB,MAAA,EAAQ,CACN;QACEC,GAAA,EAAKJ,OAAA;QACLK,MAAA,EAAQ;QACRZ,GAAA,EAAK,UAAUhB,EAAA,CAAG6B,SAAS,CACzB;UACE3B,WAAA,EACES,gBAAA,CAAiBa,SAAS,EAAEtB,WAAA,IAAeD,gBAAA,CAAiBC,WAAW;UACzEE,KAAA,EAAOmB;QACT,GACA;UACEO,cAAA,EAAgB;QAClB,IACC;QACHC,KAAA,EAAO;MACT;IAEJ,IACA,CAAC,CAAC;IACN,IAAIxB,kBAAA,KAAuB,WACvB;MACEmB,MAAA,EAAQ,CACN;QACEC,GAAA,EAAKJ,OAAA;QACLK,MAAA,EAAQ;QACRZ,GAAA,EAAK,OAAOjB,aAAA,KAAkB,WAAWA,aAAA,EAAekB,GAAA,GAAMlB,aAAA;QAC9DgC,KAAA,EAAO;MACT;IAEJ,IACA,CAAC,CAAC;IACN3B,KAAA,EAAOmB,OAAA;IACP,IAAIZ,gBAAA,CAAiBa,SAAS,IAAI,CAAC,CAAC;EACtC;EAEA,OAAOQ,OAAA,CAAQC,OAAO,CAAC;IACrB,GAAGtB,gBAAgB;IACnBC,KAAA;IACAsB,YAAA,EAAc,IAAIC,GAAA,CAChB3B,SAAA,IACE4B,OAAA,CAAQC,GAAG,CAACC,yBAAyB,IACrC,oBAAoBF,OAAA,CAAQC,GAAG,CAACE,IAAI,IAAI,MAAM;IAElDf,SAAA,EAAWC,eAAA;IACXrB,KAAA,EAAOe;EACT;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { cache } from 'react';
|
|
2
|
+
// Module-scoped cache container that holds all cached, stable containers
|
|
3
|
+
// - these may hold the stable value, or a promise to the stable value
|
|
4
|
+
const globalCacheContainer = {};
|
|
5
|
+
/**
|
|
6
|
+
* Creates a selective cache function that provides more control over React's request-level caching behavior.
|
|
7
|
+
*
|
|
8
|
+
* @param namespace - A namespace to group related cached values
|
|
9
|
+
* @returns A function that manages cached values within the specified namespace
|
|
10
|
+
*/
|
|
11
|
+
export function selectiveCache(namespace) {
|
|
12
|
+
// Create a stable namespace container if it doesn't exist
|
|
13
|
+
if (!globalCacheContainer[namespace]) {
|
|
14
|
+
globalCacheContainer[namespace] = cache((...args) => ({
|
|
15
|
+
value: null
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Gets or creates a cached value for a specific key within the namespace
|
|
20
|
+
*
|
|
21
|
+
* @param key - The key to identify the cached value
|
|
22
|
+
* @param factory - A function that produces the value if not cached
|
|
23
|
+
* @returns The cached or newly created value
|
|
24
|
+
*/
|
|
25
|
+
const getCached = async (factory, ...cacheArgs) => {
|
|
26
|
+
const stableObjectFn = globalCacheContainer[namespace];
|
|
27
|
+
const stableObject = stableObjectFn(...cacheArgs);
|
|
28
|
+
if (stableObject?.value && 'then' in stableObject.value && typeof stableObject.value?.then === 'function') {
|
|
29
|
+
return await stableObject.value;
|
|
30
|
+
}
|
|
31
|
+
stableObject.value = factory();
|
|
32
|
+
return await stableObject.value;
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
get: getCached
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=selectiveCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectiveCache.js","names":["cache","globalCacheContainer","selectiveCache","namespace","args","value","getCached","factory","cacheArgs","stableObjectFn","stableObject","then","get"],"sources":["../../src/utilities/selectiveCache.ts"],"sourcesContent":["import { cache } from 'react'\n\ntype CachedValue = object\n\n// Module-scoped cache container that holds all cached, stable containers\n// - these may hold the stable value, or a promise to the stable value\nconst globalCacheContainer: Record<\n string,\n <TValue extends object = CachedValue>(\n ...args: unknown[]\n ) => {\n value: null | Promise<TValue> | TValue\n }\n> = {}\n\n/**\n * Creates a selective cache function that provides more control over React's request-level caching behavior.\n *\n * @param namespace - A namespace to group related cached values\n * @returns A function that manages cached values within the specified namespace\n */\nexport function selectiveCache<TValue extends object = CachedValue>(namespace: string) {\n // Create a stable namespace container if it doesn't exist\n if (!globalCacheContainer[namespace]) {\n globalCacheContainer[namespace] = cache((...args) => ({\n value: null,\n }))\n }\n\n /**\n * Gets or creates a cached value for a specific key within the namespace\n *\n * @param key - The key to identify the cached value\n * @param factory - A function that produces the value if not cached\n * @returns The cached or newly created value\n */\n const getCached = async (factory: () => Promise<TValue>, ...cacheArgs): Promise<TValue> => {\n const stableObjectFn = globalCacheContainer[namespace]\n const stableObject = stableObjectFn<TValue>(...cacheArgs)\n\n if (\n stableObject?.value &&\n 'then' in stableObject.value &&\n typeof stableObject.value?.then === 'function'\n ) {\n return await stableObject.value\n }\n\n stableObject.value = factory()\n\n return await stableObject.value\n }\n\n return {\n get: getCached,\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ;AAItB;AACA;AACA,MAAMC,oBAAA,GAOF,CAAC;AAEL;;;;;;AAMA,OAAO,SAASC,eAAoDC,SAAiB;EACnF;EACA,IAAI,CAACF,oBAAoB,CAACE,SAAA,CAAU,EAAE;IACpCF,oBAAoB,CAACE,SAAA,CAAU,GAAGH,KAAA,CAAM,CAAC,GAAGI,IAAA,MAAU;MACpDC,KAAA,EAAO;IACT;EACF;EAEA;;;;;;;EAOA,MAAMC,SAAA,GAAY,MAAAA,CAAOC,OAAA,EAAgC,GAAGC,SAAA;IAC1D,MAAMC,cAAA,GAAiBR,oBAAoB,CAACE,SAAA,CAAU;IACtD,MAAMO,YAAA,GAAeD,cAAA,IAA0BD,SAAA;IAE/C,IACEE,YAAA,EAAcL,KAAA,IACd,UAAUK,YAAA,CAAaL,KAAK,IAC5B,OAAOK,YAAA,CAAaL,KAAK,EAAEM,IAAA,KAAS,YACpC;MACA,OAAO,MAAMD,YAAA,CAAaL,KAAK;IACjC;IAEAK,YAAA,CAAaL,KAAK,GAAGE,OAAA;IAErB,OAAO,MAAMG,YAAA,CAAaL,KAAK;EACjC;EAEA,OAAO;IACLO,GAAA,EAAKN;EACP;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { cookies as getCookies } from 'next/headers.js';
|
|
2
|
+
import { generatePayloadCookie } from '@ruya.sa/payload';
|
|
3
|
+
export async function setPayloadAuthCookie({
|
|
4
|
+
authConfig,
|
|
5
|
+
cookiePrefix,
|
|
6
|
+
token
|
|
7
|
+
}) {
|
|
8
|
+
const cookies = await getCookies();
|
|
9
|
+
const cookieExpiration = authConfig.tokenExpiration ? new Date(Date.now() + authConfig.tokenExpiration) : undefined;
|
|
10
|
+
const payloadCookie = generatePayloadCookie({
|
|
11
|
+
collectionAuthConfig: authConfig,
|
|
12
|
+
cookiePrefix,
|
|
13
|
+
expires: cookieExpiration,
|
|
14
|
+
returnCookieAsObject: true,
|
|
15
|
+
token
|
|
16
|
+
});
|
|
17
|
+
if (payloadCookie.value) {
|
|
18
|
+
cookies.set(payloadCookie.name, payloadCookie.value, {
|
|
19
|
+
domain: authConfig.cookies.domain,
|
|
20
|
+
expires: payloadCookie.expires ? new Date(payloadCookie.expires) : undefined,
|
|
21
|
+
httpOnly: true,
|
|
22
|
+
sameSite: typeof authConfig.cookies.sameSite === 'string' ? authConfig.cookies.sameSite.toLowerCase() : 'lax',
|
|
23
|
+
secure: authConfig.cookies.secure || false
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=setPayloadAuthCookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setPayloadAuthCookie.js","names":["cookies","getCookies","generatePayloadCookie","setPayloadAuthCookie","authConfig","cookiePrefix","token","cookieExpiration","tokenExpiration","Date","now","undefined","payloadCookie","collectionAuthConfig","expires","returnCookieAsObject","value","set","name","domain","httpOnly","sameSite","toLowerCase","secure"],"sources":["../../src/utilities/setPayloadAuthCookie.ts"],"sourcesContent":["import type { Auth } from '@ruya.sa/payload'\n\nimport { cookies as getCookies } from 'next/headers.js'\nimport { generatePayloadCookie } from '@ruya.sa/payload'\n\ntype SetPayloadAuthCookieArgs = {\n authConfig: Auth\n cookiePrefix: string\n token: string\n}\n\nexport async function setPayloadAuthCookie({\n authConfig,\n cookiePrefix,\n token,\n}: SetPayloadAuthCookieArgs): Promise<void> {\n const cookies = await getCookies()\n\n const cookieExpiration = authConfig.tokenExpiration\n ? new Date(Date.now() + authConfig.tokenExpiration)\n : undefined\n\n const payloadCookie = generatePayloadCookie({\n collectionAuthConfig: authConfig,\n cookiePrefix,\n expires: cookieExpiration,\n returnCookieAsObject: true,\n token,\n })\n\n if (payloadCookie.value) {\n cookies.set(payloadCookie.name, payloadCookie.value, {\n domain: authConfig.cookies.domain,\n expires: payloadCookie.expires ? new Date(payloadCookie.expires) : undefined,\n httpOnly: true,\n sameSite: (typeof authConfig.cookies.sameSite === 'string'\n ? authConfig.cookies.sameSite.toLowerCase()\n : 'lax') as 'lax' | 'none' | 'strict',\n secure: authConfig.cookies.secure || false,\n })\n }\n}\n"],"mappings":"AAEA,SAASA,OAAA,IAAWC,UAAU,QAAQ;AACtC,SAASC,qBAAqB,QAAQ;AAQtC,OAAO,eAAeC,qBAAqB;EACzCC,UAAU;EACVC,YAAY;EACZC;AAAK,CACoB;EACzB,MAAMN,OAAA,GAAU,MAAMC,UAAA;EAEtB,MAAMM,gBAAA,GAAmBH,UAAA,CAAWI,eAAe,GAC/C,IAAIC,IAAA,CAAKA,IAAA,CAAKC,GAAG,KAAKN,UAAA,CAAWI,eAAe,IAChDG,SAAA;EAEJ,MAAMC,aAAA,GAAgBV,qBAAA,CAAsB;IAC1CW,oBAAA,EAAsBT,UAAA;IACtBC,YAAA;IACAS,OAAA,EAASP,gBAAA;IACTQ,oBAAA,EAAsB;IACtBT;EACF;EAEA,IAAIM,aAAA,CAAcI,KAAK,EAAE;IACvBhB,OAAA,CAAQiB,GAAG,CAACL,aAAA,CAAcM,IAAI,EAAEN,aAAA,CAAcI,KAAK,EAAE;MACnDG,MAAA,EAAQf,UAAA,CAAWJ,OAAO,CAACmB,MAAM;MACjCL,OAAA,EAASF,aAAA,CAAcE,OAAO,GAAG,IAAIL,IAAA,CAAKG,aAAA,CAAcE,OAAO,IAAIH,SAAA;MACnES,QAAA,EAAU;MACVC,QAAA,EAAW,OAAOjB,UAAA,CAAWJ,OAAO,CAACqB,QAAQ,KAAK,WAC9CjB,UAAA,CAAWJ,OAAO,CAACqB,QAAQ,CAACC,WAAW,KACvC;MACJC,MAAA,EAAQnB,UAAA,CAAWJ,OAAO,CAACuB,MAAM,IAAI;IACvC;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { flattenAllFields, getFieldByPath, UnauthorizedError } from '@ruya.sa/payload';
|
|
2
|
+
import { slugify as defaultSlugify } from '@ruya.sa/payload/shared';
|
|
3
|
+
/**
|
|
4
|
+
* This server function is directly related to the {@link https://payloadcms.com/docs/fields/text#slug-field | Slug Field}.
|
|
5
|
+
* This is a server function that is used to invoke the user's custom slugify function from the client.
|
|
6
|
+
* This pattern is required, as there is no other way for us to pass their function across the client-server boundary.
|
|
7
|
+
* - Not through props
|
|
8
|
+
* - Not from a server function defined within a server component (see below)
|
|
9
|
+
* When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).
|
|
10
|
+
* The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.
|
|
11
|
+
* But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.
|
|
12
|
+
* See `ServerFunctionsProvider` for more details.
|
|
13
|
+
*/
|
|
14
|
+
export const slugifyHandler = async args => {
|
|
15
|
+
const {
|
|
16
|
+
collectionSlug,
|
|
17
|
+
data,
|
|
18
|
+
globalSlug,
|
|
19
|
+
path,
|
|
20
|
+
req,
|
|
21
|
+
valueToSlugify
|
|
22
|
+
} = args;
|
|
23
|
+
if (!req.user) {
|
|
24
|
+
throw new UnauthorizedError();
|
|
25
|
+
}
|
|
26
|
+
const docConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : globalSlug ? req.payload.config.globals.find(g => g.slug === globalSlug) : null;
|
|
27
|
+
if (!docConfig) {
|
|
28
|
+
throw new Error();
|
|
29
|
+
}
|
|
30
|
+
const {
|
|
31
|
+
field
|
|
32
|
+
} = getFieldByPath({
|
|
33
|
+
config: req.payload.config,
|
|
34
|
+
fields: flattenAllFields({
|
|
35
|
+
fields: docConfig.fields
|
|
36
|
+
}),
|
|
37
|
+
path
|
|
38
|
+
});
|
|
39
|
+
const customSlugify = typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined;
|
|
40
|
+
const result = customSlugify ? await customSlugify({
|
|
41
|
+
data,
|
|
42
|
+
req,
|
|
43
|
+
valueToSlugify
|
|
44
|
+
}) : defaultSlugify(valueToSlugify);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=slugify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slugify.js","names":["flattenAllFields","getFieldByPath","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","collectionSlug","data","globalSlug","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","customSlugify","custom","undefined","result"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from '@ruya.sa/payload/shared'\n\nimport {\n flattenAllFields,\n getFieldByPath,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from '@ruya.sa/payload'\nimport { slugify as defaultSlugify } from '@ruya.sa/payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/text#slug-field | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { collectionSlug, data, globalSlug, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: flattenAllFields({ fields: docConfig.fields }),\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const result = customSlugify\n ? await customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify)\n\n return result\n}\n"],"mappings":"AAEA,SACEA,gBAAgB,EAChBC,cAAc,EAGdC,iBAAiB,QACZ;AACP,SAASC,OAAA,IAAWC,cAAc,QAAQ;AAE1C;;;;;;;;;;;AAWA,OAAO,MAAMC,cAAA,GAGT,MAAOC,IAAA;EACT,MAAM;IAAEC,cAAc;IAAEC,IAAI;IAAEC,UAAU;IAAEC,IAAI;IAAEC,GAAG;IAAEC;EAAc,CAAE,GAAGN,IAAA;EAExE,IAAI,CAACK,GAAA,CAAIE,IAAI,EAAE;IACb,MAAM,IAAIX,iBAAA;EACZ;EAEA,MAAMY,SAAA,GAAYP,cAAA,GACdI,GAAA,CAAII,OAAO,CAACC,WAAW,CAACT,cAAA,CAAe,EAAEU,MAAA,GACzCR,UAAA,GACEE,GAAA,CAAII,OAAO,CAACE,MAAM,CAACC,OAAO,CAACC,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKZ,UAAA,IAClD;EAEN,IAAI,CAACK,SAAA,EAAW;IACd,MAAM,IAAIQ,KAAA;EACZ;EAEA,MAAM;IAAEC;EAAK,CAAE,GAAGtB,cAAA,CAAe;IAC/BgB,MAAA,EAAQN,GAAA,CAAII,OAAO,CAACE,MAAM;IAC1BO,MAAA,EAAQxB,gBAAA,CAAiB;MAAEwB,MAAA,EAAQV,SAAA,CAAUU;IAAO;IACpDd;EACF;EAEA,MAAMe,aAAA,GACJ,OAAOF,KAAA,EAAOG,MAAA,EAAQvB,OAAA,KAAY,aAAaoB,KAAA,CAAMG,MAAM,CAACvB,OAAO,GAAGwB,SAAA;EAGxE,MAAMC,MAAA,GAASH,aAAA,GACX,MAAMA,aAAA,CAAc;IAAEjB,IAAA;IAAMG,GAAA;IAAKC;EAAe,KAChDR,cAAA,CAAeQ,cAAA;EAEnB,OAAOgB,MAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const timestamp = label => {
|
|
2
|
+
if (!process.env.PAYLOAD_TIME) {
|
|
3
|
+
process.env.PAYLOAD_TIME = String(new Date().getTime());
|
|
4
|
+
}
|
|
5
|
+
const now = new Date();
|
|
6
|
+
console.log(`[${now.getTime() - Number(process.env.PAYLOAD_TIME)}ms] ${label}`);
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.js","names":["timestamp","label","process","env","PAYLOAD_TIME","String","Date","getTime","now","console","log","Number"],"sources":["../../src/utilities/timestamp.ts"],"sourcesContent":["export const timestamp = (label: string) => {\n if (!process.env.PAYLOAD_TIME) {\n process.env.PAYLOAD_TIME = String(new Date().getTime())\n }\n const now = new Date()\n console.log(`[${now.getTime() - Number(process.env.PAYLOAD_TIME)}ms] ${label}`)\n}\n"],"mappings":"AAAA,OAAO,MAAMA,SAAA,GAAaC,KAAA;EACxB,IAAI,CAACC,OAAA,CAAQC,GAAG,CAACC,YAAY,EAAE;IAC7BF,OAAA,CAAQC,GAAG,CAACC,YAAY,GAAGC,MAAA,CAAO,IAAIC,IAAA,GAAOC,OAAO;EACtD;EACA,MAAMC,GAAA,GAAM,IAAIF,IAAA;EAChBG,OAAA,CAAQC,GAAG,CAAC,IAAIF,GAAA,CAAID,OAAO,KAAKI,MAAA,CAAOT,OAAA,CAAQC,GAAG,CAACC,YAAY,QAAQH,KAAA,EAAO;AAChF","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
import { SelectField, useTranslation } from '@ruya.sa/ui';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
export const LocaleSelector = t0 => {
|
|
8
|
+
const $ = _c(6);
|
|
9
|
+
const {
|
|
10
|
+
localeOptions,
|
|
11
|
+
onChange
|
|
12
|
+
} = t0;
|
|
13
|
+
const {
|
|
14
|
+
t
|
|
15
|
+
} = useTranslation();
|
|
16
|
+
let t1;
|
|
17
|
+
if ($[0] !== localeOptions || $[1] !== onChange || $[2] !== t) {
|
|
18
|
+
let t2;
|
|
19
|
+
if ($[4] !== onChange) {
|
|
20
|
+
t2 = value => onChange(value);
|
|
21
|
+
$[4] = onChange;
|
|
22
|
+
$[5] = t2;
|
|
23
|
+
} else {
|
|
24
|
+
t2 = $[5];
|
|
25
|
+
}
|
|
26
|
+
t1 = _jsx(SelectField, {
|
|
27
|
+
field: {
|
|
28
|
+
name: "locale",
|
|
29
|
+
label: t("general:locale"),
|
|
30
|
+
options: localeOptions
|
|
31
|
+
},
|
|
32
|
+
onChange: t2,
|
|
33
|
+
path: "locale"
|
|
34
|
+
});
|
|
35
|
+
$[0] = localeOptions;
|
|
36
|
+
$[1] = onChange;
|
|
37
|
+
$[2] = t;
|
|
38
|
+
$[3] = t1;
|
|
39
|
+
} else {
|
|
40
|
+
t1 = $[3];
|
|
41
|
+
}
|
|
42
|
+
return t1;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","SelectField","useTranslation","React","LocaleSelector","t0","$","localeOptions","onChange","t","t1","t2","value","_jsx","field","name","label","options","path"],"sources":["../../../../src/views/API/LocaleSelector/index.tsx"],"sourcesContent":["'use client'\nimport { SelectField, useTranslation } from '@ruya.sa/ui'\nimport React from 'react'\n\nexport const LocaleSelector: React.FC<{\n readonly localeOptions: {\n label: Record<string, string> | string\n value: string\n }[]\n readonly onChange: (value: string) => void\n}> = ({ localeOptions, onChange }) => {\n const { t } = useTranslation()\n\n return (\n <SelectField\n field={{\n name: 'locale',\n label: t('general:locale'),\n options: localeOptions,\n }}\n onChange={(value: string) => onChange(value)}\n path=\"locale\"\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,WAAW,EAAEC,cAAc,QAAQ;AAC5C,OAAOC,KAAA,MAAW;AAElB,OAAO,MAAMC,cAAA,GAMRC,EAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAAC;IAAAO,aAAA;IAAAC;EAAA,IAAAH,EAA2B;EAC/B;IAAAI;EAAA,IAAcP,cAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAJ,CAAA,QAAAC,aAAA,IAAAD,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAG,CAAA;IAAA,IAAAE,EAAA;IAAA,IAAAL,CAAA,QAAAE,QAAA;MASAG,EAAA,GAAAC,KAAA,IAAmBJ,QAAA,CAASI,KAAA;MAAAN,CAAA,MAAAE,QAAA;MAAAF,CAAA,MAAAK,EAAA;IAAA;MAAAA,EAAA,GAAAL,CAAA;IAAA;IANxCI,EAAA,GAAAG,IAAA,CAAAZ,WAAA;MAAAa,KAAA;QAAAC,IAAA,EAEU;QAAAC,KAAA,EACCP,CAAA,CAAE;QAAAQ,OAAA,EACAV;MAAA;MAAAC,QAAA,EAEDG,EAA4B;MAAAO,IAAA,EACjC;IAAA,C;;;;;;;;SAPPR,E;CAUJ","ignoreList":[]}
|