@velastack/cms 0.4.0 → 0.5.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 (205) hide show
  1. package/README.md +140 -28
  2. package/dist/backend/index.d.ts +1 -1
  3. package/dist/backend/routes/seed.d.ts +6 -0
  4. package/dist/backend/routes/seed.js +96 -0
  5. package/dist/backend/routes/table.js +3 -0
  6. package/dist/backend/store/queries.d.ts +6 -1
  7. package/dist/backend/store/queries.js +89 -0
  8. package/dist/cms.js +13 -16
  9. package/dist/components/admin-bar/admin-bar-internal.svelte +4 -4
  10. package/dist/components/admin-bar/admin-bar.css +1 -1
  11. package/dist/components/admin-bar/field-input.svelte +239 -0
  12. package/dist/components/admin-bar/field-input.svelte.d.ts +30 -0
  13. package/dist/components/admin-bar/fields-form.svelte +218 -0
  14. package/dist/components/admin-bar/fields-form.svelte.d.ts +16 -0
  15. package/dist/components/admin-bar/icons/pencil.svelte +19 -0
  16. package/dist/components/admin-bar/icons/pencil.svelte.d.ts +3 -0
  17. package/dist/components/admin-bar/keyboard-shortcuts-dialog.svelte +1 -1
  18. package/dist/components/admin-bar/link-input.svelte +102 -0
  19. package/dist/components/admin-bar/link-input.svelte.d.ts +9 -0
  20. package/dist/components/admin-bar/list-field.svelte +93 -0
  21. package/dist/components/admin-bar/list-field.svelte.d.ts +20 -0
  22. package/dist/components/admin-bar/locales-panel.svelte +42 -1
  23. package/dist/components/admin-bar/page-config.d.ts +8 -1
  24. package/dist/components/admin-bar/page-config.js +15 -2
  25. package/dist/components/admin-bar/page-options.d.ts +24 -0
  26. package/dist/components/admin-bar/page-options.js +53 -0
  27. package/dist/components/admin-bar/reorder-buttons.svelte +52 -0
  28. package/dist/components/admin-bar/reorder-buttons.svelte.d.ts +10 -0
  29. package/dist/components/admin-bar/rich-text-input.svelte +92 -0
  30. package/dist/components/admin-bar/rich-text-input.svelte.d.ts +9 -0
  31. package/dist/components/admin-bar/seo-panel.svelte +144 -189
  32. package/dist/components/admin-bar/site-options-panel.svelte +115 -0
  33. package/dist/components/admin-bar/site-options-panel.svelte.d.ts +7 -0
  34. package/dist/components/admin-bar/structured-editor-popover.svelte +259 -0
  35. package/dist/components/admin-bar/structured-editor-popover.svelte.d.ts +48 -0
  36. package/dist/components/admin-bar/ui/checkbox/checkbox.svelte +36 -0
  37. package/dist/components/admin-bar/ui/checkbox/checkbox.svelte.d.ts +5 -0
  38. package/dist/components/admin-bar/ui/checkbox/index.d.ts +2 -0
  39. package/dist/components/admin-bar/ui/checkbox/index.js +2 -0
  40. package/dist/components/admin-bar/ui/popover/index.d.ts +5 -0
  41. package/dist/components/admin-bar/ui/popover/index.js +7 -0
  42. package/dist/components/admin-bar/ui/popover/popover-close.svelte +7 -0
  43. package/dist/components/admin-bar/ui/popover/popover-close.svelte.d.ts +4 -0
  44. package/dist/components/admin-bar/ui/popover/popover-content.svelte +35 -0
  45. package/dist/components/admin-bar/ui/popover/popover-content.svelte.d.ts +10 -0
  46. package/dist/components/admin-bar/ui/popover/popover-trigger.svelte +7 -0
  47. package/dist/components/admin-bar/ui/popover/popover-trigger.svelte.d.ts +4 -0
  48. package/dist/components/admin-bar/ui/popover/popover.svelte +7 -0
  49. package/dist/components/admin-bar/ui/popover/popover.svelte.d.ts +3 -0
  50. package/dist/components/admin-bar/ui/sheet/index.d.ts +10 -0
  51. package/dist/components/admin-bar/ui/sheet/index.js +12 -0
  52. package/dist/components/admin-bar/ui/sheet/sheet-close.svelte +7 -0
  53. package/dist/components/admin-bar/ui/sheet/sheet-close.svelte.d.ts +4 -0
  54. package/dist/components/admin-bar/ui/sheet/sheet-content.svelte +64 -0
  55. package/dist/components/admin-bar/ui/sheet/sheet-content.svelte.d.ts +17 -0
  56. package/dist/components/admin-bar/ui/sheet/sheet-description.svelte +17 -0
  57. package/dist/components/admin-bar/ui/sheet/sheet-description.svelte.d.ts +4 -0
  58. package/dist/components/admin-bar/ui/sheet/sheet-footer.svelte +23 -0
  59. package/dist/components/admin-bar/ui/sheet/sheet-footer.svelte.d.ts +5 -0
  60. package/dist/components/admin-bar/ui/sheet/sheet-header.svelte +20 -0
  61. package/dist/components/admin-bar/ui/sheet/sheet-header.svelte.d.ts +5 -0
  62. package/dist/components/admin-bar/ui/sheet/sheet-overlay.svelte +20 -0
  63. package/dist/components/admin-bar/ui/sheet/sheet-overlay.svelte.d.ts +4 -0
  64. package/dist/components/admin-bar/ui/sheet/sheet-title.svelte +17 -0
  65. package/dist/components/admin-bar/ui/sheet/sheet-title.svelte.d.ts +4 -0
  66. package/dist/components/admin-bar/ui/sheet/sheet-trigger.svelte +7 -0
  67. package/dist/components/admin-bar/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
  68. package/dist/components/admin-bar/ui/sheet/sheet.svelte +7 -0
  69. package/dist/components/admin-bar/ui/sheet/sheet.svelte.d.ts +3 -0
  70. package/dist/components/admin-bar/ui/switch/index.d.ts +2 -0
  71. package/dist/components/admin-bar/ui/switch/index.js +2 -0
  72. package/dist/components/admin-bar/ui/switch/switch.svelte +27 -0
  73. package/dist/components/admin-bar/ui/switch/switch.svelte.d.ts +5 -0
  74. package/dist/components/admin-bar/ui/tabs/index.d.ts +5 -0
  75. package/dist/components/admin-bar/ui/tabs/index.js +7 -0
  76. package/dist/components/admin-bar/ui/tabs/tabs-content.svelte +17 -0
  77. package/dist/components/admin-bar/ui/tabs/tabs-content.svelte.d.ts +4 -0
  78. package/dist/components/admin-bar/ui/tabs/tabs-list.svelte +16 -0
  79. package/dist/components/admin-bar/ui/tabs/tabs-list.svelte.d.ts +4 -0
  80. package/dist/components/admin-bar/ui/tabs/tabs-trigger.svelte +20 -0
  81. package/dist/components/admin-bar/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
  82. package/dist/components/admin-bar/ui/tabs/tabs.svelte +19 -0
  83. package/dist/components/admin-bar/ui/tabs/tabs.svelte.d.ts +4 -0
  84. package/dist/components/cms/cms-boolean.svelte +9 -18
  85. package/dist/components/cms/cms-boolean.svelte.d.ts +1 -0
  86. package/dist/components/cms/cms-collection.svelte +46 -0
  87. package/dist/components/cms/cms-collection.svelte.d.ts +25 -0
  88. package/dist/components/cms/cms-contact.svelte +26 -0
  89. package/dist/components/cms/cms-contact.svelte.d.ts +14 -0
  90. package/dist/components/cms/cms-date-time-editable.svelte +3 -3
  91. package/dist/components/cms/cms-date-time.svelte +17 -17
  92. package/dist/components/cms/cms-date-time.svelte.d.ts +2 -1
  93. package/dist/components/cms/cms-faq.svelte +22 -0
  94. package/dist/components/cms/cms-faq.svelte.d.ts +15 -0
  95. package/dist/components/cms/cms-gallery.svelte +31 -0
  96. package/dist/components/cms/cms-gallery.svelte.d.ts +16 -0
  97. package/dist/components/cms/cms-hours-editable.svelte +160 -0
  98. package/dist/components/cms/cms-hours-editable.svelte.d.ts +17 -0
  99. package/dist/components/cms/cms-hours.svelte +42 -0
  100. package/dist/components/cms/cms-hours.svelte.d.ts +19 -0
  101. package/dist/components/cms/cms-image-editable.svelte +13 -4
  102. package/dist/components/cms/cms-image.svelte +19 -34
  103. package/dist/components/cms/cms-image.svelte.d.ts +7 -8
  104. package/dist/components/cms/cms-link-editable.svelte +4 -60
  105. package/dist/components/cms/cms-link.svelte +15 -28
  106. package/dist/components/cms/cms-link.svelte.d.ts +4 -9
  107. package/dist/components/cms/cms-logos.svelte +29 -0
  108. package/dist/components/cms/cms-logos.svelte.d.ts +16 -0
  109. package/dist/components/cms/cms-markdown.svelte +15 -16
  110. package/dist/components/cms/cms-markdown.svelte.d.ts +1 -0
  111. package/dist/components/cms/cms-nav.svelte +22 -0
  112. package/dist/components/cms/cms-nav.svelte.d.ts +15 -0
  113. package/dist/components/cms/cms-number-editable.svelte +4 -2
  114. package/dist/components/cms/cms-number.svelte +18 -17
  115. package/dist/components/cms/cms-number.svelte.d.ts +2 -1
  116. package/dist/components/cms/cms-pricing.svelte +36 -0
  117. package/dist/components/cms/cms-pricing.svelte.d.ts +14 -0
  118. package/dist/components/cms/cms-rich-text.svelte +17 -22
  119. package/dist/components/cms/cms-rich-text.svelte.d.ts +1 -0
  120. package/dist/components/cms/cms-schedule.svelte +35 -0
  121. package/dist/components/cms/cms-schedule.svelte.d.ts +16 -0
  122. package/dist/components/cms/cms-social-links.svelte +35 -0
  123. package/dist/components/cms/cms-social-links.svelte.d.ts +15 -0
  124. package/dist/components/cms/cms-stats.svelte +31 -0
  125. package/dist/components/cms/cms-stats.svelte.d.ts +16 -0
  126. package/dist/components/cms/cms-steps.svelte +31 -0
  127. package/dist/components/cms/cms-steps.svelte.d.ts +16 -0
  128. package/dist/components/cms/cms-store.svelte.d.ts +14 -0
  129. package/dist/components/cms/cms-store.svelte.js +39 -2
  130. package/dist/components/cms/cms-structured-editable.svelte +29 -0
  131. package/dist/components/cms/{cms-repeater-editable.svelte.d.ts → cms-structured-editable.svelte.d.ts} +12 -8
  132. package/dist/components/cms/cms-structured.svelte +50 -0
  133. package/dist/components/cms/cms-structured.svelte.d.ts +49 -0
  134. package/dist/components/cms/cms-team.svelte +22 -0
  135. package/dist/components/cms/cms-team.svelte.d.ts +15 -0
  136. package/dist/components/cms/cms-testimonials.svelte +36 -0
  137. package/dist/components/cms/cms-testimonials.svelte.d.ts +15 -0
  138. package/dist/components/cms/cms-text.svelte +23 -30
  139. package/dist/components/cms/cms-text.svelte.d.ts +3 -1
  140. package/dist/components/cms/cms-timeline.svelte +35 -0
  141. package/dist/components/cms/cms-timeline.svelte.d.ts +16 -0
  142. package/dist/components/cms/index.d.ts +15 -1
  143. package/dist/components/cms/index.js +15 -1
  144. package/dist/components/cms/scope.d.ts +25 -5
  145. package/dist/components/cms/use-cms-field.svelte.d.ts +54 -0
  146. package/dist/components/cms/use-cms-field.svelte.js +83 -0
  147. package/dist/core/metadata.d.ts +44 -0
  148. package/dist/core/metadata.js +59 -0
  149. package/dist/core/shapes/collection.d.ts +60 -0
  150. package/dist/core/shapes/collection.js +194 -0
  151. package/dist/core/shapes/contact.d.ts +70 -0
  152. package/dist/core/shapes/contact.js +214 -0
  153. package/dist/core/shapes/faq.d.ts +12 -0
  154. package/dist/core/shapes/faq.js +48 -0
  155. package/dist/core/shapes/form.d.ts +46 -0
  156. package/dist/core/shapes/form.js +7 -0
  157. package/dist/core/shapes/hours.d.ts +91 -0
  158. package/dist/core/shapes/hours.js +325 -0
  159. package/dist/core/shapes/image.d.ts +15 -0
  160. package/dist/core/shapes/image.js +27 -0
  161. package/dist/core/shapes/index.d.ts +31 -0
  162. package/dist/core/shapes/index.js +13 -0
  163. package/dist/core/shapes/link.d.ts +15 -0
  164. package/dist/core/shapes/link.js +42 -0
  165. package/dist/core/shapes/nav.d.ts +21 -0
  166. package/dist/core/shapes/nav.js +71 -0
  167. package/dist/core/shapes/presets.d.ts +65 -0
  168. package/dist/core/shapes/presets.js +152 -0
  169. package/dist/core/shapes/pricing.d.ts +40 -0
  170. package/dist/core/shapes/pricing.js +115 -0
  171. package/dist/core/shapes/social-links.d.ts +19 -0
  172. package/dist/core/shapes/social-links.js +83 -0
  173. package/dist/core/shapes/team.d.ts +22 -0
  174. package/dist/core/shapes/team.js +70 -0
  175. package/dist/core/shapes/testimonials.d.ts +24 -0
  176. package/dist/core/shapes/testimonials.js +86 -0
  177. package/dist/core/structured-registry.d.ts +10 -0
  178. package/dist/core/structured-registry.js +6 -0
  179. package/dist/core/structured.d.ts +131 -0
  180. package/dist/core/structured.js +235 -0
  181. package/dist/core/wire.d.ts +31 -1
  182. package/dist/editor.d.ts +26 -0
  183. package/dist/editor.js +25 -0
  184. package/dist/index.d.ts +26 -4
  185. package/dist/index.js +31 -2
  186. package/dist/server/load-cms.js +1 -0
  187. package/package.json +12 -3
  188. package/plugin/README.md +22 -2
  189. package/plugin/dist/build.d.ts +74 -0
  190. package/plugin/dist/build.js +210 -0
  191. package/plugin/dist/build.js.map +1 -0
  192. package/plugin/dist/index.d.ts +10 -1
  193. package/plugin/dist/index.js +63 -4
  194. package/plugin/dist/index.js.map +1 -1
  195. package/plugin/dist/manifest.d.ts +31 -0
  196. package/plugin/dist/manifest.js +146 -41
  197. package/plugin/dist/manifest.js.map +1 -1
  198. package/plugin/dist/parse-svelte.d.ts +15 -0
  199. package/plugin/dist/parse-svelte.js +26 -16
  200. package/plugin/dist/parse-svelte.js.map +1 -1
  201. package/dist/components/admin-bar/site-settings-panel.svelte +0 -225
  202. package/dist/components/admin-bar/site-settings-panel.svelte.d.ts +0 -7
  203. package/dist/components/cms/cms-repeater-editable.svelte +0 -137
  204. package/dist/components/cms/cms-repeater.svelte +0 -55
  205. package/dist/components/cms/cms-repeater.svelte.d.ts +0 -30
package/plugin/README.md CHANGED
@@ -31,6 +31,11 @@ type CmsPluginOptions = {
31
31
  libDir?: string; // default: 'src/lib'
32
32
  components?: ExternalCmsComponentSpec[];
33
33
  traverse?: (string | RegExp)[];
34
+ endpoint?: string; // media download at build time
35
+ locales?: string[]; // default: ['en']; locales[0] is the default locale
36
+ mediaDir?: string;
37
+ mediaPrefix?: string;
38
+ content?: string | false; // default: 'content' — see "Content manifest"
34
39
  };
35
40
 
36
41
  type ExternalCmsComponentSpec =
@@ -48,6 +53,14 @@ type ExternalCmsComponentSpec =
48
53
  `source === pattern || source.startsWith(pattern + '/')`. Auto-populated with
49
54
  every `components[].source`.
50
55
 
56
+ - `content` — directory of per-locale content manifests. See below.
57
+
58
+ ## Content manifest
59
+
60
+ When `<content>/<defaultLocale>.json` exists, the plugin reads it — an object keyed by scope id (`layout:/`, `page:/(public)/about`, `site`) — and injects each usage's value as a `fallback={…}` prop (`initial` for `CmsBoolean`) into every walked `.svelte` file, route entrypoints and shared components alike. A `scope="root"` usage reads `layout:/`; any other usage reads the scopes that reach its file, leaf first. Components in source stay name-only; the value the visitor sees before the CMS answers comes from the manifest. The file is watched, so edits apply in dev.
61
+
62
+ The same operation is available to other tooling from `@velastack/cms/build` (`scanUsages`, `injectFallbacks` / `inlineFallbacks`, `buildManifest`, `fallbackResolverFor`), so `pack` and `verify` in a templates repo share this parser instead of carrying their own.
63
+
51
64
  ## Virtual modules
52
65
 
53
66
  ### `virtual:vela-cms/manifest`
@@ -57,6 +70,7 @@ import { cmsManifest } from 'virtual:vela-cms/manifest';
57
70
 
58
71
  type CmsManifest = {
59
72
  version: 1;
73
+ // each scope lists `fields` (names) and `usages` ({ name, component, preset? })
60
74
  routes: Record<string, { scopes: CmsManifestScope[] }>;
61
75
  };
62
76
 
@@ -107,6 +121,8 @@ For each route entrypoint (`+page.svelte` or `+layout.svelte`), the plugin
107
121
  parses with `svelte/compiler` and follows static imports of `.svelte` files.
108
122
  Imports get classified as CMS components by:
109
123
 
124
+ 0. **`@velastack/cms` by name** — every named import from the package
125
+ specifier, with no resolver needed.
110
126
  1. **In-tree barrel** — anything from `<libDir>/components/cms/index.{ts,js}`.
111
127
  Named imports are CMS components; default isn't.
112
128
  2. **In-tree files** — `.svelte` files directly under `<libDir>/components/cms/`.
@@ -116,8 +132,12 @@ Imports get classified as CMS components by:
116
132
  4. **External `components` spec** — user-declared packs.
117
133
 
118
134
  Component usages with a `name=<static>` prop are recorded as field
119
- references; `value=<…>` opts the call out (it's a runtime override, not a
120
- field). Dynamic `name={expr}` props are ignored.
135
+ references with their component type; `value=<…>` opts the call out (it's a
136
+ runtime override, not a field). A `scope="root"` (or `scope="layout:/x"`)
137
+ attribute records the usage under that layout scope instead of the file's
138
+ own. Dynamic `name={expr}` props and `scope=` attributes naming a scope
139
+ outside the route's chain are reported as warnings on the build result and
140
+ logged by the plugin.
121
141
 
122
142
  ## HMR
123
143
 
@@ -0,0 +1,74 @@
1
+ import { buildManifest, resolveScopeAttr, ROOT_SCOPE_ID, type BuildManifestOptions, type BuildManifestResult, type CmsManifest, type CmsManifestScope, type CmsManifestUsage } from './manifest.js';
2
+ export { buildManifest, resolveScopeAttr, ROOT_SCOPE_ID };
3
+ export type Tree = Record<string, unknown>;
4
+ export type { BuildManifestOptions, BuildManifestResult, CmsManifest, CmsManifestScope, CmsManifestUsage };
5
+ export type CmsUsage = {
6
+ /** Static `name=` literal, or `null` when absent or dynamic. */
7
+ name: string | null;
8
+ /** Canonical exported component name (`CmsText`, `CmsHours`, …). */
9
+ component: string;
10
+ /** Local binding used in the template. */
11
+ local: string;
12
+ /** Resolved scope id from `scope=`, or `null` for the enclosing route scope. */
13
+ scope: string | null;
14
+ preset: string | null;
15
+ /** `name=` was present but not a static string. */
16
+ dynamic: boolean;
17
+ hasValue: boolean;
18
+ hasFallback: boolean;
19
+ line: number;
20
+ /** Source offsets of the component node. */
21
+ start: number;
22
+ end: number;
23
+ };
24
+ export type ScanOptions = {
25
+ filename?: string;
26
+ /**
27
+ * Extra local names to treat as CMS components, for wrappers a template
28
+ * declares itself. Package imports and `$lib/components/cms/*` are always
29
+ * recognized.
30
+ */
31
+ components?: string[];
32
+ };
33
+ export type ScanResult = {
34
+ usages: CmsUsage[];
35
+ /** Dynamic names, which no manifest can record. */
36
+ warnings: string[];
37
+ };
38
+ /** Every CMS component usage in one `.svelte` source. */
39
+ export declare const scanUsages: (source: string, options?: ScanOptions) => ScanResult;
40
+ /** Returns the value to inject for a usage, or `undefined` to leave it alone. */
41
+ export type FallbackResolver = (usage: CmsUsage) => unknown;
42
+ export type InjectOptions = ScanOptions & {
43
+ /** Replace an existing `fallback` / `initial` prop instead of skipping it. */
44
+ overwrite?: boolean;
45
+ };
46
+ export type InjectResult = {
47
+ code: string;
48
+ /** Names that received a fallback. */
49
+ injected: string[];
50
+ /** Static names the resolver had no value for. */
51
+ missing: string[];
52
+ };
53
+ /**
54
+ * Write values into a file's CMS usages as `fallback={…}` props (the JSON
55
+ * literal of the value), leaving the source otherwise untouched. `resolve`
56
+ * is a content tree keyed by name, or a function for callers that know
57
+ * which scope each usage's value lives in (see {@link fallbackResolverFor}).
58
+ *
59
+ * Usages with a `value=` prop, a dynamic name, or (unless `overwrite`) an
60
+ * existing fallback are skipped. The plugin calls this in memory at build
61
+ * time in the templates repo; `pack` calls it to write the tarball's
62
+ * components, which is why it is also exported as {@link inlineFallbacks}.
63
+ */
64
+ export declare const injectFallbacks: (source: string, resolve: Tree | FallbackResolver, options?: InjectOptions) => InjectResult;
65
+ /** Same operation as {@link injectFallbacks}, named for the `pack` step that
66
+ * writes the result to disk. */
67
+ export declare const inlineFallbacks: (source: string, resolve: Tree | FallbackResolver, options?: InjectOptions) => InjectResult;
68
+ /**
69
+ * A resolver for one file, given a built manifest and a content manifest
70
+ * keyed by scope id (`layout:/`, `page:/(public)/about`, …). A usage with
71
+ * `scope=` reads that scope; otherwise the scopes that reach the file are
72
+ * tried leaf first, and the first one holding the value wins.
73
+ */
74
+ export declare const fallbackResolverFor: (result: Pick<BuildManifestResult, "scopesByFile">, file: string, content: Record<string, Tree>) => FallbackResolver;
@@ -0,0 +1,210 @@
1
+ /**
2
+ * `@velastack/cms/build` — the one Svelte parser for build tooling.
3
+ *
4
+ * The templates repo's `pack` and `verify` steps, and this package's own Vite
5
+ * plugin, all need the same three things: which CMS components a `.svelte`
6
+ * file uses ({@link scanUsages}), how to write a content manifest's values
7
+ * into those usages as `fallback` props ({@link injectFallbacks}), and which
8
+ * scope a file's values live in ({@link fallbackResolverFor}, on top of
9
+ * {@link buildManifest}). Keeping them here means no consumer carries a Svelte
10
+ * parser of its own.
11
+ */
12
+ import { basename } from 'node:path';
13
+ import { parseSvelteSource } from './parse-svelte.js';
14
+ import { buildManifest, isPackageSource, resolveScopeAttr, ROOT_SCOPE_ID } from './manifest.js';
15
+ export { buildManifest, resolveScopeAttr, ROOT_SCOPE_ID };
16
+ /** Dot-path read, the same rule as `core/path.ts` (numeric segments index arrays). */
17
+ const get = (tree, path) => {
18
+ let cur = tree;
19
+ for (const seg of path.split('.')) {
20
+ if (cur == null || typeof cur !== 'object')
21
+ return undefined;
22
+ cur = cur[seg];
23
+ }
24
+ return cur;
25
+ };
26
+ const IN_TREE_CMS_DIR = '$lib/components/cms';
27
+ /**
28
+ * Classify a single file's imports without a bundler: the package by name,
29
+ * the in-tree `$lib/components/cms` barrel or files, and the caller's own
30
+ * list. Returns local binding → canonical component name.
31
+ */
32
+ const classifyImports = (imports, extra) => {
33
+ const out = new Map();
34
+ for (const imp of imports) {
35
+ const source = imp.source;
36
+ if (isPackageSource(source) ||
37
+ source === IN_TREE_CMS_DIR ||
38
+ source === IN_TREE_CMS_DIR + '/index.js') {
39
+ for (const b of imp.bindings)
40
+ if (b.imported !== 'default')
41
+ out.set(b.local, b.imported);
42
+ continue;
43
+ }
44
+ if (source.startsWith(IN_TREE_CMS_DIR + '/') && source.endsWith('.svelte')) {
45
+ for (const b of imp.bindings) {
46
+ if (b.imported === 'default')
47
+ out.set(b.local, basename(source, '.svelte'));
48
+ }
49
+ }
50
+ }
51
+ for (const name of extra)
52
+ if (!out.has(name))
53
+ out.set(name, name);
54
+ return out;
55
+ };
56
+ const toUsage = (u, component) => ({
57
+ name: u.fieldName,
58
+ component,
59
+ local: u.componentName,
60
+ scope: u.scopeAttr ? resolveScopeAttr(u.scopeAttr) : null,
61
+ preset: u.presetAttr,
62
+ dynamic: u.dynamicName,
63
+ hasValue: u.hasValueAttr,
64
+ hasFallback: u.hasFallbackAttr,
65
+ line: u.line,
66
+ start: u.start,
67
+ end: u.end
68
+ });
69
+ /** Every CMS component usage in one `.svelte` source. */
70
+ export const scanUsages = (source, options = {}) => {
71
+ const parsed = parseSvelteSource(source, options.filename);
72
+ const locals = classifyImports(parsed.imports, options.components ?? []);
73
+ const usages = [];
74
+ const warnings = [];
75
+ const where = options.filename ?? '<source>';
76
+ for (const u of parsed.componentUsages) {
77
+ const component = locals.get(u.componentName);
78
+ if (!component)
79
+ continue;
80
+ const usage = toUsage(u, component);
81
+ usages.push(usage);
82
+ if (usage.dynamic) {
83
+ warnings.push(`${where}:${u.line} <${u.componentName}> has a dynamic name`);
84
+ }
85
+ }
86
+ return { usages, warnings };
87
+ };
88
+ /** Components whose fallback prop is not called `fallback`. */
89
+ const FALLBACK_PROP = { CmsBoolean: 'initial' };
90
+ /**
91
+ * Write values into a file's CMS usages as `fallback={…}` props (the JSON
92
+ * literal of the value), leaving the source otherwise untouched. `resolve`
93
+ * is a content tree keyed by name, or a function for callers that know
94
+ * which scope each usage's value lives in (see {@link fallbackResolverFor}).
95
+ *
96
+ * Usages with a `value=` prop, a dynamic name, or (unless `overwrite`) an
97
+ * existing fallback are skipped. The plugin calls this in memory at build
98
+ * time in the templates repo; `pack` calls it to write the tarball's
99
+ * components, which is why it is also exported as {@link inlineFallbacks}.
100
+ */
101
+ export const injectFallbacks = (source, resolve, options = {}) => {
102
+ const parsed = parseSvelteSource(source, options.filename);
103
+ const locals = classifyImports(parsed.imports, options.components ?? []);
104
+ const resolver = typeof resolve === 'function' ? resolve : (u) => (u.name ? get(resolve, u.name) : undefined);
105
+ const edits = [];
106
+ const injected = [];
107
+ const missing = [];
108
+ for (const u of parsed.componentUsages) {
109
+ const component = locals.get(u.componentName);
110
+ if (!component || !u.fieldName || u.hasValueAttr || u.nameAttrEnd === null)
111
+ continue;
112
+ if (u.hasFallbackAttr && !options.overwrite)
113
+ continue;
114
+ const value = resolver(toUsage(u, component));
115
+ if (value === undefined) {
116
+ missing.push(u.fieldName);
117
+ continue;
118
+ }
119
+ const prop = FALLBACK_PROP[component] ?? 'fallback';
120
+ const literal = JSON.stringify(value);
121
+ if (u.hasFallbackAttr) {
122
+ const existing = findAttr(source, u.start, u.end, prop);
123
+ if (existing)
124
+ edits.push({ at: existing[0], text: `${prop}={${literal}}`, replace: existing });
125
+ else
126
+ edits.push({ at: u.nameAttrEnd, text: ` ${prop}={${literal}}` });
127
+ }
128
+ else {
129
+ edits.push({ at: u.nameAttrEnd, text: ` ${prop}={${literal}}` });
130
+ }
131
+ injected.push(u.fieldName);
132
+ }
133
+ // Apply from the end so earlier offsets stay valid.
134
+ edits.sort((a, b) => b.at - a.at);
135
+ let code = source;
136
+ for (const e of edits) {
137
+ if (e.replace)
138
+ code = code.slice(0, e.replace[0]) + e.text + code.slice(e.replace[1]);
139
+ else
140
+ code = code.slice(0, e.at) + e.text + code.slice(e.at);
141
+ }
142
+ return { code, injected, missing };
143
+ };
144
+ /** Same operation as {@link injectFallbacks}, named for the `pack` step that
145
+ * writes the result to disk. */
146
+ export const inlineFallbacks = injectFallbacks;
147
+ /** Locate `prop=` inside a component node's source. Returns `[start, end]`. */
148
+ const findAttr = (source, start, end, prop) => {
149
+ const re = new RegExp(`\\s${prop}\\s*=`, 'g');
150
+ const slice = source.slice(start, end);
151
+ const m = re.exec(slice);
152
+ if (!m)
153
+ return null;
154
+ const attrStart = start + m.index + 1;
155
+ // Find the matching end: either a quoted string or a balanced `{…}`.
156
+ let i = start + m.index + m[0].length;
157
+ while (i < end && /\s/.test(source[i]))
158
+ i++;
159
+ if (source[i] === '"' || source[i] === "'") {
160
+ const q = source[i];
161
+ i++;
162
+ while (i < end && source[i] !== q)
163
+ i++;
164
+ return [attrStart, i + 1];
165
+ }
166
+ if (source[i] === '{') {
167
+ let depth = 0;
168
+ for (; i < end; i++) {
169
+ const c = source[i];
170
+ if (c === '{')
171
+ depth++;
172
+ else if (c === '}') {
173
+ depth--;
174
+ if (depth === 0)
175
+ return [attrStart, i + 1];
176
+ }
177
+ else if (c === '"' || c === "'" || c === '`') {
178
+ const q = c;
179
+ i++;
180
+ while (i < end && source[i] !== q) {
181
+ if (source[i] === '\\')
182
+ i++;
183
+ i++;
184
+ }
185
+ }
186
+ }
187
+ }
188
+ return null;
189
+ };
190
+ /**
191
+ * A resolver for one file, given a built manifest and a content manifest
192
+ * keyed by scope id (`layout:/`, `page:/(public)/about`, …). A usage with
193
+ * `scope=` reads that scope; otherwise the scopes that reach the file are
194
+ * tried leaf first, and the first one holding the value wins.
195
+ */
196
+ export const fallbackResolverFor = (result, file, content) => {
197
+ const reach = result.scopesByFile.get(file) ?? [];
198
+ return (usage) => {
199
+ if (!usage.name)
200
+ return undefined;
201
+ const candidates = usage.scope ? [usage.scope] : reach;
202
+ for (const scopeId of candidates) {
203
+ const v = get(content[scopeId], usage.name);
204
+ if (v !== undefined)
205
+ return v;
206
+ }
207
+ return undefined;
208
+ };
209
+ };
210
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,15 @@ export type CmsPluginOptions = {
35
35
  mediaDir?: string;
36
36
  /** URL prefix used in rewritten content. Defaults to `'/cms-media'`. */
37
37
  mediaPrefix?: string;
38
+ /**
39
+ * Directory of per-locale content manifests, `content/<locale>.json`,
40
+ * keyed by scope id (`layout:/`, `page:/(public)/about`, `site`). When the
41
+ * default locale's file exists (`locales[0]`, else `en`), its values are
42
+ * injected into every walked `.svelte` file as `fallback` props, so
43
+ * components stay name-only in source. Relative to the Vite root; defaults
44
+ * to `'content'`. Pass `false` to disable.
45
+ */
46
+ content?: string | false;
38
47
  };
39
48
  /**
40
49
  * Vite plugin that scans SvelteKit route files, walks the static Svelte
@@ -53,4 +62,4 @@ export type CmsPluginOptions = {
53
62
  * aren't themselves CMS components.
54
63
  */
55
64
  export declare const cms: (options?: CmsPluginOptions) => Plugin;
56
- export type { CmsManifest, CmsManifestScope, ExternalCmsComponentSpec } from './manifest.js';
65
+ export type { CmsManifest, CmsManifestScope, CmsManifestUsage, ExternalCmsComponentSpec } from './manifest.js';
@@ -1,10 +1,11 @@
1
- import { existsSync, readFileSync } from 'node:fs';
1
+ import { existsSync, readFileSync, statSync } from 'node:fs';
2
2
  import { dirname, resolve } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { transformWithOxc } from 'vite';
5
5
  import { setPageCmsModules } from './build-state.js';
6
6
  import { buildManifest } from './manifest.js';
7
7
  import { deriveUploadsBase, downloadMedia, extractMediaUrls } from './media.js';
8
+ import { fallbackResolverFor, injectFallbacks } from './build.js';
8
9
  import { INSTALL_IMPORT_SOURCE, PAGE_CMS_VIRTUAL_PREFIX, SELF_INSTALL_IMPORT_SOURCE, buildPagesModuleSource, hasGenerateEntriesImport, injectGenerateEntriesRouteId, injectScopeInstall, parsePageCmsIndex } from './transforms.js';
9
10
  const VIRTUAL_ID = 'virtual:vela-cms/manifest';
10
11
  const RESOLVED_VIRTUAL_ID = '\0' + VIRTUAL_ID;
@@ -165,6 +166,40 @@ export const cms = (options = {}) => {
165
166
  let cached = null;
166
167
  let cachedSync = null;
167
168
  let velacmsRoots = null;
169
+ let warned = false;
170
+ // The default-locale content manifest, re-read when its mtime changes so
171
+ // edits show up in dev without a restart.
172
+ let contentPath = null;
173
+ let contentCache = null;
174
+ const readContent = () => {
175
+ if (!contentPath)
176
+ return null;
177
+ let mtime;
178
+ try {
179
+ mtime = statSync(contentPath).mtimeMs;
180
+ }
181
+ catch {
182
+ return null;
183
+ }
184
+ if (contentCache && contentCache.mtime === mtime)
185
+ return contentCache.tree;
186
+ try {
187
+ const tree = JSON.parse(readFileSync(contentPath, 'utf-8'));
188
+ contentCache = { mtime, tree };
189
+ return tree;
190
+ }
191
+ catch (e) {
192
+ config.logger.warn(`@velastack/cms: could not read ${contentPath}: ${String(e)}`);
193
+ return null;
194
+ }
195
+ };
196
+ const logWarnings = (result) => {
197
+ if (warned)
198
+ return;
199
+ warned = true;
200
+ for (const w of result.warnings)
201
+ config.logger.warn(`@velastack/cms: ${w}`);
202
+ };
168
203
  const ensureManifest = (resolver) => {
169
204
  if (cached)
170
205
  return cached;
@@ -199,6 +234,7 @@ export const cms = (options = {}) => {
199
234
  });
200
235
  cachedSync = result;
201
236
  setPageCmsModules(result.pageCmsModules);
237
+ logWarnings(result);
202
238
  return result;
203
239
  })();
204
240
  return cached;
@@ -225,11 +261,18 @@ export const cms = (options = {}) => {
225
261
  installImportSource = matchPackageName(viteRoot, '@velastack/cms')
226
262
  ? SELF_INSTALL_IMPORT_SOURCE
227
263
  : INSTALL_IMPORT_SOURCE;
264
+ if (options.content !== false) {
265
+ const dir = resolve(config.root, options.content ?? 'content');
266
+ const defaultLocale = options.locales?.[0] ?? 'en';
267
+ const file = resolve(dir, `${defaultLocale}.json`);
268
+ contentPath = existsSync(file) ? file : null;
269
+ }
228
270
  },
229
271
  async buildStart() {
230
272
  cached = null;
231
273
  cachedSync = null;
232
274
  velacmsRoots = null;
275
+ warned = false;
233
276
  // Media discovery + download is only meaningful for `vite build`.
234
277
  // In dev (`vite serve`), images load from the backend as today.
235
278
  if (config.command !== 'build')
@@ -347,15 +390,30 @@ export const cms = (options = {}) => {
347
390
  // route source.
348
391
  if (id.includes('?'))
349
392
  return;
350
- if (!id.startsWith(routesDir + '/'))
393
+ const inRoutes = id.startsWith(routesDir + '/');
394
+ if (!inRoutes && !(contentPath && id.endsWith('.svelte')))
351
395
  return;
352
396
  const result = await ensureManifest(makeResolver(this));
353
397
  if (id.endsWith('.svelte')) {
398
+ let next = code;
399
+ // Content manifest fallbacks go into every file the walk reached,
400
+ // route entrypoints and shared components alike.
401
+ const content = result.scopesByFile.has(id) ? readContent() : null;
402
+ if (content) {
403
+ this.addWatchFile(contentPath);
404
+ next = injectFallbacks(next, fallbackResolverFor(result, id, content), {
405
+ filename: id
406
+ }).code;
407
+ }
354
408
  const info = result.scopeByEntryPath.get(id);
355
- if (!info)
409
+ if (info)
410
+ next = injectScopeInstall(next, info, id, installImportSource);
411
+ if (next === code)
356
412
  return;
357
- return { code: injectScopeInstall(code, info, id, installImportSource), map: null };
413
+ return { code: next, map: null };
358
414
  }
415
+ if (!inRoutes)
416
+ return;
359
417
  if (id.endsWith('+page.ts') || id.endsWith('+page.server.ts')) {
360
418
  const routeId = result.routeIdByScriptPath.get(id);
361
419
  if (!routeId)
@@ -393,6 +451,7 @@ export const cms = (options = {}) => {
393
451
  cached = null;
394
452
  cachedSync = null;
395
453
  velacmsRoots = null;
454
+ warned = false;
396
455
  const manifestMod = server.moduleGraph.getModuleById(RESOLVED_VIRTUAL_ID);
397
456
  if (manifestMod)
398
457
  server.moduleGraph.invalidateModule(manifestMod);
@@ -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,3 +1,16 @@
1
+ /**
2
+ * One CMS component usage as recorded in the manifest: which value it reads
3
+ * and which component type reads it, so a content manifest can be checked
4
+ * against the template without parsing Svelte again.
5
+ */
6
+ export type CmsManifestUsage = {
7
+ /** The `name=` literal. */
8
+ name: string;
9
+ /** Canonical exported component name (`CmsText`, `CmsHours`, …). */
10
+ component: string;
11
+ /** Static `preset=` literal, for list presets. */
12
+ preset?: string;
13
+ };
1
14
  export type CmsManifestScope = {
2
15
  scopeId: string;
3
16
  kind: 'layout' | 'page';
@@ -8,7 +21,15 @@ export type CmsManifestScope = {
8
21
  * `metadata` branch shows up here too (e.g. `'metadata.title'`).
9
22
  */
10
23
  fields: string[];
24
+ /** The usages behind `fields`, with their component types. */
25
+ usages: CmsManifestUsage[];
11
26
  };
27
+ /** The root layout scope, addressed by `scope="root"`. */
28
+ export declare const ROOT_SCOPE_ID = "layout:/";
29
+ /** Bare specifiers that are this package: named imports are CMS components. */
30
+ export declare const isPackageSource: (source: string) => boolean;
31
+ /** Resolve a `scope=` attribute to a scope id. */
32
+ export declare const resolveScopeAttr: (scope: string) => string;
12
33
  export type CmsManifestRoute = {
13
34
  scopes: CmsManifestScope[];
14
35
  /** Route ids referenced by `<CmsEntries routeId="…">` anywhere in this route's chain. */
@@ -72,5 +93,15 @@ export type BuildManifestResult = {
72
93
  path: string;
73
94
  creatable: boolean;
74
95
  }>;
96
+ /**
97
+ * Which scopes reach each visited `.svelte` file, leaf scope first. A
98
+ * shared component used from two layouts lists both. Fallback injection
99
+ * uses it to find the content tree a usage's value lives in.
100
+ */
101
+ scopesByFile: Map<string, string[]>;
102
+ /** Human-readable problems found during the walk: dynamic `name`s the
103
+ * manifest cannot record, `scope=` attributes naming a scope outside the
104
+ * route's chain. The plugin logs them; verify tooling can fail on them. */
105
+ warnings: string[];
75
106
  };
76
107
  export declare const buildManifest: (options: BuildManifestOptions) => Promise<BuildManifestResult>;