canopycms 0.0.62 → 0.0.64
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 +153 -19
- package/dist/ai/generate.d.ts +4 -5
- package/dist/ai/generate.js +0 -1
- package/dist/ai/handler.d.ts +3 -4
- package/dist/ai/handler.js +0 -1
- package/dist/ai/index.d.ts +15 -7
- package/dist/ai/index.js +9 -1
- package/dist/ai/json-to-markdown.d.ts +1 -2
- package/dist/ai/json-to-markdown.js +11 -2
- package/dist/ai/resolve-branch.d.ts +1 -2
- package/dist/ai/resolve-branch.js +0 -1
- package/dist/ai/strip-mdx.d.ts +0 -1
- package/dist/ai/strip-mdx.js +0 -1
- package/dist/ai/to-plain-text.d.ts +60 -0
- package/dist/ai/to-plain-text.js +301 -0
- package/dist/ai/transform-components.d.ts +1 -2
- package/dist/ai/transform-components.js +70 -6
- package/dist/ai/types.d.ts +1 -2
- package/dist/ai/types.js +0 -1
- package/dist/api/admin-branch-health.d.ts +7 -8
- package/dist/api/admin-branch-health.js +0 -1
- package/dist/api/admin.d.ts +16 -17
- package/dist/api/admin.js +0 -1
- package/dist/api/assets.d.ts +8 -9
- package/dist/api/assets.js +0 -1
- package/dist/api/branch-merge.d.ts +3 -4
- package/dist/api/branch-merge.js +0 -1
- package/dist/api/branch-review.d.ts +5 -6
- package/dist/api/branch-review.js +0 -1
- package/dist/api/branch-status.d.ts +15 -16
- package/dist/api/branch-status.js +0 -1
- package/dist/api/branch-withdraw.d.ts +3 -4
- package/dist/api/branch-withdraw.js +0 -1
- package/dist/api/branch.d.ts +13 -14
- package/dist/api/branch.js +0 -1
- package/dist/api/client.d.ts +14 -15
- package/dist/api/client.js +0 -1
- package/dist/api/comments.d.ts +11 -12
- package/dist/api/comments.js +0 -1
- package/dist/api/content.d.ts +22 -24
- package/dist/api/content.js +132 -18
- package/dist/api/entries-constants.d.ts +0 -1
- package/dist/api/entries-constants.js +0 -1
- package/dist/api/entries.d.ts +12 -13
- package/dist/api/entries.js +12 -2
- package/dist/api/github-sync.d.ts +2 -3
- package/dist/api/github-sync.js +0 -1
- package/dist/api/groups.d.ts +6 -7
- package/dist/api/groups.js +0 -1
- package/dist/api/guards.d.ts +2 -3
- package/dist/api/guards.js +0 -1
- package/dist/api/index.d.ts +18 -19
- package/dist/api/index.js +0 -1
- package/dist/api/permissions.d.ts +10 -11
- package/dist/api/permissions.js +0 -1
- package/dist/api/reference-options.d.ts +3 -4
- package/dist/api/reference-options.js +0 -1
- package/dist/api/request-body-hash.d.ts +0 -1
- package/dist/api/request-body-hash.js +0 -1
- package/dist/api/resolve-references.d.ts +6 -7
- package/dist/api/resolve-references.js +24 -6
- package/dist/api/route-builder.d.ts +2 -3
- package/dist/api/route-builder.js +0 -1
- package/dist/api/schema.d.ts +43 -44
- package/dist/api/schema.js +0 -1
- package/dist/api/settings-helpers.d.ts +2 -3
- package/dist/api/settings-helpers.js +0 -1
- package/dist/api/types.d.ts +6 -7
- package/dist/api/types.js +0 -1
- package/dist/api/user.d.ts +2 -3
- package/dist/api/user.js +0 -1
- package/dist/api/validators.d.ts +3 -4
- package/dist/api/validators.js +0 -1
- package/dist/assets/asset-prefixes.d.ts +1 -2
- package/dist/assets/asset-prefixes.js +0 -1
- package/dist/assets/asset-src.d.ts +17 -5
- package/dist/assets/asset-src.js +15 -3
- package/dist/assets/asset-url.d.ts +28 -7
- package/dist/assets/asset-url.js +20 -15
- package/dist/assets/factory.d.ts +2 -3
- package/dist/assets/factory.js +0 -2
- package/dist/assets/finalize.d.ts +2 -3
- package/dist/assets/finalize.js +0 -1
- package/dist/assets/index.d.ts +12 -13
- package/dist/assets/index.js +0 -1
- package/dist/assets/keys.d.ts +1 -2
- package/dist/assets/keys.js +0 -1
- package/dist/assets/pipeline.d.ts +1 -2
- package/dist/assets/pipeline.js +0 -1
- package/dist/assets/store-local.d.ts +1 -2
- package/dist/assets/store-local.js +0 -1
- package/dist/assets/store-s3.d.ts +2 -4
- package/dist/assets/store-s3.js +0 -1
- package/dist/assets/svg-sanitizer.d.ts +0 -1
- package/dist/assets/svg-sanitizer.js +0 -1
- package/dist/assets/transform-directives.d.ts +0 -1
- package/dist/assets/transform-directives.js +0 -1
- package/dist/assets/transform.d.ts +1 -2
- package/dist/assets/transform.js +0 -1
- package/dist/assets/types.d.ts +0 -1
- package/dist/assets/types.js +0 -1
- package/dist/auth/cache.d.ts +2 -3
- package/dist/auth/cache.js +0 -1
- package/dist/auth/caching-auth-plugin.d.ts +3 -4
- package/dist/auth/caching-auth-plugin.js +0 -1
- package/dist/auth/context-helpers.d.ts +1 -2
- package/dist/auth/context-helpers.js +0 -1
- package/dist/auth/file-based-auth-cache.d.ts +3 -4
- package/dist/auth/file-based-auth-cache.js +0 -1
- package/dist/auth/index.d.ts +6 -7
- package/dist/auth/index.js +0 -1
- package/dist/auth/plugin.d.ts +3 -4
- package/dist/auth/plugin.js +0 -1
- package/dist/auth/types.d.ts +1 -2
- package/dist/auth/types.js +0 -1
- package/dist/authorization/branch.d.ts +58 -7
- package/dist/authorization/branch.js +55 -10
- package/dist/authorization/content.d.ts +6 -7
- package/dist/authorization/content.js +0 -1
- package/dist/authorization/groups/index.d.ts +2 -3
- package/dist/authorization/groups/index.js +0 -1
- package/dist/authorization/groups/loader.d.ts +3 -4
- package/dist/authorization/groups/loader.js +0 -1
- package/dist/authorization/groups/schema.d.ts +1 -2
- package/dist/authorization/groups/schema.js +0 -1
- package/dist/authorization/helpers.d.ts +0 -1
- package/dist/authorization/helpers.js +0 -1
- package/dist/authorization/index.d.ts +11 -12
- package/dist/authorization/index.js +0 -1
- package/dist/authorization/path.d.ts +4 -5
- package/dist/authorization/path.js +0 -1
- package/dist/authorization/permissions/index.d.ts +2 -3
- package/dist/authorization/permissions/index.js +0 -1
- package/dist/authorization/permissions/loader.d.ts +4 -5
- package/dist/authorization/permissions/loader.js +0 -1
- package/dist/authorization/permissions/schema.d.ts +2 -3
- package/dist/authorization/permissions/schema.js +0 -1
- package/dist/authorization/protected-branch.d.ts +2 -3
- package/dist/authorization/protected-branch.js +0 -1
- package/dist/authorization/settings-file-store.d.ts +1 -2
- package/dist/authorization/settings-file-store.js +0 -1
- package/dist/authorization/types.d.ts +7 -8
- package/dist/authorization/types.js +0 -1
- package/dist/authorization/validation.d.ts +1 -2
- package/dist/authorization/validation.js +0 -1
- package/dist/branch-health.d.ts +2 -3
- package/dist/branch-health.js +0 -1
- package/dist/branch-metadata.d.ts +2 -3
- package/dist/branch-metadata.js +0 -1
- package/dist/branch-registry.d.ts +1 -2
- package/dist/branch-registry.js +0 -1
- package/dist/branch-schema-cache.d.ts +4 -5
- package/dist/branch-schema-cache.js +0 -1
- package/dist/branch-workspace.d.ts +4 -5
- package/dist/branch-workspace.js +0 -1
- package/dist/build/generate-ai-content.d.ts +21 -5
- package/dist/build/generate-ai-content.js +98 -6
- package/dist/build/index.d.ts +2 -3
- package/dist/build/index.js +0 -1
- package/dist/build-canopy.d.ts +48 -0
- package/dist/build-canopy.js +50 -0
- package/dist/build-mode.d.ts +1 -2
- package/dist/build-mode.js +0 -1
- package/dist/cli/cli.d.ts +1 -2
- package/dist/cli/cli.js +1192 -495
- package/dist/cli/generate-ai-content.d.ts +0 -1
- package/dist/cli/generate-ai-content.js +1062 -370
- package/dist/cli/init.d.ts +1 -2
- package/dist/cli/init.js +12 -2
- package/dist/cli/migrate.d.ts +5 -3
- package/dist/cli/migrate.js +5 -3
- package/dist/cli/project-detect.d.ts +5 -2
- package/dist/cli/project-detect.js +5 -1
- package/dist/cli/project-root.d.ts +0 -1
- package/dist/cli/project-root.js +0 -1
- package/dist/cli/sync.d.ts +0 -1
- package/dist/cli/sync.js +0 -1
- package/dist/cli/template-files/canopycms.config.ts.template +18 -1
- package/dist/cli/template-files/deploy-cms.yml.template +8 -6
- package/dist/cli/templates.d.ts +0 -1
- package/dist/cli/templates.js +0 -1
- package/dist/client.d.ts +13 -14
- package/dist/client.js +0 -1
- package/dist/comment-store.d.ts +0 -1
- package/dist/comment-store.js +0 -1
- package/dist/config/flatten.d.ts +1 -2
- package/dist/config/flatten.js +0 -1
- package/dist/config/helpers.d.ts +3 -4
- package/dist/config/helpers.js +2 -2
- package/dist/config/index.d.ts +10 -11
- package/dist/config/index.js +0 -1
- package/dist/config/schemas/collection.d.ts +0 -1
- package/dist/config/schemas/collection.js +0 -1
- package/dist/config/schemas/config.d.ts +7 -4
- package/dist/config/schemas/config.js +12 -1
- package/dist/config/schemas/field.d.ts +3 -1
- package/dist/config/schemas/field.js +5 -1
- package/dist/config/schemas/media.d.ts +0 -1
- package/dist/config/schemas/media.js +0 -1
- package/dist/config/schemas/permissions.d.ts +0 -1
- package/dist/config/schemas/permissions.js +0 -1
- package/dist/config/types.d.ts +55 -9
- package/dist/config/types.js +0 -1
- package/dist/config/validation.d.ts +1 -2
- package/dist/config/validation.js +0 -1
- package/dist/config.d.ts +2 -3
- package/dist/config.js +0 -1
- package/dist/content-id-index.d.ts +1 -2
- package/dist/content-id-index.js +0 -1
- package/dist/content-index-generation.d.ts +0 -1
- package/dist/content-index-generation.js +0 -1
- package/dist/content-index-registry.d.ts +0 -1
- package/dist/content-index-registry.js +0 -1
- package/dist/content-listing.d.ts +137 -16
- package/dist/content-listing.js +175 -41
- package/dist/content-reader.d.ts +44 -8
- package/dist/content-reader.js +39 -7
- package/dist/content-store.d.ts +147 -7
- package/dist/content-store.js +294 -22
- package/dist/content-tree.d.ts +44 -5
- package/dist/content-tree.js +47 -11
- package/dist/context.d.ts +38 -15
- package/dist/context.js +55 -5
- package/dist/dev-content-watcher.d.ts +2 -3
- package/dist/dev-content-watcher.js +0 -1
- package/dist/editor/BranchManager.d.ts +4 -5
- package/dist/editor/BranchManager.js +0 -1
- package/dist/editor/CanopyEditor.d.ts +2 -3
- package/dist/editor/CanopyEditor.js +1 -2
- package/dist/editor/CanopyEditorPage.d.ts +2 -3
- package/dist/editor/CanopyEditorPage.js +0 -1
- package/dist/editor/CommentsPanel.d.ts +2 -3
- package/dist/editor/CommentsPanel.js +0 -1
- package/dist/editor/Editor.d.ts +13 -8
- package/dist/editor/Editor.js +4 -5
- package/dist/editor/EditorPanes.d.ts +0 -1
- package/dist/editor/EditorPanes.js +0 -1
- package/dist/editor/EntryNavigator.d.ts +1 -2
- package/dist/editor/EntryNavigator.js +0 -1
- package/dist/editor/FormRenderer.d.ts +2 -3
- package/dist/editor/FormRenderer.js +22 -3
- package/dist/editor/GroupManager.d.ts +2 -3
- package/dist/editor/GroupManager.js +0 -1
- package/dist/editor/PermissionManager.d.ts +2 -3
- package/dist/editor/PermissionManager.js +0 -1
- package/dist/editor/admin/SystemHealthPanel.d.ts +0 -1
- package/dist/editor/admin/SystemHealthPanel.js +0 -1
- package/dist/editor/admin/useSystemHealth.d.ts +2 -3
- package/dist/editor/admin/useSystemHealth.js +0 -1
- package/dist/editor/canopy-path.d.ts +0 -1
- package/dist/editor/canopy-path.js +0 -1
- package/dist/editor/client-reference-resolver.d.ts +13 -4
- package/dist/editor/client-reference-resolver.js +18 -8
- package/dist/editor/comments/BranchComments.d.ts +2 -3
- package/dist/editor/comments/BranchComments.js +0 -1
- package/dist/editor/comments/EntryComments.d.ts +1 -2
- package/dist/editor/comments/EntryComments.js +0 -1
- package/dist/editor/comments/FieldWrapper.d.ts +1 -2
- package/dist/editor/comments/FieldWrapper.js +0 -1
- package/dist/editor/comments/InlineCommentThread.d.ts +2 -3
- package/dist/editor/comments/InlineCommentThread.js +0 -1
- package/dist/editor/comments/ThreadCarousel.d.ts +2 -3
- package/dist/editor/comments/ThreadCarousel.js +0 -1
- package/dist/editor/components/ConfirmDeleteModal.d.ts +0 -1
- package/dist/editor/components/ConfirmDeleteModal.js +0 -1
- package/dist/editor/components/EditorFooter.d.ts +0 -1
- package/dist/editor/components/EditorFooter.js +0 -1
- package/dist/editor/components/EditorHeader.d.ts +4 -5
- package/dist/editor/components/EditorHeader.js +0 -1
- package/dist/editor/components/EditorSidebar.d.ts +1 -2
- package/dist/editor/components/EditorSidebar.js +0 -1
- package/dist/editor/components/EntryCreateModal.d.ts +0 -1
- package/dist/editor/components/EntryCreateModal.js +21 -10
- package/dist/editor/components/RenameEntryModal.d.ts +0 -1
- package/dist/editor/components/RenameEntryModal.js +0 -1
- package/dist/editor/components/UserBadge.d.ts +2 -3
- package/dist/editor/components/UserBadge.js +0 -1
- package/dist/editor/components/index.d.ts +3 -4
- package/dist/editor/components/index.js +0 -1
- package/dist/editor/context/ApiClientContext.d.ts +9 -3
- package/dist/editor/context/ApiClientContext.js +8 -4
- package/dist/editor/context/AssetContext.d.ts +26 -2
- package/dist/editor/context/AssetContext.js +23 -3
- package/dist/editor/context/EditorStateContext.d.ts +1 -2
- package/dist/editor/context/EditorStateContext.js +0 -1
- package/dist/editor/context/SWRProvider.d.ts +0 -1
- package/dist/editor/context/SWRProvider.js +0 -1
- package/dist/editor/context/index.d.ts +4 -5
- package/dist/editor/context/index.js +0 -1
- package/dist/editor/editor-config.d.ts +2 -3
- package/dist/editor/editor-config.js +0 -1
- package/dist/editor/editor-utils.d.ts +22 -10
- package/dist/editor/editor-utils.js +41 -10
- package/dist/editor/fields/BlockField.d.ts +1 -2
- package/dist/editor/fields/BlockField.js +0 -1
- package/dist/editor/fields/CodeField.d.ts +0 -1
- package/dist/editor/fields/CodeField.js +0 -1
- package/dist/editor/fields/DateTimeField.d.ts +0 -1
- package/dist/editor/fields/DateTimeField.js +0 -1
- package/dist/editor/fields/ImageField.d.ts +1 -2
- package/dist/editor/fields/ImageField.js +0 -1
- package/dist/editor/fields/InlineGroupField.d.ts +2 -3
- package/dist/editor/fields/InlineGroupField.js +0 -1
- package/dist/editor/fields/MarkdownField.d.ts +0 -1
- package/dist/editor/fields/MarkdownField.js +0 -1
- package/dist/editor/fields/MdxImageDialog.d.ts +0 -1
- package/dist/editor/fields/MdxImageDialog.js +0 -1
- package/dist/editor/fields/NumberField.d.ts +0 -1
- package/dist/editor/fields/NumberField.js +0 -1
- package/dist/editor/fields/NumberListField.d.ts +0 -1
- package/dist/editor/fields/NumberListField.js +0 -1
- package/dist/editor/fields/ObjectField.d.ts +11 -2
- package/dist/editor/fields/ObjectField.js +3 -4
- package/dist/editor/fields/ReferenceField.d.ts +0 -1
- package/dist/editor/fields/ReferenceField.js +8 -3
- package/dist/editor/fields/SelectField.d.ts +0 -1
- package/dist/editor/fields/SelectField.js +0 -1
- package/dist/editor/fields/StringListField.d.ts +0 -1
- package/dist/editor/fields/StringListField.js +0 -1
- 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.d.ts +1 -2
- package/dist/editor/fields/entry-link/EntryLinkContext.js +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.d.ts +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.js +0 -1
- package/dist/editor/fields/entry-link/index.d.ts +2 -3
- package/dist/editor/fields/entry-link/index.js +0 -1
- package/dist/editor/group-manager/ExternalGroupsTab.d.ts +1 -2
- package/dist/editor/group-manager/ExternalGroupsTab.js +0 -1
- package/dist/editor/group-manager/GroupCard.d.ts +1 -2
- package/dist/editor/group-manager/GroupCard.js +0 -1
- package/dist/editor/group-manager/GroupForm.d.ts +1 -2
- package/dist/editor/group-manager/GroupForm.js +0 -1
- package/dist/editor/group-manager/InternalGroupsTab.d.ts +1 -2
- package/dist/editor/group-manager/InternalGroupsTab.js +0 -1
- package/dist/editor/group-manager/MemberList.d.ts +1 -2
- package/dist/editor/group-manager/MemberList.js +0 -1
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts +1 -2
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.js +0 -1
- package/dist/editor/group-manager/hooks/useGroupState.d.ts +1 -2
- package/dist/editor/group-manager/hooks/useGroupState.js +0 -1
- package/dist/editor/group-manager/hooks/useUserSearch.d.ts +1 -2
- package/dist/editor/group-manager/hooks/useUserSearch.js +0 -1
- package/dist/editor/group-manager/index.d.ts +5 -6
- package/dist/editor/group-manager/index.js +0 -1
- package/dist/editor/group-manager/types.d.ts +4 -5
- package/dist/editor/group-manager/types.js +0 -1
- package/dist/editor/hooks/index.d.ts +14 -15
- package/dist/editor/hooks/index.js +0 -1
- package/dist/editor/hooks/useBranchActions.d.ts +0 -1
- package/dist/editor/hooks/useBranchActions.js +0 -1
- package/dist/editor/hooks/useBranchManager.d.ts +4 -5
- package/dist/editor/hooks/useBranchManager.js +0 -1
- package/dist/editor/hooks/useBranchesData.d.ts +2 -3
- package/dist/editor/hooks/useBranchesData.js +0 -1
- package/dist/editor/hooks/useCommentSystem.d.ts +2 -3
- package/dist/editor/hooks/useCommentSystem.js +0 -1
- package/dist/editor/hooks/useCommentsData.d.ts +2 -3
- package/dist/editor/hooks/useCommentsData.js +0 -1
- package/dist/editor/hooks/useDraftManager.d.ts +3 -4
- package/dist/editor/hooks/useDraftManager.js +0 -1
- package/dist/editor/hooks/useEditorLayout.d.ts +1 -2
- package/dist/editor/hooks/useEditorLayout.js +0 -1
- package/dist/editor/hooks/useEntriesData.d.ts +3 -5
- package/dist/editor/hooks/useEntriesData.js +0 -3
- package/dist/editor/hooks/useEntryLinkResolution.d.ts +2 -3
- package/dist/editor/hooks/useEntryLinkResolution.js +0 -1
- package/dist/editor/hooks/useEntryManager.d.ts +5 -7
- package/dist/editor/hooks/useEntryManager.js +8 -3
- package/dist/editor/hooks/useGroupManager.d.ts +2 -3
- package/dist/editor/hooks/useGroupManager.js +0 -1
- package/dist/editor/hooks/usePermissionManager.d.ts +2 -3
- package/dist/editor/hooks/usePermissionManager.js +0 -1
- package/dist/editor/hooks/useReferenceResolution.d.ts +1 -2
- package/dist/editor/hooks/useReferenceResolution.js +8 -3
- package/dist/editor/hooks/useSchemaManager.d.ts +2 -3
- package/dist/editor/hooks/useSchemaManager.js +0 -1
- package/dist/editor/hooks/useUserContext.d.ts +1 -2
- package/dist/editor/hooks/useUserContext.js +8 -3
- package/dist/editor/hooks/useUserMetadata.d.ts +2 -3
- package/dist/editor/hooks/useUserMetadata.js +0 -1
- package/dist/editor/media/AssetCard.d.ts +1 -2
- package/dist/editor/media/AssetCard.js +0 -1
- package/dist/editor/media/CropStep.d.ts +1 -2
- package/dist/editor/media/CropStep.js +0 -1
- package/dist/editor/media/MediaLibrary.d.ts +1 -2
- package/dist/editor/media/MediaLibrary.js +0 -1
- package/dist/editor/media/MediaLibraryBody.d.ts +1 -2
- package/dist/editor/media/MediaLibraryBody.js +0 -1
- package/dist/editor/media/crop-math.d.ts +1 -2
- package/dist/editor/media/crop-math.js +0 -1
- package/dist/editor/media/upload-asset.d.ts +2 -3
- package/dist/editor/media/upload-asset.js +0 -1
- package/dist/editor/media/upload-constants.d.ts +0 -1
- package/dist/editor/media/upload-constants.js +0 -1
- package/dist/editor/media/useAssetUpload.d.ts +1 -2
- package/dist/editor/media/useAssetUpload.js +0 -1
- package/dist/editor/media/xhr-upload.d.ts +0 -1
- package/dist/editor/media/xhr-upload.js +0 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts +1 -2
- package/dist/editor/permission-manager/GroupSelector.js +0 -1
- package/dist/editor/permission-manager/PermissionEditor.d.ts +1 -2
- package/dist/editor/permission-manager/PermissionEditor.js +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.d.ts +1 -2
- package/dist/editor/permission-manager/PermissionLevelBadge.js +0 -1
- package/dist/editor/permission-manager/PermissionTree.d.ts +1 -2
- package/dist/editor/permission-manager/PermissionTree.js +0 -1
- package/dist/editor/permission-manager/UserSelector.d.ts +1 -2
- package/dist/editor/permission-manager/UserSelector.js +0 -1
- package/dist/editor/permission-manager/constants.d.ts +1 -2
- package/dist/editor/permission-manager/constants.js +0 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +1 -2
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +0 -1
- package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts +2 -3
- package/dist/editor/permission-manager/hooks/usePermissionTree.js +0 -1
- package/dist/editor/permission-manager/index.d.ts +4 -5
- package/dist/editor/permission-manager/index.js +0 -1
- package/dist/editor/permission-manager/types.d.ts +3 -4
- package/dist/editor/permission-manager/types.js +0 -1
- package/dist/editor/permission-manager/utils.d.ts +2 -3
- package/dist/editor/permission-manager/utils.js +0 -1
- package/dist/editor/preview-bridge.d.ts +1 -2
- package/dist/editor/preview-bridge.js +0 -1
- package/dist/editor/relative-time.d.ts +0 -1
- package/dist/editor/relative-time.js +0 -1
- package/dist/editor/schema-editor/CollectionEditor.d.ts +4 -5
- package/dist/editor/schema-editor/CollectionEditor.js +0 -1
- package/dist/editor/schema-editor/EntryTypeEditor.d.ts +2 -3
- package/dist/editor/schema-editor/EntryTypeEditor.js +0 -1
- package/dist/editor/schema-editor/index.d.ts +2 -3
- package/dist/editor/schema-editor/index.js +0 -1
- package/dist/editor/theme.d.ts +0 -1
- package/dist/editor/theme.js +0 -1
- package/dist/editor/utils/env.d.ts +0 -1
- package/dist/editor/utils/env.js +0 -1
- package/dist/entry-link-resolver.d.ts +1 -2
- package/dist/entry-link-resolver.js +0 -1
- package/dist/entry-schema-registry.d.ts +3 -4
- package/dist/entry-schema-registry.js +6 -2
- package/dist/entry-schema.d.ts +342 -11
- package/dist/entry-schema.js +170 -1
- package/dist/git-manager.d.ts +1 -2
- package/dist/git-manager.js +0 -1
- package/dist/github-service.d.ts +1 -2
- package/dist/github-service.js +0 -1
- package/dist/http/handler.d.ts +6 -7
- package/dist/http/handler.js +0 -1
- package/dist/http/index.d.ts +6 -7
- package/dist/http/index.js +0 -1
- package/dist/http/router.d.ts +2 -3
- package/dist/http/router.js +0 -1
- package/dist/http/types.d.ts +0 -1
- package/dist/http/types.js +0 -1
- package/dist/id.d.ts +2 -3
- package/dist/id.js +0 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.js +7 -1
- package/dist/operating-mode/client-safe-strategy.d.ts +1 -2
- package/dist/operating-mode/client-safe-strategy.js +0 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts +1 -2
- package/dist/operating-mode/client-unsafe-strategy.js +0 -1
- package/dist/operating-mode/client.d.ts +3 -4
- package/dist/operating-mode/client.js +0 -1
- package/dist/operating-mode/deployment-name-fixtures.d.ts +0 -1
- package/dist/operating-mode/deployment-name-fixtures.js +0 -1
- package/dist/operating-mode/deployment-name.d.ts +0 -1
- package/dist/operating-mode/deployment-name.js +0 -1
- package/dist/operating-mode/index.d.ts +5 -6
- package/dist/operating-mode/index.js +0 -1
- package/dist/operating-mode/mode-env.d.ts +1 -2
- package/dist/operating-mode/mode-env.js +0 -1
- package/dist/operating-mode/types.d.ts +2 -3
- package/dist/operating-mode/types.js +0 -1
- package/dist/paths/branch-name.d.ts +1 -2
- package/dist/paths/branch-name.js +0 -1
- package/dist/paths/branch.d.ts +3 -4
- package/dist/paths/branch.js +0 -1
- package/dist/paths/index.d.ts +8 -9
- package/dist/paths/index.js +0 -1
- package/dist/paths/normalize-server.d.ts +1 -2
- package/dist/paths/normalize-server.js +0 -1
- package/dist/paths/normalize.d.ts +1 -2
- package/dist/paths/normalize.js +0 -1
- package/dist/paths/resolve.d.ts +2 -3
- package/dist/paths/resolve.js +0 -1
- package/dist/paths/types.d.ts +0 -1
- package/dist/paths/types.js +0 -1
- package/dist/paths/validation.d.ts +1 -2
- package/dist/paths/validation.js +0 -1
- package/dist/reference-resolver.d.ts +3 -4
- package/dist/reference-resolver.js +0 -1
- package/dist/resolve-canopy-user.d.ts +3 -4
- package/dist/resolve-canopy-user.js +0 -1
- package/dist/resource-generation.d.ts +0 -1
- package/dist/resource-generation.js +0 -1
- package/dist/schema/index.d.ts +3 -4
- package/dist/schema/index.js +0 -1
- package/dist/schema/meta-loader.d.ts +3 -4
- package/dist/schema/meta-loader.js +3 -3
- package/dist/schema/resolver.d.ts +2 -3
- package/dist/schema/resolver.js +0 -1
- package/dist/schema/schema-store-types.d.ts +2 -3
- package/dist/schema/schema-store-types.js +0 -1
- package/dist/schema/schema-store.d.ts +6 -7
- package/dist/schema/schema-store.js +33 -1
- package/dist/schema/types.d.ts +1 -2
- package/dist/schema/types.js +0 -1
- package/dist/server.d.ts +97 -37
- package/dist/server.js +60 -3
- package/dist/services.d.ts +10 -12
- package/dist/services.js +2 -7
- package/dist/settings-workspace.d.ts +12 -15
- package/dist/settings-workspace.js +10 -13
- package/dist/static/index.d.ts +227 -9
- package/dist/static/index.js +302 -14
- package/dist/static/seo.d.ts +128 -0
- package/dist/static/seo.js +162 -0
- package/dist/sync-core.d.ts +0 -1
- package/dist/sync-core.js +0 -1
- package/dist/task-queue/index.d.ts +2 -3
- package/dist/task-queue/index.js +0 -1
- package/dist/task-queue/task-queue.d.ts +1 -2
- package/dist/task-queue/task-queue.js +0 -1
- package/dist/task-queue/types.d.ts +0 -1
- package/dist/task-queue/types.js +0 -1
- package/dist/types.d.ts +3 -4
- package/dist/types.js +0 -1
- package/dist/url-collision.d.ts +86 -0
- package/dist/url-collision.js +186 -0
- package/dist/url-path-resolver.d.ts +11 -2
- package/dist/url-path-resolver.js +37 -5
- package/dist/user.d.ts +3 -4
- package/dist/user.js +0 -1
- package/dist/utils/async-mutex.d.ts +0 -1
- package/dist/utils/async-mutex.js +0 -1
- package/dist/utils/atomic-write.d.ts +0 -1
- package/dist/utils/atomic-write.js +0 -1
- package/dist/utils/body-field.d.ts +12 -2
- package/dist/utils/body-field.js +17 -1
- package/dist/utils/content-serialize.d.ts +37 -0
- package/dist/utils/content-serialize.js +429 -0
- package/dist/utils/content-write-lock.d.ts +12 -16
- package/dist/utils/content-write-lock.js +38 -22
- package/dist/utils/debug.d.ts +0 -1
- package/dist/utils/debug.js +0 -1
- package/dist/utils/entry-url.d.ts +17 -1
- package/dist/utils/entry-url.js +21 -3
- package/dist/utils/error.d.ts +0 -1
- package/dist/utils/error.js +0 -1
- package/dist/utils/flatten-group-fields.d.ts +1 -2
- package/dist/utils/flatten-group-fields.js +0 -1
- package/dist/utils/format.d.ts +1 -2
- package/dist/utils/format.js +0 -1
- package/dist/utils/fs.d.ts +7 -1
- package/dist/utils/fs.js +16 -1
- package/dist/utils/git.d.ts +1 -2
- package/dist/utils/git.js +0 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.js +0 -1
- package/dist/utils/occ-json-write.d.ts +0 -1
- package/dist/utils/occ-json-write.js +0 -1
- package/dist/utils/provisioning-lock.d.ts +17 -4
- package/dist/utils/provisioning-lock.js +94 -14
- package/dist/utils/sanitize-href.d.ts +46 -1
- package/dist/utils/sanitize-href.js +63 -3
- package/dist/utils/title-field.d.ts +1 -2
- package/dist/utils/title-field.js +0 -1
- package/dist/utils/typed-filename.d.ts +61 -0
- package/dist/utils/typed-filename.js +92 -0
- package/dist/utils/url-prefix.d.ts +121 -0
- package/dist/utils/url-prefix.js +158 -0
- package/dist/validation/block-structural-keys.d.ts +42 -0
- package/dist/validation/block-structural-keys.js +44 -0
- package/dist/validation/deletion-checker.d.ts +4 -5
- package/dist/validation/deletion-checker.js +0 -1
- package/dist/validation/entry-link-validator.d.ts +2 -3
- package/dist/validation/entry-link-validator.js +0 -1
- package/dist/validation/entry-type-reference-validator.d.ts +1 -2
- package/dist/validation/entry-type-reference-validator.js +0 -1
- package/dist/validation/entry-validator.d.ts +23 -2
- package/dist/validation/entry-validator.js +34 -2
- package/dist/validation/field-traversal.d.ts +28 -4
- package/dist/validation/field-traversal.js +24 -7
- package/dist/validation/reference-validator.d.ts +2 -3
- package/dist/validation/reference-validator.js +0 -1
- package/dist/worker/cms-worker.d.ts +9 -2
- package/dist/worker/cms-worker.js +59 -2
- package/dist/worker/log.d.ts +0 -1
- package/dist/worker/log.js +0 -1
- package/dist/worker/task-queue-config.d.ts +1 -2
- package/dist/worker/task-queue-config.js +0 -1
- package/dist/worker/task-queue.d.ts +3 -4
- package/dist/worker/task-queue.js +0 -1
- package/dist/worker/worker-status.d.ts +1 -2
- package/dist/worker/worker-status.js +0 -1
- package/package.json +2 -6
- package/dist/ai/generate.d.ts.map +0 -1
- package/dist/ai/generate.js.map +0 -1
- package/dist/ai/handler.d.ts.map +0 -1
- package/dist/ai/handler.js.map +0 -1
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/index.js.map +0 -1
- package/dist/ai/json-to-markdown.d.ts.map +0 -1
- package/dist/ai/json-to-markdown.js.map +0 -1
- package/dist/ai/resolve-branch.d.ts.map +0 -1
- package/dist/ai/resolve-branch.js.map +0 -1
- package/dist/ai/strip-mdx.d.ts.map +0 -1
- package/dist/ai/strip-mdx.js.map +0 -1
- package/dist/ai/transform-components.d.ts.map +0 -1
- package/dist/ai/transform-components.js.map +0 -1
- package/dist/ai/types.d.ts.map +0 -1
- package/dist/ai/types.js.map +0 -1
- package/dist/api/__test__/mock-client.d.ts +0 -231
- package/dist/api/__test__/mock-client.d.ts.map +0 -1
- package/dist/api/__test__/mock-client.js +0 -388
- package/dist/api/__test__/mock-client.js.map +0 -1
- package/dist/api/admin-branch-health.d.ts.map +0 -1
- package/dist/api/admin-branch-health.js.map +0 -1
- package/dist/api/admin.d.ts.map +0 -1
- package/dist/api/admin.js.map +0 -1
- package/dist/api/assets.d.ts.map +0 -1
- package/dist/api/assets.js.map +0 -1
- package/dist/api/branch-merge.d.ts.map +0 -1
- package/dist/api/branch-merge.js.map +0 -1
- package/dist/api/branch-review.d.ts.map +0 -1
- package/dist/api/branch-review.js.map +0 -1
- package/dist/api/branch-status.d.ts.map +0 -1
- package/dist/api/branch-status.js.map +0 -1
- package/dist/api/branch-withdraw.d.ts.map +0 -1
- package/dist/api/branch-withdraw.js.map +0 -1
- package/dist/api/branch.d.ts.map +0 -1
- package/dist/api/branch.js.map +0 -1
- package/dist/api/client.d.ts.map +0 -1
- package/dist/api/client.js.map +0 -1
- package/dist/api/comments.d.ts.map +0 -1
- package/dist/api/comments.js.map +0 -1
- package/dist/api/content.d.ts.map +0 -1
- package/dist/api/content.js.map +0 -1
- package/dist/api/entries-constants.d.ts.map +0 -1
- package/dist/api/entries-constants.js.map +0 -1
- package/dist/api/entries.d.ts.map +0 -1
- package/dist/api/entries.js.map +0 -1
- package/dist/api/github-sync.d.ts.map +0 -1
- package/dist/api/github-sync.js.map +0 -1
- package/dist/api/groups.d.ts.map +0 -1
- package/dist/api/groups.js.map +0 -1
- package/dist/api/guards.d.ts.map +0 -1
- package/dist/api/guards.js.map +0 -1
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js.map +0 -1
- package/dist/api/permissions.d.ts.map +0 -1
- package/dist/api/permissions.js.map +0 -1
- package/dist/api/reference-options.d.ts.map +0 -1
- package/dist/api/reference-options.js.map +0 -1
- package/dist/api/request-body-hash.d.ts.map +0 -1
- package/dist/api/request-body-hash.js.map +0 -1
- package/dist/api/resolve-references.d.ts.map +0 -1
- package/dist/api/resolve-references.js.map +0 -1
- package/dist/api/route-builder.d.ts.map +0 -1
- package/dist/api/route-builder.js.map +0 -1
- package/dist/api/schema.d.ts.map +0 -1
- package/dist/api/schema.js.map +0 -1
- package/dist/api/settings-helpers.d.ts.map +0 -1
- package/dist/api/settings-helpers.js.map +0 -1
- package/dist/api/types.d.ts.map +0 -1
- package/dist/api/types.js.map +0 -1
- package/dist/api/user.d.ts.map +0 -1
- package/dist/api/user.js.map +0 -1
- package/dist/api/validators.d.ts.map +0 -1
- package/dist/api/validators.js.map +0 -1
- package/dist/assets/asset-prefixes.d.ts.map +0 -1
- package/dist/assets/asset-prefixes.js.map +0 -1
- package/dist/assets/asset-src.d.ts.map +0 -1
- package/dist/assets/asset-src.js.map +0 -1
- package/dist/assets/asset-url.d.ts.map +0 -1
- package/dist/assets/asset-url.js.map +0 -1
- package/dist/assets/factory.d.ts.map +0 -1
- package/dist/assets/factory.js.map +0 -1
- package/dist/assets/finalize.d.ts.map +0 -1
- package/dist/assets/finalize.js.map +0 -1
- package/dist/assets/index.d.ts.map +0 -1
- package/dist/assets/index.js.map +0 -1
- package/dist/assets/keys.d.ts.map +0 -1
- package/dist/assets/keys.js.map +0 -1
- package/dist/assets/pipeline.d.ts.map +0 -1
- package/dist/assets/pipeline.js.map +0 -1
- package/dist/assets/store-local.d.ts.map +0 -1
- package/dist/assets/store-local.js.map +0 -1
- package/dist/assets/store-s3.d.ts.map +0 -1
- package/dist/assets/store-s3.js.map +0 -1
- package/dist/assets/svg-sanitizer.d.ts.map +0 -1
- package/dist/assets/svg-sanitizer.js.map +0 -1
- package/dist/assets/transform-directives.d.ts.map +0 -1
- package/dist/assets/transform-directives.js.map +0 -1
- package/dist/assets/transform.d.ts.map +0 -1
- package/dist/assets/transform.js.map +0 -1
- package/dist/assets/types.d.ts.map +0 -1
- package/dist/assets/types.js.map +0 -1
- package/dist/auth/cache.d.ts.map +0 -1
- package/dist/auth/cache.js.map +0 -1
- package/dist/auth/caching-auth-plugin.d.ts.map +0 -1
- package/dist/auth/caching-auth-plugin.js.map +0 -1
- package/dist/auth/context-helpers.d.ts.map +0 -1
- package/dist/auth/context-helpers.js.map +0 -1
- package/dist/auth/file-based-auth-cache.d.ts.map +0 -1
- package/dist/auth/file-based-auth-cache.js.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/plugin.d.ts.map +0 -1
- package/dist/auth/plugin.js.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js.map +0 -1
- package/dist/authorization/branch.d.ts.map +0 -1
- package/dist/authorization/branch.js.map +0 -1
- package/dist/authorization/content.d.ts.map +0 -1
- package/dist/authorization/content.js.map +0 -1
- package/dist/authorization/groups/index.d.ts.map +0 -1
- package/dist/authorization/groups/index.js.map +0 -1
- package/dist/authorization/groups/loader.d.ts.map +0 -1
- package/dist/authorization/groups/loader.js.map +0 -1
- package/dist/authorization/groups/schema.d.ts.map +0 -1
- package/dist/authorization/groups/schema.js.map +0 -1
- package/dist/authorization/helpers.d.ts.map +0 -1
- package/dist/authorization/helpers.js.map +0 -1
- package/dist/authorization/index.d.ts.map +0 -1
- package/dist/authorization/index.js.map +0 -1
- package/dist/authorization/path.d.ts.map +0 -1
- package/dist/authorization/path.js.map +0 -1
- package/dist/authorization/permissions/index.d.ts.map +0 -1
- package/dist/authorization/permissions/index.js.map +0 -1
- package/dist/authorization/permissions/loader.d.ts.map +0 -1
- package/dist/authorization/permissions/loader.js.map +0 -1
- package/dist/authorization/permissions/schema.d.ts.map +0 -1
- package/dist/authorization/permissions/schema.js.map +0 -1
- package/dist/authorization/protected-branch.d.ts.map +0 -1
- package/dist/authorization/protected-branch.js.map +0 -1
- package/dist/authorization/settings-file-store.d.ts.map +0 -1
- package/dist/authorization/settings-file-store.js.map +0 -1
- package/dist/authorization/test-utils.d.ts +0 -26
- package/dist/authorization/test-utils.d.ts.map +0 -1
- package/dist/authorization/test-utils.js +0 -23
- package/dist/authorization/test-utils.js.map +0 -1
- package/dist/authorization/types.d.ts.map +0 -1
- package/dist/authorization/types.js.map +0 -1
- package/dist/authorization/validation.d.ts.map +0 -1
- package/dist/authorization/validation.js.map +0 -1
- package/dist/branch-health.d.ts.map +0 -1
- package/dist/branch-health.js.map +0 -1
- package/dist/branch-metadata.d.ts.map +0 -1
- package/dist/branch-metadata.js.map +0 -1
- package/dist/branch-registry.d.ts.map +0 -1
- package/dist/branch-registry.js.map +0 -1
- package/dist/branch-schema-cache.d.ts.map +0 -1
- package/dist/branch-schema-cache.js.map +0 -1
- package/dist/branch-workspace.d.ts.map +0 -1
- package/dist/branch-workspace.js.map +0 -1
- package/dist/build/generate-ai-content.d.ts.map +0 -1
- package/dist/build/generate-ai-content.js.map +0 -1
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js.map +0 -1
- package/dist/build-mode.d.ts.map +0 -1
- package/dist/build-mode.js.map +0 -1
- package/dist/cli/cli.d.ts.map +0 -1
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/generate-ai-content.d.ts.map +0 -1
- package/dist/cli/generate-ai-content.js.map +0 -1
- package/dist/cli/init.d.ts.map +0 -1
- package/dist/cli/init.js.map +0 -1
- package/dist/cli/migrate.d.ts.map +0 -1
- package/dist/cli/migrate.js.map +0 -1
- package/dist/cli/project-detect.d.ts.map +0 -1
- package/dist/cli/project-detect.js.map +0 -1
- package/dist/cli/project-root.d.ts.map +0 -1
- package/dist/cli/project-root.js.map +0 -1
- package/dist/cli/sync.d.ts.map +0 -1
- package/dist/cli/sync.js.map +0 -1
- package/dist/cli/templates.d.ts.map +0 -1
- package/dist/cli/templates.js.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/comment-store.d.ts.map +0 -1
- package/dist/comment-store.js.map +0 -1
- package/dist/config/flatten.d.ts.map +0 -1
- package/dist/config/flatten.js.map +0 -1
- package/dist/config/helpers.d.ts.map +0 -1
- package/dist/config/helpers.js.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/config/schemas/collection.d.ts.map +0 -1
- package/dist/config/schemas/collection.js.map +0 -1
- package/dist/config/schemas/config.d.ts.map +0 -1
- package/dist/config/schemas/config.js.map +0 -1
- package/dist/config/schemas/field.d.ts.map +0 -1
- package/dist/config/schemas/field.js.map +0 -1
- package/dist/config/schemas/media.d.ts.map +0 -1
- package/dist/config/schemas/media.js.map +0 -1
- package/dist/config/schemas/permissions.d.ts.map +0 -1
- package/dist/config/schemas/permissions.js.map +0 -1
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js.map +0 -1
- package/dist/config/validation.d.ts.map +0 -1
- package/dist/config/validation.js.map +0 -1
- package/dist/config-test.d.ts +0 -20
- package/dist/config-test.d.ts.map +0 -1
- package/dist/config-test.js +0 -49
- package/dist/config-test.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/content-id-index.d.ts.map +0 -1
- package/dist/content-id-index.js.map +0 -1
- package/dist/content-index-generation.d.ts.map +0 -1
- package/dist/content-index-generation.js.map +0 -1
- package/dist/content-index-registry.d.ts.map +0 -1
- package/dist/content-index-registry.js.map +0 -1
- package/dist/content-listing.d.ts.map +0 -1
- package/dist/content-listing.js.map +0 -1
- package/dist/content-reader.d.ts.map +0 -1
- package/dist/content-reader.js.map +0 -1
- package/dist/content-store.d.ts.map +0 -1
- package/dist/content-store.js.map +0 -1
- package/dist/content-tree.d.ts.map +0 -1
- package/dist/content-tree.js.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/dev-content-watcher.d.ts.map +0 -1
- package/dist/dev-content-watcher.js.map +0 -1
- package/dist/editor/BranchManager.d.ts.map +0 -1
- package/dist/editor/BranchManager.js.map +0 -1
- package/dist/editor/CanopyEditor.d.ts.map +0 -1
- package/dist/editor/CanopyEditor.js.map +0 -1
- package/dist/editor/CanopyEditorPage.d.ts.map +0 -1
- package/dist/editor/CanopyEditorPage.js.map +0 -1
- package/dist/editor/CommentsPanel.d.ts.map +0 -1
- package/dist/editor/CommentsPanel.js.map +0 -1
- package/dist/editor/Editor.d.ts.map +0 -1
- package/dist/editor/Editor.js.map +0 -1
- package/dist/editor/EditorPanes.d.ts.map +0 -1
- package/dist/editor/EditorPanes.js.map +0 -1
- package/dist/editor/EntryNavigator.d.ts.map +0 -1
- package/dist/editor/EntryNavigator.js.map +0 -1
- package/dist/editor/FormRenderer.d.ts.map +0 -1
- package/dist/editor/FormRenderer.js.map +0 -1
- package/dist/editor/GroupManager.d.ts.map +0 -1
- package/dist/editor/GroupManager.js.map +0 -1
- package/dist/editor/PermissionManager.d.ts.map +0 -1
- package/dist/editor/PermissionManager.js.map +0 -1
- package/dist/editor/admin/SystemHealthPanel.d.ts.map +0 -1
- package/dist/editor/admin/SystemHealthPanel.js.map +0 -1
- package/dist/editor/admin/useSystemHealth.d.ts.map +0 -1
- package/dist/editor/admin/useSystemHealth.js.map +0 -1
- package/dist/editor/canopy-path.d.ts.map +0 -1
- package/dist/editor/canopy-path.js.map +0 -1
- package/dist/editor/client-reference-resolver.d.ts.map +0 -1
- package/dist/editor/client-reference-resolver.js.map +0 -1
- package/dist/editor/comments/BranchComments.d.ts.map +0 -1
- package/dist/editor/comments/BranchComments.js.map +0 -1
- package/dist/editor/comments/EntryComments.d.ts.map +0 -1
- package/dist/editor/comments/EntryComments.js.map +0 -1
- package/dist/editor/comments/FieldWrapper.d.ts.map +0 -1
- package/dist/editor/comments/FieldWrapper.js.map +0 -1
- package/dist/editor/comments/InlineCommentThread.d.ts.map +0 -1
- package/dist/editor/comments/InlineCommentThread.js.map +0 -1
- package/dist/editor/comments/ThreadCarousel.d.ts.map +0 -1
- package/dist/editor/comments/ThreadCarousel.js.map +0 -1
- package/dist/editor/components/ConfirmDeleteModal.d.ts.map +0 -1
- package/dist/editor/components/ConfirmDeleteModal.js.map +0 -1
- package/dist/editor/components/EditorFooter.d.ts.map +0 -1
- package/dist/editor/components/EditorFooter.js.map +0 -1
- package/dist/editor/components/EditorHeader.d.ts.map +0 -1
- package/dist/editor/components/EditorHeader.js.map +0 -1
- package/dist/editor/components/EditorSidebar.d.ts.map +0 -1
- package/dist/editor/components/EditorSidebar.js.map +0 -1
- package/dist/editor/components/EntryCreateModal.d.ts.map +0 -1
- package/dist/editor/components/EntryCreateModal.js.map +0 -1
- package/dist/editor/components/RenameEntryModal.d.ts.map +0 -1
- package/dist/editor/components/RenameEntryModal.js.map +0 -1
- package/dist/editor/components/UserBadge.d.ts.map +0 -1
- package/dist/editor/components/UserBadge.js.map +0 -1
- package/dist/editor/components/index.d.ts.map +0 -1
- package/dist/editor/components/index.js.map +0 -1
- package/dist/editor/context/ApiClientContext.d.ts.map +0 -1
- package/dist/editor/context/ApiClientContext.js.map +0 -1
- package/dist/editor/context/AssetContext.d.ts.map +0 -1
- package/dist/editor/context/AssetContext.js.map +0 -1
- package/dist/editor/context/EditorStateContext.d.ts.map +0 -1
- package/dist/editor/context/EditorStateContext.js.map +0 -1
- package/dist/editor/context/SWRProvider.d.ts.map +0 -1
- package/dist/editor/context/SWRProvider.js.map +0 -1
- package/dist/editor/context/index.d.ts.map +0 -1
- package/dist/editor/context/index.js.map +0 -1
- package/dist/editor/editor-config.d.ts.map +0 -1
- package/dist/editor/editor-config.js.map +0 -1
- package/dist/editor/editor-utils.d.ts.map +0 -1
- package/dist/editor/editor-utils.js.map +0 -1
- package/dist/editor/fields/BlockField.d.ts.map +0 -1
- package/dist/editor/fields/BlockField.js.map +0 -1
- package/dist/editor/fields/CodeField.d.ts.map +0 -1
- package/dist/editor/fields/CodeField.js.map +0 -1
- package/dist/editor/fields/DateTimeField.d.ts.map +0 -1
- package/dist/editor/fields/DateTimeField.js.map +0 -1
- package/dist/editor/fields/ImageField.d.ts.map +0 -1
- package/dist/editor/fields/ImageField.js.map +0 -1
- package/dist/editor/fields/InlineGroupField.d.ts.map +0 -1
- package/dist/editor/fields/InlineGroupField.js.map +0 -1
- package/dist/editor/fields/MarkdownField.d.ts.map +0 -1
- package/dist/editor/fields/MarkdownField.js.map +0 -1
- package/dist/editor/fields/MdxImageDialog.d.ts.map +0 -1
- package/dist/editor/fields/MdxImageDialog.js.map +0 -1
- package/dist/editor/fields/NumberField.d.ts.map +0 -1
- package/dist/editor/fields/NumberField.js.map +0 -1
- package/dist/editor/fields/NumberListField.d.ts.map +0 -1
- package/dist/editor/fields/NumberListField.js.map +0 -1
- package/dist/editor/fields/ObjectField.d.ts.map +0 -1
- package/dist/editor/fields/ObjectField.js.map +0 -1
- package/dist/editor/fields/ReferenceField.d.ts.map +0 -1
- package/dist/editor/fields/ReferenceField.js.map +0 -1
- package/dist/editor/fields/SelectField.d.ts.map +0 -1
- package/dist/editor/fields/SelectField.js.map +0 -1
- package/dist/editor/fields/StringListField.d.ts.map +0 -1
- package/dist/editor/fields/StringListField.js.map +0 -1
- package/dist/editor/fields/TextField.d.ts.map +0 -1
- package/dist/editor/fields/TextField.js.map +0 -1
- package/dist/editor/fields/ToggleField.d.ts.map +0 -1
- package/dist/editor/fields/ToggleField.js.map +0 -1
- package/dist/editor/fields/entry-link/EntryLinkContext.d.ts.map +0 -1
- package/dist/editor/fields/entry-link/EntryLinkContext.js.map +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.d.ts.map +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.js.map +0 -1
- package/dist/editor/fields/entry-link/index.d.ts.map +0 -1
- package/dist/editor/fields/entry-link/index.js.map +0 -1
- package/dist/editor/group-manager/ExternalGroupsTab.d.ts.map +0 -1
- package/dist/editor/group-manager/ExternalGroupsTab.js.map +0 -1
- package/dist/editor/group-manager/GroupCard.d.ts.map +0 -1
- package/dist/editor/group-manager/GroupCard.js.map +0 -1
- package/dist/editor/group-manager/GroupForm.d.ts.map +0 -1
- package/dist/editor/group-manager/GroupForm.js.map +0 -1
- package/dist/editor/group-manager/InternalGroupsTab.d.ts.map +0 -1
- package/dist/editor/group-manager/InternalGroupsTab.js.map +0 -1
- package/dist/editor/group-manager/MemberList.d.ts.map +0 -1
- package/dist/editor/group-manager/MemberList.js.map +0 -1
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts.map +0 -1
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.js.map +0 -1
- package/dist/editor/group-manager/hooks/useGroupState.d.ts.map +0 -1
- package/dist/editor/group-manager/hooks/useGroupState.js.map +0 -1
- package/dist/editor/group-manager/hooks/useUserSearch.d.ts.map +0 -1
- package/dist/editor/group-manager/hooks/useUserSearch.js.map +0 -1
- package/dist/editor/group-manager/index.d.ts.map +0 -1
- package/dist/editor/group-manager/index.js.map +0 -1
- package/dist/editor/group-manager/types.d.ts.map +0 -1
- package/dist/editor/group-manager/types.js.map +0 -1
- package/dist/editor/hooks/__test__/test-utils.d.ts +0 -164
- package/dist/editor/hooks/__test__/test-utils.d.ts.map +0 -1
- package/dist/editor/hooks/__test__/test-utils.js +0 -203
- package/dist/editor/hooks/__test__/test-utils.js.map +0 -1
- package/dist/editor/hooks/index.d.ts.map +0 -1
- package/dist/editor/hooks/index.js.map +0 -1
- package/dist/editor/hooks/useBranchActions.d.ts.map +0 -1
- package/dist/editor/hooks/useBranchActions.js.map +0 -1
- package/dist/editor/hooks/useBranchManager.d.ts.map +0 -1
- package/dist/editor/hooks/useBranchManager.js.map +0 -1
- package/dist/editor/hooks/useBranchesData.d.ts.map +0 -1
- package/dist/editor/hooks/useBranchesData.js.map +0 -1
- package/dist/editor/hooks/useCommentSystem.d.ts.map +0 -1
- package/dist/editor/hooks/useCommentSystem.js.map +0 -1
- package/dist/editor/hooks/useCommentsData.d.ts.map +0 -1
- package/dist/editor/hooks/useCommentsData.js.map +0 -1
- package/dist/editor/hooks/useDraftManager.d.ts.map +0 -1
- package/dist/editor/hooks/useDraftManager.js.map +0 -1
- package/dist/editor/hooks/useEditorLayout.d.ts.map +0 -1
- package/dist/editor/hooks/useEditorLayout.js.map +0 -1
- package/dist/editor/hooks/useEntriesData.d.ts.map +0 -1
- package/dist/editor/hooks/useEntriesData.js.map +0 -1
- package/dist/editor/hooks/useEntryLinkResolution.d.ts.map +0 -1
- package/dist/editor/hooks/useEntryLinkResolution.js.map +0 -1
- package/dist/editor/hooks/useEntryManager.d.ts.map +0 -1
- package/dist/editor/hooks/useEntryManager.js.map +0 -1
- package/dist/editor/hooks/useGroupManager.d.ts.map +0 -1
- package/dist/editor/hooks/useGroupManager.js.map +0 -1
- package/dist/editor/hooks/usePermissionManager.d.ts.map +0 -1
- package/dist/editor/hooks/usePermissionManager.js.map +0 -1
- package/dist/editor/hooks/useReferenceResolution.d.ts.map +0 -1
- package/dist/editor/hooks/useReferenceResolution.js.map +0 -1
- package/dist/editor/hooks/useSchemaManager.d.ts.map +0 -1
- package/dist/editor/hooks/useSchemaManager.js.map +0 -1
- package/dist/editor/hooks/useUserContext.d.ts.map +0 -1
- package/dist/editor/hooks/useUserContext.js.map +0 -1
- package/dist/editor/hooks/useUserMetadata.d.ts.map +0 -1
- package/dist/editor/hooks/useUserMetadata.js.map +0 -1
- package/dist/editor/media/AssetCard.d.ts.map +0 -1
- package/dist/editor/media/AssetCard.js.map +0 -1
- package/dist/editor/media/CropStep.d.ts.map +0 -1
- package/dist/editor/media/CropStep.js.map +0 -1
- package/dist/editor/media/MediaLibrary.d.ts.map +0 -1
- package/dist/editor/media/MediaLibrary.js.map +0 -1
- package/dist/editor/media/MediaLibraryBody.d.ts.map +0 -1
- package/dist/editor/media/MediaLibraryBody.js.map +0 -1
- package/dist/editor/media/crop-math.d.ts.map +0 -1
- package/dist/editor/media/crop-math.js.map +0 -1
- package/dist/editor/media/upload-asset.d.ts.map +0 -1
- package/dist/editor/media/upload-asset.js.map +0 -1
- package/dist/editor/media/upload-constants.d.ts.map +0 -1
- package/dist/editor/media/upload-constants.js.map +0 -1
- package/dist/editor/media/useAssetUpload.d.ts.map +0 -1
- package/dist/editor/media/useAssetUpload.js.map +0 -1
- package/dist/editor/media/xhr-upload.d.ts.map +0 -1
- package/dist/editor/media/xhr-upload.js.map +0 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts.map +0 -1
- package/dist/editor/permission-manager/GroupSelector.js.map +0 -1
- package/dist/editor/permission-manager/PermissionEditor.d.ts.map +0 -1
- package/dist/editor/permission-manager/PermissionEditor.js.map +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.d.ts.map +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.js.map +0 -1
- package/dist/editor/permission-manager/PermissionTree.d.ts.map +0 -1
- package/dist/editor/permission-manager/PermissionTree.js.map +0 -1
- package/dist/editor/permission-manager/UserSelector.d.ts.map +0 -1
- package/dist/editor/permission-manager/UserSelector.js.map +0 -1
- package/dist/editor/permission-manager/constants.d.ts.map +0 -1
- package/dist/editor/permission-manager/constants.js.map +0 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +0 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +0 -1
- package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts.map +0 -1
- package/dist/editor/permission-manager/hooks/usePermissionTree.js.map +0 -1
- package/dist/editor/permission-manager/index.d.ts.map +0 -1
- package/dist/editor/permission-manager/index.js.map +0 -1
- package/dist/editor/permission-manager/types.d.ts.map +0 -1
- package/dist/editor/permission-manager/types.js.map +0 -1
- package/dist/editor/permission-manager/utils.d.ts.map +0 -1
- package/dist/editor/permission-manager/utils.js.map +0 -1
- package/dist/editor/preview-bridge.d.ts.map +0 -1
- package/dist/editor/preview-bridge.js.map +0 -1
- package/dist/editor/relative-time.d.ts.map +0 -1
- package/dist/editor/relative-time.js.map +0 -1
- package/dist/editor/schema-editor/CollectionEditor.d.ts.map +0 -1
- package/dist/editor/schema-editor/CollectionEditor.js.map +0 -1
- package/dist/editor/schema-editor/EntryTypeEditor.d.ts.map +0 -1
- package/dist/editor/schema-editor/EntryTypeEditor.js.map +0 -1
- package/dist/editor/schema-editor/index.d.ts.map +0 -1
- package/dist/editor/schema-editor/index.js.map +0 -1
- package/dist/editor/setup-test-dom.d.ts +0 -1
- package/dist/editor/setup-test-dom.d.ts.map +0 -1
- package/dist/editor/setup-test-dom.js +0 -12
- package/dist/editor/setup-test-dom.js.map +0 -1
- package/dist/editor/test-setup.d.ts +0 -6
- package/dist/editor/test-setup.d.ts.map +0 -1
- package/dist/editor/test-setup.js +0 -42
- package/dist/editor/test-setup.js.map +0 -1
- package/dist/editor/theme.d.ts.map +0 -1
- package/dist/editor/theme.js.map +0 -1
- package/dist/editor/utils/env.d.ts.map +0 -1
- package/dist/editor/utils/env.js.map +0 -1
- package/dist/entry-link-resolver.d.ts.map +0 -1
- package/dist/entry-link-resolver.js.map +0 -1
- package/dist/entry-schema-registry.d.ts.map +0 -1
- package/dist/entry-schema-registry.js.map +0 -1
- package/dist/entry-schema.d.ts.map +0 -1
- package/dist/entry-schema.js.map +0 -1
- package/dist/git-manager.d.ts.map +0 -1
- package/dist/git-manager.js.map +0 -1
- package/dist/github-service.d.ts.map +0 -1
- package/dist/github-service.js.map +0 -1
- package/dist/http/handler.d.ts.map +0 -1
- package/dist/http/handler.js.map +0 -1
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js.map +0 -1
- package/dist/http/router.d.ts.map +0 -1
- package/dist/http/router.js.map +0 -1
- package/dist/http/types.d.ts.map +0 -1
- package/dist/http/types.js.map +0 -1
- package/dist/id.d.ts.map +0 -1
- package/dist/id.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/operating-mode/client-safe-strategy.d.ts.map +0 -1
- package/dist/operating-mode/client-safe-strategy.js.map +0 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts.map +0 -1
- package/dist/operating-mode/client-unsafe-strategy.js.map +0 -1
- package/dist/operating-mode/client.d.ts.map +0 -1
- package/dist/operating-mode/client.js.map +0 -1
- package/dist/operating-mode/deployment-name-fixtures.d.ts.map +0 -1
- package/dist/operating-mode/deployment-name-fixtures.js.map +0 -1
- package/dist/operating-mode/deployment-name.d.ts.map +0 -1
- package/dist/operating-mode/deployment-name.js.map +0 -1
- package/dist/operating-mode/index.d.ts.map +0 -1
- package/dist/operating-mode/index.js.map +0 -1
- package/dist/operating-mode/mode-env.d.ts.map +0 -1
- package/dist/operating-mode/mode-env.js.map +0 -1
- package/dist/operating-mode/types.d.ts.map +0 -1
- package/dist/operating-mode/types.js.map +0 -1
- package/dist/paths/branch-name.d.ts.map +0 -1
- package/dist/paths/branch-name.js.map +0 -1
- package/dist/paths/branch.d.ts.map +0 -1
- package/dist/paths/branch.js.map +0 -1
- package/dist/paths/index.d.ts.map +0 -1
- package/dist/paths/index.js.map +0 -1
- package/dist/paths/normalize-server.d.ts.map +0 -1
- package/dist/paths/normalize-server.js.map +0 -1
- package/dist/paths/normalize.d.ts.map +0 -1
- package/dist/paths/normalize.js.map +0 -1
- package/dist/paths/resolve.d.ts.map +0 -1
- package/dist/paths/resolve.js.map +0 -1
- package/dist/paths/test-utils.d.ts +0 -22
- package/dist/paths/test-utils.d.ts.map +0 -1
- package/dist/paths/test-utils.js +0 -21
- package/dist/paths/test-utils.js.map +0 -1
- package/dist/paths/types.d.ts.map +0 -1
- package/dist/paths/types.js.map +0 -1
- package/dist/paths/validation.d.ts.map +0 -1
- package/dist/paths/validation.js.map +0 -1
- package/dist/reference-resolver.d.ts.map +0 -1
- package/dist/reference-resolver.js.map +0 -1
- package/dist/resolve-canopy-user.d.ts.map +0 -1
- package/dist/resolve-canopy-user.js.map +0 -1
- package/dist/resource-generation.d.ts.map +0 -1
- package/dist/resource-generation.js.map +0 -1
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/meta-loader.d.ts.map +0 -1
- package/dist/schema/meta-loader.js.map +0 -1
- package/dist/schema/resolver.d.ts.map +0 -1
- package/dist/schema/resolver.js.map +0 -1
- package/dist/schema/schema-store-types.d.ts.map +0 -1
- package/dist/schema/schema-store-types.js.map +0 -1
- package/dist/schema/schema-store.d.ts.map +0 -1
- package/dist/schema/schema-store.js.map +0 -1
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/schema/types.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/services.d.ts.map +0 -1
- package/dist/services.js.map +0 -1
- package/dist/settings-workspace.d.ts.map +0 -1
- package/dist/settings-workspace.js.map +0 -1
- package/dist/static/index.d.ts.map +0 -1
- package/dist/static/index.js.map +0 -1
- package/dist/sync-core.d.ts.map +0 -1
- package/dist/sync-core.js.map +0 -1
- package/dist/task-queue/index.d.ts.map +0 -1
- package/dist/task-queue/index.js.map +0 -1
- package/dist/task-queue/task-queue.d.ts.map +0 -1
- package/dist/task-queue/task-queue.js.map +0 -1
- package/dist/task-queue/types.d.ts.map +0 -1
- package/dist/task-queue/types.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/url-path-resolver.d.ts.map +0 -1
- package/dist/url-path-resolver.js.map +0 -1
- package/dist/user.d.ts.map +0 -1
- package/dist/user.js.map +0 -1
- package/dist/utils/async-mutex.d.ts.map +0 -1
- package/dist/utils/async-mutex.js.map +0 -1
- package/dist/utils/atomic-write.d.ts.map +0 -1
- package/dist/utils/atomic-write.js.map +0 -1
- package/dist/utils/body-field.d.ts.map +0 -1
- package/dist/utils/body-field.js.map +0 -1
- package/dist/utils/content-write-lock.d.ts.map +0 -1
- package/dist/utils/content-write-lock.js.map +0 -1
- package/dist/utils/debug.d.ts.map +0 -1
- package/dist/utils/debug.js.map +0 -1
- package/dist/utils/entry-url.d.ts.map +0 -1
- package/dist/utils/entry-url.js.map +0 -1
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/flatten-group-fields.d.ts.map +0 -1
- package/dist/utils/flatten-group-fields.js.map +0 -1
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/occ-json-write.d.ts.map +0 -1
- package/dist/utils/occ-json-write.js.map +0 -1
- package/dist/utils/provisioning-lock.d.ts.map +0 -1
- package/dist/utils/provisioning-lock.js.map +0 -1
- package/dist/utils/sanitize-href.d.ts.map +0 -1
- package/dist/utils/sanitize-href.js.map +0 -1
- package/dist/utils/title-field.d.ts.map +0 -1
- package/dist/utils/title-field.js.map +0 -1
- package/dist/validation/deletion-checker.d.ts.map +0 -1
- package/dist/validation/deletion-checker.js.map +0 -1
- package/dist/validation/entry-link-validator.d.ts.map +0 -1
- package/dist/validation/entry-link-validator.js.map +0 -1
- package/dist/validation/entry-type-reference-validator.d.ts.map +0 -1
- package/dist/validation/entry-type-reference-validator.js.map +0 -1
- package/dist/validation/entry-validator.d.ts.map +0 -1
- package/dist/validation/entry-validator.js.map +0 -1
- package/dist/validation/field-traversal.d.ts.map +0 -1
- package/dist/validation/field-traversal.js.map +0 -1
- package/dist/validation/reference-validator.d.ts.map +0 -1
- package/dist/validation/reference-validator.js.map +0 -1
- package/dist/worker/cms-worker.d.ts.map +0 -1
- package/dist/worker/cms-worker.js.map +0 -1
- package/dist/worker/log.d.ts.map +0 -1
- package/dist/worker/log.js.map +0 -1
- package/dist/worker/task-queue-config.d.ts.map +0 -1
- package/dist/worker/task-queue-config.js.map +0 -1
- package/dist/worker/task-queue.d.ts.map +0 -1
- package/dist/worker/task-queue.js.map +0 -1
- package/dist/worker/worker-status.d.ts.map +0 -1
- package/dist/worker/worker-status.js.map +0 -1
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* Field schemas are defined in the entry schema registry and referenced by name
|
|
8
8
|
* in .collection.json files for reusability and type safety.
|
|
9
9
|
*/
|
|
10
|
-
import type { RootCollectionConfig } from '../config';
|
|
11
|
-
import type { EntrySchemaRegistry, SchemaResolutionResult } from './types';
|
|
10
|
+
import type { RootCollectionConfig } from '../config/index.js';
|
|
11
|
+
import type { EntrySchemaRegistry, SchemaResolutionResult } from './types.js';
|
|
12
12
|
/**
|
|
13
13
|
* Resolve schema from .collection.json files.
|
|
14
14
|
*
|
|
@@ -39,4 +39,3 @@ export declare function hasSchemaFiles(contentRoot: string): Promise<boolean>;
|
|
|
39
39
|
* @returns true if schema is valid
|
|
40
40
|
*/
|
|
41
41
|
export declare function isValidSchema(schema: RootCollectionConfig): boolean;
|
|
42
|
-
//# sourceMappingURL=resolver.d.ts.map
|
package/dist/schema/resolver.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* These types are separated from schema-store.ts to allow client-side code
|
|
5
5
|
* to import them without pulling in Node.js dependencies (fs, path).
|
|
6
6
|
*/
|
|
7
|
-
import type { ContentFormat } from '../config';
|
|
8
|
-
import type { LogicalPath } from '../paths/types';
|
|
7
|
+
import type { ContentFormat } from '../config/index.js';
|
|
8
|
+
import type { LogicalPath } from '../paths/types.js';
|
|
9
9
|
/**
|
|
10
10
|
* Input for creating a new collection
|
|
11
11
|
*/
|
|
@@ -45,4 +45,3 @@ export interface UpdateEntryTypeInput {
|
|
|
45
45
|
default?: boolean;
|
|
46
46
|
maxItems?: number;
|
|
47
47
|
}
|
|
48
|
-
//# sourceMappingURL=schema-store-types.d.ts.map
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
* ever starts).
|
|
45
45
|
*/
|
|
46
46
|
import { z } from 'zod';
|
|
47
|
-
import type { ContentFormat } from '../config';
|
|
48
|
-
import type { EntrySchemaRegistry } from './types';
|
|
49
|
-
import type { LogicalPath, ContentId } from '../paths/types';
|
|
50
|
-
import type { CanopyServices } from '../services';
|
|
51
|
-
export type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput, } from './schema-store-types';
|
|
52
|
-
import type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput } from './schema-store-types';
|
|
47
|
+
import type { ContentFormat } from '../config/index.js';
|
|
48
|
+
import type { EntrySchemaRegistry } from './types.js';
|
|
49
|
+
import type { LogicalPath, ContentId } from '../paths/types.js';
|
|
50
|
+
import type { CanopyServices } from '../services.js';
|
|
51
|
+
export type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput, } from './schema-store-types.js';
|
|
52
|
+
import type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput } from './schema-store-types.js';
|
|
53
53
|
/**
|
|
54
54
|
* Raw collection meta as stored in .collection.json
|
|
55
55
|
*/
|
|
@@ -440,4 +440,3 @@ export declare class SchemaOps {
|
|
|
440
440
|
private updateOrderInner;
|
|
441
441
|
}
|
|
442
442
|
export { createCollectionInputSchema, updateCollectionInputSchema, entryTypeInputSchema, updateEntryTypeInputSchema, };
|
|
443
|
-
//# sourceMappingURL=schema-store.d.ts.map
|
|
@@ -52,6 +52,8 @@ import { createDebugLogger } from '../utils/debug.js';
|
|
|
52
52
|
import { getErrorMessage, isNotFoundError } from '../utils/error.js';
|
|
53
53
|
import { withOccFileLock, OccWriteConflictError } from '../utils/occ-json-write.js';
|
|
54
54
|
import { resolveCollectionPath } from '../content-id-index.js';
|
|
55
|
+
import { findIndexEntryIn, findEntryBySlugIn } from '../url-collision.js';
|
|
56
|
+
import { isIndexSlug } from '../utils/entry-url.js';
|
|
55
57
|
import { invalidateBranchContentCaches } from '../content-index-generation.js';
|
|
56
58
|
import { generateId, isValidId } from '../id.js';
|
|
57
59
|
import { createLogicalPath, normalizeCollectionPath as stripContentRootPrefix, validateAndNormalizePath, } from '../paths/index.js';
|
|
@@ -647,6 +649,37 @@ export class SchemaOps {
|
|
|
647
649
|
}
|
|
648
650
|
// Ignore other errors (e.g., ENOENT if parent dir doesn't exist somehow)
|
|
649
651
|
}
|
|
652
|
+
// [URL] Contested-URL guard. Renaming a collection re-paths every entry beneath it, so
|
|
653
|
+
// its index entry -- the one whose URL is the collection's own path -- lands on the new
|
|
654
|
+
// name. If an entry with that slug already sits in the parent, the two would contest one
|
|
655
|
+
// URL and only one could be served. See url-collision.ts.
|
|
656
|
+
//
|
|
657
|
+
// Only the index entry can collide: the sibling-name check above has already established
|
|
658
|
+
// that no `{slug}.{id}` directory exists at the destination, so no descendant DEEPER than
|
|
659
|
+
// the index entry has anything to collide with.
|
|
660
|
+
//
|
|
661
|
+
// That holds only as far as the check above does, and it is narrower than it looks: it
|
|
662
|
+
// compares case-SENSITIVELY (so `guides` beside an existing `Guides.{id}` passes it) and
|
|
663
|
+
// it requires `parts.length === 2 && isValidId(parts[1])` (so a plain, ID-less `docs/`
|
|
664
|
+
// directory at the destination passes it too). Descendants CAN then contest.
|
|
665
|
+
// See .claude/future-tasks/collection-sibling-name-uniqueness.md, which tracks both the
|
|
666
|
+
// missing create-side check and this case hole.
|
|
667
|
+
if (await findIndexEntryIn(physicalPath)) {
|
|
668
|
+
// Renaming TO "index" collapses this collection onto ITS OWN new path
|
|
669
|
+
// (`<parentPath>/index`), not onto `<parentPath>` -- see `computeEntryUrl`. An entry in
|
|
670
|
+
// the parent whose slug is the literal string "index" is the PARENT's own index/landing
|
|
671
|
+
// entry, which collapses onto `<parentPath>` itself -- a different URL, not a collision.
|
|
672
|
+
// Skip the lookup in that case; see url-collision.ts's `findUrlPathClaimant` for the
|
|
673
|
+
// create-time version of this same false positive.
|
|
674
|
+
const conflicting = isIndexSlug(updates.slug)
|
|
675
|
+
? null
|
|
676
|
+
: await findEntryBySlugIn(parentDir, updates.slug);
|
|
677
|
+
if (conflicting) {
|
|
678
|
+
throw new Error(`Renaming this collection to "${updates.slug}" would make its landing page share a ` +
|
|
679
|
+
`URL with the "${updates.slug}" entry already in the parent collection, and only ` +
|
|
680
|
+
`one of them could be served there. Rename or remove that entry first.`);
|
|
681
|
+
}
|
|
682
|
+
}
|
|
650
683
|
// Atomically rename the directory — this re-paths every entry beneath
|
|
651
684
|
// it, so already-loaded ID indexes (here and in other processes) must
|
|
652
685
|
// be told to rebuild.
|
|
@@ -952,4 +985,3 @@ export class SchemaOps {
|
|
|
952
985
|
// Exports
|
|
953
986
|
// ============================================================================
|
|
954
987
|
export { createCollectionInputSchema, updateCollectionInputSchema, entryTypeInputSchema, updateEntryTypeInputSchema, };
|
|
955
|
-
//# sourceMappingURL=schema-store.js.map
|
package/dist/schema/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types for schema loading and resolution.
|
|
3
3
|
*/
|
|
4
|
-
import type { EntrySchema, RootCollectionConfig } from '../config';
|
|
4
|
+
import type { EntrySchema, RootCollectionConfig } from '../config/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* Entry schema registry maps entry schema names to field definitions.
|
|
7
7
|
* Used by .collection.json files to reference reusable entry schemas.
|
|
@@ -27,4 +27,3 @@ export interface SchemaResolutionResult {
|
|
|
27
27
|
/** Information about schema sources for debugging */
|
|
28
28
|
sources: SchemaSourceInfo[];
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/schema/types.js
CHANGED
package/dist/server.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
export * from './content-reader';
|
|
2
|
-
export * from './services';
|
|
3
|
-
export * from './build-mode';
|
|
4
|
-
export * from './context';
|
|
5
|
-
export { operatingStrategy } from './operating-mode';
|
|
6
|
-
export * from './authorization/groups';
|
|
1
|
+
export * from './content-reader.js';
|
|
2
|
+
export * from './services.js';
|
|
3
|
+
export * from './build-mode.js';
|
|
4
|
+
export * from './context.js';
|
|
5
|
+
export { operatingStrategy } from './operating-mode/index.js';
|
|
6
|
+
export * from './authorization/groups/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* One-call factory for a **build/admin** Canopy context — for standalone
|
|
9
|
+
* scripts that run entirely outside a Next.js request or build phase (index
|
|
10
|
+
* builders, content audits, codegen, ad hoc reports). Reads the filesystem
|
|
11
|
+
* directly as a synthetic admin user and bypasses ALL branch/path ACLs —
|
|
12
|
+
* never use it in request-handling code. See the source JSDoc for the full
|
|
13
|
+
* security note and the `createNextCanopyContext().getCanopyForBuild()`
|
|
14
|
+
* comparison this mirrors.
|
|
15
|
+
*/
|
|
16
|
+
export { createBuildCanopy, type CreateBuildCanopyOptions } from './build-canopy.js';
|
|
7
17
|
/**
|
|
8
18
|
* Resolve a CanopyUser for a request: loads internal groups from the
|
|
9
19
|
* settings workspace (the single source of truth — never a content branch
|
|
@@ -12,11 +22,11 @@ export * from './authorization/groups';
|
|
|
12
22
|
* SSR wrapper so the "authenticate -> load groups -> merge" pipeline can't
|
|
13
23
|
* drift between the two again.
|
|
14
24
|
*/
|
|
15
|
-
export { resolveCanopyUser, type ResolveCanopyUserDeps } from './resolve-canopy-user';
|
|
16
|
-
export * from './branch-workspace';
|
|
17
|
-
export * from './content-store';
|
|
18
|
-
export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMetaFiles, resolveSchema, } from './schema';
|
|
19
|
-
export type { CollectionMeta, RootCollectionMeta } from './schema';
|
|
25
|
+
export { resolveCanopyUser, type ResolveCanopyUserDeps } from './resolve-canopy-user.js';
|
|
26
|
+
export * from './branch-workspace.js';
|
|
27
|
+
export * from './content-store.js';
|
|
28
|
+
export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMetaFiles, resolveSchema, } from './schema/index.js';
|
|
29
|
+
export type { CollectionMeta, RootCollectionMeta } from './schema/index.js';
|
|
20
30
|
/**
|
|
21
31
|
* Create a type-safe entry schema registry with runtime validation.
|
|
22
32
|
*
|
|
@@ -29,24 +39,39 @@ export type { CollectionMeta, RootCollectionMeta } from './schema';
|
|
|
29
39
|
* automatically. See `createEntrySchemaRegistry`'s source-file JSDoc for the
|
|
30
40
|
* full example.
|
|
31
41
|
*/
|
|
32
|
-
export { createEntrySchemaRegistry } from './entry-schema-registry';
|
|
42
|
+
export { createEntrySchemaRegistry } from './entry-schema-registry.js';
|
|
33
43
|
/**
|
|
34
44
|
* Validate that entry-schema references in `.collection.json` files exist in
|
|
35
45
|
* the registry. Useful at build time to fail fast on stale references rather
|
|
36
46
|
* than at request time.
|
|
37
47
|
*/
|
|
38
|
-
export { validateEntrySchemaRegistry } from './entry-schema-registry';
|
|
48
|
+
export { validateEntrySchemaRegistry } from './entry-schema-registry.js';
|
|
39
49
|
/**
|
|
40
50
|
* Derive a discriminated-union entry-type map from a registry value. Pass
|
|
41
51
|
* `typeof entrySchemaRegistry` as the type argument. The registry must be
|
|
42
52
|
* keyed by entry-type name for the result to plug straight into
|
|
43
53
|
* `buildContentTree`'s `TEntryTypes` generic.
|
|
44
54
|
*/
|
|
45
|
-
export type { EntryTypesFromRegistry } from './entry-schema';
|
|
55
|
+
export type { EntryTypesFromRegistry } from './entry-schema.js';
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a display title for an entry using the full fallback chain: a
|
|
58
|
+
* schema-marked `isTitle` field, then `data.title`/`data.name`, then an
|
|
59
|
+
* entry-type label, then a humanized slug, then `"Untitled"`. Useful
|
|
60
|
+
* anywhere an entry needs a display title without re-deriving this chain —
|
|
61
|
+
* search-document/index builders in particular, since a search UI needs a
|
|
62
|
+
* title for every result regardless of which field the schema uses.
|
|
63
|
+
*
|
|
64
|
+
* Client-safe (no dependencies beyond `FieldConfig`/`InlineGroupFieldConfig`
|
|
65
|
+
* type imports, which are erased at compile time) — also re-exported from
|
|
66
|
+
* the root `canopycms` entry for that reason. Exported here too because
|
|
67
|
+
* build/admin scripts (the primary reason this was unreachable before) are
|
|
68
|
+
* more likely to `import` from `canopycms/server` than the root entry.
|
|
69
|
+
*/
|
|
70
|
+
export { resolveEntryTitle } from './utils/title-field.js';
|
|
46
71
|
/** Generate a Canopy-format 12-character Base58 content ID. */
|
|
47
|
-
export { generateId } from './id';
|
|
72
|
+
export { generateId } from './id.js';
|
|
48
73
|
/** Returns true if a string is a valid 12-character Base58 Canopy ID. */
|
|
49
|
-
export { isValidId } from './id';
|
|
74
|
+
export { isValidId } from './id.js';
|
|
50
75
|
/**
|
|
51
76
|
* Build a hierarchical tree of content nodes from the schema and filesystem.
|
|
52
77
|
*
|
|
@@ -57,29 +82,65 @@ export { isValidId } from './id';
|
|
|
57
82
|
* Adopters using `canopycms-next` typically call `canopy.buildContentTree(...)`
|
|
58
83
|
* via `getCanopyForBuild()` rather than the bare function.
|
|
59
84
|
*/
|
|
60
|
-
export { buildContentTree } from './content-tree';
|
|
61
|
-
export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, EntryTypeMap, DefaultEntryTypes, } from './content-tree';
|
|
85
|
+
export { buildContentTree } from './content-tree.js';
|
|
86
|
+
export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, EntryTypeMap, DefaultEntryTypes, } from './content-tree.js';
|
|
87
|
+
/**
|
|
88
|
+
* `buildContentTree`'s default URL path builder: strips the `{contentRootName}/`
|
|
89
|
+
* prefix, collapses an entry's `index` slug to its parent collection's path, and
|
|
90
|
+
* lowercases the result. Call it from inside a custom `buildPath` to extend the
|
|
91
|
+
* default rather than reimplement it — `buildContentTree`'s `buildPath` option
|
|
92
|
+
* replaces the default outright, it does not compose with it.
|
|
93
|
+
*/
|
|
94
|
+
export { defaultBuildPath } from './content-tree.js';
|
|
62
95
|
/** List all content entries as a flat array. */
|
|
63
|
-
export { listEntries } from './content-listing';
|
|
64
|
-
export type { ListEntriesItem, ListEntriesOptions } from './content-listing';
|
|
96
|
+
export { listEntries } from './content-listing.js';
|
|
97
|
+
export type { ListEntriesItem, ListEntriesOptions } from './content-listing.js';
|
|
98
|
+
/**
|
|
99
|
+
* Parse a content filename of the form `{type}.{slug}.{id}.{ext}` into its
|
|
100
|
+
* `{ type, slug, id }` parts. `id` must be a valid 12-character Base58 content ID
|
|
101
|
+
* (excludes the ambiguous characters `0`, `O`, `I`, `l`) or the parse fails.
|
|
102
|
+
* Pass `entryTypes` to also require `type` to match a known entry-type name;
|
|
103
|
+
* omit it to parse the filename shape without that check. See the source JSDoc
|
|
104
|
+
* for the full filename grammar.
|
|
105
|
+
*/
|
|
106
|
+
export { parseTypedFilename } from './content-listing.js';
|
|
65
107
|
/**
|
|
66
108
|
* Resolve a canopy entry-link to its URL. Pair with the field-walker variants
|
|
67
109
|
* (`resolveEntryLinksInText`, `resolveEntryLinksInData`) when rendering MDX
|
|
68
110
|
* bodies or arbitrary frontmatter that may contain link tokens.
|
|
69
111
|
*/
|
|
70
|
-
export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver';
|
|
71
|
-
export type { EntryLinkUrlResolver } from './entry-link-resolver';
|
|
72
|
-
/**
|
|
73
|
-
|
|
112
|
+
export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver.js';
|
|
113
|
+
export type { EntryLinkUrlResolver } from './entry-link-resolver.js';
|
|
114
|
+
/**
|
|
115
|
+
* Compute the canonical URL for an entry given its logical path + slug, and the shared
|
|
116
|
+
* "is this the collection-index slug?" predicate that decides whether it collapses.
|
|
117
|
+
*/
|
|
118
|
+
export { computeEntryUrl, isIndexSlug } from './utils/entry-url.js';
|
|
74
119
|
/** Collect static paths for `generateStaticParams` / sitemap emission. */
|
|
75
|
-
export { collectStaticPaths } from './static';
|
|
76
|
-
export type { StaticPathEntry, CollectStaticPathsOptions } from './static';
|
|
120
|
+
export { collectStaticPaths } from './static/index.js';
|
|
121
|
+
export type { StaticPathEntry, CollectStaticPathsOptions } from './static/index.js';
|
|
122
|
+
/** Enumerate routable entries WITH their data — the input to sitemaps, feeds and search indexes. */
|
|
123
|
+
export { collectRoutableEntries } from './static/index.js';
|
|
124
|
+
export type { RoutableEntry, CollectRoutableEntriesOptions } from './static/index.js';
|
|
125
|
+
/**
|
|
126
|
+
* Find every URL claimed by more than one entry — the check a production build already runs
|
|
127
|
+
* (and fails on). Exported so a content-integrity test can assert it directly rather than
|
|
128
|
+
* hand-rolling the same scan over `listEntries`.
|
|
129
|
+
*/
|
|
130
|
+
export { findDuplicateUrlPaths } from './static/index.js';
|
|
131
|
+
export type { DuplicateUrlPath } from './static/index.js';
|
|
132
|
+
/**
|
|
133
|
+
* SEO field extraction and URL shaping (framework-agnostic). `isNoindexEntry` is the single
|
|
134
|
+
* predicate behind both `robots: noindex` and sitemap exclusion.
|
|
135
|
+
*/
|
|
136
|
+
export { DEFAULT_SEO_FIELD_NAMES, extractSeoFields, isNoindexEntry, isAbsoluteUrl, withTrailingSlash, resolveSeoUrl, stripTrailingSlashes, } from './static/index.js';
|
|
137
|
+
export type { SeoFields, SeoFieldNames, SeoFieldLocation, SeoOgType, SeoTwitterCard, ExtractSeoFieldsOptions, ResolveSeoUrlOptions, } from './static/index.js';
|
|
77
138
|
/**
|
|
78
139
|
* Start a chokidar-backed watcher that detects divergence between the dev
|
|
79
140
|
* working tree and the resolved branch clone. Dev mode only.
|
|
80
141
|
*/
|
|
81
|
-
export { startDevContentWatcher } from './dev-content-watcher';
|
|
82
|
-
export type { StartDevContentWatcherOptions } from './dev-content-watcher';
|
|
142
|
+
export { startDevContentWatcher } from './dev-content-watcher.js';
|
|
143
|
+
export type { StartDevContentWatcherOptions } from './dev-content-watcher.js';
|
|
83
144
|
/**
|
|
84
145
|
* Instantiate the AssetStore configured by a site's `media` config
|
|
85
146
|
* (`config.media`). Returns undefined when no store applies: `media` is
|
|
@@ -87,7 +148,7 @@ export type { StartDevContentWatcherOptions } from './dev-content-watcher';
|
|
|
87
148
|
* `directory` with no fallback, or `adapter: 'lfs'` (config literal kept,
|
|
88
149
|
* not yet implemented).
|
|
89
150
|
*/
|
|
90
|
-
export { createAssetStore } from './assets/factory';
|
|
151
|
+
export { createAssetStore } from './assets/factory.js';
|
|
91
152
|
/**
|
|
92
153
|
* The five S3/local bucket-prefix strings (`asset-originals/`, `asset-staging/`,
|
|
93
154
|
* `asset-meta/`, `assets/`, `assets/t/`). Re-exported so server-only consumers
|
|
@@ -96,9 +157,9 @@ export { createAssetStore } from './assets/factory';
|
|
|
96
157
|
* keys through the same constants `S3AssetStore` uses, rather than
|
|
97
158
|
* duplicating the literal prefix strings.
|
|
98
159
|
*/
|
|
99
|
-
export { ASSET_PREFIXES, type AssetPrefixes } from './assets/keys';
|
|
160
|
+
export { ASSET_PREFIXES, type AssetPrefixes } from './assets/keys.js';
|
|
100
161
|
/** Asset metadata sidecar shape (`asset-meta/{hash32}.json`), written by the finalize pipeline and read by the transform layer (dev-mode emulation and the prod transform Lambda). */
|
|
101
|
-
export type { AssetMeta } from './assets/types';
|
|
162
|
+
export type { AssetMeta } from './assets/types.js';
|
|
102
163
|
/**
|
|
103
164
|
* Parse the three path segments after `assets/t/` (`{directives}/{hash32}/{slug}.{ext}`)
|
|
104
165
|
* into a validated `TransformDirectives` set, or a structured parse error.
|
|
@@ -106,8 +167,8 @@ export type { AssetMeta } from './assets/types';
|
|
|
106
167
|
* and the prod transform Lambda (`packages/canopycms-cdk/lambda/asset-transform`)
|
|
107
168
|
* so the URL grammar is defined in exactly one place.
|
|
108
169
|
*/
|
|
109
|
-
export { parseTransformPath } from './assets/transform-directives';
|
|
110
|
-
export type { ParsedTransformPath, ParseTransformPathResult } from './assets/transform-directives';
|
|
170
|
+
export { parseTransformPath } from './assets/transform-directives.js';
|
|
171
|
+
export type { ParsedTransformPath, ParseTransformPathResult } from './assets/transform-directives.js';
|
|
111
172
|
/**
|
|
112
173
|
* Canonical string form of a `TransformDirectives` set - the cache key every
|
|
113
174
|
* transform output is stored under (`assets/t/{formatDirectives(...)}/{hash32}/{slug}.{ext}`).
|
|
@@ -115,7 +176,7 @@ export type { ParsedTransformPath, ParseTransformPathResult } from './assets/tra
|
|
|
115
176
|
* format to the same string. Reused by the prod transform Lambda so its
|
|
116
177
|
* canonical writes agree with the dev-mode emulation and `assetUrl()`.
|
|
117
178
|
*/
|
|
118
|
-
export { formatDirectives } from './assets/transform-directives';
|
|
179
|
+
export { formatDirectives } from './assets/transform-directives.js';
|
|
119
180
|
/**
|
|
120
181
|
* Apply a parsed `TransformDirectives` set to source image bytes with sharp:
|
|
121
182
|
* resize/format/quality/crop, with EXIF stripped on every re-encode (even
|
|
@@ -123,6 +184,5 @@ export { formatDirectives } from './assets/transform-directives';
|
|
|
123
184
|
* `/assets/t/*` emulation and the prod transform Lambda
|
|
124
185
|
* (`packages/canopycms-cdk/lambda/asset-transform`).
|
|
125
186
|
*/
|
|
126
|
-
export { applyTransform } from './assets/transform';
|
|
127
|
-
export type { ApplyTransformInput, TransformResult } from './assets/transform';
|
|
128
|
-
//# sourceMappingURL=server.d.ts.map
|
|
187
|
+
export { applyTransform } from './assets/transform.js';
|
|
188
|
+
export type { ApplyTransformInput, TransformResult } from './assets/transform.js';
|
package/dist/server.js
CHANGED
|
@@ -9,6 +9,16 @@ export * from './build-mode.js';
|
|
|
9
9
|
export * from './context.js';
|
|
10
10
|
export { operatingStrategy } from './operating-mode/index.js';
|
|
11
11
|
export * from './authorization/groups/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* One-call factory for a **build/admin** Canopy context — for standalone
|
|
14
|
+
* scripts that run entirely outside a Next.js request or build phase (index
|
|
15
|
+
* builders, content audits, codegen, ad hoc reports). Reads the filesystem
|
|
16
|
+
* directly as a synthetic admin user and bypasses ALL branch/path ACLs —
|
|
17
|
+
* never use it in request-handling code. See the source JSDoc for the full
|
|
18
|
+
* security note and the `createNextCanopyContext().getCanopyForBuild()`
|
|
19
|
+
* comparison this mirrors.
|
|
20
|
+
*/
|
|
21
|
+
export { createBuildCanopy } from './build-canopy.js';
|
|
12
22
|
/**
|
|
13
23
|
* Resolve a CanopyUser for a request: loads internal groups from the
|
|
14
24
|
* settings workspace (the single source of truth — never a content branch
|
|
@@ -40,6 +50,21 @@ export { createEntrySchemaRegistry } from './entry-schema-registry.js';
|
|
|
40
50
|
* than at request time.
|
|
41
51
|
*/
|
|
42
52
|
export { validateEntrySchemaRegistry } from './entry-schema-registry.js';
|
|
53
|
+
/**
|
|
54
|
+
* Resolve a display title for an entry using the full fallback chain: a
|
|
55
|
+
* schema-marked `isTitle` field, then `data.title`/`data.name`, then an
|
|
56
|
+
* entry-type label, then a humanized slug, then `"Untitled"`. Useful
|
|
57
|
+
* anywhere an entry needs a display title without re-deriving this chain —
|
|
58
|
+
* search-document/index builders in particular, since a search UI needs a
|
|
59
|
+
* title for every result regardless of which field the schema uses.
|
|
60
|
+
*
|
|
61
|
+
* Client-safe (no dependencies beyond `FieldConfig`/`InlineGroupFieldConfig`
|
|
62
|
+
* type imports, which are erased at compile time) — also re-exported from
|
|
63
|
+
* the root `canopycms` entry for that reason. Exported here too because
|
|
64
|
+
* build/admin scripts (the primary reason this was unreachable before) are
|
|
65
|
+
* more likely to `import` from `canopycms/server` than the root entry.
|
|
66
|
+
*/
|
|
67
|
+
export { resolveEntryTitle } from './utils/title-field.js';
|
|
43
68
|
/** Generate a Canopy-format 12-character Base58 content ID. */
|
|
44
69
|
export { generateId } from './id.js';
|
|
45
70
|
/** Returns true if a string is a valid 12-character Base58 Canopy ID. */
|
|
@@ -55,18 +80,51 @@ export { isValidId } from './id.js';
|
|
|
55
80
|
* via `getCanopyForBuild()` rather than the bare function.
|
|
56
81
|
*/
|
|
57
82
|
export { buildContentTree } from './content-tree.js';
|
|
83
|
+
/**
|
|
84
|
+
* `buildContentTree`'s default URL path builder: strips the `{contentRootName}/`
|
|
85
|
+
* prefix, collapses an entry's `index` slug to its parent collection's path, and
|
|
86
|
+
* lowercases the result. Call it from inside a custom `buildPath` to extend the
|
|
87
|
+
* default rather than reimplement it — `buildContentTree`'s `buildPath` option
|
|
88
|
+
* replaces the default outright, it does not compose with it.
|
|
89
|
+
*/
|
|
90
|
+
export { defaultBuildPath } from './content-tree.js';
|
|
58
91
|
/** List all content entries as a flat array. */
|
|
59
92
|
export { listEntries } from './content-listing.js';
|
|
93
|
+
/**
|
|
94
|
+
* Parse a content filename of the form `{type}.{slug}.{id}.{ext}` into its
|
|
95
|
+
* `{ type, slug, id }` parts. `id` must be a valid 12-character Base58 content ID
|
|
96
|
+
* (excludes the ambiguous characters `0`, `O`, `I`, `l`) or the parse fails.
|
|
97
|
+
* Pass `entryTypes` to also require `type` to match a known entry-type name;
|
|
98
|
+
* omit it to parse the filename shape without that check. See the source JSDoc
|
|
99
|
+
* for the full filename grammar.
|
|
100
|
+
*/
|
|
101
|
+
export { parseTypedFilename } from './content-listing.js';
|
|
60
102
|
/**
|
|
61
103
|
* Resolve a canopy entry-link to its URL. Pair with the field-walker variants
|
|
62
104
|
* (`resolveEntryLinksInText`, `resolveEntryLinksInData`) when rendering MDX
|
|
63
105
|
* bodies or arbitrary frontmatter that may contain link tokens.
|
|
64
106
|
*/
|
|
65
107
|
export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver.js';
|
|
66
|
-
/**
|
|
67
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Compute the canonical URL for an entry given its logical path + slug, and the shared
|
|
110
|
+
* "is this the collection-index slug?" predicate that decides whether it collapses.
|
|
111
|
+
*/
|
|
112
|
+
export { computeEntryUrl, isIndexSlug } from './utils/entry-url.js';
|
|
68
113
|
/** Collect static paths for `generateStaticParams` / sitemap emission. */
|
|
69
114
|
export { collectStaticPaths } from './static/index.js';
|
|
115
|
+
/** Enumerate routable entries WITH their data — the input to sitemaps, feeds and search indexes. */
|
|
116
|
+
export { collectRoutableEntries } from './static/index.js';
|
|
117
|
+
/**
|
|
118
|
+
* Find every URL claimed by more than one entry — the check a production build already runs
|
|
119
|
+
* (and fails on). Exported so a content-integrity test can assert it directly rather than
|
|
120
|
+
* hand-rolling the same scan over `listEntries`.
|
|
121
|
+
*/
|
|
122
|
+
export { findDuplicateUrlPaths } from './static/index.js';
|
|
123
|
+
/**
|
|
124
|
+
* SEO field extraction and URL shaping (framework-agnostic). `isNoindexEntry` is the single
|
|
125
|
+
* predicate behind both `robots: noindex` and sitemap exclusion.
|
|
126
|
+
*/
|
|
127
|
+
export { DEFAULT_SEO_FIELD_NAMES, extractSeoFields, isNoindexEntry, isAbsoluteUrl, withTrailingSlash, resolveSeoUrl, stripTrailingSlashes, } from './static/index.js';
|
|
70
128
|
/**
|
|
71
129
|
* Start a chokidar-backed watcher that detects divergence between the dev
|
|
72
130
|
* working tree and the resolved branch clone. Dev mode only.
|
|
@@ -113,4 +171,3 @@ export { formatDirectives } from './assets/transform-directives.js';
|
|
|
113
171
|
* (`packages/canopycms-cdk/lambda/asset-transform`).
|
|
114
172
|
*/
|
|
115
173
|
export { applyTransform } from './assets/transform.js';
|
|
116
|
-
//# sourceMappingURL=server.js.map
|
package/dist/services.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { CanopyConfig } from './config';
|
|
2
|
-
import type { EntrySchemaRegistry } from './schema/types';
|
|
3
|
-
import type { BranchContext } from './types';
|
|
4
|
-
import type { CanopyUser } from './user';
|
|
5
|
-
import {
|
|
6
|
-
import { GitManager } from './git-manager';
|
|
7
|
-
import { BranchRegistry } from './branch-registry';
|
|
8
|
-
import { type GitHubService } from './github-service';
|
|
9
|
-
import { BranchSchemaCache } from './branch-schema-cache';
|
|
1
|
+
import type { CanopyConfig } from './config/index.js';
|
|
2
|
+
import type { EntrySchemaRegistry } from './schema/types.js';
|
|
3
|
+
import type { BranchContext } from './types.js';
|
|
4
|
+
import type { CanopyUser } from './user.js';
|
|
5
|
+
import { createCheckBranchAccess, createCheckContentAccess, type ContentAccessChecker } from './authorization/index.js';
|
|
6
|
+
import { GitManager } from './git-manager.js';
|
|
7
|
+
import { BranchRegistry } from './branch-registry.js';
|
|
8
|
+
import { type GitHubService } from './github-service.js';
|
|
9
|
+
import { BranchSchemaCache } from './branch-schema-cache.js';
|
|
10
10
|
/**
|
|
11
11
|
* Parse bootstrap admin IDs from environment variable.
|
|
12
12
|
* These users are always treated as Admins regardless of group membership.
|
|
@@ -23,9 +23,8 @@ export interface CanopyServices {
|
|
|
23
23
|
/** Entry schema registry mapping entry schema names to field definitions */
|
|
24
24
|
entrySchemaRegistry: EntrySchemaRegistry;
|
|
25
25
|
/** Per-branch schema cache */
|
|
26
|
-
branchSchemaCache: import('./branch-schema-cache').BranchSchemaCache;
|
|
26
|
+
branchSchemaCache: import('./branch-schema-cache.js').BranchSchemaCache;
|
|
27
27
|
checkBranchAccess: (context: BranchContext, user: CanopyUser) => ReturnType<ReturnType<typeof createCheckBranchAccess>>;
|
|
28
|
-
checkPathAccess: ReturnType<typeof createCheckPathAccess>;
|
|
29
28
|
checkContentAccess: ReturnType<typeof createCheckContentAccess>;
|
|
30
29
|
/**
|
|
31
30
|
* Build a batch content-access checker that loads permissions once and returns
|
|
@@ -110,4 +109,3 @@ export declare const createCanopyServices: (config: CanopyConfig, options?: Crea
|
|
|
110
109
|
* @param options - Optional settings including entry schema registry
|
|
111
110
|
*/
|
|
112
111
|
export declare const createTestCanopyServices: (config: CanopyConfig, options?: CreateCanopyServicesOptions) => Promise<CanopyServices>;
|
|
113
|
-
//# sourceMappingURL=services.d.ts.map
|
package/dist/services.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getConfigDefaults } from './config/index.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createCheckBranchAccess, createCheckContentAccess, createContentAccessChecker, loadPathPermissions, } from './authorization/index.js';
|
|
3
3
|
import { GitManager, GitRemoteRefMissingError } from './git-manager.js';
|
|
4
4
|
import { BranchRegistry } from './branch-registry.js';
|
|
5
5
|
import { SettingsWorkspaceManager } from './settings-workspace.js';
|
|
@@ -116,10 +116,7 @@ async function _createCanopyServicesInternal(config, options) {
|
|
|
116
116
|
const bootstrapAdminIds = getBootstrapAdminIds();
|
|
117
117
|
// Create per-branch schema cache (or use provided one for testing)
|
|
118
118
|
const branchSchemaCache = options.branchSchemaCache ?? new BranchSchemaCache(config.mode);
|
|
119
|
-
const checkBranchAccess = createCheckBranchAccess(config.defaultBranchAccess ?? 'deny');
|
|
120
|
-
// Path permissions are loaded dynamically from the settings branch at request time.
|
|
121
|
-
// At the service level, we bind with empty rules for direct path checks.
|
|
122
|
-
const checkPathAccess = createCheckPathAccess([], config.defaultPathAccess ?? 'deny');
|
|
119
|
+
const checkBranchAccess = createCheckBranchAccess(config.defaultBranchAccess ?? 'deny', config);
|
|
123
120
|
// Content access loads permissions dynamically from the settings branch (orphan git branch)
|
|
124
121
|
const getSettingsBranchRoot = options.getSettingsBranchRoot ??
|
|
125
122
|
(async () => {
|
|
@@ -347,7 +344,6 @@ async function _createCanopyServicesInternal(config, options) {
|
|
|
347
344
|
entrySchemaRegistry: options.entrySchemaRegistry ?? {},
|
|
348
345
|
branchSchemaCache,
|
|
349
346
|
checkBranchAccess,
|
|
350
|
-
checkPathAccess,
|
|
351
347
|
checkContentAccess,
|
|
352
348
|
createContentAccessChecker: createContentAccessCheckerBound,
|
|
353
349
|
createGitManagerFor,
|
|
@@ -400,4 +396,3 @@ async function _createCanopyServicesInternal(config, options) {
|
|
|
400
396
|
};
|
|
401
397
|
return services;
|
|
402
398
|
}
|
|
403
|
-
//# sourceMappingURL=services.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CanopyConfig } from './config';
|
|
2
|
-
import type { OperatingMode } from './operating-mode';
|
|
1
|
+
import type { CanopyConfig } from './config/index.js';
|
|
2
|
+
import type { OperatingMode } from './operating-mode/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Directory the cross-process init lock is anchored on — a dedicated sibling of
|
|
5
5
|
* the settings root, and NOT the settings root itself.
|
|
@@ -10,18 +10,16 @@ import type { OperatingMode } from './operating-mode';
|
|
|
10
10
|
* mkdir's its target, and `GitManager.initializeWorkspace` clones INTO the
|
|
11
11
|
* settings root — `git clone` refuses a destination that already has content
|
|
12
12
|
* in it. So the lock lives beside the settings root, never inside it.
|
|
13
|
-
* 2. **
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* dedicated dot-directory
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* this
|
|
22
|
-
*
|
|
23
|
-
* (content-write lock), `<workspaceRoot>/.tasks` (worker task lock), and the
|
|
24
|
-
* individual JSON file paths used by `withOccFileLock`.
|
|
13
|
+
* 2. **Its marker must not collide with another lock's marker.** Since
|
|
14
|
+
* 2026-08-20 `acquireProvisioningLock` anchors proper-lockfile on the lock
|
|
15
|
+
* MARKER's own path rather than on the directory holding it, so its
|
|
16
|
+
* in-process registry key is the on-disk lock identity and two live locks
|
|
17
|
+
* can no longer clobber each other's bookkeeping (see docs/concurrency.md,
|
|
18
|
+
* "Anchor path matters"). A dedicated dot-directory is still the right home
|
|
19
|
+
* for this marker: `path.dirname(settingsRoot)` is where
|
|
20
|
+
* `ensureLocalSimulatedRemote` puts `.remote-init.lock`, and settings init
|
|
21
|
+
* calls into it while holding this lock, so keeping the two markers in
|
|
22
|
+
* separate directories keeps that nesting obvious rather than incidental.
|
|
25
23
|
*/
|
|
26
24
|
export declare function settingsInitLockTarget(settingsRoot: string): string;
|
|
27
25
|
export interface EnsureSettingsWorkspaceOptions {
|
|
@@ -51,4 +49,3 @@ export declare class SettingsWorkspaceManager {
|
|
|
51
49
|
constructor(config: CanopyConfig);
|
|
52
50
|
ensureGitWorkspace(options: EnsureSettingsWorkspaceOptions): Promise<void>;
|
|
53
51
|
}
|
|
54
|
-
//# sourceMappingURL=settings-workspace.d.ts.map
|
|
@@ -21,18 +21,16 @@ const SETTINGS_INIT_LOCK_NAME = 'lock';
|
|
|
21
21
|
* mkdir's its target, and `GitManager.initializeWorkspace` clones INTO the
|
|
22
22
|
* settings root — `git clone` refuses a destination that already has content
|
|
23
23
|
* in it. So the lock lives beside the settings root, never inside it.
|
|
24
|
-
* 2. **
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* dedicated dot-directory
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* this
|
|
33
|
-
*
|
|
34
|
-
* (content-write lock), `<workspaceRoot>/.tasks` (worker task lock), and the
|
|
35
|
-
* individual JSON file paths used by `withOccFileLock`.
|
|
24
|
+
* 2. **Its marker must not collide with another lock's marker.** Since
|
|
25
|
+
* 2026-08-20 `acquireProvisioningLock` anchors proper-lockfile on the lock
|
|
26
|
+
* MARKER's own path rather than on the directory holding it, so its
|
|
27
|
+
* in-process registry key is the on-disk lock identity and two live locks
|
|
28
|
+
* can no longer clobber each other's bookkeeping (see docs/concurrency.md,
|
|
29
|
+
* "Anchor path matters"). A dedicated dot-directory is still the right home
|
|
30
|
+
* for this marker: `path.dirname(settingsRoot)` is where
|
|
31
|
+
* `ensureLocalSimulatedRemote` puts `.remote-init.lock`, and settings init
|
|
32
|
+
* calls into it while holding this lock, so keeping the two markers in
|
|
33
|
+
* separate directories keeps that nesting obvious rather than incidental.
|
|
36
34
|
*/
|
|
37
35
|
export function settingsInitLockTarget(settingsRoot) {
|
|
38
36
|
return path.join(path.dirname(path.resolve(settingsRoot)), SETTINGS_INIT_LOCK_DIR);
|
|
@@ -220,4 +218,3 @@ export class SettingsWorkspaceManager {
|
|
|
220
218
|
});
|
|
221
219
|
}
|
|
222
220
|
}
|
|
223
|
-
//# sourceMappingURL=settings-workspace.js.map
|