canopycms 0.0.16 → 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.
- package/README.md +120 -34
- package/dist/ai/generate.js +3 -3
- package/dist/ai/handler.js +5 -5
- package/dist/ai/index.js +3 -3
- package/dist/ai/json-to-markdown.js +1 -1
- package/dist/ai/json-to-markdown.js.map +1 -1
- package/dist/ai/resolve-branch.js +2 -2
- package/dist/api/__test__/mock-client.js +1 -1
- package/dist/api/assets.js +1 -1
- package/dist/api/branch-merge.js +3 -3
- package/dist/api/branch-review.js +4 -4
- package/dist/api/branch-status.js +8 -8
- package/dist/api/branch-withdraw.js +5 -5
- package/dist/api/branch.js +9 -9
- package/dist/api/comments.js +4 -4
- package/dist/api/content.d.ts.map +1 -1
- package/dist/api/content.js +17 -16
- package/dist/api/content.js.map +1 -1
- package/dist/api/entries.js +8 -8
- package/dist/api/github-sync.js +3 -3
- package/dist/api/groups.js +4 -4
- package/dist/api/guards.js +1 -1
- package/dist/api/index.js +3 -3
- package/dist/api/permissions.js +4 -4
- package/dist/api/reference-options.js +5 -5
- package/dist/api/resolve-references.js +4 -4
- package/dist/api/route-builder.js +1 -1
- package/dist/api/schema.js +5 -5
- package/dist/api/settings-helpers.js +1 -1
- package/dist/api/user.js +1 -1
- package/dist/api/validators.js +3 -3
- package/dist/asset-store.js +1 -1
- package/dist/auth/cache.js +2 -2
- package/dist/auth/caching-auth-plugin.js +1 -1
- package/dist/auth/file-based-auth-cache.js +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/authorization/branch.js +1 -1
- package/dist/authorization/content.js +3 -3
- package/dist/authorization/groups/index.js +2 -2
- package/dist/authorization/groups/loader.js +4 -4
- package/dist/authorization/index.js +8 -8
- package/dist/authorization/path.js +1 -1
- package/dist/authorization/permissions/index.js +2 -2
- package/dist/authorization/permissions/loader.js +3 -3
- package/dist/authorization/permissions/schema.js +1 -1
- package/dist/authorization/test-utils.js +1 -1
- package/dist/authorization/validation.js +1 -1
- package/dist/branch-metadata.js +3 -3
- package/dist/branch-registry.js +2 -2
- package/dist/branch-schema-cache.js +2 -2
- package/dist/branch-workspace.js +6 -6
- package/dist/build/generate-ai-content.js +4 -4
- package/dist/build/index.js +1 -1
- package/dist/cli/cli.js +5 -5
- package/dist/cli/generate-ai-content.js +40 -29
- package/dist/cli/init.d.ts +5 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +68 -25
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/sync.js +1 -1
- package/dist/cli/template-files/canopy.ts.template +10 -6
- package/dist/cli/template-files/edit-page-dev.tsx.template +16 -0
- package/dist/cli/template-files/edit-page.tsx.template +14 -21
- package/dist/cli/template-files/middleware-clerk.ts.template +13 -0
- package/dist/cli/template-files/middleware.ts.template +30 -0
- package/dist/cli/template-files/next.config-static.ts.template +13 -0
- package/dist/cli/template-files/next.config.ts.template +5 -0
- package/dist/cli/template-files/schemas.ts.template +4 -2
- package/dist/cli/templates.d.ts +8 -0
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +22 -2
- package/dist/cli/templates.js.map +1 -1
- package/dist/client.js +9 -9
- package/dist/config/flatten.js +2 -2
- package/dist/config/helpers.js +3 -3
- package/dist/config/index.js +9 -9
- package/dist/config/schemas/collection.js +1 -1
- package/dist/config/schemas/config.js +2 -2
- package/dist/config/schemas/field.d.ts +21 -0
- package/dist/config/schemas/field.d.ts.map +1 -1
- package/dist/config/schemas/field.js +2 -1
- package/dist/config/schemas/field.js.map +1 -1
- package/dist/config/types.d.ts +7 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config-test.js +2 -2
- package/dist/config.js +2 -2
- package/dist/content-id-index.js +2 -2
- package/dist/content-listing.d.ts +3 -2
- package/dist/content-listing.d.ts.map +1 -1
- package/dist/content-listing.js +15 -12
- package/dist/content-listing.js.map +1 -1
- package/dist/content-reader.d.ts.map +1 -1
- package/dist/content-reader.js +18 -14
- package/dist/content-reader.js.map +1 -1
- package/dist/content-store.d.ts +5 -0
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +34 -24
- package/dist/content-store.js.map +1 -1
- package/dist/content-tree.d.ts.map +1 -1
- package/dist/content-tree.js +8 -3
- package/dist/content-tree.js.map +1 -1
- package/dist/context.d.ts +38 -7
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +38 -6
- package/dist/context.js.map +1 -1
- package/dist/editor/BranchManager.js +4 -4
- package/dist/editor/CanopyEditor.js +3 -3
- package/dist/editor/CanopyEditorPage.js +1 -1
- package/dist/editor/CommentsPanel.js +1 -1
- package/dist/editor/Editor.js +18 -18
- package/dist/editor/EntryNavigator.js +1 -1
- package/dist/editor/FormRenderer.js +12 -12
- package/dist/editor/GroupManager.js +1 -1
- package/dist/editor/PermissionManager.js +1 -1
- package/dist/editor/client-reference-resolver.js +1 -1
- package/dist/editor/comments/BranchComments.js +1 -1
- package/dist/editor/comments/EntryComments.js +1 -1
- package/dist/editor/comments/FieldWrapper.js +1 -1
- package/dist/editor/comments/InlineCommentThread.js +1 -1
- package/dist/editor/comments/ThreadCarousel.js +1 -1
- package/dist/editor/components/EditorHeader.js +1 -1
- package/dist/editor/components/UserBadge.js +1 -1
- package/dist/editor/components/index.js +3 -3
- package/dist/editor/context/ApiClientContext.js +1 -1
- package/dist/editor/context/index.js +2 -2
- package/dist/editor/editor-config.js +2 -2
- package/dist/editor/editor-config.js.map +1 -1
- package/dist/editor/editor-utils.js +1 -1
- package/dist/editor/fields/BlockField.js +1 -1
- package/dist/editor/fields/ObjectField.js +1 -1
- package/dist/editor/fields/ReferenceField.js +1 -1
- package/dist/editor/group-manager/GroupCard.js +1 -1
- package/dist/editor/group-manager/InternalGroupsTab.js +1 -1
- package/dist/editor/group-manager/MemberList.js +1 -1
- package/dist/editor/group-manager/index.js +9 -9
- package/dist/editor/hooks/__test__/test-utils.js +3 -3
- package/dist/editor/hooks/index.js +11 -11
- package/dist/editor/hooks/useBranchActions.js +1 -1
- package/dist/editor/hooks/useBranchManager.js +1 -1
- package/dist/editor/hooks/useCommentSystem.js +2 -2
- package/dist/editor/hooks/useDraftManager.js +1 -1
- package/dist/editor/hooks/useEntryManager.js +3 -3
- package/dist/editor/hooks/useGroupManager.js +1 -1
- package/dist/editor/hooks/usePermissionManager.js +1 -1
- package/dist/editor/hooks/useReferenceResolution.js +1 -1
- package/dist/editor/hooks/useSchemaManager.js +1 -1
- package/dist/editor/hooks/useUserContext.js +1 -1
- package/dist/editor/permission-manager/PermissionEditor.js +4 -4
- package/dist/editor/permission-manager/PermissionLevelBadge.js +1 -1
- package/dist/editor/permission-manager/PermissionTree.js +3 -3
- package/dist/editor/permission-manager/UserSelector.js +1 -1
- package/dist/editor/permission-manager/hooks/usePermissionTree.js +2 -2
- package/dist/editor/permission-manager/index.js +6 -6
- package/dist/editor/preview-bridge.js +1 -1
- package/dist/editor/schema-editor/CollectionEditor.js +2 -2
- package/dist/editor/schema-editor/index.js +2 -2
- package/dist/entry-schema-registry.d.ts.map +1 -1
- package/dist/entry-schema-registry.js +12 -3
- package/dist/entry-schema-registry.js.map +1 -1
- package/dist/entry-schema.d.ts +1 -0
- package/dist/entry-schema.d.ts.map +1 -1
- package/dist/entry-schema.js.map +1 -1
- package/dist/git-manager.js +4 -4
- package/dist/github-service.d.ts.map +1 -1
- package/dist/github-service.js +12 -8
- package/dist/github-service.js.map +1 -1
- package/dist/http/handler.js +7 -7
- package/dist/http/index.js +3 -3
- package/dist/http/router.js +12 -12
- package/dist/id.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.js +2 -2
- package/dist/operating-mode/client.js +1 -1
- package/dist/operating-mode/index.js +2 -2
- package/dist/paths/branch.js +1 -1
- package/dist/paths/index.d.ts +1 -1
- package/dist/paths/index.d.ts.map +1 -1
- package/dist/paths/index.js +6 -6
- package/dist/paths/index.js.map +1 -1
- package/dist/paths/normalize.d.ts +8 -0
- package/dist/paths/normalize.d.ts.map +1 -1
- package/dist/paths/normalize.js +17 -0
- package/dist/paths/normalize.js.map +1 -1
- package/dist/paths/test-utils.js +1 -1
- package/dist/paths/validation.js +1 -1
- package/dist/reference-resolver.js +1 -1
- package/dist/schema/index.js +2 -2
- package/dist/schema/meta-loader.js +1 -1
- package/dist/schema/resolver.js +1 -1
- package/dist/schema/schema-store.js +4 -4
- package/dist/server.js +13 -13
- package/dist/services.js +12 -12
- package/dist/settings-branch-utils.js +1 -1
- package/dist/settings-workspace.js +3 -3
- package/dist/task-queue/index.js +1 -1
- package/dist/task-queue/task-queue.js +1 -1
- package/dist/url-path-resolver.d.ts +16 -0
- package/dist/url-path-resolver.d.ts.map +1 -0
- package/dist/url-path-resolver.js +31 -0
- package/dist/url-path-resolver.js.map +1 -0
- package/dist/user.js +1 -1
- package/dist/utils/body-field.d.ts +18 -0
- package/dist/utils/body-field.d.ts.map +1 -0
- package/dist/utils/body-field.js +39 -0
- package/dist/utils/body-field.js.map +1 -0
- package/dist/utils/fs.js +1 -1
- package/dist/utils/sanitize-href.d.ts +19 -0
- package/dist/utils/sanitize-href.d.ts.map +1 -0
- package/dist/utils/sanitize-href.js +30 -0
- package/dist/utils/sanitize-href.js.map +1 -0
- package/dist/validation/reference-validator.js +2 -2
- package/dist/worker/cms-worker.js +5 -5
- package/dist/worker/task-queue-config.js +1 -1
- package/dist/worker/task-queue.js +2 -2
- package/package.json +1 -1
|
@@ -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
|
})
|
package/dist/cli/templates.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/cli/templates.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export * from './editor/EditorPanes';
|
|
3
|
-
export * from './editor/EntryNavigator';
|
|
4
|
-
export * from './editor/Editor';
|
|
5
|
-
export * from './editor/preview-bridge';
|
|
6
|
-
export * from './editor/canopy-path';
|
|
7
|
-
export * from './editor/theme';
|
|
8
|
-
export * from './editor/editor-config';
|
|
9
|
-
export * from './editor/CanopyEditor';
|
|
10
|
-
export * from './editor/CanopyEditorPage';
|
|
2
|
+
export * from './editor/EditorPanes.js';
|
|
3
|
+
export * from './editor/EntryNavigator.js';
|
|
4
|
+
export * from './editor/Editor.js';
|
|
5
|
+
export * from './editor/preview-bridge.js';
|
|
6
|
+
export * from './editor/canopy-path.js';
|
|
7
|
+
export * from './editor/theme.js';
|
|
8
|
+
export * from './editor/editor-config.js';
|
|
9
|
+
export * from './editor/CanopyEditor.js';
|
|
10
|
+
export * from './editor/CanopyEditorPage.js';
|
|
11
11
|
//# sourceMappingURL=client.js.map
|
package/dist/config/flatten.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Schema flattening utilities for O(1) lookups.
|
|
3
3
|
*/
|
|
4
4
|
import { join, normalize } from 'pathe';
|
|
5
|
-
import { createLogicalPath } from '../paths/normalize';
|
|
6
|
-
import { ROOT_COLLECTION_ID } from '../paths/types';
|
|
5
|
+
import { createLogicalPath } from '../paths/normalize.js';
|
|
6
|
+
import { ROOT_COLLECTION_ID } from '../paths/types.js';
|
|
7
7
|
/**
|
|
8
8
|
* Normalize a path value by splitting, filtering empty segments, and rejoining.
|
|
9
9
|
*/
|
package/dist/config/helpers.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Helper functions for authoring CanopyCMS configuration files.
|
|
3
3
|
*/
|
|
4
|
-
import { validateCanopyConfig } from './validation';
|
|
4
|
+
import { validateCanopyConfig } from './validation.js';
|
|
5
5
|
/**
|
|
6
6
|
* Helper for authoring typed config files (canopycms.config.ts).
|
|
7
7
|
* Performs runtime validation using the CanopyConfig schema.
|
|
@@ -60,8 +60,8 @@ export function defineCanopyConfig(config) {
|
|
|
60
60
|
*
|
|
61
61
|
* // canopycms.config.ts
|
|
62
62
|
* import { composeCanopyConfig } from 'canopycms'
|
|
63
|
-
* import { postsConfig } from './posts.config'
|
|
64
|
-
* import { pagesConfig } from './pages.config'
|
|
63
|
+
* import { postsConfig } from './posts.config.js'
|
|
64
|
+
* import { pagesConfig } from './pages.config.js'
|
|
65
65
|
*
|
|
66
66
|
* export const config = composeCanopyConfig(postsConfig, pagesConfig)
|
|
67
67
|
* ```
|
package/dist/config/index.js
CHANGED
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
11
|
// Re-export type constants
|
|
12
|
-
export { primitiveFieldTypes, fieldTypes } from './types';
|
|
12
|
+
export { primitiveFieldTypes, fieldTypes } from './types.js';
|
|
13
13
|
// Re-export schemas (for advanced use cases)
|
|
14
|
-
export { CanopyConfigSchema, getConfigDefaults, DEFAULT_PROD_WORKSPACE } from './schemas/config';
|
|
15
|
-
export { fieldSchema, blockSchema, selectOptionSchema, referenceOptionSchema, } from './schemas/field';
|
|
16
|
-
export { collectionSchema, rootCollectionSchema, entryTypeSchema, relativePathSchema, } from './schemas/collection';
|
|
17
|
-
export { permissionTargetSchema, pathPermissionSchema } from './schemas/permissions';
|
|
18
|
-
export { mediaSchema } from './schemas/media';
|
|
14
|
+
export { CanopyConfigSchema, getConfigDefaults, DEFAULT_PROD_WORKSPACE } from './schemas/config.js';
|
|
15
|
+
export { fieldSchema, blockSchema, selectOptionSchema, referenceOptionSchema, } from './schemas/field.js';
|
|
16
|
+
export { collectionSchema, rootCollectionSchema, entryTypeSchema, relativePathSchema, } from './schemas/collection.js';
|
|
17
|
+
export { permissionTargetSchema, pathPermissionSchema } from './schemas/permissions.js';
|
|
18
|
+
export { mediaSchema } from './schemas/media.js';
|
|
19
19
|
// Re-export utilities
|
|
20
|
-
export { flattenSchema, normalizePathValue, normalizeSchemaPathsRoot } from './flatten';
|
|
21
|
-
export { validateCanopyConfig, ensureSelectFieldsHaveOptions } from './validation';
|
|
22
|
-
export { defineCanopyConfig, composeCanopyConfig } from './helpers';
|
|
20
|
+
export { flattenSchema, normalizePathValue, normalizeSchemaPathsRoot } from './flatten.js';
|
|
21
|
+
export { validateCanopyConfig, ensureSelectFieldsHaveOptions } from './validation.js';
|
|
22
|
+
export { defineCanopyConfig, composeCanopyConfig } from './helpers.js';
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Main CanopyConfig Zod schema - composes all sub-schemas.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { rootCollectionSchema, relativePathSchema } from './collection';
|
|
6
|
-
import { mediaSchema } from './media';
|
|
5
|
+
import { rootCollectionSchema, relativePathSchema } from './collection.js';
|
|
6
|
+
import { mediaSchema } from './media.js';
|
|
7
7
|
// Default value schemas
|
|
8
8
|
export const defaultBranchAccessSchema = z.enum(['allow', 'deny']).default('deny');
|
|
9
9
|
export const defaultPathAccessSchema = z.enum(['allow', 'deny']).default('deny');
|
|
@@ -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
|
|
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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Zod schemas for field configuration validation.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { primitiveFieldTypes, fieldTypes } from '../types';
|
|
5
|
+
import { primitiveFieldTypes, fieldTypes } from '../types.js';
|
|
6
6
|
// Base field schema - shared properties
|
|
7
7
|
export const fieldBaseSchema = z.object({
|
|
8
8
|
name: z.string().min(1),
|
|
@@ -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([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/config/schemas/field.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1D,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/config/schemas/field.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -40,6 +40,13 @@ export interface BaseFieldConfig {
|
|
|
40
40
|
list?: boolean;
|
|
41
41
|
/** Mark this field as the display title for entries using this schema. At most one field per schema. */
|
|
42
42
|
isTitle?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Mark this field as the body content for md/mdx entries.
|
|
45
|
+
* The field must be type 'markdown' or 'mdx'. At most one per schema.
|
|
46
|
+
* When present, the file's markdown content is mapped to this field,
|
|
47
|
+
* making TypeFromEntrySchema include it without manual `& { body: string }`.
|
|
48
|
+
*/
|
|
49
|
+
isBody?: boolean;
|
|
43
50
|
}
|
|
44
51
|
export interface PrimitiveFieldConfig extends BaseFieldConfig {
|
|
45
52
|
type: PrimitiveFieldType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAG5D,eAAO,MAAM,mBAAmB,uGAUtB,CAAA;AAEV,eAAO,MAAM,UAAU,iJAMb,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AACrE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AACnD,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA;AACjD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAGrE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;AAExD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAA;IAC7B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAA;IACpB,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAGD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AACpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAGvE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wGAAwG;IACxG,OAAO,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration validation utilities.
|
|
3
3
|
*/
|
|
4
|
-
import { CanopyConfigSchema } from './schemas/config';
|
|
5
|
-
import { normalizePathValue, normalizeSchemaPathsRoot } from './flatten';
|
|
4
|
+
import { CanopyConfigSchema } from './schemas/config.js';
|
|
5
|
+
import { normalizePathValue, normalizeSchemaPathsRoot } from './flatten.js';
|
|
6
6
|
/**
|
|
7
7
|
* Recursively check that all select fields have options defined.
|
|
8
8
|
* Throws an error if a select field is missing options.
|
package/dist/config-test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineCanopyConfig, flattenSchema } from './config';
|
|
2
|
-
import { createTestCanopyServices, } from './services';
|
|
1
|
+
import { defineCanopyConfig, flattenSchema } from './config/index.js';
|
|
2
|
+
import { createTestCanopyServices, } from './services.js';
|
|
3
3
|
const FALLBACK_AUTHOR = {
|
|
4
4
|
gitBotAuthorName: 'CanopyCMS Test Bot',
|
|
5
5
|
gitBotAuthorEmail: 'canopycms-test@example.com',
|
package/dist/config.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* CanopyCMS Configuration
|
|
3
3
|
*
|
|
4
4
|
* This file re-exports from the config module for backward compatibility.
|
|
5
|
-
* New code should import directly from './config/index' or './config'.
|
|
5
|
+
* New code should import directly from './config/index.js' or './config'.
|
|
6
6
|
*
|
|
7
7
|
* @module config
|
|
8
8
|
*/
|
|
9
9
|
// Re-export everything from the config module
|
|
10
|
-
export * from './config/index';
|
|
10
|
+
export * from './config/index.js';
|
|
11
11
|
//# sourceMappingURL=config.js.map
|
package/dist/content-id-index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { isValidId } from './id';
|
|
4
|
-
import { isNotFoundError } from './utils/error';
|
|
3
|
+
import { isValidId } from './id.js';
|
|
4
|
+
import { isNotFoundError } from './utils/error.js';
|
|
5
5
|
/** Logical path representing entries stored at the branch root (no parent collection). Rare in practice. */
|
|
6
6
|
const EMPTY_LOGICAL_PATH = '';
|
|
7
7
|
/**
|
|
@@ -24,11 +24,12 @@ export interface CollectionListItem {
|
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Read entry data from a file.
|
|
27
|
-
* For md/mdx: returns frontmatter fields plus
|
|
27
|
+
* For md/mdx: returns frontmatter fields plus the body content (mapped to the
|
|
28
|
+
* field name specified by `bodyFieldName`, which defaults to `'body'`).
|
|
28
29
|
* For json: returns the parsed JSON object.
|
|
29
30
|
* Returns an empty object on read/parse failure.
|
|
30
31
|
*/
|
|
31
|
-
export declare const readEntryData: (filePath: string, format: ContentFormat) => Promise<Record<string, unknown>>;
|
|
32
|
+
export declare const readEntryData: (filePath: string, format: ContentFormat, bodyFieldName?: string) => Promise<Record<string, unknown>>;
|
|
32
33
|
/**
|
|
33
34
|
* Parse a filename: {type}.{slug}.{id}.{ext}
|
|
34
35
|
* Returns { type, slug, id } or null if the filename doesn't match the pattern.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-listing.d.ts","sourceRoot":"","sources":["../src/content-listing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"content-listing.d.ts","sourceRoot":"","sources":["../src/content-listing.ts"],"names":[],"mappings":"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"}
|
package/dist/content-listing.js
CHANGED
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
import fs from 'node:fs/promises';
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
import matter from 'gray-matter';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
9
|
+
import { findBodyFieldName } from './utils/body-field.js';
|
|
10
|
+
import { getFormatExtension } from './utils/format.js';
|
|
11
|
+
import { resolveCollectionPath } from './content-id-index.js';
|
|
12
|
+
import { validateAndNormalizePath } from './paths/index.js';
|
|
13
|
+
import { isNotFoundError, getErrorMessage } from './utils/error.js';
|
|
14
|
+
import { createDebugLogger } from './utils/debug.js';
|
|
15
|
+
import { isValidId } from './id.js';
|
|
16
|
+
import { ContentStoreError } from './content-store.js';
|
|
16
17
|
const log = createDebugLogger({ prefix: 'ContentListing' });
|
|
17
18
|
/**
|
|
18
19
|
* Validate and normalize a path relative to root.
|
|
@@ -21,17 +22,18 @@ const log = createDebugLogger({ prefix: 'ContentListing' });
|
|
|
21
22
|
const normalizePath = (root, target) => {
|
|
22
23
|
const result = validateAndNormalizePath(root, target);
|
|
23
24
|
if (!result.valid) {
|
|
24
|
-
throw new ContentStoreError(result.error || 'Path traversal detected');
|
|
25
|
+
throw new ContentStoreError(result.error || 'Path traversal detected', 'VALIDATION');
|
|
25
26
|
}
|
|
26
27
|
return result.normalizedPath;
|
|
27
28
|
};
|
|
28
29
|
/**
|
|
29
30
|
* Read entry data from a file.
|
|
30
|
-
* For md/mdx: returns frontmatter fields plus
|
|
31
|
+
* For md/mdx: returns frontmatter fields plus the body content (mapped to the
|
|
32
|
+
* field name specified by `bodyFieldName`, which defaults to `'body'`).
|
|
31
33
|
* For json: returns the parsed JSON object.
|
|
32
34
|
* Returns an empty object on read/parse failure.
|
|
33
35
|
*/
|
|
34
|
-
export const readEntryData = async (filePath, format) => {
|
|
36
|
+
export const readEntryData = async (filePath, format, bodyFieldName = 'body') => {
|
|
35
37
|
try {
|
|
36
38
|
const raw = await fs.readFile(filePath, 'utf8');
|
|
37
39
|
if (format === 'json') {
|
|
@@ -40,7 +42,7 @@ export const readEntryData = async (filePath, format) => {
|
|
|
40
42
|
const parsed = matter(raw);
|
|
41
43
|
const data = parsed.data ?? {};
|
|
42
44
|
if (parsed.content) {
|
|
43
|
-
data
|
|
45
|
+
data[bodyFieldName] = parsed.content;
|
|
44
46
|
}
|
|
45
47
|
return data;
|
|
46
48
|
}
|
|
@@ -225,9 +227,10 @@ export const listCollectionEntries = async (root, collection) => {
|
|
|
225
227
|
const { type: entryTypeName, slug, id: contentId } = parsed;
|
|
226
228
|
const entryType = entryTypes.find((e) => e.name === entryTypeName);
|
|
227
229
|
const format = entryType?.format || 'json';
|
|
230
|
+
const bodyField = entryType?.schema ? findBodyFieldName(entryType.schema) : 'body';
|
|
228
231
|
const [stats, data] = await Promise.all([
|
|
229
232
|
fs.stat(absolutePath),
|
|
230
|
-
readEntryData(absolutePath, format),
|
|
233
|
+
readEntryData(absolutePath, format, bodyField),
|
|
231
234
|
]);
|
|
232
235
|
const item = {
|
|
233
236
|
logicalPath: `${collection.logicalPath}/${slug}`,
|