@velastack/cms 0.1.0 → 0.2.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 +1 -1
- package/dist/backend/auth/editors.d.ts +51 -0
- package/dist/backend/auth/editors.js +157 -0
- package/dist/backend/auth/local-editors.d.ts +22 -0
- package/dist/backend/auth/local-editors.js +44 -0
- package/dist/backend/auth/scrypt.d.ts +20 -0
- package/dist/backend/auth/scrypt.js +80 -0
- package/dist/backend/factory.d.ts +25 -0
- package/dist/backend/factory.js +202 -0
- package/dist/backend/http.d.ts +34 -0
- package/dist/backend/http.js +79 -0
- package/dist/backend/index.d.ts +45 -0
- package/dist/backend/index.js +39 -0
- package/dist/backend/router.d.ts +52 -0
- package/dist/backend/router.js +57 -0
- package/dist/backend/routes/context.d.ts +46 -0
- package/dist/backend/routes/context.js +30 -0
- package/dist/backend/routes/docs.d.ts +2 -0
- package/dist/backend/routes/docs.js +150 -0
- package/dist/backend/routes/login.d.ts +19 -0
- package/dist/backend/routes/login.js +155 -0
- package/dist/backend/routes/media.d.ts +22 -0
- package/dist/backend/routes/media.js +119 -0
- package/dist/backend/routes/pages.d.ts +19 -0
- package/dist/backend/routes/pages.js +221 -0
- package/dist/backend/routes/release.d.ts +10 -0
- package/dist/backend/routes/release.js +147 -0
- package/dist/backend/routes/site.d.ts +2 -0
- package/dist/backend/routes/site.js +40 -0
- package/dist/backend/routes/table.d.ts +11 -0
- package/dist/backend/routes/table.js +72 -0
- package/dist/backend/routes/test-reset.d.ts +15 -0
- package/dist/backend/routes/test-reset.js +112 -0
- package/dist/backend/routes/user.d.ts +14 -0
- package/dist/backend/routes/user.js +21 -0
- package/dist/backend/storage.d.ts +18 -0
- package/dist/backend/storage.js +45 -0
- package/dist/backend/store/cache.d.ts +34 -0
- package/dist/backend/store/cache.js +38 -0
- package/dist/backend/store/db.d.ts +10 -0
- package/dist/backend/store/db.js +29 -0
- package/dist/backend/store/migrate.d.ts +10 -0
- package/dist/backend/store/migrate.js +30 -0
- package/dist/backend/store/migrations/0001-init.d.ts +1 -0
- package/dist/backend/store/migrations/0001-init.js +129 -0
- package/dist/backend/store/migrations/0002-site.d.ts +1 -0
- package/dist/backend/store/migrations/0002-site.js +86 -0
- package/dist/backend/store/migrations/0003-editors.d.ts +1 -0
- package/dist/backend/store/migrations/0003-editors.js +44 -0
- package/dist/backend/store/migrations/index.d.ts +15 -0
- package/dist/backend/store/migrations/index.js +18 -0
- package/dist/backend/store/queries.d.ts +67 -0
- package/dist/backend/store/queries.js +1207 -0
- package/dist/backend/store/sqlite.d.ts +22 -0
- package/dist/backend/store/sqlite.js +29 -0
- package/dist/backend/testing/fixtures.d.ts +39 -0
- package/dist/backend/testing/fixtures.js +61 -0
- package/dist/backend/testing/harness.d.ts +35 -0
- package/dist/backend/testing/harness.js +149 -0
- package/dist/backend/types.d.ts +102 -0
- package/dist/cms.d.ts +3 -3
- package/dist/cms.js +1 -1
- package/dist/components/admin-bar/publish-dialog.svelte +1 -1
- package/dist/components/cms/cms-image-editable.svelte +1 -1
- package/dist/components/cms/cms-store.svelte.d.ts +3 -68
- package/dist/components/cms/cms-store.svelte.js +25 -10
- package/dist/components/cms/locale-merge.d.ts +1 -1
- package/dist/components/cms/locale-merge.js +1 -1
- package/dist/components/cms/scope.d.ts +1 -1
- package/dist/core/page-entry.d.ts +43 -0
- package/dist/core/page-entry.js +21 -0
- package/dist/{components/cms → core}/path.d.ts +13 -0
- package/dist/{components/cms → core}/path.js +36 -0
- package/dist/core/wire.d.ts +182 -0
- package/dist/core/wire.js +1 -0
- package/dist/{srv → server}/api-adapter.js +2 -2
- package/dist/{srv → server}/load-cms.js +1 -1
- package/dist/{srv → server}/mock-adapter.d.ts +3 -24
- package/dist/{srv → server}/mock-adapter.js +5 -22
- package/dist/{srv → server}/types.d.ts +2 -6
- package/dist/server/types.js +1 -0
- package/package.json +13 -4
- package/plugin/dist/index.js +7 -0
- package/plugin/dist/index.js.map +1 -1
- package/plugin/dist/media.d.ts +16 -7
- package/plugin/dist/media.js +23 -10
- package/plugin/dist/media.js.map +1 -1
- /package/dist/{srv → backend}/types.js +0 -0
- /package/dist/{srv → server}/README.md +0 -0
- /package/dist/{srv → server}/api-adapter.d.ts +0 -0
- /package/dist/{srv → server}/cms.d.ts +0 -0
- /package/dist/{srv → server}/cms.js +0 -0
- /package/dist/{srv → server}/index.d.ts +0 -0
- /package/dist/{srv → server}/index.js +0 -0
- /package/dist/{srv → server}/load-cms.d.ts +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The published-page shape, shared by every layer that touches it: the
|
|
3
|
+
* in-memory `mockAdapter`, the SSR read path, and the HTTP backend's SQLite
|
|
4
|
+
* store. It used to exist three times — once here, once in the backend, and
|
|
5
|
+
* once hand-copied into the velastack app — with comments in each copy asking
|
|
6
|
+
* the next person to mirror changes by hand. This is the one copy.
|
|
7
|
+
*/
|
|
8
|
+
import type { Tree } from './path.js';
|
|
9
|
+
/**
|
|
10
|
+
* Outcome of a page-delete release item: omit for a hard delete (404 after
|
|
11
|
+
* publish), `gone` for permanent removal (410), or `redirect` to a target URL
|
|
12
|
+
* for a permanent redirect (308). When set, publish leaves the {@link PageEntry}
|
|
13
|
+
* in place with `tombstone` populated instead of removing the row, so `/docs`
|
|
14
|
+
* can surface it as `{ kind: 'gone' }` or `{ kind: 'redirect', to }`.
|
|
15
|
+
*/
|
|
16
|
+
export type PageDeleteOutcome = {
|
|
17
|
+
kind: 'gone';
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'redirect';
|
|
20
|
+
to: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* One page-kind entry: a specific (`routeId`, `params`) pair and its currently
|
|
24
|
+
* published content. `routeId` is the SvelteKit route id (e.g.
|
|
25
|
+
* `/(marketing)/rooms/[slug]`); `params` binds that route's owned params (e.g.
|
|
26
|
+
* `{ slug: 'suite-1' }`). Static page routes have `params: {}` and exactly one
|
|
27
|
+
* entry per route id.
|
|
28
|
+
*
|
|
29
|
+
* Pending edits live in releases, not on the entry — saving a draft adds an
|
|
30
|
+
* item to the editor's open release rather than mutating published content.
|
|
31
|
+
*
|
|
32
|
+
* `tombstone`, when set, marks a published tombstone: the page was deleted with
|
|
33
|
+
* a non-404 outcome in a prior release. `published` is still required (for
|
|
34
|
+
* {@link findPageEntry} symmetry, and so revert can restore it) but is ignored
|
|
35
|
+
* while `tombstone` is set.
|
|
36
|
+
*/
|
|
37
|
+
export type PageEntry = {
|
|
38
|
+
params: Record<string, string>;
|
|
39
|
+
published: Tree;
|
|
40
|
+
tombstone?: PageDeleteOutcome;
|
|
41
|
+
};
|
|
42
|
+
/** Match a {@link PageEntry} whose `params` map equals the requested params. */
|
|
43
|
+
export declare const findPageEntry: (entries: PageEntry[] | undefined, params: Record<string, string>) => PageEntry | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Match a {@link PageEntry} whose `params` map equals the requested params. */
|
|
2
|
+
export const findPageEntry = (entries, params) => {
|
|
3
|
+
if (!entries)
|
|
4
|
+
return undefined;
|
|
5
|
+
const keys = Object.keys(params);
|
|
6
|
+
for (const entry of entries) {
|
|
7
|
+
const entryKeys = Object.keys(entry.params);
|
|
8
|
+
if (entryKeys.length !== keys.length)
|
|
9
|
+
continue;
|
|
10
|
+
let match = true;
|
|
11
|
+
for (const k of keys) {
|
|
12
|
+
if (entry.params[k] !== params[k]) {
|
|
13
|
+
match = false;
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (match)
|
|
18
|
+
return entry;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
};
|
|
@@ -28,3 +28,16 @@ export declare const mergeTree: (...trees: Array<Tree | undefined>) => Tree;
|
|
|
28
28
|
* `mergeTree`'s array-replace semantics).
|
|
29
29
|
*/
|
|
30
30
|
export declare const diffPaths: (before: unknown, after: unknown) => string[];
|
|
31
|
+
/**
|
|
32
|
+
* Every leaf path in `tree`.
|
|
33
|
+
*
|
|
34
|
+
* Deliberately *not* the same walk as `diffPaths`' private `walkLeaves`:
|
|
35
|
+
* this one treats an array as a leaf (emitting the array's own path rather
|
|
36
|
+
* than recursing per index) and emits the path of an empty object. That
|
|
37
|
+
* matches `mergeTree`'s array-replace semantics, which is what the backend's
|
|
38
|
+
* publish/revert needs — `capturePriorTree` snapshots pre-edit state at
|
|
39
|
+
* exactly the granularity a patch tree will overwrite. `walkLeaves` recurses
|
|
40
|
+
* into arrays because the publish dialog wants a per-index changed-field
|
|
41
|
+
* summary. Keep both.
|
|
42
|
+
*/
|
|
43
|
+
export declare const leafPaths: (tree: unknown, prefix?: string) => string[];
|
|
@@ -154,3 +154,39 @@ const walkLeaves = (v, prefix, out) => {
|
|
|
154
154
|
if (prefix)
|
|
155
155
|
out.push(prefix);
|
|
156
156
|
};
|
|
157
|
+
/**
|
|
158
|
+
* Every leaf path in `tree`.
|
|
159
|
+
*
|
|
160
|
+
* Deliberately *not* the same walk as `diffPaths`' private `walkLeaves`:
|
|
161
|
+
* this one treats an array as a leaf (emitting the array's own path rather
|
|
162
|
+
* than recursing per index) and emits the path of an empty object. That
|
|
163
|
+
* matches `mergeTree`'s array-replace semantics, which is what the backend's
|
|
164
|
+
* publish/revert needs — `capturePriorTree` snapshots pre-edit state at
|
|
165
|
+
* exactly the granularity a patch tree will overwrite. `walkLeaves` recurses
|
|
166
|
+
* into arrays because the publish dialog wants a per-index changed-field
|
|
167
|
+
* summary. Keep both.
|
|
168
|
+
*/
|
|
169
|
+
export const leafPaths = (tree, prefix = '') => {
|
|
170
|
+
const out = [];
|
|
171
|
+
if (isPlainObject(tree)) {
|
|
172
|
+
if (Object.keys(tree).length === 0) {
|
|
173
|
+
if (prefix)
|
|
174
|
+
out.push(prefix);
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
177
|
+
for (const [k, v] of Object.entries(tree)) {
|
|
178
|
+
const sub = prefix ? `${prefix}.${k}` : k;
|
|
179
|
+
out.push(...leafPaths(v, sub));
|
|
180
|
+
}
|
|
181
|
+
return out;
|
|
182
|
+
}
|
|
183
|
+
if (Array.isArray(tree)) {
|
|
184
|
+
// Arrays are leaves under our merge rules — diff at the array level.
|
|
185
|
+
if (prefix)
|
|
186
|
+
out.push(prefix);
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
189
|
+
if (prefix)
|
|
190
|
+
out.push(prefix);
|
|
191
|
+
return out;
|
|
192
|
+
};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The HTTP wire contract between the CMS client and the CMS backend.
|
|
3
|
+
*
|
|
4
|
+
* These shapes were previously declared twice — once in
|
|
5
|
+
* `components/cms/cms-store.svelte.ts` for the browser and once in the
|
|
6
|
+
* backend's own `types.ts` — with nothing keeping them in step. Both sides now
|
|
7
|
+
* import from here, so a change to the wire format is a single edit that
|
|
8
|
+
* type-checks against every consumer.
|
|
9
|
+
*
|
|
10
|
+
* Naming follows the wire, not TypeScript convention: `preview_key` and
|
|
11
|
+
* `published_at` stay snake_case because that is what the JSON carries.
|
|
12
|
+
*/
|
|
13
|
+
import type { Tree } from './path.js';
|
|
14
|
+
import type { PageDeleteOutcome } from './page-entry.js';
|
|
15
|
+
export type { PageDeleteOutcome };
|
|
16
|
+
/** One pending change in a release, without the bookkeeping the store adds. */
|
|
17
|
+
export type ReleaseItemCore = {
|
|
18
|
+
kind: 'page';
|
|
19
|
+
routeId: string;
|
|
20
|
+
locale: string;
|
|
21
|
+
params: Record<string, string>;
|
|
22
|
+
tree: Tree;
|
|
23
|
+
} | {
|
|
24
|
+
kind: 'layout';
|
|
25
|
+
routeId: string;
|
|
26
|
+
locale: string;
|
|
27
|
+
tree: Tree;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'site';
|
|
30
|
+
tree: Tree;
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'page-delete';
|
|
33
|
+
routeId: string;
|
|
34
|
+
locale: string;
|
|
35
|
+
params: Record<string, string>;
|
|
36
|
+
outcome?: PageDeleteOutcome;
|
|
37
|
+
};
|
|
38
|
+
export type ReleaseItem = ReleaseItemCore & {
|
|
39
|
+
addedAt: string;
|
|
40
|
+
};
|
|
41
|
+
/** The caller's in-flight draft. One per (project, editor). */
|
|
42
|
+
export type OpenRelease = {
|
|
43
|
+
userId: string;
|
|
44
|
+
name?: string;
|
|
45
|
+
createdAt: string;
|
|
46
|
+
preview_key: string;
|
|
47
|
+
items: ReleaseItem[];
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* A published item, carrying the state it replaced so revert can restore it.
|
|
51
|
+
* `priorTree` is `null` when the item created content that did not exist.
|
|
52
|
+
*/
|
|
53
|
+
export type PublishedReleaseItem = ReleaseItemCore & {
|
|
54
|
+
priorTree: Tree | null;
|
|
55
|
+
priorTombstone?: PageDeleteOutcome;
|
|
56
|
+
};
|
|
57
|
+
export type PublishedRelease = {
|
|
58
|
+
id: string;
|
|
59
|
+
name?: string;
|
|
60
|
+
publishedBy: string;
|
|
61
|
+
publishedAt: string;
|
|
62
|
+
preview_key: string;
|
|
63
|
+
items: PublishedReleaseItem[];
|
|
64
|
+
revertedAt?: string;
|
|
65
|
+
};
|
|
66
|
+
/** Accepted by `POST /release/items`. No `page-delete` — that is staged by
|
|
67
|
+
* `DELETE /pages`, which needs to check the published state first. */
|
|
68
|
+
export type AddReleaseItemInput = Extract<ReleaseItemCore, {
|
|
69
|
+
kind: 'page';
|
|
70
|
+
} | {
|
|
71
|
+
kind: 'layout';
|
|
72
|
+
} | {
|
|
73
|
+
kind: 'site';
|
|
74
|
+
}>;
|
|
75
|
+
/** Accepted by `DELETE /release/items` — identifies an item without its tree. */
|
|
76
|
+
export type DiscardItemTarget = {
|
|
77
|
+
kind: 'page';
|
|
78
|
+
routeId: string;
|
|
79
|
+
locale: string;
|
|
80
|
+
params: Record<string, string>;
|
|
81
|
+
} | {
|
|
82
|
+
kind: 'layout';
|
|
83
|
+
routeId: string;
|
|
84
|
+
locale: string;
|
|
85
|
+
} | {
|
|
86
|
+
kind: 'page-delete';
|
|
87
|
+
routeId: string;
|
|
88
|
+
locale: string;
|
|
89
|
+
params: Record<string, string>;
|
|
90
|
+
} | {
|
|
91
|
+
kind: 'site';
|
|
92
|
+
};
|
|
93
|
+
export type PageMapEntry = {
|
|
94
|
+
params: Record<string, string>;
|
|
95
|
+
metadata: Record<string, unknown>;
|
|
96
|
+
isDraft: boolean;
|
|
97
|
+
isDeletePending: boolean;
|
|
98
|
+
redirectTo?: string;
|
|
99
|
+
gone?: boolean;
|
|
100
|
+
};
|
|
101
|
+
/** How the store groups page entries: by route id, no derived fields. */
|
|
102
|
+
export type PageMapRoute = {
|
|
103
|
+
routeId: string;
|
|
104
|
+
entries: PageMapEntry[];
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* A `/pages` response row. `ownedParams` is derived from the route id's
|
|
108
|
+
* `[param]` segments at response time rather than stored, so it belongs to the
|
|
109
|
+
* wire shape and not to {@link PageMapRoute}.
|
|
110
|
+
*/
|
|
111
|
+
export type PagesRoute = PageMapRoute & {
|
|
112
|
+
ownedParams: string[];
|
|
113
|
+
};
|
|
114
|
+
export type CreatePageResult = {
|
|
115
|
+
ok: true;
|
|
116
|
+
} | {
|
|
117
|
+
ok: false;
|
|
118
|
+
reason: 'exists';
|
|
119
|
+
};
|
|
120
|
+
export type StagePageDeleteResult = {
|
|
121
|
+
ok: true;
|
|
122
|
+
alreadyStaged: boolean;
|
|
123
|
+
} | {
|
|
124
|
+
ok: false;
|
|
125
|
+
reason: 'not-published' | 'has-draft';
|
|
126
|
+
};
|
|
127
|
+
export type RenamePageResult = {
|
|
128
|
+
ok: true;
|
|
129
|
+
release: OpenRelease;
|
|
130
|
+
} | {
|
|
131
|
+
ok: false;
|
|
132
|
+
reason: 'not-found' | 'exists' | 'same-params';
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* One media library item. `url` is what gets embedded in content trees, so it
|
|
136
|
+
* is whatever the backend's configured media base produces — root-relative
|
|
137
|
+
* (`/cms/uploads/abc.png`) for a same-origin mount, absolute for a
|
|
138
|
+
* cross-origin one.
|
|
139
|
+
*/
|
|
140
|
+
export type MediaItem = {
|
|
141
|
+
id: string;
|
|
142
|
+
filename: string;
|
|
143
|
+
originalName: string;
|
|
144
|
+
mime: string;
|
|
145
|
+
size: number;
|
|
146
|
+
url: string;
|
|
147
|
+
uploadedAt: string;
|
|
148
|
+
uploadedBy: string;
|
|
149
|
+
};
|
|
150
|
+
export type ListMediaOptions = {
|
|
151
|
+
offset?: number;
|
|
152
|
+
limit?: number;
|
|
153
|
+
};
|
|
154
|
+
export type ListMediaResult = {
|
|
155
|
+
items: MediaItem[];
|
|
156
|
+
total: number;
|
|
157
|
+
};
|
|
158
|
+
export type DocsResponse = {
|
|
159
|
+
contents: Tree;
|
|
160
|
+
} | PageDeleteOutcome;
|
|
161
|
+
export type SiteResponse = {
|
|
162
|
+
contents: Tree;
|
|
163
|
+
};
|
|
164
|
+
export type PagesResponse = {
|
|
165
|
+
routes: PagesRoute[];
|
|
166
|
+
};
|
|
167
|
+
export type ReleaseResponse = {
|
|
168
|
+
release: OpenRelease | null;
|
|
169
|
+
};
|
|
170
|
+
export type ReleaseHistoryResponse = {
|
|
171
|
+
history: PublishedRelease[];
|
|
172
|
+
};
|
|
173
|
+
export type PreviewKeyResponse = {
|
|
174
|
+
preview_key: string;
|
|
175
|
+
};
|
|
176
|
+
export type UserResponse = {
|
|
177
|
+
user: {
|
|
178
|
+
id: string;
|
|
179
|
+
name: string;
|
|
180
|
+
email: string;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -21,14 +21,14 @@ const RELATIVE_UPLOADS_RE = /^\/uploads\/([^/?#]+)$/;
|
|
|
21
21
|
*/
|
|
22
22
|
const rewriteMediaUrls = (value, uploadsBase, mediaPrefix) => {
|
|
23
23
|
const seen = new WeakMap();
|
|
24
|
-
const prefix = `${uploadsBase}/`;
|
|
24
|
+
const prefix = uploadsBase === null ? null : `${uploadsBase}/`;
|
|
25
25
|
const normalizedPrefix = mediaPrefix.replace(/\/$/, '');
|
|
26
26
|
const walk = (v) => {
|
|
27
27
|
if (typeof v === 'string') {
|
|
28
28
|
const m = RELATIVE_UPLOADS_RE.exec(v);
|
|
29
29
|
if (m)
|
|
30
30
|
return `${normalizedPrefix}/${m[1]}`;
|
|
31
|
-
if (v.startsWith(prefix)) {
|
|
31
|
+
if (prefix !== null && v.startsWith(prefix)) {
|
|
32
32
|
const rest = v.slice(prefix.length).split(/[?#]/)[0];
|
|
33
33
|
if (rest && !rest.includes('/'))
|
|
34
34
|
return `${normalizedPrefix}/${rest}`;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cmsManifest } from 'virtual:vela-cms/manifest';
|
|
2
|
-
import { mergeLocaleDocs, mergeLocaleEntries } from
|
|
2
|
+
import { mergeLocaleDocs, mergeLocaleEntries } from '../components/cms/locale-merge.js';
|
|
3
3
|
import { browser, building } from '$app/environment';
|
|
4
4
|
const builtManifest = cmsManifest;
|
|
5
5
|
const DEFAULT_ENDPOINT = '/api/cms';
|
|
@@ -1,26 +1,7 @@
|
|
|
1
|
-
import { type Tree } from '../
|
|
1
|
+
import { type Tree } from '../core/path.js';
|
|
2
|
+
import { findPageEntry, type PageEntry } from '../core/page-entry.js';
|
|
2
3
|
import type { CmsAdapter, CmsAdapterTombstone } from './types.ts';
|
|
3
|
-
|
|
4
|
-
* One page-kind entry: a specific (`routeId`, `params`) pair and its
|
|
5
|
-
* currently-published content. `routeId` is the SvelteKit route id (e.g.
|
|
6
|
-
* `/(marketing)/rooms/[slug]`); `params` is the bound values for that route's
|
|
7
|
-
* owned params (e.g. `{ slug: 'suite-1' }`). For static page routes (no owned
|
|
8
|
-
* params) `params` is `{}` and there's exactly one entry per route id.
|
|
9
|
-
*
|
|
10
|
-
* Pending edits live in releases (see `_store.ts`), not on the entry — saving
|
|
11
|
-
* a draft adds an item to the editor's open release rather than mutating the
|
|
12
|
-
* published content here.
|
|
13
|
-
*
|
|
14
|
-
* `tombstone`, when set, marks this entry as a published tombstone — the page
|
|
15
|
-
* was deleted with a non-404 outcome in a prior release. `published` is still
|
|
16
|
-
* required (for `findPageEntry` symmetry) but is ignored when `tombstone` is
|
|
17
|
-
* set; `fetchDocs` returns the tombstone instead of the doc.
|
|
18
|
-
*/
|
|
19
|
-
export type PageEntry = {
|
|
20
|
-
params: Record<string, string>;
|
|
21
|
-
published: Record<string, unknown>;
|
|
22
|
-
tombstone?: CmsAdapterTombstone;
|
|
23
|
-
};
|
|
4
|
+
export { findPageEntry, type PageEntry };
|
|
24
5
|
/**
|
|
25
6
|
* One pending change in an open release, snapshot for adapter overlay. Items
|
|
26
7
|
* with `kind: 'page'` carry `params`; layout items don't (layouts have no
|
|
@@ -76,8 +57,6 @@ export type MockAdapterOptions = {
|
|
|
76
57
|
*/
|
|
77
58
|
resolvePreview?: (previewKey: string) => ReleaseSnapshot | null | undefined;
|
|
78
59
|
};
|
|
79
|
-
/** Match a `PageEntry` whose `params` map equals the requested params. */
|
|
80
|
-
export declare const findPageEntry: (entries: PageEntry[] | undefined, params: Record<string, string>) => PageEntry | undefined;
|
|
81
60
|
/**
|
|
82
61
|
* In-memory {@link CmsAdapter} useful for tests, demos, and local development
|
|
83
62
|
* before a real backend is wired up.
|
|
@@ -1,25 +1,8 @@
|
|
|
1
|
-
import { mergeTree } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const keys = Object.keys(params);
|
|
7
|
-
for (const entry of entries) {
|
|
8
|
-
const entryKeys = Object.keys(entry.params);
|
|
9
|
-
if (entryKeys.length !== keys.length)
|
|
10
|
-
continue;
|
|
11
|
-
let match = true;
|
|
12
|
-
for (const k of keys) {
|
|
13
|
-
if (entry.params[k] !== params[k]) {
|
|
14
|
-
match = false;
|
|
15
|
-
break;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
if (match)
|
|
19
|
-
return entry;
|
|
20
|
-
}
|
|
21
|
-
return undefined;
|
|
22
|
-
};
|
|
1
|
+
import { mergeTree } from '../core/path.js';
|
|
2
|
+
import { findPageEntry } from '../core/page-entry.js';
|
|
3
|
+
// Re-exported so `@velastack/cms/server`'s public surface is unchanged by the
|
|
4
|
+
// move of these definitions into `core/`.
|
|
5
|
+
export { findPageEntry };
|
|
23
6
|
const paramsEqual = (a, b) => {
|
|
24
7
|
const aKeys = Object.keys(a);
|
|
25
8
|
if (aKeys.length !== Object.keys(b).length)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PageDeleteOutcome } from '../core/page-entry.js';
|
|
1
2
|
import type { CmsEntry, CmsScopeEntry, SiteSchema } from '../components/cms/scope.ts';
|
|
2
3
|
export type { CmsEntry, SiteSchema };
|
|
3
4
|
/**
|
|
@@ -23,12 +24,7 @@ export type CmsAdapterDoc = {
|
|
|
23
24
|
* page was replaced with a permanent redirect to `to` (HTTP 308). Layout
|
|
24
25
|
* scopes never resolve to a tombstone — only page-kind scopes do.
|
|
25
26
|
*/
|
|
26
|
-
export type CmsAdapterTombstone =
|
|
27
|
-
kind: 'gone';
|
|
28
|
-
} | {
|
|
29
|
-
kind: 'redirect';
|
|
30
|
-
to: string;
|
|
31
|
-
};
|
|
27
|
+
export type CmsAdapterTombstone = PageDeleteOutcome;
|
|
32
28
|
/**
|
|
33
29
|
* One resolution from an adapter for a single scope query: either the doc's
|
|
34
30
|
* tree (`CmsAdapterDoc`) or a tombstone signaling the page was deleted with
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velastack/cms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "A scope-aware CMS for SvelteKit, for static or dynamic sites.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"svelte",
|
|
@@ -57,9 +57,13 @@
|
|
|
57
57
|
"svelte": "./dist/index.js",
|
|
58
58
|
"default": "./dist/index.js"
|
|
59
59
|
},
|
|
60
|
-
"./
|
|
61
|
-
"types": "./dist/
|
|
62
|
-
"default": "./dist/
|
|
60
|
+
"./server": {
|
|
61
|
+
"types": "./dist/server/index.d.ts",
|
|
62
|
+
"default": "./dist/server/index.js"
|
|
63
|
+
},
|
|
64
|
+
"./backend": {
|
|
65
|
+
"types": "./dist/backend/index.d.ts",
|
|
66
|
+
"default": "./dist/backend/index.js"
|
|
63
67
|
},
|
|
64
68
|
"./vite": {
|
|
65
69
|
"types": "./plugin/dist/index.d.ts",
|
|
@@ -72,11 +76,15 @@
|
|
|
72
76
|
},
|
|
73
77
|
"peerDependencies": {
|
|
74
78
|
"@sveltejs/kit": "^2.0.0",
|
|
79
|
+
"better-sqlite3": "^11.0.0 || ^12.0.0",
|
|
75
80
|
"marked": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
|
|
76
81
|
"svelte": "^5.0.0",
|
|
77
82
|
"vite": "^8.0.0"
|
|
78
83
|
},
|
|
79
84
|
"peerDependenciesMeta": {
|
|
85
|
+
"better-sqlite3": {
|
|
86
|
+
"optional": true
|
|
87
|
+
},
|
|
80
88
|
"marked": {
|
|
81
89
|
"optional": true
|
|
82
90
|
}
|
|
@@ -90,6 +98,7 @@
|
|
|
90
98
|
"@tailwindcss/cli": "^4.3.3",
|
|
91
99
|
"@tailwindcss/vite": "^4.3.3",
|
|
92
100
|
"@types/node": "^26.4.0",
|
|
101
|
+
"better-sqlite3": "^12.11.1",
|
|
93
102
|
"marked": "^18.0.11",
|
|
94
103
|
"prettier": "^3.9.6",
|
|
95
104
|
"prettier-plugin-svelte": "^4.1.1",
|
package/plugin/dist/index.js
CHANGED
|
@@ -235,6 +235,13 @@ export const cms = (options = {}) => {
|
|
|
235
235
|
const uploadsBase = deriveUploadsBase(endpoint);
|
|
236
236
|
const mediaDir = resolve(viteRoot, options.mediaDir ?? 'static/cms-media');
|
|
237
237
|
const logger = config.logger;
|
|
238
|
+
// A root-relative endpoint (`cms({ endpoint: '/cms' })`) is the
|
|
239
|
+
// same-origin, single-tenant setup: uploads are served by the app
|
|
240
|
+
// itself, so there is nothing to pre-download and no origin to
|
|
241
|
+
// download it from. Prerendered pages reference `/uploads/<file>`
|
|
242
|
+
// and the app serves it at runtime.
|
|
243
|
+
if (uploadsBase === null)
|
|
244
|
+
return;
|
|
238
245
|
const cache = getMediaPassCache();
|
|
239
246
|
let pass = cache.get(endpoint);
|
|
240
247
|
if (!pass) {
|
package/plugin/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/plugin/dist/media.d.ts
CHANGED
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* project-scoped CMS endpoint (`/v1/projects/PID/cms`)
|
|
5
|
-
* not the upload path
|
|
2
|
+
* The backend serves uploaded files at the endpoint origin
|
|
3
|
+
* (`/uploads/<filename>`), from a route that reads them out of its data
|
|
4
|
+
* directory. The project-scoped CMS endpoint (`/v1/projects/PID/cms`) governs
|
|
5
|
+
* the API only, not the upload path, so `uploadsBase` is the bare origin plus
|
|
6
|
+
* `/uploads`.
|
|
7
|
+
*
|
|
8
|
+
* Returns `null` for a root-relative endpoint such as `cms({ endpoint: '/cms' })`
|
|
9
|
+
* — the single-tenant, same-origin configuration. There is no origin to fetch
|
|
10
|
+
* from at build time, so media pre-download is skipped; content still resolves
|
|
11
|
+
* because uploads are referenced as root-relative `/uploads/<file>` in that
|
|
12
|
+
* setup, which every caller here recognizes without a base. Previously this did
|
|
13
|
+
* a bare `new URL(endpoint)`, which throws `TypeError: Invalid URL` on a
|
|
14
|
+
* relative endpoint and took the whole build down.
|
|
6
15
|
*/
|
|
7
|
-
export declare const deriveUploadsBase: (endpoint: string) => string;
|
|
16
|
+
export declare const deriveUploadsBase: (endpoint: string) => string | null;
|
|
8
17
|
/**
|
|
9
18
|
* Walk an arbitrary deserialized JSON value and collect every media filename
|
|
10
19
|
* referenced as a string — either as a relative `/uploads/<file>` path or an
|
|
11
20
|
* absolute `<uploadsBase>/<file>` URL. Cycle-safe via a WeakSet.
|
|
12
21
|
*/
|
|
13
|
-
export declare const extractMediaUrls: (value: unknown, uploadsBase: string) => Set<string>;
|
|
22
|
+
export declare const extractMediaUrls: (value: unknown, uploadsBase: string | null) => Set<string>;
|
|
14
23
|
/**
|
|
15
24
|
* Deep-clone `value` and replace every recognized media URL string with
|
|
16
25
|
* `${mediaPrefix}/<filename>`. Returns the cloned tree; the input is left
|
|
17
26
|
* untouched. Cycle-safe (cycles are flattened to a fresh object — payloads
|
|
18
27
|
* passed through `devalue` won't have cycles, but defensive).
|
|
19
28
|
*/
|
|
20
|
-
export declare const rewriteMediaUrls: <T>(value: T, uploadsBase: string, mediaPrefix: string) => T;
|
|
29
|
+
export declare const rewriteMediaUrls: <T>(value: T, uploadsBase: string | null, mediaPrefix: string) => T;
|
|
21
30
|
export type DownloadResult = {
|
|
22
31
|
written: number;
|
|
23
32
|
skipped: number;
|