@byline/host-tanstack-start 0.9.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 +373 -0
- package/README.md +48 -0
- package/dist/admin-shell/admin-roles/container.d.ts +34 -0
- package/dist/admin-shell/admin-roles/container.d.ts.map +1 -0
- package/dist/admin-shell/admin-roles/container.js +259 -0
- package/dist/admin-shell/admin-roles/container.module.js +17 -0
- package/dist/admin-shell/admin-roles/container_module.css +93 -0
- package/dist/admin-shell/admin-roles/delete.d.ts +9 -0
- package/dist/admin-shell/admin-roles/delete.d.ts.map +1 -0
- package/dist/admin-shell/admin-roles/delete.js +107 -0
- package/dist/admin-shell/admin-roles/delete.module.js +10 -0
- package/dist/admin-shell/admin-roles/delete_module.css +35 -0
- package/dist/admin-shell/admin-roles/list.d.ts +25 -0
- package/dist/admin-shell/admin-roles/list.d.ts.map +1 -0
- package/dist/admin-shell/admin-roles/list.js +292 -0
- package/dist/admin-shell/admin-roles/list.module.js +24 -0
- package/dist/admin-shell/admin-roles/list_module.css +113 -0
- package/dist/admin-shell/admin-users/container.d.ts +18 -0
- package/dist/admin-shell/admin-users/container.d.ts.map +1 -0
- package/dist/admin-shell/admin-users/container.js +418 -0
- package/dist/admin-shell/admin-users/container.module.js +22 -0
- package/dist/admin-shell/admin-users/container_module.css +136 -0
- package/dist/admin-shell/admin-users/delete.d.ts +9 -0
- package/dist/admin-shell/admin-users/delete.d.ts.map +1 -0
- package/dist/admin-shell/admin-users/delete.js +115 -0
- package/dist/admin-shell/admin-users/delete.module.js +10 -0
- package/dist/admin-shell/admin-users/delete_module.css +35 -0
- package/dist/admin-shell/admin-users/list.d.ts +13 -0
- package/dist/admin-shell/admin-users/list.d.ts.map +1 -0
- package/dist/admin-shell/admin-users/list.js +328 -0
- package/dist/admin-shell/admin-users/list.module.js +22 -0
- package/dist/admin-shell/admin-users/list_module.css +112 -0
- package/dist/admin-shell/chrome/admin-app-bar.d.ts +7 -0
- package/dist/admin-shell/chrome/admin-app-bar.d.ts.map +1 -0
- package/dist/admin-shell/chrome/admin-app-bar.js +71 -0
- package/dist/admin-shell/chrome/admin-app-bar.module.js +9 -0
- package/dist/admin-shell/chrome/admin-app-bar_module.css +54 -0
- package/dist/admin-shell/chrome/admin-layout.module.js +5 -0
- package/dist/admin-shell/chrome/admin-layout_module.css +8 -0
- package/dist/admin-shell/chrome/branding.d.ts +9 -0
- package/dist/admin-shell/chrome/branding.d.ts.map +1 -0
- package/dist/admin-shell/chrome/branding.js +17 -0
- package/dist/admin-shell/chrome/branding.module.js +6 -0
- package/dist/admin-shell/chrome/branding_module.css +11 -0
- package/dist/admin-shell/chrome/breadcrumbs/@types.d.ts +6 -0
- package/dist/admin-shell/chrome/breadcrumbs/@types.d.ts.map +1 -0
- package/dist/admin-shell/chrome/breadcrumbs/@types.js +1 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-client.d.ts +7 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-client.d.ts.map +1 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-client.js +20 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.d.ts +24 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.d.ts.map +1 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.js +23 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.d.ts +15 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.js +77 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.module.js +12 -0
- package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs_module.css +81 -0
- package/dist/admin-shell/chrome/byline-logo.d.ts +12 -0
- package/dist/admin-shell/chrome/byline-logo.d.ts.map +1 -0
- package/dist/admin-shell/chrome/byline-logo.js +178 -0
- package/dist/admin-shell/chrome/content.d.ts +24 -0
- package/dist/admin-shell/chrome/content.d.ts.map +1 -0
- package/dist/admin-shell/chrome/content.js +31 -0
- package/dist/admin-shell/chrome/content.module.js +5 -0
- package/dist/admin-shell/chrome/content_module.css +10 -0
- package/dist/admin-shell/chrome/dashboard.d.ts +14 -0
- package/dist/admin-shell/chrome/dashboard.d.ts.map +1 -0
- package/dist/admin-shell/chrome/dashboard.js +129 -0
- package/dist/admin-shell/chrome/dashboard.module.js +19 -0
- package/dist/admin-shell/chrome/dashboard_module.css +175 -0
- package/dist/admin-shell/chrome/drawer-toggle.d.ts +9 -0
- package/dist/admin-shell/chrome/drawer-toggle.d.ts.map +1 -0
- package/dist/admin-shell/chrome/drawer-toggle.js +57 -0
- package/dist/admin-shell/chrome/drawer-toggle.module.js +8 -0
- package/dist/admin-shell/chrome/drawer-toggle_module.css +21 -0
- package/dist/admin-shell/chrome/hamburger.d.ts +10 -0
- package/dist/admin-shell/chrome/hamburger.d.ts.map +1 -0
- package/dist/admin-shell/chrome/hamburger.js +30 -0
- package/dist/admin-shell/chrome/hamburger.module.js +5 -0
- package/dist/admin-shell/chrome/hamburger_module.css +7 -0
- package/dist/admin-shell/chrome/loose-router.d.ts +33 -0
- package/dist/admin-shell/chrome/loose-router.d.ts.map +1 -0
- package/dist/admin-shell/chrome/loose-router.js +6 -0
- package/dist/admin-shell/chrome/menu-drawer.d.ts +10 -0
- package/dist/admin-shell/chrome/menu-drawer.d.ts.map +1 -0
- package/dist/admin-shell/chrome/menu-drawer.js +141 -0
- package/dist/admin-shell/chrome/menu-drawer.module.js +12 -0
- package/dist/admin-shell/chrome/menu-drawer_module.css +137 -0
- package/dist/admin-shell/chrome/menu-provider.d.ts +21 -0
- package/dist/admin-shell/chrome/menu-provider.d.ts.map +1 -0
- package/dist/admin-shell/chrome/menu-provider.js +54 -0
- package/dist/admin-shell/chrome/preview-toggle.d.ts +13 -0
- package/dist/admin-shell/chrome/preview-toggle.d.ts.map +1 -0
- package/dist/admin-shell/chrome/preview-toggle.js +75 -0
- package/dist/admin-shell/chrome/route-error.d.ts +22 -0
- package/dist/admin-shell/chrome/route-error.d.ts.map +1 -0
- package/dist/admin-shell/chrome/route-error.js +119 -0
- package/dist/admin-shell/chrome/route-error.module.js +14 -0
- package/dist/admin-shell/chrome/route-error_module.css +94 -0
- package/dist/admin-shell/chrome/router-pager.d.ts +19 -0
- package/dist/admin-shell/chrome/router-pager.d.ts.map +1 -0
- package/dist/admin-shell/chrome/router-pager.js +91 -0
- package/dist/admin-shell/chrome/sign-in-page.d.ts +19 -0
- package/dist/admin-shell/chrome/sign-in-page.d.ts.map +1 -0
- package/dist/admin-shell/chrome/sign-in-page.js +20 -0
- package/dist/admin-shell/chrome/sign-in-page.module.js +6 -0
- package/dist/admin-shell/chrome/sign-in-page_module.css +22 -0
- package/dist/admin-shell/chrome/sort-icons.d.ts +10 -0
- package/dist/admin-shell/chrome/sort-icons.d.ts.map +1 -0
- package/dist/admin-shell/chrome/sort-icons.js +103 -0
- package/dist/admin-shell/chrome/th-sortable.d.ts +23 -0
- package/dist/admin-shell/chrome/th-sortable.d.ts.map +1 -0
- package/dist/admin-shell/chrome/th-sortable.js +75 -0
- package/dist/admin-shell/chrome/th-sortable.module.js +10 -0
- package/dist/admin-shell/chrome/th-sortable_module.css +37 -0
- package/dist/admin-shell/chrome/use-media-query.d.ts +9 -0
- package/dist/admin-shell/chrome/use-media-query.d.ts.map +1 -0
- package/dist/admin-shell/chrome/use-media-query.js +20 -0
- package/dist/admin-shell/chrome/utils.d.ts +12 -0
- package/dist/admin-shell/chrome/utils.d.ts.map +1 -0
- package/dist/admin-shell/chrome/utils.js +8 -0
- package/dist/admin-shell/collections/api.d.ts +28 -0
- package/dist/admin-shell/collections/api.d.ts.map +1 -0
- package/dist/admin-shell/collections/api.js +51 -0
- package/dist/admin-shell/collections/api.module.js +9 -0
- package/dist/admin-shell/collections/api_module.css +42 -0
- package/dist/admin-shell/collections/create.d.ts +14 -0
- package/dist/admin-shell/collections/create.d.ts.map +1 -0
- package/dist/admin-shell/collections/create.js +77 -0
- package/dist/admin-shell/collections/edit.d.ts +19 -0
- package/dist/admin-shell/collections/edit.d.ts.map +1 -0
- package/dist/admin-shell/collections/edit.js +279 -0
- package/dist/admin-shell/collections/history.d.ts +20 -0
- package/dist/admin-shell/collections/history.d.ts.map +1 -0
- package/dist/admin-shell/collections/history.js +252 -0
- package/dist/admin-shell/collections/history.module.js +18 -0
- package/dist/admin-shell/collections/history_module.css +121 -0
- package/dist/admin-shell/collections/list.d.ts +16 -0
- package/dist/admin-shell/collections/list.d.ts.map +1 -0
- package/dist/admin-shell/collections/list.js +253 -0
- package/dist/admin-shell/collections/list.module.js +16 -0
- package/dist/admin-shell/collections/list_module.css +88 -0
- package/dist/admin-shell/collections/preview-link.d.ts +32 -0
- package/dist/admin-shell/collections/preview-link.d.ts.map +1 -0
- package/dist/admin-shell/collections/preview-link.js +54 -0
- package/dist/admin-shell/collections/tanstack-navigation-guard.d.ts +16 -0
- package/dist/admin-shell/collections/tanstack-navigation-guard.d.ts.map +1 -0
- package/dist/admin-shell/collections/tanstack-navigation-guard.js +19 -0
- package/dist/admin-shell/collections/view-menu.d.ts +58 -0
- package/dist/admin-shell/collections/view-menu.d.ts.map +1 -0
- package/dist/admin-shell/collections/view-menu.js +203 -0
- package/dist/admin-shell/collections/view-menu.module.js +11 -0
- package/dist/admin-shell/collections/view-menu_module.css +43 -0
- package/dist/auth/auth-context.d.ts +38 -0
- package/dist/auth/auth-context.d.ts.map +1 -0
- package/dist/auth/auth-context.js +57 -0
- package/dist/auth/auth-cookies.d.ts +35 -0
- package/dist/auth/auth-cookies.d.ts.map +1 -0
- package/dist/auth/auth-cookies.js +46 -0
- package/dist/auth/preview-cookies.d.ts +20 -0
- package/dist/auth/preview-cookies.d.ts.map +1 -0
- package/dist/auth/preview-cookies.js +26 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/integrations/abilities.d.ts +67 -0
- package/dist/integrations/abilities.d.ts.map +1 -0
- package/dist/integrations/abilities.js +25 -0
- package/dist/integrations/api-utils.d.ts +34 -0
- package/dist/integrations/api-utils.d.ts.map +1 -0
- package/dist/integrations/api-utils.js +22 -0
- package/dist/integrations/byline-admin-services.d.ts +25 -0
- package/dist/integrations/byline-admin-services.d.ts.map +1 -0
- package/dist/integrations/byline-admin-services.js +26 -0
- package/dist/integrations/byline-client.d.ts +22 -0
- package/dist/integrations/byline-client.d.ts.map +1 -0
- package/dist/integrations/byline-client.js +13 -0
- package/dist/integrations/byline-core.d.ts +28 -0
- package/dist/integrations/byline-core.d.ts.map +1 -0
- package/dist/integrations/byline-core.js +5 -0
- package/dist/integrations/byline-field-services.d.ts +19 -0
- package/dist/integrations/byline-field-services.d.ts.map +1 -0
- package/dist/integrations/byline-field-services.js +14 -0
- package/dist/integrations/byline-public-client.d.ts +10 -0
- package/dist/integrations/byline-public-client.d.ts.map +1 -0
- package/dist/integrations/byline-public-client.js +15 -0
- package/dist/integrations/byline-viewer-client.d.ts +21 -0
- package/dist/integrations/byline-viewer-client.d.ts.map +1 -0
- package/dist/integrations/byline-viewer-client.js +39 -0
- package/dist/integrations/start-errors.d.ts +23 -0
- package/dist/integrations/start-errors.d.ts.map +1 -0
- package/dist/integrations/start-errors.js +32 -0
- package/dist/routes/create-admin-account-route.d.ts +9 -0
- package/dist/routes/create-admin-account-route.d.ts.map +1 -0
- package/dist/routes/create-admin-account-route.js +68 -0
- package/dist/routes/create-admin-dashboard-route.d.ts +9 -0
- package/dist/routes/create-admin-dashboard-route.d.ts.map +1 -0
- package/dist/routes/create-admin-dashboard-route.js +44 -0
- package/dist/routes/create-admin-layout-route.d.ts +14 -0
- package/dist/routes/create-admin-layout-route.d.ts.map +1 -0
- package/dist/routes/create-admin-layout-route.js +64 -0
- package/dist/routes/create-admin-permissions-route.d.ts +9 -0
- package/dist/routes/create-admin-permissions-route.d.ts.map +1 -0
- package/dist/routes/create-admin-permissions-route.js +39 -0
- package/dist/routes/create-admin-role-edit-route.d.ts +9 -0
- package/dist/routes/create-admin-role-edit-route.d.ts.map +1 -0
- package/dist/routes/create-admin-role-edit-route.js +79 -0
- package/dist/routes/create-admin-roles-list-route.d.ts +9 -0
- package/dist/routes/create-admin-roles-list-route.d.ts.map +1 -0
- package/dist/routes/create-admin-roles-list-route.js +39 -0
- package/dist/routes/create-admin-user-edit-route.d.ts +9 -0
- package/dist/routes/create-admin-user-edit-route.d.ts.map +1 -0
- package/dist/routes/create-admin-user-edit-route.js +86 -0
- package/dist/routes/create-admin-users-list-route.d.ts +9 -0
- package/dist/routes/create-admin-users-list-route.d.ts.map +1 -0
- package/dist/routes/create-admin-users-list-route.js +71 -0
- package/dist/routes/create-collection-api-route.d.ts +15 -0
- package/dist/routes/create-collection-api-route.d.ts.map +1 -0
- package/dist/routes/create-collection-api-route.js +71 -0
- package/dist/routes/create-collection-create-route.d.ts +9 -0
- package/dist/routes/create-collection-create-route.d.ts.map +1 -0
- package/dist/routes/create-collection-create-route.js +53 -0
- package/dist/routes/create-collection-edit-route.d.ts +15 -0
- package/dist/routes/create-collection-edit-route.d.ts.map +1 -0
- package/dist/routes/create-collection-edit-route.js +65 -0
- package/dist/routes/create-collection-history-route.d.ts +15 -0
- package/dist/routes/create-collection-history-route.d.ts.map +1 -0
- package/dist/routes/create-collection-history-route.js +94 -0
- package/dist/routes/create-collection-list-route.d.ts +9 -0
- package/dist/routes/create-collection-list-route.d.ts.map +1 -0
- package/dist/routes/create-collection-list-route.js +130 -0
- package/dist/routes/create-sign-in-route.d.ts +9 -0
- package/dist/routes/create-sign-in-route.d.ts.map +1 -0
- package/dist/routes/create-sign-in-route.js +21 -0
- package/dist/routes/index.d.ts +35 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +14 -0
- package/dist/server-fns/admin-account/change-password.d.ts +30 -0
- package/dist/server-fns/admin-account/change-password.d.ts.map +1 -0
- package/dist/server-fns/admin-account/change-password.js +13 -0
- package/dist/server-fns/admin-account/get.d.ts +31 -0
- package/dist/server-fns/admin-account/get.d.ts.map +1 -0
- package/dist/server-fns/admin-account/get.js +13 -0
- package/dist/server-fns/admin-account/index.d.ts +22 -0
- package/dist/server-fns/admin-account/index.d.ts.map +1 -0
- package/dist/server-fns/admin-account/index.js +3 -0
- package/dist/server-fns/admin-account/update.d.ts +34 -0
- package/dist/server-fns/admin-account/update.d.ts.map +1 -0
- package/dist/server-fns/admin-account/update.js +13 -0
- package/dist/server-fns/admin-permissions/get-role-abilities.d.ts +16 -0
- package/dist/server-fns/admin-permissions/get-role-abilities.d.ts.map +1 -0
- package/dist/server-fns/admin-permissions/get-role-abilities.js +14 -0
- package/dist/server-fns/admin-permissions/index.d.ts +25 -0
- package/dist/server-fns/admin-permissions/index.d.ts.map +1 -0
- package/dist/server-fns/admin-permissions/index.js +4 -0
- package/dist/server-fns/admin-permissions/list-registered.d.ts +33 -0
- package/dist/server-fns/admin-permissions/list-registered.d.ts.map +1 -0
- package/dist/server-fns/admin-permissions/list-registered.js +14 -0
- package/dist/server-fns/admin-permissions/set-role-abilities.d.ts +16 -0
- package/dist/server-fns/admin-permissions/set-role-abilities.d.ts.map +1 -0
- package/dist/server-fns/admin-permissions/set-role-abilities.js +14 -0
- package/dist/server-fns/admin-permissions/who-has.d.ts +26 -0
- package/dist/server-fns/admin-permissions/who-has.d.ts.map +1 -0
- package/dist/server-fns/admin-permissions/who-has.js +14 -0
- package/dist/server-fns/admin-roles/create.d.ts +24 -0
- package/dist/server-fns/admin-roles/create.d.ts.map +1 -0
- package/dist/server-fns/admin-roles/create.js +13 -0
- package/dist/server-fns/admin-roles/delete.d.ts +17 -0
- package/dist/server-fns/admin-roles/delete.d.ts.map +1 -0
- package/dist/server-fns/admin-roles/delete.js +13 -0
- package/dist/server-fns/admin-roles/get.d.ts +22 -0
- package/dist/server-fns/admin-roles/get.d.ts.map +1 -0
- package/dist/server-fns/admin-roles/get.js +13 -0
- package/dist/server-fns/admin-roles/index.d.ts +23 -0
- package/dist/server-fns/admin-roles/index.d.ts.map +1 -0
- package/dist/server-fns/admin-roles/index.js +6 -0
- package/dist/server-fns/admin-roles/list.d.ts +26 -0
- package/dist/server-fns/admin-roles/list.d.ts.map +1 -0
- package/dist/server-fns/admin-roles/list.js +13 -0
- package/dist/server-fns/admin-roles/reorder.d.ts +15 -0
- package/dist/server-fns/admin-roles/reorder.d.ts.map +1 -0
- package/dist/server-fns/admin-roles/reorder.js +13 -0
- package/dist/server-fns/admin-roles/update.d.ts +27 -0
- package/dist/server-fns/admin-roles/update.d.ts.map +1 -0
- package/dist/server-fns/admin-roles/update.js +13 -0
- package/dist/server-fns/admin-users/create.d.ts +35 -0
- package/dist/server-fns/admin-users/create.d.ts.map +1 -0
- package/dist/server-fns/admin-users/create.js +13 -0
- package/dist/server-fns/admin-users/delete.d.ts +17 -0
- package/dist/server-fns/admin-users/delete.d.ts.map +1 -0
- package/dist/server-fns/admin-users/delete.js +13 -0
- package/dist/server-fns/admin-users/disable.d.ts +15 -0
- package/dist/server-fns/admin-users/disable.d.ts.map +1 -0
- package/dist/server-fns/admin-users/disable.js +13 -0
- package/dist/server-fns/admin-users/enable.d.ts +15 -0
- package/dist/server-fns/admin-users/enable.d.ts.map +1 -0
- package/dist/server-fns/admin-users/enable.js +13 -0
- package/dist/server-fns/admin-users/get-user-roles.d.ts +25 -0
- package/dist/server-fns/admin-users/get-user-roles.d.ts.map +1 -0
- package/dist/server-fns/admin-users/get-user-roles.js +13 -0
- package/dist/server-fns/admin-users/get.d.ts +29 -0
- package/dist/server-fns/admin-users/get.d.ts.map +1 -0
- package/dist/server-fns/admin-users/get.js +13 -0
- package/dist/server-fns/admin-users/index.d.ts +28 -0
- package/dist/server-fns/admin-users/index.d.ts.map +1 -0
- package/dist/server-fns/admin-users/index.js +10 -0
- package/dist/server-fns/admin-users/list.d.ts +51 -0
- package/dist/server-fns/admin-users/list.d.ts.map +1 -0
- package/dist/server-fns/admin-users/list.js +13 -0
- package/dist/server-fns/admin-users/set-password.d.ts +30 -0
- package/dist/server-fns/admin-users/set-password.d.ts.map +1 -0
- package/dist/server-fns/admin-users/set-password.js +13 -0
- package/dist/server-fns/admin-users/set-user-roles.d.ts +25 -0
- package/dist/server-fns/admin-users/set-user-roles.d.ts.map +1 -0
- package/dist/server-fns/admin-users/set-user-roles.js +13 -0
- package/dist/server-fns/admin-users/update.d.ts +37 -0
- package/dist/server-fns/admin-users/update.d.ts.map +1 -0
- package/dist/server-fns/admin-users/update.js +13 -0
- package/dist/server-fns/auth/current-user.d.ts +38 -0
- package/dist/server-fns/auth/current-user.d.ts.map +1 -0
- package/dist/server-fns/auth/current-user.js +52 -0
- package/dist/server-fns/auth/index.d.ts +11 -0
- package/dist/server-fns/auth/index.d.ts.map +1 -0
- package/dist/server-fns/auth/index.js +3 -0
- package/dist/server-fns/auth/sign-in.d.ts +19 -0
- package/dist/server-fns/auth/sign-in.d.ts.map +1 -0
- package/dist/server-fns/auth/sign-in.js +31 -0
- package/dist/server-fns/auth/sign-out.d.ts +11 -0
- package/dist/server-fns/auth/sign-out.d.ts.map +1 -0
- package/dist/server-fns/auth/sign-out.js +17 -0
- package/dist/server-fns/collections/create.d.ts +21 -0
- package/dist/server-fns/collections/create.d.ts.map +1 -0
- package/dist/server-fns/collections/create.js +40 -0
- package/dist/server-fns/collections/delete.d.ts +18 -0
- package/dist/server-fns/collections/delete.d.ts.map +1 -0
- package/dist/server-fns/collections/delete.js +44 -0
- package/dist/server-fns/collections/get.d.ts +26 -0
- package/dist/server-fns/collections/get.d.ts.map +1 -0
- package/dist/server-fns/collections/get.js +133 -0
- package/dist/server-fns/collections/history.d.ts +43 -0
- package/dist/server-fns/collections/history.d.ts.map +1 -0
- package/dist/server-fns/collections/history.js +29 -0
- package/dist/server-fns/collections/index.d.ts +16 -0
- package/dist/server-fns/collections/index.d.ts.map +1 -0
- package/dist/server-fns/collections/index.js +9 -0
- package/dist/server-fns/collections/list.d.ts +54 -0
- package/dist/server-fns/collections/list.d.ts.map +1 -0
- package/dist/server-fns/collections/list.js +65 -0
- package/dist/server-fns/collections/stats.d.ts +17 -0
- package/dist/server-fns/collections/stats.d.ts.map +1 -0
- package/dist/server-fns/collections/stats.js +28 -0
- package/dist/server-fns/collections/status.d.ts +31 -0
- package/dist/server-fns/collections/status.d.ts.map +1 -0
- package/dist/server-fns/collections/status.js +79 -0
- package/dist/server-fns/collections/update.d.ts +26 -0
- package/dist/server-fns/collections/update.d.ts.map +1 -0
- package/dist/server-fns/collections/update.js +41 -0
- package/dist/server-fns/collections/upload.d.ts +57 -0
- package/dist/server-fns/collections/upload.d.ts.map +1 -0
- package/dist/server-fns/collections/upload.js +132 -0
- package/dist/server-fns/collections/utils.d.ts +15 -0
- package/dist/server-fns/collections/utils.d.ts.map +1 -0
- package/dist/server-fns/collections/utils.js +4 -0
- package/dist/server-fns/preview/disable.d.ts +12 -0
- package/dist/server-fns/preview/disable.d.ts.map +1 -0
- package/dist/server-fns/preview/disable.js +12 -0
- package/dist/server-fns/preview/enable.d.ts +12 -0
- package/dist/server-fns/preview/enable.d.ts.map +1 -0
- package/dist/server-fns/preview/enable.js +14 -0
- package/dist/server-fns/preview/index.d.ts +11 -0
- package/dist/server-fns/preview/index.d.ts.map +1 -0
- package/dist/server-fns/preview/index.js +3 -0
- package/dist/server-fns/preview/state.d.ts +11 -0
- package/dist/server-fns/preview/state.d.ts.map +1 -0
- package/dist/server-fns/preview/state.js +8 -0
- package/package.json +164 -0
- package/src/admin-shell/admin-roles/container.module.css +132 -0
- package/src/admin-shell/admin-roles/container.tsx +209 -0
- package/src/admin-shell/admin-roles/delete.module.css +52 -0
- package/src/admin-shell/admin-roles/delete.tsx +117 -0
- package/src/admin-shell/admin-roles/list.module.css +158 -0
- package/src/admin-shell/admin-roles/list.tsx +308 -0
- package/src/admin-shell/admin-users/container.module.css +199 -0
- package/src/admin-shell/admin-users/container.tsx +344 -0
- package/src/admin-shell/admin-users/delete.module.css +52 -0
- package/src/admin-shell/admin-users/delete.tsx +129 -0
- package/src/admin-shell/admin-users/list.module.css +164 -0
- package/src/admin-shell/admin-users/list.tsx +314 -0
- package/src/admin-shell/chrome/admin-app-bar.module.css +72 -0
- package/src/admin-shell/chrome/admin-app-bar.tsx +74 -0
- package/src/admin-shell/chrome/admin-layout.module.css +16 -0
- package/src/admin-shell/chrome/branding.module.css +20 -0
- package/src/admin-shell/chrome/branding.tsx +23 -0
- package/src/admin-shell/chrome/breadcrumbs/@types.ts +5 -0
- package/src/admin-shell/chrome/breadcrumbs/breadcrumbs-client.tsx +30 -0
- package/src/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.tsx +48 -0
- package/src/admin-shell/chrome/breadcrumbs/breadcrumbs.module.css +93 -0
- package/src/admin-shell/chrome/breadcrumbs/breadcrumbs.tsx +96 -0
- package/src/admin-shell/chrome/byline-logo.tsx +151 -0
- package/src/admin-shell/chrome/content.module.css +16 -0
- package/src/admin-shell/chrome/content.tsx +60 -0
- package/src/admin-shell/chrome/dashboard.module.css +245 -0
- package/src/admin-shell/chrome/dashboard.tsx +128 -0
- package/src/admin-shell/chrome/drawer-toggle.module.css +30 -0
- package/src/admin-shell/chrome/drawer-toggle.tsx +62 -0
- package/src/admin-shell/chrome/hamburger.module.css +16 -0
- package/src/admin-shell/chrome/hamburger.tsx +56 -0
- package/src/admin-shell/chrome/loose-router.ts +47 -0
- package/src/admin-shell/chrome/menu-drawer.module.css +196 -0
- package/src/admin-shell/chrome/menu-drawer.tsx +155 -0
- package/src/admin-shell/chrome/menu-provider.tsx +95 -0
- package/src/admin-shell/chrome/preview-toggle.tsx +107 -0
- package/src/admin-shell/chrome/route-error.module.css +114 -0
- package/src/admin-shell/chrome/route-error.tsx +125 -0
- package/src/admin-shell/chrome/router-pager.tsx +179 -0
- package/src/admin-shell/chrome/sign-in-page.module.css +32 -0
- package/src/admin-shell/chrome/sign-in-page.tsx +35 -0
- package/src/admin-shell/chrome/sort-icons.tsx +127 -0
- package/src/admin-shell/chrome/th-sortable.module.css +51 -0
- package/src/admin-shell/chrome/th-sortable.tsx +114 -0
- package/src/admin-shell/chrome/use-media-query.ts +28 -0
- package/src/admin-shell/chrome/utils.ts +20 -0
- package/src/admin-shell/collections/api.module.css +62 -0
- package/src/admin-shell/collections/api.tsx +70 -0
- package/src/admin-shell/collections/create.tsx +108 -0
- package/src/admin-shell/collections/edit.tsx +319 -0
- package/src/admin-shell/collections/history.module.css +156 -0
- package/src/admin-shell/collections/history.tsx +352 -0
- package/src/admin-shell/collections/list.module.css +124 -0
- package/src/admin-shell/collections/list.tsx +313 -0
- package/src/admin-shell/collections/preview-link.tsx +138 -0
- package/src/admin-shell/collections/tanstack-navigation-guard.ts +43 -0
- package/src/admin-shell/collections/view-menu.module.css +60 -0
- package/src/admin-shell/collections/view-menu.tsx +238 -0
- package/src/auth/auth-context.test.node.ts +200 -0
- package/src/auth/auth-context.ts +119 -0
- package/src/auth/auth-cookies.ts +113 -0
- package/src/auth/preview-cookies.ts +73 -0
- package/src/declarations.d.ts +4 -0
- package/src/index.ts +44 -0
- package/src/integrations/abilities.tsx +90 -0
- package/src/integrations/api-utils.ts +66 -0
- package/src/integrations/byline-admin-services.ts +86 -0
- package/src/integrations/byline-client.ts +40 -0
- package/src/integrations/byline-core.ts +32 -0
- package/src/integrations/byline-field-services.ts +35 -0
- package/src/integrations/byline-public-client.ts +53 -0
- package/src/integrations/byline-viewer-client.ts +99 -0
- package/src/integrations/start-errors.ts +86 -0
- package/src/routes/create-admin-account-route.tsx +65 -0
- package/src/routes/create-admin-dashboard-route.tsx +52 -0
- package/src/routes/create-admin-layout-route.tsx +89 -0
- package/src/routes/create-admin-permissions-route.tsx +43 -0
- package/src/routes/create-admin-role-edit-route.tsx +88 -0
- package/src/routes/create-admin-roles-list-route.tsx +39 -0
- package/src/routes/create-admin-user-edit-route.tsx +105 -0
- package/src/routes/create-admin-users-list-route.tsx +84 -0
- package/src/routes/create-collection-api-route.tsx +111 -0
- package/src/routes/create-collection-create-route.tsx +66 -0
- package/src/routes/create-collection-edit-route.tsx +102 -0
- package/src/routes/create-collection-history-route.tsx +130 -0
- package/src/routes/create-collection-list-route.tsx +175 -0
- package/src/routes/create-sign-in-route.tsx +39 -0
- package/src/routes/index.ts +36 -0
- package/src/server-fns/admin-account/change-password.ts +27 -0
- package/src/server-fns/admin-account/get.ts +27 -0
- package/src/server-fns/admin-account/index.ts +28 -0
- package/src/server-fns/admin-account/update.ts +31 -0
- package/src/server-fns/admin-permissions/get-role-abilities.ts +27 -0
- package/src/server-fns/admin-permissions/index.ts +36 -0
- package/src/server-fns/admin-permissions/list-registered.ts +36 -0
- package/src/server-fns/admin-permissions/set-role-abilities.ts +32 -0
- package/src/server-fns/admin-permissions/who-has.ts +24 -0
- package/src/server-fns/admin-roles/create.ts +28 -0
- package/src/server-fns/admin-roles/delete.ts +25 -0
- package/src/server-fns/admin-roles/get.ts +21 -0
- package/src/server-fns/admin-roles/index.ts +25 -0
- package/src/server-fns/admin-roles/list.ts +27 -0
- package/src/server-fns/admin-roles/reorder.ts +21 -0
- package/src/server-fns/admin-roles/update.ts +31 -0
- package/src/server-fns/admin-users/create.ts +32 -0
- package/src/server-fns/admin-users/delete.ts +21 -0
- package/src/server-fns/admin-users/disable.ts +24 -0
- package/src/server-fns/admin-users/enable.ts +24 -0
- package/src/server-fns/admin-users/get-user-roles.ts +21 -0
- package/src/server-fns/admin-users/get.ts +21 -0
- package/src/server-fns/admin-users/index.ts +35 -0
- package/src/server-fns/admin-users/list.ts +40 -0
- package/src/server-fns/admin-users/set-password.ts +27 -0
- package/src/server-fns/admin-users/set-user-roles.ts +26 -0
- package/src/server-fns/admin-users/update.ts +34 -0
- package/src/server-fns/auth/current-user.ts +117 -0
- package/src/server-fns/auth/index.ts +15 -0
- package/src/server-fns/auth/sign-in.ts +71 -0
- package/src/server-fns/auth/sign-out.ts +42 -0
- package/src/server-fns/collections/create.ts +58 -0
- package/src/server-fns/collections/delete.ts +62 -0
- package/src/server-fns/collections/get.ts +233 -0
- package/src/server-fns/collections/history.ts +73 -0
- package/src/server-fns/collections/index.ts +16 -0
- package/src/server-fns/collections/list.ts +121 -0
- package/src/server-fns/collections/stats.ts +52 -0
- package/src/server-fns/collections/status.ts +102 -0
- package/src/server-fns/collections/update.ts +67 -0
- package/src/server-fns/collections/upload.ts +274 -0
- package/src/server-fns/collections/utils.ts +17 -0
- package/src/server-fns/preview/disable.ts +24 -0
- package/src/server-fns/preview/enable.ts +27 -0
- package/src/server-fns/preview/index.ts +11 -0
- package/src/server-fns/preview/state.ts +30 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { createServerFn } from '@tanstack/react-start'
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
CollectionDefinition,
|
|
5
|
+
FieldUploadContext,
|
|
6
|
+
FileField,
|
|
7
|
+
ImageField,
|
|
8
|
+
StoredFileValue,
|
|
9
|
+
} from '@byline/core'
|
|
10
|
+
import { ERR_NOT_FOUND, ERR_VALIDATION, getServerConfig, getUploadFields } from '@byline/core'
|
|
11
|
+
import { getLogger, withLogContext } from '@byline/core/logger'
|
|
12
|
+
import { uploadField as coreUploadField } from '@byline/core/services'
|
|
13
|
+
import { extractImageMeta, generateImageVariants, isBypassMimeType } from '@byline/storage-local'
|
|
14
|
+
|
|
15
|
+
import { getAdminRequestContext } from '../../auth/auth-context.js'
|
|
16
|
+
import { ensureCollection } from '../../integrations/api-utils.js'
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Result of an upload through the host transport. The legacy top-level
|
|
20
|
+
* `variants: { name, url }[]` is gone — variants live on
|
|
21
|
+
* `storedFile.variants` with full `storagePath`/`storageUrl`/`width`/
|
|
22
|
+
* `height`/`format`. Single source of truth.
|
|
23
|
+
*/
|
|
24
|
+
export interface UploadFieldResult {
|
|
25
|
+
/** Present when the upload endpoint created a document (createDocument=true, the default). */
|
|
26
|
+
documentId?: string
|
|
27
|
+
documentVersionId?: string
|
|
28
|
+
storedFile: StoredFileValue
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface UploadDocumentInput {
|
|
32
|
+
collectionPath: string
|
|
33
|
+
shouldCreateDocument: boolean
|
|
34
|
+
/**
|
|
35
|
+
* Name of the upload-capable image/file field on the collection. When
|
|
36
|
+
* absent, the handler defaults to the unique upload-capable field;
|
|
37
|
+
* collections with multiple upload-capable fields require an explicit
|
|
38
|
+
* `field` selector.
|
|
39
|
+
*/
|
|
40
|
+
fieldName: string | null
|
|
41
|
+
file: File
|
|
42
|
+
fields: Record<string, string>
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function parseUploadFormData(data: FormData): UploadDocumentInput {
|
|
46
|
+
if (!(data instanceof FormData)) {
|
|
47
|
+
throw new Error('Expected FormData upload payload.')
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const collectionEntry = data.get('collection')
|
|
51
|
+
if (typeof collectionEntry !== 'string' || collectionEntry.trim() === '') {
|
|
52
|
+
throw new Error("Missing required form field 'collection'.")
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const fileEntry = data.get('file')
|
|
56
|
+
if (!(fileEntry instanceof File)) {
|
|
57
|
+
throw new Error("Missing required form field 'file'.")
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const fieldEntry = data.get('field')
|
|
61
|
+
const fieldName = typeof fieldEntry === 'string' && fieldEntry.trim() ? fieldEntry.trim() : null
|
|
62
|
+
|
|
63
|
+
const fields: Record<string, string> = {}
|
|
64
|
+
for (const [key, value] of data.entries()) {
|
|
65
|
+
if (key === 'collection' || key === 'createDocument' || key === 'file' || key === 'field') {
|
|
66
|
+
continue
|
|
67
|
+
}
|
|
68
|
+
if (typeof value === 'string') {
|
|
69
|
+
fields[key] = value
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return {
|
|
74
|
+
collectionPath: collectionEntry.trim(),
|
|
75
|
+
shouldCreateDocument: data.get('createDocument') !== 'false',
|
|
76
|
+
fieldName,
|
|
77
|
+
file: fileEntry,
|
|
78
|
+
fields,
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Resolve the target upload field on the collection. Explicit `field`
|
|
84
|
+
* wins; otherwise default to the unique upload-capable field. Throws
|
|
85
|
+
* `ERR_VALIDATION` when the request is ambiguous.
|
|
86
|
+
*
|
|
87
|
+
* Walks `definition.fields` only (not nested `group` / `array` /
|
|
88
|
+
* `blocks`) — top-level upload fields are the supported case for the
|
|
89
|
+
* transport today. Nested-field uploads remain available via the core
|
|
90
|
+
* service when wired into a custom transport.
|
|
91
|
+
*/
|
|
92
|
+
function resolveUploadFieldName(
|
|
93
|
+
definition: CollectionDefinition,
|
|
94
|
+
collectionPath: string,
|
|
95
|
+
requested: string | null
|
|
96
|
+
): string {
|
|
97
|
+
const candidates = getUploadFields(definition)
|
|
98
|
+
|
|
99
|
+
if (requested) {
|
|
100
|
+
const match = candidates.find((f) => f.name === requested)
|
|
101
|
+
if (!match) {
|
|
102
|
+
throw ERR_VALIDATION({
|
|
103
|
+
message:
|
|
104
|
+
`Field '${requested}' is not an upload-capable image/file field on collection ` +
|
|
105
|
+
`'${collectionPath}'.`,
|
|
106
|
+
details: {
|
|
107
|
+
collectionPath,
|
|
108
|
+
requestedField: requested,
|
|
109
|
+
available: candidates.map((f) => f.name),
|
|
110
|
+
},
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
return match.name
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (candidates.length === 1) return candidates[0].name
|
|
117
|
+
|
|
118
|
+
if (candidates.length === 0) {
|
|
119
|
+
throw ERR_VALIDATION({
|
|
120
|
+
message:
|
|
121
|
+
`Collection '${collectionPath}' has no upload-capable image/file field. ` +
|
|
122
|
+
"Add an 'upload' block to one of its image/file fields.",
|
|
123
|
+
details: { collectionPath },
|
|
124
|
+
})
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
throw ERR_VALIDATION({
|
|
128
|
+
message:
|
|
129
|
+
`Collection '${collectionPath}' has multiple upload-capable fields ` +
|
|
130
|
+
`(${candidates.map((f) => `'${f.name}'`).join(', ')}). ` +
|
|
131
|
+
"Pass a 'field' FormData entry to select one.",
|
|
132
|
+
details: {
|
|
133
|
+
collectionPath,
|
|
134
|
+
available: candidates.map((f) => f.name),
|
|
135
|
+
},
|
|
136
|
+
})
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Temporary transport refactor note:
|
|
141
|
+
* This upload path now uses a module-local TanStack server function as a thin
|
|
142
|
+
* transport wrapper around the framework-agnostic core upload service.
|
|
143
|
+
*
|
|
144
|
+
* This is still an interim transport shape. The next architectural step is to
|
|
145
|
+
* add a stable HTTP upload transport backed by the same core service so remote
|
|
146
|
+
* deployments and external clients can use the identical upload orchestration
|
|
147
|
+
* without depending on TanStack Start server-function transport details.
|
|
148
|
+
*/
|
|
149
|
+
export const uploadCollectionField = createServerFn({ method: 'POST' })
|
|
150
|
+
.inputValidator(parseUploadFormData)
|
|
151
|
+
.handler(async ({ data }) => {
|
|
152
|
+
const { collectionPath, shouldCreateDocument, fieldName, file, fields } = data
|
|
153
|
+
const logger = getLogger()
|
|
154
|
+
|
|
155
|
+
return withLogContext(
|
|
156
|
+
{ domain: 'api', module: 'upload', function: 'uploadCollectionField' },
|
|
157
|
+
async () => {
|
|
158
|
+
const config = await ensureCollection(collectionPath)
|
|
159
|
+
if (config == null) {
|
|
160
|
+
throw ERR_NOT_FOUND(
|
|
161
|
+
{
|
|
162
|
+
message: 'Collection not found.',
|
|
163
|
+
details: { collectionPath },
|
|
164
|
+
},
|
|
165
|
+
uploadCollectionField
|
|
166
|
+
).log(logger)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const serverConfig = getServerConfig()
|
|
170
|
+
const resolvedFieldName = resolveUploadFieldName(
|
|
171
|
+
config.definition,
|
|
172
|
+
collectionPath,
|
|
173
|
+
fieldName
|
|
174
|
+
)
|
|
175
|
+
const targetField = config.definition.fields.find((f) => f.name === resolvedFieldName) as
|
|
176
|
+
| ImageField
|
|
177
|
+
| FileField
|
|
178
|
+
// Per-field storage routing falls through to the site-wide default.
|
|
179
|
+
const storage = targetField.upload?.storage ?? serverConfig.storage
|
|
180
|
+
if (!storage) {
|
|
181
|
+
throw new Error(
|
|
182
|
+
`No storage provider configured for field '${resolvedFieldName}' on collection ` +
|
|
183
|
+
`'${collectionPath}'. Set either field.upload.storage or the site-wide ` +
|
|
184
|
+
'ServerConfig.storage.'
|
|
185
|
+
)
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
let buffer: Buffer
|
|
189
|
+
try {
|
|
190
|
+
buffer = Buffer.from(await file.arrayBuffer())
|
|
191
|
+
} catch (err: unknown) {
|
|
192
|
+
logger.error({ err, collectionPath }, 'failed to read file buffer')
|
|
193
|
+
throw new Error('Failed to read uploaded file.')
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
const ctx: FieldUploadContext = {
|
|
197
|
+
db: serverConfig.db,
|
|
198
|
+
definition: config.definition,
|
|
199
|
+
collectionId: config.collection.id,
|
|
200
|
+
collectionVersion: config.collection.version,
|
|
201
|
+
collectionPath,
|
|
202
|
+
fieldName: resolvedFieldName,
|
|
203
|
+
storage,
|
|
204
|
+
logger,
|
|
205
|
+
defaultLocale: serverConfig.i18n.content.defaultLocale,
|
|
206
|
+
slugifier: serverConfig.slugifier,
|
|
207
|
+
requestContext: await getAdminRequestContext(),
|
|
208
|
+
imageProcessor: {
|
|
209
|
+
extractMeta: extractImageMeta,
|
|
210
|
+
isBypassMimeType,
|
|
211
|
+
generateVariants: async ({ buffer, mimeType, storedFile, storage, upload, logger }) => {
|
|
212
|
+
if (!('uploadDir' in storage) || typeof (storage as any).uploadDir !== 'string') {
|
|
213
|
+
return []
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const uploadDir = (storage as any).uploadDir as string
|
|
217
|
+
const absoluteOriginalPath = `${uploadDir}/${storedFile.storagePath}`
|
|
218
|
+
|
|
219
|
+
return generateImageVariants(
|
|
220
|
+
buffer,
|
|
221
|
+
mimeType,
|
|
222
|
+
absoluteOriginalPath,
|
|
223
|
+
uploadDir,
|
|
224
|
+
upload.sizes ?? [],
|
|
225
|
+
logger
|
|
226
|
+
)
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return coreUploadField(ctx, {
|
|
232
|
+
buffer,
|
|
233
|
+
originalFilename: file.name || 'upload',
|
|
234
|
+
mimeType: file.type || 'application/octet-stream',
|
|
235
|
+
fileSize: file.size,
|
|
236
|
+
fields,
|
|
237
|
+
shouldCreateDocument,
|
|
238
|
+
locale: serverConfig.i18n.content.defaultLocale,
|
|
239
|
+
})
|
|
240
|
+
}
|
|
241
|
+
)
|
|
242
|
+
})
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Upload a file to an upload-enabled collection.
|
|
246
|
+
*
|
|
247
|
+
* This preserves the existing client-side call signature while routing the
|
|
248
|
+
* upload through the module-local TanStack Start server function above.
|
|
249
|
+
*
|
|
250
|
+
* @param collection - collection path (e.g. 'media')
|
|
251
|
+
* @param formData - FormData with at minimum a `file` (File) field; may
|
|
252
|
+
* also include `title`, `altText`, `caption`, `credit`,
|
|
253
|
+
* `category`.
|
|
254
|
+
* @param createDocument - when `false`, the server stores the file and returns
|
|
255
|
+
* the StoredFileValue but does NOT create a document
|
|
256
|
+
* version. Use this when the upload is part of an
|
|
257
|
+
* in-form field widget — the form's own save will
|
|
258
|
+
* create the document. Defaults to `true`.
|
|
259
|
+
*/
|
|
260
|
+
export async function uploadField(
|
|
261
|
+
collection: string,
|
|
262
|
+
formData: FormData,
|
|
263
|
+
createDocument = true
|
|
264
|
+
): Promise<UploadFieldResult> {
|
|
265
|
+
const payload = new FormData()
|
|
266
|
+
for (const [key, value] of formData.entries()) {
|
|
267
|
+
payload.append(key, value)
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
payload.set('collection', collection)
|
|
271
|
+
payload.set('createDocument', createDocument ? 'true' : 'false')
|
|
272
|
+
|
|
273
|
+
return uploadCollectionField({ data: payload })
|
|
274
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Deep-serialise a value through JSON to convert Date objects to ISO strings.
|
|
11
|
+
* TanStack Start server functions pass return values directly during SSR
|
|
12
|
+
* (no automatic JSON round-trip), so Date instances from the DB driver would
|
|
13
|
+
* fail downstream Zod z.string() checks without this explicit step.
|
|
14
|
+
*/
|
|
15
|
+
export function serialise<T>(value: T): T {
|
|
16
|
+
return JSON.parse(JSON.stringify(value))
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Disable front-end preview mode by clearing the `byline_preview` cookie.
|
|
11
|
+
*
|
|
12
|
+
* No auth check: clearing your own preview cookie is always safe, and
|
|
13
|
+
* letting an anonymous browser drop a stale cookie is the recovery path
|
|
14
|
+
* when an admin's session has already lapsed.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { createServerFn } from '@tanstack/react-start'
|
|
18
|
+
|
|
19
|
+
import { clearPreviewCookie } from '../../auth/preview-cookies.js'
|
|
20
|
+
|
|
21
|
+
export const disablePreviewModeFn = createServerFn({ method: 'POST' }).handler(async () => {
|
|
22
|
+
clearPreviewCookie()
|
|
23
|
+
return { status: 'ok' as const, preview: false as const }
|
|
24
|
+
})
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Enable front-end preview mode for the current admin session.
|
|
11
|
+
*
|
|
12
|
+
* Resolves an admin `RequestContext` first — `getAdminRequestContext`
|
|
13
|
+
* throws `ERR_UNAUTHENTICATED` for non-admin callers, so the cookie is
|
|
14
|
+
* only ever issued to a valid admin. Once set, the viewer client picks
|
|
15
|
+
* the cookie up on subsequent requests and elevates the read context.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { createServerFn } from '@tanstack/react-start'
|
|
19
|
+
|
|
20
|
+
import { getAdminRequestContext } from '../../auth/auth-context.js'
|
|
21
|
+
import { setPreviewCookie } from '../../auth/preview-cookies.js'
|
|
22
|
+
|
|
23
|
+
export const enablePreviewModeFn = createServerFn({ method: 'POST' }).handler(async () => {
|
|
24
|
+
await getAdminRequestContext()
|
|
25
|
+
setPreviewCookie()
|
|
26
|
+
return { status: 'ok' as const, preview: true as const }
|
|
27
|
+
})
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { disablePreviewModeFn } from './disable.js'
|
|
10
|
+
export { enablePreviewModeFn } from './enable.js'
|
|
11
|
+
export { getPreviewStateFn } from './state.js'
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Read the front-end preview cookie state.
|
|
11
|
+
*
|
|
12
|
+
* The `byline_preview` cookie is httpOnly so client JS cannot read it
|
|
13
|
+
* directly. This server fn is the bridge: drawer toggles, content-admin
|
|
14
|
+
* bar pills, and any other UI affordance that needs to reflect the
|
|
15
|
+
* cookie state calls this on mount (and after enable/disable) to stay
|
|
16
|
+
* in sync.
|
|
17
|
+
*
|
|
18
|
+
* Intentionally does NOT verify a session — the cookie's mere presence
|
|
19
|
+
* is what we report. The actual safety enforcement (admin actor required
|
|
20
|
+
* before drafts surface) lives in `assertActorCanPerform` on the read
|
|
21
|
+
* path, not here.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { createServerFn } from '@tanstack/react-start'
|
|
25
|
+
|
|
26
|
+
import { readPreviewCookie } from '../../auth/preview-cookies.js'
|
|
27
|
+
|
|
28
|
+
export const getPreviewStateFn = createServerFn({ method: 'GET' }).handler(async () => {
|
|
29
|
+
return { preview: readPreviewCookie() }
|
|
30
|
+
})
|