@drawnagency/primitives 0.1.26 → 0.1.28

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 (107) hide show
  1. package/dist/{chunk-UMSFICAC.js → chunk-DKOUFIP6.js} +0 -1
  2. package/dist/{chunk-FSVPD7TW.js → chunk-HXXZBTPF.js} +12 -5
  3. package/dist/{chunk-IP6ODLXX.js → chunk-JHSYLVKI.js} +19 -84
  4. package/dist/{chunk-P24YUT3O.js → chunk-MNK7XA6S.js} +1 -1
  5. package/dist/{chunk-EAEX6DS7.js → chunk-V43WVSVS.js} +3 -2
  6. package/dist/components/editor/SectionOrderingModal.d.ts +10 -0
  7. package/dist/components/editor/SectionOrderingModal.d.ts.map +1 -0
  8. package/dist/components/editor/SectionWrapper.d.ts.map +1 -1
  9. package/dist/components/primitives/EditableRichText.d.ts.map +1 -1
  10. package/dist/components/sections/Button/index.d.ts.map +1 -1
  11. package/dist/components/sections/Colors/index.d.ts.map +1 -1
  12. package/dist/components/sections/DoDontMediaGrid/index.d.ts.map +1 -1
  13. package/dist/components/sections/IconList/index.d.ts.map +1 -1
  14. package/dist/components/sections/LinkHeading/index.d.ts.map +1 -1
  15. package/dist/components/sections/MediaGrid/index.d.ts.map +1 -1
  16. package/dist/components/sections/Prose/index.d.ts.map +1 -1
  17. package/dist/components/sections/SplitContent/index.d.ts.map +1 -1
  18. package/dist/components/sections/SubHeading/index.d.ts.map +1 -1
  19. package/dist/components/sections/SubSubHeading/index.d.ts.map +1 -1
  20. package/dist/components/sections/ViewRenderer.d.ts +0 -1
  21. package/dist/components/sections/ViewRenderer.d.ts.map +1 -1
  22. package/dist/components/sections/register-schemas.d.ts.map +1 -1
  23. package/dist/components/sections/register.d.ts.map +1 -1
  24. package/dist/components/shell/EditorShell.d.ts +1 -1
  25. package/dist/components/shell/EditorShell.d.ts.map +1 -1
  26. package/dist/deploy/index.d.ts +2 -0
  27. package/dist/deploy/index.d.ts.map +1 -0
  28. package/dist/deploy/types.d.ts +12 -0
  29. package/dist/deploy/types.d.ts.map +1 -0
  30. package/dist/hooks/useEditorPublish.d.ts.map +1 -1
  31. package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
  32. package/dist/index.d.ts +2 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +10 -8
  35. package/dist/lib/dexie.d.ts +4 -1
  36. package/dist/lib/dexie.d.ts.map +1 -1
  37. package/dist/lib/dexie.js +319 -0
  38. package/dist/lib/index.js +3 -3
  39. package/dist/lib/nav.d.ts +2 -6
  40. package/dist/lib/nav.d.ts.map +1 -1
  41. package/dist/lib/registry.d.ts +14 -0
  42. package/dist/lib/registry.d.ts.map +1 -1
  43. package/dist/lib/text.d.ts +3 -0
  44. package/dist/lib/text.d.ts.map +1 -0
  45. package/dist/media/index.d.ts +4 -2
  46. package/dist/media/index.d.ts.map +1 -1
  47. package/dist/media/index.js +8 -6
  48. package/dist/media/provider.d.ts +7 -0
  49. package/dist/media/provider.d.ts.map +1 -0
  50. package/dist/media/resolve.d.ts +3 -2
  51. package/dist/media/resolve.d.ts.map +1 -1
  52. package/dist/media/types.d.ts +0 -9
  53. package/dist/media/types.d.ts.map +1 -1
  54. package/dist/schemas/index.js +3 -3
  55. package/dist/schemas/media.d.ts +0 -3
  56. package/dist/schemas/media.d.ts.map +1 -1
  57. package/dist/schemas/site-config.d.ts +1 -3
  58. package/dist/schemas/site-config.d.ts.map +1 -1
  59. package/dist/storage/index.d.ts +2 -0
  60. package/dist/storage/index.d.ts.map +1 -0
  61. package/dist/storage/types.d.ts +21 -0
  62. package/dist/storage/types.d.ts.map +1 -0
  63. package/package.json +5 -1
  64. package/src/components/editor/DragHandle.tsx +1 -1
  65. package/src/components/editor/SectionOrderingModal.tsx +215 -0
  66. package/src/components/editor/SectionWrapper.tsx +3 -1
  67. package/src/components/primitives/EditableRichText.tsx +4 -2
  68. package/src/components/sections/Button/index.tsx +1 -0
  69. package/src/components/sections/Colors/index.tsx +8 -0
  70. package/src/components/sections/DoDontMediaGrid/index.tsx +8 -0
  71. package/src/components/sections/IconList/index.tsx +4 -0
  72. package/src/components/sections/LinkHeading/index.tsx +2 -0
  73. package/src/components/sections/MediaGrid/index.tsx +8 -0
  74. package/src/components/sections/Prose/index.tsx +2 -0
  75. package/src/components/sections/SplitContent/index.tsx +16 -2
  76. package/src/components/sections/SubHeading/index.tsx +2 -0
  77. package/src/components/sections/SubSubHeading/index.tsx +2 -0
  78. package/src/components/sections/ViewRenderer.tsx +3 -1
  79. package/src/components/sections/register-schemas.ts +0 -2
  80. package/src/components/sections/register.ts +0 -2
  81. package/src/components/shell/EditorShell.tsx +41 -9
  82. package/src/deploy/index.ts +1 -0
  83. package/src/deploy/types.ts +12 -0
  84. package/src/hooks/useEditorPublish.ts +18 -43
  85. package/src/hooks/useMediaPipeline.ts +41 -11
  86. package/src/hooks/useResolvedMedia.ts +3 -3
  87. package/src/index.ts +2 -0
  88. package/src/lib/dexie.ts +28 -1
  89. package/src/lib/nav.ts +16 -9
  90. package/src/lib/registry.ts +10 -0
  91. package/src/lib/text.ts +8 -0
  92. package/src/media/index.ts +13 -4
  93. package/src/media/provider.ts +7 -0
  94. package/src/media/resolve.ts +9 -6
  95. package/src/media/types.ts +0 -9
  96. package/src/schemas/media.ts +0 -1
  97. package/src/schemas/site-config.ts +1 -0
  98. package/src/storage/index.ts +1 -0
  99. package/src/storage/types.ts +23 -0
  100. package/dist/components/sections/SplitContent/SplitContentSettings.d.ts +0 -9
  101. package/dist/components/sections/SplitContent/SplitContentSettings.d.ts.map +0 -1
  102. package/dist/media/github.d.ts +0 -3
  103. package/dist/media/github.d.ts.map +0 -1
  104. package/src/components/sections/SplitContent/SplitContentSettings.d.ts +0 -9
  105. package/src/components/sections/SplitContent/SplitContentSettings.d.ts.map +0 -1
  106. package/src/components/sections/SplitContent/SplitContentSettings.tsx +0 -42
  107. package/src/media/github.ts +0 -72
@@ -0,0 +1,319 @@
1
+ // src/lib/dexie.ts
2
+ import Dexie from "dexie";
3
+ var EditorDatabase = class extends Dexie {
4
+ sections;
5
+ siteIndex;
6
+ meta;
7
+ siteConfig;
8
+ contentCache;
9
+ mediaManifest;
10
+ pendingMedia;
11
+ pendingMediaDeletions;
12
+ constructor(siteId) {
13
+ super(`brand-portal-${siteId}`);
14
+ this.version(1).stores({
15
+ sections: "sectionId",
16
+ siteIndex: "key",
17
+ meta: "key"
18
+ });
19
+ this.version(2).stores({
20
+ sections: "sectionId",
21
+ siteIndex: "key",
22
+ meta: "key",
23
+ siteConfig: "key"
24
+ });
25
+ this.version(3).stores({
26
+ sections: "sectionId",
27
+ siteIndex: "key",
28
+ meta: "key",
29
+ siteConfig: "key",
30
+ contentCache: "key"
31
+ });
32
+ this.version(4).stores({
33
+ sections: "sectionId",
34
+ siteIndex: "key",
35
+ meta: "key",
36
+ siteConfig: "key",
37
+ contentCache: "key",
38
+ mediaManifest: "key",
39
+ pendingMedia: "id",
40
+ pendingMediaDeletions: "id"
41
+ });
42
+ this.version(5).stores({
43
+ sections: "sectionId",
44
+ siteIndex: "key",
45
+ meta: "key",
46
+ siteConfig: "key",
47
+ contentCache: "key",
48
+ mediaManifest: "key",
49
+ pendingMedia: "id",
50
+ pendingMediaDeletions: "id"
51
+ });
52
+ this.version(6).stores({
53
+ sections: "sectionId",
54
+ siteIndex: "key",
55
+ meta: "key",
56
+ siteConfig: "key",
57
+ contentCache: "key",
58
+ mediaManifest: "key",
59
+ pendingMedia: "id",
60
+ pendingMediaDeletions: "id"
61
+ }).upgrade((tx) => {
62
+ return tx.table("pendingMedia").clear();
63
+ });
64
+ }
65
+ };
66
+ var db = null;
67
+ function getDb() {
68
+ if (!db) throw new Error("Editor store not initialized. Call initEditorStore first.");
69
+ return db;
70
+ }
71
+ function initEditorStore(siteId) {
72
+ db = new EditorDatabase(siteId);
73
+ }
74
+ async function checkForLocalChanges() {
75
+ const database = getDb();
76
+ const dirtyRows = await database.sections.filter((row) => row.dirty).toArray();
77
+ const indexRow = await database.siteIndex.get("current");
78
+ const configRow = await database.siteConfig.get("current");
79
+ if (dirtyRows.length === 0 && !indexRow && !configRow) return null;
80
+ const timestamps = [];
81
+ for (const row of dirtyRows) timestamps.push(row.updatedAt);
82
+ if (indexRow) timestamps.push(indexRow.updatedAt);
83
+ if (configRow) timestamps.push(configRow.updatedAt);
84
+ timestamps.sort();
85
+ return { latestTimestamp: timestamps[timestamps.length - 1] };
86
+ }
87
+ async function restoreLocalChanges() {
88
+ const sectionRows = await getDb().sections.toArray();
89
+ const sections = {};
90
+ for (const row of sectionRows) {
91
+ sections[row.sectionId] = row.content;
92
+ }
93
+ const indexRow = await getDb().siteIndex.get("current");
94
+ const configRow = await getDb().siteConfig.get("current");
95
+ if (indexRow) {
96
+ const metaRow = await getDb().meta.get("current");
97
+ const siteId = metaRow?.siteId ?? "";
98
+ return {
99
+ sections,
100
+ siteIndex: { siteId, order: indexRow.order, sections: indexRow.sections },
101
+ siteConfig: configRow?.config,
102
+ deletedSections: indexRow.deletedSections ?? []
103
+ };
104
+ }
105
+ return { sections, siteIndex: void 0, siteConfig: configRow?.config, deletedSections: [] };
106
+ }
107
+ async function discardLocalChanges() {
108
+ const database = getDb();
109
+ await database.transaction("rw", [database.sections, database.siteIndex, database.meta, database.siteConfig, database.pendingMedia, database.pendingMediaDeletions, database.mediaManifest], async () => {
110
+ await database.sections.clear();
111
+ await database.siteIndex.clear();
112
+ await database.meta.clear();
113
+ await database.siteConfig.clear();
114
+ await database.pendingMedia.clear();
115
+ await database.pendingMediaDeletions.clear();
116
+ await database.mediaManifest.clear();
117
+ });
118
+ }
119
+ async function persistSiteIndex(index, deletedSections = []) {
120
+ const now = (/* @__PURE__ */ new Date()).toISOString();
121
+ const database = getDb();
122
+ await database.transaction("rw", [database.siteIndex, database.meta], async () => {
123
+ await database.siteIndex.put({
124
+ key: "current",
125
+ order: index.order,
126
+ sections: index.sections,
127
+ deletedSections,
128
+ updatedAt: now
129
+ });
130
+ await database.meta.put({
131
+ key: "current",
132
+ lastSavedSha: null,
133
+ mainSha: null,
134
+ lastSavedAt: null,
135
+ siteId: index.siteId
136
+ });
137
+ });
138
+ }
139
+ async function persistSiteConfig(config) {
140
+ const now = (/* @__PURE__ */ new Date()).toISOString();
141
+ const database = getDb();
142
+ await database.siteConfig.put({
143
+ key: "current",
144
+ config,
145
+ updatedAt: now
146
+ });
147
+ }
148
+ async function hasLocalChanges() {
149
+ const database = getDb();
150
+ const dirtyCount = await database.sections.filter((row) => row.dirty).count();
151
+ if (dirtyCount > 0) return true;
152
+ const indexRow = await database.siteIndex.get("current");
153
+ if (indexRow != null) return true;
154
+ const configRow = await database.siteConfig.get("current");
155
+ return configRow != null;
156
+ }
157
+ async function getDirtySections() {
158
+ const rows = await getDb().sections.filter((row) => row.dirty).toArray();
159
+ return rows.map((row) => ({ sectionId: row.sectionId, content: row.content }));
160
+ }
161
+ async function persistAll(sections, siteIndex, deletedSectionIds, siteConfig) {
162
+ const now = (/* @__PURE__ */ new Date()).toISOString();
163
+ const database = getDb();
164
+ await database.transaction(
165
+ "rw",
166
+ [database.sections, database.siteIndex, database.meta, database.siteConfig],
167
+ async () => {
168
+ if (sections.length > 0) {
169
+ await database.sections.bulkPut(
170
+ sections.map((e) => ({
171
+ sectionId: e.sectionId,
172
+ content: e.content,
173
+ dirty: true,
174
+ updatedAt: now
175
+ }))
176
+ );
177
+ }
178
+ if (deletedSectionIds && deletedSectionIds.length > 0) {
179
+ await database.sections.bulkDelete(deletedSectionIds);
180
+ }
181
+ if (siteIndex) {
182
+ await database.siteIndex.put({
183
+ key: "current",
184
+ order: siteIndex.order,
185
+ sections: siteIndex.sections,
186
+ deletedSections: [],
187
+ updatedAt: now
188
+ });
189
+ await database.meta.put({
190
+ key: "current",
191
+ lastSavedSha: null,
192
+ mainSha: null,
193
+ lastSavedAt: null,
194
+ siteId: siteIndex.siteId
195
+ });
196
+ }
197
+ if (siteConfig) {
198
+ await database.siteConfig.put({
199
+ key: "current",
200
+ config: siteConfig,
201
+ updatedAt: now
202
+ });
203
+ }
204
+ }
205
+ );
206
+ }
207
+ async function updateBranchShas(savedSha, mainSha) {
208
+ const database = getDb();
209
+ const existing = await database.meta.get("current");
210
+ if (!existing) return;
211
+ await database.meta.put({
212
+ ...existing,
213
+ lastSavedSha: savedSha,
214
+ mainSha,
215
+ lastSavedAt: (/* @__PURE__ */ new Date()).toISOString()
216
+ });
217
+ }
218
+ async function getBranchShas() {
219
+ const row = await getDb().meta.get("current");
220
+ if (!row) return null;
221
+ return { savedSha: row.lastSavedSha, mainSha: row.mainSha ?? null };
222
+ }
223
+ async function getDeletedSections() {
224
+ const row = await getDb().siteIndex.get("current");
225
+ return row?.deletedSections ?? [];
226
+ }
227
+ async function cacheContent(sha, sections, index, siteConfig) {
228
+ const now = (/* @__PURE__ */ new Date()).toISOString();
229
+ await getDb().contentCache.put({
230
+ key: "current",
231
+ sha,
232
+ sections,
233
+ index,
234
+ siteConfig,
235
+ updatedAt: now
236
+ });
237
+ }
238
+ async function getCachedContent() {
239
+ const row = await getDb().contentCache.get("current");
240
+ if (!row) return null;
241
+ return {
242
+ sha: row.sha,
243
+ sections: row.sections,
244
+ index: row.index,
245
+ siteConfig: row.siteConfig
246
+ };
247
+ }
248
+ async function persistMediaManifest(manifest) {
249
+ const now = (/* @__PURE__ */ new Date()).toISOString();
250
+ await getDb().mediaManifest.put({ key: "current", manifest, updatedAt: now });
251
+ }
252
+ async function getMediaManifest() {
253
+ const row = await getDb().mediaManifest.get("current");
254
+ return row?.manifest ?? null;
255
+ }
256
+ async function addPendingMediaItem(item, localUrls = {}, blobs = {}) {
257
+ const now = (/* @__PURE__ */ new Date()).toISOString();
258
+ await getDb().pendingMedia.put({ id: item.id, item, localUrls, blobs, updatedAt: now });
259
+ }
260
+ async function getPendingMediaItems() {
261
+ const rows = await getDb().pendingMedia.toArray();
262
+ return rows.map((r) => r.item);
263
+ }
264
+ async function getPendingMediaLocalUrls(id) {
265
+ const row = await getDb().pendingMedia.get(id);
266
+ return row?.localUrls ?? null;
267
+ }
268
+ async function getPendingMediaBlobs(id) {
269
+ const row = await getDb().pendingMedia.get(id);
270
+ return row?.blobs ?? null;
271
+ }
272
+ async function removePendingMediaItem(id) {
273
+ await getDb().pendingMedia.delete(id);
274
+ }
275
+ async function markPendingMediaDeleted(id) {
276
+ const now = (/* @__PURE__ */ new Date()).toISOString();
277
+ await getDb().pendingMediaDeletions.put({ id, deletedAt: now });
278
+ }
279
+ async function removePendingMediaDeletion(id) {
280
+ await getDb().pendingMediaDeletions.delete(id);
281
+ }
282
+ async function getPendingMediaDeletions() {
283
+ const rows = await getDb().pendingMediaDeletions.toArray();
284
+ return rows.map((r) => r.id);
285
+ }
286
+ async function clearPendingMedia() {
287
+ const database = getDb();
288
+ await database.transaction("rw", [database.pendingMedia, database.pendingMediaDeletions], async () => {
289
+ await database.pendingMedia.clear();
290
+ await database.pendingMediaDeletions.clear();
291
+ });
292
+ }
293
+ export {
294
+ addPendingMediaItem,
295
+ cacheContent,
296
+ checkForLocalChanges,
297
+ clearPendingMedia,
298
+ discardLocalChanges,
299
+ getBranchShas,
300
+ getCachedContent,
301
+ getDeletedSections,
302
+ getDirtySections,
303
+ getMediaManifest,
304
+ getPendingMediaBlobs,
305
+ getPendingMediaDeletions,
306
+ getPendingMediaItems,
307
+ getPendingMediaLocalUrls,
308
+ hasLocalChanges,
309
+ initEditorStore,
310
+ markPendingMediaDeleted,
311
+ persistAll,
312
+ persistMediaManifest,
313
+ persistSiteConfig,
314
+ persistSiteIndex,
315
+ removePendingMediaDeletion,
316
+ removePendingMediaItem,
317
+ restoreLocalChanges,
318
+ updateBranchShas
319
+ };
package/dist/lib/index.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  safeRedirect,
18
18
  sanitizeHtml,
19
19
  toSectionId
20
- } from "../chunk-FSVPD7TW.js";
20
+ } from "../chunk-HXXZBTPF.js";
21
21
  import {
22
22
  clearRegistry,
23
23
  createRegistry,
@@ -28,9 +28,9 @@ import {
28
28
  getSection,
29
29
  registerSchema,
30
30
  registerSection
31
- } from "../chunk-EAEX6DS7.js";
31
+ } from "../chunk-V43WVSVS.js";
32
32
  import "../chunk-F3Z6RISI.js";
33
- import "../chunk-UMSFICAC.js";
33
+ import "../chunk-DKOUFIP6.js";
34
34
  export {
35
35
  buildGoogleFontsUrl,
36
36
  clearRegistry,
package/dist/lib/nav.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { LoadedSection } from "./loader";
2
+ import { type SectionRegistry } from "./registry";
2
3
  export interface NavItem {
3
4
  href: string;
4
5
  label: string;
@@ -6,10 +7,5 @@ export interface NavItem {
6
7
  children: NavItem[];
7
8
  }
8
9
  export declare function toSectionId(text: string): string;
9
- /**
10
- * Generate a three-tier navigation structure from sections.
11
- * link_heading → top-level, sub_heading → second-level, sub_sub_heading → third-level.
12
- * Non-heading sections are skipped.
13
- */
14
- export declare function generateNavLinks(sections: LoadedSection[]): NavItem[];
10
+ export declare function generateNavLinks(sections: LoadedSection[], registry?: SectionRegistry): NavItem[];
15
11
  //# sourceMappingURL=nav.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../src/lib/nav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAyCrE"}
1
+ {"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../src/lib/nav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,aAAa,EAAE,EACzB,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,EAAE,CAiDX"}
@@ -39,6 +39,14 @@ export type SettingsFieldDef = {
39
39
  step?: number;
40
40
  };
41
41
  export type SettingsSchema = Record<string, SettingsFieldDef>;
42
+ export type Thumbnail = {
43
+ type: "image";
44
+ src: string;
45
+ alt?: string;
46
+ } | {
47
+ type: "color";
48
+ value: string;
49
+ };
42
50
  export type CustomSettingsFormProps = Record<string, any>;
43
51
  export interface SectionProps<T = unknown> {
44
52
  content: T;
@@ -81,6 +89,9 @@ export interface SectionDefinition<T = unknown> {
81
89
  wrapper?: ComponentType<WrapperProps>;
82
90
  settings?: SettingsSchema;
83
91
  settingsForm?: ComponentType<any>;
92
+ getLabel?(content: T): string;
93
+ getThumbnails?(content: T): Thumbnail[];
94
+ navRole?: "h1" | "h2" | "h3";
84
95
  }
85
96
  type DefineSectionInput<S extends ZodType> = {
86
97
  type: string;
@@ -92,6 +103,9 @@ type DefineSectionInput<S extends ZodType> = {
92
103
  wrapper?: ComponentType<WrapperProps>;
93
104
  settings?: SettingsSchema;
94
105
  settingsForm?: ComponentType<any>;
106
+ getLabel?(content: z.infer<S>): string;
107
+ getThumbnails?(content: z.infer<S>): Thumbnail[];
108
+ navRole?: "h1" | "h2" | "h3";
95
109
  };
96
110
  export declare function defineSection<S extends ZodType>(def: DefineSectionInput<S>): SectionDefinition<z.infer<S>>;
97
111
  export interface SectionRegistry {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function stripHtmlToPlainText(html: string): string;
2
+ export declare function truncate(text: string, maxLength: number): string;
3
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/lib/text.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE"}
@@ -1,8 +1,10 @@
1
- import type { MediaAdapter, MediaManifest } from "./types";
1
+ import type { MediaProvider } from "./provider";
2
2
  export * from "./types";
3
+ export * from "./provider";
3
4
  export * from "./utils";
4
5
  export * from "./queue";
5
6
  export * from "./resolve";
6
7
  export { generateVideoPoster } from "./videoPoster";
7
- export declare function createMediaAdapter(manifest: MediaManifest): MediaAdapter;
8
+ export declare function setMediaProvider(p: MediaProvider): void;
9
+ export declare function getMediaProvider(): MediaProvider;
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG3D,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,YAAY,CAExE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAIpD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAEvD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD"}
@@ -2,21 +2,22 @@ import {
2
2
  EXT_TO_MIME,
3
3
  MIME_TO_EXT,
4
4
  ProcessingQueue,
5
- createMediaAdapter,
6
5
  displayFilenameExt,
7
6
  generateVideoPoster,
7
+ getMediaProvider,
8
8
  hashFileBuffer,
9
9
  mimeToExt,
10
10
  resolveManifestReferences,
11
11
  resolveMedia,
12
- sanitizeMediaName
13
- } from "../chunk-IP6ODLXX.js";
12
+ sanitizeMediaName,
13
+ setMediaProvider
14
+ } from "../chunk-JHSYLVKI.js";
14
15
  import {
15
16
  ImageManifestSchema,
16
17
  MediaConfigSchema,
17
18
  MediaItemSchema,
18
19
  VariantSchema
19
- } from "../chunk-UMSFICAC.js";
20
+ } from "../chunk-DKOUFIP6.js";
20
21
  export {
21
22
  EXT_TO_MIME,
22
23
  ImageManifestSchema,
@@ -25,12 +26,13 @@ export {
25
26
  MediaItemSchema,
26
27
  ProcessingQueue,
27
28
  VariantSchema,
28
- createMediaAdapter,
29
29
  displayFilenameExt,
30
30
  generateVideoPoster,
31
+ getMediaProvider,
31
32
  hashFileBuffer,
32
33
  mimeToExt,
33
34
  resolveManifestReferences,
34
35
  resolveMedia,
35
- sanitizeMediaName
36
+ sanitizeMediaName,
37
+ setMediaProvider
36
38
  };
@@ -0,0 +1,7 @@
1
+ import type { MediaManifest, MediaItem, ResolvedMedia } from "./types";
2
+ export interface MediaProvider {
3
+ getManifest(): Promise<MediaManifest>;
4
+ resolve(item: MediaItem, sizes: number[]): ResolvedMedia | null;
5
+ exists(hash: string, manifest: MediaManifest): boolean;
6
+ }
7
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/media/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC;CACxD"}
@@ -1,8 +1,9 @@
1
1
  import type { MediaManifest, ResolvedMedia } from "./types";
2
+ import type { MediaProvider } from "./provider";
2
3
  export declare function resolveMedia(item: {
3
4
  imageId?: string;
4
5
  src?: string;
5
- }, manifest: MediaManifest, sizes: number[]): ResolvedMedia | null;
6
+ }, manifest: MediaManifest, sizes: number[], provider: MediaProvider): ResolvedMedia | null;
6
7
  /**
7
8
  * Deep-walk section content and resolve any { imageId } references to
8
9
  * { src, srcset } values using the media manifest.
@@ -10,5 +11,5 @@ export declare function resolveMedia(item: {
10
11
  * This lets view-mode section components use `item.src` and `item.srcset`
11
12
  * without needing to know about the manifest themselves.
12
13
  */
13
- export declare function resolveManifestReferences(content: unknown, manifest: MediaManifest, sizes: number[]): unknown;
14
+ export declare function resolveManifestReferences(content: unknown, manifest: MediaManifest, sizes: number[], provider: MediaProvider): unknown;
14
15
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/media/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG5D,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EAAE,GACd,aAAa,GAAG,IAAI,CAItB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAsCT"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/media/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,aAAa,GACtB,aAAa,GAAG,IAAI,CAKtB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,aAAa,GACtB,OAAO,CAsCT"}
@@ -1,5 +1,4 @@
1
1
  export { VariantSchema, MediaItemSchema, ImageManifestSchema, MediaConfigSchema, type Variant, type MediaItem, type MediaManifest, type MediaConfig, } from "../schemas/media";
2
- import type { MediaItem } from "../schemas/media";
3
2
  export type MediaKind = "image" | "animated" | "video";
4
3
  export interface MediaFile {
5
4
  buffer: ArrayBuffer;
@@ -31,12 +30,4 @@ export interface ResolvedVideo {
31
30
  muted: boolean;
32
31
  }
33
32
  export type ResolvedMedia = ResolvedImage | ResolvedAnimated | ResolvedVideo;
34
- export interface MediaAdapter {
35
- hash(file: MediaFile): Promise<string>;
36
- exists(hash: string): Promise<boolean>;
37
- process(file: MediaFile, hash: string, sizes: number[]): Promise<MediaItem>;
38
- delete(id: string): Promise<void>;
39
- resolve(id: string, sizes: number[]): ResolvedMedia | null;
40
- list(): Promise<MediaItem[]>;
41
- }
42
33
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/media/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC;IAC3D,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/media/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC"}
@@ -7,7 +7,7 @@ import {
7
7
  SessionSchema,
8
8
  SiteUserSchema,
9
9
  slugifyAudienceName
10
- } from "../chunk-P24YUT3O.js";
10
+ } from "../chunk-MNK7XA6S.js";
11
11
  import {
12
12
  ColorItemSchema,
13
13
  ColorSpaceSchema,
@@ -19,13 +19,13 @@ import {
19
19
  TextLineSchema,
20
20
  getSectionContentSchema,
21
21
  getSectionSchema
22
- } from "../chunk-EAEX6DS7.js";
22
+ } from "../chunk-V43WVSVS.js";
23
23
  import {
24
24
  ImageManifestSchema,
25
25
  MediaConfigSchema,
26
26
  MediaItemSchema,
27
27
  VariantSchema
28
- } from "../chunk-UMSFICAC.js";
28
+ } from "../chunk-DKOUFIP6.js";
29
29
  export {
30
30
  AudienceColorSchema,
31
31
  AudienceNameSchema,
@@ -52,9 +52,6 @@ export declare const ImageManifestSchema: z.ZodObject<{
52
52
  }, z.core.$strip>;
53
53
  export type MediaManifest = z.infer<typeof ImageManifestSchema>;
54
54
  export declare const MediaConfigSchema: z.ZodObject<{
55
- adapter: z.ZodDefault<z.ZodEnum<{
56
- github: "github";
57
- }>>;
58
55
  sizes: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
59
56
  maxFileSize: z.ZodDefault<z.ZodNumber>;
60
57
  quality: z.ZodDefault<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/schemas/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;iBAY1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;;;iBAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/schemas/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;iBAY1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -23,6 +23,7 @@ export declare const IndexSchema: z.ZodObject<{
23
23
  }>, z.ZodTransform<"draft" | "live" | "archived", "draft" | "live" | "archived" | "published">>;
24
24
  access: z.ZodArray<z.ZodString>;
25
25
  }, z.core.$strip>>;
26
+ lastModified: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
27
  }, z.core.$strip>;
27
28
  export type SiteIndex = z.infer<typeof IndexSchema>;
28
29
  export declare const SiteConfigSchema: z.ZodObject<{
@@ -38,9 +39,6 @@ export declare const SiteConfigSchema: z.ZodObject<{
38
39
  bodyFont: z.ZodDefault<z.ZodString>;
39
40
  googleFontsUrl: z.ZodDefault<z.ZodNullable<z.ZodString>>;
40
41
  media: z.ZodDefault<z.ZodObject<{
41
- adapter: z.ZodDefault<z.ZodEnum<{
42
- github: "github";
43
- }>>;
44
42
  sizes: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
45
43
  maxFileSize: z.ZodDefault<z.ZodNumber>;
46
44
  quality: z.ZodDefault<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,WAAW;;;;;;;;;;;;;iBAOvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;iBAY3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;iBAQvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;iBAY3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { StorageProvider, FileWrite } from "./types";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface StorageProvider {
2
+ writeFiles(files: FileWrite[], message: string): Promise<{
3
+ version: string;
4
+ }>;
5
+ readFile(path: string, options?: {
6
+ draft?: boolean;
7
+ }): Promise<Uint8Array | null>;
8
+ promoteDraft(): Promise<{
9
+ version: string;
10
+ }>;
11
+ getVersion(): Promise<string>;
12
+ listDirectory(path: string, options?: {
13
+ draft?: boolean;
14
+ }): Promise<string[]>;
15
+ }
16
+ export type FileWrite = {
17
+ path: string;
18
+ content: string | Uint8Array | null;
19
+ encoding?: "utf-8" | "base64";
20
+ };
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,UAAU,CACR,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhC,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE9B,YAAY,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE7C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/E;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B,CAAC"}