@codingfactory/socialkit-vue 0.5.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,309 @@
1
+ /**
2
+ * Content-domain types and store contracts shared across SocialKit frontends.
3
+ */
4
+ import type { ApiService } from '../services/api.js';
5
+ import type { LocalMediaItem } from './media.js';
6
+ export interface BaseEntity {
7
+ id: string;
8
+ created_at: string;
9
+ updated_at?: string;
10
+ }
11
+ export type VideoRenderStatus = 'pending' | 'processing' | 'ready' | 'failed';
12
+ export interface PostMedia {
13
+ id?: string;
14
+ uuid?: string;
15
+ mime_type?: string;
16
+ url?: string;
17
+ thumb_url?: string;
18
+ preview_url?: string;
19
+ playback_url?: string;
20
+ thumbnail_url?: string;
21
+ urls?: {
22
+ original?: string;
23
+ thumb?: string;
24
+ thumbnail?: string;
25
+ preview?: string;
26
+ };
27
+ type?: 'image' | 'video';
28
+ alt_text?: string;
29
+ width?: number;
30
+ height?: number;
31
+ responsive?: {
32
+ preview?: {
33
+ srcset?: string;
34
+ };
35
+ original?: {
36
+ srcset?: string;
37
+ };
38
+ };
39
+ processing_status?: VideoRenderStatus;
40
+ video_render_status?: VideoRenderStatus;
41
+ video_render_progress?: number;
42
+ video_render_error?: string | null;
43
+ video_render_job_id?: string | null;
44
+ source_media_id?: string;
45
+ output_media_id?: string;
46
+ provider?: string;
47
+ provider_asset_id?: string;
48
+ provider_library_id?: string;
49
+ duration?: number;
50
+ aspect_ratio?: string;
51
+ }
52
+ export interface PostAuthor {
53
+ id: string;
54
+ name: string;
55
+ avatar?: string | null;
56
+ username?: string | null;
57
+ handle?: string | null;
58
+ }
59
+ export type PostFeelingType = 'mood' | 'activity';
60
+ export type PostFeelingValue = 'inspired' | 'creative' | 'focused' | 'relaxed' | 'excited' | 'grateful' | 'proud' | 'experimental' | 'in_the_studio' | 'teaching_a_class' | 'at_a_show' | 'experimenting' | 'collaborating' | 'learning_a_technique';
61
+ export interface PostFeeling {
62
+ type: PostFeelingType;
63
+ value: PostFeelingValue;
64
+ }
65
+ export interface PostMeta {
66
+ live_viewers?: number | null;
67
+ feeling?: PostFeeling | null;
68
+ [key: string]: unknown;
69
+ }
70
+ export type PostShareType = 'original' | 'repost' | 'quote';
71
+ export interface QuotedPostPreview {
72
+ id: string;
73
+ body: string;
74
+ author?: PostAuthor | null;
75
+ author_id?: string;
76
+ created_at?: string;
77
+ }
78
+ export interface Post extends BaseEntity {
79
+ body: string;
80
+ share_type?: PostShareType;
81
+ quoted_post_id?: string | null;
82
+ quoted_post?: QuotedPostPreview | null;
83
+ content_warning?: string | null;
84
+ sensitive?: boolean;
85
+ author: PostAuthor;
86
+ author_id: string;
87
+ reactions_count: number;
88
+ comments_count: number;
89
+ user_has_reacted: boolean;
90
+ user_has_reposted?: boolean;
91
+ user_repost_id?: string | null;
92
+ visibility?: 'public' | 'private' | 'friends';
93
+ media?: PostMedia[];
94
+ meta?: PostMeta;
95
+ live_viewers?: number | null;
96
+ is_quarantined?: boolean;
97
+ published_site_names?: string[] | null;
98
+ }
99
+ export interface PostWithPendingState extends Post {
100
+ _isPending?: boolean;
101
+ _tempId?: string;
102
+ }
103
+ export interface Comment extends BaseEntity {
104
+ body: string;
105
+ post_id: string;
106
+ author: PostAuthor;
107
+ media?: PostMedia[];
108
+ parent_id?: string;
109
+ thread_id?: string;
110
+ depth?: number;
111
+ reactions_count?: number;
112
+ replies_count?: number;
113
+ user_has_reacted?: boolean;
114
+ user_reaction_type?: string;
115
+ reactions?: Record<string, number>;
116
+ replies?: Comment[];
117
+ is_hidden?: boolean;
118
+ }
119
+ export interface Reaction {
120
+ id: string;
121
+ user_id: string;
122
+ target_id: string;
123
+ target_type: 'post' | 'comment';
124
+ kind: string;
125
+ created_at: string;
126
+ }
127
+ export interface ThreadSummary {
128
+ id: string;
129
+ space_id: string;
130
+ slug: string;
131
+ title: string;
132
+ body?: string | null;
133
+ reply_count: number;
134
+ author_id: string;
135
+ author?: {
136
+ id: string;
137
+ name: string;
138
+ handle?: string;
139
+ avatar_url?: string | null;
140
+ avatar?: unknown;
141
+ } | null;
142
+ created_at: string;
143
+ tags?: Array<{
144
+ id: string;
145
+ slug: string;
146
+ label: string;
147
+ }>;
148
+ }
149
+ export interface AlbumSummary {
150
+ id: string;
151
+ name: string;
152
+ description?: string | null;
153
+ media_count: number;
154
+ owner: {
155
+ id: string;
156
+ type: string;
157
+ name?: string;
158
+ avatar_url?: string | null;
159
+ };
160
+ cover_media?: {
161
+ uuid: string;
162
+ urls: {
163
+ thumb?: string;
164
+ preview?: string;
165
+ original?: string;
166
+ };
167
+ } | null;
168
+ created_at?: string | null;
169
+ }
170
+ export interface FeedEntry {
171
+ id?: string;
172
+ entity_id: string;
173
+ entity_type: string;
174
+ created_at?: string;
175
+ activity_type?: string;
176
+ actor_id?: string;
177
+ owner_user_id?: string;
178
+ visibility?: string;
179
+ is_hidden?: boolean;
180
+ post?: PostWithPendingState | null;
181
+ thread?: ThreadSummary | null;
182
+ album?: AlbumSummary | null;
183
+ [key: string]: unknown;
184
+ }
185
+ export interface ScheduledPostEntry {
186
+ id: string;
187
+ status: string;
188
+ publish_at: string;
189
+ post_id: string | null;
190
+ payload: Record<string, unknown> | string | null;
191
+ }
192
+ export interface ScheduledPostsPage {
193
+ data: ScheduledPostEntry[];
194
+ meta: {
195
+ next_cursor: string | null;
196
+ };
197
+ }
198
+ export type PendingPostStatus = 'pending' | 'uploading' | 'failed';
199
+ export interface PendingVideoRender {
200
+ sourceMediaUuid: string;
201
+ renderJobId: string | null;
202
+ }
203
+ export interface PendingPost {
204
+ tempId: string;
205
+ body: string;
206
+ share_type?: PostShareType | undefined;
207
+ quoted_post_id?: string | undefined;
208
+ visibility: string;
209
+ content_warning?: string | undefined;
210
+ meta?: PostMeta | undefined;
211
+ media_ids?: string[] | undefined;
212
+ mediaItems?: LocalMediaItem[] | undefined;
213
+ hadUnuploadedMedia?: boolean | undefined;
214
+ container_type?: string | undefined;
215
+ container_id?: string | undefined;
216
+ pendingVideoRenders?: PendingVideoRender[] | undefined;
217
+ status: PendingPostStatus;
218
+ createdAt: string;
219
+ retryCount: number;
220
+ error?: string | undefined;
221
+ }
222
+ export interface RecoverablePendingDraft {
223
+ tempId: string;
224
+ body: string;
225
+ visibility: string;
226
+ contentWarning?: string;
227
+ }
228
+ export type ProcessPendingPostResult = {
229
+ ok: true;
230
+ postId: string;
231
+ isQuarantined?: boolean;
232
+ } | {
233
+ ok: false;
234
+ error: string;
235
+ retryable: boolean;
236
+ };
237
+ export declare function isPost(obj: unknown): obj is Post;
238
+ export declare function isComment(obj: unknown): obj is Comment;
239
+ export type PostUpdate = Partial<Omit<Post, 'id' | 'created_at' | 'author' | 'author_id'>>;
240
+ export type CommentUpdate = Partial<Omit<Comment, 'id' | 'created_at' | 'author' | 'post_id'>>;
241
+ export interface PostResponse {
242
+ data: Post;
243
+ meta?: Record<string, unknown>;
244
+ }
245
+ export interface PostListResponse {
246
+ data: Post[];
247
+ meta?: {
248
+ total: number;
249
+ per_page: number;
250
+ current_page: number;
251
+ next_cursor?: string;
252
+ };
253
+ }
254
+ export interface CommentListResponse {
255
+ data: Comment[];
256
+ meta?: {
257
+ total: number;
258
+ next_cursor?: string;
259
+ };
260
+ }
261
+ export declare enum PostVisibility {
262
+ PUBLIC = "public",
263
+ PRIVATE = "private",
264
+ FRIENDS = "friends"
265
+ }
266
+ export declare enum ReactionKind {
267
+ LIKE = "like",
268
+ LOVE = "love",
269
+ HAHA = "haha",
270
+ WOW = "wow",
271
+ SAD = "sad",
272
+ ANGRY = "angry"
273
+ }
274
+ export interface ContentActiveRecipeMeta {
275
+ id: string;
276
+ name: string;
277
+ icon: string | null;
278
+ is_preset: boolean;
279
+ }
280
+ export interface ContentCurrentUser {
281
+ id: string;
282
+ name: string;
283
+ handle?: string | null;
284
+ avatar?: string | null;
285
+ }
286
+ export interface ContentStoreStorage {
287
+ getItem(key: string): string | null;
288
+ setItem(key: string, value: string): void;
289
+ removeItem(key: string): void;
290
+ }
291
+ export interface ContentMediaUploadService {
292
+ uploadLocalMediaItems(items: LocalMediaItem[]): Promise<string[]>;
293
+ }
294
+ export interface ContentStoreLogger {
295
+ error: (...args: unknown[]) => void;
296
+ warn: (...args: unknown[]) => void;
297
+ info: (...args: unknown[]) => void;
298
+ }
299
+ export interface ContentStoreConfig {
300
+ client: ApiService;
301
+ mediaUploadService: ContentMediaUploadService;
302
+ getCurrentUser: () => ContentCurrentUser | null;
303
+ syncActiveRecipe?: (meta: ContentActiveRecipeMeta | null) => void;
304
+ storage?: ContentStoreStorage | null;
305
+ pageSize?: number;
306
+ logger?: ContentStoreLogger;
307
+ storeId?: string;
308
+ }
309
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Content-domain types and store contracts shared across SocialKit frontends.
3
+ */
4
+ export function isPost(obj) {
5
+ return (obj !== null
6
+ && typeof obj === 'object'
7
+ && 'id' in obj
8
+ && 'body' in obj
9
+ && 'author' in obj
10
+ && 'reactions_count' in obj
11
+ && 'comments_count' in obj);
12
+ }
13
+ export function isComment(obj) {
14
+ return (obj !== null
15
+ && typeof obj === 'object'
16
+ && 'id' in obj
17
+ && 'body' in obj
18
+ && 'post_id' in obj
19
+ && 'author' in obj);
20
+ }
21
+ export var PostVisibility;
22
+ (function (PostVisibility) {
23
+ PostVisibility["PUBLIC"] = "public";
24
+ PostVisibility["PRIVATE"] = "private";
25
+ PostVisibility["FRIENDS"] = "friends";
26
+ })(PostVisibility || (PostVisibility = {}));
27
+ export var ReactionKind;
28
+ (function (ReactionKind) {
29
+ ReactionKind["LIKE"] = "like";
30
+ ReactionKind["LOVE"] = "love";
31
+ ReactionKind["HAHA"] = "haha";
32
+ ReactionKind["WOW"] = "wow";
33
+ ReactionKind["SAD"] = "sad";
34
+ ReactionKind["ANGRY"] = "angry";
35
+ })(ReactionKind || (ReactionKind = {}));
36
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmRH,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,OAAO,CACL,GAAG,KAAK,IAAI;WACT,OAAO,GAAG,KAAK,QAAQ;WACvB,IAAI,IAAI,GAAG;WACX,MAAM,IAAI,GAAG;WACb,QAAQ,IAAI,GAAG;WACf,iBAAiB,IAAI,GAAG;WACxB,gBAAgB,IAAI,GAAG,CAC3B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,OAAO,CACL,GAAG,KAAK,IAAI;WACT,OAAO,GAAG,KAAK,QAAQ;WACvB,IAAI,IAAI,GAAG;WACX,MAAM,IAAI,GAAG;WACb,SAAS,IAAI,GAAG;WAChB,QAAQ,IAAI,GAAG,CACnB,CAAA;AACH,CAAC;AA4BD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,+BAAe,CAAA;AACjB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Core type definitions for media.
3
+ */
4
+ export interface MediaItem {
5
+ id: string;
6
+ type: 'image' | 'video' | 'document';
7
+ url: string;
8
+ thumbnail_url?: string;
9
+ alt_text?: string;
10
+ width?: number;
11
+ height?: number;
12
+ size?: number;
13
+ mime_type?: string;
14
+ created_at?: string;
15
+ updated_at?: string;
16
+ }
17
+ export declare function isMediaItem(obj: unknown): obj is MediaItem;
18
+ export interface UploadedMedia {
19
+ id: string;
20
+ url: string;
21
+ thumb_url?: string | null;
22
+ preview_url?: string | null;
23
+ mime_type: string;
24
+ size: number;
25
+ urls?: {
26
+ original?: string;
27
+ thumbnail?: string;
28
+ preview?: string;
29
+ };
30
+ original_url?: string;
31
+ }
32
+ export interface LocalMediaItem {
33
+ id?: string;
34
+ previewUrl: string;
35
+ file?: File;
36
+ mimeType: string;
37
+ name: string;
38
+ size: number;
39
+ status: 'pending' | 'uploading' | 'uploaded' | 'failed';
40
+ error?: string;
41
+ }
42
+ export interface FilterConfig {
43
+ name: string;
44
+ type: string;
45
+ value: number | string;
46
+ timestamp?: number;
47
+ }
48
+ export type ImageEditorContext = 'profile' | 'editor' | 'gallery';
49
+ export type ImageFormat = 'jpeg' | 'png' | 'webp';
50
+ export interface ImageEditorSaveData {
51
+ imageData: Blob;
52
+ filters: FilterConfig[];
53
+ metadata: ImageEditorMetadata;
54
+ }
55
+ export interface ImageEditorMetadata {
56
+ originalUrl: string;
57
+ context: string;
58
+ appliedFilters: FilterConfig[];
59
+ processingTime: number;
60
+ }
61
+ export type MediaType = MediaItem['type'];
62
+ export type MediaUpdate = Partial<Omit<MediaItem, 'id' | 'created_at'>>;
63
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAU1D;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AACjE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAEjD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,IAAI,CAAA;IACf,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,QAAQ,EAAE,mBAAmB,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,YAAY,EAAE,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Core type definitions for media.
3
+ */
4
+ export function isMediaItem(obj) {
5
+ return (obj !== null
6
+ && typeof obj === 'object'
7
+ && 'id' in obj
8
+ && 'type' in obj
9
+ && 'url' in obj
10
+ && typeof obj.type === 'string'
11
+ && ['image', 'video', 'document'].includes(obj.type));
12
+ }
13
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,OAAO,CACL,GAAG,KAAK,IAAI;WACT,OAAO,GAAG,KAAK,QAAQ;WACvB,IAAI,IAAI,GAAG;WACX,MAAM,IAAI,GAAG;WACb,KAAK,IAAI,GAAG;WACZ,OAAQ,GAAiB,CAAC,IAAI,KAAK,QAAQ;WAC3C,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAE,GAAiB,CAAC,IAAI,CAAC,CACpE,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingfactory/socialkit-vue",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "description": "Shared Vue 3 utilities for SocialKit-powered frontends",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -264,6 +264,84 @@ export {
264
264
  createDiscussionStoreDefinition
265
265
  } from './stores/discussion.js'
266
266
 
267
+ // ── Media Types ──────────────────────────────────────────────────────────────
268
+ export type {
269
+ FilterConfig,
270
+ ImageEditorContext,
271
+ ImageEditorMetadata,
272
+ ImageEditorSaveData,
273
+ ImageFormat,
274
+ LocalMediaItem,
275
+ MediaItem,
276
+ MediaType,
277
+ MediaUpdate,
278
+ UploadedMedia
279
+ } from './types/media.js'
280
+
281
+ export {
282
+ isMediaItem
283
+ } from './types/media.js'
284
+
285
+ // ── Content Types ────────────────────────────────────────────────────────────
286
+ export type {
287
+ AlbumSummary,
288
+ BaseEntity,
289
+ Comment,
290
+ CommentListResponse,
291
+ CommentUpdate,
292
+ ContentActiveRecipeMeta,
293
+ ContentCurrentUser,
294
+ ContentMediaUploadService,
295
+ ContentStoreConfig,
296
+ ContentStoreLogger,
297
+ ContentStoreStorage,
298
+ FeedEntry,
299
+ PendingPost,
300
+ PendingPostStatus,
301
+ PendingVideoRender,
302
+ Post,
303
+ PostAuthor,
304
+ PostFeeling,
305
+ PostFeelingType,
306
+ PostFeelingValue,
307
+ PostListResponse,
308
+ PostMedia,
309
+ PostMeta,
310
+ PostResponse,
311
+ PostShareType,
312
+ PostUpdate,
313
+ PostWithPendingState,
314
+ ProcessPendingPostResult,
315
+ QuotedPostPreview,
316
+ Reaction,
317
+ RecoverablePendingDraft,
318
+ ScheduledPostEntry,
319
+ ScheduledPostsPage,
320
+ ThreadSummary,
321
+ VideoRenderStatus
322
+ } from './types/content.js'
323
+
324
+ export {
325
+ isComment,
326
+ isPost,
327
+ PostVisibility,
328
+ ReactionKind
329
+ } from './types/content.js'
330
+
331
+ // ── Content API Types ────────────────────────────────────────────────────────
332
+ export type {
333
+ FeedResponse
334
+ } from './types/content-api.js'
335
+
336
+ // ── Content Store ────────────────────────────────────────────────────────────
337
+ export type {
338
+ ContentStoreReturn
339
+ } from './stores/content.js'
340
+
341
+ export {
342
+ createContentStoreDefinition
343
+ } from './stores/content.js'
344
+
267
345
  // ── Auth Composable ──────────────────────────────────────────────────────────
268
346
  export type {
269
347
  UseAuthReturn