@velastack/cms 0.1.0 → 0.2.1

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.
Files changed (95) hide show
  1. package/README.md +1 -1
  2. package/dist/backend/auth/editors.d.ts +51 -0
  3. package/dist/backend/auth/editors.js +157 -0
  4. package/dist/backend/auth/local-editors.d.ts +22 -0
  5. package/dist/backend/auth/local-editors.js +44 -0
  6. package/dist/backend/auth/scrypt.d.ts +20 -0
  7. package/dist/backend/auth/scrypt.js +80 -0
  8. package/dist/backend/factory.d.ts +25 -0
  9. package/dist/backend/factory.js +213 -0
  10. package/dist/backend/http.d.ts +34 -0
  11. package/dist/backend/http.js +79 -0
  12. package/dist/backend/index.d.ts +45 -0
  13. package/dist/backend/index.js +39 -0
  14. package/dist/backend/router.d.ts +52 -0
  15. package/dist/backend/router.js +57 -0
  16. package/dist/backend/routes/context.d.ts +46 -0
  17. package/dist/backend/routes/context.js +30 -0
  18. package/dist/backend/routes/docs.d.ts +2 -0
  19. package/dist/backend/routes/docs.js +150 -0
  20. package/dist/backend/routes/login.d.ts +19 -0
  21. package/dist/backend/routes/login.js +155 -0
  22. package/dist/backend/routes/media.d.ts +22 -0
  23. package/dist/backend/routes/media.js +119 -0
  24. package/dist/backend/routes/pages.d.ts +19 -0
  25. package/dist/backend/routes/pages.js +221 -0
  26. package/dist/backend/routes/release.d.ts +10 -0
  27. package/dist/backend/routes/release.js +147 -0
  28. package/dist/backend/routes/site.d.ts +2 -0
  29. package/dist/backend/routes/site.js +40 -0
  30. package/dist/backend/routes/table.d.ts +11 -0
  31. package/dist/backend/routes/table.js +72 -0
  32. package/dist/backend/routes/test-reset.d.ts +15 -0
  33. package/dist/backend/routes/test-reset.js +112 -0
  34. package/dist/backend/routes/user.d.ts +14 -0
  35. package/dist/backend/routes/user.js +21 -0
  36. package/dist/backend/storage.d.ts +18 -0
  37. package/dist/backend/storage.js +45 -0
  38. package/dist/backend/store/cache.d.ts +34 -0
  39. package/dist/backend/store/cache.js +38 -0
  40. package/dist/backend/store/db.d.ts +10 -0
  41. package/dist/backend/store/db.js +29 -0
  42. package/dist/backend/store/migrate.d.ts +10 -0
  43. package/dist/backend/store/migrate.js +30 -0
  44. package/dist/backend/store/migrations/0001-init.d.ts +1 -0
  45. package/dist/backend/store/migrations/0001-init.js +129 -0
  46. package/dist/backend/store/migrations/0002-site.d.ts +1 -0
  47. package/dist/backend/store/migrations/0002-site.js +86 -0
  48. package/dist/backend/store/migrations/0003-editors.d.ts +1 -0
  49. package/dist/backend/store/migrations/0003-editors.js +44 -0
  50. package/dist/backend/store/migrations/index.d.ts +15 -0
  51. package/dist/backend/store/migrations/index.js +18 -0
  52. package/dist/backend/store/queries.d.ts +67 -0
  53. package/dist/backend/store/queries.js +1207 -0
  54. package/dist/backend/store/sqlite.d.ts +22 -0
  55. package/dist/backend/store/sqlite.js +29 -0
  56. package/dist/backend/testing/fixtures.d.ts +39 -0
  57. package/dist/backend/testing/fixtures.js +61 -0
  58. package/dist/backend/testing/harness.d.ts +35 -0
  59. package/dist/backend/testing/harness.js +149 -0
  60. package/dist/backend/types.d.ts +106 -0
  61. package/dist/cms.d.ts +3 -3
  62. package/dist/cms.js +1 -1
  63. package/dist/components/admin-bar/publish-dialog.svelte +1 -1
  64. package/dist/components/cms/cms-image-editable.svelte +1 -1
  65. package/dist/components/cms/cms-store.svelte.d.ts +3 -68
  66. package/dist/components/cms/cms-store.svelte.js +25 -10
  67. package/dist/components/cms/locale-merge.d.ts +1 -1
  68. package/dist/components/cms/locale-merge.js +1 -1
  69. package/dist/components/cms/scope.d.ts +1 -1
  70. package/dist/core/page-entry.d.ts +43 -0
  71. package/dist/core/page-entry.js +21 -0
  72. package/dist/{components/cms → core}/path.d.ts +13 -0
  73. package/dist/{components/cms → core}/path.js +36 -0
  74. package/dist/core/wire.d.ts +182 -0
  75. package/dist/core/wire.js +1 -0
  76. package/dist/{srv → server}/api-adapter.js +2 -2
  77. package/dist/{srv → server}/load-cms.js +1 -1
  78. package/dist/{srv → server}/mock-adapter.d.ts +3 -24
  79. package/dist/{srv → server}/mock-adapter.js +5 -22
  80. package/dist/{srv → server}/types.d.ts +2 -6
  81. package/dist/server/types.js +1 -0
  82. package/package.json +13 -4
  83. package/plugin/dist/index.js +7 -0
  84. package/plugin/dist/index.js.map +1 -1
  85. package/plugin/dist/media.d.ts +16 -7
  86. package/plugin/dist/media.js +23 -10
  87. package/plugin/dist/media.js.map +1 -1
  88. /package/dist/{srv → backend}/types.js +0 -0
  89. /package/dist/{srv → server}/README.md +0 -0
  90. /package/dist/{srv → server}/api-adapter.d.ts +0 -0
  91. /package/dist/{srv → server}/cms.d.ts +0 -0
  92. /package/dist/{srv → server}/cms.js +0 -0
  93. /package/dist/{srv → server}/index.d.ts +0 -0
  94. /package/dist/{srv → server}/index.js +0 -0
  95. /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 "../components/cms/locale-merge.js";
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 '../components/cms/path.ts';
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 "../components/cms/path.js";
2
- /** Match a `PageEntry` whose `params` map equals the requested params. */
3
- export const findPageEntry = (entries, params) => {
4
- if (!entries)
5
- return undefined;
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.1.0",
3
+ "version": "0.2.1",
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
- "./srv": {
61
- "types": "./dist/srv/index.d.ts",
62
- "default": "./dist/srv/index.js"
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",
@@ -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) {
@@ -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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"}
@@ -1,23 +1,32 @@
1
1
  /**
2
- * Backend serves uploaded files at the endpoint origin (`/uploads/<filename>`)
3
- * via SvelteKit's static handler confirmed in `cms.velastack/_store.ts`. The
4
- * project-scoped CMS endpoint (`/v1/projects/PID/cms`) only governs the API,
5
- * not the upload path. So `uploadsBase` is the bare origin + `/uploads`.
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;