canopycms 0.0.17 → 0.0.18

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.
Files changed (83) hide show
  1. package/README.md +120 -34
  2. package/dist/ai/json-to-markdown.js +1 -1
  3. package/dist/ai/json-to-markdown.js.map +1 -1
  4. package/dist/api/content.d.ts.map +1 -1
  5. package/dist/api/content.js +12 -11
  6. package/dist/api/content.js.map +1 -1
  7. package/dist/cli/generate-ai-content.js +39 -20
  8. package/dist/cli/init.d.ts +5 -0
  9. package/dist/cli/init.d.ts.map +1 -1
  10. package/dist/cli/init.js +66 -15
  11. package/dist/cli/init.js.map +1 -1
  12. package/dist/cli/template-files/canopy.ts.template +10 -6
  13. package/dist/cli/template-files/edit-page-dev.tsx.template +16 -0
  14. package/dist/cli/template-files/edit-page.tsx.template +14 -21
  15. package/dist/cli/template-files/middleware-clerk.ts.template +13 -0
  16. package/dist/cli/template-files/middleware.ts.template +30 -0
  17. package/dist/cli/template-files/next.config-static.ts.template +13 -0
  18. package/dist/cli/template-files/next.config.ts.template +5 -0
  19. package/dist/cli/template-files/schemas.ts.template +4 -2
  20. package/dist/cli/templates.d.ts +8 -0
  21. package/dist/cli/templates.d.ts.map +1 -1
  22. package/dist/cli/templates.js +22 -2
  23. package/dist/cli/templates.js.map +1 -1
  24. package/dist/config/schemas/field.d.ts +21 -0
  25. package/dist/config/schemas/field.d.ts.map +1 -1
  26. package/dist/config/schemas/field.js +1 -0
  27. package/dist/config/schemas/field.js.map +1 -1
  28. package/dist/config/types.d.ts +7 -0
  29. package/dist/config/types.d.ts.map +1 -1
  30. package/dist/content-listing.d.ts +3 -2
  31. package/dist/content-listing.d.ts.map +1 -1
  32. package/dist/content-listing.js +8 -5
  33. package/dist/content-listing.js.map +1 -1
  34. package/dist/content-reader.d.ts.map +1 -1
  35. package/dist/content-reader.js +13 -9
  36. package/dist/content-reader.js.map +1 -1
  37. package/dist/content-store.d.ts +5 -0
  38. package/dist/content-store.d.ts.map +1 -1
  39. package/dist/content-store.js +29 -19
  40. package/dist/content-store.js.map +1 -1
  41. package/dist/content-tree.d.ts.map +1 -1
  42. package/dist/content-tree.js +7 -2
  43. package/dist/content-tree.js.map +1 -1
  44. package/dist/context.d.ts +38 -7
  45. package/dist/context.d.ts.map +1 -1
  46. package/dist/context.js +32 -0
  47. package/dist/context.js.map +1 -1
  48. package/dist/editor/editor-config.js +2 -2
  49. package/dist/editor/editor-config.js.map +1 -1
  50. package/dist/entry-schema-registry.d.ts.map +1 -1
  51. package/dist/entry-schema-registry.js +9 -0
  52. package/dist/entry-schema-registry.js.map +1 -1
  53. package/dist/entry-schema.d.ts +1 -0
  54. package/dist/entry-schema.d.ts.map +1 -1
  55. package/dist/entry-schema.js.map +1 -1
  56. package/dist/github-service.d.ts.map +1 -1
  57. package/dist/github-service.js +11 -7
  58. package/dist/github-service.js.map +1 -1
  59. package/dist/index.d.ts +1 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/paths/index.d.ts +1 -1
  64. package/dist/paths/index.d.ts.map +1 -1
  65. package/dist/paths/index.js +1 -1
  66. package/dist/paths/index.js.map +1 -1
  67. package/dist/paths/normalize.d.ts +8 -0
  68. package/dist/paths/normalize.d.ts.map +1 -1
  69. package/dist/paths/normalize.js +17 -0
  70. package/dist/paths/normalize.js.map +1 -1
  71. package/dist/url-path-resolver.d.ts +16 -0
  72. package/dist/url-path-resolver.d.ts.map +1 -0
  73. package/dist/url-path-resolver.js +31 -0
  74. package/dist/url-path-resolver.js.map +1 -0
  75. package/dist/utils/body-field.d.ts +18 -0
  76. package/dist/utils/body-field.d.ts.map +1 -0
  77. package/dist/utils/body-field.js +39 -0
  78. package/dist/utils/body-field.js.map +1 -0
  79. package/dist/utils/sanitize-href.d.ts +19 -0
  80. package/dist/utils/sanitize-href.d.ts.map +1 -0
  81. package/dist/utils/sanitize-href.js +30 -0
  82. package/dist/utils/sanitize-href.js.map +1 -0
  83. package/package.json +1 -1
package/dist/cli/init.js CHANGED
@@ -48,7 +48,8 @@ var init_field = __esm({
48
48
  description: z.string().optional(),
49
49
  required: z.boolean().optional(),
50
50
  list: z.boolean().optional(),
51
- isTitle: z.boolean().optional()
51
+ isTitle: z.boolean().optional(),
52
+ isBody: z.boolean().optional()
52
53
  });
53
54
  selectOptionSchema = z.union([
54
55
  z.string(),
@@ -325,6 +326,8 @@ __export(templates_exports, {
325
326
  dockerfileCms: () => dockerfileCms,
326
327
  editPage: () => editPage,
327
328
  githubWorkflowCms: () => githubWorkflowCms,
329
+ middleware: () => middleware,
330
+ nextConfig: () => nextConfig,
328
331
  schemasTemplate: () => schemasTemplate
329
332
  });
330
333
  import fs2 from "node:fs/promises";
@@ -339,7 +342,9 @@ async function canopyCmsConfig(options) {
339
342
  }
340
343
  async function canopyContext(options) {
341
344
  const template = await readTemplate("canopy.ts.template");
342
- return template.replace("{{CONFIG_IMPORT}}", options.configImport);
345
+ const authImports = options.authProvider === "clerk" ? "import { createClerkAuthPlugin } from 'canopycms-auth-clerk'\nimport { createDevAuthPlugin } from 'canopycms-auth-dev'" : "import { createDevAuthPlugin } from 'canopycms-auth-dev'";
346
+ const authPlugin = options.authProvider === "clerk" ? "process.env.CANOPY_AUTH_MODE === 'clerk'\n ? createClerkAuthPlugin({ useOrganizationsAsGroups: true })\n : createDevAuthPlugin()" : "createDevAuthPlugin()";
347
+ return template.replace("{{AUTH_IMPORTS}}", authImports).replace("{{AUTH_PLUGIN}}", authPlugin).replace("{{CONFIG_IMPORT}}", options.configImport);
343
348
  }
344
349
  async function schemasTemplate() {
345
350
  return readTemplate("schemas.ts.template");
@@ -349,7 +354,8 @@ async function apiRoute(options) {
349
354
  return template.replace("{{CANOPY_IMPORT}}", options.canopyImport);
350
355
  }
351
356
  async function editPage(options) {
352
- const template = await readTemplate("edit-page.tsx.template");
357
+ const templateName = options.authProvider === "dev" ? "edit-page-dev.tsx.template" : "edit-page.tsx.template";
358
+ const template = await readTemplate(templateName);
353
359
  return template.replace("{{CONFIG_IMPORT}}", options.configImport);
354
360
  }
355
361
  async function aiConfig() {
@@ -359,6 +365,14 @@ async function aiRoute(options) {
359
365
  const template = await readTemplate("ai-route.ts.template");
360
366
  return template.replace("{{CONFIG_IMPORT}}", options.configImport);
361
367
  }
368
+ async function middleware(options) {
369
+ const templateName = options.authProvider === "clerk" ? "middleware-clerk.ts.template" : "middleware.ts.template";
370
+ return readTemplate(templateName);
371
+ }
372
+ async function nextConfig(options) {
373
+ const templateName = options.staticBuild ? "next.config-static.ts.template" : "next.config.ts.template";
374
+ return readTemplate(templateName);
375
+ }
362
376
  async function dockerfileCms() {
363
377
  return readTemplate("Dockerfile.cms.template");
364
378
  }
@@ -1154,19 +1168,59 @@ function configImportPath(appDir, subdirs) {
1154
1168
  async function init(options) {
1155
1169
  const { projectDir, mode, appDir, ai, force, nonInteractive } = options;
1156
1170
  const writeOpts = { force, nonInteractive };
1157
- const { canopyCmsConfig: canopyCmsConfig2, canopyContext: canopyContext2, schemasTemplate: schemasTemplate2, apiRoute: apiRoute2, editPage: editPage2, aiConfig: aiConfig2, aiRoute: aiRoute2 } = await Promise.resolve().then(() => (init_templates(), templates_exports));
1171
+ const { canopyCmsConfig: canopyCmsConfig2, canopyContext: canopyContext2, schemasTemplate: schemasTemplate2, apiRoute: apiRoute2, editPage: editPage2, aiConfig: aiConfig2, aiRoute: aiRoute2, nextConfig: nextConfig2, middleware: middleware2 } = await Promise.resolve().then(() => (init_templates(), templates_exports));
1158
1172
  p.intro("CanopyCMS init");
1173
+ let authProvider;
1174
+ if (options.authProvider) {
1175
+ authProvider = options.authProvider;
1176
+ } else if (nonInteractive) {
1177
+ authProvider = "dev";
1178
+ } else {
1179
+ const choice = await p.select({
1180
+ message: "Which auth provider will you use in production?",
1181
+ options: [
1182
+ { value: "clerk", label: "Clerk (+ dev auth for local development)" },
1183
+ { value: "dev", label: "Dev auth only" }
1184
+ ],
1185
+ initialValue: "dev"
1186
+ });
1187
+ if (p.isCancel(choice)) {
1188
+ p.cancel("Init cancelled");
1189
+ return;
1190
+ }
1191
+ authProvider = choice;
1192
+ }
1193
+ let staticBuild;
1194
+ if (options.staticBuild !== void 0) {
1195
+ staticBuild = options.staticBuild;
1196
+ } else if (nonInteractive) {
1197
+ staticBuild = false;
1198
+ } else {
1199
+ const choice = await p.confirm({
1200
+ message: "Will you use dual-build (static public site + server CMS build)?",
1201
+ initialValue: false
1202
+ });
1203
+ if (p.isCancel(choice)) {
1204
+ p.cancel("Init cancelled");
1205
+ return;
1206
+ }
1207
+ staticBuild = choice;
1208
+ }
1209
+ const serverPageExt = staticBuild ? "page.server.tsx" : "page.tsx";
1210
+ const serverRouteExt = staticBuild ? "route.server.ts" : "route.ts";
1159
1211
  await writeFile(path6.join(projectDir, "canopycms.config.ts"), await canopyCmsConfig2({ mode }), writeOpts);
1160
- await writeFile(path6.join(projectDir, appDir, "lib/canopy.ts"), await canopyContext2({ configImport: configImportPath(appDir, 1) }), writeOpts);
1212
+ await writeFile(path6.join(projectDir, appDir, "lib/canopy.ts"), await canopyContext2({ configImport: configImportPath(appDir, 1), authProvider }), writeOpts);
1161
1213
  await writeFile(path6.join(projectDir, appDir, "schemas.ts"), await schemasTemplate2(), writeOpts);
1162
- await writeFile(path6.join(projectDir, appDir, "api/canopycms/[...canopycms]/route.ts"), await apiRoute2({
1214
+ await writeFile(path6.join(projectDir, appDir, `api/canopycms/[...canopycms]/${serverRouteExt}`), await apiRoute2({
1163
1215
  canopyImport: "../".repeat(3) + "lib/canopy"
1164
1216
  }), writeOpts);
1165
- await writeFile(path6.join(projectDir, appDir, "edit/page.tsx"), await editPage2({ configImport: configImportPath(appDir, 1) }), writeOpts);
1217
+ await writeFile(path6.join(projectDir, appDir, `edit/${serverPageExt}`), await editPage2({ configImport: configImportPath(appDir, 1), authProvider }), writeOpts);
1166
1218
  if (ai) {
1167
1219
  await writeFile(path6.join(projectDir, appDir, "ai/config.ts"), await aiConfig2(), writeOpts);
1168
1220
  await writeFile(path6.join(projectDir, appDir, "ai/[...path]/route.ts"), await aiRoute2({ configImport: configImportPath(appDir, 2) }), writeOpts);
1169
1221
  }
1222
+ await writeFile(path6.join(projectDir, "next.config.ts"), await nextConfig2({ staticBuild }), writeOpts);
1223
+ await writeFile(path6.join(projectDir, "middleware.ts"), await middleware2({ authProvider }), writeOpts);
1170
1224
  const gitignorePath = path6.join(projectDir, ".gitignore");
1171
1225
  if (await filePathExists(gitignorePath)) {
1172
1226
  const content = await fs5.readFile(gitignorePath, "utf-8");
@@ -1175,18 +1229,15 @@ async function init(options) {
1175
1229
  p.log.success("updated: .gitignore");
1176
1230
  }
1177
1231
  }
1232
+ const packages = authProvider === "clerk" ? "canopycms canopycms-next canopycms-auth-clerk canopycms-auth-dev" : "canopycms canopycms-next canopycms-auth-dev";
1178
1233
  p.note([
1179
1234
  "1. Install dependencies:",
1180
- ` npm install canopycms canopycms-next canopycms-auth-clerk canopycms-auth-dev`,
1181
- "",
1182
- "2. Wrap your Next.js config:",
1183
- " import { withCanopy } from 'canopycms-next'",
1184
- " export default withCanopy({ /* your config */ })",
1235
+ ` npm install ${packages}`,
1185
1236
  "",
1186
- "3. Customize " + appDir + "/schemas.ts with your content schema",
1237
+ "2. Customize " + appDir + "/schemas.ts with your content schema",
1187
1238
  "",
1188
- "4. Run: npm run dev",
1189
- "5. Visit: http://localhost:3000/edit"
1239
+ "3. Run: npm run dev",
1240
+ "4. Visit: http://localhost:3000/edit"
1190
1241
  ].join("\n"), "Next steps");
1191
1242
  p.outro("Done!");
1192
1243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,27 @@
1
1
  import { createNextCanopyContext } from 'canopycms-next'
2
- import { createClerkAuthPlugin } from 'canopycms-auth-clerk'
3
- import { createDevAuthPlugin } from 'canopycms-auth-dev'
2
+ {{AUTH_IMPORTS}}
4
3
  import config from '{{CONFIG_IMPORT}}'
5
4
  import { entrySchemaRegistry } from '../schemas'
6
5
 
7
6
  const canopyContextPromise = createNextCanopyContext({
8
7
  config: config.server,
9
- authPlugin:
10
- process.env.CANOPY_AUTH_MODE === 'clerk'
11
- ? createClerkAuthPlugin({ useOrganizationsAsGroups: true })
12
- : createDevAuthPlugin(),
8
+ authPlugin: {{AUTH_PLUGIN}},
13
9
  entrySchemaRegistry,
14
10
  })
15
11
 
12
+ // Export for server component pages
16
13
  export const getCanopy = async () => {
17
14
  const context = await canopyContextPromise
18
15
  return context.getCanopy()
19
16
  }
20
17
 
18
+ // Export for build-time functions (generateStaticParams, generateMetadata)
19
+ export const getCanopyForBuild = async () => {
20
+ const context = await canopyContextPromise
21
+ return context.getCanopyForBuild()
22
+ }
23
+
24
+ // Export for API routes
21
25
  export const getHandler = async () => {
22
26
  const context = await canopyContextPromise
23
27
  return context.handler
@@ -0,0 +1,16 @@
1
+ 'use client'
2
+
3
+ import { useState } from 'react'
4
+ import type { CanopyClientConfig } from 'canopycms'
5
+ import { useDevAuthConfig } from 'canopycms-auth-dev/client'
6
+ import { NextCanopyEditorPage } from 'canopycms-next/client'
7
+ import config from '{{CONFIG_IMPORT}}'
8
+
9
+ function EditPageWithAuth({ authConfig }: { authConfig: Pick<CanopyClientConfig, 'editor'> }) {
10
+ const [EditorPage] = useState(() => NextCanopyEditorPage(config.client(authConfig)))
11
+ return <EditorPage />
12
+ }
13
+
14
+ export default function EditPage() {
15
+ return <EditPageWithAuth authConfig={useDevAuthConfig()} />
16
+ }
@@ -1,32 +1,25 @@
1
1
  'use client'
2
2
 
3
- import { useClerkAuthConfig } from 'canopycms-auth-clerk/client'
3
+ import { useState } from 'react'
4
+ import type { CanopyClientConfig } from 'canopycms'
4
5
  import { useDevAuthConfig } from 'canopycms-auth-dev/client'
6
+ import { useClerkAuthConfig } from 'canopycms-auth-clerk/client'
5
7
  import { NextCanopyEditorPage } from 'canopycms-next/client'
6
8
  import config from '{{CONFIG_IMPORT}}'
7
9
 
8
- function useAuthConfig() {
9
- const authMode = process.env.NEXT_PUBLIC_CANOPY_AUTH_MODE || 'dev'
10
-
11
- if (authMode === 'dev') {
12
- // eslint-disable-next-line react-hooks/rules-of-hooks
13
- return useDevAuthConfig()
14
- }
15
-
16
- if (authMode === 'clerk') {
17
- // eslint-disable-next-line react-hooks/rules-of-hooks
18
- return useClerkAuthConfig()
19
- }
10
+ const authMode = process.env.NEXT_PUBLIC_CANOPY_AUTH_MODE || 'dev'
20
11
 
21
- throw new Error(
22
- `Invalid NEXT_PUBLIC_CANOPY_AUTH_MODE: "${authMode}". Must be "dev" or "clerk".`
23
- )
12
+ function EditPageWithAuth({ authConfig }: { authConfig: Pick<CanopyClientConfig, 'editor'> }) {
13
+ const [EditorPage] = useState(() => NextCanopyEditorPage(config.client(authConfig)))
14
+ return <EditorPage />
24
15
  }
25
16
 
26
- export default function EditPage() {
27
- const authConfig = useAuthConfig()
28
- const clientConfig = config.client(authConfig)
17
+ function DevEditPage() {
18
+ return <EditPageWithAuth authConfig={useDevAuthConfig()} />
19
+ }
29
20
 
30
- const EditorPage = NextCanopyEditorPage(clientConfig)
31
- return <EditorPage />
21
+ function ClerkEditPage() {
22
+ return <EditPageWithAuth authConfig={useClerkAuthConfig()} />
32
23
  }
24
+
25
+ export default authMode === 'clerk' ? ClerkEditPage : DevEditPage
@@ -0,0 +1,13 @@
1
+ import { clerkMiddleware, createRouteMatcher } from '@clerk/nextjs/server'
2
+
3
+ const isProtectedRoute = createRouteMatcher(['/edit(.*)', '/api/canopycms(.*)'])
4
+
5
+ export default clerkMiddleware(async (auth, req) => {
6
+ if (isProtectedRoute(req)) {
7
+ await auth.protect()
8
+ }
9
+ })
10
+
11
+ export const config = {
12
+ matcher: ['/edit(.*)', '/api/canopycms(.*)'],
13
+ }
@@ -0,0 +1,30 @@
1
+ import { NextResponse } from 'next/server'
2
+
3
+ // Protect CMS routes from unauthenticated access.
4
+ //
5
+ // For dev auth mode, no middleware protection is needed — this file is a passthrough.
6
+ // If you don't need auth protection, you can delete this file entirely.
7
+ //
8
+ // For Clerk auth, replace this file's contents with:
9
+ //
10
+ // import { clerkMiddleware, createRouteMatcher } from '@clerk/nextjs/server'
11
+ //
12
+ // const isProtectedRoute = createRouteMatcher(['/edit(.*)', '/api/canopycms(.*)'])
13
+ //
14
+ // export default clerkMiddleware(async (auth, req) => {
15
+ // if (isProtectedRoute(req)) {
16
+ // await auth.protect()
17
+ // }
18
+ // })
19
+ //
20
+ // export const config = {
21
+ // matcher: ['/edit(.*)', '/api/canopycms(.*)'],
22
+ // }
23
+
24
+ export default function middleware() {
25
+ return NextResponse.next()
26
+ }
27
+
28
+ export const config = {
29
+ matcher: ['/edit(.*)', '/api/canopycms(.*)'],
30
+ }
@@ -0,0 +1,13 @@
1
+ import { withCanopy } from 'canopycms-next'
2
+
3
+ const isCmsBuild = process.env.CANOPY_BUILD === 'cms'
4
+
5
+ // Dual-build: static export for the public site, standalone Node.js server for the CMS.
6
+ // If deploying the CMS build to Vercel or another platform that doesn't use standalone,
7
+ // change 'standalone' to the appropriate output mode for your platform.
8
+ export default withCanopy(
9
+ {
10
+ output: isCmsBuild ? 'standalone' : 'export',
11
+ },
12
+ { staticBuild: !isCmsBuild },
13
+ )
@@ -0,0 +1,5 @@
1
+ import { withCanopy } from 'canopycms-next'
2
+
3
+ export default withCanopy({
4
+ // Your Next.js config here
5
+ })
@@ -1,4 +1,4 @@
1
- import { defineEntrySchema } from 'canopycms'
1
+ import { defineEntrySchema, type TypeFromEntrySchema } from 'canopycms'
2
2
  import { createEntrySchemaRegistry } from 'canopycms/server'
3
3
 
4
4
  // Define your entry schemas here.
@@ -8,9 +8,11 @@ import { createEntrySchemaRegistry } from 'canopycms/server'
8
8
  export const pageSchema = defineEntrySchema([
9
9
  { name: 'title', type: 'string', label: 'Title' },
10
10
  { name: 'description', type: 'string', label: 'Description' },
11
- { name: 'body', type: 'markdown', label: 'Body' },
11
+ { name: 'body', type: 'markdown', label: 'Body', isBody: true },
12
12
  ])
13
13
 
14
+ export type PageContent = TypeFromEntrySchema<typeof pageSchema>
15
+
14
16
  export const entrySchemaRegistry = createEntrySchemaRegistry({
15
17
  pageSchema,
16
18
  })
@@ -7,6 +7,7 @@ export declare function canopyCmsConfig(options: {
7
7
  }): Promise<string>;
8
8
  export declare function canopyContext(options: {
9
9
  configImport: string;
10
+ authProvider: 'clerk' | 'dev';
10
11
  }): Promise<string>;
11
12
  export declare function schemasTemplate(): Promise<string>;
12
13
  export declare function apiRoute(options: {
@@ -14,11 +15,18 @@ export declare function apiRoute(options: {
14
15
  }): Promise<string>;
15
16
  export declare function editPage(options: {
16
17
  configImport: string;
18
+ authProvider: 'clerk' | 'dev';
17
19
  }): Promise<string>;
18
20
  export declare function aiConfig(): Promise<string>;
19
21
  export declare function aiRoute(options: {
20
22
  configImport: string;
21
23
  }): Promise<string>;
24
+ export declare function middleware(options: {
25
+ authProvider: 'clerk' | 'dev';
26
+ }): Promise<string>;
27
+ export declare function nextConfig(options: {
28
+ staticBuild: boolean;
29
+ }): Promise<string>;
22
30
  export declare function dockerfileCms(): Promise<string>;
23
31
  export declare function githubWorkflowCms(): Promise<string>;
24
32
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjF;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjF;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEzD"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjF;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlB;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEzD"}
@@ -16,7 +16,16 @@ export async function canopyCmsConfig(options) {
16
16
  }
17
17
  export async function canopyContext(options) {
18
18
  const template = await readTemplate('canopy.ts.template');
19
- return template.replace('{{CONFIG_IMPORT}}', options.configImport);
19
+ const authImports = options.authProvider === 'clerk'
20
+ ? "import { createClerkAuthPlugin } from 'canopycms-auth-clerk'\nimport { createDevAuthPlugin } from 'canopycms-auth-dev'"
21
+ : "import { createDevAuthPlugin } from 'canopycms-auth-dev'";
22
+ const authPlugin = options.authProvider === 'clerk'
23
+ ? "process.env.CANOPY_AUTH_MODE === 'clerk'\n ? createClerkAuthPlugin({ useOrganizationsAsGroups: true })\n : createDevAuthPlugin()"
24
+ : 'createDevAuthPlugin()';
25
+ return template
26
+ .replace('{{AUTH_IMPORTS}}', authImports)
27
+ .replace('{{AUTH_PLUGIN}}', authPlugin)
28
+ .replace('{{CONFIG_IMPORT}}', options.configImport);
20
29
  }
21
30
  export async function schemasTemplate() {
22
31
  return readTemplate('schemas.ts.template');
@@ -26,7 +35,8 @@ export async function apiRoute(options) {
26
35
  return template.replace('{{CANOPY_IMPORT}}', options.canopyImport);
27
36
  }
28
37
  export async function editPage(options) {
29
- const template = await readTemplate('edit-page.tsx.template');
38
+ const templateName = options.authProvider === 'dev' ? 'edit-page-dev.tsx.template' : 'edit-page.tsx.template';
39
+ const template = await readTemplate(templateName);
30
40
  return template.replace('{{CONFIG_IMPORT}}', options.configImport);
31
41
  }
32
42
  export async function aiConfig() {
@@ -36,6 +46,16 @@ export async function aiRoute(options) {
36
46
  const template = await readTemplate('ai-route.ts.template');
37
47
  return template.replace('{{CONFIG_IMPORT}}', options.configImport);
38
48
  }
49
+ export async function middleware(options) {
50
+ const templateName = options.authProvider === 'clerk' ? 'middleware-clerk.ts.template' : 'middleware.ts.template';
51
+ return readTemplate(templateName);
52
+ }
53
+ export async function nextConfig(options) {
54
+ const templateName = options.staticBuild
55
+ ? 'next.config-static.ts.template'
56
+ : 'next.config.ts.template';
57
+ return readTemplate(templateName);
58
+ }
39
59
  export async function dockerfileCms() {
40
60
  return readTemplate('Dockerfile.cms.template');
41
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAE5D,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAyB;IAC7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,8BAA8B,CAAC,CAAA;IACnE,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAiC;IACnE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,oBAAoB,CAAC,CAAA;IACzD,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAiC;IAC9D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,CAAA;IACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAiC;IAC9D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,wBAAwB,CAAC,CAAA;IAC7D,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAiC;IAC7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC,CAAA;IAC3D,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAE5D,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAyB;IAC7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,8BAA8B,CAAC,CAAA;IACnE,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAGnC;IACC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAEzD,MAAM,WAAW,GACf,OAAO,CAAC,YAAY,KAAK,OAAO;QAC9B,CAAC,CAAC,wHAAwH;QAC1H,CAAC,CAAC,0DAA0D,CAAA;IAEhE,MAAM,UAAU,GACd,OAAO,CAAC,YAAY,KAAK,OAAO;QAC9B,CAAC,CAAC,4IAA4I;QAC9I,CAAC,CAAC,uBAAuB,CAAA;IAE7B,OAAO,QAAQ;SACZ,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC;SACxC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC;SACtC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAiC;IAC9D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,CAAA;IACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAG9B;IACC,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,wBAAwB,CAAA;IAC1F,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAA;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAiC;IAC7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC,CAAA;IAC3D,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0C;IACzE,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,wBAAwB,CAAA;IAC9F,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAiC;IAChE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW;QACtC,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,yBAAyB,CAAA;IAC7B,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAA;AAChD,CAAC"}
@@ -9,6 +9,7 @@ export declare const fieldBaseSchema: z.ZodObject<{
9
9
  required: z.ZodOptional<z.ZodBoolean>;
10
10
  list: z.ZodOptional<z.ZodBoolean>;
11
11
  isTitle: z.ZodOptional<z.ZodBoolean>;
12
+ isBody: z.ZodOptional<z.ZodBoolean>;
12
13
  }, "strip", z.ZodTypeAny, {
13
14
  name: string;
14
15
  description?: string | undefined;
@@ -16,6 +17,7 @@ export declare const fieldBaseSchema: z.ZodObject<{
16
17
  required?: boolean | undefined;
17
18
  list?: boolean | undefined;
18
19
  isTitle?: boolean | undefined;
20
+ isBody?: boolean | undefined;
19
21
  }, {
20
22
  name: string;
21
23
  description?: string | undefined;
@@ -23,6 +25,7 @@ export declare const fieldBaseSchema: z.ZodObject<{
23
25
  required?: boolean | undefined;
24
26
  list?: boolean | undefined;
25
27
  isTitle?: boolean | undefined;
28
+ isBody?: boolean | undefined;
26
29
  }>;
27
30
  export declare const selectOptionSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
28
31
  label: z.ZodString;
@@ -51,6 +54,7 @@ export declare const primitiveFieldSchema: z.ZodObject<{
51
54
  required: z.ZodOptional<z.ZodBoolean>;
52
55
  list: z.ZodOptional<z.ZodBoolean>;
53
56
  isTitle: z.ZodOptional<z.ZodBoolean>;
57
+ isBody: z.ZodOptional<z.ZodBoolean>;
54
58
  } & {
55
59
  type: z.ZodEnum<["string", "number", "boolean", "datetime", "rich-text", "markdown", "mdx", "image", "code"]>;
56
60
  }, "strip", z.ZodTypeAny, {
@@ -61,6 +65,7 @@ export declare const primitiveFieldSchema: z.ZodObject<{
61
65
  required?: boolean | undefined;
62
66
  list?: boolean | undefined;
63
67
  isTitle?: boolean | undefined;
68
+ isBody?: boolean | undefined;
64
69
  }, {
65
70
  type: "string" | "number" | "boolean" | "code" | "datetime" | "rich-text" | "markdown" | "mdx" | "image";
66
71
  name: string;
@@ -69,6 +74,7 @@ export declare const primitiveFieldSchema: z.ZodObject<{
69
74
  required?: boolean | undefined;
70
75
  list?: boolean | undefined;
71
76
  isTitle?: boolean | undefined;
77
+ isBody?: boolean | undefined;
72
78
  }>;
73
79
  export declare const selectFieldSchema: z.ZodObject<{
74
80
  name: z.ZodString;
@@ -77,6 +83,7 @@ export declare const selectFieldSchema: z.ZodObject<{
77
83
  required: z.ZodOptional<z.ZodBoolean>;
78
84
  list: z.ZodOptional<z.ZodBoolean>;
79
85
  isTitle: z.ZodOptional<z.ZodBoolean>;
86
+ isBody: z.ZodOptional<z.ZodBoolean>;
80
87
  } & {
81
88
  type: z.ZodLiteral<"select">;
82
89
  options: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
@@ -101,6 +108,7 @@ export declare const selectFieldSchema: z.ZodObject<{
101
108
  required?: boolean | undefined;
102
109
  list?: boolean | undefined;
103
110
  isTitle?: boolean | undefined;
111
+ isBody?: boolean | undefined;
104
112
  }, {
105
113
  options: (string | {
106
114
  value: string;
@@ -113,6 +121,7 @@ export declare const selectFieldSchema: z.ZodObject<{
113
121
  required?: boolean | undefined;
114
122
  list?: boolean | undefined;
115
123
  isTitle?: boolean | undefined;
124
+ isBody?: boolean | undefined;
116
125
  }>;
117
126
  export declare const referenceFieldSchema: z.ZodObject<{
118
127
  name: z.ZodString;
@@ -121,6 +130,7 @@ export declare const referenceFieldSchema: z.ZodObject<{
121
130
  required: z.ZodOptional<z.ZodBoolean>;
122
131
  list: z.ZodOptional<z.ZodBoolean>;
123
132
  isTitle: z.ZodOptional<z.ZodBoolean>;
133
+ isBody: z.ZodOptional<z.ZodBoolean>;
124
134
  } & {
125
135
  type: z.ZodLiteral<"reference">;
126
136
  collections: z.ZodArray<z.ZodString, "many">;
@@ -148,6 +158,7 @@ export declare const referenceFieldSchema: z.ZodObject<{
148
158
  required?: boolean | undefined;
149
159
  list?: boolean | undefined;
150
160
  isTitle?: boolean | undefined;
161
+ isBody?: boolean | undefined;
151
162
  displayField?: string | undefined;
152
163
  }, {
153
164
  type: "reference";
@@ -162,6 +173,7 @@ export declare const referenceFieldSchema: z.ZodObject<{
162
173
  required?: boolean | undefined;
163
174
  list?: boolean | undefined;
164
175
  isTitle?: boolean | undefined;
176
+ isBody?: boolean | undefined;
165
177
  displayField?: string | undefined;
166
178
  }>;
167
179
  export declare const blockSchema: z.ZodObject<{
@@ -187,6 +199,7 @@ export declare const blockFieldSchema: z.ZodObject<{
187
199
  required: z.ZodOptional<z.ZodBoolean>;
188
200
  list: z.ZodOptional<z.ZodBoolean>;
189
201
  isTitle: z.ZodOptional<z.ZodBoolean>;
202
+ isBody: z.ZodOptional<z.ZodBoolean>;
190
203
  } & {
191
204
  type: z.ZodLiteral<"block">;
192
205
  templates: z.ZodArray<z.ZodObject<{
@@ -219,6 +232,7 @@ export declare const blockFieldSchema: z.ZodObject<{
219
232
  required?: boolean | undefined;
220
233
  list?: boolean | undefined;
221
234
  isTitle?: boolean | undefined;
235
+ isBody?: boolean | undefined;
222
236
  }, {
223
237
  type: "block";
224
238
  name: string;
@@ -233,6 +247,7 @@ export declare const blockFieldSchema: z.ZodObject<{
233
247
  required?: boolean | undefined;
234
248
  list?: boolean | undefined;
235
249
  isTitle?: boolean | undefined;
250
+ isBody?: boolean | undefined;
236
251
  }>;
237
252
  export declare const objectFieldSchema: z.ZodObject<{
238
253
  name: z.ZodString;
@@ -241,6 +256,7 @@ export declare const objectFieldSchema: z.ZodObject<{
241
256
  required: z.ZodOptional<z.ZodBoolean>;
242
257
  list: z.ZodOptional<z.ZodBoolean>;
243
258
  isTitle: z.ZodOptional<z.ZodBoolean>;
259
+ isBody: z.ZodOptional<z.ZodBoolean>;
244
260
  } & {
245
261
  type: z.ZodLiteral<"object">;
246
262
  fields: z.ZodArray<z.ZodLazy<z.ZodTypeAny>, "many">;
@@ -253,6 +269,7 @@ export declare const objectFieldSchema: z.ZodObject<{
253
269
  required?: boolean | undefined;
254
270
  list?: boolean | undefined;
255
271
  isTitle?: boolean | undefined;
272
+ isBody?: boolean | undefined;
256
273
  }, {
257
274
  type: "object";
258
275
  name: string;
@@ -262,6 +279,7 @@ export declare const objectFieldSchema: z.ZodObject<{
262
279
  required?: boolean | undefined;
263
280
  list?: boolean | undefined;
264
281
  isTitle?: boolean | undefined;
282
+ isBody?: boolean | undefined;
265
283
  }>;
266
284
  export declare const customFieldSchema: z.ZodLazy<z.ZodObject<{
267
285
  name: z.ZodString;
@@ -270,6 +288,7 @@ export declare const customFieldSchema: z.ZodLazy<z.ZodObject<{
270
288
  required: z.ZodOptional<z.ZodBoolean>;
271
289
  list: z.ZodOptional<z.ZodBoolean>;
272
290
  isTitle: z.ZodOptional<z.ZodBoolean>;
291
+ isBody: z.ZodOptional<z.ZodBoolean>;
273
292
  } & {
274
293
  type: z.ZodEffects<z.ZodString, string, string>;
275
294
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
@@ -279,6 +298,7 @@ export declare const customFieldSchema: z.ZodLazy<z.ZodObject<{
279
298
  required: z.ZodOptional<z.ZodBoolean>;
280
299
  list: z.ZodOptional<z.ZodBoolean>;
281
300
  isTitle: z.ZodOptional<z.ZodBoolean>;
301
+ isBody: z.ZodOptional<z.ZodBoolean>;
282
302
  } & {
283
303
  type: z.ZodEffects<z.ZodString, string, string>;
284
304
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
@@ -288,6 +308,7 @@ export declare const customFieldSchema: z.ZodLazy<z.ZodObject<{
288
308
  required: z.ZodOptional<z.ZodBoolean>;
289
309
  list: z.ZodOptional<z.ZodBoolean>;
290
310
  isTitle: z.ZodOptional<z.ZodBoolean>;
311
+ isBody: z.ZodOptional<z.ZodBoolean>;
291
312
  } & {
292
313
  type: z.ZodEffects<z.ZodString, string, string>;
293
314
  }, z.ZodTypeAny, "passthrough">>>;
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/field.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;IAM7B,CAAA;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;IAMhC,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;EAE/B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAA;AAQF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAKtB,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG3B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAW7B,CAAA;AAGD,QAAA,MAAM,gBAAgB,EAAE,CAAC,CAAC,UAMxB,CAAA;AAGF,QAAA,MAAM,WAAW,EAAE,CAAC,CAAC,UAAyE,CAAA;AAG9F,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/field.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;EAQ1B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;IAM7B,CAAA;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;IAMhC,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE/B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAA;AAQF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAKtB,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG3B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAW7B,CAAA;AAGD,QAAA,MAAM,gBAAgB,EAAE,CAAC,CAAC,UAMxB,CAAA;AAGF,QAAA,MAAM,WAAW,EAAE,CAAC,CAAC,UAAyE,CAAA;AAG9F,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAA"}
@@ -11,6 +11,7 @@ export const fieldBaseSchema = z.object({
11
11
  required: z.boolean().optional(),
12
12
  list: z.boolean().optional(),
13
13
  isTitle: z.boolean().optional(),
14
+ isBody: z.boolean().optional(),
14
15
  });
15
16
  // Select option schema
16
17
  export const selectOptionSchema = z.union([