@valkyrianlabs/payload-markdown-docs 0.1.0-canary.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/README.md +195 -0
- package/dist/admin/DocsSetManager.d.ts +2 -0
- package/dist/admin/DocsSetManager.js +298 -0
- package/dist/admin/DocsSetManager.js.map +1 -0
- package/dist/admin/docsSetManagerData.d.ts +25 -0
- package/dist/admin/docsSetManagerData.js +266 -0
- package/dist/admin/docsSetManagerData.js.map +1 -0
- package/dist/admin/docsSetManagerTypes.d.ts +103 -0
- package/dist/admin/docsSetManagerTypes.js +3 -0
- package/dist/admin/docsSetManagerTypes.js.map +1 -0
- package/dist/admin/index.d.ts +3 -0
- package/dist/admin/index.js +4 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/cli/commands/install.d.ts +2 -0
- package/dist/cli/commands/install.js +211 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/keygen.d.ts +2 -0
- package/dist/cli/commands/keygen.js +89 -0
- package/dist/cli/commands/keygen.js.map +1 -0
- package/dist/cli/commands/manifest.d.ts +2 -0
- package/dist/cli/commands/manifest.js +50 -0
- package/dist/cli/commands/manifest.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +2 -0
- package/dist/cli/commands/plan.js +110 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/push.d.ts +3 -0
- package/dist/cli/commands/push.js +308 -0
- package/dist/cli/commands/push.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +3 -0
- package/dist/cli/commands/validate.js +109 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/filesystem.d.ts +20 -0
- package/dist/cli/filesystem.js +96 -0
- package/dist/cli/filesystem.js.map +1 -0
- package/dist/cli/format.d.ts +35 -0
- package/dist/cli/format.js +76 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/http.d.ts +19 -0
- package/dist/cli/http.js +39 -0
- package/dist/cli/http.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.js +214 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parseArgs.d.ts +5 -0
- package/dist/cli/parseArgs.js +219 -0
- package/dist/cli/parseArgs.js.map +1 -0
- package/dist/cli/types.d.ts +51 -0
- package/dist/cli/types.js +3 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/collections/docs.d.ts +9 -0
- package/dist/collections/docs.js +168 -0
- package/dist/collections/docs.js.map +1 -0
- package/dist/collections/docsGroups.d.ts +5 -0
- package/dist/collections/docsGroups.js +57 -0
- package/dist/collections/docsGroups.js.map +1 -0
- package/dist/collections/docsSets.d.ts +8 -0
- package/dist/collections/docsSets.js +158 -0
- package/dist/collections/docsSets.js.map +1 -0
- package/dist/collections/index.d.ts +10 -0
- package/dist/collections/index.js +7 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/nonces.d.ts +6 -0
- package/dist/collections/nonces.js +57 -0
- package/dist/collections/nonces.js.map +1 -0
- package/dist/collections/syncRuns.d.ts +5 -0
- package/dist/collections/syncRuns.js +139 -0
- package/dist/collections/syncRuns.js.map +1 -0
- package/dist/constants.d.ts +21 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/endpoints/index.d.ts +2 -0
- package/dist/endpoints/index.js +3 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/endpoints/sync.d.ts +47 -0
- package/dist/endpoints/sync.js +616 -0
- package/dist/endpoints/sync.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/next/PayloadMarkdownDocsPage.d.ts +7 -0
- package/dist/next/PayloadMarkdownDocsPage.js +142 -0
- package/dist/next/PayloadMarkdownDocsPage.js.map +1 -0
- package/dist/next/index.d.ts +9 -0
- package/dist/next/index.js +7 -0
- package/dist/next/index.js.map +1 -0
- package/dist/next/markdown.d.ts +14 -0
- package/dist/next/markdown.js +232 -0
- package/dist/next/markdown.js.map +1 -0
- package/dist/next/metadata.d.ts +3 -0
- package/dist/next/metadata.js +33 -0
- package/dist/next/metadata.js.map +1 -0
- package/dist/next/records.d.ts +14 -0
- package/dist/next/records.js +146 -0
- package/dist/next/records.js.map +1 -0
- package/dist/next/route.d.ts +6 -0
- package/dist/next/route.js +271 -0
- package/dist/next/route.js.map +1 -0
- package/dist/next/sidebar.d.ts +15 -0
- package/dist/next/sidebar.js +137 -0
- package/dist/next/sidebar.js.map +1 -0
- package/dist/next/types.d.ts +117 -0
- package/dist/next/types.js +3 -0
- package/dist/next/types.js.map +1 -0
- package/dist/payload/applyDocsSync.d.ts +54 -0
- package/dist/payload/applyDocsSync.js +176 -0
- package/dist/payload/applyDocsSync.js.map +1 -0
- package/dist/payload/docsConflicts.d.ts +12 -0
- package/dist/payload/docsConflicts.js +34 -0
- package/dist/payload/docsConflicts.js.map +1 -0
- package/dist/payload/docsData.d.ts +23 -0
- package/dist/payload/docsData.js +59 -0
- package/dist/payload/docsData.js.map +1 -0
- package/dist/payload/docsSets.d.ts +38 -0
- package/dist/payload/docsSets.js +57 -0
- package/dist/payload/docsSets.js.map +1 -0
- package/dist/payload/existingDocs.d.ts +43 -0
- package/dist/payload/existingDocs.js +97 -0
- package/dist/payload/existingDocs.js.map +1 -0
- package/dist/payload/index.d.ts +15 -0
- package/dist/payload/index.js +10 -0
- package/dist/payload/index.js.map +1 -0
- package/dist/payload/routeCollisions.d.ts +31 -0
- package/dist/payload/routeCollisions.js +104 -0
- package/dist/payload/routeCollisions.js.map +1 -0
- package/dist/payload/syncRuns.d.ts +60 -0
- package/dist/payload/syncRuns.js +53 -0
- package/dist/payload/syncRuns.js.map +1 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.js +165 -0
- package/dist/plugin.js.map +1 -0
- package/dist/routing/index.d.ts +3 -0
- package/dist/routing/index.js +4 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/paths.d.ts +7 -0
- package/dist/routing/paths.js +23 -0
- package/dist/routing/paths.js.map +1 -0
- package/dist/routing/reservations.d.ts +37 -0
- package/dist/routing/reservations.js +79 -0
- package/dist/routing/reservations.js.map +1 -0
- package/dist/security/canonical.d.ts +12 -0
- package/dist/security/canonical.js +24 -0
- package/dist/security/canonical.js.map +1 -0
- package/dist/security/githubOidc.d.ts +45 -0
- package/dist/security/githubOidc.js +177 -0
- package/dist/security/githubOidc.js.map +1 -0
- package/dist/security/headers.d.ts +22 -0
- package/dist/security/headers.js +44 -0
- package/dist/security/headers.js.map +1 -0
- package/dist/security/index.d.ts +15 -0
- package/dist/security/index.js +9 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/jwks.d.ts +20 -0
- package/dist/security/jwks.js +40 -0
- package/dist/security/jwks.js.map +1 -0
- package/dist/security/jwt.d.ts +10 -0
- package/dist/security/jwt.js +42 -0
- package/dist/security/jwt.js.map +1 -0
- package/dist/security/nonce.d.ts +34 -0
- package/dist/security/nonce.js +43 -0
- package/dist/security/nonce.js.map +1 -0
- package/dist/security/sign.d.ts +13 -0
- package/dist/security/sign.js +39 -0
- package/dist/security/sign.js.map +1 -0
- package/dist/security/verify.d.ts +28 -0
- package/dist/security/verify.js +54 -0
- package/dist/security/verify.js.map +1 -0
- package/dist/skills/codex/SKILL.md +173 -0
- package/dist/skills/codex/examples/docs-page.md +42 -0
- package/dist/skills/codex/examples/github-actions.md +64 -0
- package/dist/skills/codex/reference/admin.md +28 -0
- package/dist/skills/codex/reference/frontmatter.md +39 -0
- package/dist/skills/codex/reference/payload-markdown-directives.md +77 -0
- package/dist/skills/codex/reference/routing.md +35 -0
- package/dist/skills/codex/reference/sync.md +35 -0
- package/dist/skills/codex/reference/troubleshooting.md +53 -0
- package/dist/skills/codex/reference/workflow.md +39 -0
- package/dist/sync/aiExportManifest.d.ts +58 -0
- package/dist/sync/aiExportManifest.js +430 -0
- package/dist/sync/aiExportManifest.js.map +1 -0
- package/dist/sync/frontmatter.d.ts +28 -0
- package/dist/sync/frontmatter.js +210 -0
- package/dist/sync/frontmatter.js.map +1 -0
- package/dist/sync/hash.d.ts +1 -0
- package/dist/sync/hash.js +8 -0
- package/dist/sync/hash.js.map +1 -0
- package/dist/sync/index.d.ts +12 -0
- package/dist/sync/index.js +9 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/manifest.d.ts +58 -0
- package/dist/sync/manifest.js +21 -0
- package/dist/sync/manifest.js.map +1 -0
- package/dist/sync/paths.d.ts +16 -0
- package/dist/sync/paths.js +116 -0
- package/dist/sync/paths.js.map +1 -0
- package/dist/sync/plan.d.ts +29 -0
- package/dist/sync/plan.js +72 -0
- package/dist/sync/plan.js.map +1 -0
- package/dist/sync/validate.d.ts +26 -0
- package/dist/sync/validate.js +308 -0
- package/dist/sync/validate.js.map +1 -0
- package/dist/types.d.ts +84 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +143 -0
package/README.md
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# @valkyrianlabs/payload-markdown-docs
|
|
2
|
+
|
|
3
|
+
Git-backed Markdown documentation sync for Payload CMS, powered by `@valkyrianlabs/payload-markdown`.
|
|
4
|
+
|
|
5
|
+
`payload-markdown-docs` lets developers and agents maintain Markdown in a repo-local `docs/` folder, validate it in CI, sign a manifest, and publish it into server-owned Payload docs sets.
|
|
6
|
+
|
|
7
|
+
The client sends docs content. The Payload plugin decides where it may go.
|
|
8
|
+
|
|
9
|
+
## Current Status
|
|
10
|
+
|
|
11
|
+
Implemented:
|
|
12
|
+
|
|
13
|
+
- docs groups and docs sets as the user-facing model
|
|
14
|
+
- generated/internal docs records linked to docs sets
|
|
15
|
+
- route reservations and optional docs-side Pages collision checks
|
|
16
|
+
- signed sync endpoint with nonce replay protection
|
|
17
|
+
- CLI commands for `validate`, `manifest`, `plan`, `keygen`, and signed `push`
|
|
18
|
+
- dedicated docs create/update/archive/draft/delete lifecycle behind server gates
|
|
19
|
+
- publishing controls for draft-enabled dedicated docs collections
|
|
20
|
+
- read-only `/next` route adapter, sidebar helper, metadata helper, and page component
|
|
21
|
+
- read-only Docs Set Admin Manager
|
|
22
|
+
- local agent skill installer
|
|
23
|
+
- GitHub Actions OIDC auth mode
|
|
24
|
+
- real `/docs` dogfood documentation set
|
|
25
|
+
|
|
26
|
+
Not implemented yet:
|
|
27
|
+
|
|
28
|
+
- existing collection targets
|
|
29
|
+
- block targets
|
|
30
|
+
- inline override editing from the docs set manager
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pnpm add @valkyrianlabs/payload-markdown-docs @valkyrianlabs/payload-markdown
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Minimal Config
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { payloadMarkdownDocs } from '@valkyrianlabs/payload-markdown-docs'
|
|
42
|
+
import { buildConfig } from 'payload'
|
|
43
|
+
|
|
44
|
+
export default buildConfig({
|
|
45
|
+
plugins: [
|
|
46
|
+
payloadMarkdownDocs({
|
|
47
|
+
enabled: true,
|
|
48
|
+
}),
|
|
49
|
+
],
|
|
50
|
+
})
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Dedicated Docs Config
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
payloadMarkdownDocs({
|
|
57
|
+
enabled: true,
|
|
58
|
+
|
|
59
|
+
auth: {
|
|
60
|
+
mode: 'ed25519',
|
|
61
|
+
keys: [
|
|
62
|
+
{
|
|
63
|
+
id: 'github-actions-main',
|
|
64
|
+
publicKey: process.env.DOCS_SYNC_PUBLIC_KEY!,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
target: {
|
|
70
|
+
type: 'docsCollection',
|
|
71
|
+
enableDrafts: true,
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
sources: [
|
|
75
|
+
{
|
|
76
|
+
id: 'main-docs',
|
|
77
|
+
root: 'docs',
|
|
78
|
+
routeBase: '/docs',
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
|
|
82
|
+
sync: {
|
|
83
|
+
allowWrites: true,
|
|
84
|
+
allowPublish: true,
|
|
85
|
+
allowHardDelete: false,
|
|
86
|
+
defaultPublishMode: 'draft',
|
|
87
|
+
deleteBehavior: 'archive',
|
|
88
|
+
},
|
|
89
|
+
})
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
GitHub Actions can use OIDC instead of a long-lived private key:
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
payloadMarkdownDocs({
|
|
96
|
+
enabled: true,
|
|
97
|
+
|
|
98
|
+
auth: {
|
|
99
|
+
mode: 'github-oidc',
|
|
100
|
+
audience: 'payload-markdown-docs',
|
|
101
|
+
allowedRepositories: ['valkyrianlabs/payload-markdown-docs'],
|
|
102
|
+
allowedRefs: ['refs/heads/main'],
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
target: {
|
|
106
|
+
type: 'docsCollection',
|
|
107
|
+
enableDrafts: true,
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
sync: {
|
|
111
|
+
allowWrites: true,
|
|
112
|
+
allowPublish: true,
|
|
113
|
+
},
|
|
114
|
+
})
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Quick Commands
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
pnpm exec payload-markdown-docs keygen --out .docs-sync
|
|
121
|
+
pnpm exec payload-markdown-docs validate ./docs --source main-docs
|
|
122
|
+
pnpm exec payload-markdown-docs manifest ./docs --source main-docs --pretty
|
|
123
|
+
pnpm exec payload-markdown-docs plan ./docs --source main-docs
|
|
124
|
+
pnpm exec payload-markdown-docs install skill --codex
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Signed dry-run:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
pnpm exec payload-markdown-docs push ./docs \
|
|
131
|
+
--endpoint "$DOCS_SYNC_ENDPOINT" \
|
|
132
|
+
--source main-docs \
|
|
133
|
+
--key-id github-actions-main \
|
|
134
|
+
--private-key-file .docs-sync/docs-sync-private.pem \
|
|
135
|
+
--dry-run
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Signed sync and publish:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
pnpm exec payload-markdown-docs push ./docs \
|
|
142
|
+
--endpoint "$DOCS_SYNC_ENDPOINT" \
|
|
143
|
+
--source main-docs \
|
|
144
|
+
--key-id github-actions-main \
|
|
145
|
+
--private-key-env DOCS_SYNC_PRIVATE_KEY \
|
|
146
|
+
--sync \
|
|
147
|
+
--publish
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
GitHub OIDC sync from Actions:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
pnpm exec payload-markdown-docs push ./docs \
|
|
154
|
+
--endpoint "$DOCS_SYNC_ENDPOINT" \
|
|
155
|
+
--source main-docs \
|
|
156
|
+
--github-oidc \
|
|
157
|
+
--oidc-audience payload-markdown-docs \
|
|
158
|
+
--sync \
|
|
159
|
+
--publish
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
`--sync` requires `sync.allowWrites: true`. `--publish` requires `sync.allowPublish: true` and `target.enableDrafts: true`. Hard delete requires `sync.allowHardDelete: true`.
|
|
163
|
+
|
|
164
|
+
## Documentation
|
|
165
|
+
|
|
166
|
+
The real plugin docs now live in [`docs/`](docs/index.md). Start with:
|
|
167
|
+
|
|
168
|
+
- [Overview](docs/index.md)
|
|
169
|
+
- [Installation](docs/getting-started/installation.md)
|
|
170
|
+
- [Quick Start](docs/getting-started/quick-start.md)
|
|
171
|
+
- [Architecture](docs/concepts/architecture.md)
|
|
172
|
+
- [GitHub OIDC](docs/configuration/github-oidc.md)
|
|
173
|
+
- [GitHub Actions](docs/workflow/ci-github-actions.md)
|
|
174
|
+
- [Agent Skill Installer](docs/workflow/agent-skill-installer.md)
|
|
175
|
+
- [Route Adapter](docs/frontend/route-adapter.md)
|
|
176
|
+
- [Docs Set Admin Manager](docs/admin/docs-set-manager.md)
|
|
177
|
+
- [Troubleshooting](docs/reference/troubleshooting.md)
|
|
178
|
+
|
|
179
|
+
The `/docs` tree is also dogfood material for the plugin: it uses supported frontmatter, root-relative internal links, and `payload-markdown` directives.
|
|
180
|
+
|
|
181
|
+
## Examples
|
|
182
|
+
|
|
183
|
+
- `examples/docs/` is a small fixture docs tree.
|
|
184
|
+
- `examples/github-actions/publish-docs.yml` shows PR dry-run and main-branch sync/publish.
|
|
185
|
+
- `examples/next/app-docs-route.md` shows the native route adapter pattern.
|
|
186
|
+
- `dev/README.md` documents the local end-to-end dev harness for fixtures, seed scripts, signed push, and route adapter checks.
|
|
187
|
+
|
|
188
|
+
## Roadmap
|
|
189
|
+
|
|
190
|
+
Next major work:
|
|
191
|
+
|
|
192
|
+
- existing collection or block bridges only if still needed
|
|
193
|
+
- skill update/verify and drift-check workflow polish
|
|
194
|
+
|
|
195
|
+
See [`.codex/scratch/roadmap.md`](.codex/scratch/roadmap.md) for the working implementation roadmap.
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { DEFAULT_DOCS_COLLECTION_SLUG, DEFAULT_DOCS_SETS_COLLECTION_SLUG } from '../constants.js';
|
|
3
|
+
import { getDocsSetManagerData } from './docsSetManagerData.js';
|
|
4
|
+
const getFieldCustom = (field)=>{
|
|
5
|
+
const custom = 'custom' in field ? field.custom : undefined;
|
|
6
|
+
if (!custom || typeof custom !== 'object') {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
return custom;
|
|
10
|
+
};
|
|
11
|
+
const formatDate = (value)=>{
|
|
12
|
+
if (!value) {
|
|
13
|
+
return 'Never';
|
|
14
|
+
}
|
|
15
|
+
const date = new Date(value);
|
|
16
|
+
if (Number.isNaN(date.getTime())) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
return date.toISOString();
|
|
20
|
+
};
|
|
21
|
+
const StatusLabel = ({ item })=>{
|
|
22
|
+
if (item.archived) {
|
|
23
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
24
|
+
children: "archived"
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (item.draft) {
|
|
28
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
29
|
+
children: "draft"
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (item.published) {
|
|
33
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
34
|
+
children: "published"
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
38
|
+
children: "synced"
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const OverrideSummary = ({ item })=>{
|
|
42
|
+
if (item.overrideSummary.length === 0) {
|
|
43
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
44
|
+
children: "none"
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return /*#__PURE__*/ _jsx("span", {
|
|
48
|
+
children: item.overrideSummary.join(', ')
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const renderDocItem = (item)=>{
|
|
52
|
+
if (item.kind === 'folder') {
|
|
53
|
+
return /*#__PURE__*/ _jsxs("details", {
|
|
54
|
+
children: [
|
|
55
|
+
/*#__PURE__*/ _jsx("summary", {
|
|
56
|
+
children: item.title
|
|
57
|
+
}),
|
|
58
|
+
/*#__PURE__*/ _jsx("div", {
|
|
59
|
+
children: item.children?.map((child)=>renderDocItem(child))
|
|
60
|
+
})
|
|
61
|
+
]
|
|
62
|
+
}, item.id);
|
|
63
|
+
}
|
|
64
|
+
return /*#__PURE__*/ _jsxs("details", {
|
|
65
|
+
children: [
|
|
66
|
+
/*#__PURE__*/ _jsx("summary", {
|
|
67
|
+
children: item.sourcePath
|
|
68
|
+
}),
|
|
69
|
+
/*#__PURE__*/ _jsxs("dl", {
|
|
70
|
+
children: [
|
|
71
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
72
|
+
children: [
|
|
73
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
74
|
+
children: "Route"
|
|
75
|
+
}),
|
|
76
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
77
|
+
children: item.route || 'Missing route'
|
|
78
|
+
})
|
|
79
|
+
]
|
|
80
|
+
}),
|
|
81
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
82
|
+
children: [
|
|
83
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
84
|
+
children: "Title"
|
|
85
|
+
}),
|
|
86
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
87
|
+
children: item.title
|
|
88
|
+
})
|
|
89
|
+
]
|
|
90
|
+
}),
|
|
91
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
92
|
+
children: [
|
|
93
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
94
|
+
children: "Status"
|
|
95
|
+
}),
|
|
96
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
97
|
+
children: /*#__PURE__*/ _jsx(StatusLabel, {
|
|
98
|
+
item: item
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
]
|
|
102
|
+
}),
|
|
103
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
104
|
+
children: [
|
|
105
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
106
|
+
children: "Overrides"
|
|
107
|
+
}),
|
|
108
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
109
|
+
children: /*#__PURE__*/ _jsx(OverrideSummary, {
|
|
110
|
+
item: item
|
|
111
|
+
})
|
|
112
|
+
})
|
|
113
|
+
]
|
|
114
|
+
})
|
|
115
|
+
]
|
|
116
|
+
}),
|
|
117
|
+
item.adminURL ? /*#__PURE__*/ _jsx("a", {
|
|
118
|
+
href: item.adminURL,
|
|
119
|
+
children: "Open generated doc"
|
|
120
|
+
}) : null
|
|
121
|
+
]
|
|
122
|
+
}, item.id);
|
|
123
|
+
};
|
|
124
|
+
const Summary = ({ data })=>/*#__PURE__*/ _jsxs("dl", {
|
|
125
|
+
children: [
|
|
126
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
127
|
+
children: [
|
|
128
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
129
|
+
children: "Docs"
|
|
130
|
+
}),
|
|
131
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
132
|
+
children: data.summary.total
|
|
133
|
+
})
|
|
134
|
+
]
|
|
135
|
+
}),
|
|
136
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
137
|
+
children: [
|
|
138
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
139
|
+
children: "Archived"
|
|
140
|
+
}),
|
|
141
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
142
|
+
children: data.summary.archived
|
|
143
|
+
})
|
|
144
|
+
]
|
|
145
|
+
}),
|
|
146
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
147
|
+
children: [
|
|
148
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
149
|
+
children: "Drafts"
|
|
150
|
+
}),
|
|
151
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
152
|
+
children: data.summary.drafts
|
|
153
|
+
})
|
|
154
|
+
]
|
|
155
|
+
}),
|
|
156
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
157
|
+
children: [
|
|
158
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
159
|
+
children: "Published"
|
|
160
|
+
}),
|
|
161
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
162
|
+
children: data.summary.published
|
|
163
|
+
})
|
|
164
|
+
]
|
|
165
|
+
}),
|
|
166
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
167
|
+
children: [
|
|
168
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
169
|
+
children: "Hidden from nav"
|
|
170
|
+
}),
|
|
171
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
172
|
+
children: data.summary.hiddenFromNav
|
|
173
|
+
})
|
|
174
|
+
]
|
|
175
|
+
}),
|
|
176
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
177
|
+
children: [
|
|
178
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
179
|
+
children: "With overrides"
|
|
180
|
+
}),
|
|
181
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
182
|
+
children: data.summary.withOverrides
|
|
183
|
+
})
|
|
184
|
+
]
|
|
185
|
+
}),
|
|
186
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
187
|
+
children: [
|
|
188
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
189
|
+
children: "Last sync"
|
|
190
|
+
}),
|
|
191
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
192
|
+
children: formatDate(data.sync?.lastSyncedAt)
|
|
193
|
+
})
|
|
194
|
+
]
|
|
195
|
+
}),
|
|
196
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
197
|
+
children: [
|
|
198
|
+
/*#__PURE__*/ _jsx("dt", {
|
|
199
|
+
children: "Last status"
|
|
200
|
+
}),
|
|
201
|
+
/*#__PURE__*/ _jsx("dd", {
|
|
202
|
+
children: data.sync?.lastStatus ?? 'unknown'
|
|
203
|
+
})
|
|
204
|
+
]
|
|
205
|
+
})
|
|
206
|
+
]
|
|
207
|
+
});
|
|
208
|
+
export const DocsSetManager = async ({ id, field, payload, req })=>{
|
|
209
|
+
const custom = getFieldCustom(field);
|
|
210
|
+
const docsCollectionSlug = custom.docsCollectionSlug ?? DEFAULT_DOCS_COLLECTION_SLUG;
|
|
211
|
+
const docsSetsCollectionSlug = custom.docsSetsCollectionSlug ?? DEFAULT_DOCS_SETS_COLLECTION_SLUG;
|
|
212
|
+
if (!id) {
|
|
213
|
+
return /*#__PURE__*/ _jsxs("section", {
|
|
214
|
+
children: [
|
|
215
|
+
/*#__PURE__*/ _jsx("h2", {
|
|
216
|
+
children: "Generated Docs"
|
|
217
|
+
}),
|
|
218
|
+
/*#__PURE__*/ _jsx("p", {
|
|
219
|
+
children: "Save this docs set before reviewing generated docs records."
|
|
220
|
+
})
|
|
221
|
+
]
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
const data = await getDocsSetManagerData({
|
|
225
|
+
adminRoute: req.payload.config.routes.admin,
|
|
226
|
+
docsCollectionSlug,
|
|
227
|
+
docsSetId: String(id),
|
|
228
|
+
docsSetsCollectionSlug,
|
|
229
|
+
payload: payload
|
|
230
|
+
});
|
|
231
|
+
return /*#__PURE__*/ _jsxs("section", {
|
|
232
|
+
children: [
|
|
233
|
+
/*#__PURE__*/ _jsxs("header", {
|
|
234
|
+
children: [
|
|
235
|
+
/*#__PURE__*/ _jsx("h2", {
|
|
236
|
+
children: "Generated Docs"
|
|
237
|
+
}),
|
|
238
|
+
/*#__PURE__*/ _jsxs("p", {
|
|
239
|
+
children: [
|
|
240
|
+
"Review generated docs records for ",
|
|
241
|
+
data.docsSet.title,
|
|
242
|
+
". Source docs remain Git-backed; per-doc overrides can be edited by opening a generated doc."
|
|
243
|
+
]
|
|
244
|
+
})
|
|
245
|
+
]
|
|
246
|
+
}),
|
|
247
|
+
/*#__PURE__*/ _jsxs("section", {
|
|
248
|
+
children: [
|
|
249
|
+
/*#__PURE__*/ _jsx("h3", {
|
|
250
|
+
children: "Route Base"
|
|
251
|
+
}),
|
|
252
|
+
/*#__PURE__*/ _jsx("p", {
|
|
253
|
+
children: data.docsSet.routeBase || 'No route base configured'
|
|
254
|
+
})
|
|
255
|
+
]
|
|
256
|
+
}),
|
|
257
|
+
/*#__PURE__*/ _jsxs("section", {
|
|
258
|
+
children: [
|
|
259
|
+
/*#__PURE__*/ _jsx("h3", {
|
|
260
|
+
children: "Sync Summary"
|
|
261
|
+
}),
|
|
262
|
+
/*#__PURE__*/ _jsx(Summary, {
|
|
263
|
+
data: data
|
|
264
|
+
})
|
|
265
|
+
]
|
|
266
|
+
}),
|
|
267
|
+
data.warnings.length > 0 ? /*#__PURE__*/ _jsxs("section", {
|
|
268
|
+
children: [
|
|
269
|
+
/*#__PURE__*/ _jsx("h3", {
|
|
270
|
+
children: "Warnings"
|
|
271
|
+
}),
|
|
272
|
+
/*#__PURE__*/ _jsx("ul", {
|
|
273
|
+
children: data.warnings.map((warning)=>/*#__PURE__*/ _jsxs("li", {
|
|
274
|
+
children: [
|
|
275
|
+
warning.sourcePath ? `${warning.sourcePath}: ` : null,
|
|
276
|
+
warning.message
|
|
277
|
+
]
|
|
278
|
+
}, `${warning.docId ?? 'docs-set'}:${warning.message}`))
|
|
279
|
+
})
|
|
280
|
+
]
|
|
281
|
+
}) : null,
|
|
282
|
+
/*#__PURE__*/ _jsxs("section", {
|
|
283
|
+
children: [
|
|
284
|
+
/*#__PURE__*/ _jsx("h3", {
|
|
285
|
+
children: "Generated Docs"
|
|
286
|
+
}),
|
|
287
|
+
data.tree.length > 0 ? /*#__PURE__*/ _jsx("div", {
|
|
288
|
+
children: data.tree.map((item)=>renderDocItem(item))
|
|
289
|
+
}) : /*#__PURE__*/ _jsx("p", {
|
|
290
|
+
children: "No generated docs records are linked to this docs set yet."
|
|
291
|
+
})
|
|
292
|
+
]
|
|
293
|
+
})
|
|
294
|
+
]
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
//# sourceMappingURL=DocsSetManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/admin/DocsSetManager.tsx"],"sourcesContent":["import type { UIFieldServerProps } from 'payload'\nimport type { ReactNode } from 'react'\n\nimport type {\n DocsSetManagerData,\n DocsSetManagerDocItem,\n DocsSetManagerPayloadOperations,\n} from './docsSetManagerTypes.js'\n\nimport {\n DEFAULT_DOCS_COLLECTION_SLUG,\n DEFAULT_DOCS_SETS_COLLECTION_SLUG,\n} from '../constants.js'\nimport { getDocsSetManagerData } from './docsSetManagerData.js'\n\ntype DocsSetManagerFieldCustom = {\n docsCollectionSlug?: string\n docsSetsCollectionSlug?: string\n}\n\nconst getFieldCustom = (\n field: UIFieldServerProps['field'],\n): DocsSetManagerFieldCustom => {\n const custom = 'custom' in field ? field.custom : undefined\n\n if (!custom || typeof custom !== 'object') {\n return {}\n }\n\n return custom as DocsSetManagerFieldCustom\n}\n\nconst formatDate = (value?: string): string => {\n if (!value) {\n return 'Never'\n }\n\n const date = new Date(value)\n\n if (Number.isNaN(date.getTime())) {\n return value\n }\n\n return date.toISOString()\n}\n\nconst StatusLabel = ({ item }: { item: DocsSetManagerDocItem }) => {\n if (item.archived) {\n return <span>archived</span>\n }\n\n if (item.draft) {\n return <span>draft</span>\n }\n\n if (item.published) {\n return <span>published</span>\n }\n\n return <span>synced</span>\n}\n\nconst OverrideSummary = ({ item }: { item: DocsSetManagerDocItem }) => {\n if (item.overrideSummary.length === 0) {\n return <span>none</span>\n }\n\n return <span>{item.overrideSummary.join(', ')}</span>\n}\n\nconst renderDocItem = (item: DocsSetManagerDocItem): ReactNode => {\n if (item.kind === 'folder') {\n return (\n <details key={item.id}>\n <summary>{item.title}</summary>\n <div>\n {item.children?.map((child) => renderDocItem(child))}\n </div>\n </details>\n )\n }\n\n return (\n <details key={item.id}>\n <summary>{item.sourcePath}</summary>\n <dl>\n <div>\n <dt>Route</dt>\n <dd>{item.route || 'Missing route'}</dd>\n </div>\n <div>\n <dt>Title</dt>\n <dd>{item.title}</dd>\n </div>\n <div>\n <dt>Status</dt>\n <dd>\n <StatusLabel item={item} />\n </dd>\n </div>\n <div>\n <dt>Overrides</dt>\n <dd>\n <OverrideSummary item={item} />\n </dd>\n </div>\n </dl>\n {item.adminURL ? <a href={item.adminURL}>Open generated doc</a> : null}\n </details>\n )\n}\n\nconst Summary = ({ data }: { data: DocsSetManagerData }) => (\n <dl>\n <div>\n <dt>Docs</dt>\n <dd>{data.summary.total}</dd>\n </div>\n <div>\n <dt>Archived</dt>\n <dd>{data.summary.archived}</dd>\n </div>\n <div>\n <dt>Drafts</dt>\n <dd>{data.summary.drafts}</dd>\n </div>\n <div>\n <dt>Published</dt>\n <dd>{data.summary.published}</dd>\n </div>\n <div>\n <dt>Hidden from nav</dt>\n <dd>{data.summary.hiddenFromNav}</dd>\n </div>\n <div>\n <dt>With overrides</dt>\n <dd>{data.summary.withOverrides}</dd>\n </div>\n <div>\n <dt>Last sync</dt>\n <dd>{formatDate(data.sync?.lastSyncedAt)}</dd>\n </div>\n <div>\n <dt>Last status</dt>\n <dd>{data.sync?.lastStatus ?? 'unknown'}</dd>\n </div>\n </dl>\n)\n\nexport const DocsSetManager = async ({\n id,\n field,\n payload,\n req,\n}: UIFieldServerProps) => {\n const custom = getFieldCustom(field)\n const docsCollectionSlug = custom.docsCollectionSlug ?? DEFAULT_DOCS_COLLECTION_SLUG\n const docsSetsCollectionSlug =\n custom.docsSetsCollectionSlug ?? DEFAULT_DOCS_SETS_COLLECTION_SLUG\n\n if (!id) {\n return (\n <section>\n <h2>Generated Docs</h2>\n <p>Save this docs set before reviewing generated docs records.</p>\n </section>\n )\n }\n\n const data = await getDocsSetManagerData({\n adminRoute: req.payload.config.routes.admin,\n docsCollectionSlug,\n docsSetId: String(id),\n docsSetsCollectionSlug,\n payload: payload as DocsSetManagerPayloadOperations,\n })\n\n return (\n <section>\n <header>\n <h2>Generated Docs</h2>\n <p>\n Review generated docs records for {data.docsSet.title}. Source docs remain\n Git-backed; per-doc overrides can be edited by opening a generated doc.\n </p>\n </header>\n\n <section>\n <h3>Route Base</h3>\n <p>{data.docsSet.routeBase || 'No route base configured'}</p>\n </section>\n\n <section>\n <h3>Sync Summary</h3>\n <Summary data={data} />\n </section>\n\n {data.warnings.length > 0 ? (\n <section>\n <h3>Warnings</h3>\n <ul>\n {data.warnings.map((warning) => (\n <li key={`${warning.docId ?? 'docs-set'}:${warning.message}`}>\n {warning.sourcePath ? `${warning.sourcePath}: ` : null}\n {warning.message}\n </li>\n ))}\n </ul>\n </section>\n ) : null}\n\n <section>\n <h3>Generated Docs</h3>\n {data.tree.length > 0 ? (\n <div>{data.tree.map((item) => renderDocItem(item))}</div>\n ) : (\n <p>No generated docs records are linked to this docs set yet.</p>\n )}\n </section>\n </section>\n )\n}\n"],"names":["DEFAULT_DOCS_COLLECTION_SLUG","DEFAULT_DOCS_SETS_COLLECTION_SLUG","getDocsSetManagerData","getFieldCustom","field","custom","undefined","formatDate","value","date","Date","Number","isNaN","getTime","toISOString","StatusLabel","item","archived","span","draft","published","OverrideSummary","overrideSummary","length","join","renderDocItem","kind","details","summary","title","div","children","map","child","id","sourcePath","dl","dt","dd","route","adminURL","a","href","Summary","data","total","drafts","hiddenFromNav","withOverrides","sync","lastSyncedAt","lastStatus","DocsSetManager","payload","req","docsCollectionSlug","docsSetsCollectionSlug","section","h2","p","adminRoute","config","routes","admin","docsSetId","String","header","docsSet","h3","routeBase","warnings","ul","warning","li","message","docId","tree"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { DocsSetManagerData, DocsSetManagerPayloadOperations, RawDocsRecord, RawDocsSetRecord } from './docsSetManagerTypes.js';
|
|
2
|
+
export declare const getGeneratedDocAdminURL: ({ id, adminRoute, docsCollectionSlug, }: {
|
|
3
|
+
adminRoute?: string;
|
|
4
|
+
docsCollectionSlug: string;
|
|
5
|
+
id: string;
|
|
6
|
+
}) => string;
|
|
7
|
+
export declare const buildDocsSetManagerData: ({ adminRoute, docs, docsCollectionSlug, docsSet, }: {
|
|
8
|
+
adminRoute?: string;
|
|
9
|
+
docs: RawDocsRecord[];
|
|
10
|
+
docsCollectionSlug?: string;
|
|
11
|
+
docsSet: RawDocsSetRecord;
|
|
12
|
+
}) => DocsSetManagerData;
|
|
13
|
+
export declare const isDocsRecordForDocsSet: ({ doc, docsSetId, sourceId, }: {
|
|
14
|
+
doc: RawDocsRecord;
|
|
15
|
+
docsSetId: string;
|
|
16
|
+
sourceId: string;
|
|
17
|
+
}) => boolean;
|
|
18
|
+
export declare const getDocsSetManagerData: ({ adminRoute, docsCollectionSlug, docsSetId, docsSetsCollectionSlug, overrideAccess, payload, }: {
|
|
19
|
+
adminRoute?: string;
|
|
20
|
+
docsCollectionSlug?: string;
|
|
21
|
+
docsSetId: string;
|
|
22
|
+
docsSetsCollectionSlug?: string;
|
|
23
|
+
overrideAccess?: boolean;
|
|
24
|
+
payload: DocsSetManagerPayloadOperations;
|
|
25
|
+
}) => Promise<DocsSetManagerData>;
|