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/entry-schema.js
CHANGED
|
@@ -5,12 +5,6 @@ import { DEFAULT_SEO_FIELD_NAMES } from './static/seo.js';
|
|
|
5
5
|
* The fields reference resolution adds to a target's own data, on top of whatever
|
|
6
6
|
* `resolvedSchema` declares.
|
|
7
7
|
*
|
|
8
|
-
* These have always been returned at runtime (`resolveSingleReferenceOnce` in
|
|
9
|
-
* content-store.ts) but were missing from the inferred type, so a resolved reference typed
|
|
10
|
-
* narrower than it actually is — which is why reading `ref.id` needed a cast, and one source
|
|
11
|
-
* of the library-internal type error `adopter-migration.md` records under
|
|
12
|
-
* `exactOptionalPropertyTypes` + `skipLibCheck: false`.
|
|
13
|
-
*
|
|
14
8
|
* `urlPath` is what makes a resolved reference linkable without a second lookup; it follows
|
|
15
9
|
* the same collection+slug rule `listEntries` publishes as `item.urlPath`, so an index entry
|
|
16
10
|
* collapses to its parent path.
|
|
@@ -21,24 +15,20 @@ export const RESOLVED_REFERENCE_KEYS = ['id', 'slug', 'collection', 'urlPath'];
|
|
|
21
15
|
* embed it, then the reserved metadata.
|
|
22
16
|
*
|
|
23
17
|
* Exists so the two places that construct one — the server resolver in content-store.ts and
|
|
24
|
-
* the editor's live-preview endpoint in api/resolve-references.ts — cannot drift.
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* re-save persist the wrong value and silently repoint the reference. Body before metadata
|
|
33
|
-
* closes the same hole for a body field named `id`; that schema is also rejected outright by
|
|
34
|
-
* the entry schema registry, so this ordering is the guarantee and that check is the loud
|
|
35
|
-
* error rather than a silent drop.
|
|
18
|
+
* the editor's live-preview endpoint in api/resolve-references.ts — cannot drift.
|
|
19
|
+
*
|
|
20
|
+
* The ordering is the contract, not a detail. Metadata LAST means a target that models `id` as
|
|
21
|
+
* a content field cannot shadow the real content ID, which the write boundary recovers from
|
|
22
|
+
* `value.id` (`referenceValueId`) — a shadowed id makes a re-save persist the wrong value and
|
|
23
|
+
* silently repoint the reference. Body before metadata closes the same hole for a body field
|
|
24
|
+
* named `id`; the entry schema registry also rejects that schema outright, so this ordering is
|
|
25
|
+
* the guarantee and that check is the loud error rather than a silent drop.
|
|
36
26
|
*/
|
|
37
27
|
export function buildResolvedReference(data, meta, body) {
|
|
38
28
|
const resolved = { ...data };
|
|
39
29
|
// Truthiness, matching `readEntryData`'s own merge: a listed md entry with an empty body
|
|
40
30
|
// carries no body key, so resolving one to `''` would reintroduce a listed-vs-resolved
|
|
41
|
-
// shape
|
|
31
|
+
// shape mismatch.
|
|
42
32
|
if (body && body.value)
|
|
43
33
|
resolved[body.fieldName] = body.value;
|
|
44
34
|
resolved.id = meta.id;
|
|
@@ -47,59 +37,44 @@ export function buildResolvedReference(data, meta, body) {
|
|
|
47
37
|
resolved.urlPath = meta.urlPath;
|
|
48
38
|
return resolved;
|
|
49
39
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Helper to define entry schema field arrays with literal inference without sprinkling `as const`.
|
|
52
|
-
*/
|
|
40
|
+
/** Define an entry schema's field array with literal inference, without sprinkling `as const`. */
|
|
53
41
|
export const defineEntrySchema = (fields) => fields;
|
|
54
42
|
/**
|
|
55
|
-
* Define a reusable inline field group — a visual container in the editor that groups
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* Use this when you want consistent visual organization across schemas without
|
|
60
|
-
* changing your content file structure.
|
|
61
|
-
*
|
|
62
|
-
* For data-nested grouping (fields stored under a named key), use defineNestedFieldGroup().
|
|
43
|
+
* Define a reusable inline field group — a visual container in the editor that groups related
|
|
44
|
+
* fields without creating a nested data key, so they are stored FLAT alongside the other fields.
|
|
45
|
+
* Use it for consistent visual organization across schemas without changing the content file
|
|
46
|
+
* structure; for data-nested grouping, use defineNestedFieldGroup().
|
|
63
47
|
*
|
|
64
48
|
* @example
|
|
65
49
|
* const seoGroup = defineInlineFieldGroup({
|
|
66
50
|
* name: 'seo',
|
|
67
51
|
* label: 'SEO',
|
|
68
|
-
* fields: [
|
|
69
|
-
* { name: 'metaTitle', type: 'string', label: 'Meta Title' },
|
|
70
|
-
* { name: 'metaDescription', type: 'string', label: 'Meta Description' },
|
|
71
|
-
* ],
|
|
52
|
+
* fields: [{ name: 'metaTitle', type: 'string', label: 'Meta Title' }],
|
|
72
53
|
* })
|
|
73
|
-
* // TypeFromEntrySchema: { ..., metaTitle: string
|
|
54
|
+
* // TypeFromEntrySchema: { ..., metaTitle: string }
|
|
74
55
|
*/
|
|
75
56
|
export const defineInlineFieldGroup = (group) => ({ ...group, type: 'group' });
|
|
76
57
|
/**
|
|
77
58
|
* The recommended SEO field group, ready to drop into any entry schema.
|
|
78
59
|
*
|
|
79
|
-
* Emits the seven fields `extractSeoFields()` reads by default (`metaTitle`,
|
|
80
|
-
* `
|
|
81
|
-
*
|
|
82
|
-
*
|
|
60
|
+
* Emits the seven fields `extractSeoFields()` reads by default (`metaTitle`, `metaDescription`,
|
|
61
|
+
* `ogImage`, `ogType`, `canonical`, `noindex`, `twitterCard`), so schema and read side agree with
|
|
62
|
+
* no configuration. Every field is `required: false`: SEO metadata is always optional, and an
|
|
63
|
+
* unset field must fall back rather than fail validation.
|
|
83
64
|
*
|
|
84
|
-
* **Flat by default
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* `extractSeoFields` / `entryToMetadata`.
|
|
65
|
+
* **Flat by default** — an inline group, stored at the top level of the content file with no data
|
|
66
|
+
* key of its own. `group: 'seo'` nests them under that key instead, and the same
|
|
67
|
+
* `{ group: 'seo' }` must then be passed to `extractSeoFields` / `entryToMetadata`.
|
|
88
68
|
*
|
|
89
69
|
* @example
|
|
90
70
|
* // Flat (recommended): frontmatter carries `metaTitle:` at the top level.
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* defineSeoFieldGroup(),
|
|
94
|
-
* ])
|
|
95
|
-
* // TypeFromEntrySchema: { title: string; metaTitle?: string; metaDescription?: string; ... }
|
|
71
|
+
* defineEntrySchema([{ name: 'title', type: 'string' }, defineSeoFieldGroup()])
|
|
72
|
+
* // TypeFromEntrySchema: { title: string; metaTitle?: string; ... }
|
|
96
73
|
*
|
|
97
74
|
* @example
|
|
98
|
-
* // Nested: frontmatter carries `seo: { metaTitle: … }
|
|
99
|
-
*
|
|
75
|
+
* // Nested: frontmatter carries `seo: { metaTitle: … }`, and the `seo` key is itself optional.
|
|
76
|
+
* defineEntrySchema([defineSeoFieldGroup({ group: 'seo' })])
|
|
100
77
|
* const metadata = entryToMetadata(data, { group: 'seo' })
|
|
101
|
-
* // TypeFromEntrySchema: { seo?: { metaTitle?: string; ... } } — the wrapper key itself is
|
|
102
|
-
* // optional too, so an entry that sets no SEO fields at all can omit `seo` entirely.
|
|
103
78
|
*/
|
|
104
79
|
const SEO_GROUP_FIELDS = [
|
|
105
80
|
{
|
|
@@ -165,34 +140,27 @@ export function defineSeoFieldGroup(opts = {}) {
|
|
|
165
140
|
: { ...base, name: 'seo', type: 'group' };
|
|
166
141
|
}
|
|
167
142
|
/**
|
|
168
|
-
* Define a reusable nested field group — a visual container in the editor
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* and you want that structure reflected in your content files.
|
|
173
|
-
*
|
|
174
|
-
* For visual-only grouping without data nesting, use defineInlineFieldGroup().
|
|
143
|
+
* Define a reusable nested field group — a visual container in the editor whose fields are
|
|
144
|
+
* stored under a named key in the content file (e.g. seo.metaTitle). Use it when the fields
|
|
145
|
+
* belong together as a sub-object and that structure should be reflected on disk; for
|
|
146
|
+
* visual-only grouping without data nesting, use defineInlineFieldGroup().
|
|
175
147
|
*
|
|
176
148
|
* @example
|
|
177
149
|
* const seoGroup = defineNestedFieldGroup({
|
|
178
150
|
* name: 'seo',
|
|
179
151
|
* label: 'SEO',
|
|
180
|
-
* fields: [
|
|
181
|
-
* { name: 'metaTitle', type: 'string', label: 'Meta Title' },
|
|
182
|
-
* { name: 'metaDescription', type: 'string', label: 'Meta Description' },
|
|
183
|
-
* ],
|
|
152
|
+
* fields: [{ name: 'metaTitle', type: 'string', label: 'Meta Title' }],
|
|
184
153
|
* })
|
|
185
|
-
* // TypeFromEntrySchema: { ..., seo: { metaTitle: string
|
|
154
|
+
* // TypeFromEntrySchema: { ..., seo: { metaTitle: string } }
|
|
186
155
|
*/
|
|
187
156
|
export const defineNestedFieldGroup = (group) => ({ ...group, type: 'object' });
|
|
188
157
|
/**
|
|
189
158
|
* Define a reusable block template once and embed it in multiple entry schemas' `block` fields.
|
|
190
159
|
*
|
|
191
|
-
* A `block` field holds an ordered, repeatable list of heterogeneous section blocks discriminated
|
|
192
|
-
* a `template` key (the "flexible content" / "page blocks" pattern).
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* still deriving the correct discriminated-union type via TypeFromEntrySchema.
|
|
160
|
+
* A `block` field holds an ordered, repeatable list of heterogeneous section blocks discriminated
|
|
161
|
+
* by a `template` key (the "flexible content" / "page blocks" pattern). This const-inference
|
|
162
|
+
* identity helper (like defineEntrySchema) keeps a template's field definitions in one place
|
|
163
|
+
* across schemas while TypeFromEntrySchema still derives the discriminated union.
|
|
196
164
|
*
|
|
197
165
|
* @example
|
|
198
166
|
* const heroBlock = defineBlockTemplate({
|
|
@@ -207,10 +175,7 @@ export const defineNestedFieldGroup = (group) => ({ ...group, type: 'object' });
|
|
|
207
175
|
* name: 'cta',
|
|
208
176
|
* fields: [{ name: 'label', type: 'string' }, { name: 'href', type: 'string' }],
|
|
209
177
|
* })
|
|
210
|
-
*
|
|
211
|
-
* // Reuse the same templates across multiple page schemas:
|
|
212
178
|
* const pageSchema = defineEntrySchema([
|
|
213
|
-
* { name: 'title', type: 'string' },
|
|
214
179
|
* { name: 'sections', type: 'block', templates: [heroBlock, ctaBlock] },
|
|
215
180
|
* ])
|
|
216
181
|
* // TypeFromEntrySchema<typeof pageSchema>['sections'] narrows to:
|
|
@@ -219,32 +184,22 @@ export const defineNestedFieldGroup = (group) => ({ ...group, type: 'object' });
|
|
|
219
184
|
*/
|
|
220
185
|
export const defineBlockTemplate = (template) => template;
|
|
221
186
|
/**
|
|
222
|
-
* Const-inference identity helper for a reusable field fragment — a plain array of field
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
* makes the pattern easy to find (and to grep for) alongside `defineInlineFieldGroup` and
|
|
187
|
+
* Const-inference identity helper for a reusable field fragment — a plain array of field configs
|
|
188
|
+
* (not a group, not a template) spread into several schemas' `fields`. Purely for
|
|
189
|
+
* discoverability: `defineEntrySchema` and `defineBlockTemplate` already infer literal types from
|
|
190
|
+
* a `const fields = [...] as const` array, so spreading works without this helper; wrapping the
|
|
191
|
+
* definition site just makes the pattern easy to find alongside `defineInlineFieldGroup` and
|
|
228
192
|
* `defineNestedFieldGroup`.
|
|
229
193
|
*
|
|
230
|
-
* Use
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
* overrides just the field(s) that differ for that schema.
|
|
194
|
+
* Use it over a field group when the fields should not be visually boxed together in the editor,
|
|
195
|
+
* or when schemas need to override one field (a different `label` or `required`) — spread the
|
|
196
|
+
* fragment, then follow it with an object overriding just the fields that differ.
|
|
234
197
|
*
|
|
235
198
|
* @example
|
|
236
199
|
* const ctaFields = defineFieldFragment([
|
|
237
200
|
* { name: 'ctaLabel', type: 'string', label: 'Button Label' },
|
|
238
201
|
* { name: 'ctaHref', type: 'string', label: 'Button Link' },
|
|
239
202
|
* ])
|
|
240
|
-
*
|
|
241
|
-
* const heroSchema = defineEntrySchema([
|
|
242
|
-
* { name: 'headline', type: 'string' },
|
|
243
|
-
* ...ctaFields,
|
|
244
|
-
* ])
|
|
245
|
-
* const bannerSchema = defineEntrySchema([
|
|
246
|
-
* { name: 'message', type: 'string' },
|
|
247
|
-
* ...ctaFields,
|
|
248
|
-
* ])
|
|
203
|
+
* const heroSchema = defineEntrySchema([{ name: 'headline', type: 'string' }, ...ctaFields])
|
|
249
204
|
*/
|
|
250
205
|
export const defineFieldFragment = (fields) => fields;
|