canopycms 0.0.67-int.90 → 0.0.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -3
- package/dist/ai/generate.js +1 -27
- package/dist/ai/handler.d.ts +0 -4
- package/dist/ai/handler.js +0 -11
- package/dist/ai/index.d.ts +1 -8
- package/dist/ai/index.js +1 -8
- package/dist/ai/json-to-markdown.js +15 -58
- package/dist/ai/resolve-branch.d.ts +2 -7
- package/dist/ai/resolve-branch.js +2 -8
- package/dist/ai/strip-mdx.d.ts +5 -13
- package/dist/ai/strip-mdx.js +5 -17
- package/dist/ai/to-plain-text.d.ts +10 -28
- package/dist/ai/to-plain-text.js +10 -28
- package/dist/ai/transform-components.d.ts +2 -4
- package/dist/ai/transform-components.js +8 -19
- package/dist/ai/types.d.ts +5 -10
- package/dist/api/admin-branch-health.d.ts +4 -12
- package/dist/api/admin-branch-health.js +26 -66
- package/dist/api/admin.d.ts +4 -12
- package/dist/api/admin.js +10 -26
- package/dist/api/assets.d.ts +0 -25
- package/dist/api/assets.js +50 -91
- package/dist/api/branch-merge.d.ts +1 -1
- package/dist/api/branch-merge.js +0 -2
- package/dist/api/branch-review.d.ts +0 -8
- package/dist/api/branch-review.js +0 -13
- package/dist/api/branch-status.d.ts +0 -3
- package/dist/api/branch-status.js +8 -33
- package/dist/api/branch-withdraw.d.ts +0 -1
- package/dist/api/branch-withdraw.js +6 -9
- package/dist/api/branch.d.ts +7 -12
- package/dist/api/branch.js +7 -44
- package/dist/api/client.d.ts +71 -224
- package/dist/api/client.js +82 -233
- package/dist/api/comments.d.ts +2 -4
- package/dist/api/comments.js +0 -17
- package/dist/api/content.d.ts +0 -6
- package/dist/api/content.js +66 -142
- package/dist/api/entries-constants.d.ts +5 -9
- package/dist/api/entries-constants.js +5 -9
- package/dist/api/entries.d.ts +8 -13
- package/dist/api/entries.js +20 -51
- package/dist/api/github-sync.d.ts +2 -4
- package/dist/api/github-sync.js +4 -8
- package/dist/api/groups.d.ts +3 -0
- package/dist/api/groups.js +8 -21
- package/dist/api/guards.d.ts +4 -16
- package/dist/api/guards.js +3 -22
- package/dist/api/index.d.ts +4 -4
- package/dist/api/permissions.d.ts +2 -0
- package/dist/api/permissions.js +18 -40
- package/dist/api/reference-options.d.ts +0 -1
- package/dist/api/reference-options.js +3 -11
- package/dist/api/request-body-hash.d.ts +12 -23
- package/dist/api/request-body-hash.js +12 -23
- package/dist/api/resolve-references.d.ts +0 -1
- package/dist/api/resolve-references.js +13 -28
- package/dist/api/route-builder.d.ts +3 -7
- package/dist/api/route-builder.js +1 -1
- package/dist/api/routes.d.ts +12 -0
- package/dist/api/routes.js +47 -0
- package/dist/api/schema.d.ts +23 -33
- package/dist/api/schema.js +20 -74
- package/dist/api/settings-helpers.js +4 -5
- package/dist/api/types.d.ts +0 -5
- package/dist/api/user.js +0 -5
- package/dist/api/validators.d.ts +14 -52
- package/dist/api/validators.js +14 -52
- package/dist/assets/asset-prefixes.d.ts +4 -8
- package/dist/assets/asset-prefixes.js +4 -8
- package/dist/assets/asset-src.d.ts +5 -22
- package/dist/assets/asset-src.js +5 -21
- package/dist/assets/factory.d.ts +1 -2
- package/dist/assets/factory.js +1 -2
- package/dist/assets/finalize.d.ts +3 -1
- package/dist/assets/finalize.js +3 -1
- package/dist/assets/index.d.ts +3 -3
- package/dist/assets/index.js +1 -1
- package/dist/assets/keys.d.ts +5 -3
- package/dist/assets/keys.js +6 -3
- package/dist/assets/pipeline.d.ts +3 -2
- package/dist/assets/pipeline.js +22 -56
- package/dist/assets/sharp-loader.d.ts +2 -10
- package/dist/assets/sharp-loader.js +2 -10
- package/dist/assets/store-local.d.ts +1 -2
- package/dist/assets/store-local.js +1 -2
- package/dist/assets/store-s3.d.ts +3 -4
- package/dist/assets/svg-sanitizer.d.ts +6 -14
- package/dist/assets/svg-sanitizer.js +6 -14
- package/dist/assets/transform-directives.d.ts +3 -4
- package/dist/assets/transform-directives.js +1 -1
- package/dist/assets/transform.d.ts +19 -30
- package/dist/assets/transform.js +18 -31
- package/dist/auth/cache.d.ts +2 -3
- package/dist/auth/cache.js +2 -3
- package/dist/auth/caching-auth-plugin.d.ts +11 -22
- package/dist/auth/caching-auth-plugin.js +12 -14
- package/dist/auth/context-helpers.d.ts +6 -20
- package/dist/auth/context-helpers.js +5 -17
- package/dist/auth/file-based-auth-cache.d.ts +10 -21
- package/dist/auth/file-based-auth-cache.js +23 -51
- package/dist/auth/plugin.d.ts +29 -61
- package/dist/auth/plugin.js +9 -13
- package/dist/auth/types.d.ts +11 -20
- package/dist/authorization/branch.d.ts +30 -49
- package/dist/authorization/branch.js +16 -42
- package/dist/authorization/content.d.ts +11 -40
- package/dist/authorization/content.js +13 -45
- package/dist/authorization/groups/index.d.ts +0 -3
- package/dist/authorization/groups/index.js +0 -3
- package/dist/authorization/groups/loader.d.ts +14 -28
- package/dist/authorization/groups/loader.js +14 -38
- package/dist/authorization/groups/schema.d.ts +0 -6
- package/dist/authorization/groups/schema.js +4 -7
- package/dist/authorization/helpers.d.ts +9 -28
- package/dist/authorization/helpers.js +9 -28
- package/dist/authorization/index.d.ts +3 -25
- package/dist/authorization/index.js +3 -35
- package/dist/authorization/path.d.ts +6 -13
- package/dist/authorization/path.js +8 -25
- package/dist/authorization/permissions/index.d.ts +0 -3
- package/dist/authorization/permissions/index.js +0 -3
- package/dist/authorization/permissions/loader.d.ts +14 -27
- package/dist/authorization/permissions/loader.js +14 -32
- package/dist/authorization/permissions/schema.d.ts +1 -6
- package/dist/authorization/permissions/schema.js +6 -13
- package/dist/authorization/protected-branch.d.ts +36 -65
- package/dist/authorization/protected-branch.js +29 -41
- package/dist/authorization/settings-file-store.d.ts +38 -81
- package/dist/authorization/settings-file-store.js +38 -79
- package/dist/authorization/types.d.ts +4 -26
- package/dist/authorization/types.js +0 -6
- package/dist/authorization/validation.d.ts +1 -23
- package/dist/authorization/validation.js +1 -24
- package/dist/branch-health.d.ts +39 -67
- package/dist/branch-health.js +27 -43
- package/dist/branch-metadata-file.d.ts +16 -32
- package/dist/branch-metadata-file.js +13 -26
- package/dist/branch-metadata.d.ts +49 -80
- package/dist/branch-metadata.js +57 -87
- package/dist/branch-registry.d.ts +26 -64
- package/dist/branch-registry.js +44 -93
- package/dist/branch-schema-cache.d.ts +34 -124
- package/dist/branch-schema-cache.js +49 -155
- package/dist/branch-workspace.d.ts +4 -4
- package/dist/branch-workspace.js +15 -19
- package/dist/build/generate-ai-content.d.ts +1 -0
- package/dist/build/generate-ai-content.js +12 -25
- package/dist/build-canopy.d.ts +17 -27
- package/dist/build-canopy.js +16 -23
- package/dist/build-mode.d.ts +25 -27
- package/dist/build-mode.js +25 -29
- package/dist/cli/cli.d.ts +15 -26
- package/dist/cli/cli.js +601 -978
- package/dist/cli/generate-ai-content.js +351 -628
- package/dist/cli/github-app-manifest.d.ts +84 -0
- package/dist/cli/github-app-manifest.js +161 -0
- package/dist/cli/init-github-app.d.ts +110 -444
- package/dist/cli/init-github-app.js +236 -773
- package/dist/cli/init.js +39 -80
- package/dist/cli/migrate.d.ts +13 -10
- package/dist/cli/migrate.js +22 -30
- package/dist/cli/project-detect.d.ts +17 -31
- package/dist/cli/project-detect.js +31 -42
- package/dist/cli/project-root.d.ts +4 -11
- package/dist/cli/project-root.js +4 -11
- package/dist/cli/prompt.d.ts +10 -0
- package/dist/cli/prompt.js +67 -0
- package/dist/cli/sync.d.ts +0 -8
- package/dist/cli/sync.js +8 -28
- package/dist/cli/template-files/middleware.ts.template +15 -29
- package/dist/cli/templates.d.ts +2 -12
- package/dist/cli/templates.js +4 -4
- package/dist/client.d.ts +1 -1
- package/dist/comment-store.d.ts +32 -53
- package/dist/comment-store.js +32 -52
- package/dist/config/flatten.d.ts +0 -3
- package/dist/config/flatten.js +2 -12
- package/dist/config/helpers.js +2 -2
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.js +1 -4
- package/dist/config/schemas/collection.d.ts +0 -8
- package/dist/config/schemas/collection.js +0 -10
- package/dist/config/schemas/config.d.ts +6 -78
- package/dist/config/schemas/config.js +38 -54
- package/dist/config/schemas/field.d.ts +2 -242
- package/dist/config/schemas/field.js +9 -20
- package/dist/config/schemas/media.js +1 -1
- package/dist/config/schemas/permissions.js +0 -2
- package/dist/config/schemas/url.d.ts +5 -6
- package/dist/config/schemas/url.js +5 -6
- package/dist/config/types.d.ts +45 -33
- package/dist/config/types.js +0 -1
- package/dist/config.d.ts +1 -8
- package/dist/config.js +1 -9
- package/dist/content-id-index.d.ts +76 -188
- package/dist/content-id-index.js +79 -230
- package/dist/content-index-generation.d.ts +27 -48
- package/dist/content-index-generation.js +35 -84
- package/dist/content-index-registry.d.ts +15 -24
- package/dist/content-index-registry.js +5 -9
- package/dist/content-listing.d.ts +64 -107
- package/dist/content-listing.js +68 -118
- package/dist/content-reader.d.ts +20 -29
- package/dist/content-reader.js +10 -18
- package/dist/content-store.d.ts +210 -336
- package/dist/content-store.js +413 -657
- package/dist/content-tree.d.ts +44 -86
- package/dist/content-tree.js +26 -54
- package/dist/context.d.ts +67 -94
- package/dist/context.js +53 -72
- package/dist/dev-content-watcher.d.ts +18 -18
- package/dist/dev-content-watcher.js +41 -44
- package/dist/editor/BranchManager.d.ts +3 -6
- package/dist/editor/BranchManager.js +24 -44
- package/dist/editor/CanopyEditor.js +5 -2
- package/dist/editor/CommentsPanel.js +0 -2
- package/dist/editor/Editor.js +19 -76
- package/dist/editor/EditorAuthGate.d.ts +27 -0
- package/dist/editor/EditorAuthGate.js +140 -0
- package/dist/editor/EntryNavigator.js +0 -20
- package/dist/editor/FormRenderer.d.ts +1 -2
- package/dist/editor/FormRenderer.js +8 -23
- package/dist/editor/admin/SystemHealthPanel.js +20 -37
- package/dist/editor/admin/useSystemHealth.d.ts +2 -3
- package/dist/editor/admin/useSystemHealth.js +10 -12
- package/dist/editor/client-reference-resolver.d.ts +2 -5
- package/dist/editor/client-reference-resolver.js +2 -19
- package/dist/editor/comments/BranchComments.js +0 -4
- package/dist/editor/comments/EntryComments.js +0 -4
- package/dist/editor/comments/FieldWrapper.js +0 -4
- package/dist/editor/comments/InlineCommentThread.js +0 -2
- package/dist/editor/comments/ThreadCarousel.d.ts +0 -58
- package/dist/editor/comments/ThreadCarousel.js +0 -12
- package/dist/editor/components/EditorFooter.d.ts +0 -8
- package/dist/editor/components/EditorFooter.js +0 -5
- package/dist/editor/components/EditorHeader.d.ts +0 -31
- package/dist/editor/components/EditorHeader.js +21 -71
- package/dist/editor/components/EditorSidebar.d.ts +0 -19
- package/dist/editor/components/EditorSidebar.js +0 -16
- package/dist/editor/components/EntryCreateModal.d.ts +4 -4
- package/dist/editor/components/EntryCreateModal.js +7 -22
- package/dist/editor/components/RenameEntryModal.js +0 -4
- package/dist/editor/components/UserBadge.js +0 -10
- package/dist/editor/components/index.js +0 -2
- package/dist/editor/context/ApiClientContext.d.ts +8 -7
- package/dist/editor/context/ApiClientContext.js +39 -11
- package/dist/editor/context/AssetContext.d.ts +7 -17
- package/dist/editor/context/AssetContext.js +7 -17
- package/dist/editor/context/EditorIdentityContext.d.ts +13 -0
- package/dist/editor/context/EditorIdentityContext.js +7 -0
- package/dist/editor/context/EditorStateContext.d.ts +10 -41
- package/dist/editor/context/EditorStateContext.js +7 -23
- package/dist/editor/context/SWRProvider.d.ts +3 -6
- package/dist/editor/context/index.d.ts +1 -20
- package/dist/editor/context/index.js +1 -20
- package/dist/editor/editor-utils.d.ts +8 -47
- package/dist/editor/editor-utils.js +19 -72
- package/dist/editor/fields/BlockField.d.ts +2 -2
- package/dist/editor/fields/BlockField.js +1 -2
- package/dist/editor/fields/CodeField.d.ts +0 -1
- package/dist/editor/fields/CodeField.js +0 -1
- package/dist/editor/fields/DateTimeField.d.ts +15 -22
- package/dist/editor/fields/DateTimeField.js +17 -26
- package/dist/editor/fields/ImageField.d.ts +2 -2
- package/dist/editor/fields/ImageField.js +8 -14
- package/dist/editor/fields/InlineGroupField.d.ts +0 -1
- package/dist/editor/fields/InlineGroupField.js +0 -1
- package/dist/editor/fields/MarkdownField.d.ts +0 -1
- package/dist/editor/fields/MarkdownField.js +6 -11
- package/dist/editor/fields/MdxImageDialog.d.ts +1 -1
- package/dist/editor/fields/MdxImageDialog.js +0 -1
- package/dist/editor/fields/NumberField.d.ts +9 -19
- package/dist/editor/fields/NumberField.js +11 -22
- package/dist/editor/fields/NumberListField.d.ts +7 -10
- package/dist/editor/fields/NumberListField.js +7 -10
- package/dist/editor/fields/ObjectField.d.ts +5 -8
- package/dist/editor/fields/ObjectField.js +0 -1
- package/dist/editor/fields/ReferenceField.d.ts +1 -1
- package/dist/editor/fields/ReferenceField.js +11 -16
- package/dist/editor/fields/SelectField.d.ts +2 -2
- package/dist/editor/fields/SelectField.js +0 -1
- package/dist/editor/fields/StringListField.d.ts +0 -4
- package/dist/editor/fields/StringListField.js +4 -9
- package/dist/editor/fields/TextField.d.ts +0 -1
- package/dist/editor/fields/TextField.js +0 -1
- package/dist/editor/fields/ToggleField.d.ts +0 -1
- package/dist/editor/fields/ToggleField.js +0 -1
- package/dist/editor/fields/entry-link/EntryLinkContext.js +2 -4
- package/dist/editor/fields/entry-link/InsertEntryLink.d.ts +0 -3
- package/dist/editor/fields/entry-link/InsertEntryLink.js +0 -4
- package/dist/editor/group-manager/ExternalGroupsTab.d.ts +0 -3
- package/dist/editor/group-manager/ExternalGroupsTab.js +0 -1
- package/dist/editor/group-manager/GroupCard.d.ts +0 -3
- package/dist/editor/group-manager/GroupForm.d.ts +0 -3
- package/dist/editor/group-manager/InternalGroupsTab.d.ts +0 -3
- package/dist/editor/group-manager/InternalGroupsTab.js +0 -2
- package/dist/editor/group-manager/MemberList.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.js +0 -3
- package/dist/editor/group-manager/hooks/useGroupState.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useGroupState.js +0 -5
- package/dist/editor/group-manager/hooks/useUserSearch.d.ts +0 -3
- package/dist/editor/group-manager/hooks/useUserSearch.js +0 -3
- package/dist/editor/group-manager/index.d.ts +0 -6
- package/dist/editor/group-manager/index.js +0 -10
- package/dist/editor/group-manager/types.d.ts +2 -5
- package/dist/editor/group-manager/types.js +0 -3
- package/dist/editor/hooks/index.d.ts +6 -11
- package/dist/editor/hooks/index.js +6 -12
- package/dist/editor/hooks/useBranchActions.d.ts +0 -14
- package/dist/editor/hooks/useBranchActions.js +0 -22
- package/dist/editor/hooks/useBranchManager.d.ts +2 -48
- package/dist/editor/hooks/useBranchManager.js +4 -64
- package/dist/editor/hooks/useBranchesData.d.ts +7 -6
- package/dist/editor/hooks/useBranchesData.js +7 -6
- package/dist/editor/hooks/useCommentSystem.d.ts +0 -49
- package/dist/editor/hooks/useCommentSystem.js +1 -36
- package/dist/editor/hooks/useDraftManager.d.ts +2 -35
- package/dist/editor/hooks/useDraftManager.js +23 -64
- package/dist/editor/hooks/useEditorLayout.d.ts +0 -20
- package/dist/editor/hooks/useEditorLayout.js +0 -23
- package/dist/editor/hooks/useEntriesData.d.ts +1 -0
- package/dist/editor/hooks/useEntriesData.js +2 -3
- package/dist/editor/hooks/useEntryLinkResolution.d.ts +2 -2
- package/dist/editor/hooks/useEntryLinkResolution.js +2 -2
- package/dist/editor/hooks/useEntryManager.d.ts +2 -27
- package/dist/editor/hooks/useEntryManager.js +29 -78
- package/dist/editor/hooks/useGroupManager.d.ts +0 -21
- package/dist/editor/hooks/useGroupManager.js +0 -21
- package/dist/editor/hooks/usePermissionManager.d.ts +0 -20
- package/dist/editor/hooks/usePermissionManager.js +0 -20
- package/dist/editor/hooks/useReferenceResolution.d.ts +2 -33
- package/dist/editor/hooks/useReferenceResolution.js +1 -48
- package/dist/editor/hooks/useSchemaManager.d.ts +8 -27
- package/dist/editor/hooks/useSchemaManager.js +0 -19
- package/dist/editor/hooks/useUserContext.d.ts +2 -9
- package/dist/editor/hooks/useUserContext.js +10 -10
- package/dist/editor/hooks/useUserMetadata.d.ts +0 -2
- package/dist/editor/hooks/useUserMetadata.js +0 -3
- package/dist/editor/media/AssetCard.d.ts +0 -1
- package/dist/editor/media/AssetCard.js +1 -2
- package/dist/editor/media/CropStep.d.ts +0 -1
- package/dist/editor/media/CropStep.js +0 -1
- package/dist/editor/media/MediaLibrary.d.ts +1 -2
- package/dist/editor/media/MediaLibrary.js +1 -2
- package/dist/editor/media/MediaLibraryBody.d.ts +0 -1
- package/dist/editor/media/MediaLibraryBody.js +0 -1
- package/dist/editor/media/crop-math.d.ts +1 -1
- package/dist/editor/media/crop-math.js +1 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts +0 -3
- package/dist/editor/permission-manager/PermissionEditor.d.ts +0 -4
- package/dist/editor/permission-manager/PermissionEditor.js +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.d.ts +0 -7
- package/dist/editor/permission-manager/PermissionLevelBadge.js +0 -4
- package/dist/editor/permission-manager/PermissionTree.d.ts +0 -4
- package/dist/editor/permission-manager/UserSelector.d.ts +0 -3
- package/dist/editor/permission-manager/constants.d.ts +0 -3
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +0 -3
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +0 -10
- package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts +0 -14
- package/dist/editor/permission-manager/hooks/usePermissionTree.js +0 -11
- package/dist/editor/permission-manager/index.d.ts +0 -7
- package/dist/editor/permission-manager/index.js +0 -16
- package/dist/editor/permission-manager/types.d.ts +2 -12
- package/dist/editor/permission-manager/types.js +0 -3
- package/dist/editor/permission-manager/utils.d.ts +0 -28
- package/dist/editor/permission-manager/utils.js +9 -23
- package/dist/editor/preview-bridge.d.ts +5 -1
- package/dist/editor/preview-bridge.js +4 -4
- package/dist/editor/schema-editor/CollectionEditor.d.ts +0 -5
- package/dist/editor/schema-editor/CollectionEditor.js +9 -31
- package/dist/editor/schema-editor/EntryTypeEditor.d.ts +0 -6
- package/dist/editor/schema-editor/EntryTypeEditor.js +3 -24
- package/dist/editor/schema-editor/index.d.ts +0 -7
- package/dist/editor/schema-editor/index.js +0 -7
- package/dist/editor/utils/env.d.ts +3 -18
- package/dist/editor/utils/env.js +6 -25
- package/dist/entry-link-resolver.d.ts +13 -35
- package/dist/entry-link-resolver.js +20 -53
- package/dist/entry-schema-registry.d.ts +20 -60
- package/dist/entry-schema-registry.js +20 -69
- package/dist/entry-schema.d.ts +118 -223
- package/dist/entry-schema.js +46 -91
- package/dist/git-manager.d.ts +101 -200
- package/dist/git-manager.js +211 -384
- package/dist/github-service.d.ts +34 -75
- package/dist/github-service.js +37 -91
- package/dist/http/handler.d.ts +6 -37
- package/dist/http/handler.js +65 -120
- package/dist/http/router.d.ts +15 -32
- package/dist/http/router.js +34 -99
- package/dist/http/types.d.ts +15 -40
- package/dist/http/types.js +3 -7
- package/dist/id.d.ts +4 -10
- package/dist/id.js +4 -10
- package/dist/index.js +6 -9
- package/dist/operating-mode/client-safe-strategy.d.ts +7 -14
- package/dist/operating-mode/client-safe-strategy.js +8 -28
- package/dist/operating-mode/client-unsafe-strategy.d.ts +6 -16
- package/dist/operating-mode/client-unsafe-strategy.js +9 -34
- package/dist/operating-mode/client.d.ts +3 -10
- package/dist/operating-mode/client.js +3 -8
- package/dist/operating-mode/deployment-name-fixtures.d.ts +14 -18
- package/dist/operating-mode/deployment-name-fixtures.js +14 -18
- package/dist/operating-mode/deployment-name.d.ts +19 -29
- package/dist/operating-mode/deployment-name.js +29 -47
- package/dist/operating-mode/index.d.ts +4 -25
- package/dist/operating-mode/index.js +9 -31
- package/dist/operating-mode/mode-env.d.ts +32 -54
- package/dist/operating-mode/mode-env.js +36 -58
- package/dist/operating-mode/types.d.ts +24 -72
- package/dist/operating-mode/types.js +1 -7
- package/dist/paths/branch-name.d.ts +30 -40
- package/dist/paths/branch-name.js +30 -40
- package/dist/paths/branch.d.ts +4 -18
- package/dist/paths/branch.js +6 -22
- package/dist/paths/index.d.ts +2 -13
- package/dist/paths/index.js +3 -23
- package/dist/paths/normalize-server.d.ts +3 -15
- package/dist/paths/normalize-server.js +3 -15
- package/dist/paths/normalize.d.ts +13 -33
- package/dist/paths/normalize.js +13 -33
- package/dist/paths/resolve.d.ts +4 -17
- package/dist/paths/resolve.js +4 -22
- package/dist/paths/types.d.ts +12 -34
- package/dist/paths/types.js +5 -7
- package/dist/paths/validation.d.ts +22 -119
- package/dist/paths/validation.js +30 -148
- package/dist/reference-resolver.d.ts +0 -13
- package/dist/reference-resolver.js +0 -18
- package/dist/resolve-canopy-user.d.ts +16 -18
- package/dist/resolve-canopy-user.js +17 -26
- package/dist/resource-generation.d.ts +16 -25
- package/dist/resource-generation.js +34 -97
- package/dist/schema/meta-loader.d.ts +2 -14
- package/dist/schema/meta-loader.js +15 -64
- package/dist/schema/resolver.d.ts +1 -4
- package/dist/schema/resolver.js +1 -6
- package/dist/schema/schema-store-types.d.ts +0 -12
- package/dist/schema/schema-store.d.ts +61 -138
- package/dist/schema/schema-store.js +85 -282
- package/dist/schema/types.d.ts +0 -4
- package/dist/server.d.ts +62 -93
- package/dist/server.js +63 -94
- package/dist/services.d.ts +23 -47
- package/dist/services.js +55 -98
- package/dist/settings-workspace.d.ts +17 -30
- package/dist/settings-workspace.js +51 -81
- package/dist/static/index.d.ts +26 -52
- package/dist/static/index.js +33 -67
- package/dist/{worker/task-queue.d.ts → task-queue/cms-task-queue.d.ts} +7 -9
- package/dist/task-queue/cms-task-queue.js +13 -0
- package/dist/task-queue/task-queue-config.d.ts +3 -0
- package/dist/{worker → task-queue}/task-queue-config.js +1 -6
- package/dist/task-queue/task-queue.d.ts +16 -22
- package/dist/task-queue/task-queue.js +20 -44
- package/dist/task-queue/types.d.ts +0 -1
- package/dist/task-queue/worker-status.d.ts +35 -0
- package/dist/task-queue/worker-status.js +40 -0
- package/dist/types.d.ts +40 -51
- package/dist/url-collision.d.ts +26 -40
- package/dist/url-collision.js +47 -63
- package/dist/url-exclusivity-fixtures.d.ts +15 -20
- package/dist/url-exclusivity-fixtures.js +14 -19
- package/dist/url-path-resolver.d.ts +8 -16
- package/dist/url-path-resolver.js +19 -29
- package/dist/user.d.ts +8 -21
- package/dist/user.js +10 -19
- package/dist/utils/async-mutex.js +4 -6
- package/dist/utils/atomic-write.d.ts +2 -11
- package/dist/utils/atomic-write.js +2 -11
- package/dist/utils/body-field.d.ts +8 -15
- package/dist/utils/body-field.js +8 -15
- package/dist/utils/content-serialize.d.ts +18 -24
- package/dist/utils/content-serialize.js +109 -160
- package/dist/utils/content-write-lock.d.ts +51 -106
- package/dist/utils/content-write-lock.js +66 -111
- package/dist/utils/debug.d.ts +7 -23
- package/dist/utils/debug.js +7 -23
- package/dist/utils/entry-url.d.ts +11 -23
- package/dist/utils/entry-url.js +11 -26
- package/dist/utils/error.d.ts +25 -90
- package/dist/utils/error.js +60 -147
- package/dist/utils/flatten-group-fields.d.ts +5 -7
- package/dist/utils/flatten-group-fields.js +5 -7
- package/dist/utils/format.d.ts +1 -5
- package/dist/utils/format.js +1 -5
- package/dist/utils/fs.d.ts +3 -4
- package/dist/utils/fs.js +3 -4
- package/dist/utils/git.d.ts +52 -83
- package/dist/utils/git.js +79 -125
- package/dist/utils/logger.d.ts +35 -50
- package/dist/utils/logger.js +35 -52
- package/dist/utils/provisioning-lock.d.ts +23 -35
- package/dist/utils/provisioning-lock.js +49 -69
- package/dist/utils/sanitize-href.d.ts +5 -10
- package/dist/utils/sanitize-href.js +8 -18
- package/dist/utils/title-field.d.ts +17 -20
- package/dist/utils/title-field.js +18 -27
- package/dist/utils/typed-filename.d.ts +20 -48
- package/dist/utils/typed-filename.js +25 -61
- package/dist/utils/url-prefix.d.ts +3 -3
- package/dist/utils/url-prefix.js +3 -3
- package/dist/validation/block-structural-keys.d.ts +16 -31
- package/dist/validation/block-structural-keys.js +19 -29
- package/dist/validation/deletion-checker.d.ts +0 -34
- package/dist/validation/deletion-checker.js +1 -43
- package/dist/validation/entry-link-validator.d.ts +6 -13
- package/dist/validation/entry-link-validator.js +4 -13
- package/dist/validation/entry-type-reference-validator.d.ts +13 -18
- package/dist/validation/entry-type-reference-validator.js +13 -18
- package/dist/validation/entry-validator.d.ts +13 -25
- package/dist/validation/entry-validator.js +15 -32
- package/dist/validation/field-traversal.d.ts +3 -30
- package/dist/validation/field-traversal.js +1 -32
- package/dist/validation/reference-validator.d.ts +5 -24
- package/dist/validation/reference-validator.js +5 -30
- package/dist/worker/cms-worker.d.ts +172 -232
- package/dist/worker/cms-worker.js +241 -333
- package/dist/worker/git-sync.d.ts +32 -133
- package/dist/worker/git-sync.js +129 -191
- package/dist/worker/github-auth.d.ts +13 -19
- package/dist/worker/github-auth.js +13 -19
- package/dist/worker/history-rewrite.d.ts +53 -66
- package/dist/worker/history-rewrite.js +54 -60
- package/dist/worker/log.d.ts +24 -41
- package/dist/worker/log.js +25 -42
- package/dist/worker/rebase.d.ts +20 -110
- package/dist/worker/rebase.js +279 -354
- package/dist/worker/task-runner.d.ts +32 -66
- package/dist/worker/task-runner.js +126 -162
- package/dist/worker/worker-context.d.ts +41 -81
- package/package.json +4 -4
- package/dist/cli/template-files/middleware-clerk.ts.template +0 -37
- package/dist/worker/task-queue-config.d.ts +0 -8
- package/dist/worker/task-queue.js +0 -19
- package/dist/worker/worker-status.d.ts +0 -47
- package/dist/worker/worker-status.js +0 -52
package/dist/api/branch.js
CHANGED
|
@@ -14,9 +14,6 @@ import { sanitizeBranchName, RESERVED_SETTINGS_BRANCH_PREFIX, RESERVED_ROUTE_BRA
|
|
|
14
14
|
import { GitManager } from '../git-manager.js';
|
|
15
15
|
import { branchNameSchema, branchParamSchema } from './validators.js';
|
|
16
16
|
const log = createDebugLogger({ prefix: 'BranchAPI' });
|
|
17
|
-
// ============================================================================
|
|
18
|
-
// Zod Schemas for Validation
|
|
19
|
-
// ============================================================================
|
|
20
17
|
const createBranchBodySchema = z.object({
|
|
21
18
|
branch: branchNameSchema,
|
|
22
19
|
title: z.string().optional(),
|
|
@@ -35,33 +32,28 @@ const updateBranchAccessBodySchema = z.object({
|
|
|
35
32
|
import { isPrivileged, isAdmin, loadPathPermissions, getBranchProtection, getBranchWriteProtection, } from '../authorization/index.js';
|
|
36
33
|
import { operatingStrategy } from '../operating-mode/index.js';
|
|
37
34
|
/**
|
|
38
|
-
* Check if a user can create branches.
|
|
39
35
|
* Returns true if:
|
|
40
36
|
* - User is Admin or Reviewer (privileged)
|
|
41
37
|
* - User has edit access to at least one path via pathPermissions rules
|
|
42
38
|
* - No path permissions are defined (open access)
|
|
39
|
+
* @internal Exported for tests.
|
|
43
40
|
*/
|
|
44
41
|
export const canCreateBranch = (user, pathPermissions) => {
|
|
45
|
-
// Admins and Reviewers can always create branches
|
|
46
42
|
if (isPrivileged(user.groups)) {
|
|
47
43
|
return { allowed: true, reason: 'privileged_user' };
|
|
48
44
|
}
|
|
49
|
-
// If no path permissions defined, anyone can create branches
|
|
50
45
|
if (pathPermissions.length === 0) {
|
|
51
46
|
return { allowed: true, reason: 'no_restrictions' };
|
|
52
47
|
}
|
|
53
|
-
// Check if user has edit access to at least one path rule
|
|
54
48
|
for (const rule of pathPermissions) {
|
|
55
49
|
const editTarget = rule.edit;
|
|
56
50
|
if (!editTarget)
|
|
57
51
|
continue;
|
|
58
|
-
// Check if rule has no user/group constraints (open to all)
|
|
59
52
|
const hasUserConstraint = !!editTarget.allowedUsers?.length;
|
|
60
53
|
const hasGroupConstraint = !!editTarget.allowedGroups?.length;
|
|
61
54
|
if (!hasUserConstraint && !hasGroupConstraint) {
|
|
62
55
|
return { allowed: true, reason: 'open_path_rule' };
|
|
63
56
|
}
|
|
64
|
-
// Check if user matches the rule
|
|
65
57
|
const matchesUser = hasUserConstraint && editTarget.allowedUsers?.includes(user.userId);
|
|
66
58
|
const matchesGroup = hasGroupConstraint && user.groups?.some((gid) => editTarget.allowedGroups?.includes(gid));
|
|
67
59
|
if (matchesUser || matchesGroup) {
|
|
@@ -95,6 +87,7 @@ const resolveReadOnlyMirrorPath = (ctx, strategy) => {
|
|
|
95
87
|
process.env[remoteUrlConfig.envVarName] ??
|
|
96
88
|
remoteUrlConfig.autoDetectRemotePath);
|
|
97
89
|
};
|
|
90
|
+
/** @internal Exported for tests. */
|
|
98
91
|
export const createBranchHandler = async (ctx, req, body) => {
|
|
99
92
|
return log.timed('api', 'createBranch', async () => {
|
|
100
93
|
const branchName = body.branch;
|
|
@@ -312,7 +305,6 @@ export const createBranchHandler = async (ctx, req, body) => {
|
|
|
312
305
|
const operatingMode = ctx.services.config.mode;
|
|
313
306
|
pathPermissions = await loadPathPermissions(baseBranchContext.branchRoot, operatingMode);
|
|
314
307
|
}
|
|
315
|
-
// Check if user can create branches
|
|
316
308
|
const canCreate = canCreateBranch(req.user, pathPermissions);
|
|
317
309
|
if (!canCreate.allowed) {
|
|
318
310
|
log.debug('api', 'Permission denied', { reason: canCreate.reason });
|
|
@@ -336,6 +328,7 @@ export const createBranchHandler = async (ctx, req, body) => {
|
|
|
336
328
|
return { ok: true, status: 200, data: { branch: context.branch } };
|
|
337
329
|
});
|
|
338
330
|
};
|
|
331
|
+
/** @internal Exported for tests. */
|
|
339
332
|
export const listBranchesHandler = async (ctx, req) => {
|
|
340
333
|
if (!ctx.services.registry) {
|
|
341
334
|
return {
|
|
@@ -400,21 +393,17 @@ export const listBranchesHandler = async (ctx, req) => {
|
|
|
400
393
|
data: { branches: visibleBranches.map(toListItem), defaultBranch },
|
|
401
394
|
};
|
|
402
395
|
};
|
|
403
|
-
/**
|
|
404
|
-
* Check if a user can delete a specific branch.
|
|
405
|
-
* Returns true if user is Admin or the branch creator.
|
|
406
|
-
*/
|
|
396
|
+
/** @internal Exported for tests. */
|
|
407
397
|
export const canDeleteBranch = (user, branchContext) => {
|
|
408
|
-
// Admins can delete any branch
|
|
409
398
|
if (isAdmin(user.groups)) {
|
|
410
399
|
return { allowed: true, reason: 'admin' };
|
|
411
400
|
}
|
|
412
|
-
// Branch creator can delete their own branch
|
|
413
401
|
if (branchContext.branch.createdBy === user.userId) {
|
|
414
402
|
return { allowed: true, reason: 'creator' };
|
|
415
403
|
}
|
|
416
404
|
return { allowed: false, reason: 'not_authorized' };
|
|
417
405
|
};
|
|
406
|
+
/** @internal Exported for tests. */
|
|
418
407
|
export const deleteBranchHandler = async (ctx, req, params) => {
|
|
419
408
|
const branchName = params.branch;
|
|
420
409
|
// Disallow delete in modes that don't support branching (branch = developer's git checkout)
|
|
@@ -426,7 +415,6 @@ export const deleteBranchHandler = async (ctx, req, params) => {
|
|
|
426
415
|
error: 'Cannot delete branches in this operating mode',
|
|
427
416
|
};
|
|
428
417
|
}
|
|
429
|
-
// Get branch context
|
|
430
418
|
const branchContext = await ctx.getBranchContext(branchName);
|
|
431
419
|
if (!branchContext) {
|
|
432
420
|
return { ok: false, status: 404, error: 'Branch not found' };
|
|
@@ -438,7 +426,6 @@ export const deleteBranchHandler = async (ctx, req, params) => {
|
|
|
438
426
|
if (isProtected) {
|
|
439
427
|
return { ok: false, status: 400, error: 'Cannot delete the base branch' };
|
|
440
428
|
}
|
|
441
|
-
// Check permission
|
|
442
429
|
const canDelete = canDeleteBranch(req.user, branchContext);
|
|
443
430
|
if (!canDelete.allowed) {
|
|
444
431
|
return {
|
|
@@ -577,24 +564,19 @@ export const deleteBranchHandler = async (ctx, req, params) => {
|
|
|
577
564
|
data: { deleted: true, ...(cleanupWarning && { cleanupWarning }) },
|
|
578
565
|
};
|
|
579
566
|
};
|
|
580
|
-
/**
|
|
581
|
-
* Check if a user can modify branch access.
|
|
582
|
-
* Returns true if user is Admin or the branch creator.
|
|
583
|
-
*/
|
|
567
|
+
/** @internal Exported for tests. */
|
|
584
568
|
export const canModifyBranchAccess = (user, branchContext) => {
|
|
585
|
-
// Admins can modify any branch
|
|
586
569
|
if (isAdmin(user.groups)) {
|
|
587
570
|
return { allowed: true, reason: 'admin' };
|
|
588
571
|
}
|
|
589
|
-
// Branch creator can modify their own branch
|
|
590
572
|
if (branchContext.branch.createdBy === user.userId) {
|
|
591
573
|
return { allowed: true, reason: 'creator' };
|
|
592
574
|
}
|
|
593
575
|
return { allowed: false, reason: 'not_authorized' };
|
|
594
576
|
};
|
|
577
|
+
/** @internal Exported for tests. */
|
|
595
578
|
export const updateBranchAccessHandler = async (ctx, req, params, body) => {
|
|
596
579
|
const branchName = params.branch;
|
|
597
|
-
// Get branch context
|
|
598
580
|
const branchContext = await ctx.getBranchContext(branchName);
|
|
599
581
|
if (!branchContext) {
|
|
600
582
|
return { ok: false, status: 404, error: 'Branch not found' };
|
|
@@ -612,7 +594,6 @@ export const updateBranchAccessHandler = async (ctx, req, params, body) => {
|
|
|
612
594
|
error: 'The base branch does not take an access list. Create a branch to manage access.',
|
|
613
595
|
};
|
|
614
596
|
}
|
|
615
|
-
// Check permission
|
|
616
597
|
const canModify = canModifyBranchAccess(req.user, branchContext);
|
|
617
598
|
if (!canModify.allowed) {
|
|
618
599
|
return {
|
|
@@ -645,12 +626,8 @@ export const updateBranchAccessHandler = async (ctx, req, params, body) => {
|
|
|
645
626
|
});
|
|
646
627
|
return { ok: true, status: 200, data: { branch: updated.branch } };
|
|
647
628
|
};
|
|
648
|
-
// ============================================================================
|
|
649
|
-
// Route Definitions with defineEndpoint
|
|
650
|
-
// ============================================================================
|
|
651
629
|
/**
|
|
652
630
|
* List all branches visible to current user
|
|
653
|
-
* GET /branches
|
|
654
631
|
*/
|
|
655
632
|
const listBranches = defineEndpoint({
|
|
656
633
|
namespace: 'branches',
|
|
@@ -662,10 +639,6 @@ const listBranches = defineEndpoint({
|
|
|
662
639
|
defaultMockData: { branches: [] },
|
|
663
640
|
handler: listBranchesHandler,
|
|
664
641
|
});
|
|
665
|
-
/**
|
|
666
|
-
* Create a new branch
|
|
667
|
-
* POST /branches
|
|
668
|
-
*/
|
|
669
642
|
const createBranch = defineEndpoint({
|
|
670
643
|
namespace: 'branches',
|
|
671
644
|
name: 'create',
|
|
@@ -687,10 +660,6 @@ const createBranch = defineEndpoint({
|
|
|
687
660
|
},
|
|
688
661
|
handler: createBranchHandler,
|
|
689
662
|
});
|
|
690
|
-
/**
|
|
691
|
-
* Delete a branch
|
|
692
|
-
* DELETE /:branch
|
|
693
|
-
*/
|
|
694
663
|
const deleteBranch = defineEndpoint({
|
|
695
664
|
namespace: 'branches',
|
|
696
665
|
name: 'delete',
|
|
@@ -703,9 +672,6 @@ const deleteBranch = defineEndpoint({
|
|
|
703
672
|
handler: deleteBranchHandler,
|
|
704
673
|
});
|
|
705
674
|
/**
|
|
706
|
-
* Update branch access control
|
|
707
|
-
* PATCH /:branch/access
|
|
708
|
-
*
|
|
709
675
|
* No 'writableBranch' guard: this rewrites branch.json's ACL, not branch
|
|
710
676
|
* content, so a submitted branch's ACL stays editable during review. The base
|
|
711
677
|
* branch is a different matter and IS refused -- the handler rejects protected
|
|
@@ -735,9 +701,6 @@ const updateBranchAccess = defineEndpoint({
|
|
|
735
701
|
},
|
|
736
702
|
handler: updateBranchAccessHandler,
|
|
737
703
|
});
|
|
738
|
-
/**
|
|
739
|
-
* Exported routes for router registration
|
|
740
|
-
*/
|
|
741
704
|
export const BRANCH_ROUTES = {
|
|
742
705
|
list: listBranches,
|
|
743
706
|
create: createBranch,
|
package/dist/api/client.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Typed API client for CanopyCMS
|
|
2
|
+
* Typed API client for CanopyCMS: one method per endpoint, each returning that
|
|
3
|
+
* endpoint's ApiResponse.
|
|
3
4
|
*
|
|
4
|
-
* AUTO-GENERATED by scripts/generate-client.ts
|
|
5
|
-
*
|
|
5
|
+
* AUTO-GENERATED by scripts/generate-client.ts; do not edit this file manually
|
|
6
|
+
* (changes will be overwritten), edit the generator's templates instead.
|
|
6
7
|
*/
|
|
7
8
|
import type { BranchDeleteResponse, BranchListResponse, BranchResponse, CreateBranchBody, UpdateBranchAccessBody } from './branch.js';
|
|
8
9
|
import type { BranchMergeResponse } from './branch-status.js';
|
|
@@ -18,319 +19,165 @@ import type { UserInfoResponse } from './user.js';
|
|
|
18
19
|
import type { AddEntryTypeApiResponse, CreateCollectionApiResponse, DeleteCollectionApiResponse, GetCollectionApiResponse, GetSchemaApiResponse, InvalidateSchemaCacheApiResponse, RemoveEntryTypeApiResponse, UpdateCollectionApiResponse, UpdateEntryTypeApiResponse, UpdateOrderApiResponse, UpdateOrderBody } from './schema.js';
|
|
19
20
|
import type { CreateCollectionInput, CreateEntryTypeInput, UpdateCollectionInput, UpdateEntryTypeInput } from './../schema/schema-store-types.js';
|
|
20
21
|
import type { AdminDeleteTaskResponse, AdminRetryTaskResponse, AdminStatusResponse, AdminTasksResponse, BranchHealthResponse, PurgeBranchDirResponse, RepairBranchDirResponse, RepairContentDuplicatesResponse } from './admin.js';
|
|
21
|
-
/**
|
|
22
|
-
* Options for creating an ApiClient
|
|
23
|
-
*/
|
|
22
|
+
/** Options for {@link createApiClient}. */
|
|
24
23
|
export interface ApiClientOptions {
|
|
25
|
-
/**
|
|
26
|
-
* Base URL for API requests. Defaults to '/api/canopycms'
|
|
27
|
-
*/
|
|
24
|
+
/** Base URL for API requests. Defaults to '/api/canopycms'. */
|
|
28
25
|
baseUrl?: string;
|
|
26
|
+
/** Custom fetch implementation, e.g. a mock in tests. */
|
|
27
|
+
fetch?: typeof fetch;
|
|
29
28
|
/**
|
|
30
|
-
*
|
|
29
|
+
* Called whenever a response comes back 401: the credential is no longer accepted. A
|
|
30
|
+
* notification, not a retry; the editor's auth gate uses it to show sign-in.
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
onUnauthorized?: () => void;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* Provides type-safe methods for all API endpoints with centralized
|
|
38
|
-
* response unwrapping and error handling.
|
|
35
|
+
* Typed client for the CanopyCMS API: one method per endpoint, grouped by namespace, each
|
|
36
|
+
* returning that endpoint's ApiResponse.
|
|
39
37
|
*
|
|
40
|
-
* @example
|
|
38
|
+
* @example
|
|
41
39
|
* ```ts
|
|
42
|
-
* const
|
|
43
|
-
*
|
|
44
|
-
* if (branches.ok) {
|
|
45
|
-
* console.log(branches.data.branches)
|
|
46
|
-
* }
|
|
47
|
-
* ```
|
|
48
|
-
*
|
|
49
|
-
* @example Test usage
|
|
50
|
-
* ```ts
|
|
51
|
-
* const client = createApiClient({
|
|
52
|
-
* fetch: mockFetch
|
|
53
|
-
* })
|
|
40
|
+
* const branches = await createApiClient().branches.list()
|
|
41
|
+
* if (branches.ok) console.log(branches.data.branches)
|
|
54
42
|
* ```
|
|
55
43
|
*/
|
|
56
44
|
export declare class CanopyApiClient {
|
|
57
45
|
private baseUrl;
|
|
58
46
|
private fetchFn;
|
|
59
|
-
|
|
60
|
-
* branches - Auto-generated methods
|
|
61
|
-
*/
|
|
47
|
+
private onUnauthorized;
|
|
62
48
|
readonly branches: {
|
|
63
|
-
/**
|
|
64
|
-
* list - GET /branches
|
|
65
|
-
*/
|
|
49
|
+
/** GET /branches */
|
|
66
50
|
list: () => Promise<BranchListResponse>;
|
|
67
|
-
/**
|
|
68
|
-
* create - POST /branches
|
|
69
|
-
*/
|
|
51
|
+
/** POST /branches */
|
|
70
52
|
create: (body: CreateBranchBody) => Promise<BranchResponse>;
|
|
71
|
-
/**
|
|
72
|
-
* delete - DELETE /:branch
|
|
73
|
-
*/
|
|
53
|
+
/** DELETE /:branch */
|
|
74
54
|
delete: (params: Record<string, string>) => Promise<BranchDeleteResponse>;
|
|
75
|
-
/**
|
|
76
|
-
* updateAccess - PATCH /:branch/access
|
|
77
|
-
*/
|
|
55
|
+
/** PATCH /:branch/access */
|
|
78
56
|
updateAccess: (params: Record<string, string>, body: UpdateBranchAccessBody) => Promise<BranchResponse>;
|
|
79
57
|
};
|
|
80
|
-
/**
|
|
81
|
-
* workflow - Auto-generated methods
|
|
82
|
-
*/
|
|
83
58
|
readonly workflow: {
|
|
84
|
-
/**
|
|
85
|
-
* withdraw - POST /:branch/withdraw
|
|
86
|
-
*/
|
|
59
|
+
/** POST /:branch/withdraw */
|
|
87
60
|
withdraw: (params: Record<string, string>) => Promise<BranchResponse>;
|
|
88
|
-
/**
|
|
89
|
-
* requestChanges - POST /:branch/request-changes
|
|
90
|
-
*/
|
|
61
|
+
/** POST /:branch/request-changes */
|
|
91
62
|
requestChanges: (params: Record<string, string>) => Promise<BranchResponse>;
|
|
92
|
-
/**
|
|
93
|
-
* approve - POST /:branch/approve
|
|
94
|
-
*/
|
|
63
|
+
/** POST /:branch/approve */
|
|
95
64
|
approve: (params: Record<string, string>) => Promise<BranchResponse>;
|
|
96
|
-
/**
|
|
97
|
-
* markMerged - POST /:branch/mark-merged
|
|
98
|
-
*/
|
|
65
|
+
/** POST /:branch/mark-merged */
|
|
99
66
|
markMerged: (params: Record<string, string>) => Promise<BranchMergeResponse>;
|
|
100
|
-
/**
|
|
101
|
-
* getStatus - GET /:branch/status
|
|
102
|
-
*/
|
|
67
|
+
/** GET /:branch/status */
|
|
103
68
|
getStatus: (params: Record<string, string>) => Promise<BranchResponse>;
|
|
104
|
-
/**
|
|
105
|
-
* submit - POST /:branch/submit
|
|
106
|
-
*/
|
|
69
|
+
/** POST /:branch/submit */
|
|
107
70
|
submit: (params: Record<string, string>) => Promise<BranchResponse>;
|
|
108
71
|
};
|
|
109
|
-
/**
|
|
110
|
-
* comments - Auto-generated methods
|
|
111
|
-
*/
|
|
112
72
|
readonly comments: {
|
|
113
|
-
/**
|
|
114
|
-
* list - GET /:branch/comments
|
|
115
|
-
*/
|
|
73
|
+
/** GET /:branch/comments */
|
|
116
74
|
list: (params: Record<string, string>) => Promise<CommentsResponse>;
|
|
117
|
-
/**
|
|
118
|
-
* add - POST /:branch/comments
|
|
119
|
-
*/
|
|
75
|
+
/** POST /:branch/comments */
|
|
120
76
|
add: (params: Record<string, string>, body: AddCommentBody) => Promise<AddCommentResponse>;
|
|
121
|
-
/**
|
|
122
|
-
* resolve - POST /:branch/comments/:threadId/resolve
|
|
123
|
-
*/
|
|
77
|
+
/** POST /:branch/comments/:threadId/resolve */
|
|
124
78
|
resolve: (params: Record<string, string>) => Promise<ResolveCommentResponse>;
|
|
125
79
|
};
|
|
126
|
-
/**
|
|
127
|
-
* content - Auto-generated methods
|
|
128
|
-
*/
|
|
129
80
|
readonly content: {
|
|
130
|
-
/**
|
|
131
|
-
* read - GET /:branch/content/...path
|
|
132
|
-
*/
|
|
81
|
+
/** GET /:branch/content/...path */
|
|
133
82
|
read: (params: Record<string, string>) => Promise<ContentReadResponse>;
|
|
134
|
-
/**
|
|
135
|
-
* write - PUT /:branch/content/...path
|
|
136
|
-
*/
|
|
83
|
+
/** PUT /:branch/content/...path */
|
|
137
84
|
write: (params: Record<string, string>, body: WriteContentBody) => Promise<ContentWriteResponse>;
|
|
138
|
-
/**
|
|
139
|
-
* validateReferences - POST /:branch/validate-references/...path
|
|
140
|
-
*/
|
|
85
|
+
/** POST /:branch/validate-references/...path */
|
|
141
86
|
validateReferences: (params: Record<string, string>, body: ValidateReferencesBody) => Promise<ReferenceValidationResponse>;
|
|
142
|
-
/**
|
|
143
|
-
* renameEntry - PATCH /:branch/rename-entry/...path
|
|
144
|
-
*/
|
|
87
|
+
/** PATCH /:branch/rename-entry/...path */
|
|
145
88
|
renameEntry: (params: Record<string, string>, body: RenameEntryBody) => Promise<RenameEntryResponse>;
|
|
146
|
-
/**
|
|
147
|
-
* getReferenceOptions - GET /:branch/reference-options
|
|
148
|
-
*/
|
|
89
|
+
/** GET /:branch/reference-options */
|
|
149
90
|
getReferenceOptions: (params: Record<string, string>) => Promise<ReferenceOptionsResponse>;
|
|
150
|
-
/**
|
|
151
|
-
* resolveReferences - POST /:branch/resolve-references
|
|
152
|
-
*/
|
|
91
|
+
/** POST /:branch/resolve-references */
|
|
153
92
|
resolveReferences: (params: Record<string, string>, body: ResolveReferencesBody) => Promise<ResolveReferencesResponse>;
|
|
154
93
|
};
|
|
155
|
-
/**
|
|
156
|
-
* entries - Auto-generated methods
|
|
157
|
-
*/
|
|
158
94
|
readonly entries: {
|
|
159
|
-
/**
|
|
160
|
-
* list - GET /:branch/entries
|
|
161
|
-
*/
|
|
95
|
+
/** GET /:branch/entries */
|
|
162
96
|
list: (params: Record<string, string>) => Promise<EntriesResponse>;
|
|
163
|
-
/**
|
|
164
|
-
* delete - DELETE /:branch/entries/...entryPath
|
|
165
|
-
*/
|
|
97
|
+
/** DELETE /:branch/entries/...entryPath */
|
|
166
98
|
delete: (params: Record<string, string>) => Promise<DeleteEntryResponse>;
|
|
167
99
|
};
|
|
168
|
-
/**
|
|
169
|
-
* assets - Auto-generated methods
|
|
170
|
-
*/
|
|
171
100
|
readonly assets: {
|
|
172
|
-
/**
|
|
173
|
-
* presign - POST /assets/presign
|
|
174
|
-
*/
|
|
101
|
+
/** POST /assets/presign */
|
|
175
102
|
presign: (body: PresignAssetBody) => Promise<PresignAssetResponse>;
|
|
176
|
-
/**
|
|
177
|
-
* finalize - POST /assets/finalize
|
|
178
|
-
*/
|
|
103
|
+
/** POST /assets/finalize */
|
|
179
104
|
finalize: (body: FinalizeAssetBody) => Promise<FinalizeAssetResponse>;
|
|
180
|
-
/**
|
|
181
|
-
* uploadProxied - POST /assets/upload (multipart/form-data - hand-written;
|
|
182
|
-
* the generic template only knows JSON bodies, and this route accepts a file)
|
|
183
|
-
*/
|
|
105
|
+
/** POST /assets/upload: multipart upload, hand-written because the generic template only knows JSON bodies. */
|
|
184
106
|
uploadProxied: (file: File, options?: {
|
|
185
107
|
filename?: string;
|
|
186
108
|
}) => Promise<FinalizeAssetResponse>;
|
|
187
|
-
/**
|
|
188
|
-
* list - GET /assets
|
|
189
|
-
*/
|
|
109
|
+
/** GET /assets */
|
|
190
110
|
list: (params: Record<string, string>) => Promise<AssetsListResponse>;
|
|
191
|
-
/**
|
|
192
|
-
* delete - DELETE /assets
|
|
193
|
-
*/
|
|
111
|
+
/** DELETE /assets */
|
|
194
112
|
delete: (params: Record<string, string>) => Promise<AssetDeleteResponse>;
|
|
195
113
|
};
|
|
196
|
-
/**
|
|
197
|
-
* permissions - Auto-generated methods
|
|
198
|
-
*/
|
|
199
114
|
readonly permissions: {
|
|
200
|
-
/**
|
|
201
|
-
* get - GET /permissions
|
|
202
|
-
*/
|
|
115
|
+
/** GET /permissions */
|
|
203
116
|
get: () => Promise<PermissionsResponse>;
|
|
204
|
-
/**
|
|
205
|
-
* update - PUT /permissions
|
|
206
|
-
*/
|
|
117
|
+
/** PUT /permissions */
|
|
207
118
|
update: (body: UpdatePermissionsBody) => Promise<PermissionsResponse>;
|
|
208
|
-
/**
|
|
209
|
-
* searchUsers - GET /users/search
|
|
210
|
-
*/
|
|
119
|
+
/** GET /users/search */
|
|
211
120
|
searchUsers: (params: Record<string, string>) => Promise<SearchUsersResponse>;
|
|
212
|
-
/**
|
|
213
|
-
* listGroups - GET /groups
|
|
214
|
-
*/
|
|
121
|
+
/** GET /groups */
|
|
215
122
|
listGroups: () => Promise<ListGroupsResponse>;
|
|
216
|
-
/**
|
|
217
|
-
* getUserMetadata - GET /users/:userId
|
|
218
|
-
*/
|
|
123
|
+
/** GET /users/:userId */
|
|
219
124
|
getUserMetadata: (params: Record<string, string>) => Promise<GetUserMetadataResponse>;
|
|
220
125
|
};
|
|
221
|
-
/**
|
|
222
|
-
* groups - Auto-generated methods
|
|
223
|
-
*/
|
|
224
126
|
readonly groups: {
|
|
225
|
-
/**
|
|
226
|
-
* getInternal - GET /groups/internal
|
|
227
|
-
*/
|
|
127
|
+
/** GET /groups/internal */
|
|
228
128
|
getInternal: () => Promise<InternalGroupsResponse>;
|
|
229
|
-
/**
|
|
230
|
-
* updateInternal - PUT /groups/internal
|
|
231
|
-
*/
|
|
129
|
+
/** PUT /groups/internal */
|
|
232
130
|
updateInternal: (body: UpdateInternalGroupsBody) => Promise<UpdateInternalGroupsResponse>;
|
|
233
|
-
/**
|
|
234
|
-
* searchExternal - GET /groups/search
|
|
235
|
-
*/
|
|
131
|
+
/** GET /groups/search */
|
|
236
132
|
searchExternal: (params: Record<string, string>) => Promise<ExternalGroupsResponse>;
|
|
237
133
|
};
|
|
238
|
-
/**
|
|
239
|
-
* user - Auto-generated methods
|
|
240
|
-
*/
|
|
241
134
|
readonly user: {
|
|
242
|
-
/**
|
|
243
|
-
* whoami - GET /whoami
|
|
244
|
-
*/
|
|
135
|
+
/** GET /whoami */
|
|
245
136
|
whoami: () => Promise<UserInfoResponse>;
|
|
246
137
|
};
|
|
247
|
-
/**
|
|
248
|
-
* schema - Auto-generated methods
|
|
249
|
-
*/
|
|
250
138
|
readonly schema: {
|
|
251
|
-
/**
|
|
252
|
-
* get - GET /:branch/schema
|
|
253
|
-
*/
|
|
139
|
+
/** GET /:branch/schema */
|
|
254
140
|
get: (params: Record<string, string>) => Promise<GetSchemaApiResponse>;
|
|
255
|
-
/**
|
|
256
|
-
* getCollection - GET /:branch/schema/collection/...collectionPath
|
|
257
|
-
*/
|
|
141
|
+
/** GET /:branch/schema/collection/...collectionPath */
|
|
258
142
|
getCollection: (params: Record<string, string>) => Promise<GetCollectionApiResponse>;
|
|
259
|
-
/**
|
|
260
|
-
* createCollection - POST /:branch/schema/collections
|
|
261
|
-
*/
|
|
143
|
+
/** POST /:branch/schema/collections */
|
|
262
144
|
createCollection: (params: Record<string, string>, body: CreateCollectionInput) => Promise<CreateCollectionApiResponse>;
|
|
263
|
-
/**
|
|
264
|
-
* updateCollection - PATCH /:branch/schema/collection/...collectionPath
|
|
265
|
-
*/
|
|
145
|
+
/** PATCH /:branch/schema/collection/...collectionPath */
|
|
266
146
|
updateCollection: (params: Record<string, string>, body: UpdateCollectionInput) => Promise<UpdateCollectionApiResponse>;
|
|
267
|
-
/**
|
|
268
|
-
* deleteCollection - DELETE /:branch/schema/collection/...collectionPath
|
|
269
|
-
*/
|
|
147
|
+
/** DELETE /:branch/schema/collection/...collectionPath */
|
|
270
148
|
deleteCollection: (params: Record<string, string>) => Promise<DeleteCollectionApiResponse>;
|
|
271
|
-
/**
|
|
272
|
-
* addEntryType - POST /:branch/schema/entry-types/...collectionPath
|
|
273
|
-
*/
|
|
149
|
+
/** POST /:branch/schema/entry-types/...collectionPath */
|
|
274
150
|
addEntryType: (params: Record<string, string>, body: CreateEntryTypeInput) => Promise<AddEntryTypeApiResponse>;
|
|
275
|
-
/**
|
|
276
|
-
* updateEntryType - PATCH /:branch/schema/entry-types/:entryTypeName/...collectionPath
|
|
277
|
-
*/
|
|
151
|
+
/** PATCH /:branch/schema/entry-types/:entryTypeName/...collectionPath */
|
|
278
152
|
updateEntryType: (params: Record<string, string>, body: UpdateEntryTypeInput) => Promise<UpdateEntryTypeApiResponse>;
|
|
279
|
-
/**
|
|
280
|
-
* removeEntryType - DELETE /:branch/schema/entry-types/:entryTypeName/...collectionPath
|
|
281
|
-
*/
|
|
153
|
+
/** DELETE /:branch/schema/entry-types/:entryTypeName/...collectionPath */
|
|
282
154
|
removeEntryType: (params: Record<string, string>) => Promise<RemoveEntryTypeApiResponse>;
|
|
283
|
-
/**
|
|
284
|
-
* updateOrder - PATCH /:branch/schema/order/...collectionPath
|
|
285
|
-
*/
|
|
155
|
+
/** PATCH /:branch/schema/order/...collectionPath */
|
|
286
156
|
updateOrder: (params: Record<string, string>, body: UpdateOrderBody) => Promise<UpdateOrderApiResponse>;
|
|
287
|
-
/**
|
|
288
|
-
* invalidateSchemaCache - POST /:branch/schema/invalidate-cache
|
|
289
|
-
*/
|
|
157
|
+
/** POST /:branch/schema/invalidate-cache */
|
|
290
158
|
invalidateSchemaCache: (params: Record<string, string>) => Promise<InvalidateSchemaCacheApiResponse>;
|
|
291
159
|
};
|
|
292
|
-
/**
|
|
293
|
-
* admin - Auto-generated methods
|
|
294
|
-
*/
|
|
295
160
|
readonly admin: {
|
|
296
|
-
/**
|
|
297
|
-
* branchHealth - GET /admin/branch-health
|
|
298
|
-
*/
|
|
161
|
+
/** GET /admin/branch-health */
|
|
299
162
|
branchHealth: () => Promise<BranchHealthResponse>;
|
|
300
|
-
/**
|
|
301
|
-
* purgeBranchDir - POST /admin/branch-dirs/:dirName/purge
|
|
302
|
-
*/
|
|
163
|
+
/** POST /admin/branch-dirs/:dirName/purge */
|
|
303
164
|
purgeBranchDir: (params: Record<string, string>) => Promise<PurgeBranchDirResponse>;
|
|
304
|
-
/**
|
|
305
|
-
* repairBranchDir - POST /admin/branch-dirs/:dirName/repair-metadata
|
|
306
|
-
*/
|
|
165
|
+
/** POST /admin/branch-dirs/:dirName/repair-metadata */
|
|
307
166
|
repairBranchDir: (params: Record<string, string>) => Promise<RepairBranchDirResponse>;
|
|
308
|
-
/**
|
|
309
|
-
* repairContentDuplicates - POST /admin/branch-dirs/:dirName/repair-content-duplicates
|
|
310
|
-
*/
|
|
167
|
+
/** POST /admin/branch-dirs/:dirName/repair-content-duplicates */
|
|
311
168
|
repairContentDuplicates: (params: Record<string, string>) => Promise<RepairContentDuplicatesResponse>;
|
|
312
|
-
/**
|
|
313
|
-
* status - GET /admin/status
|
|
314
|
-
*/
|
|
169
|
+
/** GET /admin/status */
|
|
315
170
|
status: () => Promise<AdminStatusResponse>;
|
|
316
|
-
/**
|
|
317
|
-
* listTasks - GET /admin/tasks/:status
|
|
318
|
-
*/
|
|
171
|
+
/** GET /admin/tasks/:status */
|
|
319
172
|
listTasks: (params: Record<string, string>) => Promise<AdminTasksResponse>;
|
|
320
|
-
/**
|
|
321
|
-
* retryTask - POST /admin/tasks/:taskId/retry
|
|
322
|
-
*/
|
|
173
|
+
/** POST /admin/tasks/:taskId/retry */
|
|
323
174
|
retryTask: (params: Record<string, string>) => Promise<AdminRetryTaskResponse>;
|
|
324
|
-
/**
|
|
325
|
-
* deleteTask - DELETE /admin/tasks/:status/:fileName
|
|
326
|
-
*/
|
|
175
|
+
/** DELETE /admin/tasks/:status/:fileName */
|
|
327
176
|
deleteTask: (params: Record<string, string>) => Promise<AdminDeleteTaskResponse>;
|
|
328
177
|
};
|
|
329
178
|
constructor(options?: ApiClientOptions);
|
|
330
179
|
private buildPath;
|
|
331
180
|
private request;
|
|
332
181
|
}
|
|
333
|
-
/**
|
|
334
|
-
* Create a new API client instance
|
|
335
|
-
*/
|
|
182
|
+
/** Create a {@link CanopyApiClient}; pass a custom fetch for tests. */
|
|
336
183
|
export declare function createApiClient(options?: ApiClientOptions): CanopyApiClient;
|