@btst/stack 3.0.1 → 3.1.0-rc.1
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/README.md +2 -2
- package/dist/context/index.d.cts +3 -1
- package/dist/context/index.d.mts +3 -1
- package/dist/context/index.d.ts +3 -1
- package/dist/packages/stack/src/context/auth.cjs +20 -14
- package/dist/packages/stack/src/context/auth.mjs +20 -14
- package/dist/packages/stack/src/context/provider.cjs +42 -22
- package/dist/packages/stack/src/context/provider.mjs +43 -23
- package/dist/packages/stack/src/plugins/blog/client/components/pages/home-page.cjs +32 -28
- package/dist/packages/stack/src/plugins/blog/client/components/pages/home-page.mjs +32 -29
- package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.cjs +53 -47
- package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.mjs +53 -48
- package/dist/packages/stack/src/plugins/blog/client/components/pages/tag-page.cjs +30 -24
- package/dist/packages/stack/src/plugins/blog/client/components/pages/tag-page.mjs +30 -25
- package/dist/plugins/blog/client/components/index.d.cts +6 -10
- package/dist/plugins/blog/client/components/index.d.mts +6 -10
- package/dist/plugins/blog/client/components/index.d.ts +6 -10
- package/dist/plugins/blog/client/pages/post.cjs +9 -0
- package/dist/plugins/blog/client/pages/post.d.cts +8 -0
- package/dist/plugins/blog/client/pages/post.d.mts +8 -0
- package/dist/plugins/blog/client/pages/post.d.ts +8 -0
- package/dist/plugins/blog/client/pages/post.mjs +7 -0
- package/dist/plugins/blog/client/pages/posts.cjs +9 -0
- package/dist/plugins/blog/client/pages/posts.d.cts +8 -0
- package/dist/plugins/blog/client/pages/posts.d.mts +8 -0
- package/dist/plugins/blog/client/pages/posts.d.ts +8 -0
- package/dist/plugins/blog/client/pages/posts.mjs +7 -0
- package/dist/plugins/blog/client/pages/tag.cjs +9 -0
- package/dist/plugins/blog/client/pages/tag.d.cts +8 -0
- package/dist/plugins/blog/client/pages/tag.d.mts +8 -0
- package/dist/plugins/blog/client/pages/tag.d.ts +8 -0
- package/dist/plugins/blog/client/pages/tag.mjs +7 -0
- package/dist/plugins/form-builder/api/index.d.cts +1 -1
- package/dist/plugins/form-builder/api/index.d.mts +1 -1
- package/dist/plugins/form-builder/api/index.d.ts +1 -1
- package/dist/plugins/form-builder/client/hooks/index.d.cts +1 -1
- package/dist/plugins/form-builder/client/hooks/index.d.mts +1 -1
- package/dist/plugins/form-builder/client/hooks/index.d.ts +1 -1
- package/dist/plugins/form-builder/query-keys.d.cts +1 -1
- package/dist/plugins/form-builder/query-keys.d.mts +1 -1
- package/dist/plugins/form-builder/query-keys.d.ts +1 -1
- package/package.json +41 -2
- package/src/__tests__/generated-static-identity.test.tsx +128 -0
- package/src/__tests__/provider-hydration.test.tsx +164 -0
- package/src/context/auth.tsx +21 -14
- package/src/context/provider.tsx +51 -28
- package/src/plugins/blog/__tests__/page-load-error.test.tsx +53 -0
- package/src/plugins/blog/__tests__/page-loading.test.tsx +106 -0
- package/src/plugins/blog/client/components/pages/home-page.tsx +39 -35
- package/src/plugins/blog/client/components/pages/post-page.tsx +62 -54
- package/src/plugins/blog/client/components/pages/tag-page.tsx +35 -29
- package/src/plugins/blog/client/pages/post.tsx +7 -0
- package/src/plugins/blog/client/pages/posts.tsx +7 -0
- package/src/plugins/blog/client/pages/tag.tsx +7 -0
- package/src/plugins/kanban/__tests__/authorization.test.ts +54 -0
- package/dist/shared/{stack.CGmh-Lpe.d.ts → stack.BuxUQqL8.d.ts} +12 -12
- package/dist/shared/{stack.zch70Loj.d.cts → stack.CX83YNuS.d.cts} +12 -12
- package/dist/shared/{stack.Doy2_wgl.d.mts → stack.Egr3RWhA.d.mts} +12 -12
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { lazy } from "react";
|
|
3
|
+
import { lazy, type ComponentType } from "react";
|
|
4
4
|
import { usePluginOverrides } from "@btst/stack/context";
|
|
5
5
|
import type { BlogPluginOverrides } from "../../overrides";
|
|
6
6
|
import { BLOG_PLUGIN_ID } from "../../constants";
|
|
@@ -10,39 +10,43 @@ import { PostsLoading } from "../loading";
|
|
|
10
10
|
import { NotFoundPage } from "./404-page";
|
|
11
11
|
import { blogPermissions } from "../../../permissions";
|
|
12
12
|
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
)
|
|
13
|
+
// Share the guarded page between the lazy registry and native route entry.
|
|
14
|
+
export function createHomePage(
|
|
15
|
+
HomePage: ComponentType<{ published: boolean }>,
|
|
16
|
+
) {
|
|
17
|
+
// Exported wrapped component with error and loading boundaries
|
|
18
|
+
function HomePageComponent({ published = true }: { published?: boolean }) {
|
|
19
|
+
const { onRouteError } =
|
|
20
|
+
usePluginOverrides<BlogPluginOverrides>(BLOG_PLUGIN_ID);
|
|
21
|
+
return (
|
|
22
|
+
<ComposedRoute
|
|
23
|
+
path={published ? "/blog" : "/blog/drafts"}
|
|
24
|
+
PageComponent={HomePage}
|
|
25
|
+
ErrorComponent={DefaultError}
|
|
26
|
+
LoadingComponent={PostsLoading}
|
|
27
|
+
NotFoundComponent={NotFoundPage}
|
|
28
|
+
permission={blogPermissions.post.read({
|
|
29
|
+
scope: published ? "published" : "drafts",
|
|
30
|
+
})}
|
|
31
|
+
props={{ published }}
|
|
32
|
+
onError={(error) => {
|
|
33
|
+
if (onRouteError) {
|
|
34
|
+
onRouteError("posts", error, {
|
|
35
|
+
path: published ? "/blog" : "/blog/drafts",
|
|
36
|
+
isSSR: typeof window === "undefined",
|
|
37
|
+
published,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}}
|
|
41
|
+
/>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
17
44
|
|
|
18
|
-
|
|
19
|
-
export function HomePageComponent({
|
|
20
|
-
published = true,
|
|
21
|
-
}: {
|
|
22
|
-
published?: boolean;
|
|
23
|
-
}) {
|
|
24
|
-
const { onRouteError } =
|
|
25
|
-
usePluginOverrides<BlogPluginOverrides>(BLOG_PLUGIN_ID);
|
|
26
|
-
return (
|
|
27
|
-
<ComposedRoute
|
|
28
|
-
path={published ? "/blog" : "/blog/drafts"}
|
|
29
|
-
PageComponent={HomePage}
|
|
30
|
-
ErrorComponent={DefaultError}
|
|
31
|
-
LoadingComponent={PostsLoading}
|
|
32
|
-
NotFoundComponent={NotFoundPage}
|
|
33
|
-
permission={blogPermissions.post.read({
|
|
34
|
-
scope: published ? "published" : "drafts",
|
|
35
|
-
})}
|
|
36
|
-
props={{ published }}
|
|
37
|
-
onError={(error) => {
|
|
38
|
-
if (onRouteError) {
|
|
39
|
-
onRouteError("posts", error, {
|
|
40
|
-
path: published ? "/blog" : "/blog/drafts",
|
|
41
|
-
isSSR: typeof window === "undefined",
|
|
42
|
-
published,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}}
|
|
46
|
-
/>
|
|
47
|
-
);
|
|
45
|
+
return HomePageComponent;
|
|
48
46
|
}
|
|
47
|
+
|
|
48
|
+
export const HomePageComponent = createHomePage(
|
|
49
|
+
lazy(() =>
|
|
50
|
+
import("./home-page.internal").then((m) => ({ default: m.HomePage })),
|
|
51
|
+
),
|
|
52
|
+
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { lazy } from "react";
|
|
3
|
+
import { lazy, type ComponentType } from "react";
|
|
4
4
|
import { usePluginOverrides } from "@btst/stack/context";
|
|
5
5
|
import type { BlogPluginOverrides } from "../../overrides";
|
|
6
6
|
import { BLOG_PLUGIN_ID } from "../../constants";
|
|
@@ -14,59 +14,67 @@ import { NotFoundPage } from "./404-page";
|
|
|
14
14
|
import { useSuspensePost } from "../../hooks/blog-hooks";
|
|
15
15
|
import { blogPermissions } from "../../../permissions";
|
|
16
16
|
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
)
|
|
17
|
+
// Share the guarded page between the lazy registry and native route entry.
|
|
18
|
+
export function createPostPage(
|
|
19
|
+
PostPageContent: ComponentType<{ slug: string }>,
|
|
20
|
+
) {
|
|
21
|
+
function AuthorizedPostPage({ slug }: { slug: string }) {
|
|
22
|
+
const { post } = useSuspensePost(slug);
|
|
23
|
+
const permission = post
|
|
24
|
+
? blogPermissions.post.read({
|
|
25
|
+
scope: "post",
|
|
26
|
+
slug: post.slug,
|
|
27
|
+
exists: true,
|
|
28
|
+
id: post.id,
|
|
29
|
+
...(post.authorId ? { authorId: post.authorId } : {}),
|
|
30
|
+
published: post.published,
|
|
31
|
+
})
|
|
32
|
+
: blogPermissions.post.read({
|
|
33
|
+
scope: "post",
|
|
34
|
+
slug,
|
|
35
|
+
exists: false,
|
|
36
|
+
published: false,
|
|
37
|
+
});
|
|
38
|
+
return (
|
|
39
|
+
<PermissionRouteAccess
|
|
40
|
+
permission={permission}
|
|
41
|
+
LoadingComponent={PostLoading}
|
|
42
|
+
>
|
|
43
|
+
<PostPageContent slug={slug} />
|
|
44
|
+
</PermissionRouteAccess>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
21
47
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
+
// Exported wrapped component with error and loading boundaries
|
|
49
|
+
function PostPageComponent({ slug }: { slug: string }) {
|
|
50
|
+
const { onRouteError } =
|
|
51
|
+
usePluginOverrides<BlogPluginOverrides>(BLOG_PLUGIN_ID);
|
|
52
|
+
return (
|
|
53
|
+
<ComposedRoute
|
|
54
|
+
path={`/blog/${slug}`}
|
|
55
|
+
PageComponent={AuthorizedPostPage}
|
|
56
|
+
ErrorComponent={DefaultError}
|
|
57
|
+
LoadingComponent={PostLoading}
|
|
58
|
+
NotFoundComponent={NotFoundPage}
|
|
59
|
+
props={{ slug }}
|
|
60
|
+
onError={(error) => {
|
|
61
|
+
if (onRouteError) {
|
|
62
|
+
onRouteError("post", error, {
|
|
63
|
+
path: `/blog/${slug}`,
|
|
64
|
+
isSSR: typeof window === "undefined",
|
|
65
|
+
slug,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}}
|
|
69
|
+
/>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
48
72
|
|
|
49
|
-
|
|
50
|
-
export function PostPageComponent({ slug }: { slug: string }) {
|
|
51
|
-
const { onRouteError } =
|
|
52
|
-
usePluginOverrides<BlogPluginOverrides>(BLOG_PLUGIN_ID);
|
|
53
|
-
return (
|
|
54
|
-
<ComposedRoute
|
|
55
|
-
path={`/blog/${slug}`}
|
|
56
|
-
PageComponent={AuthorizedPostPage}
|
|
57
|
-
ErrorComponent={DefaultError}
|
|
58
|
-
LoadingComponent={PostLoading}
|
|
59
|
-
NotFoundComponent={NotFoundPage}
|
|
60
|
-
props={{ slug }}
|
|
61
|
-
onError={(error) => {
|
|
62
|
-
if (onRouteError) {
|
|
63
|
-
onRouteError("post", error, {
|
|
64
|
-
path: `/blog/${slug}`,
|
|
65
|
-
isSSR: typeof window === "undefined",
|
|
66
|
-
slug,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}}
|
|
70
|
-
/>
|
|
71
|
-
);
|
|
73
|
+
return PostPageComponent;
|
|
72
74
|
}
|
|
75
|
+
|
|
76
|
+
export const PostPageComponent = createPostPage(
|
|
77
|
+
lazy(() =>
|
|
78
|
+
import("./post-page.internal").then((m) => ({ default: m.PostPage })),
|
|
79
|
+
),
|
|
80
|
+
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { lazy } from "react";
|
|
3
|
+
import { lazy, type ComponentType } from "react";
|
|
4
4
|
import { usePluginOverrides } from "@btst/stack/context";
|
|
5
5
|
import type { BlogPluginOverrides } from "../../overrides";
|
|
6
6
|
import { BLOG_PLUGIN_ID } from "../../constants";
|
|
@@ -10,33 +10,39 @@ import { PostsLoading } from "../loading";
|
|
|
10
10
|
import { NotFoundPage } from "./404-page";
|
|
11
11
|
import { blogPermissions } from "../../../permissions";
|
|
12
12
|
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
)
|
|
13
|
+
// Share the guarded page between the lazy registry and native route entry.
|
|
14
|
+
export function createTagPage(TagPage: ComponentType<{ tagSlug: string }>) {
|
|
15
|
+
// Exported wrapped component with error and loading boundaries
|
|
16
|
+
function TagPageComponent({ tagSlug }: { tagSlug: string }) {
|
|
17
|
+
const { onRouteError } =
|
|
18
|
+
usePluginOverrides<BlogPluginOverrides>(BLOG_PLUGIN_ID);
|
|
19
|
+
return (
|
|
20
|
+
<ComposedRoute
|
|
21
|
+
path={`/blog/tag/${tagSlug}`}
|
|
22
|
+
PageComponent={TagPage}
|
|
23
|
+
ErrorComponent={DefaultError}
|
|
24
|
+
LoadingComponent={PostsLoading}
|
|
25
|
+
NotFoundComponent={NotFoundPage}
|
|
26
|
+
permission={blogPermissions.tag.read()}
|
|
27
|
+
props={{ tagSlug }}
|
|
28
|
+
onError={(error) => {
|
|
29
|
+
if (onRouteError) {
|
|
30
|
+
onRouteError("tag", error, {
|
|
31
|
+
path: `/blog/tag/${tagSlug}`,
|
|
32
|
+
isSSR: typeof window === "undefined",
|
|
33
|
+
tagSlug,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}}
|
|
37
|
+
/>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
17
40
|
|
|
18
|
-
|
|
19
|
-
export function TagPageComponent({ tagSlug }: { tagSlug: string }) {
|
|
20
|
-
const { onRouteError } =
|
|
21
|
-
usePluginOverrides<BlogPluginOverrides>(BLOG_PLUGIN_ID);
|
|
22
|
-
return (
|
|
23
|
-
<ComposedRoute
|
|
24
|
-
path={`/blog/tag/${tagSlug}`}
|
|
25
|
-
PageComponent={TagPage}
|
|
26
|
-
ErrorComponent={DefaultError}
|
|
27
|
-
LoadingComponent={PostsLoading}
|
|
28
|
-
NotFoundComponent={NotFoundPage}
|
|
29
|
-
permission={blogPermissions.tag.read()}
|
|
30
|
-
props={{ tagSlug }}
|
|
31
|
-
onError={(error) => {
|
|
32
|
-
if (onRouteError) {
|
|
33
|
-
onRouteError("tag", error, {
|
|
34
|
-
path: `/blog/tag/${tagSlug}`,
|
|
35
|
-
isSSR: typeof window === "undefined",
|
|
36
|
-
tagSlug,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}}
|
|
40
|
-
/>
|
|
41
|
-
);
|
|
41
|
+
return TagPageComponent;
|
|
42
42
|
}
|
|
43
|
+
|
|
44
|
+
export const TagPageComponent = createTagPage(
|
|
45
|
+
lazy(() =>
|
|
46
|
+
import("./tag-page.internal").then((m) => ({ default: m.TagPage })),
|
|
47
|
+
),
|
|
48
|
+
);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { createPostPage } from "../components/pages/post-page";
|
|
4
|
+
import { PostPage as Content } from "../components/pages/post-page.internal";
|
|
5
|
+
|
|
6
|
+
/** Complete guarded page for a native framework route; contains no lazy page import. */
|
|
7
|
+
export const PostPage = createPostPage(Content);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { createHomePage } from "../components/pages/home-page";
|
|
4
|
+
import { HomePage as Content } from "../components/pages/home-page.internal";
|
|
5
|
+
|
|
6
|
+
/** Complete guarded page for a native framework route; contains no lazy page import. */
|
|
7
|
+
export const PostListPage = createHomePage(Content);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { createTagPage } from "../components/pages/tag-page";
|
|
4
|
+
import { TagPage as Content } from "../components/pages/tag-page.internal";
|
|
5
|
+
|
|
6
|
+
/** Complete guarded page for a native framework route; contains no lazy page import. */
|
|
7
|
+
export const TagPage = createTagPage(Content);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { pathToFileURL } from "node:url";
|
|
2
|
+
import { resolve } from "node:path";
|
|
1
3
|
import { createMemoryAdapter } from "@btst/adapter-memory";
|
|
2
4
|
import { type DatabaseDefinition, type DBAdapter, defineDb } from "@btst/db";
|
|
3
5
|
import { QueryClient } from "@tanstack/react-query";
|
|
@@ -1380,3 +1382,55 @@ describe("Kanban operation-first authorization", () => {
|
|
|
1380
1382
|
});
|
|
1381
1383
|
});
|
|
1382
1384
|
});
|
|
1385
|
+
|
|
1386
|
+
describe("Kanban fixture cleanup", () => {
|
|
1387
|
+
it("deleting the owned board also removes columns and tasks from the memory adapter", async () => {
|
|
1388
|
+
let adapter!: DBAdapter;
|
|
1389
|
+
const backend = makeBackend({
|
|
1390
|
+
adapter: (db) => (adapter = rawMemoryAdapter(db)),
|
|
1391
|
+
});
|
|
1392
|
+
const owned = await backend.trusted.kanban.createBoard({
|
|
1393
|
+
name: "Fixture",
|
|
1394
|
+
slug: "fixture-cleanup",
|
|
1395
|
+
});
|
|
1396
|
+
const unrelated = await backend.trusted.kanban.createBoard({
|
|
1397
|
+
name: "Unrelated",
|
|
1398
|
+
slug: "unrelated-cleanup",
|
|
1399
|
+
});
|
|
1400
|
+
const column = await backend.trusted.kanban.createColumn({
|
|
1401
|
+
boardId: owned.id,
|
|
1402
|
+
title: "Fixture",
|
|
1403
|
+
});
|
|
1404
|
+
await backend.trusted.kanban.createTask({
|
|
1405
|
+
columnId: column.id,
|
|
1406
|
+
title: "Fixture",
|
|
1407
|
+
});
|
|
1408
|
+
const { cleanupBoard } = await import(
|
|
1409
|
+
pathToFileURL(
|
|
1410
|
+
resolve(process.cwd(), "../../e2e/product-proof/fixture-cleanup.mjs"),
|
|
1411
|
+
).href
|
|
1412
|
+
);
|
|
1413
|
+
await cleanupBoard(async (method: string, path: string) => {
|
|
1414
|
+
const response = await backend.handler(
|
|
1415
|
+
request(path.replace("/api/data", ""), { method }),
|
|
1416
|
+
);
|
|
1417
|
+
expect(response.ok).toBe(true);
|
|
1418
|
+
return method === "GET" ? response.json() : undefined;
|
|
1419
|
+
}, owned.id);
|
|
1420
|
+
expect(
|
|
1421
|
+
await adapter.findMany({
|
|
1422
|
+
model: "kanbanColumn",
|
|
1423
|
+
where: [{ field: "boardId", value: owned.id }],
|
|
1424
|
+
}),
|
|
1425
|
+
).toEqual([]);
|
|
1426
|
+
expect(
|
|
1427
|
+
await adapter.findMany({
|
|
1428
|
+
model: "kanbanTask",
|
|
1429
|
+
where: [{ field: "columnId", value: column.id }],
|
|
1430
|
+
}),
|
|
1431
|
+
).toEqual([]);
|
|
1432
|
+
expect(
|
|
1433
|
+
await backend.trusted.kanban.getBoard({ id: unrelated.id }),
|
|
1434
|
+
).toMatchObject({ id: unrelated.id });
|
|
1435
|
+
});
|
|
1436
|
+
});
|
|
@@ -127,11 +127,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
127
127
|
readonly status: Form["status"];
|
|
128
128
|
readonly createdAt: string;
|
|
129
129
|
readonly updatedAt: string;
|
|
130
|
-
readonly id: string;
|
|
131
|
-
readonly name: string;
|
|
132
130
|
readonly schema: string;
|
|
131
|
+
readonly id: string;
|
|
133
132
|
readonly description?: string | undefined;
|
|
134
133
|
readonly slug: string;
|
|
134
|
+
readonly name: string;
|
|
135
135
|
readonly successMessage?: string | undefined;
|
|
136
136
|
readonly redirectUrl?: string | undefined;
|
|
137
137
|
readonly createdBy?: string | undefined;
|
|
@@ -151,11 +151,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
151
151
|
readonly status: Form["status"];
|
|
152
152
|
readonly createdAt: string;
|
|
153
153
|
readonly updatedAt: string;
|
|
154
|
-
readonly id: string;
|
|
155
|
-
readonly name: string;
|
|
156
154
|
readonly schema: string;
|
|
155
|
+
readonly id: string;
|
|
157
156
|
readonly description?: string | undefined;
|
|
158
157
|
readonly slug: string;
|
|
158
|
+
readonly name: string;
|
|
159
159
|
readonly successMessage?: string | undefined;
|
|
160
160
|
readonly redirectUrl?: string | undefined;
|
|
161
161
|
readonly createdBy?: string | undefined;
|
|
@@ -171,11 +171,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
171
171
|
readonly status: Form["status"];
|
|
172
172
|
readonly createdAt: string;
|
|
173
173
|
readonly updatedAt: string;
|
|
174
|
-
readonly id: string;
|
|
175
|
-
readonly name: string;
|
|
176
174
|
readonly schema: string;
|
|
175
|
+
readonly id: string;
|
|
177
176
|
readonly description?: string | undefined;
|
|
178
177
|
readonly slug: string;
|
|
178
|
+
readonly name: string;
|
|
179
179
|
readonly successMessage?: string | undefined;
|
|
180
180
|
readonly redirectUrl?: string | undefined;
|
|
181
181
|
readonly createdBy?: string | undefined;
|
|
@@ -191,11 +191,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
191
191
|
readonly status: Form["status"];
|
|
192
192
|
readonly createdAt: string;
|
|
193
193
|
readonly updatedAt: string;
|
|
194
|
-
readonly id: string;
|
|
195
|
-
readonly name: string;
|
|
196
194
|
readonly schema: string;
|
|
195
|
+
readonly id: string;
|
|
197
196
|
readonly description?: string | undefined;
|
|
198
197
|
readonly slug: string;
|
|
198
|
+
readonly name: string;
|
|
199
199
|
readonly successMessage?: string | undefined;
|
|
200
200
|
readonly redirectUrl?: string | undefined;
|
|
201
201
|
readonly createdBy?: string | undefined;
|
|
@@ -225,11 +225,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
225
225
|
readonly status: Form["status"];
|
|
226
226
|
readonly createdAt: string;
|
|
227
227
|
readonly updatedAt: string;
|
|
228
|
-
readonly id: string;
|
|
229
|
-
readonly name: string;
|
|
230
228
|
readonly schema: string;
|
|
229
|
+
readonly id: string;
|
|
231
230
|
readonly description?: string | undefined;
|
|
232
231
|
readonly slug: string;
|
|
232
|
+
readonly name: string;
|
|
233
233
|
readonly successMessage?: string | undefined;
|
|
234
234
|
readonly redirectUrl?: string | undefined;
|
|
235
235
|
readonly createdBy?: string | undefined;
|
|
@@ -259,11 +259,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
259
259
|
readonly status: Form["status"];
|
|
260
260
|
readonly createdAt: string;
|
|
261
261
|
readonly updatedAt: string;
|
|
262
|
-
readonly id: string;
|
|
263
|
-
readonly name: string;
|
|
264
262
|
readonly schema: string;
|
|
263
|
+
readonly id: string;
|
|
265
264
|
readonly description?: string | undefined;
|
|
266
265
|
readonly slug: string;
|
|
266
|
+
readonly name: string;
|
|
267
267
|
readonly successMessage?: string | undefined;
|
|
268
268
|
readonly redirectUrl?: string | undefined;
|
|
269
269
|
readonly createdBy?: string | undefined;
|
|
@@ -127,11 +127,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
127
127
|
readonly status: Form["status"];
|
|
128
128
|
readonly createdAt: string;
|
|
129
129
|
readonly updatedAt: string;
|
|
130
|
-
readonly id: string;
|
|
131
|
-
readonly name: string;
|
|
132
130
|
readonly schema: string;
|
|
131
|
+
readonly id: string;
|
|
133
132
|
readonly description?: string | undefined;
|
|
134
133
|
readonly slug: string;
|
|
134
|
+
readonly name: string;
|
|
135
135
|
readonly successMessage?: string | undefined;
|
|
136
136
|
readonly redirectUrl?: string | undefined;
|
|
137
137
|
readonly createdBy?: string | undefined;
|
|
@@ -151,11 +151,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
151
151
|
readonly status: Form["status"];
|
|
152
152
|
readonly createdAt: string;
|
|
153
153
|
readonly updatedAt: string;
|
|
154
|
-
readonly id: string;
|
|
155
|
-
readonly name: string;
|
|
156
154
|
readonly schema: string;
|
|
155
|
+
readonly id: string;
|
|
157
156
|
readonly description?: string | undefined;
|
|
158
157
|
readonly slug: string;
|
|
158
|
+
readonly name: string;
|
|
159
159
|
readonly successMessage?: string | undefined;
|
|
160
160
|
readonly redirectUrl?: string | undefined;
|
|
161
161
|
readonly createdBy?: string | undefined;
|
|
@@ -171,11 +171,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
171
171
|
readonly status: Form["status"];
|
|
172
172
|
readonly createdAt: string;
|
|
173
173
|
readonly updatedAt: string;
|
|
174
|
-
readonly id: string;
|
|
175
|
-
readonly name: string;
|
|
176
174
|
readonly schema: string;
|
|
175
|
+
readonly id: string;
|
|
177
176
|
readonly description?: string | undefined;
|
|
178
177
|
readonly slug: string;
|
|
178
|
+
readonly name: string;
|
|
179
179
|
readonly successMessage?: string | undefined;
|
|
180
180
|
readonly redirectUrl?: string | undefined;
|
|
181
181
|
readonly createdBy?: string | undefined;
|
|
@@ -191,11 +191,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
191
191
|
readonly status: Form["status"];
|
|
192
192
|
readonly createdAt: string;
|
|
193
193
|
readonly updatedAt: string;
|
|
194
|
-
readonly id: string;
|
|
195
|
-
readonly name: string;
|
|
196
194
|
readonly schema: string;
|
|
195
|
+
readonly id: string;
|
|
197
196
|
readonly description?: string | undefined;
|
|
198
197
|
readonly slug: string;
|
|
198
|
+
readonly name: string;
|
|
199
199
|
readonly successMessage?: string | undefined;
|
|
200
200
|
readonly redirectUrl?: string | undefined;
|
|
201
201
|
readonly createdBy?: string | undefined;
|
|
@@ -225,11 +225,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
225
225
|
readonly status: Form["status"];
|
|
226
226
|
readonly createdAt: string;
|
|
227
227
|
readonly updatedAt: string;
|
|
228
|
-
readonly id: string;
|
|
229
|
-
readonly name: string;
|
|
230
228
|
readonly schema: string;
|
|
229
|
+
readonly id: string;
|
|
231
230
|
readonly description?: string | undefined;
|
|
232
231
|
readonly slug: string;
|
|
232
|
+
readonly name: string;
|
|
233
233
|
readonly successMessage?: string | undefined;
|
|
234
234
|
readonly redirectUrl?: string | undefined;
|
|
235
235
|
readonly createdBy?: string | undefined;
|
|
@@ -259,11 +259,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
259
259
|
readonly status: Form["status"];
|
|
260
260
|
readonly createdAt: string;
|
|
261
261
|
readonly updatedAt: string;
|
|
262
|
-
readonly id: string;
|
|
263
|
-
readonly name: string;
|
|
264
262
|
readonly schema: string;
|
|
263
|
+
readonly id: string;
|
|
265
264
|
readonly description?: string | undefined;
|
|
266
265
|
readonly slug: string;
|
|
266
|
+
readonly name: string;
|
|
267
267
|
readonly successMessage?: string | undefined;
|
|
268
268
|
readonly redirectUrl?: string | undefined;
|
|
269
269
|
readonly createdBy?: string | undefined;
|
|
@@ -127,11 +127,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
127
127
|
readonly status: Form["status"];
|
|
128
128
|
readonly createdAt: string;
|
|
129
129
|
readonly updatedAt: string;
|
|
130
|
-
readonly id: string;
|
|
131
|
-
readonly name: string;
|
|
132
130
|
readonly schema: string;
|
|
131
|
+
readonly id: string;
|
|
133
132
|
readonly description?: string | undefined;
|
|
134
133
|
readonly slug: string;
|
|
134
|
+
readonly name: string;
|
|
135
135
|
readonly successMessage?: string | undefined;
|
|
136
136
|
readonly redirectUrl?: string | undefined;
|
|
137
137
|
readonly createdBy?: string | undefined;
|
|
@@ -151,11 +151,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
151
151
|
readonly status: Form["status"];
|
|
152
152
|
readonly createdAt: string;
|
|
153
153
|
readonly updatedAt: string;
|
|
154
|
-
readonly id: string;
|
|
155
|
-
readonly name: string;
|
|
156
154
|
readonly schema: string;
|
|
155
|
+
readonly id: string;
|
|
157
156
|
readonly description?: string | undefined;
|
|
158
157
|
readonly slug: string;
|
|
158
|
+
readonly name: string;
|
|
159
159
|
readonly successMessage?: string | undefined;
|
|
160
160
|
readonly redirectUrl?: string | undefined;
|
|
161
161
|
readonly createdBy?: string | undefined;
|
|
@@ -171,11 +171,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
171
171
|
readonly status: Form["status"];
|
|
172
172
|
readonly createdAt: string;
|
|
173
173
|
readonly updatedAt: string;
|
|
174
|
-
readonly id: string;
|
|
175
|
-
readonly name: string;
|
|
176
174
|
readonly schema: string;
|
|
175
|
+
readonly id: string;
|
|
177
176
|
readonly description?: string | undefined;
|
|
178
177
|
readonly slug: string;
|
|
178
|
+
readonly name: string;
|
|
179
179
|
readonly successMessage?: string | undefined;
|
|
180
180
|
readonly redirectUrl?: string | undefined;
|
|
181
181
|
readonly createdBy?: string | undefined;
|
|
@@ -191,11 +191,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
191
191
|
readonly status: Form["status"];
|
|
192
192
|
readonly createdAt: string;
|
|
193
193
|
readonly updatedAt: string;
|
|
194
|
-
readonly id: string;
|
|
195
|
-
readonly name: string;
|
|
196
194
|
readonly schema: string;
|
|
195
|
+
readonly id: string;
|
|
197
196
|
readonly description?: string | undefined;
|
|
198
197
|
readonly slug: string;
|
|
198
|
+
readonly name: string;
|
|
199
199
|
readonly successMessage?: string | undefined;
|
|
200
200
|
readonly redirectUrl?: string | undefined;
|
|
201
201
|
readonly createdBy?: string | undefined;
|
|
@@ -225,11 +225,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
225
225
|
readonly status: Form["status"];
|
|
226
226
|
readonly createdAt: string;
|
|
227
227
|
readonly updatedAt: string;
|
|
228
|
-
readonly id: string;
|
|
229
|
-
readonly name: string;
|
|
230
228
|
readonly schema: string;
|
|
229
|
+
readonly id: string;
|
|
231
230
|
readonly description?: string | undefined;
|
|
232
231
|
readonly slug: string;
|
|
232
|
+
readonly name: string;
|
|
233
233
|
readonly successMessage?: string | undefined;
|
|
234
234
|
readonly redirectUrl?: string | undefined;
|
|
235
235
|
readonly createdBy?: string | undefined;
|
|
@@ -259,11 +259,11 @@ declare const formBuilderBackendPlugin: (config?: FormBuilderBackendConfig) => _
|
|
|
259
259
|
readonly status: Form["status"];
|
|
260
260
|
readonly createdAt: string;
|
|
261
261
|
readonly updatedAt: string;
|
|
262
|
-
readonly id: string;
|
|
263
|
-
readonly name: string;
|
|
264
262
|
readonly schema: string;
|
|
263
|
+
readonly id: string;
|
|
265
264
|
readonly description?: string | undefined;
|
|
266
265
|
readonly slug: string;
|
|
266
|
+
readonly name: string;
|
|
267
267
|
readonly successMessage?: string | undefined;
|
|
268
268
|
readonly redirectUrl?: string | undefined;
|
|
269
269
|
readonly createdBy?: string | undefined;
|