canopycms 0.0.62 → 0.0.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -19
- package/dist/ai/generate.d.ts +4 -5
- package/dist/ai/generate.js +0 -1
- package/dist/ai/handler.d.ts +3 -4
- package/dist/ai/handler.js +0 -1
- package/dist/ai/index.d.ts +15 -7
- package/dist/ai/index.js +9 -1
- package/dist/ai/json-to-markdown.d.ts +1 -2
- package/dist/ai/json-to-markdown.js +11 -2
- package/dist/ai/resolve-branch.d.ts +1 -2
- package/dist/ai/resolve-branch.js +0 -1
- package/dist/ai/strip-mdx.d.ts +0 -1
- package/dist/ai/strip-mdx.js +0 -1
- package/dist/ai/to-plain-text.d.ts +60 -0
- package/dist/ai/to-plain-text.js +301 -0
- package/dist/ai/transform-components.d.ts +1 -2
- package/dist/ai/transform-components.js +70 -6
- package/dist/ai/types.d.ts +1 -2
- package/dist/ai/types.js +0 -1
- package/dist/api/admin-branch-health.d.ts +7 -8
- package/dist/api/admin-branch-health.js +0 -1
- package/dist/api/admin.d.ts +16 -17
- package/dist/api/admin.js +0 -1
- package/dist/api/assets.d.ts +8 -9
- package/dist/api/assets.js +0 -1
- package/dist/api/branch-merge.d.ts +3 -4
- package/dist/api/branch-merge.js +0 -1
- package/dist/api/branch-review.d.ts +5 -6
- package/dist/api/branch-review.js +0 -1
- package/dist/api/branch-status.d.ts +15 -16
- package/dist/api/branch-status.js +0 -1
- package/dist/api/branch-withdraw.d.ts +3 -4
- package/dist/api/branch-withdraw.js +0 -1
- package/dist/api/branch.d.ts +13 -14
- package/dist/api/branch.js +0 -1
- package/dist/api/client.d.ts +14 -15
- package/dist/api/client.js +0 -1
- package/dist/api/comments.d.ts +11 -12
- package/dist/api/comments.js +0 -1
- package/dist/api/content.d.ts +22 -24
- package/dist/api/content.js +132 -18
- package/dist/api/entries-constants.d.ts +0 -1
- package/dist/api/entries-constants.js +0 -1
- package/dist/api/entries.d.ts +12 -13
- package/dist/api/entries.js +12 -2
- package/dist/api/github-sync.d.ts +2 -3
- package/dist/api/github-sync.js +0 -1
- package/dist/api/groups.d.ts +6 -7
- package/dist/api/groups.js +0 -1
- package/dist/api/guards.d.ts +2 -3
- package/dist/api/guards.js +0 -1
- package/dist/api/index.d.ts +18 -19
- package/dist/api/index.js +0 -1
- package/dist/api/permissions.d.ts +10 -11
- package/dist/api/permissions.js +0 -1
- package/dist/api/reference-options.d.ts +3 -4
- package/dist/api/reference-options.js +0 -1
- package/dist/api/request-body-hash.d.ts +0 -1
- package/dist/api/request-body-hash.js +0 -1
- package/dist/api/resolve-references.d.ts +6 -7
- package/dist/api/resolve-references.js +24 -6
- package/dist/api/route-builder.d.ts +2 -3
- package/dist/api/route-builder.js +0 -1
- package/dist/api/schema.d.ts +43 -44
- package/dist/api/schema.js +0 -1
- package/dist/api/settings-helpers.d.ts +2 -3
- package/dist/api/settings-helpers.js +0 -1
- package/dist/api/types.d.ts +6 -7
- package/dist/api/types.js +0 -1
- package/dist/api/user.d.ts +2 -3
- package/dist/api/user.js +0 -1
- package/dist/api/validators.d.ts +3 -4
- package/dist/api/validators.js +0 -1
- package/dist/assets/asset-prefixes.d.ts +1 -2
- package/dist/assets/asset-prefixes.js +0 -1
- package/dist/assets/asset-src.d.ts +17 -5
- package/dist/assets/asset-src.js +15 -3
- package/dist/assets/asset-url.d.ts +28 -7
- package/dist/assets/asset-url.js +20 -15
- package/dist/assets/factory.d.ts +2 -3
- package/dist/assets/factory.js +0 -2
- package/dist/assets/finalize.d.ts +2 -3
- package/dist/assets/finalize.js +0 -1
- package/dist/assets/index.d.ts +12 -13
- package/dist/assets/index.js +0 -1
- package/dist/assets/keys.d.ts +1 -2
- package/dist/assets/keys.js +0 -1
- package/dist/assets/pipeline.d.ts +1 -2
- package/dist/assets/pipeline.js +0 -1
- package/dist/assets/store-local.d.ts +1 -2
- package/dist/assets/store-local.js +0 -1
- package/dist/assets/store-s3.d.ts +2 -4
- package/dist/assets/store-s3.js +0 -1
- package/dist/assets/svg-sanitizer.d.ts +0 -1
- package/dist/assets/svg-sanitizer.js +0 -1
- package/dist/assets/transform-directives.d.ts +0 -1
- package/dist/assets/transform-directives.js +0 -1
- package/dist/assets/transform.d.ts +1 -2
- package/dist/assets/transform.js +0 -1
- package/dist/assets/types.d.ts +0 -1
- package/dist/assets/types.js +0 -1
- package/dist/auth/cache.d.ts +2 -3
- package/dist/auth/cache.js +0 -1
- package/dist/auth/caching-auth-plugin.d.ts +3 -4
- package/dist/auth/caching-auth-plugin.js +0 -1
- package/dist/auth/context-helpers.d.ts +1 -2
- package/dist/auth/context-helpers.js +0 -1
- package/dist/auth/file-based-auth-cache.d.ts +3 -4
- package/dist/auth/file-based-auth-cache.js +0 -1
- package/dist/auth/index.d.ts +6 -7
- package/dist/auth/index.js +0 -1
- package/dist/auth/plugin.d.ts +3 -4
- package/dist/auth/plugin.js +0 -1
- package/dist/auth/types.d.ts +1 -2
- package/dist/auth/types.js +0 -1
- package/dist/authorization/branch.d.ts +58 -7
- package/dist/authorization/branch.js +55 -10
- package/dist/authorization/content.d.ts +6 -7
- package/dist/authorization/content.js +0 -1
- package/dist/authorization/groups/index.d.ts +2 -3
- package/dist/authorization/groups/index.js +0 -1
- package/dist/authorization/groups/loader.d.ts +3 -4
- package/dist/authorization/groups/loader.js +0 -1
- package/dist/authorization/groups/schema.d.ts +1 -2
- package/dist/authorization/groups/schema.js +0 -1
- package/dist/authorization/helpers.d.ts +0 -1
- package/dist/authorization/helpers.js +0 -1
- package/dist/authorization/index.d.ts +11 -12
- package/dist/authorization/index.js +0 -1
- package/dist/authorization/path.d.ts +4 -5
- package/dist/authorization/path.js +0 -1
- package/dist/authorization/permissions/index.d.ts +2 -3
- package/dist/authorization/permissions/index.js +0 -1
- package/dist/authorization/permissions/loader.d.ts +4 -5
- package/dist/authorization/permissions/loader.js +0 -1
- package/dist/authorization/permissions/schema.d.ts +2 -3
- package/dist/authorization/permissions/schema.js +0 -1
- package/dist/authorization/protected-branch.d.ts +2 -3
- package/dist/authorization/protected-branch.js +0 -1
- package/dist/authorization/settings-file-store.d.ts +1 -2
- package/dist/authorization/settings-file-store.js +0 -1
- package/dist/authorization/types.d.ts +7 -8
- package/dist/authorization/types.js +0 -1
- package/dist/authorization/validation.d.ts +1 -2
- package/dist/authorization/validation.js +0 -1
- package/dist/branch-health.d.ts +2 -3
- package/dist/branch-health.js +0 -1
- package/dist/branch-metadata.d.ts +2 -3
- package/dist/branch-metadata.js +0 -1
- package/dist/branch-registry.d.ts +1 -2
- package/dist/branch-registry.js +0 -1
- package/dist/branch-schema-cache.d.ts +4 -5
- package/dist/branch-schema-cache.js +0 -1
- package/dist/branch-workspace.d.ts +4 -5
- package/dist/branch-workspace.js +0 -1
- package/dist/build/generate-ai-content.d.ts +21 -5
- package/dist/build/generate-ai-content.js +98 -6
- package/dist/build/index.d.ts +2 -3
- package/dist/build/index.js +0 -1
- package/dist/build-canopy.d.ts +48 -0
- package/dist/build-canopy.js +50 -0
- package/dist/build-mode.d.ts +1 -2
- package/dist/build-mode.js +0 -1
- package/dist/cli/cli.d.ts +1 -2
- package/dist/cli/cli.js +1192 -495
- package/dist/cli/generate-ai-content.d.ts +0 -1
- package/dist/cli/generate-ai-content.js +1062 -370
- package/dist/cli/init.d.ts +1 -2
- package/dist/cli/init.js +12 -2
- package/dist/cli/migrate.d.ts +5 -3
- package/dist/cli/migrate.js +5 -3
- package/dist/cli/project-detect.d.ts +5 -2
- package/dist/cli/project-detect.js +5 -1
- package/dist/cli/project-root.d.ts +0 -1
- package/dist/cli/project-root.js +0 -1
- package/dist/cli/sync.d.ts +0 -1
- package/dist/cli/sync.js +0 -1
- package/dist/cli/template-files/canopycms.config.ts.template +18 -1
- package/dist/cli/template-files/deploy-cms.yml.template +8 -6
- package/dist/cli/templates.d.ts +0 -1
- package/dist/cli/templates.js +0 -1
- package/dist/client.d.ts +13 -14
- package/dist/client.js +0 -1
- package/dist/comment-store.d.ts +0 -1
- package/dist/comment-store.js +0 -1
- package/dist/config/flatten.d.ts +1 -2
- package/dist/config/flatten.js +0 -1
- package/dist/config/helpers.d.ts +3 -4
- package/dist/config/helpers.js +2 -2
- package/dist/config/index.d.ts +10 -11
- package/dist/config/index.js +0 -1
- package/dist/config/schemas/collection.d.ts +0 -1
- package/dist/config/schemas/collection.js +0 -1
- package/dist/config/schemas/config.d.ts +7 -4
- package/dist/config/schemas/config.js +12 -1
- package/dist/config/schemas/field.d.ts +3 -1
- package/dist/config/schemas/field.js +5 -1
- package/dist/config/schemas/media.d.ts +0 -1
- package/dist/config/schemas/media.js +0 -1
- package/dist/config/schemas/permissions.d.ts +0 -1
- package/dist/config/schemas/permissions.js +0 -1
- package/dist/config/types.d.ts +55 -9
- package/dist/config/types.js +0 -1
- package/dist/config/validation.d.ts +1 -2
- package/dist/config/validation.js +0 -1
- package/dist/config.d.ts +2 -3
- package/dist/config.js +0 -1
- package/dist/content-id-index.d.ts +1 -2
- package/dist/content-id-index.js +0 -1
- package/dist/content-index-generation.d.ts +0 -1
- package/dist/content-index-generation.js +0 -1
- package/dist/content-index-registry.d.ts +0 -1
- package/dist/content-index-registry.js +0 -1
- package/dist/content-listing.d.ts +137 -16
- package/dist/content-listing.js +175 -41
- package/dist/content-reader.d.ts +44 -8
- package/dist/content-reader.js +39 -7
- package/dist/content-store.d.ts +147 -7
- package/dist/content-store.js +294 -22
- package/dist/content-tree.d.ts +44 -5
- package/dist/content-tree.js +47 -11
- package/dist/context.d.ts +38 -15
- package/dist/context.js +55 -5
- package/dist/dev-content-watcher.d.ts +2 -3
- package/dist/dev-content-watcher.js +0 -1
- package/dist/editor/BranchManager.d.ts +4 -5
- package/dist/editor/BranchManager.js +0 -1
- package/dist/editor/CanopyEditor.d.ts +2 -3
- package/dist/editor/CanopyEditor.js +1 -2
- package/dist/editor/CanopyEditorPage.d.ts +2 -3
- package/dist/editor/CanopyEditorPage.js +0 -1
- package/dist/editor/CommentsPanel.d.ts +2 -3
- package/dist/editor/CommentsPanel.js +0 -1
- package/dist/editor/Editor.d.ts +13 -8
- package/dist/editor/Editor.js +4 -5
- package/dist/editor/EditorPanes.d.ts +0 -1
- package/dist/editor/EditorPanes.js +0 -1
- package/dist/editor/EntryNavigator.d.ts +1 -2
- package/dist/editor/EntryNavigator.js +0 -1
- package/dist/editor/FormRenderer.d.ts +2 -3
- package/dist/editor/FormRenderer.js +22 -3
- package/dist/editor/GroupManager.d.ts +2 -3
- package/dist/editor/GroupManager.js +0 -1
- package/dist/editor/PermissionManager.d.ts +2 -3
- package/dist/editor/PermissionManager.js +0 -1
- package/dist/editor/admin/SystemHealthPanel.d.ts +0 -1
- package/dist/editor/admin/SystemHealthPanel.js +0 -1
- package/dist/editor/admin/useSystemHealth.d.ts +2 -3
- package/dist/editor/admin/useSystemHealth.js +0 -1
- package/dist/editor/canopy-path.d.ts +0 -1
- package/dist/editor/canopy-path.js +0 -1
- package/dist/editor/client-reference-resolver.d.ts +13 -4
- package/dist/editor/client-reference-resolver.js +18 -8
- package/dist/editor/comments/BranchComments.d.ts +2 -3
- package/dist/editor/comments/BranchComments.js +0 -1
- package/dist/editor/comments/EntryComments.d.ts +1 -2
- package/dist/editor/comments/EntryComments.js +0 -1
- package/dist/editor/comments/FieldWrapper.d.ts +1 -2
- package/dist/editor/comments/FieldWrapper.js +0 -1
- package/dist/editor/comments/InlineCommentThread.d.ts +2 -3
- package/dist/editor/comments/InlineCommentThread.js +0 -1
- package/dist/editor/comments/ThreadCarousel.d.ts +2 -3
- package/dist/editor/comments/ThreadCarousel.js +0 -1
- package/dist/editor/components/ConfirmDeleteModal.d.ts +0 -1
- package/dist/editor/components/ConfirmDeleteModal.js +0 -1
- package/dist/editor/components/EditorFooter.d.ts +0 -1
- package/dist/editor/components/EditorFooter.js +0 -1
- package/dist/editor/components/EditorHeader.d.ts +4 -5
- package/dist/editor/components/EditorHeader.js +0 -1
- package/dist/editor/components/EditorSidebar.d.ts +1 -2
- package/dist/editor/components/EditorSidebar.js +0 -1
- package/dist/editor/components/EntryCreateModal.d.ts +0 -1
- package/dist/editor/components/EntryCreateModal.js +21 -10
- package/dist/editor/components/RenameEntryModal.d.ts +0 -1
- package/dist/editor/components/RenameEntryModal.js +0 -1
- package/dist/editor/components/UserBadge.d.ts +2 -3
- package/dist/editor/components/UserBadge.js +0 -1
- package/dist/editor/components/index.d.ts +3 -4
- package/dist/editor/components/index.js +0 -1
- package/dist/editor/context/ApiClientContext.d.ts +9 -3
- package/dist/editor/context/ApiClientContext.js +8 -4
- package/dist/editor/context/AssetContext.d.ts +26 -2
- package/dist/editor/context/AssetContext.js +23 -3
- package/dist/editor/context/EditorStateContext.d.ts +1 -2
- package/dist/editor/context/EditorStateContext.js +0 -1
- package/dist/editor/context/SWRProvider.d.ts +0 -1
- package/dist/editor/context/SWRProvider.js +0 -1
- package/dist/editor/context/index.d.ts +4 -5
- package/dist/editor/context/index.js +0 -1
- package/dist/editor/editor-config.d.ts +2 -3
- package/dist/editor/editor-config.js +0 -1
- package/dist/editor/editor-utils.d.ts +22 -10
- package/dist/editor/editor-utils.js +41 -10
- package/dist/editor/fields/BlockField.d.ts +1 -2
- package/dist/editor/fields/BlockField.js +0 -1
- package/dist/editor/fields/CodeField.d.ts +0 -1
- package/dist/editor/fields/CodeField.js +0 -1
- package/dist/editor/fields/DateTimeField.d.ts +0 -1
- package/dist/editor/fields/DateTimeField.js +0 -1
- package/dist/editor/fields/ImageField.d.ts +1 -2
- package/dist/editor/fields/ImageField.js +0 -1
- package/dist/editor/fields/InlineGroupField.d.ts +2 -3
- package/dist/editor/fields/InlineGroupField.js +0 -1
- package/dist/editor/fields/MarkdownField.d.ts +0 -1
- package/dist/editor/fields/MarkdownField.js +0 -1
- package/dist/editor/fields/MdxImageDialog.d.ts +0 -1
- package/dist/editor/fields/MdxImageDialog.js +0 -1
- package/dist/editor/fields/NumberField.d.ts +0 -1
- package/dist/editor/fields/NumberField.js +0 -1
- package/dist/editor/fields/NumberListField.d.ts +0 -1
- package/dist/editor/fields/NumberListField.js +0 -1
- package/dist/editor/fields/ObjectField.d.ts +11 -2
- package/dist/editor/fields/ObjectField.js +3 -4
- package/dist/editor/fields/ReferenceField.d.ts +0 -1
- package/dist/editor/fields/ReferenceField.js +8 -3
- package/dist/editor/fields/SelectField.d.ts +0 -1
- package/dist/editor/fields/SelectField.js +0 -1
- package/dist/editor/fields/StringListField.d.ts +0 -1
- package/dist/editor/fields/StringListField.js +0 -1
- package/dist/editor/fields/TextField.d.ts +0 -1
- package/dist/editor/fields/TextField.js +0 -1
- package/dist/editor/fields/ToggleField.d.ts +0 -1
- package/dist/editor/fields/ToggleField.js +0 -1
- package/dist/editor/fields/entry-link/EntryLinkContext.d.ts +1 -2
- package/dist/editor/fields/entry-link/EntryLinkContext.js +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.d.ts +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.js +0 -1
- package/dist/editor/fields/entry-link/index.d.ts +2 -3
- package/dist/editor/fields/entry-link/index.js +0 -1
- package/dist/editor/group-manager/ExternalGroupsTab.d.ts +1 -2
- package/dist/editor/group-manager/ExternalGroupsTab.js +0 -1
- package/dist/editor/group-manager/GroupCard.d.ts +1 -2
- package/dist/editor/group-manager/GroupCard.js +0 -1
- package/dist/editor/group-manager/GroupForm.d.ts +1 -2
- package/dist/editor/group-manager/GroupForm.js +0 -1
- package/dist/editor/group-manager/InternalGroupsTab.d.ts +1 -2
- package/dist/editor/group-manager/InternalGroupsTab.js +0 -1
- package/dist/editor/group-manager/MemberList.d.ts +1 -2
- package/dist/editor/group-manager/MemberList.js +0 -1
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts +1 -2
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.js +0 -1
- package/dist/editor/group-manager/hooks/useGroupState.d.ts +1 -2
- package/dist/editor/group-manager/hooks/useGroupState.js +0 -1
- package/dist/editor/group-manager/hooks/useUserSearch.d.ts +1 -2
- package/dist/editor/group-manager/hooks/useUserSearch.js +0 -1
- package/dist/editor/group-manager/index.d.ts +5 -6
- package/dist/editor/group-manager/index.js +0 -1
- package/dist/editor/group-manager/types.d.ts +4 -5
- package/dist/editor/group-manager/types.js +0 -1
- package/dist/editor/hooks/index.d.ts +14 -15
- package/dist/editor/hooks/index.js +0 -1
- package/dist/editor/hooks/useBranchActions.d.ts +0 -1
- package/dist/editor/hooks/useBranchActions.js +0 -1
- package/dist/editor/hooks/useBranchManager.d.ts +4 -5
- package/dist/editor/hooks/useBranchManager.js +0 -1
- package/dist/editor/hooks/useBranchesData.d.ts +2 -3
- package/dist/editor/hooks/useBranchesData.js +0 -1
- package/dist/editor/hooks/useCommentSystem.d.ts +2 -3
- package/dist/editor/hooks/useCommentSystem.js +0 -1
- package/dist/editor/hooks/useCommentsData.d.ts +2 -3
- package/dist/editor/hooks/useCommentsData.js +0 -1
- package/dist/editor/hooks/useDraftManager.d.ts +3 -4
- package/dist/editor/hooks/useDraftManager.js +0 -1
- package/dist/editor/hooks/useEditorLayout.d.ts +1 -2
- package/dist/editor/hooks/useEditorLayout.js +0 -1
- package/dist/editor/hooks/useEntriesData.d.ts +3 -5
- package/dist/editor/hooks/useEntriesData.js +0 -3
- package/dist/editor/hooks/useEntryLinkResolution.d.ts +2 -3
- package/dist/editor/hooks/useEntryLinkResolution.js +0 -1
- package/dist/editor/hooks/useEntryManager.d.ts +5 -7
- package/dist/editor/hooks/useEntryManager.js +8 -3
- package/dist/editor/hooks/useGroupManager.d.ts +2 -3
- package/dist/editor/hooks/useGroupManager.js +0 -1
- package/dist/editor/hooks/usePermissionManager.d.ts +2 -3
- package/dist/editor/hooks/usePermissionManager.js +0 -1
- package/dist/editor/hooks/useReferenceResolution.d.ts +1 -2
- package/dist/editor/hooks/useReferenceResolution.js +8 -3
- package/dist/editor/hooks/useSchemaManager.d.ts +2 -3
- package/dist/editor/hooks/useSchemaManager.js +0 -1
- package/dist/editor/hooks/useUserContext.d.ts +1 -2
- package/dist/editor/hooks/useUserContext.js +8 -3
- package/dist/editor/hooks/useUserMetadata.d.ts +2 -3
- package/dist/editor/hooks/useUserMetadata.js +0 -1
- package/dist/editor/media/AssetCard.d.ts +1 -2
- package/dist/editor/media/AssetCard.js +0 -1
- package/dist/editor/media/CropStep.d.ts +1 -2
- package/dist/editor/media/CropStep.js +0 -1
- package/dist/editor/media/MediaLibrary.d.ts +1 -2
- package/dist/editor/media/MediaLibrary.js +0 -1
- package/dist/editor/media/MediaLibraryBody.d.ts +1 -2
- package/dist/editor/media/MediaLibraryBody.js +0 -1
- package/dist/editor/media/crop-math.d.ts +1 -2
- package/dist/editor/media/crop-math.js +0 -1
- package/dist/editor/media/upload-asset.d.ts +2 -3
- package/dist/editor/media/upload-asset.js +0 -1
- package/dist/editor/media/upload-constants.d.ts +0 -1
- package/dist/editor/media/upload-constants.js +0 -1
- package/dist/editor/media/useAssetUpload.d.ts +1 -2
- package/dist/editor/media/useAssetUpload.js +0 -1
- package/dist/editor/media/xhr-upload.d.ts +0 -1
- package/dist/editor/media/xhr-upload.js +0 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts +1 -2
- package/dist/editor/permission-manager/GroupSelector.js +0 -1
- package/dist/editor/permission-manager/PermissionEditor.d.ts +1 -2
- package/dist/editor/permission-manager/PermissionEditor.js +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.d.ts +1 -2
- package/dist/editor/permission-manager/PermissionLevelBadge.js +0 -1
- package/dist/editor/permission-manager/PermissionTree.d.ts +1 -2
- package/dist/editor/permission-manager/PermissionTree.js +0 -1
- package/dist/editor/permission-manager/UserSelector.d.ts +1 -2
- package/dist/editor/permission-manager/UserSelector.js +0 -1
- package/dist/editor/permission-manager/constants.d.ts +1 -2
- package/dist/editor/permission-manager/constants.js +0 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +1 -2
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +0 -1
- package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts +2 -3
- package/dist/editor/permission-manager/hooks/usePermissionTree.js +0 -1
- package/dist/editor/permission-manager/index.d.ts +4 -5
- package/dist/editor/permission-manager/index.js +0 -1
- package/dist/editor/permission-manager/types.d.ts +3 -4
- package/dist/editor/permission-manager/types.js +0 -1
- package/dist/editor/permission-manager/utils.d.ts +2 -3
- package/dist/editor/permission-manager/utils.js +0 -1
- package/dist/editor/preview-bridge.d.ts +1 -2
- package/dist/editor/preview-bridge.js +0 -1
- package/dist/editor/relative-time.d.ts +0 -1
- package/dist/editor/relative-time.js +0 -1
- package/dist/editor/schema-editor/CollectionEditor.d.ts +4 -5
- package/dist/editor/schema-editor/CollectionEditor.js +0 -1
- package/dist/editor/schema-editor/EntryTypeEditor.d.ts +2 -3
- package/dist/editor/schema-editor/EntryTypeEditor.js +0 -1
- package/dist/editor/schema-editor/index.d.ts +2 -3
- package/dist/editor/schema-editor/index.js +0 -1
- package/dist/editor/theme.d.ts +0 -1
- package/dist/editor/theme.js +0 -1
- package/dist/editor/utils/env.d.ts +0 -1
- package/dist/editor/utils/env.js +0 -1
- package/dist/entry-link-resolver.d.ts +1 -2
- package/dist/entry-link-resolver.js +0 -1
- package/dist/entry-schema-registry.d.ts +3 -4
- package/dist/entry-schema-registry.js +6 -2
- package/dist/entry-schema.d.ts +342 -11
- package/dist/entry-schema.js +170 -1
- package/dist/git-manager.d.ts +1 -2
- package/dist/git-manager.js +0 -1
- package/dist/github-service.d.ts +1 -2
- package/dist/github-service.js +0 -1
- package/dist/http/handler.d.ts +6 -7
- package/dist/http/handler.js +0 -1
- package/dist/http/index.d.ts +6 -7
- package/dist/http/index.js +0 -1
- package/dist/http/router.d.ts +2 -3
- package/dist/http/router.js +0 -1
- package/dist/http/types.d.ts +0 -1
- package/dist/http/types.js +0 -1
- package/dist/id.d.ts +2 -3
- package/dist/id.js +0 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.js +7 -1
- package/dist/operating-mode/client-safe-strategy.d.ts +1 -2
- package/dist/operating-mode/client-safe-strategy.js +0 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts +1 -2
- package/dist/operating-mode/client-unsafe-strategy.js +0 -1
- package/dist/operating-mode/client.d.ts +3 -4
- package/dist/operating-mode/client.js +0 -1
- package/dist/operating-mode/deployment-name-fixtures.d.ts +0 -1
- package/dist/operating-mode/deployment-name-fixtures.js +0 -1
- package/dist/operating-mode/deployment-name.d.ts +0 -1
- package/dist/operating-mode/deployment-name.js +0 -1
- package/dist/operating-mode/index.d.ts +5 -6
- package/dist/operating-mode/index.js +0 -1
- package/dist/operating-mode/mode-env.d.ts +1 -2
- package/dist/operating-mode/mode-env.js +0 -1
- package/dist/operating-mode/types.d.ts +2 -3
- package/dist/operating-mode/types.js +0 -1
- package/dist/paths/branch-name.d.ts +1 -2
- package/dist/paths/branch-name.js +0 -1
- package/dist/paths/branch.d.ts +3 -4
- package/dist/paths/branch.js +0 -1
- package/dist/paths/index.d.ts +8 -9
- package/dist/paths/index.js +0 -1
- package/dist/paths/normalize-server.d.ts +1 -2
- package/dist/paths/normalize-server.js +0 -1
- package/dist/paths/normalize.d.ts +1 -2
- package/dist/paths/normalize.js +0 -1
- package/dist/paths/resolve.d.ts +2 -3
- package/dist/paths/resolve.js +0 -1
- package/dist/paths/types.d.ts +0 -1
- package/dist/paths/types.js +0 -1
- package/dist/paths/validation.d.ts +1 -2
- package/dist/paths/validation.js +0 -1
- package/dist/reference-resolver.d.ts +3 -4
- package/dist/reference-resolver.js +0 -1
- package/dist/resolve-canopy-user.d.ts +3 -4
- package/dist/resolve-canopy-user.js +0 -1
- package/dist/resource-generation.d.ts +0 -1
- package/dist/resource-generation.js +0 -1
- package/dist/schema/index.d.ts +3 -4
- package/dist/schema/index.js +0 -1
- package/dist/schema/meta-loader.d.ts +3 -4
- package/dist/schema/meta-loader.js +3 -3
- package/dist/schema/resolver.d.ts +2 -3
- package/dist/schema/resolver.js +0 -1
- package/dist/schema/schema-store-types.d.ts +2 -3
- package/dist/schema/schema-store-types.js +0 -1
- package/dist/schema/schema-store.d.ts +6 -7
- package/dist/schema/schema-store.js +33 -1
- package/dist/schema/types.d.ts +1 -2
- package/dist/schema/types.js +0 -1
- package/dist/server.d.ts +97 -37
- package/dist/server.js +60 -3
- package/dist/services.d.ts +10 -12
- package/dist/services.js +2 -7
- package/dist/settings-workspace.d.ts +12 -15
- package/dist/settings-workspace.js +10 -13
- package/dist/static/index.d.ts +227 -9
- package/dist/static/index.js +302 -14
- package/dist/static/seo.d.ts +128 -0
- package/dist/static/seo.js +162 -0
- package/dist/sync-core.d.ts +0 -1
- package/dist/sync-core.js +0 -1
- package/dist/task-queue/index.d.ts +2 -3
- package/dist/task-queue/index.js +0 -1
- package/dist/task-queue/task-queue.d.ts +1 -2
- package/dist/task-queue/task-queue.js +0 -1
- package/dist/task-queue/types.d.ts +0 -1
- package/dist/task-queue/types.js +0 -1
- package/dist/types.d.ts +3 -4
- package/dist/types.js +0 -1
- package/dist/url-collision.d.ts +86 -0
- package/dist/url-collision.js +186 -0
- package/dist/url-path-resolver.d.ts +11 -2
- package/dist/url-path-resolver.js +37 -5
- package/dist/user.d.ts +3 -4
- package/dist/user.js +0 -1
- package/dist/utils/async-mutex.d.ts +0 -1
- package/dist/utils/async-mutex.js +0 -1
- package/dist/utils/atomic-write.d.ts +0 -1
- package/dist/utils/atomic-write.js +0 -1
- package/dist/utils/body-field.d.ts +12 -2
- package/dist/utils/body-field.js +17 -1
- package/dist/utils/content-serialize.d.ts +37 -0
- package/dist/utils/content-serialize.js +429 -0
- package/dist/utils/content-write-lock.d.ts +12 -16
- package/dist/utils/content-write-lock.js +38 -22
- package/dist/utils/debug.d.ts +0 -1
- package/dist/utils/debug.js +0 -1
- package/dist/utils/entry-url.d.ts +17 -1
- package/dist/utils/entry-url.js +21 -3
- package/dist/utils/error.d.ts +0 -1
- package/dist/utils/error.js +0 -1
- package/dist/utils/flatten-group-fields.d.ts +1 -2
- package/dist/utils/flatten-group-fields.js +0 -1
- package/dist/utils/format.d.ts +1 -2
- package/dist/utils/format.js +0 -1
- package/dist/utils/fs.d.ts +7 -1
- package/dist/utils/fs.js +16 -1
- package/dist/utils/git.d.ts +1 -2
- package/dist/utils/git.js +0 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.js +0 -1
- package/dist/utils/occ-json-write.d.ts +0 -1
- package/dist/utils/occ-json-write.js +0 -1
- package/dist/utils/provisioning-lock.d.ts +17 -4
- package/dist/utils/provisioning-lock.js +94 -14
- package/dist/utils/sanitize-href.d.ts +46 -1
- package/dist/utils/sanitize-href.js +63 -3
- package/dist/utils/title-field.d.ts +1 -2
- package/dist/utils/title-field.js +0 -1
- package/dist/utils/typed-filename.d.ts +61 -0
- package/dist/utils/typed-filename.js +92 -0
- package/dist/utils/url-prefix.d.ts +121 -0
- package/dist/utils/url-prefix.js +158 -0
- package/dist/validation/block-structural-keys.d.ts +42 -0
- package/dist/validation/block-structural-keys.js +44 -0
- package/dist/validation/deletion-checker.d.ts +4 -5
- package/dist/validation/deletion-checker.js +0 -1
- package/dist/validation/entry-link-validator.d.ts +2 -3
- package/dist/validation/entry-link-validator.js +0 -1
- package/dist/validation/entry-type-reference-validator.d.ts +1 -2
- package/dist/validation/entry-type-reference-validator.js +0 -1
- package/dist/validation/entry-validator.d.ts +23 -2
- package/dist/validation/entry-validator.js +34 -2
- package/dist/validation/field-traversal.d.ts +28 -4
- package/dist/validation/field-traversal.js +24 -7
- package/dist/validation/reference-validator.d.ts +2 -3
- package/dist/validation/reference-validator.js +0 -1
- package/dist/worker/cms-worker.d.ts +9 -2
- package/dist/worker/cms-worker.js +59 -2
- package/dist/worker/log.d.ts +0 -1
- package/dist/worker/log.js +0 -1
- package/dist/worker/task-queue-config.d.ts +1 -2
- package/dist/worker/task-queue-config.js +0 -1
- package/dist/worker/task-queue.d.ts +3 -4
- package/dist/worker/task-queue.js +0 -1
- package/dist/worker/worker-status.d.ts +1 -2
- package/dist/worker/worker-status.js +0 -1
- package/package.json +2 -6
- package/dist/ai/generate.d.ts.map +0 -1
- package/dist/ai/generate.js.map +0 -1
- package/dist/ai/handler.d.ts.map +0 -1
- package/dist/ai/handler.js.map +0 -1
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/index.js.map +0 -1
- package/dist/ai/json-to-markdown.d.ts.map +0 -1
- package/dist/ai/json-to-markdown.js.map +0 -1
- package/dist/ai/resolve-branch.d.ts.map +0 -1
- package/dist/ai/resolve-branch.js.map +0 -1
- package/dist/ai/strip-mdx.d.ts.map +0 -1
- package/dist/ai/strip-mdx.js.map +0 -1
- package/dist/ai/transform-components.d.ts.map +0 -1
- package/dist/ai/transform-components.js.map +0 -1
- package/dist/ai/types.d.ts.map +0 -1
- package/dist/ai/types.js.map +0 -1
- package/dist/api/__test__/mock-client.d.ts +0 -231
- package/dist/api/__test__/mock-client.d.ts.map +0 -1
- package/dist/api/__test__/mock-client.js +0 -388
- package/dist/api/__test__/mock-client.js.map +0 -1
- package/dist/api/admin-branch-health.d.ts.map +0 -1
- package/dist/api/admin-branch-health.js.map +0 -1
- package/dist/api/admin.d.ts.map +0 -1
- package/dist/api/admin.js.map +0 -1
- package/dist/api/assets.d.ts.map +0 -1
- package/dist/api/assets.js.map +0 -1
- package/dist/api/branch-merge.d.ts.map +0 -1
- package/dist/api/branch-merge.js.map +0 -1
- package/dist/api/branch-review.d.ts.map +0 -1
- package/dist/api/branch-review.js.map +0 -1
- package/dist/api/branch-status.d.ts.map +0 -1
- package/dist/api/branch-status.js.map +0 -1
- package/dist/api/branch-withdraw.d.ts.map +0 -1
- package/dist/api/branch-withdraw.js.map +0 -1
- package/dist/api/branch.d.ts.map +0 -1
- package/dist/api/branch.js.map +0 -1
- package/dist/api/client.d.ts.map +0 -1
- package/dist/api/client.js.map +0 -1
- package/dist/api/comments.d.ts.map +0 -1
- package/dist/api/comments.js.map +0 -1
- package/dist/api/content.d.ts.map +0 -1
- package/dist/api/content.js.map +0 -1
- package/dist/api/entries-constants.d.ts.map +0 -1
- package/dist/api/entries-constants.js.map +0 -1
- package/dist/api/entries.d.ts.map +0 -1
- package/dist/api/entries.js.map +0 -1
- package/dist/api/github-sync.d.ts.map +0 -1
- package/dist/api/github-sync.js.map +0 -1
- package/dist/api/groups.d.ts.map +0 -1
- package/dist/api/groups.js.map +0 -1
- package/dist/api/guards.d.ts.map +0 -1
- package/dist/api/guards.js.map +0 -1
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js.map +0 -1
- package/dist/api/permissions.d.ts.map +0 -1
- package/dist/api/permissions.js.map +0 -1
- package/dist/api/reference-options.d.ts.map +0 -1
- package/dist/api/reference-options.js.map +0 -1
- package/dist/api/request-body-hash.d.ts.map +0 -1
- package/dist/api/request-body-hash.js.map +0 -1
- package/dist/api/resolve-references.d.ts.map +0 -1
- package/dist/api/resolve-references.js.map +0 -1
- package/dist/api/route-builder.d.ts.map +0 -1
- package/dist/api/route-builder.js.map +0 -1
- package/dist/api/schema.d.ts.map +0 -1
- package/dist/api/schema.js.map +0 -1
- package/dist/api/settings-helpers.d.ts.map +0 -1
- package/dist/api/settings-helpers.js.map +0 -1
- package/dist/api/types.d.ts.map +0 -1
- package/dist/api/types.js.map +0 -1
- package/dist/api/user.d.ts.map +0 -1
- package/dist/api/user.js.map +0 -1
- package/dist/api/validators.d.ts.map +0 -1
- package/dist/api/validators.js.map +0 -1
- package/dist/assets/asset-prefixes.d.ts.map +0 -1
- package/dist/assets/asset-prefixes.js.map +0 -1
- package/dist/assets/asset-src.d.ts.map +0 -1
- package/dist/assets/asset-src.js.map +0 -1
- package/dist/assets/asset-url.d.ts.map +0 -1
- package/dist/assets/asset-url.js.map +0 -1
- package/dist/assets/factory.d.ts.map +0 -1
- package/dist/assets/factory.js.map +0 -1
- package/dist/assets/finalize.d.ts.map +0 -1
- package/dist/assets/finalize.js.map +0 -1
- package/dist/assets/index.d.ts.map +0 -1
- package/dist/assets/index.js.map +0 -1
- package/dist/assets/keys.d.ts.map +0 -1
- package/dist/assets/keys.js.map +0 -1
- package/dist/assets/pipeline.d.ts.map +0 -1
- package/dist/assets/pipeline.js.map +0 -1
- package/dist/assets/store-local.d.ts.map +0 -1
- package/dist/assets/store-local.js.map +0 -1
- package/dist/assets/store-s3.d.ts.map +0 -1
- package/dist/assets/store-s3.js.map +0 -1
- package/dist/assets/svg-sanitizer.d.ts.map +0 -1
- package/dist/assets/svg-sanitizer.js.map +0 -1
- package/dist/assets/transform-directives.d.ts.map +0 -1
- package/dist/assets/transform-directives.js.map +0 -1
- package/dist/assets/transform.d.ts.map +0 -1
- package/dist/assets/transform.js.map +0 -1
- package/dist/assets/types.d.ts.map +0 -1
- package/dist/assets/types.js.map +0 -1
- package/dist/auth/cache.d.ts.map +0 -1
- package/dist/auth/cache.js.map +0 -1
- package/dist/auth/caching-auth-plugin.d.ts.map +0 -1
- package/dist/auth/caching-auth-plugin.js.map +0 -1
- package/dist/auth/context-helpers.d.ts.map +0 -1
- package/dist/auth/context-helpers.js.map +0 -1
- package/dist/auth/file-based-auth-cache.d.ts.map +0 -1
- package/dist/auth/file-based-auth-cache.js.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/plugin.d.ts.map +0 -1
- package/dist/auth/plugin.js.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js.map +0 -1
- package/dist/authorization/branch.d.ts.map +0 -1
- package/dist/authorization/branch.js.map +0 -1
- package/dist/authorization/content.d.ts.map +0 -1
- package/dist/authorization/content.js.map +0 -1
- package/dist/authorization/groups/index.d.ts.map +0 -1
- package/dist/authorization/groups/index.js.map +0 -1
- package/dist/authorization/groups/loader.d.ts.map +0 -1
- package/dist/authorization/groups/loader.js.map +0 -1
- package/dist/authorization/groups/schema.d.ts.map +0 -1
- package/dist/authorization/groups/schema.js.map +0 -1
- package/dist/authorization/helpers.d.ts.map +0 -1
- package/dist/authorization/helpers.js.map +0 -1
- package/dist/authorization/index.d.ts.map +0 -1
- package/dist/authorization/index.js.map +0 -1
- package/dist/authorization/path.d.ts.map +0 -1
- package/dist/authorization/path.js.map +0 -1
- package/dist/authorization/permissions/index.d.ts.map +0 -1
- package/dist/authorization/permissions/index.js.map +0 -1
- package/dist/authorization/permissions/loader.d.ts.map +0 -1
- package/dist/authorization/permissions/loader.js.map +0 -1
- package/dist/authorization/permissions/schema.d.ts.map +0 -1
- package/dist/authorization/permissions/schema.js.map +0 -1
- package/dist/authorization/protected-branch.d.ts.map +0 -1
- package/dist/authorization/protected-branch.js.map +0 -1
- package/dist/authorization/settings-file-store.d.ts.map +0 -1
- package/dist/authorization/settings-file-store.js.map +0 -1
- package/dist/authorization/test-utils.d.ts +0 -26
- package/dist/authorization/test-utils.d.ts.map +0 -1
- package/dist/authorization/test-utils.js +0 -23
- package/dist/authorization/test-utils.js.map +0 -1
- package/dist/authorization/types.d.ts.map +0 -1
- package/dist/authorization/types.js.map +0 -1
- package/dist/authorization/validation.d.ts.map +0 -1
- package/dist/authorization/validation.js.map +0 -1
- package/dist/branch-health.d.ts.map +0 -1
- package/dist/branch-health.js.map +0 -1
- package/dist/branch-metadata.d.ts.map +0 -1
- package/dist/branch-metadata.js.map +0 -1
- package/dist/branch-registry.d.ts.map +0 -1
- package/dist/branch-registry.js.map +0 -1
- package/dist/branch-schema-cache.d.ts.map +0 -1
- package/dist/branch-schema-cache.js.map +0 -1
- package/dist/branch-workspace.d.ts.map +0 -1
- package/dist/branch-workspace.js.map +0 -1
- package/dist/build/generate-ai-content.d.ts.map +0 -1
- package/dist/build/generate-ai-content.js.map +0 -1
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js.map +0 -1
- package/dist/build-mode.d.ts.map +0 -1
- package/dist/build-mode.js.map +0 -1
- package/dist/cli/cli.d.ts.map +0 -1
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/generate-ai-content.d.ts.map +0 -1
- package/dist/cli/generate-ai-content.js.map +0 -1
- package/dist/cli/init.d.ts.map +0 -1
- package/dist/cli/init.js.map +0 -1
- package/dist/cli/migrate.d.ts.map +0 -1
- package/dist/cli/migrate.js.map +0 -1
- package/dist/cli/project-detect.d.ts.map +0 -1
- package/dist/cli/project-detect.js.map +0 -1
- package/dist/cli/project-root.d.ts.map +0 -1
- package/dist/cli/project-root.js.map +0 -1
- package/dist/cli/sync.d.ts.map +0 -1
- package/dist/cli/sync.js.map +0 -1
- package/dist/cli/templates.d.ts.map +0 -1
- package/dist/cli/templates.js.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/comment-store.d.ts.map +0 -1
- package/dist/comment-store.js.map +0 -1
- package/dist/config/flatten.d.ts.map +0 -1
- package/dist/config/flatten.js.map +0 -1
- package/dist/config/helpers.d.ts.map +0 -1
- package/dist/config/helpers.js.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/config/schemas/collection.d.ts.map +0 -1
- package/dist/config/schemas/collection.js.map +0 -1
- package/dist/config/schemas/config.d.ts.map +0 -1
- package/dist/config/schemas/config.js.map +0 -1
- package/dist/config/schemas/field.d.ts.map +0 -1
- package/dist/config/schemas/field.js.map +0 -1
- package/dist/config/schemas/media.d.ts.map +0 -1
- package/dist/config/schemas/media.js.map +0 -1
- package/dist/config/schemas/permissions.d.ts.map +0 -1
- package/dist/config/schemas/permissions.js.map +0 -1
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js.map +0 -1
- package/dist/config/validation.d.ts.map +0 -1
- package/dist/config/validation.js.map +0 -1
- package/dist/config-test.d.ts +0 -20
- package/dist/config-test.d.ts.map +0 -1
- package/dist/config-test.js +0 -49
- package/dist/config-test.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/content-id-index.d.ts.map +0 -1
- package/dist/content-id-index.js.map +0 -1
- package/dist/content-index-generation.d.ts.map +0 -1
- package/dist/content-index-generation.js.map +0 -1
- package/dist/content-index-registry.d.ts.map +0 -1
- package/dist/content-index-registry.js.map +0 -1
- package/dist/content-listing.d.ts.map +0 -1
- package/dist/content-listing.js.map +0 -1
- package/dist/content-reader.d.ts.map +0 -1
- package/dist/content-reader.js.map +0 -1
- package/dist/content-store.d.ts.map +0 -1
- package/dist/content-store.js.map +0 -1
- package/dist/content-tree.d.ts.map +0 -1
- package/dist/content-tree.js.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/dev-content-watcher.d.ts.map +0 -1
- package/dist/dev-content-watcher.js.map +0 -1
- package/dist/editor/BranchManager.d.ts.map +0 -1
- package/dist/editor/BranchManager.js.map +0 -1
- package/dist/editor/CanopyEditor.d.ts.map +0 -1
- package/dist/editor/CanopyEditor.js.map +0 -1
- package/dist/editor/CanopyEditorPage.d.ts.map +0 -1
- package/dist/editor/CanopyEditorPage.js.map +0 -1
- package/dist/editor/CommentsPanel.d.ts.map +0 -1
- package/dist/editor/CommentsPanel.js.map +0 -1
- package/dist/editor/Editor.d.ts.map +0 -1
- package/dist/editor/Editor.js.map +0 -1
- package/dist/editor/EditorPanes.d.ts.map +0 -1
- package/dist/editor/EditorPanes.js.map +0 -1
- package/dist/editor/EntryNavigator.d.ts.map +0 -1
- package/dist/editor/EntryNavigator.js.map +0 -1
- package/dist/editor/FormRenderer.d.ts.map +0 -1
- package/dist/editor/FormRenderer.js.map +0 -1
- package/dist/editor/GroupManager.d.ts.map +0 -1
- package/dist/editor/GroupManager.js.map +0 -1
- package/dist/editor/PermissionManager.d.ts.map +0 -1
- package/dist/editor/PermissionManager.js.map +0 -1
- package/dist/editor/admin/SystemHealthPanel.d.ts.map +0 -1
- package/dist/editor/admin/SystemHealthPanel.js.map +0 -1
- package/dist/editor/admin/useSystemHealth.d.ts.map +0 -1
- package/dist/editor/admin/useSystemHealth.js.map +0 -1
- package/dist/editor/canopy-path.d.ts.map +0 -1
- package/dist/editor/canopy-path.js.map +0 -1
- package/dist/editor/client-reference-resolver.d.ts.map +0 -1
- package/dist/editor/client-reference-resolver.js.map +0 -1
- package/dist/editor/comments/BranchComments.d.ts.map +0 -1
- package/dist/editor/comments/BranchComments.js.map +0 -1
- package/dist/editor/comments/EntryComments.d.ts.map +0 -1
- package/dist/editor/comments/EntryComments.js.map +0 -1
- package/dist/editor/comments/FieldWrapper.d.ts.map +0 -1
- package/dist/editor/comments/FieldWrapper.js.map +0 -1
- package/dist/editor/comments/InlineCommentThread.d.ts.map +0 -1
- package/dist/editor/comments/InlineCommentThread.js.map +0 -1
- package/dist/editor/comments/ThreadCarousel.d.ts.map +0 -1
- package/dist/editor/comments/ThreadCarousel.js.map +0 -1
- package/dist/editor/components/ConfirmDeleteModal.d.ts.map +0 -1
- package/dist/editor/components/ConfirmDeleteModal.js.map +0 -1
- package/dist/editor/components/EditorFooter.d.ts.map +0 -1
- package/dist/editor/components/EditorFooter.js.map +0 -1
- package/dist/editor/components/EditorHeader.d.ts.map +0 -1
- package/dist/editor/components/EditorHeader.js.map +0 -1
- package/dist/editor/components/EditorSidebar.d.ts.map +0 -1
- package/dist/editor/components/EditorSidebar.js.map +0 -1
- package/dist/editor/components/EntryCreateModal.d.ts.map +0 -1
- package/dist/editor/components/EntryCreateModal.js.map +0 -1
- package/dist/editor/components/RenameEntryModal.d.ts.map +0 -1
- package/dist/editor/components/RenameEntryModal.js.map +0 -1
- package/dist/editor/components/UserBadge.d.ts.map +0 -1
- package/dist/editor/components/UserBadge.js.map +0 -1
- package/dist/editor/components/index.d.ts.map +0 -1
- package/dist/editor/components/index.js.map +0 -1
- package/dist/editor/context/ApiClientContext.d.ts.map +0 -1
- package/dist/editor/context/ApiClientContext.js.map +0 -1
- package/dist/editor/context/AssetContext.d.ts.map +0 -1
- package/dist/editor/context/AssetContext.js.map +0 -1
- package/dist/editor/context/EditorStateContext.d.ts.map +0 -1
- package/dist/editor/context/EditorStateContext.js.map +0 -1
- package/dist/editor/context/SWRProvider.d.ts.map +0 -1
- package/dist/editor/context/SWRProvider.js.map +0 -1
- package/dist/editor/context/index.d.ts.map +0 -1
- package/dist/editor/context/index.js.map +0 -1
- package/dist/editor/editor-config.d.ts.map +0 -1
- package/dist/editor/editor-config.js.map +0 -1
- package/dist/editor/editor-utils.d.ts.map +0 -1
- package/dist/editor/editor-utils.js.map +0 -1
- package/dist/editor/fields/BlockField.d.ts.map +0 -1
- package/dist/editor/fields/BlockField.js.map +0 -1
- package/dist/editor/fields/CodeField.d.ts.map +0 -1
- package/dist/editor/fields/CodeField.js.map +0 -1
- package/dist/editor/fields/DateTimeField.d.ts.map +0 -1
- package/dist/editor/fields/DateTimeField.js.map +0 -1
- package/dist/editor/fields/ImageField.d.ts.map +0 -1
- package/dist/editor/fields/ImageField.js.map +0 -1
- package/dist/editor/fields/InlineGroupField.d.ts.map +0 -1
- package/dist/editor/fields/InlineGroupField.js.map +0 -1
- package/dist/editor/fields/MarkdownField.d.ts.map +0 -1
- package/dist/editor/fields/MarkdownField.js.map +0 -1
- package/dist/editor/fields/MdxImageDialog.d.ts.map +0 -1
- package/dist/editor/fields/MdxImageDialog.js.map +0 -1
- package/dist/editor/fields/NumberField.d.ts.map +0 -1
- package/dist/editor/fields/NumberField.js.map +0 -1
- package/dist/editor/fields/NumberListField.d.ts.map +0 -1
- package/dist/editor/fields/NumberListField.js.map +0 -1
- package/dist/editor/fields/ObjectField.d.ts.map +0 -1
- package/dist/editor/fields/ObjectField.js.map +0 -1
- package/dist/editor/fields/ReferenceField.d.ts.map +0 -1
- package/dist/editor/fields/ReferenceField.js.map +0 -1
- package/dist/editor/fields/SelectField.d.ts.map +0 -1
- package/dist/editor/fields/SelectField.js.map +0 -1
- package/dist/editor/fields/StringListField.d.ts.map +0 -1
- package/dist/editor/fields/StringListField.js.map +0 -1
- package/dist/editor/fields/TextField.d.ts.map +0 -1
- package/dist/editor/fields/TextField.js.map +0 -1
- package/dist/editor/fields/ToggleField.d.ts.map +0 -1
- package/dist/editor/fields/ToggleField.js.map +0 -1
- package/dist/editor/fields/entry-link/EntryLinkContext.d.ts.map +0 -1
- package/dist/editor/fields/entry-link/EntryLinkContext.js.map +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.d.ts.map +0 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.js.map +0 -1
- package/dist/editor/fields/entry-link/index.d.ts.map +0 -1
- package/dist/editor/fields/entry-link/index.js.map +0 -1
- package/dist/editor/group-manager/ExternalGroupsTab.d.ts.map +0 -1
- package/dist/editor/group-manager/ExternalGroupsTab.js.map +0 -1
- package/dist/editor/group-manager/GroupCard.d.ts.map +0 -1
- package/dist/editor/group-manager/GroupCard.js.map +0 -1
- package/dist/editor/group-manager/GroupForm.d.ts.map +0 -1
- package/dist/editor/group-manager/GroupForm.js.map +0 -1
- package/dist/editor/group-manager/InternalGroupsTab.d.ts.map +0 -1
- package/dist/editor/group-manager/InternalGroupsTab.js.map +0 -1
- package/dist/editor/group-manager/MemberList.d.ts.map +0 -1
- package/dist/editor/group-manager/MemberList.js.map +0 -1
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.d.ts.map +0 -1
- package/dist/editor/group-manager/hooks/useExternalGroupSearch.js.map +0 -1
- package/dist/editor/group-manager/hooks/useGroupState.d.ts.map +0 -1
- package/dist/editor/group-manager/hooks/useGroupState.js.map +0 -1
- package/dist/editor/group-manager/hooks/useUserSearch.d.ts.map +0 -1
- package/dist/editor/group-manager/hooks/useUserSearch.js.map +0 -1
- package/dist/editor/group-manager/index.d.ts.map +0 -1
- package/dist/editor/group-manager/index.js.map +0 -1
- package/dist/editor/group-manager/types.d.ts.map +0 -1
- package/dist/editor/group-manager/types.js.map +0 -1
- package/dist/editor/hooks/__test__/test-utils.d.ts +0 -164
- package/dist/editor/hooks/__test__/test-utils.d.ts.map +0 -1
- package/dist/editor/hooks/__test__/test-utils.js +0 -203
- package/dist/editor/hooks/__test__/test-utils.js.map +0 -1
- package/dist/editor/hooks/index.d.ts.map +0 -1
- package/dist/editor/hooks/index.js.map +0 -1
- package/dist/editor/hooks/useBranchActions.d.ts.map +0 -1
- package/dist/editor/hooks/useBranchActions.js.map +0 -1
- package/dist/editor/hooks/useBranchManager.d.ts.map +0 -1
- package/dist/editor/hooks/useBranchManager.js.map +0 -1
- package/dist/editor/hooks/useBranchesData.d.ts.map +0 -1
- package/dist/editor/hooks/useBranchesData.js.map +0 -1
- package/dist/editor/hooks/useCommentSystem.d.ts.map +0 -1
- package/dist/editor/hooks/useCommentSystem.js.map +0 -1
- package/dist/editor/hooks/useCommentsData.d.ts.map +0 -1
- package/dist/editor/hooks/useCommentsData.js.map +0 -1
- package/dist/editor/hooks/useDraftManager.d.ts.map +0 -1
- package/dist/editor/hooks/useDraftManager.js.map +0 -1
- package/dist/editor/hooks/useEditorLayout.d.ts.map +0 -1
- package/dist/editor/hooks/useEditorLayout.js.map +0 -1
- package/dist/editor/hooks/useEntriesData.d.ts.map +0 -1
- package/dist/editor/hooks/useEntriesData.js.map +0 -1
- package/dist/editor/hooks/useEntryLinkResolution.d.ts.map +0 -1
- package/dist/editor/hooks/useEntryLinkResolution.js.map +0 -1
- package/dist/editor/hooks/useEntryManager.d.ts.map +0 -1
- package/dist/editor/hooks/useEntryManager.js.map +0 -1
- package/dist/editor/hooks/useGroupManager.d.ts.map +0 -1
- package/dist/editor/hooks/useGroupManager.js.map +0 -1
- package/dist/editor/hooks/usePermissionManager.d.ts.map +0 -1
- package/dist/editor/hooks/usePermissionManager.js.map +0 -1
- package/dist/editor/hooks/useReferenceResolution.d.ts.map +0 -1
- package/dist/editor/hooks/useReferenceResolution.js.map +0 -1
- package/dist/editor/hooks/useSchemaManager.d.ts.map +0 -1
- package/dist/editor/hooks/useSchemaManager.js.map +0 -1
- package/dist/editor/hooks/useUserContext.d.ts.map +0 -1
- package/dist/editor/hooks/useUserContext.js.map +0 -1
- package/dist/editor/hooks/useUserMetadata.d.ts.map +0 -1
- package/dist/editor/hooks/useUserMetadata.js.map +0 -1
- package/dist/editor/media/AssetCard.d.ts.map +0 -1
- package/dist/editor/media/AssetCard.js.map +0 -1
- package/dist/editor/media/CropStep.d.ts.map +0 -1
- package/dist/editor/media/CropStep.js.map +0 -1
- package/dist/editor/media/MediaLibrary.d.ts.map +0 -1
- package/dist/editor/media/MediaLibrary.js.map +0 -1
- package/dist/editor/media/MediaLibraryBody.d.ts.map +0 -1
- package/dist/editor/media/MediaLibraryBody.js.map +0 -1
- package/dist/editor/media/crop-math.d.ts.map +0 -1
- package/dist/editor/media/crop-math.js.map +0 -1
- package/dist/editor/media/upload-asset.d.ts.map +0 -1
- package/dist/editor/media/upload-asset.js.map +0 -1
- package/dist/editor/media/upload-constants.d.ts.map +0 -1
- package/dist/editor/media/upload-constants.js.map +0 -1
- package/dist/editor/media/useAssetUpload.d.ts.map +0 -1
- package/dist/editor/media/useAssetUpload.js.map +0 -1
- package/dist/editor/media/xhr-upload.d.ts.map +0 -1
- package/dist/editor/media/xhr-upload.js.map +0 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts.map +0 -1
- package/dist/editor/permission-manager/GroupSelector.js.map +0 -1
- package/dist/editor/permission-manager/PermissionEditor.d.ts.map +0 -1
- package/dist/editor/permission-manager/PermissionEditor.js.map +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.d.ts.map +0 -1
- package/dist/editor/permission-manager/PermissionLevelBadge.js.map +0 -1
- package/dist/editor/permission-manager/PermissionTree.d.ts.map +0 -1
- package/dist/editor/permission-manager/PermissionTree.js.map +0 -1
- package/dist/editor/permission-manager/UserSelector.d.ts.map +0 -1
- package/dist/editor/permission-manager/UserSelector.js.map +0 -1
- package/dist/editor/permission-manager/constants.d.ts.map +0 -1
- package/dist/editor/permission-manager/constants.js.map +0 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +0 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +0 -1
- package/dist/editor/permission-manager/hooks/usePermissionTree.d.ts.map +0 -1
- package/dist/editor/permission-manager/hooks/usePermissionTree.js.map +0 -1
- package/dist/editor/permission-manager/index.d.ts.map +0 -1
- package/dist/editor/permission-manager/index.js.map +0 -1
- package/dist/editor/permission-manager/types.d.ts.map +0 -1
- package/dist/editor/permission-manager/types.js.map +0 -1
- package/dist/editor/permission-manager/utils.d.ts.map +0 -1
- package/dist/editor/permission-manager/utils.js.map +0 -1
- package/dist/editor/preview-bridge.d.ts.map +0 -1
- package/dist/editor/preview-bridge.js.map +0 -1
- package/dist/editor/relative-time.d.ts.map +0 -1
- package/dist/editor/relative-time.js.map +0 -1
- package/dist/editor/schema-editor/CollectionEditor.d.ts.map +0 -1
- package/dist/editor/schema-editor/CollectionEditor.js.map +0 -1
- package/dist/editor/schema-editor/EntryTypeEditor.d.ts.map +0 -1
- package/dist/editor/schema-editor/EntryTypeEditor.js.map +0 -1
- package/dist/editor/schema-editor/index.d.ts.map +0 -1
- package/dist/editor/schema-editor/index.js.map +0 -1
- package/dist/editor/setup-test-dom.d.ts +0 -1
- package/dist/editor/setup-test-dom.d.ts.map +0 -1
- package/dist/editor/setup-test-dom.js +0 -12
- package/dist/editor/setup-test-dom.js.map +0 -1
- package/dist/editor/test-setup.d.ts +0 -6
- package/dist/editor/test-setup.d.ts.map +0 -1
- package/dist/editor/test-setup.js +0 -42
- package/dist/editor/test-setup.js.map +0 -1
- package/dist/editor/theme.d.ts.map +0 -1
- package/dist/editor/theme.js.map +0 -1
- package/dist/editor/utils/env.d.ts.map +0 -1
- package/dist/editor/utils/env.js.map +0 -1
- package/dist/entry-link-resolver.d.ts.map +0 -1
- package/dist/entry-link-resolver.js.map +0 -1
- package/dist/entry-schema-registry.d.ts.map +0 -1
- package/dist/entry-schema-registry.js.map +0 -1
- package/dist/entry-schema.d.ts.map +0 -1
- package/dist/entry-schema.js.map +0 -1
- package/dist/git-manager.d.ts.map +0 -1
- package/dist/git-manager.js.map +0 -1
- package/dist/github-service.d.ts.map +0 -1
- package/dist/github-service.js.map +0 -1
- package/dist/http/handler.d.ts.map +0 -1
- package/dist/http/handler.js.map +0 -1
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js.map +0 -1
- package/dist/http/router.d.ts.map +0 -1
- package/dist/http/router.js.map +0 -1
- package/dist/http/types.d.ts.map +0 -1
- package/dist/http/types.js.map +0 -1
- package/dist/id.d.ts.map +0 -1
- package/dist/id.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/operating-mode/client-safe-strategy.d.ts.map +0 -1
- package/dist/operating-mode/client-safe-strategy.js.map +0 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts.map +0 -1
- package/dist/operating-mode/client-unsafe-strategy.js.map +0 -1
- package/dist/operating-mode/client.d.ts.map +0 -1
- package/dist/operating-mode/client.js.map +0 -1
- package/dist/operating-mode/deployment-name-fixtures.d.ts.map +0 -1
- package/dist/operating-mode/deployment-name-fixtures.js.map +0 -1
- package/dist/operating-mode/deployment-name.d.ts.map +0 -1
- package/dist/operating-mode/deployment-name.js.map +0 -1
- package/dist/operating-mode/index.d.ts.map +0 -1
- package/dist/operating-mode/index.js.map +0 -1
- package/dist/operating-mode/mode-env.d.ts.map +0 -1
- package/dist/operating-mode/mode-env.js.map +0 -1
- package/dist/operating-mode/types.d.ts.map +0 -1
- package/dist/operating-mode/types.js.map +0 -1
- package/dist/paths/branch-name.d.ts.map +0 -1
- package/dist/paths/branch-name.js.map +0 -1
- package/dist/paths/branch.d.ts.map +0 -1
- package/dist/paths/branch.js.map +0 -1
- package/dist/paths/index.d.ts.map +0 -1
- package/dist/paths/index.js.map +0 -1
- package/dist/paths/normalize-server.d.ts.map +0 -1
- package/dist/paths/normalize-server.js.map +0 -1
- package/dist/paths/normalize.d.ts.map +0 -1
- package/dist/paths/normalize.js.map +0 -1
- package/dist/paths/resolve.d.ts.map +0 -1
- package/dist/paths/resolve.js.map +0 -1
- package/dist/paths/test-utils.d.ts +0 -22
- package/dist/paths/test-utils.d.ts.map +0 -1
- package/dist/paths/test-utils.js +0 -21
- package/dist/paths/test-utils.js.map +0 -1
- package/dist/paths/types.d.ts.map +0 -1
- package/dist/paths/types.js.map +0 -1
- package/dist/paths/validation.d.ts.map +0 -1
- package/dist/paths/validation.js.map +0 -1
- package/dist/reference-resolver.d.ts.map +0 -1
- package/dist/reference-resolver.js.map +0 -1
- package/dist/resolve-canopy-user.d.ts.map +0 -1
- package/dist/resolve-canopy-user.js.map +0 -1
- package/dist/resource-generation.d.ts.map +0 -1
- package/dist/resource-generation.js.map +0 -1
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/meta-loader.d.ts.map +0 -1
- package/dist/schema/meta-loader.js.map +0 -1
- package/dist/schema/resolver.d.ts.map +0 -1
- package/dist/schema/resolver.js.map +0 -1
- package/dist/schema/schema-store-types.d.ts.map +0 -1
- package/dist/schema/schema-store-types.js.map +0 -1
- package/dist/schema/schema-store.d.ts.map +0 -1
- package/dist/schema/schema-store.js.map +0 -1
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/schema/types.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/services.d.ts.map +0 -1
- package/dist/services.js.map +0 -1
- package/dist/settings-workspace.d.ts.map +0 -1
- package/dist/settings-workspace.js.map +0 -1
- package/dist/static/index.d.ts.map +0 -1
- package/dist/static/index.js.map +0 -1
- package/dist/sync-core.d.ts.map +0 -1
- package/dist/sync-core.js.map +0 -1
- package/dist/task-queue/index.d.ts.map +0 -1
- package/dist/task-queue/index.js.map +0 -1
- package/dist/task-queue/task-queue.d.ts.map +0 -1
- package/dist/task-queue/task-queue.js.map +0 -1
- package/dist/task-queue/types.d.ts.map +0 -1
- package/dist/task-queue/types.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/url-path-resolver.d.ts.map +0 -1
- package/dist/url-path-resolver.js.map +0 -1
- package/dist/user.d.ts.map +0 -1
- package/dist/user.js.map +0 -1
- package/dist/utils/async-mutex.d.ts.map +0 -1
- package/dist/utils/async-mutex.js.map +0 -1
- package/dist/utils/atomic-write.d.ts.map +0 -1
- package/dist/utils/atomic-write.js.map +0 -1
- package/dist/utils/body-field.d.ts.map +0 -1
- package/dist/utils/body-field.js.map +0 -1
- package/dist/utils/content-write-lock.d.ts.map +0 -1
- package/dist/utils/content-write-lock.js.map +0 -1
- package/dist/utils/debug.d.ts.map +0 -1
- package/dist/utils/debug.js.map +0 -1
- package/dist/utils/entry-url.d.ts.map +0 -1
- package/dist/utils/entry-url.js.map +0 -1
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/flatten-group-fields.d.ts.map +0 -1
- package/dist/utils/flatten-group-fields.js.map +0 -1
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/occ-json-write.d.ts.map +0 -1
- package/dist/utils/occ-json-write.js.map +0 -1
- package/dist/utils/provisioning-lock.d.ts.map +0 -1
- package/dist/utils/provisioning-lock.js.map +0 -1
- package/dist/utils/sanitize-href.d.ts.map +0 -1
- package/dist/utils/sanitize-href.js.map +0 -1
- package/dist/utils/title-field.d.ts.map +0 -1
- package/dist/utils/title-field.js.map +0 -1
- package/dist/validation/deletion-checker.d.ts.map +0 -1
- package/dist/validation/deletion-checker.js.map +0 -1
- package/dist/validation/entry-link-validator.d.ts.map +0 -1
- package/dist/validation/entry-link-validator.js.map +0 -1
- package/dist/validation/entry-type-reference-validator.d.ts.map +0 -1
- package/dist/validation/entry-type-reference-validator.js.map +0 -1
- package/dist/validation/entry-validator.d.ts.map +0 -1
- package/dist/validation/entry-validator.js.map +0 -1
- package/dist/validation/field-traversal.d.ts.map +0 -1
- package/dist/validation/field-traversal.js.map +0 -1
- package/dist/validation/reference-validator.d.ts.map +0 -1
- package/dist/validation/reference-validator.js.map +0 -1
- package/dist/worker/cms-worker.d.ts.map +0 -1
- package/dist/worker/cms-worker.js.map +0 -1
- package/dist/worker/log.d.ts.map +0 -1
- package/dist/worker/log.js.map +0 -1
- package/dist/worker/task-queue-config.d.ts.map +0 -1
- package/dist/worker/task-queue-config.js.map +0 -1
- package/dist/worker/task-queue.d.ts.map +0 -1
- package/dist/worker/task-queue.js.map +0 -1
- package/dist/worker/worker-status.d.ts.map +0 -1
- package/dist/worker/worker-status.js.map +0 -1
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert MDX/Markdown body content to plain prose text, suitable for a
|
|
3
|
+
* search index or any other consumer that wants "just the words".
|
|
4
|
+
*
|
|
5
|
+
* This is deliberately a *different* transform from `stripMdxImports`
|
|
6
|
+
* (strip-mdx.ts): that one is tuned for AI/RAG consumption and intentionally
|
|
7
|
+
* leaves JSX components intact, because their props often carry semantic
|
|
8
|
+
* data a model can use. `toPlainText` has the opposite goal — it removes ALL
|
|
9
|
+
* markup (JSX tags, JSX expressions, markdown syntax) and keeps only the
|
|
10
|
+
* prose, so **paired custom components lose their tags but keep their
|
|
11
|
+
* children's text**. That distinction is the whole reason this function
|
|
12
|
+
* exists: a hand-rolled plaintext stripper that treats a paired component
|
|
13
|
+
* like `<Callout>...</Callout>` as one opaque unit and deletes it wholesale
|
|
14
|
+
* silently drops every word inside it from the search index. `toPlainText`
|
|
15
|
+
* strips the `<Callout>`/`</Callout>` delimiters but keeps the sentence
|
|
16
|
+
* between them.
|
|
17
|
+
*
|
|
18
|
+
* Pipeline (each step operates on the previous step's output):
|
|
19
|
+
* 1. Strip YAML frontmatter (via `gray-matter`, the same parser
|
|
20
|
+
* `content-store.ts` uses for `.md`/`.mdx` bodies).
|
|
21
|
+
* 2. Strip `import`/`export` statements (via `stripMdxImports`), which also
|
|
22
|
+
* protects fenced code blocks from every later step.
|
|
23
|
+
* 3. Mask fenced code blocks and inline code spans, capturing their content
|
|
24
|
+
* (fence markers / backticks are discarded, the code text is kept).
|
|
25
|
+
* 4. Strip JSX/HTML tags — opening, closing, and self-closing — leaving
|
|
26
|
+
* whatever text sits between them in place. This is a single global
|
|
27
|
+
* replace, not a matched-pair walk: because we never need the tag name or
|
|
28
|
+
* the children as a unit (unlike `applyComponentTransforms`, which calls
|
|
29
|
+
* an adopter transform per component), deleting every tag occurrence and
|
|
30
|
+
* leaving the surrounding text untouched handles nesting for free.
|
|
31
|
+
* 5. Strip JSX expressions (`{...}`, including nested braces) — these are
|
|
32
|
+
* code, not prose.
|
|
33
|
+
* 6. Strip common Markdown syntax: headings, emphasis/strikethrough, links
|
|
34
|
+
* (keep the link text, drop the URL), images (keep alt text), blockquote
|
|
35
|
+
* markers, list markers, and thematic breaks.
|
|
36
|
+
* 7. Restore the masked code from step 3 as plain text.
|
|
37
|
+
* 8. Collapse whitespace: trim each line, collapse runs of blank lines,
|
|
38
|
+
* trim the result. Paragraph breaks (single blank lines) are preserved —
|
|
39
|
+
* this does not flatten the output to one line.
|
|
40
|
+
*/
|
|
41
|
+
import matter from 'gray-matter';
|
|
42
|
+
import { stripMdxImports } from './strip-mdx.js';
|
|
43
|
+
/**
|
|
44
|
+
* Masking markers use `@` right after `<` (and before the closing `>`),
|
|
45
|
+
* e.g. `<@B0@>`. `@` is not a valid JSX tag-name start (`[A-Za-z]` only), so
|
|
46
|
+
* TAG_RE below can never mistake the marker for a real tag — unlike
|
|
47
|
+
* transform-components.ts's `<<CODEBLOCK0>>` convention, which is safe
|
|
48
|
+
* there only because that module never runs a *generic* tag-stripping regex
|
|
49
|
+
* over its masked text (this one does: `<CODEBLOCK0>` inside `<<...>>`
|
|
50
|
+
* reads as a valid tag name to a naive tag matcher, which is exactly the
|
|
51
|
+
* bug this format avoids). `@` also doesn't participate in any of the
|
|
52
|
+
* Markdown-syntax regexes below, so a marker surviving to that stage is
|
|
53
|
+
* inert there too.
|
|
54
|
+
*/
|
|
55
|
+
const BLOCK_PREFIX = '<@B';
|
|
56
|
+
const BLOCK_SUFFIX = '@>';
|
|
57
|
+
const BLOCK_RESTORE_RE = /<@B(\d+)@>/g;
|
|
58
|
+
const INLINE_PREFIX = '<@I';
|
|
59
|
+
const INLINE_SUFFIX = '@>';
|
|
60
|
+
const INLINE_RESTORE_RE = /<@I(\d+)@>/g;
|
|
61
|
+
/** JSX attribute content: skips quoted strings so a `>` inside `title="a > b"` doesn't end the tag early. */
|
|
62
|
+
const ATTR_CONTENT = `(?:[^<>"']|"[^"]*"|'[^']*')*`;
|
|
63
|
+
/**
|
|
64
|
+
* Matches an opening, closing, or self-closing JSX/HTML tag, or a fragment (`<>`/`</>`).
|
|
65
|
+
*
|
|
66
|
+
* No trailing `\s*` before the final `\/?>`: `ATTR_CONTENT`'s `[^<>"']` alternative already
|
|
67
|
+
* matches whitespace, so a trailing `\s*` on top of it lets the engine split any whitespace run
|
|
68
|
+
* between the two in every possible proportion. On an unterminated tag (no closing `>` in the
|
|
69
|
+
* input) followed by a long whitespace run, that ambiguity is polynomial-ReDoS shaped (CodeQL
|
|
70
|
+
* `js/polynomial-redos`): matching cost is quadratic in the run length before the engine gives up
|
|
71
|
+
* and backtracks to try the next start position. Measured on a 128 KB whitespace tail: ~26s with
|
|
72
|
+
* the redundant `\s*`, ~1ms without it. `ATTR_CONTENT` already absorbs the trailing whitespace on
|
|
73
|
+
* its own, so removing the `\s*` changes no matched output.
|
|
74
|
+
*/
|
|
75
|
+
const TAG_RE = new RegExp(`<\\/?([A-Za-z][\\w.-]*)?(?:\\s${ATTR_CONTENT})?\\/?>`, 'g');
|
|
76
|
+
const COMMENT_OPEN = '<!--';
|
|
77
|
+
const COMMENT_CLOSE = '-->';
|
|
78
|
+
/**
|
|
79
|
+
* Strip well-formed HTML/MDX comments (`<!-- ... -->`), including their contents.
|
|
80
|
+
*
|
|
81
|
+
* `TAG_RE` cannot do this: its tag-name group is `[A-Za-z]`-initial, so `<!--` matches neither
|
|
82
|
+
* the name nor the bare-fragment form, and both delimiters plus every word between them survive
|
|
83
|
+
* into the extracted text. Authoring notes then show up verbatim in a search index or an AI
|
|
84
|
+
* export — text the author explicitly marked as not-for-readers.
|
|
85
|
+
*
|
|
86
|
+
* A hand-rolled `indexOf` scan rather than `/<!--[\s\S]*?-->/g`, for the same reason
|
|
87
|
+
* `maskFencedCodeBlocks` above is hand-rolled: that lazy pattern has no bound on how far it
|
|
88
|
+
* scans looking for a closer, so on input with many unterminated `<!--` openers the engine
|
|
89
|
+
* exhausts to end-of-string at every one of them — quadratic in the number of openers, the same
|
|
90
|
+
* polynomial-ReDoS shape documented on `TAG_RE` and the fence scanner. This scan visits each
|
|
91
|
+
* character at most once.
|
|
92
|
+
*
|
|
93
|
+
* An UNTERMINATED `<!--` is deliberately left alone rather than swallowing the rest of the
|
|
94
|
+
* document. HTML would run such a comment to EOF, but here the input is prose being extracted
|
|
95
|
+
* for search and AI consumption, where silently dropping everything after a mistyped delimiter
|
|
96
|
+
* loses far more than it protects. The stray `<!--` survives as literal text, which is visible
|
|
97
|
+
* and fixable; a vanished second half of a document is neither.
|
|
98
|
+
*
|
|
99
|
+
* Runs while fenced/inline code is still masked, so a comment shown as example code keeps its
|
|
100
|
+
* delimiters.
|
|
101
|
+
*/
|
|
102
|
+
function stripHtmlComments(text) {
|
|
103
|
+
let searchFrom = 0;
|
|
104
|
+
let open = text.indexOf(COMMENT_OPEN, searchFrom);
|
|
105
|
+
if (open === -1)
|
|
106
|
+
return text;
|
|
107
|
+
let out = '';
|
|
108
|
+
while (open !== -1) {
|
|
109
|
+
const close = text.indexOf(COMMENT_CLOSE, open + COMMENT_OPEN.length);
|
|
110
|
+
if (close === -1)
|
|
111
|
+
break;
|
|
112
|
+
out += text.slice(searchFrom, open) + ' ';
|
|
113
|
+
searchFrom = close + COMMENT_CLOSE.length;
|
|
114
|
+
open = text.indexOf(COMMENT_OPEN, searchFrom);
|
|
115
|
+
}
|
|
116
|
+
return out + text.slice(searchFrom);
|
|
117
|
+
}
|
|
118
|
+
/** True if `line` is a valid closing fence line for `marker` ("```" or "~~~"): the marker
|
|
119
|
+
* followed by nothing but whitespace through end of line — matching what `\1\s*$` required in
|
|
120
|
+
* the regex this replaced. */
|
|
121
|
+
function isFenceCloseLine(line, marker) {
|
|
122
|
+
return line.startsWith(marker) && /^\s*$/.test(line.slice(marker.length));
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Mask fenced code blocks (` ``` `/`~~~`), capturing each block's *content* so `restore`
|
|
126
|
+
* re-inserts plain text — no fence markers, no language tag.
|
|
127
|
+
*
|
|
128
|
+
* A hand-rolled line scan, not `/^(```|~~~).*\n([\s\S]*?)\n\1\s*$/gm`: that regex is a second
|
|
129
|
+
* polynomial-ReDoS shape (measured ~9s on ~530KB of body text with many unclosed fence openers,
|
|
130
|
+
* a plausible authoring accident — the same trigger class as `TAG_RE` above, in the same
|
|
131
|
+
* function). The lazy `[\s\S]*?` has no bound on how far it must scan looking for a closing
|
|
132
|
+
* `\1` that, for an unclosed fence, never arrives — it exhausts to the end of the string before
|
|
133
|
+
* giving up on that starting line, and `/gm` retries the same exhaustive scan at every
|
|
134
|
+
* subsequent fence-opener line, which is quadratic in the number of unclosed openers.
|
|
135
|
+
*
|
|
136
|
+
* This scans each line once. `nextCloseLine` is precomputed per marker type via a single
|
|
137
|
+
* backward pass, so any opener's nearest closer (or "none exists") is an O(1) lookup rather than
|
|
138
|
+
* a fresh forward scan — the change that makes the whole function O(n) regardless of how many
|
|
139
|
+
* fences are opened and never closed.
|
|
140
|
+
*/
|
|
141
|
+
function maskFencedCodeBlocks(body, blocks) {
|
|
142
|
+
const lines = body.split('\n');
|
|
143
|
+
const lineCount = lines.length;
|
|
144
|
+
// nextCloseLine[marker][i] = the nearest index >= i that closes `marker`, or -1 if none exists
|
|
145
|
+
// at or after i. Built right-to-left so each entry is O(1) given the next one.
|
|
146
|
+
const nextCloseLine = {
|
|
147
|
+
'```': new Array(lineCount + 1).fill(-1),
|
|
148
|
+
'~~~': new Array(lineCount + 1).fill(-1),
|
|
149
|
+
};
|
|
150
|
+
for (let i = lineCount - 1; i >= 0; i--) {
|
|
151
|
+
nextCloseLine['```'][i] = isFenceCloseLine(lines[i], '```') ? i : nextCloseLine['```'][i + 1];
|
|
152
|
+
nextCloseLine['~~~'][i] = isFenceCloseLine(lines[i], '~~~') ? i : nextCloseLine['~~~'][i + 1];
|
|
153
|
+
}
|
|
154
|
+
const outLines = [];
|
|
155
|
+
let i = 0;
|
|
156
|
+
while (i < lineCount) {
|
|
157
|
+
const line = lines[i];
|
|
158
|
+
const marker = line.startsWith('```') ? '```' : line.startsWith('~~~') ? '~~~' : null;
|
|
159
|
+
// A closer can never be the very next line: the original pattern requires TWO separate `\n`
|
|
160
|
+
// matches between the opener and `\1` (one ending the opener's line, one immediately before
|
|
161
|
+
// the closer), so even zero-width content needs a line of its own between them.
|
|
162
|
+
const searchFrom = i + 2;
|
|
163
|
+
const closeIndex = marker && searchFrom < lineCount ? nextCloseLine[marker][searchFrom] : -1;
|
|
164
|
+
if (!marker || closeIndex === -1) {
|
|
165
|
+
outLines.push(line);
|
|
166
|
+
i++;
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const content = lines.slice(i + 1, closeIndex).join('\n');
|
|
170
|
+
const idx = blocks.length;
|
|
171
|
+
blocks.push(content);
|
|
172
|
+
// Matches the replaced regex's `\n${...}\n` callback wrapping: the placeholder becomes its
|
|
173
|
+
// own blank-line-delimited chunk. (Any resulting difference in surrounding blank-line COUNT
|
|
174
|
+
// is immaterial -- collapseWhitespace normalizes runs of 3+ newlines down to one blank line
|
|
175
|
+
// before this ever reaches a caller.)
|
|
176
|
+
outLines.push('', `${BLOCK_PREFIX}${idx}${BLOCK_SUFFIX}`, '');
|
|
177
|
+
i = closeIndex + 1;
|
|
178
|
+
}
|
|
179
|
+
return outLines.join('\n');
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Mask fenced code blocks and inline code spans, capturing their *content*
|
|
183
|
+
* (not the raw fenced/backticked text) so `restore` re-inserts plain text —
|
|
184
|
+
* no fence markers, no language tag, no backticks.
|
|
185
|
+
*/
|
|
186
|
+
function maskCode(body) {
|
|
187
|
+
const blocks = [];
|
|
188
|
+
const inlines = [];
|
|
189
|
+
let masked = maskFencedCodeBlocks(body, blocks);
|
|
190
|
+
masked = masked.replace(/``(.+?)``|`([^`]+)`/g, (_match, double, single) => {
|
|
191
|
+
const idx = inlines.length;
|
|
192
|
+
inlines.push((double ?? single ?? '').trim());
|
|
193
|
+
return `${INLINE_PREFIX}${idx}${INLINE_SUFFIX}`;
|
|
194
|
+
});
|
|
195
|
+
return {
|
|
196
|
+
masked,
|
|
197
|
+
restore: (s) => {
|
|
198
|
+
s = s.replace(INLINE_RESTORE_RE, (_match, i) => inlines[Number(i)]);
|
|
199
|
+
s = s.replace(BLOCK_RESTORE_RE, (_match, i) => blocks[Number(i)]);
|
|
200
|
+
return s;
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Remove balanced `{...}` groups (JSX expressions), including nested braces,
|
|
206
|
+
* in a single pass. Each removed top-level group collapses to one space so
|
|
207
|
+
* surrounding words don't merge.
|
|
208
|
+
*/
|
|
209
|
+
function stripBraceExpressions(text) {
|
|
210
|
+
let result = '';
|
|
211
|
+
let depth = 0;
|
|
212
|
+
for (const ch of text) {
|
|
213
|
+
if (ch === '{') {
|
|
214
|
+
if (depth === 0)
|
|
215
|
+
result += ' ';
|
|
216
|
+
depth++;
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
if (ch === '}') {
|
|
220
|
+
if (depth > 0)
|
|
221
|
+
depth--;
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
if (depth === 0)
|
|
225
|
+
result += ch;
|
|
226
|
+
}
|
|
227
|
+
return result;
|
|
228
|
+
}
|
|
229
|
+
/** Strip common Markdown syntax, keeping the human-readable text. */
|
|
230
|
+
function stripMarkdownSyntax(text) {
|
|
231
|
+
return (text
|
|
232
|
+
// Headings: leading `#` markers
|
|
233
|
+
.replace(/^ {0,3}#{1,6}\s+/gm, '')
|
|
234
|
+
// Blockquotes: leading `>` markers (possibly nested). Each repetition
|
|
235
|
+
// of the outer `+` consumes a mandatory `>` first, so it can't loop on
|
|
236
|
+
// an empty match — linear, despite the nested-quantifier shape the
|
|
237
|
+
// linter's heuristic flags.
|
|
238
|
+
// eslint-disable-next-line security/detect-unsafe-regex
|
|
239
|
+
.replace(/^ {0,3}(?:>\s?)+/gm, '')
|
|
240
|
+
// Thematic breaks: a line of 3+ `-`, `*`, or `_` (optionally
|
|
241
|
+
// space-separated). The backreference (`\1`) pins every repetition to
|
|
242
|
+
// the same captured character, which the linter's heuristic doesn't
|
|
243
|
+
// model — same false-positive shape as above.
|
|
244
|
+
// eslint-disable-next-line security/detect-unsafe-regex
|
|
245
|
+
.replace(/^ {0,3}([-*_])(?:\s*\1){2,}\s*$/gm, '')
|
|
246
|
+
// List markers: bullet or ordered
|
|
247
|
+
.replace(/^(\s*)[-*+]\s+/gm, '$1')
|
|
248
|
+
.replace(/^(\s*)\d+[.)]\s+/gm, '$1')
|
|
249
|
+
// Images: keep alt text, drop the URL entirely
|
|
250
|
+
.replace(/!\[([^\]]*)\]\([^)]*\)/g, '$1')
|
|
251
|
+
// Links: keep the link text, drop the URL
|
|
252
|
+
.replace(/\[([^\]]*)\]\([^)]*\)/g, '$1')
|
|
253
|
+
// Strikethrough / bold / italic — longest markers first so `**` isn't
|
|
254
|
+
// consumed as two `*` matches
|
|
255
|
+
.replace(/~~([^~]+)~~/g, '$1')
|
|
256
|
+
.replace(/\*\*([^*]+)\*\*/g, '$1')
|
|
257
|
+
.replace(/__([^_]+)__/g, '$1')
|
|
258
|
+
.replace(/\*([^*]+)\*/g, '$1')
|
|
259
|
+
.replace(/\b_([^_]+)_\b/g, '$1'));
|
|
260
|
+
}
|
|
261
|
+
/** Trim each line, collapse runs of blank lines, and trim the whole result. Preserves paragraph breaks. */
|
|
262
|
+
function collapseWhitespace(text) {
|
|
263
|
+
return text
|
|
264
|
+
.split('\n')
|
|
265
|
+
.map((line) => line.replace(/[ \t]+/g, ' ').trim())
|
|
266
|
+
.join('\n')
|
|
267
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
268
|
+
.trim();
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Convert MDX/Markdown body content to plain prose text.
|
|
272
|
+
*
|
|
273
|
+
* See the module doc above for the full pipeline and why this exists as a
|
|
274
|
+
* distinct transform from `stripMdxImports`. In short: frontmatter, code
|
|
275
|
+
* fences, inline code, JSX tags/expressions, and Markdown syntax are all
|
|
276
|
+
* stripped down to their human-readable text — code content and link/image
|
|
277
|
+
* text are kept, everything else is discarded. Paired custom components
|
|
278
|
+
* lose only their tags; the prose between them survives.
|
|
279
|
+
*
|
|
280
|
+
* HTML/MDX comments (`<!-- ... -->`) are removed along with their contents:
|
|
281
|
+
* an authoring note is text the author marked as not-for-readers, so it does
|
|
282
|
+
* not belong in a search index or an AI export.
|
|
283
|
+
*
|
|
284
|
+
* Output preserves paragraph breaks (blank lines) but is not further
|
|
285
|
+
* chunked, weighted, or field-selected — composing that into a search
|
|
286
|
+
* document is left to the caller, since that logic is where adopter search
|
|
287
|
+
* indexes genuinely diverge (see docs/adopter-migration.md).
|
|
288
|
+
*/
|
|
289
|
+
export function toPlainText(markdown) {
|
|
290
|
+
const { content } = matter(markdown);
|
|
291
|
+
const withoutImports = stripMdxImports(content);
|
|
292
|
+
const { masked, restore } = maskCode(withoutImports);
|
|
293
|
+
let result = masked;
|
|
294
|
+
result = stripHtmlComments(result);
|
|
295
|
+
result = result.replace(TAG_RE, ' ');
|
|
296
|
+
result = stripBraceExpressions(result);
|
|
297
|
+
result = stripMarkdownSyntax(result);
|
|
298
|
+
result = restore(result);
|
|
299
|
+
result = collapseWhitespace(result);
|
|
300
|
+
return result;
|
|
301
|
+
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* components, so nested components are handled naturally (inner first,
|
|
10
10
|
* outer on subsequent passes).
|
|
11
11
|
*/
|
|
12
|
-
import type { ComponentProps, ComponentTransforms } from './types';
|
|
12
|
+
import type { ComponentProps, ComponentTransforms } from './types.js';
|
|
13
13
|
/**
|
|
14
14
|
* Parse JSX attribute string into a props object.
|
|
15
15
|
*
|
|
@@ -24,4 +24,3 @@ export declare function parseComponentProps(attrString: string): ComponentProps;
|
|
|
24
24
|
* handle nesting (inner components first, outer on subsequent passes).
|
|
25
25
|
*/
|
|
26
26
|
export declare function applyComponentTransforms(body: string, transforms: ComponentTransforms): string;
|
|
27
|
-
//# sourceMappingURL=transform-components.d.ts.map
|
|
@@ -42,6 +42,75 @@ const BLOCK_RESTORE_RE = /<<CODEBLOCK(\d+)>>/g;
|
|
|
42
42
|
const INLINE_PREFIX = '<<INLINECODE';
|
|
43
43
|
const INLINE_SUFFIX = '>>';
|
|
44
44
|
const INLINE_RESTORE_RE = /<<INLINECODE(\d+)>>/g;
|
|
45
|
+
/** True if `line` is a valid closing fence line for `marker` ("```" or "~~~"): the marker
|
|
46
|
+
* followed by nothing but whitespace through end of line — matching what `\1\s*$` required in
|
|
47
|
+
* the regex this replaced. */
|
|
48
|
+
function isFenceCloseLine(line, marker) {
|
|
49
|
+
return line.startsWith(marker) && /^\s*$/.test(line.slice(marker.length));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Mask fenced code blocks (` ``` `/`~~~`), capturing each block's raw text (fence lines
|
|
53
|
+
* included) exactly as `maskCodeBlocks` used to via `/^(```|~~~).*\n[\s\S]*?\n\1\s*$/gm`.
|
|
54
|
+
*
|
|
55
|
+
* A hand-rolled line scan, not that regex: it is a polynomial-ReDoS shape (measured ~9s on
|
|
56
|
+
* ~530KB of body text with many unclosed fence openers — an ordinary authoring accident, not a
|
|
57
|
+
* crafted payload) that CodeQL and three review rounds both missed elsewhere in this package
|
|
58
|
+
* (see `ai/to-plain-text.ts`'s identical fix). The lazy `[\s\S]*?` has no bound on how far it
|
|
59
|
+
* must scan looking for a closing `\1` that, for an unclosed fence, never arrives — it exhausts
|
|
60
|
+
* to the end of the string before giving up on that starting line, and `/gm` retries the same
|
|
61
|
+
* exhaustive scan at every subsequent fence-opener line.
|
|
62
|
+
*
|
|
63
|
+
* This scans each line once. `nextCloseLine` is precomputed per marker type via a single
|
|
64
|
+
* backward pass, so any opener's nearest closer (or "none exists") is an O(1) lookup instead of
|
|
65
|
+
* a fresh forward scan — the change that keeps the whole function O(n) regardless of how many
|
|
66
|
+
* fences are opened and never closed.
|
|
67
|
+
*
|
|
68
|
+
* One documented, harmless divergence from the replaced regex: `\s*` there is greedy over `\s`
|
|
69
|
+
* (which includes `\n`), so on a closer immediately followed by blank lines it could consume
|
|
70
|
+
* some of them into the match. This scan never does. Verified by fuzzing 8,000 random
|
|
71
|
+
* fence/marker combinations through this module's actual `applyComponentTransforms` pipeline:
|
|
72
|
+
* final output was byte-identical in 7,999/8,000 cases, and the one divergence was an extra
|
|
73
|
+
* blank line in a maximally adversarial nested-tag-plus-fence input, never a content change —
|
|
74
|
+
* `\s` is never itself matched by any component-tag pattern, so which side of a placeholder a
|
|
75
|
+
* run of blank lines lands on cannot affect what a transform sees or produces.
|
|
76
|
+
*/
|
|
77
|
+
function maskFencedCodeBlocks(body, blocks) {
|
|
78
|
+
const lines = body.split('\n');
|
|
79
|
+
const lineCount = lines.length;
|
|
80
|
+
// nextCloseLine[marker][i] = the nearest index >= i that closes `marker`, or -1 if none exists
|
|
81
|
+
// at or after i. Built right-to-left so each entry is O(1) given the next one.
|
|
82
|
+
const nextCloseLine = {
|
|
83
|
+
'```': new Array(lineCount + 1).fill(-1),
|
|
84
|
+
'~~~': new Array(lineCount + 1).fill(-1),
|
|
85
|
+
};
|
|
86
|
+
for (let i = lineCount - 1; i >= 0; i--) {
|
|
87
|
+
nextCloseLine['```'][i] = isFenceCloseLine(lines[i], '```') ? i : nextCloseLine['```'][i + 1];
|
|
88
|
+
nextCloseLine['~~~'][i] = isFenceCloseLine(lines[i], '~~~') ? i : nextCloseLine['~~~'][i + 1];
|
|
89
|
+
}
|
|
90
|
+
const outLines = [];
|
|
91
|
+
let i = 0;
|
|
92
|
+
while (i < lineCount) {
|
|
93
|
+
const line = lines[i];
|
|
94
|
+
const marker = line.startsWith('```') ? '```' : line.startsWith('~~~') ? '~~~' : null;
|
|
95
|
+
// A closer can never be the very next line: the original pattern requires TWO separate `\n`
|
|
96
|
+
// matches between the opener and `\1` (one ending the opener's line, one immediately before
|
|
97
|
+
// the closer), so even zero-width content needs a line of its own between them.
|
|
98
|
+
const searchFrom = i + 2;
|
|
99
|
+
const closeIndex = marker && searchFrom < lineCount ? nextCloseLine[marker][searchFrom] : -1;
|
|
100
|
+
if (!marker || closeIndex === -1) {
|
|
101
|
+
outLines.push(line);
|
|
102
|
+
i++;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
// Whole matched span (fence lines included), matching the replaced regex's own capture.
|
|
106
|
+
const block = lines.slice(i, closeIndex + 1).join('\n');
|
|
107
|
+
const idx = blocks.length;
|
|
108
|
+
blocks.push(block);
|
|
109
|
+
outLines.push(`${BLOCK_PREFIX}${idx}${BLOCK_SUFFIX}`);
|
|
110
|
+
i = closeIndex + 1;
|
|
111
|
+
}
|
|
112
|
+
return outLines.join('\n');
|
|
113
|
+
}
|
|
45
114
|
/**
|
|
46
115
|
* Mask fenced code blocks and inline code spans so component transforms
|
|
47
116
|
* don't touch them. Returns the masked string and a restore function.
|
|
@@ -50,11 +119,7 @@ function maskCodeBlocks(body) {
|
|
|
50
119
|
const blocks = [];
|
|
51
120
|
const inlines = [];
|
|
52
121
|
// 1. Mask fenced code blocks
|
|
53
|
-
let masked = body
|
|
54
|
-
const idx = blocks.length;
|
|
55
|
-
blocks.push(block);
|
|
56
|
-
return `${BLOCK_PREFIX}${idx}${BLOCK_SUFFIX}`;
|
|
57
|
-
});
|
|
122
|
+
let masked = maskFencedCodeBlocks(body, blocks);
|
|
58
123
|
// 2. Mask inline code spans (double-backtick first, then single-backtick)
|
|
59
124
|
masked = masked.replace(/``[^`]+``|`[^`]+`/g, (span) => {
|
|
60
125
|
const idx = inlines.length;
|
|
@@ -165,4 +230,3 @@ function findMatchingClose(body, startFrom, name, closeTag) {
|
|
|
165
230
|
function escapeRegex(s) {
|
|
166
231
|
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
167
232
|
}
|
|
168
|
-
//# sourceMappingURL=transform-components.js.map
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* These types define the configuration for generating AI-consumable markdown
|
|
5
5
|
* from CanopyCMS content, and the output manifest/metadata structures.
|
|
6
6
|
*/
|
|
7
|
-
import type { FieldConfig } from '../config';
|
|
7
|
+
import type { FieldConfig } from '../config/index.js';
|
|
8
8
|
/**
|
|
9
9
|
* Metadata about an entry, provided to filter/predicate functions.
|
|
10
10
|
* Does not include the full data payload — use `where` predicates for
|
|
@@ -234,4 +234,3 @@ export interface AIEntry extends AIEntryMeta {
|
|
|
234
234
|
*/
|
|
235
235
|
appendedSections?: string;
|
|
236
236
|
}
|
|
237
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/ai/types.js
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
* (double-hold on purge, release-then-save ordering on repair).
|
|
11
11
|
*/
|
|
12
12
|
import { z } from 'zod';
|
|
13
|
-
import type { BranchAccessControl, BranchMetadata, BranchStatus } from '../types';
|
|
14
|
-
import { type BranchHealthEntry } from '../branch-health';
|
|
15
|
-
import type { ApiResponse } from './types';
|
|
13
|
+
import type { BranchAccessControl, BranchMetadata, BranchStatus } from '../types.js';
|
|
14
|
+
import { type BranchHealthEntry } from '../branch-health.js';
|
|
15
|
+
import type { ApiResponse } from './types.js';
|
|
16
16
|
export interface BranchHealthData {
|
|
17
17
|
entries: BranchHealthEntry[];
|
|
18
18
|
generatedAt: string;
|
|
@@ -73,22 +73,22 @@ export type BranchDirParams = z.infer<typeof branchDirParamsSchema>;
|
|
|
73
73
|
* router/generate-client import.
|
|
74
74
|
*/
|
|
75
75
|
export declare const ADMIN_BRANCH_HEALTH_ROUTES: {
|
|
76
|
-
readonly branchHealth: import("./route-builder").RouteDefinition<undefined, undefined, BranchHealthResponse>;
|
|
77
|
-
readonly purgeBranchDir: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
76
|
+
readonly branchHealth: import("./route-builder.js").RouteDefinition<undefined, undefined, BranchHealthResponse>;
|
|
77
|
+
readonly purgeBranchDir: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
78
78
|
dirName: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
79
79
|
}, "strip", z.ZodTypeAny, {
|
|
80
80
|
dirName: string;
|
|
81
81
|
}, {
|
|
82
82
|
dirName: string;
|
|
83
83
|
}>, undefined, PurgeBranchDirResponse>;
|
|
84
|
-
readonly repairBranchDir: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
84
|
+
readonly repairBranchDir: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
85
85
|
dirName: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
86
86
|
}, "strip", z.ZodTypeAny, {
|
|
87
87
|
dirName: string;
|
|
88
88
|
}, {
|
|
89
89
|
dirName: string;
|
|
90
90
|
}>, undefined, RepairBranchDirResponse>;
|
|
91
|
-
readonly repairContentDuplicates: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
91
|
+
readonly repairContentDuplicates: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
92
92
|
dirName: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
93
93
|
}, "strip", z.ZodTypeAny, {
|
|
94
94
|
dirName: string;
|
|
@@ -97,4 +97,3 @@ export declare const ADMIN_BRANCH_HEALTH_ROUTES: {
|
|
|
97
97
|
}>, undefined, RepairContentDuplicatesResponse>;
|
|
98
98
|
};
|
|
99
99
|
export {};
|
|
100
|
-
//# sourceMappingURL=admin-branch-health.d.ts.map
|
package/dist/api/admin.d.ts
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
* admin-branch-health.ts and are merged into ADMIN_ROUTES below.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
-
import type { ApiResponse } from './types';
|
|
10
|
-
import type { Task, QueueStats, CorruptTaskFile } from '../worker/task-queue';
|
|
11
|
-
import type { WorkerStatusReport } from '../types';
|
|
12
|
-
import type { OperatingMode } from '../operating-mode';
|
|
13
|
-
export type { BranchHealthResponse, PurgeBranchDirResponse, RepairBranchDirResponse, RepairContentDuplicatesResponse, } from './admin-branch-health';
|
|
9
|
+
import type { ApiResponse } from './types.js';
|
|
10
|
+
import type { Task, QueueStats, CorruptTaskFile } from '../worker/task-queue.js';
|
|
11
|
+
import type { WorkerStatusReport } from '../types.js';
|
|
12
|
+
import type { OperatingMode } from '../operating-mode/index.js';
|
|
13
|
+
export type { BranchHealthResponse, PurgeBranchDirResponse, RepairBranchDirResponse, RepairContentDuplicatesResponse, } from './admin-branch-health.js';
|
|
14
14
|
export type WorkerLivenessState = 'alive' | 'stale' | 'absent';
|
|
15
15
|
export interface WorkerLiveness {
|
|
16
16
|
/**
|
|
@@ -89,30 +89,30 @@ export type DeleteTaskParams = z.infer<typeof deleteTaskParamsSchema>;
|
|
|
89
89
|
* `ADMIN_ROUTES` import.
|
|
90
90
|
*/
|
|
91
91
|
export declare const ADMIN_ROUTES: {
|
|
92
|
-
readonly branchHealth: import("./route-builder").RouteDefinition<undefined, undefined, import("./admin-branch-health").BranchHealthResponse>;
|
|
93
|
-
readonly purgeBranchDir: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
92
|
+
readonly branchHealth: import("./route-builder.js").RouteDefinition<undefined, undefined, import("./admin-branch-health.js").BranchHealthResponse>;
|
|
93
|
+
readonly purgeBranchDir: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
94
94
|
dirName: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
95
95
|
}, "strip", z.ZodTypeAny, {
|
|
96
96
|
dirName: string;
|
|
97
97
|
}, {
|
|
98
98
|
dirName: string;
|
|
99
|
-
}>, undefined, import("./admin-branch-health").PurgeBranchDirResponse>;
|
|
100
|
-
readonly repairBranchDir: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
99
|
+
}>, undefined, import("./admin-branch-health.js").PurgeBranchDirResponse>;
|
|
100
|
+
readonly repairBranchDir: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
101
101
|
dirName: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
102
102
|
}, "strip", z.ZodTypeAny, {
|
|
103
103
|
dirName: string;
|
|
104
104
|
}, {
|
|
105
105
|
dirName: string;
|
|
106
|
-
}>, undefined, import("./admin-branch-health").RepairBranchDirResponse>;
|
|
107
|
-
readonly repairContentDuplicates: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
106
|
+
}>, undefined, import("./admin-branch-health.js").RepairBranchDirResponse>;
|
|
107
|
+
readonly repairContentDuplicates: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
108
108
|
dirName: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
109
109
|
}, "strip", z.ZodTypeAny, {
|
|
110
110
|
dirName: string;
|
|
111
111
|
}, {
|
|
112
112
|
dirName: string;
|
|
113
|
-
}>, undefined, import("./admin-branch-health").RepairContentDuplicatesResponse>;
|
|
114
|
-
readonly status: import("./route-builder").RouteDefinition<undefined, undefined, AdminStatusResponse>;
|
|
115
|
-
readonly listTasks: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
113
|
+
}>, undefined, import("./admin-branch-health.js").RepairContentDuplicatesResponse>;
|
|
114
|
+
readonly status: import("./route-builder.js").RouteDefinition<undefined, undefined, AdminStatusResponse>;
|
|
115
|
+
readonly listTasks: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
116
116
|
status: z.ZodEnum<["pending", "processing", "completed", "failed", "corrupt"]>;
|
|
117
117
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
118
118
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -122,14 +122,14 @@ export declare const ADMIN_ROUTES: {
|
|
|
122
122
|
status: "pending" | "processing" | "completed" | "failed" | "corrupt";
|
|
123
123
|
limit?: number | undefined;
|
|
124
124
|
}>, undefined, AdminTasksResponse>;
|
|
125
|
-
readonly retryTask: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
125
|
+
readonly retryTask: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
126
126
|
taskId: z.ZodString;
|
|
127
127
|
}, "strip", z.ZodTypeAny, {
|
|
128
128
|
taskId: string;
|
|
129
129
|
}, {
|
|
130
130
|
taskId: string;
|
|
131
131
|
}>, undefined, AdminRetryTaskResponse>;
|
|
132
|
-
readonly deleteTask: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
132
|
+
readonly deleteTask: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
133
133
|
status: z.ZodEnum<["pending", "failed", "corrupt"]>;
|
|
134
134
|
fileName: z.ZodEffects<z.ZodString, string, string>;
|
|
135
135
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -140,4 +140,3 @@ export declare const ADMIN_ROUTES: {
|
|
|
140
140
|
fileName: string;
|
|
141
141
|
}>, undefined, AdminDeleteTaskResponse>;
|
|
142
142
|
};
|
|
143
|
-
//# sourceMappingURL=admin.d.ts.map
|
package/dist/api/admin.js
CHANGED
package/dist/api/assets.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { ApiResponse } from './types';
|
|
3
|
-
import type { RouteDefinition } from '../http/router';
|
|
4
|
-
import type { AssetMeta, StagedUploadTarget } from '../assets/types';
|
|
2
|
+
import type { ApiResponse } from './types.js';
|
|
3
|
+
import type { RouteDefinition } from '../http/router.js';
|
|
4
|
+
import type { AssetMeta, StagedUploadTarget } from '../assets/types.js';
|
|
5
5
|
/** An asset's persisted meta plus its computed, root-relative public URL. */
|
|
6
6
|
export type AssetRecord = AssetMeta & {
|
|
7
7
|
src: string;
|
|
@@ -77,7 +77,7 @@ export type DeleteAssetParams = z.infer<typeof deleteAssetParamsSchema>;
|
|
|
77
77
|
* Exported routes for router registration and client codegen.
|
|
78
78
|
*/
|
|
79
79
|
export declare const ASSET_ROUTES: {
|
|
80
|
-
readonly presign: import("./route-builder").RouteDefinition<undefined, z.ZodObject<{
|
|
80
|
+
readonly presign: import("./route-builder.js").RouteDefinition<undefined, z.ZodObject<{
|
|
81
81
|
filename: z.ZodString;
|
|
82
82
|
contentType: z.ZodString;
|
|
83
83
|
size: z.ZodOptional<z.ZodNumber>;
|
|
@@ -90,7 +90,7 @@ export declare const ASSET_ROUTES: {
|
|
|
90
90
|
contentType: string;
|
|
91
91
|
size?: number | undefined;
|
|
92
92
|
}>, PresignAssetResponse>;
|
|
93
|
-
readonly finalize: import("./route-builder").RouteDefinition<undefined, z.ZodObject<{
|
|
93
|
+
readonly finalize: import("./route-builder.js").RouteDefinition<undefined, z.ZodObject<{
|
|
94
94
|
stagingKey: z.ZodString;
|
|
95
95
|
filename: z.ZodString;
|
|
96
96
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -100,8 +100,8 @@ export declare const ASSET_ROUTES: {
|
|
|
100
100
|
filename: string;
|
|
101
101
|
stagingKey: string;
|
|
102
102
|
}>, FinalizeAssetResponse>;
|
|
103
|
-
readonly uploadProxied: import("./route-builder").RouteDefinition<undefined, undefined, FinalizeAssetResponse>;
|
|
104
|
-
readonly list: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
103
|
+
readonly uploadProxied: import("./route-builder.js").RouteDefinition<undefined, undefined, FinalizeAssetResponse>;
|
|
104
|
+
readonly list: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
105
105
|
cursor: z.ZodOptional<z.ZodString>;
|
|
106
106
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
107
107
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -111,7 +111,7 @@ export declare const ASSET_ROUTES: {
|
|
|
111
111
|
cursor?: string | undefined;
|
|
112
112
|
limit?: number | undefined;
|
|
113
113
|
}>, undefined, AssetsListResponse>;
|
|
114
|
-
readonly delete: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
114
|
+
readonly delete: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
115
115
|
key: z.ZodString;
|
|
116
116
|
}, "strip", z.ZodTypeAny, {
|
|
117
117
|
key: string;
|
|
@@ -125,4 +125,3 @@ export declare const ASSET_ROUTES: {
|
|
|
125
125
|
*/
|
|
126
126
|
export declare const assetRawRoute: RouteDefinition;
|
|
127
127
|
export {};
|
|
128
|
-
//# sourceMappingURL=assets.d.ts.map
|
package/dist/api/assets.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { ApiResponse } from './types';
|
|
2
|
+
import type { ApiResponse } from './types.js';
|
|
3
3
|
export interface MarkAsMergedParams {
|
|
4
4
|
branch: string;
|
|
5
5
|
}
|
|
@@ -20,8 +20,8 @@ export type BranchMergeResponse = ApiResponse<{
|
|
|
20
20
|
* guard lands (and a deployed instance's stranded main has no PR number, so
|
|
21
21
|
* it's refused there too).
|
|
22
22
|
*/
|
|
23
|
-
export declare const markAsMerged: import("./route-builder").RouteDefinition<z.ZodObject<{
|
|
24
|
-
branch: z.ZodType<import("../paths").BranchName, z.ZodTypeDef, import("../paths").BranchName>;
|
|
23
|
+
export declare const markAsMerged: import("./route-builder.js").RouteDefinition<z.ZodObject<{
|
|
24
|
+
branch: z.ZodType<import("../paths/index.js").BranchName, z.ZodTypeDef, import("../paths/index.js").BranchName>;
|
|
25
25
|
}, "strip", z.ZodTypeAny, {
|
|
26
26
|
branch: string & {
|
|
27
27
|
readonly __brand: "BranchName";
|
|
@@ -31,4 +31,3 @@ export declare const markAsMerged: import("./route-builder").RouteDefinition<z.Z
|
|
|
31
31
|
readonly __brand: "BranchName";
|
|
32
32
|
};
|
|
33
33
|
}>, undefined, BranchMergeResponse>;
|
|
34
|
-
//# sourceMappingURL=branch-merge.d.ts.map
|
package/dist/api/branch-merge.js
CHANGED