canopycms 0.0.67-int.90 → 0.0.67
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 +30 -3
- package/dist/ai/generate.js +1 -27
- package/dist/ai/handler.d.ts +0 -4
- package/dist/ai/handler.js +0 -11
- package/dist/ai/index.d.ts +1 -8
- package/dist/ai/index.js +1 -8
- package/dist/ai/json-to-markdown.js +15 -58
- package/dist/ai/resolve-branch.d.ts +2 -7
- package/dist/ai/resolve-branch.js +2 -8
- package/dist/ai/strip-mdx.d.ts +5 -13
- package/dist/ai/strip-mdx.js +5 -17
- package/dist/ai/to-plain-text.d.ts +10 -28
- package/dist/ai/to-plain-text.js +10 -28
- package/dist/ai/transform-components.d.ts +2 -4
- package/dist/ai/transform-components.js +8 -19
- package/dist/ai/types.d.ts +5 -10
- package/dist/api/admin-branch-health.d.ts +4 -12
- package/dist/api/admin-branch-health.js +26 -66
- package/dist/api/admin.d.ts +4 -12
- package/dist/api/admin.js +10 -26
- package/dist/api/assets.d.ts +0 -25
- package/dist/api/assets.js +50 -91
- package/dist/api/branch-merge.d.ts +1 -1
- package/dist/api/branch-merge.js +0 -2
- package/dist/api/branch-review.d.ts +0 -8
- package/dist/api/branch-review.js +0 -13
- package/dist/api/branch-status.d.ts +0 -3
- package/dist/api/branch-status.js +8 -33
- package/dist/api/branch-withdraw.d.ts +0 -1
- package/dist/api/branch-withdraw.js +6 -9
- package/dist/api/branch.d.ts +7 -12
- package/dist/api/branch.js +7 -44
- package/dist/api/client.d.ts +71 -224
- package/dist/api/client.js +82 -233
- package/dist/api/comments.d.ts +2 -4
- package/dist/api/comments.js +0 -17
- package/dist/api/content.d.ts +0 -6
- package/dist/api/content.js +66 -142
- package/dist/api/entries-constants.d.ts +5 -9
- package/dist/api/entries-constants.js +5 -9
- package/dist/api/entries.d.ts +8 -13
- package/dist/api/entries.js +20 -51
- package/dist/api/github-sync.d.ts +2 -4
- package/dist/api/github-sync.js +4 -8
- package/dist/api/groups.d.ts +3 -0
- package/dist/api/groups.js +8 -21
- package/dist/api/guards.d.ts +4 -16
- package/dist/api/guards.js +3 -22
- package/dist/api/index.d.ts +4 -4
- package/dist/api/permissions.d.ts +2 -0
- package/dist/api/permissions.js +18 -40
- package/dist/api/reference-options.d.ts +0 -1
- package/dist/api/reference-options.js +3 -11
- package/dist/api/request-body-hash.d.ts +12 -23
- package/dist/api/request-body-hash.js +12 -23
- package/dist/api/resolve-references.d.ts +0 -1
- package/dist/api/resolve-references.js +13 -28
- package/dist/api/route-builder.d.ts +3 -7
- package/dist/api/route-builder.js +1 -1
- package/dist/api/routes.d.ts +12 -0
- package/dist/api/routes.js +47 -0
- package/dist/api/schema.d.ts +23 -33
- package/dist/api/schema.js +20 -74
- package/dist/api/settings-helpers.js +4 -5
- package/dist/api/types.d.ts +0 -5
- package/dist/api/user.js +0 -5
- package/dist/api/validators.d.ts +14 -52
- package/dist/api/validators.js +14 -52
- package/dist/assets/asset-prefixes.d.ts +4 -8
- package/dist/assets/asset-prefixes.js +4 -8
- package/dist/assets/asset-src.d.ts +5 -22
- package/dist/assets/asset-src.js +5 -21
- package/dist/assets/factory.d.ts +1 -2
- package/dist/assets/factory.js +1 -2
- package/dist/assets/finalize.d.ts +3 -1
- package/dist/assets/finalize.js +3 -1
- package/dist/assets/index.d.ts +3 -3
- package/dist/assets/index.js +1 -1
- package/dist/assets/keys.d.ts +5 -3
- package/dist/assets/keys.js +6 -3
- package/dist/assets/pipeline.d.ts +3 -2
- package/dist/assets/pipeline.js +22 -56
- package/dist/assets/sharp-loader.d.ts +2 -10
- package/dist/assets/sharp-loader.js +2 -10
- package/dist/assets/store-local.d.ts +1 -2
- package/dist/assets/store-local.js +1 -2
- package/dist/assets/store-s3.d.ts +3 -4
- package/dist/assets/svg-sanitizer.d.ts +6 -14
- package/dist/assets/svg-sanitizer.js +6 -14
- package/dist/assets/transform-directives.d.ts +3 -4
- package/dist/assets/transform-directives.js +1 -1
- package/dist/assets/transform.d.ts +19 -30
- package/dist/assets/transform.js +18 -31
- package/dist/auth/cache.d.ts +2 -3
- package/dist/auth/cache.js +2 -3
- package/dist/auth/caching-auth-plugin.d.ts +11 -22
- package/dist/auth/caching-auth-plugin.js +12 -14
- package/dist/auth/context-helpers.d.ts +6 -20
- package/dist/auth/context-helpers.js +5 -17
- package/dist/auth/file-based-auth-cache.d.ts +10 -21
- package/dist/auth/file-based-auth-cache.js +23 -51
- package/dist/auth/plugin.d.ts +29 -61
- package/dist/auth/plugin.js +9 -13
- package/dist/auth/types.d.ts +11 -20
- package/dist/authorization/branch.d.ts +30 -49
- package/dist/authorization/branch.js +16 -42
- package/dist/authorization/content.d.ts +11 -40
- package/dist/authorization/content.js +13 -45
- package/dist/authorization/groups/index.d.ts +0 -3
- package/dist/authorization/groups/index.js +0 -3
- package/dist/authorization/groups/loader.d.ts +14 -28
- package/dist/authorization/groups/loader.js +14 -38
- package/dist/authorization/groups/schema.d.ts +0 -6
- package/dist/authorization/groups/schema.js +4 -7
- package/dist/authorization/helpers.d.ts +9 -28
- package/dist/authorization/helpers.js +9 -28
- package/dist/authorization/index.d.ts +3 -25
- package/dist/authorization/index.js +3 -35
- package/dist/authorization/path.d.ts +6 -13
- package/dist/authorization/path.js +8 -25
- package/dist/authorization/permissions/index.d.ts +0 -3
- package/dist/authorization/permissions/index.js +0 -3
- package/dist/authorization/permissions/loader.d.ts +14 -27
- package/dist/authorization/permissions/loader.js +14 -32
- package/dist/authorization/permissions/schema.d.ts +1 -6
- package/dist/authorization/permissions/schema.js +6 -13
- package/dist/authorization/protected-branch.d.ts +36 -65
- package/dist/authorization/protected-branch.js +29 -41
- package/dist/authorization/settings-file-store.d.ts +38 -81
- package/dist/authorization/settings-file-store.js +38 -79
- package/dist/authorization/types.d.ts +4 -26
- package/dist/authorization/types.js +0 -6
- package/dist/authorization/validation.d.ts +1 -23
- package/dist/authorization/validation.js +1 -24
- package/dist/branch-health.d.ts +39 -67
- package/dist/branch-health.js +27 -43
- package/dist/branch-metadata-file.d.ts +16 -32
- package/dist/branch-metadata-file.js +13 -26
- package/dist/branch-metadata.d.ts +49 -80
- package/dist/branch-metadata.js +57 -87
- package/dist/branch-registry.d.ts +26 -64
- package/dist/branch-registry.js +44 -93
- package/dist/branch-schema-cache.d.ts +34 -124
- package/dist/branch-schema-cache.js +49 -155
- package/dist/branch-workspace.d.ts +4 -4
- package/dist/branch-workspace.js +15 -19
- package/dist/build/generate-ai-content.d.ts +1 -0
- package/dist/build/generate-ai-content.js +12 -25
- package/dist/build-canopy.d.ts +17 -27
- package/dist/build-canopy.js +16 -23
- package/dist/build-mode.d.ts +25 -27
- package/dist/build-mode.js +25 -29
- package/dist/cli/cli.d.ts +15 -26
- package/dist/cli/cli.js +601 -978
- package/dist/cli/generate-ai-content.js +351 -628
- package/dist/cli/github-app-manifest.d.ts +84 -0
- package/dist/cli/github-app-manifest.js +161 -0
- package/dist/cli/init-github-app.d.ts +110 -444
- package/dist/cli/init-github-app.js +236 -773
- package/dist/cli/init.js +39 -80
- package/dist/cli/migrate.d.ts +13 -10
- package/dist/cli/migrate.js +22 -30
- package/dist/cli/project-detect.d.ts +17 -31
- package/dist/cli/project-detect.js +31 -42
- package/dist/cli/project-root.d.ts +4 -11
- package/dist/cli/project-root.js +4 -11
- package/dist/cli/prompt.d.ts +10 -0
- package/dist/cli/prompt.js +67 -0
- package/dist/cli/sync.d.ts +0 -8
- package/dist/cli/sync.js +8 -28
- package/dist/cli/template-files/middleware.ts.template +15 -29
- package/dist/cli/templates.d.ts +2 -12
- package/dist/cli/templates.js +4 -4
- package/dist/client.d.ts +1 -1
- package/dist/comment-store.d.ts +32 -53
- package/dist/comment-store.js +32 -52
- package/dist/config/flatten.d.ts +0 -3
- package/dist/config/flatten.js +2 -12
- package/dist/config/helpers.js +2 -2
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.js +1 -4
- package/dist/config/schemas/collection.d.ts +0 -8
- package/dist/config/schemas/collection.js +0 -10
- package/dist/config/schemas/config.d.ts +6 -78
- package/dist/config/schemas/config.js +38 -54
- package/dist/config/schemas/field.d.ts +2 -242
- package/dist/config/schemas/field.js +9 -20
- package/dist/config/schemas/media.js +1 -1
- package/dist/config/schemas/permissions.js +0 -2
- package/dist/config/schemas/url.d.ts +5 -6
- package/dist/config/schemas/url.js +5 -6
- package/dist/config/types.d.ts +45 -33
- package/dist/config/types.js +0 -1
- package/dist/config.d.ts +1 -8
- package/dist/config.js +1 -9
- package/dist/content-id-index.d.ts +76 -188
- package/dist/content-id-index.js +79 -230
- package/dist/content-index-generation.d.ts +27 -48
- package/dist/content-index-generation.js +35 -84
- package/dist/content-index-registry.d.ts +15 -24
- package/dist/content-index-registry.js +5 -9
- package/dist/content-listing.d.ts +64 -107
- package/dist/content-listing.js +68 -118
- package/dist/content-reader.d.ts +20 -29
- package/dist/content-reader.js +10 -18
- package/dist/content-store.d.ts +210 -336
- package/dist/content-store.js +413 -657
- package/dist/content-tree.d.ts +44 -86
- package/dist/content-tree.js +26 -54
- package/dist/context.d.ts +67 -94
- package/dist/context.js +53 -72
- package/dist/dev-content-watcher.d.ts +18 -18
- package/dist/dev-content-watcher.js +41 -44
- package/dist/editor/BranchManager.d.ts +3 -6
- package/dist/editor/BranchManager.js +24 -44
- package/dist/editor/CanopyEditor.js +5 -2
- package/dist/editor/CommentsPanel.js +0 -2
- package/dist/editor/Editor.js +19 -76
- package/dist/editor/EditorAuthGate.d.ts +27 -0
- package/dist/editor/EditorAuthGate.js +140 -0
- package/dist/editor/EntryNavigator.js +0 -20
- package/dist/editor/FormRenderer.d.ts +1 -2
- package/dist/editor/FormRenderer.js +8 -23
- package/dist/editor/admin/SystemHealthPanel.js +20 -37
- package/dist/editor/admin/useSystemHealth.d.ts +2 -3
- package/dist/editor/admin/useSystemHealth.js +10 -12
- package/dist/editor/client-reference-resolver.d.ts +2 -5
- package/dist/editor/client-reference-resolver.js +2 -19
- package/dist/editor/comments/BranchComments.js +0 -4
- package/dist/editor/comments/EntryComments.js +0 -4
- package/dist/editor/comments/FieldWrapper.js +0 -4
- package/dist/editor/comments/InlineCommentThread.js +0 -2
- package/dist/editor/comments/ThreadCarousel.d.ts +0 -58
- package/dist/editor/comments/ThreadCarousel.js +0 -12
- package/dist/editor/components/EditorFooter.d.ts +0 -8
- package/dist/editor/components/EditorFooter.js +0 -5
- package/dist/editor/components/EditorHeader.d.ts +0 -31
- package/dist/editor/components/EditorHeader.js +21 -71
- package/dist/editor/components/EditorSidebar.d.ts +0 -19
- package/dist/editor/components/EditorSidebar.js +0 -16
- package/dist/editor/components/EntryCreateModal.d.ts +4 -4
- package/dist/editor/components/EntryCreateModal.js +7 -22
- package/dist/editor/components/RenameEntryModal.js +0 -4
- package/dist/editor/components/UserBadge.js +0 -10
- package/dist/editor/components/index.js +0 -2
- package/dist/editor/context/ApiClientContext.d.ts +8 -7
- package/dist/editor/context/ApiClientContext.js +39 -11
- package/dist/editor/context/AssetContext.d.ts +7 -17
- package/dist/editor/context/AssetContext.js +7 -17
- package/dist/editor/context/EditorIdentityContext.d.ts +13 -0
- package/dist/editor/context/EditorIdentityContext.js +7 -0
- package/dist/editor/context/EditorStateContext.d.ts +10 -41
- package/dist/editor/context/EditorStateContext.js +7 -23
- package/dist/editor/context/SWRProvider.d.ts +3 -6
- package/dist/editor/context/index.d.ts +1 -20
- package/dist/editor/context/index.js +1 -20
- package/dist/editor/editor-utils.d.ts +8 -47
- package/dist/editor/editor-utils.js +19 -72
- package/dist/editor/fields/BlockField.d.ts +2 -2
- package/dist/editor/fields/BlockField.js +1 -2
- package/dist/editor/fields/CodeField.d.ts +0 -1
- package/dist/editor/fields/CodeField.js +0 -1
- package/dist/editor/fields/DateTimeField.d.ts +15 -22
- package/dist/editor/fields/DateTimeField.js +17 -26
- package/dist/editor/fields/ImageField.d.ts +2 -2
- package/dist/editor/fields/ImageField.js +8 -14
- package/dist/editor/fields/InlineGroupField.d.ts +0 -1
- package/dist/editor/fields/InlineGroupField.js +0 -1
- package/dist/editor/fields/MarkdownField.d.ts +0 -1
- package/dist/editor/fields/MarkdownField.js +6 -11
- package/dist/editor/fields/MdxImageDialog.d.ts +1 -1
- package/dist/editor/fields/MdxImageDialog.js +0 -1
- package/dist/editor/fields/NumberField.d.ts +9 -19
- package/dist/editor/fields/NumberField.js +11 -22
- package/dist/editor/fields/NumberListField.d.ts +7 -10
- package/dist/editor/fields/NumberListField.js +7 -10
- package/dist/editor/fields/ObjectField.d.ts +5 -8
- package/dist/editor/fields/ObjectField.js +0 -1
- package/dist/editor/fields/ReferenceField.d.ts +1 -1
- package/dist/editor/fields/ReferenceField.js +11 -16
- package/dist/editor/fields/SelectField.d.ts +2 -2
- package/dist/editor/fields/SelectField.js +0 -1
- package/dist/editor/fields/StringListField.d.ts +0 -4
- package/dist/editor/fields/StringListField.js +4 -9
- package/dist/editor/fields/TextField.d.ts +0 -1
- package/dist/editor/fields/TextField.js +0 -1
- package/dist/editor/fields/ToggleField.d.ts +0 -1
- package/dist/editor/fields/ToggleField.js +0 -1
- package/dist/editor/fields/entry-link/EntryLinkContext.js +2 -4
- package/dist/editor/fields/entry-link/InsertEntryLink.d.ts +0 -3
- package/dist/editor/fields/entry-link/InsertEntryLink.js +0 -4
- package/dist/editor/group-manager/ExternalGroupsTab.d.ts +0 -3
- package/dist/editor/group-manager/ExternalGroupsTab.js +0 -1
- package/dist/editor/group-manager/GroupCard.d.ts +0 -3
- package/dist/editor/group-manager/GroupForm.d.ts +0 -3
- package/dist/editor/group-manager/InternalGroupsTab.d.ts +0 -3
- package/dist/editor/group-manager/InternalGroupsTab.js +0 -2
- package/dist/editor/group-manager/MemberList.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.js +0 -3
- package/dist/editor/group-manager/hooks/useGroupState.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useGroupState.js +0 -5
- package/dist/editor/group-manager/hooks/useUserSearch.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useUserSearch.js +0 -3
- package/dist/editor/group-manager/index.d.ts +0 -6
- package/dist/editor/group-manager/index.js +0 -10
- package/dist/editor/group-manager/types.d.ts +2 -5
- package/dist/editor/group-manager/types.js +0 -3
- package/dist/editor/hooks/index.d.ts +6 -11
- package/dist/editor/hooks/index.js +6 -12
- package/dist/editor/hooks/useBranchActions.d.ts +0 -14
- package/dist/editor/hooks/useBranchActions.js +0 -22
- package/dist/editor/hooks/useBranchManager.d.ts +2 -48
- package/dist/editor/hooks/useBranchManager.js +4 -64
- package/dist/editor/hooks/useBranchesData.d.ts +7 -6
- package/dist/editor/hooks/useBranchesData.js +7 -6
- package/dist/editor/hooks/useCommentSystem.d.ts +0 -49
- package/dist/editor/hooks/useCommentSystem.js +1 -36
- package/dist/editor/hooks/useDraftManager.d.ts +2 -35
- package/dist/editor/hooks/useDraftManager.js +23 -64
- package/dist/editor/hooks/useEditorLayout.d.ts +0 -20
- package/dist/editor/hooks/useEditorLayout.js +0 -23
- package/dist/editor/hooks/useEntriesData.d.ts +1 -0
- package/dist/editor/hooks/useEntriesData.js +2 -3
- package/dist/editor/hooks/useEntryLinkResolution.d.ts +2 -2
- package/dist/editor/hooks/useEntryLinkResolution.js +2 -2
- package/dist/editor/hooks/useEntryManager.d.ts +2 -27
- package/dist/editor/hooks/useEntryManager.js +29 -78
- package/dist/editor/hooks/useGroupManager.d.ts +0 -21
- package/dist/editor/hooks/useGroupManager.js +0 -21
- package/dist/editor/hooks/usePermissionManager.d.ts +0 -20
- package/dist/editor/hooks/usePermissionManager.js +0 -20
- package/dist/editor/hooks/useReferenceResolution.d.ts +2 -33
- package/dist/editor/hooks/useReferenceResolution.js +1 -48
- package/dist/editor/hooks/useSchemaManager.d.ts +8 -27
- package/dist/editor/hooks/useSchemaManager.js +0 -19
- package/dist/editor/hooks/useUserContext.d.ts +2 -9
- package/dist/editor/hooks/useUserContext.js +10 -10
- package/dist/editor/hooks/useUserMetadata.d.ts +0 -2
- package/dist/editor/hooks/useUserMetadata.js +0 -3
- package/dist/editor/media/AssetCard.d.ts +0 -1
- package/dist/editor/media/AssetCard.js +1 -2
- package/dist/editor/media/CropStep.d.ts +0 -1
- package/dist/editor/media/CropStep.js +0 -1
- package/dist/editor/media/MediaLibrary.d.ts +1 -2
- package/dist/editor/media/MediaLibrary.js +1 -2
- package/dist/editor/media/MediaLibraryBody.d.ts +0 -1
- package/dist/editor/media/MediaLibraryBody.js +0 -1
- package/dist/editor/media/crop-math.d.ts +1 -1
- package/dist/editor/media/crop-math.js +1 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts +0 -3
- package/dist/editor/permission-manager/PermissionEditor.d.ts +0 -4
- package/dist/editor/permission-manager/PermissionEditor.js +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.d.ts +0 -7
- package/dist/editor/permission-manager/PermissionLevelBadge.js +0 -4
- package/dist/editor/permission-manager/PermissionTree.d.ts +0 -4
- package/dist/editor/permission-manager/UserSelector.d.ts +0 -3
- package/dist/editor/permission-manager/constants.d.ts +0 -3
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +0 -3
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +0 -10
- package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts +0 -14
- package/dist/editor/permission-manager/hooks/usePermissionTree.js +0 -11
- package/dist/editor/permission-manager/index.d.ts +0 -7
- package/dist/editor/permission-manager/index.js +0 -16
- package/dist/editor/permission-manager/types.d.ts +2 -12
- package/dist/editor/permission-manager/types.js +0 -3
- package/dist/editor/permission-manager/utils.d.ts +0 -28
- package/dist/editor/permission-manager/utils.js +9 -23
- package/dist/editor/preview-bridge.d.ts +5 -1
- package/dist/editor/preview-bridge.js +4 -4
- package/dist/editor/schema-editor/CollectionEditor.d.ts +0 -5
- package/dist/editor/schema-editor/CollectionEditor.js +9 -31
- package/dist/editor/schema-editor/EntryTypeEditor.d.ts +0 -6
- package/dist/editor/schema-editor/EntryTypeEditor.js +3 -24
- package/dist/editor/schema-editor/index.d.ts +0 -7
- package/dist/editor/schema-editor/index.js +0 -7
- package/dist/editor/utils/env.d.ts +3 -18
- package/dist/editor/utils/env.js +6 -25
- package/dist/entry-link-resolver.d.ts +13 -35
- package/dist/entry-link-resolver.js +20 -53
- package/dist/entry-schema-registry.d.ts +20 -60
- package/dist/entry-schema-registry.js +20 -69
- package/dist/entry-schema.d.ts +118 -223
- package/dist/entry-schema.js +46 -91
- package/dist/git-manager.d.ts +101 -200
- package/dist/git-manager.js +211 -384
- package/dist/github-service.d.ts +34 -75
- package/dist/github-service.js +37 -91
- package/dist/http/handler.d.ts +6 -37
- package/dist/http/handler.js +65 -120
- package/dist/http/router.d.ts +15 -32
- package/dist/http/router.js +34 -99
- package/dist/http/types.d.ts +15 -40
- package/dist/http/types.js +3 -7
- package/dist/id.d.ts +4 -10
- package/dist/id.js +4 -10
- package/dist/index.js +6 -9
- package/dist/operating-mode/client-safe-strategy.d.ts +7 -14
- package/dist/operating-mode/client-safe-strategy.js +8 -28
- package/dist/operating-mode/client-unsafe-strategy.d.ts +6 -16
- package/dist/operating-mode/client-unsafe-strategy.js +9 -34
- package/dist/operating-mode/client.d.ts +3 -10
- package/dist/operating-mode/client.js +3 -8
- package/dist/operating-mode/deployment-name-fixtures.d.ts +14 -18
- package/dist/operating-mode/deployment-name-fixtures.js +14 -18
- package/dist/operating-mode/deployment-name.d.ts +19 -29
- package/dist/operating-mode/deployment-name.js +29 -47
- package/dist/operating-mode/index.d.ts +4 -25
- package/dist/operating-mode/index.js +9 -31
- package/dist/operating-mode/mode-env.d.ts +32 -54
- package/dist/operating-mode/mode-env.js +36 -58
- package/dist/operating-mode/types.d.ts +24 -72
- package/dist/operating-mode/types.js +1 -7
- package/dist/paths/branch-name.d.ts +30 -40
- package/dist/paths/branch-name.js +30 -40
- package/dist/paths/branch.d.ts +4 -18
- package/dist/paths/branch.js +6 -22
- package/dist/paths/index.d.ts +2 -13
- package/dist/paths/index.js +3 -23
- package/dist/paths/normalize-server.d.ts +3 -15
- package/dist/paths/normalize-server.js +3 -15
- package/dist/paths/normalize.d.ts +13 -33
- package/dist/paths/normalize.js +13 -33
- package/dist/paths/resolve.d.ts +4 -17
- package/dist/paths/resolve.js +4 -22
- package/dist/paths/types.d.ts +12 -34
- package/dist/paths/types.js +5 -7
- package/dist/paths/validation.d.ts +22 -119
- package/dist/paths/validation.js +30 -148
- package/dist/reference-resolver.d.ts +0 -13
- package/dist/reference-resolver.js +0 -18
- package/dist/resolve-canopy-user.d.ts +16 -18
- package/dist/resolve-canopy-user.js +17 -26
- package/dist/resource-generation.d.ts +16 -25
- package/dist/resource-generation.js +34 -97
- package/dist/schema/meta-loader.d.ts +2 -14
- package/dist/schema/meta-loader.js +15 -64
- package/dist/schema/resolver.d.ts +1 -4
- package/dist/schema/resolver.js +1 -6
- package/dist/schema/schema-store-types.d.ts +0 -12
- package/dist/schema/schema-store.d.ts +61 -138
- package/dist/schema/schema-store.js +85 -282
- package/dist/schema/types.d.ts +0 -4
- package/dist/server.d.ts +62 -93
- package/dist/server.js +63 -94
- package/dist/services.d.ts +23 -47
- package/dist/services.js +55 -98
- package/dist/settings-workspace.d.ts +17 -30
- package/dist/settings-workspace.js +51 -81
- package/dist/static/index.d.ts +26 -52
- package/dist/static/index.js +33 -67
- package/dist/{worker/task-queue.d.ts → task-queue/cms-task-queue.d.ts} +7 -9
- package/dist/task-queue/cms-task-queue.js +13 -0
- package/dist/task-queue/task-queue-config.d.ts +3 -0
- package/dist/{worker → task-queue}/task-queue-config.js +1 -6
- package/dist/task-queue/task-queue.d.ts +16 -22
- package/dist/task-queue/task-queue.js +20 -44
- package/dist/task-queue/types.d.ts +0 -1
- package/dist/task-queue/worker-status.d.ts +35 -0
- package/dist/task-queue/worker-status.js +40 -0
- package/dist/types.d.ts +40 -51
- package/dist/url-collision.d.ts +26 -40
- package/dist/url-collision.js +47 -63
- package/dist/url-exclusivity-fixtures.d.ts +15 -20
- package/dist/url-exclusivity-fixtures.js +14 -19
- package/dist/url-path-resolver.d.ts +8 -16
- package/dist/url-path-resolver.js +19 -29
- package/dist/user.d.ts +8 -21
- package/dist/user.js +10 -19
- package/dist/utils/async-mutex.js +4 -6
- package/dist/utils/atomic-write.d.ts +2 -11
- package/dist/utils/atomic-write.js +2 -11
- package/dist/utils/body-field.d.ts +8 -15
- package/dist/utils/body-field.js +8 -15
- package/dist/utils/content-serialize.d.ts +18 -24
- package/dist/utils/content-serialize.js +109 -160
- package/dist/utils/content-write-lock.d.ts +51 -106
- package/dist/utils/content-write-lock.js +66 -111
- package/dist/utils/debug.d.ts +7 -23
- package/dist/utils/debug.js +7 -23
- package/dist/utils/entry-url.d.ts +11 -23
- package/dist/utils/entry-url.js +11 -26
- package/dist/utils/error.d.ts +25 -90
- package/dist/utils/error.js +60 -147
- package/dist/utils/flatten-group-fields.d.ts +5 -7
- package/dist/utils/flatten-group-fields.js +5 -7
- package/dist/utils/format.d.ts +1 -5
- package/dist/utils/format.js +1 -5
- package/dist/utils/fs.d.ts +3 -4
- package/dist/utils/fs.js +3 -4
- package/dist/utils/git.d.ts +52 -83
- package/dist/utils/git.js +79 -125
- package/dist/utils/logger.d.ts +35 -50
- package/dist/utils/logger.js +35 -52
- package/dist/utils/provisioning-lock.d.ts +23 -35
- package/dist/utils/provisioning-lock.js +49 -69
- package/dist/utils/sanitize-href.d.ts +5 -10
- package/dist/utils/sanitize-href.js +8 -18
- package/dist/utils/title-field.d.ts +17 -20
- package/dist/utils/title-field.js +18 -27
- package/dist/utils/typed-filename.d.ts +20 -48
- package/dist/utils/typed-filename.js +25 -61
- package/dist/utils/url-prefix.d.ts +3 -3
- package/dist/utils/url-prefix.js +3 -3
- package/dist/validation/block-structural-keys.d.ts +16 -31
- package/dist/validation/block-structural-keys.js +19 -29
- package/dist/validation/deletion-checker.d.ts +0 -34
- package/dist/validation/deletion-checker.js +1 -43
- package/dist/validation/entry-link-validator.d.ts +6 -13
- package/dist/validation/entry-link-validator.js +4 -13
- package/dist/validation/entry-type-reference-validator.d.ts +13 -18
- package/dist/validation/entry-type-reference-validator.js +13 -18
- package/dist/validation/entry-validator.d.ts +13 -25
- package/dist/validation/entry-validator.js +15 -32
- package/dist/validation/field-traversal.d.ts +3 -30
- package/dist/validation/field-traversal.js +1 -32
- package/dist/validation/reference-validator.d.ts +5 -24
- package/dist/validation/reference-validator.js +5 -30
- package/dist/worker/cms-worker.d.ts +172 -232
- package/dist/worker/cms-worker.js +241 -333
- package/dist/worker/git-sync.d.ts +32 -133
- package/dist/worker/git-sync.js +129 -191
- package/dist/worker/github-auth.d.ts +13 -19
- package/dist/worker/github-auth.js +13 -19
- package/dist/worker/history-rewrite.d.ts +53 -66
- package/dist/worker/history-rewrite.js +54 -60
- package/dist/worker/log.d.ts +24 -41
- package/dist/worker/log.js +25 -42
- package/dist/worker/rebase.d.ts +20 -110
- package/dist/worker/rebase.js +279 -354
- package/dist/worker/task-runner.d.ts +32 -66
- package/dist/worker/task-runner.js +126 -162
- package/dist/worker/worker-context.d.ts +41 -81
- package/package.json +4 -4
- package/dist/cli/template-files/middleware-clerk.ts.template +0 -37
- package/dist/worker/task-queue-config.d.ts +0 -8
- package/dist/worker/task-queue.js +0 -19
- package/dist/worker/worker-status.d.ts +0 -47
- package/dist/worker/worker-status.js +0 -52
|
@@ -2,31 +2,6 @@
|
|
|
2
2
|
* Zod schemas for field configuration validation.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
export declare const fieldBaseSchema: z.ZodObject<{
|
|
6
|
-
name: z.ZodString;
|
|
7
|
-
label: z.ZodOptional<z.ZodString>;
|
|
8
|
-
description: z.ZodOptional<z.ZodString>;
|
|
9
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
-
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
name: string;
|
|
15
|
-
description?: string | undefined;
|
|
16
|
-
label?: string | undefined;
|
|
17
|
-
required?: boolean | undefined;
|
|
18
|
-
list?: boolean | undefined;
|
|
19
|
-
isTitle?: boolean | undefined;
|
|
20
|
-
isBody?: boolean | undefined;
|
|
21
|
-
}, {
|
|
22
|
-
name: string;
|
|
23
|
-
description?: string | undefined;
|
|
24
|
-
label?: string | undefined;
|
|
25
|
-
required?: boolean | undefined;
|
|
26
|
-
list?: boolean | undefined;
|
|
27
|
-
isTitle?: boolean | undefined;
|
|
28
|
-
isBody?: boolean | undefined;
|
|
29
|
-
}>;
|
|
30
5
|
export declare const selectOptionSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
31
6
|
label: z.ZodString;
|
|
32
7
|
value: z.ZodString;
|
|
@@ -47,35 +22,6 @@ export declare const referenceOptionSchema: z.ZodUnion<[z.ZodString, z.ZodObject
|
|
|
47
22
|
value: string;
|
|
48
23
|
label: string;
|
|
49
24
|
}>]>;
|
|
50
|
-
export declare const primitiveFieldSchema: z.ZodObject<{
|
|
51
|
-
name: z.ZodString;
|
|
52
|
-
label: z.ZodOptional<z.ZodString>;
|
|
53
|
-
description: z.ZodOptional<z.ZodString>;
|
|
54
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
55
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
56
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
57
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
-
} & {
|
|
59
|
-
type: z.ZodEnum<["string", "number", "boolean", "datetime", "markdown", "mdx", "code"]>;
|
|
60
|
-
}, "strip", z.ZodTypeAny, {
|
|
61
|
-
name: string;
|
|
62
|
-
type: "string" | "number" | "boolean" | "code" | "datetime" | "markdown" | "mdx";
|
|
63
|
-
description?: string | undefined;
|
|
64
|
-
label?: string | undefined;
|
|
65
|
-
required?: boolean | undefined;
|
|
66
|
-
list?: boolean | undefined;
|
|
67
|
-
isTitle?: boolean | undefined;
|
|
68
|
-
isBody?: boolean | undefined;
|
|
69
|
-
}, {
|
|
70
|
-
name: string;
|
|
71
|
-
type: "string" | "number" | "boolean" | "code" | "datetime" | "markdown" | "mdx";
|
|
72
|
-
description?: string | undefined;
|
|
73
|
-
label?: string | undefined;
|
|
74
|
-
required?: boolean | undefined;
|
|
75
|
-
list?: boolean | undefined;
|
|
76
|
-
isTitle?: boolean | undefined;
|
|
77
|
-
isBody?: boolean | undefined;
|
|
78
|
-
}>;
|
|
79
25
|
export declare const imageFieldSchema: z.ZodObject<{
|
|
80
26
|
name: z.ZodString;
|
|
81
27
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -111,53 +57,7 @@ export declare const imageFieldSchema: z.ZodObject<{
|
|
|
111
57
|
aspect?: string | undefined;
|
|
112
58
|
altOptional?: boolean | undefined;
|
|
113
59
|
}>;
|
|
114
|
-
|
|
115
|
-
name: z.ZodString;
|
|
116
|
-
label: z.ZodOptional<z.ZodString>;
|
|
117
|
-
description: z.ZodOptional<z.ZodString>;
|
|
118
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
119
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
120
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
121
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
122
|
-
} & {
|
|
123
|
-
type: z.ZodLiteral<"select">;
|
|
124
|
-
options: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
125
|
-
label: z.ZodString;
|
|
126
|
-
value: z.ZodString;
|
|
127
|
-
}, "strip", z.ZodTypeAny, {
|
|
128
|
-
value: string;
|
|
129
|
-
label: string;
|
|
130
|
-
}, {
|
|
131
|
-
value: string;
|
|
132
|
-
label: string;
|
|
133
|
-
}>]>, "many">;
|
|
134
|
-
}, "strip", z.ZodTypeAny, {
|
|
135
|
-
name: string;
|
|
136
|
-
options: (string | {
|
|
137
|
-
value: string;
|
|
138
|
-
label: string;
|
|
139
|
-
})[];
|
|
140
|
-
type: "select";
|
|
141
|
-
description?: string | undefined;
|
|
142
|
-
label?: string | undefined;
|
|
143
|
-
required?: boolean | undefined;
|
|
144
|
-
list?: boolean | undefined;
|
|
145
|
-
isTitle?: boolean | undefined;
|
|
146
|
-
isBody?: boolean | undefined;
|
|
147
|
-
}, {
|
|
148
|
-
name: string;
|
|
149
|
-
options: (string | {
|
|
150
|
-
value: string;
|
|
151
|
-
label: string;
|
|
152
|
-
})[];
|
|
153
|
-
type: "select";
|
|
154
|
-
description?: string | undefined;
|
|
155
|
-
label?: string | undefined;
|
|
156
|
-
required?: boolean | undefined;
|
|
157
|
-
list?: boolean | undefined;
|
|
158
|
-
isTitle?: boolean | undefined;
|
|
159
|
-
isBody?: boolean | undefined;
|
|
160
|
-
}>;
|
|
60
|
+
/** @internal Exported for tests. */
|
|
161
61
|
export declare const referenceFieldSchema: z.ZodObject<{
|
|
162
62
|
name: z.ZodString;
|
|
163
63
|
label: z.ZodOptional<z.ZodString>;
|
|
@@ -233,145 +133,5 @@ export declare const blockSchema: z.ZodObject<{
|
|
|
233
133
|
description?: string | undefined;
|
|
234
134
|
label?: string | undefined;
|
|
235
135
|
}>;
|
|
236
|
-
export declare const blockFieldSchema: z.ZodObject<{
|
|
237
|
-
name: z.ZodString;
|
|
238
|
-
label: z.ZodOptional<z.ZodString>;
|
|
239
|
-
description: z.ZodOptional<z.ZodString>;
|
|
240
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
241
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
242
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
243
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
244
|
-
} & {
|
|
245
|
-
type: z.ZodLiteral<"block">;
|
|
246
|
-
templates: z.ZodArray<z.ZodObject<{
|
|
247
|
-
name: z.ZodString;
|
|
248
|
-
label: z.ZodOptional<z.ZodString>;
|
|
249
|
-
description: z.ZodOptional<z.ZodString>;
|
|
250
|
-
fields: z.ZodArray<z.ZodLazy<z.ZodTypeAny>, "many">;
|
|
251
|
-
}, "strip", z.ZodTypeAny, {
|
|
252
|
-
name: string;
|
|
253
|
-
fields: any[];
|
|
254
|
-
description?: string | undefined;
|
|
255
|
-
label?: string | undefined;
|
|
256
|
-
}, {
|
|
257
|
-
name: string;
|
|
258
|
-
fields: any[];
|
|
259
|
-
description?: string | undefined;
|
|
260
|
-
label?: string | undefined;
|
|
261
|
-
}>, "many">;
|
|
262
|
-
}, "strip", z.ZodTypeAny, {
|
|
263
|
-
name: string;
|
|
264
|
-
type: "block";
|
|
265
|
-
templates: {
|
|
266
|
-
name: string;
|
|
267
|
-
fields: any[];
|
|
268
|
-
description?: string | undefined;
|
|
269
|
-
label?: string | undefined;
|
|
270
|
-
}[];
|
|
271
|
-
description?: string | undefined;
|
|
272
|
-
label?: string | undefined;
|
|
273
|
-
required?: boolean | undefined;
|
|
274
|
-
list?: boolean | undefined;
|
|
275
|
-
isTitle?: boolean | undefined;
|
|
276
|
-
isBody?: boolean | undefined;
|
|
277
|
-
}, {
|
|
278
|
-
name: string;
|
|
279
|
-
type: "block";
|
|
280
|
-
templates: {
|
|
281
|
-
name: string;
|
|
282
|
-
fields: any[];
|
|
283
|
-
description?: string | undefined;
|
|
284
|
-
label?: string | undefined;
|
|
285
|
-
}[];
|
|
286
|
-
description?: string | undefined;
|
|
287
|
-
label?: string | undefined;
|
|
288
|
-
required?: boolean | undefined;
|
|
289
|
-
list?: boolean | undefined;
|
|
290
|
-
isTitle?: boolean | undefined;
|
|
291
|
-
isBody?: boolean | undefined;
|
|
292
|
-
}>;
|
|
293
|
-
export declare const objectFieldSchema: z.ZodObject<{
|
|
294
|
-
name: z.ZodString;
|
|
295
|
-
label: z.ZodOptional<z.ZodString>;
|
|
296
|
-
description: z.ZodOptional<z.ZodString>;
|
|
297
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
298
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
299
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
300
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
301
|
-
} & {
|
|
302
|
-
type: z.ZodLiteral<"object">;
|
|
303
|
-
fields: z.ZodArray<z.ZodLazy<z.ZodTypeAny>, "many">;
|
|
304
|
-
}, "strip", z.ZodTypeAny, {
|
|
305
|
-
name: string;
|
|
306
|
-
type: "object";
|
|
307
|
-
fields: any[];
|
|
308
|
-
description?: string | undefined;
|
|
309
|
-
label?: string | undefined;
|
|
310
|
-
required?: boolean | undefined;
|
|
311
|
-
list?: boolean | undefined;
|
|
312
|
-
isTitle?: boolean | undefined;
|
|
313
|
-
isBody?: boolean | undefined;
|
|
314
|
-
}, {
|
|
315
|
-
name: string;
|
|
316
|
-
type: "object";
|
|
317
|
-
fields: any[];
|
|
318
|
-
description?: string | undefined;
|
|
319
|
-
label?: string | undefined;
|
|
320
|
-
required?: boolean | undefined;
|
|
321
|
-
list?: boolean | undefined;
|
|
322
|
-
isTitle?: boolean | undefined;
|
|
323
|
-
isBody?: boolean | undefined;
|
|
324
|
-
}>;
|
|
325
|
-
export declare const inlineGroupFieldSchema: z.ZodObject<{
|
|
326
|
-
type: z.ZodLiteral<"group">;
|
|
327
|
-
name: z.ZodString;
|
|
328
|
-
label: z.ZodOptional<z.ZodString>;
|
|
329
|
-
description: z.ZodOptional<z.ZodString>;
|
|
330
|
-
fields: z.ZodArray<z.ZodLazy<z.ZodTypeAny>, "many">;
|
|
331
|
-
}, "strip", z.ZodTypeAny, {
|
|
332
|
-
name: string;
|
|
333
|
-
type: "group";
|
|
334
|
-
fields: any[];
|
|
335
|
-
description?: string | undefined;
|
|
336
|
-
label?: string | undefined;
|
|
337
|
-
}, {
|
|
338
|
-
name: string;
|
|
339
|
-
type: "group";
|
|
340
|
-
fields: any[];
|
|
341
|
-
description?: string | undefined;
|
|
342
|
-
label?: string | undefined;
|
|
343
|
-
}>;
|
|
344
|
-
export declare const customFieldSchema: z.ZodLazy<z.ZodObject<{
|
|
345
|
-
name: z.ZodString;
|
|
346
|
-
label: z.ZodOptional<z.ZodString>;
|
|
347
|
-
description: z.ZodOptional<z.ZodString>;
|
|
348
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
349
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
350
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
351
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
352
|
-
} & {
|
|
353
|
-
type: z.ZodEffects<z.ZodString, string, string>;
|
|
354
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
355
|
-
name: z.ZodString;
|
|
356
|
-
label: z.ZodOptional<z.ZodString>;
|
|
357
|
-
description: z.ZodOptional<z.ZodString>;
|
|
358
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
359
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
360
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
361
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
362
|
-
} & {
|
|
363
|
-
type: z.ZodEffects<z.ZodString, string, string>;
|
|
364
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
365
|
-
name: z.ZodString;
|
|
366
|
-
label: z.ZodOptional<z.ZodString>;
|
|
367
|
-
description: z.ZodOptional<z.ZodString>;
|
|
368
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
369
|
-
list: z.ZodOptional<z.ZodBoolean>;
|
|
370
|
-
isTitle: z.ZodOptional<z.ZodBoolean>;
|
|
371
|
-
isBody: z.ZodOptional<z.ZodBoolean>;
|
|
372
|
-
} & {
|
|
373
|
-
type: z.ZodEffects<z.ZodString, string, string>;
|
|
374
|
-
}, z.ZodTypeAny, "passthrough">>>;
|
|
375
|
-
declare const knownFieldSchema: z.ZodTypeAny;
|
|
376
136
|
declare const fieldSchema: z.ZodTypeAny;
|
|
377
|
-
export { fieldSchema
|
|
137
|
+
export { fieldSchema };
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { primitiveFieldTypes, fieldTypes } from '../types.js';
|
|
6
|
-
|
|
7
|
-
export const fieldBaseSchema = z.object({
|
|
6
|
+
const fieldBaseSchema = z.object({
|
|
8
7
|
name: z.string().min(1),
|
|
9
8
|
label: z.string().optional(),
|
|
10
9
|
description: z.string().optional(),
|
|
@@ -13,7 +12,6 @@ export const fieldBaseSchema = z.object({
|
|
|
13
12
|
isTitle: z.boolean().optional(),
|
|
14
13
|
isBody: z.boolean().optional(),
|
|
15
14
|
});
|
|
16
|
-
// Select option schema
|
|
17
15
|
export const selectOptionSchema = z.union([
|
|
18
16
|
z.string(),
|
|
19
17
|
z.object({
|
|
@@ -21,7 +19,6 @@ export const selectOptionSchema = z.union([
|
|
|
21
19
|
value: z.string().min(1),
|
|
22
20
|
}),
|
|
23
21
|
]);
|
|
24
|
-
// Reference option schema
|
|
25
22
|
export const referenceOptionSchema = z.union([
|
|
26
23
|
z.string(),
|
|
27
24
|
z.object({
|
|
@@ -29,8 +26,7 @@ export const referenceOptionSchema = z.union([
|
|
|
29
26
|
value: z.string().min(1),
|
|
30
27
|
}),
|
|
31
28
|
]);
|
|
32
|
-
|
|
33
|
-
export const primitiveFieldSchema = fieldBaseSchema.extend({
|
|
29
|
+
const primitiveFieldSchema = fieldBaseSchema.extend({
|
|
34
30
|
type: z.enum(primitiveFieldTypes),
|
|
35
31
|
});
|
|
36
32
|
// "W:H" aspect ratio, e.g. "16:9" or "1:1" — positive integers on both sides,
|
|
@@ -50,13 +46,12 @@ export const imageFieldSchema = fieldBaseSchema.extend({
|
|
|
50
46
|
.optional(),
|
|
51
47
|
altOptional: z.boolean().optional(),
|
|
52
48
|
});
|
|
53
|
-
|
|
54
|
-
export const selectFieldSchema = fieldBaseSchema.extend({
|
|
49
|
+
const selectFieldSchema = fieldBaseSchema.extend({
|
|
55
50
|
type: z.literal('select'),
|
|
56
51
|
options: z.array(selectOptionSchema).min(1),
|
|
57
52
|
});
|
|
58
|
-
// Reference field pointing to other collections and/or entry types.
|
|
59
53
|
// At least one of `collections` or `entryTypes` must be specified (enforced by config validation).
|
|
54
|
+
/** @internal Exported for tests. */
|
|
60
55
|
export const referenceFieldSchema = fieldBaseSchema.extend({
|
|
61
56
|
type: z.literal('reference'),
|
|
62
57
|
collections: z.array(z.string().min(1)).min(1).optional(),
|
|
@@ -73,33 +68,29 @@ export const referenceFieldSchema = fieldBaseSchema.extend({
|
|
|
73
68
|
// blockSchema/objectFieldSchema reference fieldHolder[0] via z.lazy, which is resolved
|
|
74
69
|
// after the full fieldSchema is constructed below.
|
|
75
70
|
const fieldHolder = [z.never()];
|
|
76
|
-
// Block template schema
|
|
77
71
|
export const blockSchema = z.object({
|
|
78
72
|
name: z.string().min(1),
|
|
79
73
|
label: z.string().optional(),
|
|
80
74
|
description: z.string().optional(),
|
|
81
75
|
fields: z.array(z.lazy(() => fieldHolder[0])).min(1),
|
|
82
76
|
});
|
|
83
|
-
|
|
84
|
-
export const blockFieldSchema = fieldBaseSchema.extend({
|
|
77
|
+
const blockFieldSchema = fieldBaseSchema.extend({
|
|
85
78
|
type: z.literal('block'),
|
|
86
79
|
templates: z.array(blockSchema).min(1),
|
|
87
80
|
});
|
|
88
|
-
|
|
89
|
-
export const objectFieldSchema = fieldBaseSchema.extend({
|
|
81
|
+
const objectFieldSchema = fieldBaseSchema.extend({
|
|
90
82
|
type: z.literal('object'),
|
|
91
83
|
fields: z.array(z.lazy(() => fieldHolder[0])).min(1),
|
|
92
84
|
});
|
|
93
85
|
// Inline group field: visual grouping only, no data nesting
|
|
94
|
-
|
|
86
|
+
const inlineGroupFieldSchema = z.object({
|
|
95
87
|
type: z.literal('group'),
|
|
96
88
|
name: z.string().min(1),
|
|
97
89
|
label: z.string().optional(),
|
|
98
90
|
description: z.string().optional(),
|
|
99
91
|
fields: z.array(z.lazy(() => fieldHolder[0])).min(1),
|
|
100
92
|
});
|
|
101
|
-
|
|
102
|
-
export const customFieldSchema = z.lazy(() => fieldBaseSchema
|
|
93
|
+
const customFieldSchema = z.lazy(() => fieldBaseSchema
|
|
103
94
|
.extend({
|
|
104
95
|
type: z
|
|
105
96
|
.string()
|
|
@@ -109,7 +100,6 @@ export const customFieldSchema = z.lazy(() => fieldBaseSchema
|
|
|
109
100
|
}),
|
|
110
101
|
})
|
|
111
102
|
.passthrough());
|
|
112
|
-
// Known built-in field types (discriminated union)
|
|
113
103
|
const knownFieldSchema = z.discriminatedUnion('type', [
|
|
114
104
|
primitiveFieldSchema,
|
|
115
105
|
selectFieldSchema,
|
|
@@ -119,7 +109,6 @@ const knownFieldSchema = z.discriminatedUnion('type', [
|
|
|
119
109
|
blockFieldSchema,
|
|
120
110
|
inlineGroupFieldSchema,
|
|
121
111
|
]);
|
|
122
|
-
// Complete field schema (built-in or custom)
|
|
123
112
|
const fieldSchema = z.lazy(() => z.union([knownFieldSchema, customFieldSchema]));
|
|
124
113
|
fieldHolder[0] = fieldSchema;
|
|
125
|
-
export { fieldSchema
|
|
114
|
+
export { fieldSchema };
|
|
@@ -14,7 +14,7 @@ import { assetMountUrlSchema, uploadTargetUrlSchema } from './url.js';
|
|
|
14
14
|
//
|
|
15
15
|
// Bucket-prefix layout (asset-originals/, asset-staging/, asset-meta/, assets/) is
|
|
16
16
|
// intentionally NOT configurable here — those are constants in assets/keys.ts, not
|
|
17
|
-
// per-site config (see .claude/future-tasks/assets-media-system.md).
|
|
17
|
+
// per-site config (see .claude/future-tasks/resolved/assets-media-system.md).
|
|
18
18
|
//
|
|
19
19
|
// Every branch is .strict(). This is load-bearing, not tidiness: CanopyConfigSchema's own
|
|
20
20
|
// .strict() does NOT recurse into nested schemas, so until these branches carried their own,
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* Zod schemas for permission configuration validation.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
// Permission target schema
|
|
6
5
|
export const permissionTargetSchema = z.object({
|
|
7
6
|
allowedUsers: z.array(z.string()).optional(),
|
|
8
7
|
allowedGroups: z.array(z.string()).optional(),
|
|
9
8
|
});
|
|
10
|
-
// Path permission schema
|
|
11
9
|
export const pathPermissionSchema = z.object({
|
|
12
10
|
path: z.string().min(1),
|
|
13
11
|
read: permissionTargetSchema.optional(),
|
|
@@ -28,11 +28,10 @@ export declare const uploadTargetUrlSchema: z.ZodEffects<z.ZodString, string, st
|
|
|
28
28
|
/**
|
|
29
29
|
* Where `/assets/…` is mounted for the editor's own previews (`media.publicBaseUrl`).
|
|
30
30
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* used to parse and then produce `/mailto:a@b.c/assets/…` at render time.
|
|
31
|
+
* Accepts an absolute http(s) URL, a protocol-relative `//host` URL, or a site-relative path
|
|
32
|
+
* (see `.claude/future-tasks/editor-asset-mount-topology.md` option 1 — the `basePath` fallback
|
|
33
|
+
* in `editor/context/AssetContext.tsx` exists for sites that need one and can't set an absolute
|
|
34
|
+
* value). Rejects non-http(s) schemes: a plain `z.string().url()` check would accept
|
|
35
|
+
* `publicBaseUrl: 'mailto:a@b.c'` and produce `/mailto:a@b.c/assets/…` at render time.
|
|
37
36
|
*/
|
|
38
37
|
export declare const assetMountUrlSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
@@ -34,12 +34,11 @@ export const uploadTargetUrlSchema = z
|
|
|
34
34
|
/**
|
|
35
35
|
* Where `/assets/…` is mounted for the editor's own previews (`media.publicBaseUrl`).
|
|
36
36
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* used to parse and then produce `/mailto:a@b.c/assets/…` at render time.
|
|
37
|
+
* Accepts an absolute http(s) URL, a protocol-relative `//host` URL, or a site-relative path
|
|
38
|
+
* (see `.claude/future-tasks/editor-asset-mount-topology.md` option 1 — the `basePath` fallback
|
|
39
|
+
* in `editor/context/AssetContext.tsx` exists for sites that need one and can't set an absolute
|
|
40
|
+
* value). Rejects non-http(s) schemes: a plain `z.string().url()` check would accept
|
|
41
|
+
* `publicBaseUrl: 'mailto:a@b.c'` and produce `/mailto:a@b.c/assets/…` at render time.
|
|
43
42
|
*/
|
|
44
43
|
export const assetMountUrlSchema = z
|
|
45
44
|
.string()
|
package/dist/config/types.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export type ReferenceOption = string | {
|
|
|
34
34
|
label: string;
|
|
35
35
|
value: string;
|
|
36
36
|
};
|
|
37
|
-
|
|
37
|
+
interface BaseFieldConfig {
|
|
38
38
|
name: string;
|
|
39
39
|
label?: string;
|
|
40
40
|
description?: string;
|
|
@@ -50,7 +50,7 @@ export interface BaseFieldConfig {
|
|
|
50
50
|
*/
|
|
51
51
|
isBody?: boolean;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
interface PrimitiveFieldConfig extends BaseFieldConfig {
|
|
54
54
|
type: PrimitiveFieldType;
|
|
55
55
|
}
|
|
56
56
|
export interface SelectFieldConfig extends BaseFieldConfig {
|
|
@@ -234,6 +234,19 @@ export type RootCollectionConfig = {
|
|
|
234
234
|
* Contrast with EntrySchema, which is the field definitions for a single entry type.
|
|
235
235
|
*/
|
|
236
236
|
export type BranchSchema = RootCollectionConfig;
|
|
237
|
+
/**
|
|
238
|
+
* Props for an auth provider's `SignInComponent`. The editor decides signed-out from the API's
|
|
239
|
+
* 401s alone; the provider owns the sign-in UI and reports back.
|
|
240
|
+
*/
|
|
241
|
+
export interface EditorSignInProps {
|
|
242
|
+
/** Call when the provider believes the user is signed in; the editor re-checks with the API. */
|
|
243
|
+
onSignedIn: () => void;
|
|
244
|
+
/**
|
|
245
|
+
* The API rejected the credential after `onSignedIn` (e.g. a mismatched JWT key). Offer
|
|
246
|
+
* sign-out; calling `onSignedIn` again in response would loop.
|
|
247
|
+
*/
|
|
248
|
+
sessionRejected: boolean;
|
|
249
|
+
}
|
|
237
250
|
export interface CanopyEditorConfig {
|
|
238
251
|
title?: string;
|
|
239
252
|
subtitle?: string;
|
|
@@ -251,6 +264,11 @@ export interface CanopyEditorConfig {
|
|
|
251
264
|
onAccountClick?: () => void;
|
|
252
265
|
onLogoutClick?: () => void;
|
|
253
266
|
AccountComponent?: React.ComponentType;
|
|
267
|
+
/**
|
|
268
|
+
* Shown instead of the editor on a 401, and over it when a session lapses mid-edit. Supplied
|
|
269
|
+
* by the auth provider; absent, the editor shows a plain notice.
|
|
270
|
+
*/
|
|
271
|
+
SignInComponent?: React.ComponentType<EditorSignInProps>;
|
|
254
272
|
}
|
|
255
273
|
export type DefaultBranchAccess = 'allow' | 'deny';
|
|
256
274
|
export type DefaultPathAccessLevel = 'allow' | 'deny';
|
|
@@ -273,7 +291,7 @@ export type GithubTokenEnvVar = string;
|
|
|
273
291
|
export type CanopyOperatingMode = OperatingMode;
|
|
274
292
|
export type ContentRoot = string;
|
|
275
293
|
export type SourceRoot = string | undefined;
|
|
276
|
-
|
|
294
|
+
type DeployedAs = 'static' | 'server';
|
|
277
295
|
/**
|
|
278
296
|
* How the dev server surfaces working-tree content edits that diverge from the branch clone it serves.
|
|
279
297
|
* - 'warn' (default): on startup and on content/** changes, log a warning naming files when the
|
|
@@ -286,7 +304,7 @@ export type DeployedAs = 'static' | 'server';
|
|
|
286
304
|
*/
|
|
287
305
|
export type DevContentSyncMode = 'off' | 'warn';
|
|
288
306
|
/** Dev-mode-only behavior. Ignored when `mode !== 'dev'`. */
|
|
289
|
-
|
|
307
|
+
interface DevConfig {
|
|
290
308
|
contentSync?: DevContentSyncMode;
|
|
291
309
|
}
|
|
292
310
|
/** Issue returned by the `validateEntry` hook. `error` rejects the save; `warning` is returned with it. */
|
|
@@ -322,7 +340,7 @@ export interface CanopyConfig {
|
|
|
322
340
|
defaultBranchAccess?: DefaultBranchAccess;
|
|
323
341
|
defaultPathAccess?: DefaultPathAccess;
|
|
324
342
|
defaultBaseBranch?: DefaultBaseBranch;
|
|
325
|
-
/** Which workspace to serve content from by default
|
|
343
|
+
/** Which workspace to serve content from by default — see {@link CanopyConfigInput.defaultActiveBranch}. */
|
|
326
344
|
defaultActiveBranch?: string;
|
|
327
345
|
defaultRemoteName?: DefaultRemoteName;
|
|
328
346
|
defaultRemoteUrl?: DefaultRemoteUrl;
|
|
@@ -330,45 +348,24 @@ export interface CanopyConfig {
|
|
|
330
348
|
gitBotAuthorEmail: GitBotAuthorEmail;
|
|
331
349
|
githubTokenEnvVar?: GithubTokenEnvVar;
|
|
332
350
|
mode: CanopyOperatingMode;
|
|
333
|
-
/** How this build is deployed
|
|
351
|
+
/** How this build is deployed — see {@link CanopyConfigInput.deployedAs}. */
|
|
334
352
|
deployedAs: DeployedAs;
|
|
335
|
-
/**
|
|
336
|
-
* Escape hatch: allow git operations in prod mode to target a NETWORK remote
|
|
337
|
-
* (http(s)://, ssh://, git://, or scp-like `user@host:path`) instead of the
|
|
338
|
-
* EFS-local `remote.git` the standard AWS Lambda+worker topology expects.
|
|
339
|
-
* Default false/unset. The standard topology's Lambda has no internet access
|
|
340
|
-
* and would hang trying to reach a network remote directly — only set this
|
|
341
|
-
* for prod hosts that DO have internet (e.g. a single-VM deployment) and
|
|
342
|
-
* intentionally run git against a network remote.
|
|
343
|
-
*/
|
|
353
|
+
/** Escape hatch for a prod host with real internet access — see {@link CanopyConfigInput.allowNetworkRemoteInProd}. */
|
|
344
354
|
allowNetworkRemoteInProd?: boolean;
|
|
345
355
|
settingsBranch?: string;
|
|
346
356
|
autoCreateSettingsPR?: boolean;
|
|
347
357
|
deploymentName?: string;
|
|
348
358
|
contentRoot: ContentRoot;
|
|
349
359
|
sourceRoot?: SourceRoot;
|
|
350
|
-
/**
|
|
351
|
-
* The deployment prefix the host Next.js app is served under (e.g. `/preview-123`), matching
|
|
352
|
-
* that app's `next.config` `basePath`. CanopyCMS cannot read `next.config` at runtime, so this
|
|
353
|
-
* must be stated here explicitly if the app sets one — without it, editor requests, the preview
|
|
354
|
-
* iframe `src`, and preview↔editor path matching all target the un-prefixed root and 404 or
|
|
355
|
-
* silently stop syncing. Normalized (leading slash added, trailing slashes stripped) via
|
|
356
|
-
* `joinUrlPrefix` at every use site; unset/empty means the app is served at its origin's root.
|
|
357
|
-
*
|
|
358
|
-
* NOT the same option as `collectStaticParams`'s `basePath` in
|
|
359
|
-
* `packages/canopycms-next/src/static.ts` — that one means "the route prefix of a nested
|
|
360
|
-
* catch-all route" (e.g. `/docs` for `app/docs/[[...slug]]`) and *filters* enumerated entries
|
|
361
|
-
* down to that prefix. Passing this deployment basePath to `collectStaticParams` instead would
|
|
362
|
-
* silently filter out every entry (zero static params, a build that goes green with no pages).
|
|
363
|
-
*/
|
|
360
|
+
/** Deployment prefix the host app is served under — see {@link CanopyConfigInput.basePath}. */
|
|
364
361
|
basePath?: string;
|
|
365
362
|
editor?: CanopyEditorConfig;
|
|
366
363
|
authPlugin?: AuthPlugin;
|
|
367
|
-
/** Custom URL resolver for entry links
|
|
364
|
+
/** Custom URL resolver for entry links — see {@link CanopyConfigInput.entryLinkUrl}. */
|
|
368
365
|
entryLinkUrl?: EntryLinkUrlResolver;
|
|
369
|
-
/** Save-time validation hook
|
|
366
|
+
/** Save-time validation hook — see {@link CanopyConfigInput.validateEntry}. */
|
|
370
367
|
validateEntry?: ValidateEntryHook;
|
|
371
|
-
/** Dev-mode-only behavior
|
|
368
|
+
/** Dev-mode-only behavior — see {@link CanopyConfigInput.dev}. */
|
|
372
369
|
dev?: DevConfig;
|
|
373
370
|
}
|
|
374
371
|
/**
|
|
@@ -409,7 +406,20 @@ export interface CanopyConfigInput {
|
|
|
409
406
|
deploymentName?: string;
|
|
410
407
|
contentRoot?: string;
|
|
411
408
|
sourceRoot?: string;
|
|
412
|
-
/**
|
|
409
|
+
/**
|
|
410
|
+
* The deployment prefix the host Next.js app is served under (e.g. `/preview-123`), matching
|
|
411
|
+
* that app's `next.config` `basePath`. CanopyCMS cannot read `next.config` at runtime, so this
|
|
412
|
+
* must be stated here explicitly if the app sets one — without it, editor requests, the preview
|
|
413
|
+
* iframe `src`, and preview↔editor path matching all target the un-prefixed root and 404 or
|
|
414
|
+
* silently stop syncing. Normalized (leading slash added, trailing slashes stripped) via
|
|
415
|
+
* `joinUrlPrefix` at every use site; unset/empty means the app is served at its origin's root.
|
|
416
|
+
*
|
|
417
|
+
* NOT the same option as `collectStaticParams`'s `basePath` in
|
|
418
|
+
* `packages/canopycms-next/src/static.ts` — that one means "the route prefix of a nested
|
|
419
|
+
* catch-all route" (e.g. `/docs` for `app/docs/[[...slug]]`) and *filters* enumerated entries
|
|
420
|
+
* down to that prefix. Passing this deployment basePath to `collectStaticParams` instead would
|
|
421
|
+
* silently filter out every entry (zero static params, a build that goes green with no pages).
|
|
422
|
+
*/
|
|
413
423
|
basePath?: string;
|
|
414
424
|
editor?: CanopyEditorConfig;
|
|
415
425
|
authPlugin?: AuthPlugin;
|
|
@@ -478,5 +488,7 @@ export interface ClientOnlyFields {
|
|
|
478
488
|
onAccountClick?: () => void;
|
|
479
489
|
onLogoutClick?: () => void | Promise<void>;
|
|
480
490
|
AccountComponent?: React.ComponentType;
|
|
491
|
+
SignInComponent?: React.ComponentType<EditorSignInProps>;
|
|
481
492
|
};
|
|
482
493
|
}
|
|
494
|
+
export {};
|
package/dist/config/types.js
CHANGED
package/dist/config.d.ts
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CanopyCMS Configuration
|
|
3
|
-
*
|
|
4
|
-
* This file re-exports from the config module for backward compatibility.
|
|
5
|
-
* New code should import directly from './config/index.js' or './config'.
|
|
6
|
-
*
|
|
7
|
-
* @module config
|
|
8
|
-
*/
|
|
1
|
+
/** Barrel re-export of the config module (`./config/index`). */
|
|
9
2
|
export * from './config/index.js';
|
package/dist/config.js
CHANGED
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CanopyCMS Configuration
|
|
3
|
-
*
|
|
4
|
-
* This file re-exports from the config module for backward compatibility.
|
|
5
|
-
* New code should import directly from './config/index.js' or './config'.
|
|
6
|
-
*
|
|
7
|
-
* @module config
|
|
8
|
-
*/
|
|
9
|
-
// Re-export everything from the config module
|
|
1
|
+
/** Barrel re-export of the config module (`./config/index`). */
|
|
10
2
|
export * from './config/index.js';
|