@byline/host-tanstack-start 5.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin-shell/chrome/admin-app-bar.d.ts +7 -0
- package/dist/admin-shell/chrome/admin-app-bar.js +10 -2
- package/dist/admin-shell/chrome/session-change-boundary.d.ts +14 -0
- package/dist/admin-shell/chrome/session-change-boundary.js +87 -0
- package/dist/admin-shell/chrome/session-change-boundary.test.d.ts +8 -0
- package/dist/admin-shell/chrome/sign-in-page.d.ts +2 -1
- package/dist/admin-shell/chrome/sign-in-page.js +60 -3
- package/dist/integrations/byline-admin-services.js +7 -1
- package/dist/integrations/client-ip.d.ts +19 -0
- package/dist/integrations/client-ip.js +34 -0
- package/dist/integrations/session-coordination.d.ts +24 -0
- package/dist/integrations/session-coordination.js +85 -0
- package/dist/integrations/session-middleware.d.ts +11 -0
- package/dist/integrations/session-middleware.js +94 -0
- package/dist/integrations/session-request-kind.d.ts +9 -0
- package/dist/integrations/session-request-kind.js +10 -0
- package/dist/integrations/session-request-middleware.d.ts +9 -0
- package/dist/integrations/session-request-middleware.js +7 -0
- package/dist/integrations/sign-in-body.d.ts +12 -0
- package/dist/integrations/sign-in-body.js +52 -0
- package/dist/integrations/sign-in-middleware.d.ts +9 -0
- package/dist/integrations/sign-in-middleware.js +10 -0
- package/dist/routes/create-admin-layout-route.js +46 -31
- package/dist/routes/create-sign-in-route.js +4 -2
- package/dist/server-fns/admin-account/change-password.d.ts +3 -1
- package/dist/server-fns/admin-account/change-password.js +9 -3
- package/dist/server-fns/admin-account/get.d.ts +3 -1
- package/dist/server-fns/admin-account/get.js +4 -1
- package/dist/server-fns/admin-account/index.d.ts +5 -5
- package/dist/server-fns/admin-account/update.d.ts +3 -1
- package/dist/server-fns/admin-account/update.js +4 -1
- package/dist/server-fns/admin-activity/get.d.ts +3 -1
- package/dist/server-fns/admin-activity/get.js +4 -1
- package/dist/server-fns/admin-permissions/get-role-abilities.d.ts +3 -1
- package/dist/server-fns/admin-permissions/get-role-abilities.js +4 -1
- package/dist/server-fns/admin-permissions/index.d.ts +4 -4
- package/dist/server-fns/admin-permissions/list-registered.d.ts +3 -1
- package/dist/server-fns/admin-permissions/list-registered.js +4 -1
- package/dist/server-fns/admin-permissions/set-role-abilities.d.ts +3 -1
- package/dist/server-fns/admin-permissions/set-role-abilities.js +4 -1
- package/dist/server-fns/admin-permissions/who-has.d.ts +3 -1
- package/dist/server-fns/admin-permissions/who-has.js +4 -1
- package/dist/server-fns/admin-roles/create.d.ts +3 -1
- package/dist/server-fns/admin-roles/create.js +4 -1
- package/dist/server-fns/admin-roles/delete.d.ts +3 -1
- package/dist/server-fns/admin-roles/delete.js +4 -1
- package/dist/server-fns/admin-roles/get.d.ts +3 -1
- package/dist/server-fns/admin-roles/get.js +4 -1
- package/dist/server-fns/admin-roles/index.d.ts +6 -6
- package/dist/server-fns/admin-roles/list.d.ts +3 -1
- package/dist/server-fns/admin-roles/list.js +4 -1
- package/dist/server-fns/admin-roles/reorder.d.ts +3 -1
- package/dist/server-fns/admin-roles/reorder.js +4 -1
- package/dist/server-fns/admin-roles/update.d.ts +3 -1
- package/dist/server-fns/admin-roles/update.js +4 -1
- package/dist/server-fns/admin-users/create.d.ts +3 -1
- package/dist/server-fns/admin-users/create.js +4 -1
- package/dist/server-fns/admin-users/delete.d.ts +3 -1
- package/dist/server-fns/admin-users/delete.js +4 -1
- package/dist/server-fns/admin-users/disable.d.ts +3 -1
- package/dist/server-fns/admin-users/disable.js +4 -1
- package/dist/server-fns/admin-users/enable.d.ts +3 -1
- package/dist/server-fns/admin-users/enable.js +4 -1
- package/dist/server-fns/admin-users/get-user-roles.d.ts +3 -1
- package/dist/server-fns/admin-users/get-user-roles.js +4 -1
- package/dist/server-fns/admin-users/get.d.ts +3 -1
- package/dist/server-fns/admin-users/get.js +4 -1
- package/dist/server-fns/admin-users/index.d.ts +10 -10
- package/dist/server-fns/admin-users/list.d.ts +3 -1
- package/dist/server-fns/admin-users/list.js +4 -1
- package/dist/server-fns/admin-users/set-password.d.ts +3 -1
- package/dist/server-fns/admin-users/set-password.js +4 -1
- package/dist/server-fns/admin-users/set-user-roles.d.ts +3 -1
- package/dist/server-fns/admin-users/set-user-roles.js +4 -1
- package/dist/server-fns/admin-users/update.d.ts +3 -1
- package/dist/server-fns/admin-users/update.js +4 -1
- package/dist/server-fns/ai/execute.d.ts +3 -1
- package/dist/server-fns/ai/execute.js +4 -1
- package/dist/server-fns/ai/index.d.ts +1 -1
- package/dist/server-fns/analytics/maintenance.d.ts +6 -2
- package/dist/server-fns/analytics/maintenance.js +7 -2
- package/dist/server-fns/analytics/queries.d.ts +18 -6
- package/dist/server-fns/analytics/queries.js +19 -6
- package/dist/server-fns/auth/current-user.d.ts +1 -0
- package/dist/server-fns/auth/current-user.js +5 -2
- package/dist/server-fns/auth/renew.d.ts +13 -0
- package/dist/server-fns/auth/renew.js +45 -0
- package/dist/server-fns/auth/sign-in.d.ts +2 -1
- package/dist/server-fns/auth/sign-in.js +88 -17
- package/dist/server-fns/auth/sign-out.d.ts +3 -1
- package/dist/server-fns/auth/sign-out.js +38 -6
- package/dist/server-fns/collections/audit.d.ts +3 -1
- package/dist/server-fns/collections/audit.js +4 -1
- package/dist/server-fns/collections/copy-to-locale.d.ts +10 -1
- package/dist/server-fns/collections/copy-to-locale.js +5 -2
- package/dist/server-fns/collections/create.d.ts +10 -1
- package/dist/server-fns/collections/create.js +5 -2
- package/dist/server-fns/collections/delete-locale.d.ts +10 -1
- package/dist/server-fns/collections/delete-locale.js +5 -2
- package/dist/server-fns/collections/delete.d.ts +10 -1
- package/dist/server-fns/collections/delete.js +5 -2
- package/dist/server-fns/collections/duplicate.d.ts +10 -1
- package/dist/server-fns/collections/duplicate.js +5 -2
- package/dist/server-fns/collections/get.d.ts +7 -0
- package/dist/server-fns/collections/get.js +8 -3
- package/dist/server-fns/collections/history.d.ts +3 -1
- package/dist/server-fns/collections/history.js +4 -1
- package/dist/server-fns/collections/index.d.ts +21 -21
- package/dist/server-fns/collections/list.d.ts +10 -1
- package/dist/server-fns/collections/list.js +5 -2
- package/dist/server-fns/collections/reindex.d.ts +3 -1
- package/dist/server-fns/collections/reindex.js +4 -1
- package/dist/server-fns/collections/reorder.d.ts +10 -1
- package/dist/server-fns/collections/reorder.js +5 -2
- package/dist/server-fns/collections/restore-version.d.ts +10 -1
- package/dist/server-fns/collections/restore-version.js +5 -2
- package/dist/server-fns/collections/scheduled-publication.d.ts +22 -5
- package/dist/server-fns/collections/scheduled-publication.js +17 -6
- package/dist/server-fns/collections/set-list-view-preference.d.ts +3 -1
- package/dist/server-fns/collections/set-list-view-preference.js +4 -1
- package/dist/server-fns/collections/stats.js +4 -1
- package/dist/server-fns/collections/status.d.ts +13 -2
- package/dist/server-fns/collections/status.js +8 -3
- package/dist/server-fns/collections/tree.d.ts +22 -5
- package/dist/server-fns/collections/tree.js +17 -6
- package/dist/server-fns/collections/update.d.ts +13 -2
- package/dist/server-fns/collections/update.js +8 -3
- package/dist/server-fns/collections/upload.d.ts +10 -1
- package/dist/server-fns/collections/upload.js +4 -1
- package/dist/server-fns/i18n/set-locale.d.ts +3 -1
- package/dist/server-fns/i18n/set-locale.js +18 -3
- package/dist/server-fns/preview/disable.d.ts +3 -1
- package/dist/server-fns/preview/disable.js +4 -1
- package/dist/server-fns/preview/enable.d.ts +3 -1
- package/dist/server-fns/preview/enable.js +4 -1
- package/dist/server-fns/singletons/cancel-scheduled-publish.d.ts +10 -1
- package/dist/server-fns/singletons/cancel-scheduled-publish.js +5 -2
- package/dist/server-fns/singletons/change-status.d.ts +10 -1
- package/dist/server-fns/singletons/change-status.js +5 -2
- package/dist/server-fns/singletons/confirm-scheduled-publish.d.ts +10 -1
- package/dist/server-fns/singletons/confirm-scheduled-publish.js +5 -2
- package/dist/server-fns/singletons/copy-to-locale.d.ts +10 -1
- package/dist/server-fns/singletons/copy-to-locale.js +5 -2
- package/dist/server-fns/singletons/find-by-version.d.ts +3 -1
- package/dist/server-fns/singletons/find-by-version.js +4 -1
- package/dist/server-fns/singletons/get-scheduled-publish.d.ts +3 -1
- package/dist/server-fns/singletons/get-scheduled-publish.js +4 -1
- package/dist/server-fns/singletons/get.d.ts +3 -1
- package/dist/server-fns/singletons/get.js +4 -1
- package/dist/server-fns/singletons/history.d.ts +3 -1
- package/dist/server-fns/singletons/history.js +4 -1
- package/dist/server-fns/singletons/restore-version.d.ts +10 -1
- package/dist/server-fns/singletons/restore-version.js +5 -2
- package/dist/server-fns/singletons/schedule-publish.d.ts +10 -1
- package/dist/server-fns/singletons/schedule-publish.js +5 -2
- package/dist/server-fns/singletons/unpublish.d.ts +10 -1
- package/dist/server-fns/singletons/unpublish.js +5 -2
- package/dist/server-fns/singletons/update.d.ts +10 -1
- package/dist/server-fns/singletons/update.js +5 -2
- package/package.json +19 -19
- package/src/admin-shell/chrome/admin-app-bar.tsx +11 -6
- package/src/admin-shell/chrome/session-change-boundary.test.tsx +78 -0
- package/src/admin-shell/chrome/session-change-boundary.tsx +94 -0
- package/src/admin-shell/chrome/sign-in-page.tsx +68 -3
- package/src/integrations/byline-admin-services.ts +7 -1
- package/src/integrations/client-ip.test.node.ts +45 -0
- package/src/integrations/client-ip.ts +54 -0
- package/src/integrations/framework-fetch-shape.test.node.ts +56 -0
- package/src/integrations/session-client.test.node.ts +121 -0
- package/src/integrations/session-coordination.test.node.ts +77 -0
- package/src/integrations/session-coordination.ts +96 -0
- package/src/integrations/session-middleware.test.node.ts +87 -0
- package/src/integrations/session-middleware.ts +107 -0
- package/src/integrations/session-request-kind.ts +18 -0
- package/src/integrations/session-request-middleware.ts +17 -0
- package/src/integrations/sign-in-body.test.node.ts +59 -0
- package/src/integrations/sign-in-body.ts +50 -0
- package/src/integrations/sign-in-middleware.ts +24 -0
- package/src/routes/create-admin-layout-route.tsx +48 -30
- package/src/routes/create-sign-in-route.tsx +10 -2
- package/src/server-fns/admin-account/change-password.test.node.ts +69 -0
- package/src/server-fns/admin-account/change-password.ts +13 -2
- package/src/server-fns/admin-account/get.ts +2 -0
- package/src/server-fns/admin-account/update.ts +2 -0
- package/src/server-fns/admin-activity/get.ts +2 -0
- package/src/server-fns/admin-permissions/get-role-abilities.ts +2 -0
- package/src/server-fns/admin-permissions/list-registered.ts +5 -4
- package/src/server-fns/admin-permissions/set-role-abilities.ts +2 -0
- package/src/server-fns/admin-permissions/who-has.ts +2 -0
- package/src/server-fns/admin-roles/create.ts +2 -0
- package/src/server-fns/admin-roles/delete.ts +2 -0
- package/src/server-fns/admin-roles/get.ts +2 -0
- package/src/server-fns/admin-roles/list.ts +5 -4
- package/src/server-fns/admin-roles/reorder.ts +2 -0
- package/src/server-fns/admin-roles/update.ts +2 -0
- package/src/server-fns/admin-users/create.ts +2 -0
- package/src/server-fns/admin-users/delete.ts +2 -0
- package/src/server-fns/admin-users/disable.ts +2 -0
- package/src/server-fns/admin-users/enable.ts +2 -0
- package/src/server-fns/admin-users/get-user-roles.ts +2 -0
- package/src/server-fns/admin-users/get.ts +2 -0
- package/src/server-fns/admin-users/list.ts +2 -0
- package/src/server-fns/admin-users/set-password.ts +2 -0
- package/src/server-fns/admin-users/set-user-roles.ts +2 -0
- package/src/server-fns/admin-users/update.ts +2 -0
- package/src/server-fns/ai/execute.ts +3 -0
- package/src/server-fns/analytics/maintenance.ts +4 -0
- package/src/server-fns/analytics/queries.ts +14 -8
- package/src/server-fns/auth/current-user.ts +7 -3
- package/src/server-fns/auth/renew.test.node.ts +85 -0
- package/src/server-fns/auth/renew.ts +54 -0
- package/src/server-fns/auth/sign-in.test.node.ts +114 -0
- package/src/server-fns/auth/sign-in.ts +80 -27
- package/src/server-fns/auth/sign-out.test.node.ts +85 -0
- package/src/server-fns/auth/sign-out.ts +44 -19
- package/src/server-fns/collections/audit.ts +2 -0
- package/src/server-fns/collections/copy-to-locale.ts +3 -1
- package/src/server-fns/collections/create.ts +3 -1
- package/src/server-fns/collections/delete-locale.ts +3 -1
- package/src/server-fns/collections/delete.ts +3 -1
- package/src/server-fns/collections/duplicate.ts +3 -1
- package/src/server-fns/collections/get.ts +4 -1
- package/src/server-fns/collections/history.ts +2 -0
- package/src/server-fns/collections/list.ts +3 -1
- package/src/server-fns/collections/reindex.ts +2 -0
- package/src/server-fns/collections/reorder.ts +3 -1
- package/src/server-fns/collections/restore-version.ts +3 -1
- package/src/server-fns/collections/revision-input.test.node.ts +14 -0
- package/src/server-fns/collections/scheduled-publication.ts +14 -7
- package/src/server-fns/collections/set-list-view-preference.ts +2 -0
- package/src/server-fns/collections/stats.ts +2 -0
- package/src/server-fns/collections/status.ts +4 -1
- package/src/server-fns/collections/tree.ts +7 -1
- package/src/server-fns/collections/update.ts +4 -1
- package/src/server-fns/collections/upload-singleton.test.node.ts +8 -1
- package/src/server-fns/collections/upload.ts +10 -0
- package/src/server-fns/i18n/set-locale.ts +19 -3
- package/src/server-fns/preview/disable.ts +8 -4
- package/src/server-fns/preview/enable.ts +9 -5
- package/src/server-fns/singletons/cancel-scheduled-publish.ts +3 -1
- package/src/server-fns/singletons/change-status.ts +3 -1
- package/src/server-fns/singletons/confirm-scheduled-publish.ts +3 -1
- package/src/server-fns/singletons/copy-to-locale.ts +3 -1
- package/src/server-fns/singletons/find-by-version.ts +2 -0
- package/src/server-fns/singletons/get-scheduled-publish.ts +2 -0
- package/src/server-fns/singletons/get.ts +2 -0
- package/src/server-fns/singletons/history.ts +2 -0
- package/src/server-fns/singletons/restore-version.ts +3 -1
- package/src/server-fns/singletons/schedule-publish.ts +3 -1
- package/src/server-fns/singletons/singletons.test.node.ts +6 -0
- package/src/server-fns/singletons/unpublish.ts +3 -1
- package/src/server-fns/singletons/update.ts +3 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const SIGN_IN_MAX_BODY_BYTES = 16384;
|
|
2
|
+
const checked = new WeakSet();
|
|
3
|
+
function wasSignInBodyChecked(request) {
|
|
4
|
+
return checked.has(request);
|
|
5
|
+
}
|
|
6
|
+
async function checkSignInBody(request) {
|
|
7
|
+
if ('POST' !== request.method) return new Response('Method not allowed', {
|
|
8
|
+
status: 405,
|
|
9
|
+
headers: {
|
|
10
|
+
Allow: 'POST'
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
if (!request.headers.get('content-type')?.toLowerCase().startsWith('application/json')) return new Response('Expected JSON', {
|
|
14
|
+
status: 415
|
|
15
|
+
});
|
|
16
|
+
const declared = request.headers.get('content-length');
|
|
17
|
+
if (null !== declared && (!/^\d+$/.test(declared) || Number(declared) > SIGN_IN_MAX_BODY_BYTES)) return new Response('Payload too large', {
|
|
18
|
+
status: 413
|
|
19
|
+
});
|
|
20
|
+
const reader = request.clone().body?.getReader();
|
|
21
|
+
if (!reader) return new Response('Missing body', {
|
|
22
|
+
status: 400
|
|
23
|
+
});
|
|
24
|
+
let timer;
|
|
25
|
+
const deadline = new Promise((_, reject)=>{
|
|
26
|
+
timer = setTimeout(()=>reject(new Error('Body timeout')), 5000);
|
|
27
|
+
});
|
|
28
|
+
try {
|
|
29
|
+
let size = 0;
|
|
30
|
+
while(true){
|
|
31
|
+
const { value, done } = await Promise.race([
|
|
32
|
+
reader.read(),
|
|
33
|
+
deadline
|
|
34
|
+
]);
|
|
35
|
+
if (done) break;
|
|
36
|
+
size += value.byteLength;
|
|
37
|
+
if (size > SIGN_IN_MAX_BODY_BYTES) return new Response('Payload too large', {
|
|
38
|
+
status: 413
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
checked.add(request);
|
|
42
|
+
return;
|
|
43
|
+
} catch {
|
|
44
|
+
return new Response('Incomplete request body', {
|
|
45
|
+
status: 408
|
|
46
|
+
});
|
|
47
|
+
} finally{
|
|
48
|
+
clearTimeout(timer);
|
|
49
|
+
reader.cancel().catch(()=>{});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export { SIGN_IN_MAX_BODY_BYTES, checkSignInBody, wasSignInBodyChecked };
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
/** Register after CSRF in Start's global requestMiddleware, before RPC deserialization. */
|
|
9
|
+
export declare const passwordSignInMiddleware: import("@tanstack/react-start").RequestMiddlewareAfterServer<{}, undefined, undefined>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createMiddleware } from "@tanstack/react-start";
|
|
2
|
+
import { adminSignIn } from "../server-fns/auth/sign-in.js";
|
|
3
|
+
import { checkSignInBody } from "./sign-in-body.js";
|
|
4
|
+
const passwordSignInMiddleware = createMiddleware().server(async (ctx)=>{
|
|
5
|
+
const endpoint = new URL(adminSignIn.url, ctx.request.url).pathname.replace(/\/$/, '');
|
|
6
|
+
if ('serverFn' !== ctx.handlerType || ctx.pathname !== endpoint && !ctx.pathname.startsWith(`${endpoint}/`)) return ctx.next();
|
|
7
|
+
const rejected = await checkSignInBody(ctx.request);
|
|
8
|
+
return rejected ?? ctx.next();
|
|
9
|
+
});
|
|
10
|
+
export { passwordSignInMiddleware };
|
|
@@ -14,10 +14,12 @@ import { AdminMenuProvider } from "../admin-shell/chrome/admin-menu-provider.js"
|
|
|
14
14
|
import { Content } from "../admin-shell/chrome/content.js";
|
|
15
15
|
import { RouteError, RouteNotFound } from "../admin-shell/chrome/route-error.js";
|
|
16
16
|
import { RouteProgressBar } from "../admin-shell/chrome/route-progress-bar.js";
|
|
17
|
+
import { SessionChangeBoundary } from "../admin-shell/chrome/session-change-boundary.js";
|
|
17
18
|
import { buildLocaleDefinitions } from "../i18n/locale-definitions.js";
|
|
18
19
|
import { bylineAdminServices } from "../integrations/byline-admin-services.js";
|
|
19
20
|
import { BylineAiAdminProvider } from "../integrations/byline-ai.js";
|
|
20
21
|
import { bylineFieldServices } from "../integrations/byline-field-services.js";
|
|
22
|
+
import { observeSession, sessionIsChanged } from "../integrations/session-coordination.js";
|
|
21
23
|
import { getAnalyticsRuntime } from "../server-fns/analytics/index.js";
|
|
22
24
|
import { getCurrentAdminUser } from "../server-fns/auth/index.js";
|
|
23
25
|
import { getScheduledPublicationRuntime } from "../server-fns/collections/index.js";
|
|
@@ -29,6 +31,7 @@ function createAdminLayoutRoute(path) {
|
|
|
29
31
|
const signInPath = getSignInRoutePath();
|
|
30
32
|
try {
|
|
31
33
|
const user = await getCurrentAdminUser();
|
|
34
|
+
if ("u" > typeof window) observeSession(user.sessionId);
|
|
32
35
|
const [activeLocale, scheduledPublicationRuntime, analyticsRuntime] = await Promise.all([
|
|
33
36
|
getActiveLocaleFn(),
|
|
34
37
|
getScheduledPublicationRuntime(),
|
|
@@ -40,7 +43,16 @@ function createAdminLayoutRoute(path) {
|
|
|
40
43
|
scheduledPublicationRuntime,
|
|
41
44
|
analyticsRuntime
|
|
42
45
|
};
|
|
43
|
-
} catch
|
|
46
|
+
} catch (error) {
|
|
47
|
+
const code = error?.code;
|
|
48
|
+
if (!("u" > typeof window && sessionIsChanged()) && ![
|
|
49
|
+
'ERR_UNAUTHENTICATED',
|
|
50
|
+
'ERR_ACCESS_EXPIRED',
|
|
51
|
+
'ERR_INVALID_TOKEN',
|
|
52
|
+
'ERR_REVOKED_TOKEN',
|
|
53
|
+
'ERR_ACCOUNT_DISABLED',
|
|
54
|
+
'ERR_SESSION_CHANGED'
|
|
55
|
+
].includes(code ?? '')) throw error;
|
|
44
56
|
throw redirect({
|
|
45
57
|
to: signInPath,
|
|
46
58
|
search: {
|
|
@@ -64,36 +76,39 @@ function createAdminLayoutRoute(path) {
|
|
|
64
76
|
});
|
|
65
77
|
window.location.reload();
|
|
66
78
|
};
|
|
67
|
-
return /*#__PURE__*/ jsx(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
children: /*#__PURE__*/ jsx(
|
|
76
|
-
services:
|
|
77
|
-
children: /*#__PURE__*/ jsx(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
79
|
+
return /*#__PURE__*/ jsx(SessionChangeBoundary, {
|
|
80
|
+
user: user,
|
|
81
|
+
children: /*#__PURE__*/ jsx(I18nProvider, {
|
|
82
|
+
bundle: i18n.translations ?? {},
|
|
83
|
+
activeLocale: activeLocale,
|
|
84
|
+
defaultLocale: i18n.admin.defaultLocale,
|
|
85
|
+
localeDefinitions: localeDefinitions,
|
|
86
|
+
setLocale: handleSetLocale,
|
|
87
|
+
children: /*#__PURE__*/ jsx(BylineAdminServicesProvider, {
|
|
88
|
+
services: bylineAdminServices,
|
|
89
|
+
children: /*#__PURE__*/ jsx(BylineFieldServicesProvider, {
|
|
90
|
+
services: bylineFieldServices,
|
|
91
|
+
children: /*#__PURE__*/ jsx(BylineAiAdminProvider, {
|
|
92
|
+
children: /*#__PURE__*/ jsxs(AdminMenuProvider, {
|
|
93
|
+
children: [
|
|
94
|
+
/*#__PURE__*/ jsx(RouteProgressBar, {}),
|
|
95
|
+
/*#__PURE__*/ jsx(AdminAppBar, {
|
|
96
|
+
user: user
|
|
97
|
+
}),
|
|
98
|
+
/*#__PURE__*/ jsxs("main", {
|
|
99
|
+
className: clsx('byline-admin-layout-main', admin_layout_module.main),
|
|
100
|
+
children: [
|
|
101
|
+
/*#__PURE__*/ jsx(AdminMenuDrawer, {
|
|
102
|
+
analyticsEnabled: analyticsRuntime.enabled,
|
|
103
|
+
scheduledPublicationEnabled: scheduledPublicationRuntime.enabled
|
|
104
|
+
}),
|
|
105
|
+
/*#__PURE__*/ jsx(Content, {
|
|
106
|
+
children: /*#__PURE__*/ jsx(Outlet, {})
|
|
107
|
+
})
|
|
108
|
+
]
|
|
109
|
+
})
|
|
110
|
+
]
|
|
111
|
+
})
|
|
97
112
|
})
|
|
98
113
|
})
|
|
99
114
|
})
|
|
@@ -10,7 +10,8 @@ function createSignInRoute(path, { homeUrl } = {}) {
|
|
|
10
10
|
validateSearch: (search)=>{
|
|
11
11
|
const callbackUrl = resolveAdminCallbackPath(search.callbackUrl);
|
|
12
12
|
return {
|
|
13
|
-
callbackUrl
|
|
13
|
+
callbackUrl,
|
|
14
|
+
reauthenticate: '1' === search.reauthenticate || 1 === search.reauthenticate || true === search.reauthenticate
|
|
14
15
|
};
|
|
15
16
|
},
|
|
16
17
|
beforeLoad: async ()=>{
|
|
@@ -20,10 +21,11 @@ function createSignInRoute(path, { homeUrl } = {}) {
|
|
|
20
21
|
};
|
|
21
22
|
},
|
|
22
23
|
component: function() {
|
|
23
|
-
const { callbackUrl } = Route.useSearch();
|
|
24
|
+
const { callbackUrl, reauthenticate } = Route.useSearch();
|
|
24
25
|
const { activeLocale } = Route.useRouteContext();
|
|
25
26
|
return /*#__PURE__*/ jsx(SignInPage, {
|
|
26
27
|
redirectTo: resolveAdminSignInRedirect(callbackUrl),
|
|
28
|
+
reauthenticate: reauthenticate,
|
|
27
29
|
activeLocale: activeLocale,
|
|
28
30
|
homeUrl: resolvedHomeUrl
|
|
29
31
|
});
|
|
@@ -10,7 +10,9 @@ export interface ChangeAccountPasswordInput {
|
|
|
10
10
|
currentPassword: string;
|
|
11
11
|
newPassword: string;
|
|
12
12
|
}
|
|
13
|
-
export declare const changeAccountPassword: import("@tanstack/react-start").RequiredFetcher<
|
|
13
|
+
export declare const changeAccountPassword: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
14
|
+
bylineExpectedSessionId: string | null;
|
|
15
|
+
}, undefined, undefined>], (input: ChangeAccountPasswordInput) => ChangeAccountPasswordInput, Promise<{
|
|
14
16
|
id: string;
|
|
15
17
|
vid: number;
|
|
16
18
|
email: string;
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
2
2
|
import { changeAccountPasswordCommand } from "@byline/admin/admin-account";
|
|
3
|
-
import { getAdminRequestContext } from "@byline/client/server";
|
|
3
|
+
import { clearPreviewCookie, clearSessionCookies, getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const changeAccountPassword = createServerFn({
|
|
6
7
|
method: 'POST'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
|
-
|
|
12
|
+
const account = await changeAccountPasswordCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore
|
|
11
14
|
});
|
|
15
|
+
clearSessionCookies();
|
|
16
|
+
clearPreviewCookie();
|
|
17
|
+
return account;
|
|
12
18
|
});
|
|
13
19
|
export { changeAccountPassword };
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
* status fields that the slim `CurrentAdminUser` on route context
|
|
12
12
|
* doesn't carry.
|
|
13
13
|
*/
|
|
14
|
-
export declare const getAccount: import("@tanstack/react-start").OptionalFetcher<
|
|
14
|
+
export declare const getAccount: import("@tanstack/react-start").OptionalFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
15
|
+
bylineExpectedSessionId: string | null;
|
|
16
|
+
}, undefined, undefined>], (input?: Record<string, never>) => Record<string, never>, Promise<{
|
|
15
17
|
id: string;
|
|
16
18
|
vid: number;
|
|
17
19
|
email: string;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { getAccountCommand } from "@byline/admin/admin-account";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const getAccount = createServerFn({
|
|
6
7
|
method: 'GET'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input ?? {}).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return getAccountCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* actor is the target — none of these accept an `id`.
|
|
15
15
|
*/
|
|
16
16
|
export type { AccountResponse } from '@byline/admin/admin-account';
|
|
17
|
-
export { changeAccountPassword } from './change-password';
|
|
18
|
-
export { getAccount } from './get';
|
|
19
|
-
export { updateAccount } from './update';
|
|
20
|
-
export type { ChangeAccountPasswordInput } from './change-password';
|
|
21
|
-
export type { UpdateAccountInput } from './update';
|
|
17
|
+
export { changeAccountPassword } from './change-password.js';
|
|
18
|
+
export { getAccount } from './get.js';
|
|
19
|
+
export { updateAccount } from './update.js';
|
|
20
|
+
export type { ChangeAccountPasswordInput } from './change-password.js';
|
|
21
|
+
export type { UpdateAccountInput } from './update.js';
|
|
@@ -14,7 +14,9 @@ export interface UpdateAccountInput {
|
|
|
14
14
|
username?: string | null;
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
export declare const updateAccount: import("@tanstack/react-start").RequiredFetcher<
|
|
17
|
+
export declare const updateAccount: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
18
|
+
bylineExpectedSessionId: string | null;
|
|
19
|
+
}, undefined, undefined>], (input: UpdateAccountInput) => UpdateAccountInput, Promise<{
|
|
18
20
|
id: string;
|
|
19
21
|
vid: number;
|
|
20
22
|
email: string;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { updateAccountCommand } from "@byline/admin/admin-account";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const updateAccount = createServerFn({
|
|
6
7
|
method: 'POST'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return updateAccountCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore
|
|
@@ -47,4 +47,6 @@ export interface SystemActivityResponse {
|
|
|
47
47
|
* queries directly and is gated system-wide by `admin.activity.read` rather
|
|
48
48
|
* than by any document's own read gate.
|
|
49
49
|
*/
|
|
50
|
-
export declare const getSystemActivityLog: import("@tanstack/react-start").RequiredFetcher<
|
|
50
|
+
export declare const getSystemActivityLog: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
51
|
+
bylineExpectedSessionId: string | null;
|
|
52
|
+
}, undefined, undefined>], (input: SystemActivitySearchParams) => SystemActivitySearchParams, Promise<SystemActivityResponse>>;
|
|
@@ -3,10 +3,13 @@ import { assertAdminActor } from "@byline/admin";
|
|
|
3
3
|
import { ADMIN_ACTIVITY_ABILITIES } from "@byline/admin/admin-activity";
|
|
4
4
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
5
5
|
import { ERR_AUDIT_UNSUPPORTED, getLogger, getServerConfig } from "@byline/core";
|
|
6
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
6
7
|
import { resolveActorLabels } from "../collections/actors.js";
|
|
7
8
|
const getSystemActivityLog = createServerFn({
|
|
8
9
|
method: 'GET'
|
|
9
|
-
}).
|
|
10
|
+
}).middleware([
|
|
11
|
+
adminSessionMiddleware
|
|
12
|
+
]).validator((input)=>input ?? {}).handler(async ({ data })=>{
|
|
10
13
|
const context = await getAdminRequestContext();
|
|
11
14
|
assertAdminActor(context, ADMIN_ACTIVITY_ABILITIES.read);
|
|
12
15
|
const queries = getServerConfig().db.queries;
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Infonomic Company Limited
|
|
7
7
|
*/
|
|
8
|
-
export declare const getRoleAbilities: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
8
|
+
export declare const getRoleAbilities: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
9
11
|
id: string;
|
|
10
12
|
}) => {
|
|
11
13
|
id: string;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { getRoleAbilitiesCommand } from "@byline/admin/admin-permissions";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const getRoleAbilities = createServerFn({
|
|
6
7
|
method: 'GET'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return getRoleAbilitiesCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore,
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* mounts on the admin-roles role detail page.
|
|
19
19
|
*/
|
|
20
20
|
export type { AbilityDescriptorResponse, AbilityGroupResponse, AbilityHolderRole, AbilityHolderUser, GetRoleAbilitiesResponse, ListRegisteredAbilitiesResponse, SetRoleAbilitiesResponse, WhoHasAbilityResponse, } from '@byline/admin/admin-permissions';
|
|
21
|
-
export { getRoleAbilities } from './get-role-abilities';
|
|
22
|
-
export { listRegisteredAbilities } from './list-registered';
|
|
23
|
-
export { type SetRoleAbilitiesInput, setRoleAbilities } from './set-role-abilities';
|
|
24
|
-
export { whoHasAbility } from './who-has';
|
|
21
|
+
export { getRoleAbilities } from './get-role-abilities.js';
|
|
22
|
+
export { listRegisteredAbilities } from './list-registered.js';
|
|
23
|
+
export { type SetRoleAbilitiesInput, setRoleAbilities } from './set-role-abilities.js';
|
|
24
|
+
export { whoHasAbility } from './who-has.js';
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
* populated at init time by collection auto-registration plus
|
|
11
11
|
* `registerAdminAbilities`. No DB read.
|
|
12
12
|
*/
|
|
13
|
-
export declare const listRegisteredAbilities: import("@tanstack/react-start").OptionalFetcher<undefined, undefined,
|
|
13
|
+
export declare const listRegisteredAbilities: import("@tanstack/react-start").OptionalFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
14
|
+
bylineExpectedSessionId: string | null;
|
|
15
|
+
}, undefined, undefined>], undefined, Promise<{
|
|
14
16
|
abilities: {
|
|
15
17
|
key: string;
|
|
16
18
|
label: string;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { listRegisteredAbilitiesCommand } from "@byline/admin/admin-permissions";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const listRegisteredAbilities = createServerFn({
|
|
6
7
|
method: 'GET'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).handler(async ()=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return listRegisteredAbilitiesCommand(context, {}, {
|
|
10
13
|
store: bylineCore().adminStore,
|
|
@@ -9,7 +9,9 @@ export interface SetRoleAbilitiesInput {
|
|
|
9
9
|
id: string;
|
|
10
10
|
abilities: string[];
|
|
11
11
|
}
|
|
12
|
-
export declare const setRoleAbilities: import("@tanstack/react-start").RequiredFetcher<
|
|
12
|
+
export declare const setRoleAbilities: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
13
|
+
bylineExpectedSessionId: string | null;
|
|
14
|
+
}, undefined, undefined>], (input: SetRoleAbilitiesInput) => SetRoleAbilitiesInput, Promise<{
|
|
13
15
|
roleId: string;
|
|
14
16
|
abilities: string[];
|
|
15
17
|
}>>;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { setRoleAbilitiesCommand } from "@byline/admin/admin-permissions";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const setRoleAbilities = createServerFn({
|
|
6
7
|
method: 'POST'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return setRoleAbilitiesCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore,
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Infonomic Company Limited
|
|
7
7
|
*/
|
|
8
|
-
export declare const whoHasAbility: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
8
|
+
export declare const whoHasAbility: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
9
11
|
ability: string;
|
|
10
12
|
}) => {
|
|
11
13
|
ability: string;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { whoHasAbilityCommand } from "@byline/admin/admin-permissions";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const whoHasAbility = createServerFn({
|
|
6
7
|
method: 'GET'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return whoHasAbilityCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore,
|
|
@@ -11,7 +11,9 @@ export interface CreateAdminRoleInput {
|
|
|
11
11
|
description?: string | null;
|
|
12
12
|
order?: number;
|
|
13
13
|
}
|
|
14
|
-
export declare const createAdminRole: import("@tanstack/react-start").RequiredFetcher<
|
|
14
|
+
export declare const createAdminRole: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
15
|
+
bylineExpectedSessionId: string | null;
|
|
16
|
+
}, undefined, undefined>], (input: CreateAdminRoleInput) => CreateAdminRoleInput, Promise<{
|
|
15
17
|
id: string;
|
|
16
18
|
vid: number;
|
|
17
19
|
name: string;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { createAdminRoleCommand } from "@byline/admin/admin-roles";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const createAdminRole = createServerFn({
|
|
6
7
|
method: 'POST'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return createAdminRoleCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Infonomic Company Limited
|
|
7
7
|
*/
|
|
8
|
-
export declare const deleteAdminRole: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
8
|
+
export declare const deleteAdminRole: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
9
11
|
id: string;
|
|
10
12
|
vid: number;
|
|
11
13
|
}) => {
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { deleteAdminRoleCommand } from "@byline/admin/admin-roles";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const deleteAdminRole = createServerFn({
|
|
6
7
|
method: 'POST'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return deleteAdminRoleCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Infonomic Company Limited
|
|
7
7
|
*/
|
|
8
|
-
export declare const getAdminRole: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
8
|
+
export declare const getAdminRole: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
9
11
|
id: string;
|
|
10
12
|
}) => {
|
|
11
13
|
id: string;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { getAdminRoleCommand } from "@byline/admin/admin-roles";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const getAdminRole = createServerFn({
|
|
6
7
|
method: 'GET'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return getAdminRoleCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* without reaching across package boundaries.
|
|
15
15
|
*/
|
|
16
16
|
export type { AdminRoleListResponse, AdminRoleResponse } from '@byline/admin/admin-roles';
|
|
17
|
-
export { type CreateAdminRoleInput, createAdminRole } from './create';
|
|
18
|
-
export { deleteAdminRole } from './delete';
|
|
19
|
-
export { getAdminRole } from './get';
|
|
20
|
-
export { listAdminRoles } from './list';
|
|
21
|
-
export { reorderAdminRoles } from './reorder';
|
|
22
|
-
export { type UpdateAdminRoleInput, updateAdminRole } from './update';
|
|
17
|
+
export { type CreateAdminRoleInput, createAdminRole } from './create.js';
|
|
18
|
+
export { deleteAdminRole } from './delete.js';
|
|
19
|
+
export { getAdminRole } from './get.js';
|
|
20
|
+
export { listAdminRoles } from './list.js';
|
|
21
|
+
export { reorderAdminRoles } from './reorder.js';
|
|
22
|
+
export { type UpdateAdminRoleInput, updateAdminRole } from './update.js';
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
* No paging or sorting at this layer; the role set is small by design
|
|
12
12
|
* and ordered by the `order` column.
|
|
13
13
|
*/
|
|
14
|
-
export declare const listAdminRoles: import("@tanstack/react-start").OptionalFetcher<undefined, undefined,
|
|
14
|
+
export declare const listAdminRoles: import("@tanstack/react-start").OptionalFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
15
|
+
bylineExpectedSessionId: string | null;
|
|
16
|
+
}, undefined, undefined>], undefined, Promise<{
|
|
15
17
|
roles: {
|
|
16
18
|
id: string;
|
|
17
19
|
vid: number;
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { listAdminRolesCommand } from "@byline/admin/admin-roles";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const listAdminRoles = createServerFn({
|
|
6
7
|
method: 'GET'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).handler(async ()=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return listAdminRolesCommand(context, {}, {
|
|
10
13
|
store: bylineCore().adminStore
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Infonomic Company Limited
|
|
7
7
|
*/
|
|
8
|
-
export declare const reorderAdminRoles: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
8
|
+
export declare const reorderAdminRoles: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
9
11
|
ids: string[];
|
|
10
12
|
}) => {
|
|
11
13
|
ids: string[];
|
|
@@ -2,9 +2,12 @@ import { createServerFn } from "@tanstack/react-start";
|
|
|
2
2
|
import { reorderAdminRolesCommand } from "@byline/admin/admin-roles";
|
|
3
3
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
4
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
5
6
|
const reorderAdminRoles = createServerFn({
|
|
6
7
|
method: 'POST'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
8
11
|
const context = await getAdminRequestContext();
|
|
9
12
|
return reorderAdminRolesCommand(context, data, {
|
|
10
13
|
store: bylineCore().adminStore
|