@orthacms/content-server 0.0.0-reserve.0
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/LICENSE +21 -0
- package/README.md +7 -0
- package/dist/define.d.ts +17 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +28 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/lib/collection/define.d.ts +35 -0
- package/dist/lib/collection/define.d.ts.map +1 -0
- package/dist/lib/collection/define.js +217 -0
- package/dist/lib/collection/table-builder.d.ts +28 -0
- package/dist/lib/collection/table-builder.d.ts.map +1 -0
- package/dist/lib/collection/table-builder.js +306 -0
- package/dist/lib/content-types/controllers/get-content-schema.controller.d.ts +24 -0
- package/dist/lib/content-types/controllers/get-content-schema.controller.d.ts.map +1 -0
- package/dist/lib/content-types/controllers/get-content-schema.controller.js +58 -0
- package/dist/lib/content-types/controllers/get-filter-fields.controller.d.ts +35 -0
- package/dist/lib/content-types/controllers/get-filter-fields.controller.d.ts.map +1 -0
- package/dist/lib/content-types/controllers/get-filter-fields.controller.js +74 -0
- package/dist/lib/content-types/controllers/list-content-schema.controller.d.ts +15 -0
- package/dist/lib/content-types/controllers/list-content-schema.controller.d.ts.map +1 -0
- package/dist/lib/content-types/controllers/list-content-schema.controller.js +38 -0
- package/dist/lib/content-types/queries/workspace-grants.query.d.ts +25 -0
- package/dist/lib/content-types/queries/workspace-grants.query.d.ts.map +1 -0
- package/dist/lib/content-types/queries/workspace-grants.query.js +45 -0
- package/dist/lib/content.module.d.ts +21 -0
- package/dist/lib/content.module.d.ts.map +1 -0
- package/dist/lib/content.module.js +264 -0
- package/dist/lib/content.tokens.d.ts +5 -0
- package/dist/lib/content.tokens.d.ts.map +1 -0
- package/dist/lib/content.tokens.js +9 -0
- package/dist/lib/copilot/content-tool.provider.d.ts +64 -0
- package/dist/lib/copilot/content-tool.provider.d.ts.map +1 -0
- package/dist/lib/copilot/content-tool.provider.js +309 -0
- package/dist/lib/copilot/diff-snapshots.d.ts +42 -0
- package/dist/lib/copilot/diff-snapshots.d.ts.map +1 -0
- package/dist/lib/copilot/diff-snapshots.js +77 -0
- package/dist/lib/copilot/entry-proposal.applier.d.ts +89 -0
- package/dist/lib/copilot/entry-proposal.applier.d.ts.map +1 -0
- package/dist/lib/copilot/entry-proposal.applier.js +245 -0
- package/dist/lib/copilot/entry-proposal.provider.d.ts +157 -0
- package/dist/lib/copilot/entry-proposal.provider.d.ts.map +1 -0
- package/dist/lib/copilot/entry-proposal.provider.js +619 -0
- package/dist/lib/copilot/filter-schema.d.ts +61 -0
- package/dist/lib/copilot/filter-schema.d.ts.map +1 -0
- package/dist/lib/copilot/filter-schema.js +139 -0
- package/dist/lib/copilot/project-entry.d.ts +23 -0
- package/dist/lib/copilot/project-entry.d.ts.map +1 -0
- package/dist/lib/copilot/project-entry.js +36 -0
- package/dist/lib/copilot/proposal-kinds.d.ts +30 -0
- package/dist/lib/copilot/proposal-kinds.d.ts.map +1 -0
- package/dist/lib/copilot/proposal-kinds.js +32 -0
- package/dist/lib/copilot/revision-tool.provider.d.ts +56 -0
- package/dist/lib/copilot/revision-tool.provider.d.ts.map +1 -0
- package/dist/lib/copilot/revision-tool.provider.js +215 -0
- package/dist/lib/docs/content-schemas.d.ts +34 -0
- package/dist/lib/docs/content-schemas.d.ts.map +1 -0
- package/dist/lib/docs/content-schemas.js +617 -0
- package/dist/lib/docs/describe-content-api.d.ts +22 -0
- package/dist/lib/docs/describe-content-api.d.ts.map +1 -0
- package/dist/lib/docs/describe-content-api.js +173 -0
- package/dist/lib/docs/field-schema.d.ts +28 -0
- package/dist/lib/docs/field-schema.d.ts.map +1 -0
- package/dist/lib/docs/field-schema.js +214 -0
- package/dist/lib/entries/application/use-cases/bulk-publish-entries.use-case.d.ts +23 -0
- package/dist/lib/entries/application/use-cases/bulk-publish-entries.use-case.d.ts.map +1 -0
- package/dist/lib/entries/application/use-cases/bulk-publish-entries.use-case.js +77 -0
- package/dist/lib/entries/application/use-cases/bulk-unpublish-entries.use-case.d.ts +23 -0
- package/dist/lib/entries/application/use-cases/bulk-unpublish-entries.use-case.d.ts.map +1 -0
- package/dist/lib/entries/application/use-cases/bulk-unpublish-entries.use-case.js +66 -0
- package/dist/lib/entries/application/use-cases/publish-entry.use-case.d.ts +43 -0
- package/dist/lib/entries/application/use-cases/publish-entry.use-case.d.ts.map +1 -0
- package/dist/lib/entries/application/use-cases/publish-entry.use-case.js +106 -0
- package/dist/lib/entries/application/use-cases/unpublish-entry.use-case.d.ts +30 -0
- package/dist/lib/entries/application/use-cases/unpublish-entry.use-case.d.ts.map +1 -0
- package/dist/lib/entries/application/use-cases/unpublish-entry.use-case.js +70 -0
- package/dist/lib/entries/controllers/bulk-entries.controller.d.ts +26 -0
- package/dist/lib/entries/controllers/bulk-entries.controller.d.ts.map +1 -0
- package/dist/lib/entries/controllers/create-entry.controller.d.ts +20 -0
- package/dist/lib/entries/controllers/create-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/controllers/delete-entry.controller.d.ts +24 -0
- package/dist/lib/entries/controllers/delete-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/controllers/get-entry.controller.d.ts +34 -0
- package/dist/lib/entries/controllers/get-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/controllers/list-entries.controller.d.ts +20 -0
- package/dist/lib/entries/controllers/list-entries.controller.d.ts.map +1 -0
- package/dist/lib/entries/controllers/publish-entry.controller.d.ts +19 -0
- package/dist/lib/entries/controllers/publish-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/controllers/resolve-type.d.ts +9 -0
- package/dist/lib/entries/controllers/resolve-type.d.ts.map +1 -0
- package/dist/lib/entries/controllers/update-entry.controller.d.ts +18 -0
- package/dist/lib/entries/controllers/update-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/domain/entry-publish-blocked.error.d.ts +13 -0
- package/dist/lib/entries/domain/entry-publish-blocked.error.d.ts.map +1 -0
- package/dist/lib/entries/domain/entry-publish-blocked.error.js +19 -0
- package/dist/lib/entries/domain/entry.d.ts +71 -0
- package/dist/lib/entries/domain/entry.d.ts.map +1 -0
- package/dist/lib/entries/domain/entry.js +90 -0
- package/dist/lib/entries/domain/events/entry-events.d.ts +67 -0
- package/dist/lib/entries/domain/events/entry-events.d.ts.map +1 -0
- package/dist/lib/entries/domain/events/entry-events.js +100 -0
- package/dist/lib/entries/dto/bulk-ids.dto.d.ts +11 -0
- package/dist/lib/entries/dto/bulk-ids.dto.d.ts.map +1 -0
- package/dist/lib/entries/dto/list-entries-query.dto.d.ts +46 -0
- package/dist/lib/entries/dto/list-entries-query.dto.d.ts.map +1 -0
- package/dist/lib/entries/dto/relation-delta-map.validator.d.ts +19 -0
- package/dist/lib/entries/dto/relation-delta-map.validator.d.ts.map +1 -0
- package/dist/lib/entries/dto/save-entry.dto.d.ts +46 -0
- package/dist/lib/entries/dto/save-entry.dto.d.ts.map +1 -0
- package/dist/lib/entries/entries.constants.d.ts +19 -0
- package/dist/lib/entries/entries.constants.d.ts.map +1 -0
- package/dist/lib/entries/entries.constants.js +21 -0
- package/dist/lib/entries/http/controllers/bulk-entries.controller.d.ts +33 -0
- package/dist/lib/entries/http/controllers/bulk-entries.controller.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/bulk-entries.controller.js +143 -0
- package/dist/lib/entries/http/controllers/create-entry.controller.d.ts +21 -0
- package/dist/lib/entries/http/controllers/create-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/create-entry.controller.js +52 -0
- package/dist/lib/entries/http/controllers/delete-entry.controller.d.ts +25 -0
- package/dist/lib/entries/http/controllers/delete-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/delete-entry.controller.js +84 -0
- package/dist/lib/entries/http/controllers/get-entry.controller.d.ts +44 -0
- package/dist/lib/entries/http/controllers/get-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/get-entry.controller.js +124 -0
- package/dist/lib/entries/http/controllers/list-entries.controller.d.ts +20 -0
- package/dist/lib/entries/http/controllers/list-entries.controller.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/list-entries.controller.js +52 -0
- package/dist/lib/entries/http/controllers/publish-entry.controller.d.ts +22 -0
- package/dist/lib/entries/http/controllers/publish-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/publish-entry.controller.js +68 -0
- package/dist/lib/entries/http/controllers/resolve-type.d.ts +9 -0
- package/dist/lib/entries/http/controllers/resolve-type.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/resolve-type.js +16 -0
- package/dist/lib/entries/http/controllers/to-actor.d.ts +13 -0
- package/dist/lib/entries/http/controllers/to-actor.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/to-actor.js +15 -0
- package/dist/lib/entries/http/controllers/update-entry.controller.d.ts +19 -0
- package/dist/lib/entries/http/controllers/update-entry.controller.d.ts.map +1 -0
- package/dist/lib/entries/http/controllers/update-entry.controller.js +51 -0
- package/dist/lib/entries/http/dto/bulk-ids.dto.d.ts +11 -0
- package/dist/lib/entries/http/dto/bulk-ids.dto.d.ts.map +1 -0
- package/dist/lib/entries/http/dto/bulk-ids.dto.js +33 -0
- package/dist/lib/entries/http/dto/list-entries-query.dto.d.ts +66 -0
- package/dist/lib/entries/http/dto/list-entries-query.dto.d.ts.map +1 -0
- package/dist/lib/entries/http/dto/list-entries-query.dto.js +192 -0
- package/dist/lib/entries/http/dto/relation-delta-map.validator.d.ts +30 -0
- package/dist/lib/entries/http/dto/relation-delta-map.validator.d.ts.map +1 -0
- package/dist/lib/entries/http/dto/relation-delta-map.validator.js +102 -0
- package/dist/lib/entries/http/dto/save-entry.dto.d.ts +48 -0
- package/dist/lib/entries/http/dto/save-entry.dto.d.ts.map +1 -0
- package/dist/lib/entries/http/dto/save-entry.dto.js +120 -0
- package/dist/lib/entries/http/guards/content-grant.guard.d.ts +37 -0
- package/dist/lib/entries/http/guards/content-grant.guard.d.ts.map +1 -0
- package/dist/lib/entries/http/guards/content-grant.guard.js +67 -0
- package/dist/lib/entries/infrastructure/persistence/bulk-publish-verdicts.d.ts +22 -0
- package/dist/lib/entries/infrastructure/persistence/bulk-publish-verdicts.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/persistence/bulk-publish-verdicts.js +81 -0
- package/dist/lib/entries/infrastructure/persistence/entry-counter.service.d.ts +42 -0
- package/dist/lib/entries/infrastructure/persistence/entry-counter.service.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/persistence/entry-counter.service.js +73 -0
- package/dist/lib/entries/infrastructure/persistence/entry-row.d.ts +56 -0
- package/dist/lib/entries/infrastructure/persistence/entry-row.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/persistence/entry-row.js +185 -0
- package/dist/lib/entries/infrastructure/persistence/entry-writer.service.d.ts +392 -0
- package/dist/lib/entries/infrastructure/persistence/entry-writer.service.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/persistence/entry-writer.service.js +1223 -0
- package/dist/lib/entries/infrastructure/persistence/field-selection.d.ts +24 -0
- package/dist/lib/entries/infrastructure/persistence/field-selection.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/persistence/media-accept.d.ts +23 -0
- package/dist/lib/entries/infrastructure/persistence/media-accept.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/persistence/media-accept.js +55 -0
- package/dist/lib/entries/infrastructure/persistence/relation-link.service.d.ts +327 -0
- package/dist/lib/entries/infrastructure/persistence/relation-link.service.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/persistence/relation-link.service.js +1008 -0
- package/dist/lib/entries/infrastructure/queries/bulk-publish-preview.query.d.ts +19 -0
- package/dist/lib/entries/infrastructure/queries/bulk-publish-preview.query.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/queries/bulk-publish-preview.query.js +39 -0
- package/dist/lib/entries/infrastructure/queries/entries.service.d.ts +64 -0
- package/dist/lib/entries/infrastructure/queries/entries.service.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/queries/entries.service.js +202 -0
- package/dist/lib/entries/infrastructure/queries/entry-filter-schema.d.ts +40 -0
- package/dist/lib/entries/infrastructure/queries/entry-filter-schema.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/queries/entry-filter-surface.d.ts +38 -0
- package/dist/lib/entries/infrastructure/queries/entry-filter-surface.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/queries/entry-filter-surface.js +310 -0
- package/dist/lib/entries/infrastructure/queries/entry-scalar-fields.d.ts +25 -0
- package/dist/lib/entries/infrastructure/queries/entry-scalar-fields.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/queries/entry-scalar-fields.js +51 -0
- package/dist/lib/entries/infrastructure/queries/entry-search.d.ts +19 -0
- package/dist/lib/entries/infrastructure/queries/entry-search.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/queries/entry-search.js +52 -0
- package/dist/lib/entries/infrastructure/queries/media-refs.query.d.ts +21 -0
- package/dist/lib/entries/infrastructure/queries/media-refs.query.d.ts.map +1 -0
- package/dist/lib/entries/infrastructure/queries/media-refs.query.js +117 -0
- package/dist/lib/entries/services/entries.service.d.ts +59 -0
- package/dist/lib/entries/services/entries.service.d.ts.map +1 -0
- package/dist/lib/entries/services/entry-counter.service.d.ts +31 -0
- package/dist/lib/entries/services/entry-counter.service.d.ts.map +1 -0
- package/dist/lib/entries/services/entry-filter-schema.d.ts +32 -0
- package/dist/lib/entries/services/entry-filter-schema.d.ts.map +1 -0
- package/dist/lib/entries/services/entry-row.d.ts +56 -0
- package/dist/lib/entries/services/entry-row.d.ts.map +1 -0
- package/dist/lib/entries/services/entry-writer.service.d.ts +193 -0
- package/dist/lib/entries/services/entry-writer.service.d.ts.map +1 -0
- package/dist/lib/entries/services/relation-link.service.d.ts +115 -0
- package/dist/lib/entries/services/relation-link.service.d.ts.map +1 -0
- package/dist/lib/entries/types/bulk-publish.d.ts +75 -0
- package/dist/lib/entries/types/bulk-publish.d.ts.map +1 -0
- package/dist/lib/entries/types/bulk-publish.js +22 -0
- package/dist/lib/entries/types/entry-list-view.d.ts +205 -0
- package/dist/lib/entries/types/entry-list-view.d.ts.map +1 -0
- package/dist/lib/entries/types/entry-list-view.js +5 -0
- package/dist/lib/entries/types/filter-surface.d.ts +35 -0
- package/dist/lib/entries/types/filter-surface.d.ts.map +1 -0
- package/dist/lib/entries/types/filter-surface.js +2 -0
- package/dist/lib/extension/entry-extension-boot-check.d.ts +16 -0
- package/dist/lib/extension/entry-extension-boot-check.d.ts.map +1 -0
- package/dist/lib/extension/entry-extension-boot-check.js +42 -0
- package/dist/lib/extension/entry-extension.d.ts +225 -0
- package/dist/lib/extension/entry-extension.d.ts.map +1 -0
- package/dist/lib/extension/entry-extension.js +27 -0
- package/dist/lib/extension/media-asset-resolver.d.ts +85 -0
- package/dist/lib/extension/media-asset-resolver.d.ts.map +1 -0
- package/dist/lib/extension/media-asset-resolver.js +26 -0
- package/dist/lib/extension/per-locale-relation.d.ts +18 -0
- package/dist/lib/extension/per-locale-relation.d.ts.map +1 -0
- package/dist/lib/extension/relation-locale-sync.d.ts +62 -0
- package/dist/lib/extension/relation-locale-sync.d.ts.map +1 -0
- package/dist/lib/extension/relation-locale-sync.js +88 -0
- package/dist/lib/fields/index.d.ts +94 -0
- package/dist/lib/fields/index.d.ts.map +1 -0
- package/dist/lib/fields/index.js +203 -0
- package/dist/lib/insights/http/controllers/content-pipeline.controller.d.ts +16 -0
- package/dist/lib/insights/http/controllers/content-pipeline.controller.d.ts.map +1 -0
- package/dist/lib/insights/http/controllers/content-pipeline.controller.js +39 -0
- package/dist/lib/insights/http/controllers/content-punchcard.controller.d.ts +18 -0
- package/dist/lib/insights/http/controllers/content-punchcard.controller.d.ts.map +1 -0
- package/dist/lib/insights/http/controllers/content-punchcard.controller.js +42 -0
- package/dist/lib/insights/http/controllers/content-stale.controller.d.ts +17 -0
- package/dist/lib/insights/http/controllers/content-stale.controller.d.ts.map +1 -0
- package/dist/lib/insights/http/controllers/content-stale.controller.js +40 -0
- package/dist/lib/insights/http/controllers/content-totals.controller.d.ts +18 -0
- package/dist/lib/insights/http/controllers/content-totals.controller.d.ts.map +1 -0
- package/dist/lib/insights/http/controllers/content-totals.controller.js +42 -0
- package/dist/lib/insights/http/controllers/content-unshipped.controller.d.ts +17 -0
- package/dist/lib/insights/http/controllers/content-unshipped.controller.d.ts.map +1 -0
- package/dist/lib/insights/http/controllers/content-unshipped.controller.js +40 -0
- package/dist/lib/insights/http/controllers/content-velocity.controller.d.ts +17 -0
- package/dist/lib/insights/http/controllers/content-velocity.controller.d.ts.map +1 -0
- package/dist/lib/insights/http/controllers/content-velocity.controller.js +41 -0
- package/dist/lib/insights/http/dto/insights-range-query.dto.d.ts +15 -0
- package/dist/lib/insights/http/dto/insights-range-query.dto.d.ts.map +1 -0
- package/dist/lib/insights/http/dto/insights-range-query.dto.js +38 -0
- package/dist/lib/insights/infrastructure/queries/content-insights.query.d.ts +77 -0
- package/dist/lib/insights/infrastructure/queries/content-insights.query.d.ts.map +1 -0
- package/dist/lib/insights/infrastructure/queries/content-insights.query.js +380 -0
- package/dist/lib/insights/types/content-insights-view.d.ts +134 -0
- package/dist/lib/insights/types/content-insights-view.d.ts.map +1 -0
- package/dist/lib/insights/types/content-insights-view.js +10 -0
- package/dist/lib/mcp/content-tools.provider.d.ts +83 -0
- package/dist/lib/mcp/content-tools.provider.d.ts.map +1 -0
- package/dist/lib/mcp/content-tools.provider.js +441 -0
- package/dist/lib/mcp/tool-input.d.ts +43 -0
- package/dist/lib/mcp/tool-input.d.ts.map +1 -0
- package/dist/lib/mcp/tool-input.js +117 -0
- package/dist/lib/mcp/tool-schemas.d.ts +34 -0
- package/dist/lib/mcp/tool-schemas.d.ts.map +1 -0
- package/dist/lib/mcp/tool-schemas.js +282 -0
- package/dist/lib/public/controllers/get-public-entry.controller.d.ts +26 -0
- package/dist/lib/public/controllers/get-public-entry.controller.d.ts.map +1 -0
- package/dist/lib/public/controllers/list-public-entries.controller.d.ts +24 -0
- package/dist/lib/public/controllers/list-public-entries.controller.d.ts.map +1 -0
- package/dist/lib/public/controllers/public-schema.controller.d.ts +18 -0
- package/dist/lib/public/controllers/public-schema.controller.d.ts.map +1 -0
- package/dist/lib/public-api/http/api-token-request.d.ts +41 -0
- package/dist/lib/public-api/http/api-token-request.d.ts.map +1 -0
- package/dist/lib/public-api/http/api-token-request.js +2 -0
- package/dist/lib/public-api/http/controllers/public-content-types.controller.d.ts +31 -0
- package/dist/lib/public-api/http/controllers/public-content-types.controller.d.ts.map +1 -0
- package/dist/lib/public-api/http/controllers/public-content-types.controller.js +93 -0
- package/dist/lib/public-api/http/controllers/public-entries.controller.d.ts +101 -0
- package/dist/lib/public-api/http/controllers/public-entries.controller.d.ts.map +1 -0
- package/dist/lib/public-api/http/controllers/public-entries.controller.js +307 -0
- package/dist/lib/public-api/http/controllers/public-entry-writes.controller.d.ts +76 -0
- package/dist/lib/public-api/http/controllers/public-entry-writes.controller.d.ts.map +1 -0
- package/dist/lib/public-api/http/controllers/public-entry-writes.controller.js +353 -0
- package/dist/lib/public-api/http/controllers/resolve-granted-type.d.ts +42 -0
- package/dist/lib/public-api/http/controllers/resolve-granted-type.d.ts.map +1 -0
- package/dist/lib/public-api/http/controllers/resolve-granted-type.js +25 -0
- package/dist/lib/public-api/http/decorators/current-api-token.decorator.d.ts +8 -0
- package/dist/lib/public-api/http/decorators/current-api-token.decorator.d.ts.map +1 -0
- package/dist/lib/public-api/http/decorators/current-api-token.decorator.js +17 -0
- package/dist/lib/public-api/http/dto/public-bulk.dto.d.ts +58 -0
- package/dist/lib/public-api/http/dto/public-bulk.dto.d.ts.map +1 -0
- package/dist/lib/public-api/http/dto/public-bulk.dto.js +118 -0
- package/dist/lib/public-api/http/dto/public-list-entries-query.dto.d.ts +106 -0
- package/dist/lib/public-api/http/dto/public-list-entries-query.dto.d.ts.map +1 -0
- package/dist/lib/public-api/http/dto/public-list-entries-query.dto.js +297 -0
- package/dist/lib/public-api/http/dto/public-save-entry.dto.d.ts +39 -0
- package/dist/lib/public-api/http/dto/public-save-entry.dto.d.ts.map +1 -0
- package/dist/lib/public-api/http/dto/public-save-entry.dto.js +112 -0
- package/dist/lib/public-api/http/guards/api-token-workspace.guard.d.ts +25 -0
- package/dist/lib/public-api/http/guards/api-token-workspace.guard.d.ts.map +1 -0
- package/dist/lib/public-api/http/guards/api-token-workspace.guard.js +58 -0
- package/dist/lib/public-api/http/guards/api-token.guard.d.ts +32 -0
- package/dist/lib/public-api/http/guards/api-token.guard.d.ts.map +1 -0
- package/dist/lib/public-api/http/guards/api-token.guard.js +92 -0
- package/dist/lib/public-api/http/guards/draft-visibility.guard.d.ts +25 -0
- package/dist/lib/public-api/http/guards/draft-visibility.guard.d.ts.map +1 -0
- package/dist/lib/public-api/http/guards/draft-visibility.guard.js +56 -0
- package/dist/lib/public-api/infrastructure/bulk-save-op.d.ts +55 -0
- package/dist/lib/public-api/infrastructure/bulk-save-op.d.ts.map +1 -0
- package/dist/lib/public-api/infrastructure/bulk-save-op.js +61 -0
- package/dist/lib/public-api/infrastructure/field-selection.d.ts +21 -0
- package/dist/lib/public-api/infrastructure/field-selection.d.ts.map +1 -0
- package/dist/lib/public-api/infrastructure/field-selection.js +72 -0
- package/dist/lib/public-api/infrastructure/public-entries.query.d.ts +248 -0
- package/dist/lib/public-api/infrastructure/public-entries.query.d.ts.map +1 -0
- package/dist/lib/public-api/infrastructure/public-entries.query.js +557 -0
- package/dist/lib/public-api/infrastructure/public-entry-row.d.ts +31 -0
- package/dist/lib/public-api/infrastructure/public-entry-row.d.ts.map +1 -0
- package/dist/lib/public-api/infrastructure/public-entry-row.js +76 -0
- package/dist/lib/public-api/infrastructure/public-entry-writes.service.d.ts +188 -0
- package/dist/lib/public-api/infrastructure/public-entry-writes.service.d.ts.map +1 -0
- package/dist/lib/public-api/infrastructure/public-entry-writes.service.js +321 -0
- package/dist/lib/public-api/infrastructure/public-expansion.query.d.ts +98 -0
- package/dist/lib/public-api/infrastructure/public-expansion.query.d.ts.map +1 -0
- package/dist/lib/public-api/infrastructure/public-expansion.query.js +384 -0
- package/dist/lib/public-api/types/public-bulk.d.ts +77 -0
- package/dist/lib/public-api/types/public-bulk.d.ts.map +1 -0
- package/dist/lib/public-api/types/public-bulk.js +23 -0
- package/dist/lib/public-api/types/public-entry.d.ts +97 -0
- package/dist/lib/public-api/types/public-entry.d.ts.map +1 -0
- package/dist/lib/public-api/types/public-entry.js +8 -0
- package/dist/lib/public-api/types/public-expansion.d.ts +92 -0
- package/dist/lib/public-api/types/public-expansion.d.ts.map +1 -0
- package/dist/lib/public-api/types/public-expansion.js +2 -0
- package/dist/lib/registry/content-type-registry.d.ts +103 -0
- package/dist/lib/registry/content-type-registry.d.ts.map +1 -0
- package/dist/lib/registry/content-type-registry.js +155 -0
- package/dist/lib/revisions/application/ports/revision-store.d.ts +71 -0
- package/dist/lib/revisions/application/ports/revision-store.d.ts.map +1 -0
- package/dist/lib/revisions/application/ports/revision-store.js +9 -0
- package/dist/lib/revisions/application/use-cases/publish-revision.use-case.d.ts +40 -0
- package/dist/lib/revisions/application/use-cases/publish-revision.use-case.d.ts.map +1 -0
- package/dist/lib/revisions/application/use-cases/publish-revision.use-case.js +66 -0
- package/dist/lib/revisions/application/use-cases/restore-revision.use-case.d.ts +36 -0
- package/dist/lib/revisions/application/use-cases/restore-revision.use-case.d.ts.map +1 -0
- package/dist/lib/revisions/application/use-cases/restore-revision.use-case.js +57 -0
- package/dist/lib/revisions/domain/revision-status.d.ts +18 -0
- package/dist/lib/revisions/domain/revision-status.d.ts.map +1 -0
- package/dist/lib/revisions/domain/revision-status.js +18 -0
- package/dist/lib/revisions/domain/revision.d.ts +80 -0
- package/dist/lib/revisions/domain/revision.d.ts.map +1 -0
- package/dist/lib/revisions/domain/revision.js +84 -0
- package/dist/lib/revisions/http/controllers/publish-revision.controller.d.ts +19 -0
- package/dist/lib/revisions/http/controllers/publish-revision.controller.d.ts.map +1 -0
- package/dist/lib/revisions/http/controllers/publish-revision.controller.js +51 -0
- package/dist/lib/revisions/http/controllers/restore-revision.controller.d.ts +17 -0
- package/dist/lib/revisions/http/controllers/restore-revision.controller.d.ts.map +1 -0
- package/dist/lib/revisions/http/controllers/restore-revision.controller.js +49 -0
- package/dist/lib/revisions/http/controllers/revisions.controller.d.ts +20 -0
- package/dist/lib/revisions/http/controllers/revisions.controller.d.ts.map +1 -0
- package/dist/lib/revisions/http/controllers/revisions.controller.js +76 -0
- package/dist/lib/revisions/infrastructure/persistence/drizzle-revision.store.d.ts +33 -0
- package/dist/lib/revisions/infrastructure/persistence/drizzle-revision.store.d.ts.map +1 -0
- package/dist/lib/revisions/infrastructure/persistence/drizzle-revision.store.js +174 -0
- package/dist/lib/revisions/infrastructure/persistence/revision-snapshot.d.ts +17 -0
- package/dist/lib/revisions/infrastructure/persistence/revision-snapshot.d.ts.map +1 -0
- package/dist/lib/revisions/infrastructure/persistence/revision-snapshot.js +20 -0
- package/dist/lib/revisions/infrastructure/persistence/revision-table.d.ts +228 -0
- package/dist/lib/revisions/infrastructure/persistence/revision-table.d.ts.map +1 -0
- package/dist/lib/revisions/infrastructure/persistence/revision-table.js +57 -0
- package/dist/lib/revisions/infrastructure/queries/revision-refs.query.d.ts +22 -0
- package/dist/lib/revisions/infrastructure/queries/revision-refs.query.d.ts.map +1 -0
- package/dist/lib/revisions/infrastructure/queries/revision-refs.query.js +66 -0
- package/dist/lib/revisions/revisions.constants.d.ts +10 -0
- package/dist/lib/revisions/revisions.constants.d.ts.map +1 -0
- package/dist/lib/revisions/revisions.constants.js +12 -0
- package/dist/lib/revisions/types/revision-view.d.ts +74 -0
- package/dist/lib/revisions/types/revision-view.d.ts.map +1 -0
- package/dist/lib/revisions/types/revision-view.js +2 -0
- package/dist/lib/types/content-type.d.ts +131 -0
- package/dist/lib/types/content-type.d.ts.map +1 -0
- package/dist/lib/types/content-type.js +28 -0
- package/dist/lib/types/fields.d.ts +303 -0
- package/dist/lib/types/fields.d.ts.map +1 -0
- package/dist/lib/types/fields.js +52 -0
- package/dist/lib/utils/content-plugin.d.ts +35 -0
- package/dist/lib/utils/content-plugin.d.ts.map +1 -0
- package/dist/lib/utils/content-plugin.js +35 -0
- package/dist/lib/validation/services/entry-validation.service.d.ts +24 -0
- package/dist/lib/validation/services/entry-validation.service.d.ts.map +1 -0
- package/dist/lib/validation/services/entry-validation.service.js +35 -0
- package/package.json +54 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { ContentTypeRegistry } from './registry/content-type-registry';
|
|
3
|
+
/**
|
|
4
|
+
* NestJS module for the content plugin. Registered globally so the
|
|
5
|
+
* registry and validation service are injectable from any plugin (the
|
|
6
|
+
* admin BFF, future provenance/audit features, identity's workspace
|
|
7
|
+
* grants) without an explicit import.
|
|
8
|
+
*
|
|
9
|
+
* Owns no database schema of its own in this milestone — the HOST owns
|
|
10
|
+
* the generated collection tables and their migrations; this module owns
|
|
11
|
+
* the registry, its HTTP surface, and value validation.
|
|
12
|
+
*
|
|
13
|
+
* It also binds identity's {@link CONTENT_CATALOG} port to the registry, so
|
|
14
|
+
* identity's `GET /api/content-types` and the workspace-grant flow resolve
|
|
15
|
+
* against the real code-defined types instead of identity's built-in mock.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ContentModule {
|
|
18
|
+
/** Creates the global dynamic module around a validated registry. */
|
|
19
|
+
static forRoot(registry: ContentTypeRegistry): DynamicModule;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=content.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.module.d.ts","sourceRoot":"","sources":["../../src/lib/content.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAOvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AA4D5E;;;;;;;;;;;;;GAaG;AACH,qBACa,aAAa;IACtB,qEAAqE;IACrE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,GAAG,aAAa;CA0L/D"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var ContentModule_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ContentModule = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const workspaces_server_1 = require("@orthacms/workspaces-server");
|
|
8
|
+
const content_tokens_1 = require("./content.tokens");
|
|
9
|
+
const list_content_schema_controller_1 = require("./content-types/controllers/list-content-schema.controller");
|
|
10
|
+
const get_content_schema_controller_1 = require("./content-types/controllers/get-content-schema.controller");
|
|
11
|
+
const get_filter_fields_controller_1 = require("./content-types/controllers/get-filter-fields.controller");
|
|
12
|
+
const workspace_grants_query_1 = require("./content-types/queries/workspace-grants.query");
|
|
13
|
+
const content_grant_guard_1 = require("./entries/http/guards/content-grant.guard");
|
|
14
|
+
const list_entries_controller_1 = require("./entries/http/controllers/list-entries.controller");
|
|
15
|
+
const bulk_entries_controller_1 = require("./entries/http/controllers/bulk-entries.controller");
|
|
16
|
+
const create_entry_controller_1 = require("./entries/http/controllers/create-entry.controller");
|
|
17
|
+
const get_entry_controller_1 = require("./entries/http/controllers/get-entry.controller");
|
|
18
|
+
const update_entry_controller_1 = require("./entries/http/controllers/update-entry.controller");
|
|
19
|
+
const publish_entry_controller_1 = require("./entries/http/controllers/publish-entry.controller");
|
|
20
|
+
const delete_entry_controller_1 = require("./entries/http/controllers/delete-entry.controller");
|
|
21
|
+
const entry_extension_boot_check_1 = require("./extension/entry-extension-boot-check");
|
|
22
|
+
const copilot_server_1 = require("@orthacms/copilot-server");
|
|
23
|
+
const content_tool_provider_1 = require("./copilot/content-tool.provider");
|
|
24
|
+
const revision_tool_provider_1 = require("./copilot/revision-tool.provider");
|
|
25
|
+
const entry_proposal_provider_1 = require("./copilot/entry-proposal.provider");
|
|
26
|
+
const entry_proposal_applier_1 = require("./copilot/entry-proposal.applier");
|
|
27
|
+
const entry_validation_service_1 = require("./validation/services/entry-validation.service");
|
|
28
|
+
const entries_service_1 = require("./entries/infrastructure/queries/entries.service");
|
|
29
|
+
const media_refs_query_1 = require("./entries/infrastructure/queries/media-refs.query");
|
|
30
|
+
const entry_writer_service_1 = require("./entries/infrastructure/persistence/entry-writer.service");
|
|
31
|
+
const entry_counter_service_1 = require("./entries/infrastructure/persistence/entry-counter.service");
|
|
32
|
+
const relation_link_service_1 = require("./entries/infrastructure/persistence/relation-link.service");
|
|
33
|
+
const bulk_publish_preview_query_1 = require("./entries/infrastructure/queries/bulk-publish-preview.query");
|
|
34
|
+
const publish_entry_use_case_1 = require("./entries/application/use-cases/publish-entry.use-case");
|
|
35
|
+
const unpublish_entry_use_case_1 = require("./entries/application/use-cases/unpublish-entry.use-case");
|
|
36
|
+
const bulk_publish_entries_use_case_1 = require("./entries/application/use-cases/bulk-publish-entries.use-case");
|
|
37
|
+
const bulk_unpublish_entries_use_case_1 = require("./entries/application/use-cases/bulk-unpublish-entries.use-case");
|
|
38
|
+
const revision_store_1 = require("./revisions/application/ports/revision-store");
|
|
39
|
+
const drizzle_revision_store_1 = require("./revisions/infrastructure/persistence/drizzle-revision.store");
|
|
40
|
+
const restore_revision_use_case_1 = require("./revisions/application/use-cases/restore-revision.use-case");
|
|
41
|
+
const publish_revision_use_case_1 = require("./revisions/application/use-cases/publish-revision.use-case");
|
|
42
|
+
const revision_refs_query_1 = require("./revisions/infrastructure/queries/revision-refs.query");
|
|
43
|
+
const revisions_controller_1 = require("./revisions/http/controllers/revisions.controller");
|
|
44
|
+
const restore_revision_controller_1 = require("./revisions/http/controllers/restore-revision.controller");
|
|
45
|
+
const publish_revision_controller_1 = require("./revisions/http/controllers/publish-revision.controller");
|
|
46
|
+
const public_content_types_controller_1 = require("./public-api/http/controllers/public-content-types.controller");
|
|
47
|
+
const public_entries_controller_1 = require("./public-api/http/controllers/public-entries.controller");
|
|
48
|
+
const public_entry_writes_controller_1 = require("./public-api/http/controllers/public-entry-writes.controller");
|
|
49
|
+
const api_token_guard_1 = require("./public-api/http/guards/api-token.guard");
|
|
50
|
+
const api_token_workspace_guard_1 = require("./public-api/http/guards/api-token-workspace.guard");
|
|
51
|
+
const public_entries_query_1 = require("./public-api/infrastructure/public-entries.query");
|
|
52
|
+
const public_entry_writes_service_1 = require("./public-api/infrastructure/public-entry-writes.service");
|
|
53
|
+
const draft_visibility_guard_1 = require("./public-api/http/guards/draft-visibility.guard");
|
|
54
|
+
const public_expansion_query_1 = require("./public-api/infrastructure/public-expansion.query");
|
|
55
|
+
const content_tools_provider_1 = require("./mcp/content-tools.provider");
|
|
56
|
+
const content_insights_query_1 = require("./insights/infrastructure/queries/content-insights.query");
|
|
57
|
+
const content_totals_controller_1 = require("./insights/http/controllers/content-totals.controller");
|
|
58
|
+
const content_stale_controller_1 = require("./insights/http/controllers/content-stale.controller");
|
|
59
|
+
const content_pipeline_controller_1 = require("./insights/http/controllers/content-pipeline.controller");
|
|
60
|
+
const content_velocity_controller_1 = require("./insights/http/controllers/content-velocity.controller");
|
|
61
|
+
const content_punchcard_controller_1 = require("./insights/http/controllers/content-punchcard.controller");
|
|
62
|
+
const content_unshipped_controller_1 = require("./insights/http/controllers/content-unshipped.controller");
|
|
63
|
+
/**
|
|
64
|
+
* NestJS module for the content plugin. Registered globally so the
|
|
65
|
+
* registry and validation service are injectable from any plugin (the
|
|
66
|
+
* admin BFF, future provenance/audit features, identity's workspace
|
|
67
|
+
* grants) without an explicit import.
|
|
68
|
+
*
|
|
69
|
+
* Owns no database schema of its own in this milestone — the HOST owns
|
|
70
|
+
* the generated collection tables and their migrations; this module owns
|
|
71
|
+
* the registry, its HTTP surface, and value validation.
|
|
72
|
+
*
|
|
73
|
+
* It also binds identity's {@link CONTENT_CATALOG} port to the registry, so
|
|
74
|
+
* identity's `GET /api/content-types` and the workspace-grant flow resolve
|
|
75
|
+
* against the real code-defined types instead of identity's built-in mock.
|
|
76
|
+
*/
|
|
77
|
+
let ContentModule = ContentModule_1 = class ContentModule {
|
|
78
|
+
/** Creates the global dynamic module around a validated registry. */
|
|
79
|
+
static forRoot(registry) {
|
|
80
|
+
return {
|
|
81
|
+
module: ContentModule_1,
|
|
82
|
+
global: true,
|
|
83
|
+
controllers: [
|
|
84
|
+
list_content_schema_controller_1.ListContentSchemaController,
|
|
85
|
+
// The `:name/filter-fields` route is more specific than
|
|
86
|
+
// `GetContentSchemaController`'s `:name`, so their order is
|
|
87
|
+
// immaterial, but keep the schema routes grouped.
|
|
88
|
+
get_filter_fields_controller_1.GetFilterFieldsController,
|
|
89
|
+
get_content_schema_controller_1.GetContentSchemaController,
|
|
90
|
+
// Bulk routes carry a literal `bulk` in the `:id` slot, so they
|
|
91
|
+
// must be registered before the single-item controllers below
|
|
92
|
+
// (`:typeName/:id/...`) to win the match. The list controller is
|
|
93
|
+
// unaffected (`GET :typeName` is one segment shorter).
|
|
94
|
+
bulk_entries_controller_1.BulkEntriesController,
|
|
95
|
+
list_entries_controller_1.ListEntriesController,
|
|
96
|
+
create_entry_controller_1.CreateEntryController,
|
|
97
|
+
get_entry_controller_1.GetEntryController,
|
|
98
|
+
update_entry_controller_1.UpdateEntryController,
|
|
99
|
+
publish_entry_controller_1.PublishEntryController,
|
|
100
|
+
delete_entry_controller_1.DeleteEntryController,
|
|
101
|
+
// Revisions feature — the version timeline read + restore. Their
|
|
102
|
+
// literal `revisions` segment can't collide with the single-item
|
|
103
|
+
// routes above.
|
|
104
|
+
revisions_controller_1.RevisionsController,
|
|
105
|
+
restore_revision_controller_1.RestoreRevisionController,
|
|
106
|
+
publish_revision_controller_1.PublishRevisionController,
|
|
107
|
+
// The public, token-authenticated read API (`/api/v1/...`).
|
|
108
|
+
// Its own `v1` prefix keeps it clear of the admin routes, so
|
|
109
|
+
// registration order relative to them doesn't matter; the
|
|
110
|
+
// `v1/content-types` prefix likewise can't collide with
|
|
111
|
+
// `v1/content/:typeName` (different first segment).
|
|
112
|
+
public_content_types_controller_1.PublicContentTypesController,
|
|
113
|
+
// The write routes go FIRST: `POST :typeName` (create) would
|
|
114
|
+
// otherwise be shadowed by nothing, but `PATCH`/`DELETE
|
|
115
|
+
// :typeName/group/:gid` and the reads' `GET :typeName/group/:gid`
|
|
116
|
+
// share a shape, and keeping the two controllers' orders
|
|
117
|
+
// consistent means the group-before-id rule holds across both.
|
|
118
|
+
public_entry_writes_controller_1.PublicEntryWritesController,
|
|
119
|
+
public_entries_controller_1.PublicEntriesController,
|
|
120
|
+
// Insights read-model. Their `insights` first segment can't
|
|
121
|
+
// collide with the `content/:typeName` routes above, and each
|
|
122
|
+
// widget on the Insights page owns one of these endpoints so a
|
|
123
|
+
// slow aggregate degrades a single card.
|
|
124
|
+
content_totals_controller_1.ContentTotalsController,
|
|
125
|
+
content_stale_controller_1.ContentStaleController,
|
|
126
|
+
content_pipeline_controller_1.ContentPipelineController,
|
|
127
|
+
content_velocity_controller_1.ContentVelocityController,
|
|
128
|
+
content_punchcard_controller_1.ContentPunchcardController,
|
|
129
|
+
content_unshipped_controller_1.ContentUnshippedController
|
|
130
|
+
],
|
|
131
|
+
providers: [
|
|
132
|
+
{ provide: content_tokens_1.CONTENT_REGISTRY, useValue: registry },
|
|
133
|
+
{
|
|
134
|
+
// Adapt the registry to identity's catalogue port. Summaries
|
|
135
|
+
// are shape-compatible with `ContentTypeDescriptor`.
|
|
136
|
+
provide: workspaces_server_1.CONTENT_CATALOG,
|
|
137
|
+
useFactory: (reg) => ({
|
|
138
|
+
list: () => reg.summaries()
|
|
139
|
+
}),
|
|
140
|
+
inject: [content_tokens_1.CONTENT_REGISTRY]
|
|
141
|
+
},
|
|
142
|
+
// Bind identity's entry-counter port to the registry-backed
|
|
143
|
+
// counter, so the workspace "revoke content only when empty"
|
|
144
|
+
// rule sees the real stored entries. Same inversion as the
|
|
145
|
+
// catalogue above.
|
|
146
|
+
entry_counter_service_1.EntryCounterService,
|
|
147
|
+
{
|
|
148
|
+
provide: workspaces_server_1.CONTENT_ENTRY_COUNTER,
|
|
149
|
+
useExisting: entry_counter_service_1.EntryCounterService
|
|
150
|
+
},
|
|
151
|
+
entry_validation_service_1.EntryValidationService,
|
|
152
|
+
workspace_grants_query_1.WorkspaceGrantsQuery,
|
|
153
|
+
// Every registry-driven `content/:typeName` route is guarded by
|
|
154
|
+
// it, so it is resolved from this module's context.
|
|
155
|
+
content_grant_guard_1.ContentGrantGuard,
|
|
156
|
+
entries_service_1.EntriesService,
|
|
157
|
+
content_insights_query_1.ContentInsightsQuery,
|
|
158
|
+
// Resolves media field ids → display refs (thumbnails); injected
|
|
159
|
+
// by the entry-media read endpoint and the revision refs query.
|
|
160
|
+
// No-ops when the media plugin binds no resolver.
|
|
161
|
+
media_refs_query_1.MediaRefsQuery,
|
|
162
|
+
// The generic revision store, bound to its Drizzle adapter and
|
|
163
|
+
// injected by EntryWriterService (snapshot-on-save) + the
|
|
164
|
+
// revisions read/restore. Registered before EntryWriterService's
|
|
165
|
+
// provider is resolved — Nest orders by the dependency graph.
|
|
166
|
+
{ provide: revision_store_1.REVISION_STORE, useClass: drizzle_revision_store_1.DrizzleRevisionStore },
|
|
167
|
+
restore_revision_use_case_1.RestoreRevisionUseCase,
|
|
168
|
+
// Publish a specific version live (restore-if-needed + publish).
|
|
169
|
+
publish_revision_use_case_1.PublishRevisionUseCase,
|
|
170
|
+
// Resolves a previewed revision's relation ids to display refs
|
|
171
|
+
// (the "exact linked records" the diff shows).
|
|
172
|
+
revision_refs_query_1.RevisionRefsQuery,
|
|
173
|
+
entry_writer_service_1.EntryWriterService,
|
|
174
|
+
relation_link_service_1.RelationLinkService,
|
|
175
|
+
// Entries feature, layered per ADR-0003: the publish-lifecycle
|
|
176
|
+
// use-cases (over the global UnitOfWork/OutboxWriter) + the
|
|
177
|
+
// bulk-publish dry-run query. CRUD writes stay on the
|
|
178
|
+
// persistence engine (EntryWriterService) directly.
|
|
179
|
+
publish_entry_use_case_1.PublishEntryUseCase,
|
|
180
|
+
unpublish_entry_use_case_1.UnpublishEntryUseCase,
|
|
181
|
+
bulk_publish_entries_use_case_1.BulkPublishEntriesUseCase,
|
|
182
|
+
bulk_unpublish_entries_use_case_1.BulkUnpublishEntriesUseCase,
|
|
183
|
+
bulk_publish_preview_query_1.BulkPublishPreviewQuery,
|
|
184
|
+
// Public API: the bearer guard (which resolves a token through
|
|
185
|
+
// identity's exported `ApiTokenService`), the workspace
|
|
186
|
+
// resolver, and the narrow published-only read.
|
|
187
|
+
api_token_guard_1.ApiTokenGuard,
|
|
188
|
+
api_token_workspace_guard_1.ApiTokenWorkspaceGuard,
|
|
189
|
+
// Gates `?status=draft|any` on write scope, so a read-only token
|
|
190
|
+
// can never see unpublished work.
|
|
191
|
+
draft_visibility_guard_1.DraftVisibilityGuard,
|
|
192
|
+
public_entries_query_1.PublicEntriesQuery,
|
|
193
|
+
// The write half — a thin edge over EntryWriterService and the
|
|
194
|
+
// publish use-cases, which own all the write invariants.
|
|
195
|
+
public_entry_writes_service_1.PublicEntryWritesService,
|
|
196
|
+
// Batched relation + media expansion for the public reads.
|
|
197
|
+
public_expansion_query_1.PublicExpansionQuery,
|
|
198
|
+
// The agent-facing tools — the same CRUD as the public API,
|
|
199
|
+
// over the same services, for the MCP endpoint and (once its
|
|
200
|
+
// run engine lands) the copilot. Registers itself with
|
|
201
|
+
// `@orthacms/tools-server`'s registry when the MCP plugin is
|
|
202
|
+
// installed, and is inert when it isn't.
|
|
203
|
+
content_tools_provider_1.ContentToolProvider,
|
|
204
|
+
// Fails boot when an i18n type has no CONTENT_ENTRY_EXTENSION
|
|
205
|
+
// bound (nothing would stamp the NOT NULL locale column).
|
|
206
|
+
entry_extension_boot_check_1.EntryExtensionBootCheck,
|
|
207
|
+
// The copilot's read-only content tools, and the bootstrap hook
|
|
208
|
+
// that registers them. Both no-op when no copilot plugin is
|
|
209
|
+
// registered — the registrar injects the registry optionally.
|
|
210
|
+
content_tool_provider_1.ContentCopilotToolProvider,
|
|
211
|
+
revision_tool_provider_1.RevisionCopilotToolProvider,
|
|
212
|
+
entry_proposal_provider_1.EntryProposalToolProvider,
|
|
213
|
+
// The appliers for the kinds those propose tools produce.
|
|
214
|
+
// Next to the tools on purpose: a missing applier surfaces only
|
|
215
|
+
// when a human clicks Accept.
|
|
216
|
+
entry_proposal_applier_1.CreateEntryProposalApplier,
|
|
217
|
+
entry_proposal_applier_1.UpdateEntryProposalApplier,
|
|
218
|
+
entry_proposal_applier_1.BulkSaveEntriesProposalApplier,
|
|
219
|
+
(0, copilot_server_1.copilotAppliersRegistrar)('content', entry_proposal_applier_1.CreateEntryProposalApplier, entry_proposal_applier_1.UpdateEntryProposalApplier, entry_proposal_applier_1.BulkSaveEntriesProposalApplier)
|
|
220
|
+
],
|
|
221
|
+
exports: [
|
|
222
|
+
content_tokens_1.CONTENT_REGISTRY,
|
|
223
|
+
workspaces_server_1.CONTENT_CATALOG,
|
|
224
|
+
workspaces_server_1.CONTENT_ENTRY_COUNTER,
|
|
225
|
+
entry_validation_service_1.EntryValidationService,
|
|
226
|
+
// The public API's collaborators, exported so another plugin can
|
|
227
|
+
// put a SECOND PROTOCOL in front of the same surface without
|
|
228
|
+
// re-implementing any of it — `@orthacms/content-graphql` does
|
|
229
|
+
// exactly that. The module is already `global: true`, so
|
|
230
|
+
// exporting is all that is needed for it to inject these.
|
|
231
|
+
// Everything a `/v1` request is authorized and answered by lives
|
|
232
|
+
// in this list, which is what keeps the two protocols honest:
|
|
233
|
+
// there is one visibility rule, one grant gate, one write path.
|
|
234
|
+
//
|
|
235
|
+
// `WorkspaceGrantsQuery` serves a second set of callers too:
|
|
236
|
+
// the plugins that bind their own copilot tools over
|
|
237
|
+
// content-scoped data (i18n, media). A tool's type name arrives
|
|
238
|
+
// from the model, so every one of them has to re-check the
|
|
239
|
+
// workspace's grants — and there must be exactly one
|
|
240
|
+
// implementation of that check, not one per binder.
|
|
241
|
+
workspace_grants_query_1.WorkspaceGrantsQuery,
|
|
242
|
+
public_entries_query_1.PublicEntriesQuery,
|
|
243
|
+
public_entry_writes_service_1.PublicEntryWritesService,
|
|
244
|
+
api_token_guard_1.ApiTokenGuard,
|
|
245
|
+
api_token_workspace_guard_1.ApiTokenWorkspaceGuard,
|
|
246
|
+
// The write engine, for the proposal appliers those plugins
|
|
247
|
+
// also bind. ADR-0005 §5 requires an applied proposal to run
|
|
248
|
+
// the ordinary use-case, so they must reach *this* service
|
|
249
|
+
// rather than write their own insert.
|
|
250
|
+
entry_writer_service_1.EntryWriterService,
|
|
251
|
+
// Relation storage, for the bound CONTENT_ENTRY_EXTENSION: the
|
|
252
|
+
// i18n sync reads and rewrites link sets on locale siblings,
|
|
253
|
+
// and it has to be through the same service the entries
|
|
254
|
+
// pipeline writes with — a second implementation of the join
|
|
255
|
+
// table's ordering and de-duplication is how the two drift.
|
|
256
|
+
relation_link_service_1.RelationLinkService
|
|
257
|
+
]
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
exports.ContentModule = ContentModule;
|
|
262
|
+
exports.ContentModule = ContentModule = ContentModule_1 = tslib_1.__decorate([
|
|
263
|
+
(0, common_1.Module)({})
|
|
264
|
+
], ContentModule);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** DI token under which the {@link ContentTypeRegistry} is provided. */
|
|
2
|
+
export declare const CONTENT_REGISTRY: unique symbol;
|
|
3
|
+
/** Injects the content-type registry. */
|
|
4
|
+
export declare const InjectContentRegistry: () => ParameterDecorator;
|
|
5
|
+
//# sourceMappingURL=content.tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.tokens.d.ts","sourceRoot":"","sources":["../../src/lib/content.tokens.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D,yCAAyC;AACzC,eAAO,MAAM,qBAAqB,QAAO,kBACb,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InjectContentRegistry = exports.CONTENT_REGISTRY = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
/** DI token under which the {@link ContentTypeRegistry} is provided. */
|
|
6
|
+
exports.CONTENT_REGISTRY = Symbol('CONTENT_REGISTRY');
|
|
7
|
+
/** Injects the content-type registry. */
|
|
8
|
+
const InjectContentRegistry = () => (0, common_1.Inject)(exports.CONTENT_REGISTRY);
|
|
9
|
+
exports.InjectContentRegistry = InjectContentRegistry;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { ToolRegistry } from '@orthacms/tools-server';
|
|
3
|
+
import type { ToolDefinition, ToolProvider } from '@orthacms/tools-server';
|
|
4
|
+
import type { ContentTypeRegistry } from '../registry/content-type-registry';
|
|
5
|
+
import { EntriesService } from '../entries/infrastructure/queries/entries.service';
|
|
6
|
+
import { EntryWriterService } from '../entries/infrastructure/persistence/entry-writer.service';
|
|
7
|
+
import { WorkspaceGrantsQuery } from '../content-types/queries/workspace-grants.query';
|
|
8
|
+
/**
|
|
9
|
+
* The content plugin's contribution to the copilot's tool catalogue — phase 1's
|
|
10
|
+
* three **read-only** tools.
|
|
11
|
+
*
|
|
12
|
+
* Bindings live with their owner: this package already holds `EntriesService`
|
|
13
|
+
* and the registry, so the tools are thin wrappers over the same services the
|
|
14
|
+
* HTTP controllers call, with no refactor and no duplicated query logic. The
|
|
15
|
+
* copilot never imports content ([`docs/design/copilot.md`](../../../../../docs/design/copilot.md) §4).
|
|
16
|
+
*
|
|
17
|
+
* **Every tool re-checks the workspace's content grants.** `WorkspaceGuard`
|
|
18
|
+
* proved the caller belongs to the workspace, but not that the workspace may
|
|
19
|
+
* reach a given type — and the type name arrives from the *model*, which is
|
|
20
|
+
* steerable by content it has read. `resolveGranted` is the one place that
|
|
21
|
+
* check lives, and every tool goes through it.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ContentCopilotToolProvider implements ToolProvider, OnModuleInit {
|
|
24
|
+
private readonly registry;
|
|
25
|
+
private readonly entries;
|
|
26
|
+
private readonly writer;
|
|
27
|
+
private readonly grants;
|
|
28
|
+
private readonly toolRegistry?;
|
|
29
|
+
constructor(registry: ContentTypeRegistry, entries: EntriesService, writer: EntryWriterService, grants: WorkspaceGrantsQuery, toolRegistry?: ToolRegistry | undefined);
|
|
30
|
+
/**
|
|
31
|
+
* Register with the shared tool registry once the DI graph is built —
|
|
32
|
+
* the same catalogue the MCP endpoint serves, narrowed to the `copilot`
|
|
33
|
+
* surface by each tool's `surfaces`. `@Optional()` because a deployment
|
|
34
|
+
* may run neither consumer, in which case these simply go unregistered.
|
|
35
|
+
*/
|
|
36
|
+
onModuleInit(): void;
|
|
37
|
+
/** The three read tools, in the order the model sees them. */
|
|
38
|
+
tools(): readonly ToolDefinition[];
|
|
39
|
+
/**
|
|
40
|
+
* Resolves a model-supplied type name to a registered type the workspace
|
|
41
|
+
* was actually granted, or throws — the error becomes a tool error the
|
|
42
|
+
* model can recover from.
|
|
43
|
+
*
|
|
44
|
+
* "Not granted" and "does not exist" deliberately produce the **same**
|
|
45
|
+
* message: a distinguishable answer would let a run in one workspace
|
|
46
|
+
* enumerate the deployment's other content types.
|
|
47
|
+
*/
|
|
48
|
+
private resolveGranted;
|
|
49
|
+
/**
|
|
50
|
+
* `admin_content_types` — the workspace's types, and a named type's full
|
|
51
|
+
* field schema on demand.
|
|
52
|
+
*
|
|
53
|
+
* This is the other half of the "summaries in the prompt, schema on
|
|
54
|
+
* demand" decision (`docs/design/copilot.md` §10): the prompt lists types
|
|
55
|
+
* without fields, and the model calls this when it needs one type's fields,
|
|
56
|
+
* costing one round trip instead of a context window.
|
|
57
|
+
*/
|
|
58
|
+
private listTypes;
|
|
59
|
+
/** `admin_content_search` — one page of a type's entries. */
|
|
60
|
+
private searchEntries;
|
|
61
|
+
/** `admin_content_get` — one entry in full, by id. */
|
|
62
|
+
private getEntry;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=content-tool.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-tool.provider.d.ts","sourceRoot":"","sources":["../../../src/lib/copilot/content-tool.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AASvF;;;;;;;;;;;;;;GAcG;AACH,qBACa,0BAA2B,YAAW,YAAY,EAAE,YAAY;IAGrE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACX,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAJzB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,oBAAoB,EAChB,YAAY,CAAC,EAAE,YAAY,YAAA;IAG5D;;;;;OAKG;IACH,YAAY,IAAI,IAAI;IAIpB,8DAA8D;IAC9D,KAAK,IAAI,SAAS,cAAc,EAAE;IAIlC;;;;;;;;OAQG;YACW,cAAc;IAW5B;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAmEjB,6DAA6D;IAC7D,OAAO,CAAC,aAAa;IAgJrB,sDAAsD;IACtD,OAAO,CAAC,QAAQ;CA0DnB"}
|