@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
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
2
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
2
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
3
|
import { ERR_NOT_FOUND, getLogger, getServerConfig, reorderDocument } from "@byline/core";
|
|
5
4
|
import { ensureCollection } from "../../integrations/api-utils.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
6
|
+
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
6
7
|
const reorderCollectionDocument = createServerFn({
|
|
7
8
|
method: 'POST'
|
|
8
|
-
}).
|
|
9
|
+
}).middleware([
|
|
10
|
+
adminSessionMiddleware
|
|
11
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
|
|
9
12
|
const { collection: path, documentId, beforeDocumentId, afterDocumentId } = input;
|
|
10
13
|
const logger = getLogger();
|
|
11
14
|
const config = await ensureCollection(path);
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
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
|
+
export declare const restoreDocumentVersion: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
2
11
|
expectedRevision: number;
|
|
3
12
|
collection: string;
|
|
4
13
|
id: string;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
2
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
2
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
3
|
import { ERR_NOT_FOUND, getLogger, getServerConfig } from "@byline/core";
|
|
5
4
|
import { restoreDocumentVersion } from "@byline/core/services";
|
|
6
5
|
import { ensureCollection } from "../../integrations/api-utils.js";
|
|
6
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
7
|
+
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
7
8
|
import { toCommittedDocumentHookFailureResponse } from "./save-outcome.js";
|
|
8
9
|
const restore_version_restoreDocumentVersion = createServerFn({
|
|
9
10
|
method: 'POST'
|
|
10
|
-
}).
|
|
11
|
+
}).middleware([
|
|
12
|
+
adminSessionMiddleware
|
|
13
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
|
|
11
14
|
const { collection: path, id, versionId } = input;
|
|
12
15
|
const logger = getLogger();
|
|
13
16
|
const config = await ensureCollection(path);
|
|
@@ -1,3 +1,10 @@
|
|
|
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
|
+
*/
|
|
1
8
|
import type { DocumentPublishScheduleInfo } from '@byline/client';
|
|
2
9
|
import { type DocumentPublishScheduleState, type RecurringTaskHealth } from '@byline/core';
|
|
3
10
|
export interface ScheduledPublicationRuntime {
|
|
@@ -48,8 +55,12 @@ export interface ScheduledPublicationListResponse {
|
|
|
48
55
|
runtime: ScheduledPublicationRuntime;
|
|
49
56
|
}
|
|
50
57
|
/** Authenticated feature discovery for the admin shell and health warning. */
|
|
51
|
-
export declare const getScheduledPublicationRuntime: import("@tanstack/react-start").OptionalFetcher<undefined, undefined,
|
|
52
|
-
|
|
58
|
+
export declare const getScheduledPublicationRuntime: import("@tanstack/react-start").OptionalFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
59
|
+
bylineExpectedSessionId: string | null;
|
|
60
|
+
}, undefined, undefined>], undefined, Promise<ScheduledPublicationRuntime>>;
|
|
61
|
+
export declare const scheduleCollectionDocumentPublish: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
62
|
+
bylineExpectedSessionId: string | null;
|
|
63
|
+
}, undefined, undefined>], (input: {
|
|
53
64
|
expectedRevision: number;
|
|
54
65
|
collection: string;
|
|
55
66
|
id: string;
|
|
@@ -81,7 +92,9 @@ export declare const scheduleCollectionDocumentPublish: import("@tanstack/react-
|
|
|
81
92
|
nextAttemptAt: string;
|
|
82
93
|
revision: number;
|
|
83
94
|
}>>;
|
|
84
|
-
export declare const confirmCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
95
|
+
export declare const confirmCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
96
|
+
bylineExpectedSessionId: string | null;
|
|
97
|
+
}, undefined, undefined>], (input: {
|
|
85
98
|
expectedRevision: number;
|
|
86
99
|
collection: string;
|
|
87
100
|
id: string;
|
|
@@ -111,7 +124,9 @@ export declare const confirmCollectionDocumentScheduledPublish: import("@tanstac
|
|
|
111
124
|
nextAttemptAt: string;
|
|
112
125
|
revision: number;
|
|
113
126
|
}>>;
|
|
114
|
-
export declare const cancelCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
127
|
+
export declare const cancelCollectionDocumentScheduledPublish: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
128
|
+
bylineExpectedSessionId: string | null;
|
|
129
|
+
}, undefined, undefined>], (input: {
|
|
115
130
|
expectedRevision: number;
|
|
116
131
|
collection: string;
|
|
117
132
|
id: string;
|
|
@@ -128,7 +143,9 @@ export declare const cancelCollectionDocumentScheduledPublish: import("@tanstack
|
|
|
128
143
|
schedule: SerializedDocumentPublishSchedule;
|
|
129
144
|
revision: number;
|
|
130
145
|
}>>;
|
|
131
|
-
export declare const listScheduledPublications: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
146
|
+
export declare const listScheduledPublications: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
147
|
+
bylineExpectedSessionId: string | null;
|
|
148
|
+
}, undefined, undefined>], (input: {
|
|
132
149
|
states?: readonly DocumentPublishScheduleState[];
|
|
133
150
|
lastAuthorizedBy?: string;
|
|
134
151
|
page?: number;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
2
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
2
|
import { getAdminBylineClient, getAdminRequestContext } from "@byline/client/server";
|
|
4
3
|
import { ERR_NOT_FOUND, ERR_VALIDATION, isSingleton } from "@byline/core";
|
|
5
4
|
import { listDocumentPublishSchedules } from "@byline/core/services";
|
|
6
5
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
6
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
7
|
+
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
7
8
|
import { omitScheduleExecutionState } from "./scheduled-publication-response.js";
|
|
8
9
|
import { serialise } from "./utils.js";
|
|
9
10
|
const TASK_NAME = 'documents.publish-scheduled';
|
|
@@ -53,13 +54,17 @@ async function scheduledPublicationRuntime() {
|
|
|
53
54
|
}
|
|
54
55
|
const getScheduledPublicationRuntime = createServerFn({
|
|
55
56
|
method: 'GET'
|
|
56
|
-
}).
|
|
57
|
+
}).middleware([
|
|
58
|
+
adminSessionMiddleware
|
|
59
|
+
]).handler(withDocumentMutationErrors(async ()=>{
|
|
57
60
|
await getAdminRequestContext();
|
|
58
61
|
return scheduledPublicationRuntime();
|
|
59
62
|
}));
|
|
60
63
|
const scheduleCollectionDocumentPublish = createServerFn({
|
|
61
64
|
method: 'POST'
|
|
62
|
-
}).
|
|
65
|
+
}).middleware([
|
|
66
|
+
adminSessionMiddleware
|
|
67
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
63
68
|
assertFeatureEnabled();
|
|
64
69
|
const schedule = await getAdminBylineClient().collection(data.collection).schedulePublish(data.id, {
|
|
65
70
|
publishAt: data.publishAt,
|
|
@@ -73,7 +78,9 @@ const scheduleCollectionDocumentPublish = createServerFn({
|
|
|
73
78
|
}));
|
|
74
79
|
const confirmCollectionDocumentScheduledPublish = createServerFn({
|
|
75
80
|
method: 'POST'
|
|
76
|
-
}).
|
|
81
|
+
}).middleware([
|
|
82
|
+
adminSessionMiddleware
|
|
83
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
77
84
|
assertFeatureEnabled();
|
|
78
85
|
const schedule = await getAdminBylineClient().collection(data.collection).confirmScheduledPublish(data.id, {
|
|
79
86
|
expectedRevision: data.expectedRevision,
|
|
@@ -86,7 +93,9 @@ const confirmCollectionDocumentScheduledPublish = createServerFn({
|
|
|
86
93
|
}));
|
|
87
94
|
const cancelCollectionDocumentScheduledPublish = createServerFn({
|
|
88
95
|
method: 'POST'
|
|
89
|
-
}).
|
|
96
|
+
}).middleware([
|
|
97
|
+
adminSessionMiddleware
|
|
98
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
90
99
|
assertFeatureEnabled();
|
|
91
100
|
const schedule = await getAdminBylineClient().collection(data.collection).cancelScheduledPublish(data.id, {
|
|
92
101
|
expectedRevision: data.expectedRevision
|
|
@@ -102,7 +111,9 @@ const cancelCollectionDocumentScheduledPublish = createServerFn({
|
|
|
102
111
|
}));
|
|
103
112
|
const listScheduledPublications = createServerFn({
|
|
104
113
|
method: 'GET'
|
|
105
|
-
}).
|
|
114
|
+
}).middleware([
|
|
115
|
+
adminSessionMiddleware
|
|
116
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
106
117
|
assertFeatureEnabled();
|
|
107
118
|
if (data.states?.some((state)=>'armed' !== state && 'needs_reconfirm' !== state) === true) throw ERR_VALIDATION({
|
|
108
119
|
message: 'state must be armed or needs_reconfirm'
|
|
@@ -13,6 +13,8 @@ export interface SetListViewPreferenceInput {
|
|
|
13
13
|
desc?: boolean;
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
export declare const setListViewPreference: import("@tanstack/react-start").RequiredFetcher<
|
|
16
|
+
export declare const setListViewPreference: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
17
|
+
bylineExpectedSessionId: string | null;
|
|
18
|
+
}, undefined, undefined>], (input: SetListViewPreferenceInput) => SetListViewPreferenceInput, Promise<{
|
|
17
19
|
ok: true;
|
|
18
20
|
}>>;
|
|
@@ -4,9 +4,12 @@ import { getAdminRequestContext } from "@byline/client/server";
|
|
|
4
4
|
import { ERR_NOT_FOUND, getLogger } from "@byline/core";
|
|
5
5
|
import { ensureCollection } from "../../integrations/api-utils.js";
|
|
6
6
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
7
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
7
8
|
const setListViewPreference = createServerFn({
|
|
8
9
|
method: 'POST'
|
|
9
|
-
}).
|
|
10
|
+
}).middleware([
|
|
11
|
+
adminSessionMiddleware
|
|
12
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
10
13
|
const config = await ensureCollection(data.collection);
|
|
11
14
|
if (!config) throw ERR_NOT_FOUND({
|
|
12
15
|
message: 'Collection not found',
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
2
2
|
import { getAdminBylineClient } from "@byline/client/server";
|
|
3
3
|
import { ensureCollection } from "../../integrations/api-utils.js";
|
|
4
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
4
5
|
const getCollectionStatsFn = createServerFn({
|
|
5
6
|
method: 'GET'
|
|
6
|
-
}).
|
|
7
|
+
}).middleware([
|
|
8
|
+
adminSessionMiddleware
|
|
9
|
+
]).validator((input)=>input).handler(async ({ data })=>{
|
|
7
10
|
const config = await ensureCollection(data.collection);
|
|
8
11
|
if (!config) return {
|
|
9
12
|
stats: []
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
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
|
+
export declare const updateDocumentStatus: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
2
11
|
expectedRevision: number;
|
|
3
12
|
collection: string;
|
|
4
13
|
id: string;
|
|
@@ -15,7 +24,9 @@ export declare const updateDocumentStatus: import("@tanstack/react-start").Requi
|
|
|
15
24
|
previousStatus: string;
|
|
16
25
|
newStatus: string;
|
|
17
26
|
}>>;
|
|
18
|
-
export declare const unpublishDocument: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
27
|
+
export declare const unpublishDocument: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
28
|
+
bylineExpectedSessionId: string | null;
|
|
29
|
+
}, undefined, undefined>], (input: {
|
|
19
30
|
expectedRevision: number;
|
|
20
31
|
collection: string;
|
|
21
32
|
id: string;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
2
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
2
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
3
|
import { ERR_NOT_FOUND, getLogger, getServerConfig } from "@byline/core";
|
|
5
4
|
import { changeDocumentStatus, unpublishDocument } from "@byline/core/services";
|
|
6
5
|
import { ensureCollection } from "../../integrations/api-utils.js";
|
|
6
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
7
|
+
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
7
8
|
const updateDocumentStatus = createServerFn({
|
|
8
9
|
method: 'POST'
|
|
9
|
-
}).
|
|
10
|
+
}).middleware([
|
|
11
|
+
adminSessionMiddleware
|
|
12
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
|
|
10
13
|
const { collection: path, id, status: nextStatus } = input;
|
|
11
14
|
const logger = getLogger();
|
|
12
15
|
const config = await ensureCollection(path);
|
|
@@ -43,7 +46,9 @@ const updateDocumentStatus = createServerFn({
|
|
|
43
46
|
}));
|
|
44
47
|
const status_unpublishDocument = createServerFn({
|
|
45
48
|
method: 'POST'
|
|
46
|
-
}).
|
|
49
|
+
}).middleware([
|
|
50
|
+
adminSessionMiddleware
|
|
51
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
|
|
47
52
|
const { collection: path, id } = input;
|
|
48
53
|
const logger = getLogger();
|
|
49
54
|
const config = await ensureCollection(path);
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
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
|
+
export declare const placeTreeNode: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
2
11
|
expectedRevision: number;
|
|
3
12
|
collection: string;
|
|
4
13
|
documentId: string;
|
|
@@ -22,7 +31,9 @@ export declare const placeTreeNode: import("@tanstack/react-start").RequiredFetc
|
|
|
22
31
|
orderKey: string;
|
|
23
32
|
status: 'ok';
|
|
24
33
|
}>>;
|
|
25
|
-
export declare const removeFromTree: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
34
|
+
export declare const removeFromTree: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
35
|
+
bylineExpectedSessionId: string | null;
|
|
36
|
+
}, undefined, undefined>], (input: {
|
|
26
37
|
expectedRevision: number;
|
|
27
38
|
collection: string;
|
|
28
39
|
documentId: string;
|
|
@@ -39,7 +50,9 @@ export declare const removeFromTree: import("@tanstack/react-start").RequiredFet
|
|
|
39
50
|
scheduledPublicationsNeedReconfirmation: boolean;
|
|
40
51
|
status: 'ok';
|
|
41
52
|
}>>;
|
|
42
|
-
export declare const getTreeAncestors: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
53
|
+
export declare const getTreeAncestors: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
54
|
+
bylineExpectedSessionId: string | null;
|
|
55
|
+
}, undefined, undefined>], (input: {
|
|
43
56
|
collection: string;
|
|
44
57
|
documentId: string;
|
|
45
58
|
}) => {
|
|
@@ -50,7 +63,9 @@ export declare const getTreeAncestors: import("@tanstack/react-start").RequiredF
|
|
|
50
63
|
title: string;
|
|
51
64
|
path: string;
|
|
52
65
|
}[]>>;
|
|
53
|
-
export declare const getTreeParent: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
66
|
+
export declare const getTreeParent: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
67
|
+
bylineExpectedSessionId: string | null;
|
|
68
|
+
}, undefined, undefined>], (input: {
|
|
54
69
|
collection: string;
|
|
55
70
|
documentId: string;
|
|
56
71
|
}) => {
|
|
@@ -71,7 +86,9 @@ export interface CollectionTreeRow {
|
|
|
71
86
|
updatedAt: Date;
|
|
72
87
|
fields: Record<string, any>;
|
|
73
88
|
}
|
|
74
|
-
export declare const getCollectionTree: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
89
|
+
export declare const getCollectionTree: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
90
|
+
bylineExpectedSessionId: string | null;
|
|
91
|
+
}, undefined, undefined>], (input: {
|
|
75
92
|
collection: string;
|
|
76
93
|
locale?: string;
|
|
77
94
|
}) => {
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
2
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
2
|
import { getAdminBylineClient } from "@byline/client/server";
|
|
4
3
|
import { ERR_NOT_FOUND, createReadContext, getLogger } from "@byline/core";
|
|
5
4
|
import { ensureCollection } from "../../integrations/api-utils.js";
|
|
5
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
6
|
+
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
6
7
|
import { placeAdminTreeNode, removeAdminTreeNode } from "./tree-mutation.js";
|
|
7
8
|
import { getAdminTreeParent } from "./tree-read.js";
|
|
8
9
|
const placeTreeNode = createServerFn({
|
|
9
10
|
method: 'POST'
|
|
10
|
-
}).
|
|
11
|
+
}).middleware([
|
|
12
|
+
adminSessionMiddleware
|
|
13
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
11
14
|
const { collection: path, documentId } = data;
|
|
12
15
|
const config = await ensureCollection(path);
|
|
13
16
|
if (!config) throw ERR_NOT_FOUND({
|
|
@@ -31,7 +34,9 @@ const placeTreeNode = createServerFn({
|
|
|
31
34
|
}));
|
|
32
35
|
const removeFromTree = createServerFn({
|
|
33
36
|
method: 'POST'
|
|
34
|
-
}).
|
|
37
|
+
}).middleware([
|
|
38
|
+
adminSessionMiddleware
|
|
39
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
35
40
|
const { collection: path, documentId } = data;
|
|
36
41
|
const config = await ensureCollection(path);
|
|
37
42
|
if (!config) throw ERR_NOT_FOUND({
|
|
@@ -51,7 +56,9 @@ const removeFromTree = createServerFn({
|
|
|
51
56
|
}));
|
|
52
57
|
const getTreeAncestors = createServerFn({
|
|
53
58
|
method: 'GET'
|
|
54
|
-
}).
|
|
59
|
+
}).middleware([
|
|
60
|
+
adminSessionMiddleware
|
|
61
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
55
62
|
const { collection: path, documentId } = data;
|
|
56
63
|
const config = await ensureCollection(path);
|
|
57
64
|
if (!config) throw ERR_NOT_FOUND({
|
|
@@ -76,7 +83,9 @@ const getTreeAncestors = createServerFn({
|
|
|
76
83
|
}));
|
|
77
84
|
const getTreeParent = createServerFn({
|
|
78
85
|
method: 'GET'
|
|
79
|
-
}).
|
|
86
|
+
}).middleware([
|
|
87
|
+
adminSessionMiddleware
|
|
88
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
80
89
|
const { collection: path, documentId } = data;
|
|
81
90
|
const config = await ensureCollection(path);
|
|
82
91
|
if (!config) throw ERR_NOT_FOUND({
|
|
@@ -89,7 +98,9 @@ const getTreeParent = createServerFn({
|
|
|
89
98
|
}));
|
|
90
99
|
const getCollectionTree = createServerFn({
|
|
91
100
|
method: 'GET'
|
|
92
|
-
}).
|
|
101
|
+
}).middleware([
|
|
102
|
+
adminSessionMiddleware
|
|
103
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
93
104
|
const { collection: path } = data;
|
|
94
105
|
const config = await ensureCollection(path);
|
|
95
106
|
if (!config) throw ERR_NOT_FOUND({
|
|
@@ -1,5 +1,14 @@
|
|
|
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
|
+
*/
|
|
1
8
|
import type { DocumentPatch } from '@byline/core/patches';
|
|
2
|
-
export declare const updateCollectionDocumentWithPatches: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
9
|
+
export declare const updateCollectionDocumentWithPatches: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
10
|
+
bylineExpectedSessionId: string | null;
|
|
11
|
+
}, undefined, undefined>], (input: {
|
|
3
12
|
collection: string;
|
|
4
13
|
id: string;
|
|
5
14
|
patches: DocumentPatch[];
|
|
@@ -21,7 +30,9 @@ export declare const updateCollectionDocumentWithPatches: import("@tanstack/reac
|
|
|
21
30
|
documentVersionId?: string | undefined;
|
|
22
31
|
revision: number;
|
|
23
32
|
}>>;
|
|
24
|
-
export declare const updateCollectionDocumentSystemFields: import("@tanstack/react-start").RequiredFetcher<undefined,
|
|
33
|
+
export declare const updateCollectionDocumentSystemFields: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
34
|
+
bylineExpectedSessionId: string | null;
|
|
35
|
+
}, undefined, undefined>], (input: {
|
|
25
36
|
collection: string;
|
|
26
37
|
id: string;
|
|
27
38
|
expectedRevision: number;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
2
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
2
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
4
3
|
import { ERR_NOT_FOUND, getLogger, getServerConfig } from "@byline/core";
|
|
5
4
|
import { saveDocument, updateDocumentSystemFields } from "@byline/core/services";
|
|
6
5
|
import { ensureCollection } from "../../integrations/api-utils.js";
|
|
6
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
7
|
+
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
7
8
|
import { toCommittedDocumentHookFailureResponse } from "./save-outcome.js";
|
|
8
9
|
const updateCollectionDocumentWithPatches = createServerFn({
|
|
9
10
|
method: 'POST'
|
|
10
|
-
}).
|
|
11
|
+
}).middleware([
|
|
12
|
+
adminSessionMiddleware
|
|
13
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
|
|
11
14
|
const { collection: path, id, patches, expectedRevision, locale, path: explicitPath, availableLocales } = input;
|
|
12
15
|
const logger = getLogger();
|
|
13
16
|
const config = await ensureCollection(path);
|
|
@@ -55,7 +58,9 @@ const updateCollectionDocumentWithPatches = createServerFn({
|
|
|
55
58
|
}));
|
|
56
59
|
const updateCollectionDocumentSystemFields = createServerFn({
|
|
57
60
|
method: 'POST'
|
|
58
|
-
}).
|
|
61
|
+
}).middleware([
|
|
62
|
+
adminSessionMiddleware
|
|
63
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data: input })=>{
|
|
59
64
|
const { collection: path, id, expectedRevision, locale, path: explicitPath, availableLocales } = input;
|
|
60
65
|
const logger = getLogger();
|
|
61
66
|
const config = await ensureCollection(path);
|
|
@@ -1,3 +1,10 @@
|
|
|
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
|
+
*/
|
|
1
8
|
import type { StoredFileValue } from '@byline/core';
|
|
2
9
|
/**
|
|
3
10
|
* Result of an upload through the host transport. The legacy top-level
|
|
@@ -36,7 +43,9 @@ declare function parseUploadFormData(data: FormData): UploadDocumentInput;
|
|
|
36
43
|
* deployments and external clients can use the identical upload orchestration
|
|
37
44
|
* without depending on TanStack Start server-function transport details.
|
|
38
45
|
*/
|
|
39
|
-
export declare const uploadCollectionField: import("@tanstack/react-start").RequiredFetcher<
|
|
46
|
+
export declare const uploadCollectionField: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
47
|
+
bylineExpectedSessionId: string | null;
|
|
48
|
+
}, undefined, undefined>], typeof parseUploadFormData, Promise<import("@byline/core").UploadFieldResult>>;
|
|
40
49
|
/**
|
|
41
50
|
* Upload a file to an upload-enabled collection.
|
|
42
51
|
*
|
|
@@ -5,6 +5,7 @@ import { extractImageMeta, generateImageVariants, isBypassMimeType } from "@byli
|
|
|
5
5
|
import { getLogger, withLogContext } from "@byline/core/logger";
|
|
6
6
|
import { uploadField } from "@byline/core/services";
|
|
7
7
|
import { ensureDocumentResource } from "../../integrations/api-utils.js";
|
|
8
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
8
9
|
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
9
10
|
function parseUploadFormData(data) {
|
|
10
11
|
if (!(data instanceof FormData)) throw new Error('Expected FormData upload payload.');
|
|
@@ -57,7 +58,9 @@ function resolveUploadField(definition, collectionPath, requested) {
|
|
|
57
58
|
}
|
|
58
59
|
const uploadCollectionField = createServerFn({
|
|
59
60
|
method: 'POST'
|
|
60
|
-
}).
|
|
61
|
+
}).middleware([
|
|
62
|
+
adminSessionMiddleware
|
|
63
|
+
]).validator(parseUploadFormData).handler(withDocumentMutationErrors(async ({ data })=>{
|
|
61
64
|
const { collectionPath, shouldCreateDocument, fieldName, file, fields } = data;
|
|
62
65
|
const logger = getLogger();
|
|
63
66
|
return withLogContext({
|
|
@@ -22,4 +22,6 @@ export interface SetAdminLocaleResult {
|
|
|
22
22
|
*/
|
|
23
23
|
account: AccountResponse | null;
|
|
24
24
|
}
|
|
25
|
-
export declare const setAdminLocaleFn: import("@tanstack/react-start").RequiredFetcher<
|
|
25
|
+
export declare const setAdminLocaleFn: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterClient<{}, unknown, undefined, {
|
|
26
|
+
expectedSessionId: string | null;
|
|
27
|
+
}, undefined>], (input: SetAdminLocaleInput) => SetAdminLocaleInput, Promise<SetAdminLocaleResult>>;
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import { createServerFn } from "@tanstack/react-start";
|
|
1
|
+
import { createMiddleware, createServerFn } from "@tanstack/react-start";
|
|
2
2
|
import { setPreferredLocaleCommand } from "@byline/admin/admin-account";
|
|
3
3
|
import { AuthError, AuthErrorCodes } from "@byline/auth";
|
|
4
4
|
import { getAdminRequestContext } from "@byline/client/server";
|
|
5
5
|
import { clearAdminLocaleCookie, setAdminLocaleCookie } from "../../i18n/locale-cookie.js";
|
|
6
6
|
import { bylineCore } from "../../integrations/byline-core.js";
|
|
7
|
+
import { expectedSession } from "../../integrations/session-coordination.js";
|
|
8
|
+
const localeSession = createMiddleware({
|
|
9
|
+
type: 'function'
|
|
10
|
+
}).client(({ next })=>next({
|
|
11
|
+
sendContext: {
|
|
12
|
+
expectedSessionId: expectedSession()
|
|
13
|
+
}
|
|
14
|
+
}));
|
|
7
15
|
const setAdminLocaleFn = createServerFn({
|
|
8
16
|
method: 'POST'
|
|
9
|
-
}).
|
|
17
|
+
}).middleware([
|
|
18
|
+
localeSession
|
|
19
|
+
]).validator((input)=>input).handler(async ({ data, context: caller })=>{
|
|
10
20
|
const core = bylineCore();
|
|
11
21
|
const locales = core.config.i18n.admin.locales;
|
|
12
22
|
if (null != data.locale && !locales.includes(data.locale)) throw new Error(`[setAdminLocaleFn] locale '${data.locale}' is not in i18n.admin.locales [${locales.join(', ')}].`);
|
|
@@ -20,6 +30,11 @@ const setAdminLocaleFn = createServerFn({
|
|
|
20
30
|
};
|
|
21
31
|
try {
|
|
22
32
|
const context = await getAdminRequestContext();
|
|
33
|
+
if (!caller.expectedSessionId || caller.expectedSessionId !== context.sessionId) return {
|
|
34
|
+
ok: true,
|
|
35
|
+
locale: data.locale,
|
|
36
|
+
account: null
|
|
37
|
+
};
|
|
23
38
|
const account = await setPreferredLocaleCommand(context, {
|
|
24
39
|
locale: data.locale
|
|
25
40
|
}, {
|
|
@@ -31,7 +46,7 @@ const setAdminLocaleFn = createServerFn({
|
|
|
31
46
|
account
|
|
32
47
|
};
|
|
33
48
|
} catch (err) {
|
|
34
|
-
if (err instanceof AuthError && err.code === AuthErrorCodes.UNAUTHENTICATED) return {
|
|
49
|
+
if (err instanceof AuthError && (err.code === AuthErrorCodes.UNAUTHENTICATED || err.code === AuthErrorCodes.ACCESS_EXPIRED)) return {
|
|
35
50
|
ok: true,
|
|
36
51
|
locale: data.locale,
|
|
37
52
|
account: null
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Infonomic Company Limited
|
|
7
7
|
*/
|
|
8
|
-
export declare const disablePreviewModeFn: import("@tanstack/react-start").OptionalFetcher<undefined, undefined,
|
|
8
|
+
export declare const disablePreviewModeFn: import("@tanstack/react-start").OptionalFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], undefined, Promise<{
|
|
9
11
|
status: 'ok';
|
|
10
12
|
preview: false;
|
|
11
13
|
}>>;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
2
2
|
import { clearPreviewCookie } from "@byline/client/server";
|
|
3
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
3
4
|
const disablePreviewModeFn = createServerFn({
|
|
4
5
|
method: 'POST'
|
|
5
|
-
}).
|
|
6
|
+
}).middleware([
|
|
7
|
+
adminSessionMiddleware
|
|
8
|
+
]).handler(async ()=>{
|
|
6
9
|
clearPreviewCookie();
|
|
7
10
|
return {
|
|
8
11
|
status: 'ok',
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Infonomic Company Limited
|
|
7
7
|
*/
|
|
8
|
-
export declare const enablePreviewModeFn: import("@tanstack/react-start").OptionalFetcher<undefined, undefined,
|
|
8
|
+
export declare const enablePreviewModeFn: import("@tanstack/react-start").OptionalFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], undefined, Promise<{
|
|
9
11
|
status: 'ok';
|
|
10
12
|
preview: true;
|
|
11
13
|
}>>;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
2
2
|
import { getAdminRequestContext, setPreviewCookie } from "@byline/client/server";
|
|
3
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
3
4
|
const enablePreviewModeFn = createServerFn({
|
|
4
5
|
method: 'POST'
|
|
5
|
-
}).
|
|
6
|
+
}).middleware([
|
|
7
|
+
adminSessionMiddleware
|
|
8
|
+
]).handler(async ()=>{
|
|
6
9
|
await getAdminRequestContext();
|
|
7
10
|
setPreviewCookie();
|
|
8
11
|
return {
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
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
|
+
export declare const cancelSingletonScheduledPublish: import("@tanstack/react-start").RequiredFetcher<readonly [import("@tanstack/react-start").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, {
|
|
9
|
+
bylineExpectedSessionId: string | null;
|
|
10
|
+
}, undefined, undefined>], (input: {
|
|
2
11
|
expectedRevision: number;
|
|
3
12
|
singleton: string;
|
|
4
13
|
}) => {
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
2
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
2
|
import { getAdminBylineClient } from "@byline/client/server";
|
|
3
|
+
import { adminSessionMiddleware } from "../../integrations/session-middleware.js";
|
|
4
|
+
import { withDocumentMutationErrors } from "../document-mutation-errors.js";
|
|
4
5
|
import { serialise } from "../serialise.js";
|
|
5
6
|
const cancelSingletonScheduledPublish = createServerFn({
|
|
6
7
|
method: 'POST'
|
|
7
|
-
}).
|
|
8
|
+
}).middleware([
|
|
9
|
+
adminSessionMiddleware
|
|
10
|
+
]).validator((input)=>input).handler(withDocumentMutationErrors(async ({ data })=>serialise(await getAdminBylineClient().singleton(data.singleton).cancelScheduledPublish({
|
|
8
11
|
expectedRevision: data.expectedRevision
|
|
9
12
|
}))));
|
|
10
13
|
export { cancelSingletonScheduledPublish };
|