@23blocks/block-content 1.0.5 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -167,76 +167,99 @@ const postMapper = {
167
167
  };
168
168
 
169
169
  function createPostsService(transport, _config) {
170
+ const buildQueryParams = (params)=>{
171
+ const queryParams = {};
172
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
173
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
174
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
175
+ if (params == null ? void 0 : params.categoryUniqueId) queryParams['category_unique_id'] = params.categoryUniqueId;
176
+ if (params == null ? void 0 : params.tagUniqueId) queryParams['tag_unique_id'] = params.tagUniqueId;
177
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
178
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
179
+ if ((params == null ? void 0 : params.isPublic) !== undefined) queryParams['is_public'] = String(params.isPublic);
180
+ if (params == null ? void 0 : params.withComments) queryParams['with'] = 'comments';
181
+ if (params == null ? void 0 : params.withCategories) queryParams['with'] = params.withComments ? 'comments,categories' : 'categories';
182
+ if (params == null ? void 0 : params.withTags) {
183
+ queryParams['with'] = queryParams['with'] ? `${queryParams['with']},tags` : 'tags';
184
+ }
185
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
186
+ return queryParams;
187
+ };
170
188
  return {
171
189
  async list (params) {
172
- const queryParams = {};
173
- if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
174
- if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
175
- if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
176
- if (params == null ? void 0 : params.categoryUniqueId) queryParams['category_unique_id'] = params.categoryUniqueId;
177
- if (params == null ? void 0 : params.tagUniqueId) queryParams['tag_unique_id'] = params.tagUniqueId;
178
- if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
179
- if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
180
- if ((params == null ? void 0 : params.isPublic) !== undefined) queryParams['is_public'] = String(params.isPublic);
181
- if (params == null ? void 0 : params.withComments) queryParams['with'] = 'comments';
182
- if (params == null ? void 0 : params.withCategories) queryParams['with'] = params.withComments ? 'comments,categories' : 'categories';
183
- if (params == null ? void 0 : params.withTags) {
184
- queryParams['with'] = queryParams['with'] ? `${queryParams['with']},tags` : 'tags';
185
- }
186
- if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
187
190
  const response = await transport.get('/posts', {
188
- params: queryParams
191
+ params: buildQueryParams(params)
189
192
  });
190
193
  return decodePageResult(response, postMapper);
191
194
  },
195
+ async query (params) {
196
+ const response = await transport.post('/posts/query', buildQueryParams(params));
197
+ return decodePageResult(response, postMapper);
198
+ },
192
199
  async get (uniqueId) {
193
200
  const response = await transport.get(`/posts/${uniqueId}`);
194
201
  return decodeOne(response, postMapper);
195
202
  },
196
203
  async create (data) {
197
204
  const response = await transport.post('/posts', {
198
- data: {
199
- type: 'Post',
200
- attributes: {
201
- title: data.title,
202
- abstract: data.abstract,
203
- keywords: data.keywords,
204
- content: data.content,
205
- thumbnail_url: data.thumbnailUrl,
206
- image_url: data.imageUrl,
207
- media_url: data.mediaUrl,
208
- category_unique_ids: data.categoryUniqueIds,
209
- tag_unique_ids: data.tagUniqueIds,
210
- is_public: data.isPublic,
211
- publish_at: data.publishAt,
212
- publish_until: data.publishUntil,
213
- payload: data.payload
214
- }
205
+ post: {
206
+ title: data.title,
207
+ abstract: data.abstract,
208
+ keywords: data.keywords,
209
+ content: data.content,
210
+ thumbnail_url: data.thumbnailUrl,
211
+ image_url: data.imageUrl,
212
+ media_url: data.mediaUrl,
213
+ category_unique_ids: data.categoryUniqueIds,
214
+ tag_unique_ids: data.tagUniqueIds,
215
+ is_public: data.isPublic,
216
+ publish_at: data.publishAt,
217
+ publish_until: data.publishUntil,
218
+ payload: data.payload
215
219
  }
216
220
  });
217
221
  return decodeOne(response, postMapper);
218
222
  },
219
223
  async update (uniqueId, data) {
220
224
  const response = await transport.put(`/posts/${uniqueId}`, {
221
- data: {
222
- type: 'Post',
223
- attributes: {
224
- title: data.title,
225
- abstract: data.abstract,
226
- keywords: data.keywords,
227
- content: data.content,
228
- thumbnail_url: data.thumbnailUrl,
229
- image_url: data.imageUrl,
230
- media_url: data.mediaUrl,
231
- category_unique_ids: data.categoryUniqueIds,
232
- tag_unique_ids: data.tagUniqueIds,
233
- is_public: data.isPublic,
234
- publish_at: data.publishAt,
235
- publish_until: data.publishUntil,
236
- enabled: data.enabled,
237
- status: data.status,
238
- payload: data.payload
239
- }
225
+ post: {
226
+ title: data.title,
227
+ abstract: data.abstract,
228
+ keywords: data.keywords,
229
+ content: data.content,
230
+ thumbnail_url: data.thumbnailUrl,
231
+ image_url: data.imageUrl,
232
+ media_url: data.mediaUrl,
233
+ category_unique_ids: data.categoryUniqueIds,
234
+ tag_unique_ids: data.tagUniqueIds,
235
+ is_public: data.isPublic,
236
+ publish_at: data.publishAt,
237
+ publish_until: data.publishUntil,
238
+ enabled: data.enabled,
239
+ status: data.status,
240
+ payload: data.payload
241
+ }
242
+ });
243
+ return decodeOne(response, postMapper);
244
+ },
245
+ async replace (uniqueId, data) {
246
+ const response = await transport.put(`/posts/${uniqueId}/replace`, {
247
+ post: {
248
+ title: data.title,
249
+ abstract: data.abstract,
250
+ keywords: data.keywords,
251
+ content: data.content,
252
+ thumbnail_url: data.thumbnailUrl,
253
+ image_url: data.imageUrl,
254
+ media_url: data.mediaUrl,
255
+ category_unique_ids: data.categoryUniqueIds,
256
+ tag_unique_ids: data.tagUniqueIds,
257
+ is_public: data.isPublic,
258
+ publish_at: data.publishAt,
259
+ publish_until: data.publishUntil,
260
+ enabled: data.enabled,
261
+ status: data.status,
262
+ payload: data.payload
240
263
  }
241
264
  });
242
265
  return decodeOne(response, postMapper);
@@ -270,21 +293,43 @@ function createPostsService(transport, _config) {
270
293
  });
271
294
  return decodePageResult(response, postMapper);
272
295
  },
296
+ // Ownership
297
+ async changeOwner (uniqueId, newOwnerUniqueId) {
298
+ const response = await transport.put(`/posts/${uniqueId}/own`, {
299
+ post: {
300
+ new_owner_unique_id: newOwnerUniqueId
301
+ }
302
+ });
303
+ return decodeOne(response, postMapper);
304
+ },
305
+ // Versioning
306
+ async publishVersion (uniqueId, versionUniqueId) {
307
+ const response = await transport.post(`/posts/${uniqueId}/versions/${versionUniqueId}/publish`, {});
308
+ return decodeOne(response, postMapper);
309
+ },
273
310
  // Engagement
274
311
  async like (uniqueId) {
275
- const response = await transport.post(`/posts/${uniqueId}/like`, {});
312
+ const response = await transport.put(`/posts/${uniqueId}/like`, {});
276
313
  return decodeOne(response, postMapper);
277
314
  },
278
315
  async dislike (uniqueId) {
279
- const response = await transport.post(`/posts/${uniqueId}/dislike`, {});
316
+ const response = await transport.delete(`/posts/${uniqueId}/dislike`);
280
317
  return decodeOne(response, postMapper);
281
318
  },
282
319
  async save (uniqueId) {
283
- const response = await transport.post(`/posts/${uniqueId}/save`, {});
320
+ const response = await transport.put(`/posts/${uniqueId}/save`, {});
321
+ return decodeOne(response, postMapper);
322
+ },
323
+ async unsave (uniqueId) {
324
+ const response = await transport.delete(`/posts/${uniqueId}/unsave`);
284
325
  return decodeOne(response, postMapper);
285
326
  },
286
327
  async follow (uniqueId) {
287
- const response = await transport.post(`/posts/${uniqueId}/follow`, {});
328
+ const response = await transport.put(`/posts/${uniqueId}/follow`, {});
329
+ return decodeOne(response, postMapper);
330
+ },
331
+ async unfollow (uniqueId) {
332
+ const response = await transport.delete(`/posts/${uniqueId}/unfollow`);
288
333
  return decodeOne(response, postMapper);
289
334
  }
290
335
  };
@@ -352,36 +397,30 @@ function createCommentsService(transport, _config) {
352
397
  },
353
398
  async create (data) {
354
399
  const response = await transport.post('/comments', {
355
- data: {
356
- type: 'Comment',
357
- attributes: {
358
- post_unique_id: data.postUniqueId,
359
- content: data.content,
360
- thumbnail_url: data.thumbnailUrl,
361
- image_url: data.imageUrl,
362
- content_url: data.contentUrl,
363
- media_url: data.mediaUrl,
364
- parent_id: data.parentId,
365
- payload: data.payload
366
- }
400
+ comment: {
401
+ post_unique_id: data.postUniqueId,
402
+ content: data.content,
403
+ thumbnail_url: data.thumbnailUrl,
404
+ image_url: data.imageUrl,
405
+ content_url: data.contentUrl,
406
+ media_url: data.mediaUrl,
407
+ parent_id: data.parentId,
408
+ payload: data.payload
367
409
  }
368
410
  });
369
411
  return decodeOne(response, commentMapper);
370
412
  },
371
413
  async update (uniqueId, data) {
372
414
  const response = await transport.put(`/comments/${uniqueId}`, {
373
- data: {
374
- type: 'Comment',
375
- attributes: {
376
- content: data.content,
377
- thumbnail_url: data.thumbnailUrl,
378
- image_url: data.imageUrl,
379
- content_url: data.contentUrl,
380
- media_url: data.mediaUrl,
381
- enabled: data.enabled,
382
- status: data.status,
383
- payload: data.payload
384
- }
415
+ comment: {
416
+ content: data.content,
417
+ thumbnail_url: data.thumbnailUrl,
418
+ image_url: data.imageUrl,
419
+ content_url: data.contentUrl,
420
+ media_url: data.mediaUrl,
421
+ enabled: data.enabled,
422
+ status: data.status,
423
+ payload: data.payload
385
424
  }
386
425
  });
387
426
  return decodeOne(response, commentMapper);
@@ -457,34 +496,28 @@ function createCategoriesService(transport, _config) {
457
496
  },
458
497
  async create (data) {
459
498
  const response = await transport.post('/content/categories', {
460
- data: {
461
- type: 'Category',
462
- attributes: {
463
- name: data.name,
464
- description: data.description,
465
- parent_unique_id: data.parentUniqueId,
466
- display_order: data.displayOrder,
467
- image_url: data.imageUrl,
468
- icon_url: data.iconUrl
469
- }
499
+ category: {
500
+ name: data.name,
501
+ description: data.description,
502
+ parent_unique_id: data.parentUniqueId,
503
+ display_order: data.displayOrder,
504
+ image_url: data.imageUrl,
505
+ icon_url: data.iconUrl
470
506
  }
471
507
  });
472
508
  return decodeOne(response, categoryMapper);
473
509
  },
474
510
  async update (uniqueId, data) {
475
511
  const response = await transport.put(`/content/categories/${uniqueId}`, {
476
- data: {
477
- type: 'Category',
478
- attributes: {
479
- name: data.name,
480
- description: data.description,
481
- parent_unique_id: data.parentUniqueId,
482
- display_order: data.displayOrder,
483
- image_url: data.imageUrl,
484
- icon_url: data.iconUrl,
485
- enabled: data.enabled,
486
- status: data.status
487
- }
512
+ category: {
513
+ name: data.name,
514
+ description: data.description,
515
+ parent_unique_id: data.parentUniqueId,
516
+ display_order: data.displayOrder,
517
+ image_url: data.imageUrl,
518
+ icon_url: data.iconUrl,
519
+ enabled: data.enabled,
520
+ status: data.status
488
521
  }
489
522
  });
490
523
  return decodeOne(response, categoryMapper);
@@ -540,34 +573,28 @@ function createTagsService(transport, _config) {
540
573
  },
541
574
  async create (data) {
542
575
  const response = await transport.post('/tags', {
543
- data: {
544
- type: 'Tag',
545
- attributes: {
546
- tag: data.tag,
547
- thumbnail_url: data.thumbnailUrl,
548
- image_url: data.imageUrl,
549
- content_url: data.contentUrl,
550
- media_url: data.mediaUrl,
551
- payload: data.payload
552
- }
576
+ tag: {
577
+ tag: data.tag,
578
+ thumbnail_url: data.thumbnailUrl,
579
+ image_url: data.imageUrl,
580
+ content_url: data.contentUrl,
581
+ media_url: data.mediaUrl,
582
+ payload: data.payload
553
583
  }
554
584
  });
555
585
  return decodeOne(response, tagMapper);
556
586
  },
557
587
  async update (uniqueId, data) {
558
588
  const response = await transport.put(`/tags/${uniqueId}`, {
559
- data: {
560
- type: 'Tag',
561
- attributes: {
562
- tag: data.tag,
563
- thumbnail_url: data.thumbnailUrl,
564
- image_url: data.imageUrl,
565
- content_url: data.contentUrl,
566
- media_url: data.mediaUrl,
567
- enabled: data.enabled,
568
- status: data.status,
569
- payload: data.payload
570
- }
589
+ tag: {
590
+ tag: data.tag,
591
+ thumbnail_url: data.thumbnailUrl,
592
+ image_url: data.imageUrl,
593
+ content_url: data.contentUrl,
594
+ media_url: data.mediaUrl,
595
+ enabled: data.enabled,
596
+ status: data.status,
597
+ payload: data.payload
571
598
  }
572
599
  });
573
600
  return decodeOne(response, tagMapper);
@@ -578,23 +605,143 @@ function createTagsService(transport, _config) {
578
605
  };
579
606
  }
580
607
 
608
+ const contentUserMapper = {
609
+ type: 'user',
610
+ map: (data)=>{
611
+ var _data_id, _data_unique_id, _data_name, _data_email, _data_posts_count, _data_comments_count, _data_followers_count, _data_following_count, _data_status;
612
+ return {
613
+ id: String((_data_id = data['id']) != null ? _data_id : ''),
614
+ uniqueId: String((_data_unique_id = data['unique_id']) != null ? _data_unique_id : ''),
615
+ name: String((_data_name = data['name']) != null ? _data_name : ''),
616
+ email: String((_data_email = data['email']) != null ? _data_email : ''),
617
+ avatarUrl: data['avatar_url'],
618
+ bio: data['bio'],
619
+ postsCount: Number((_data_posts_count = data['posts_count']) != null ? _data_posts_count : 0),
620
+ commentsCount: Number((_data_comments_count = data['comments_count']) != null ? _data_comments_count : 0),
621
+ followersCount: Number((_data_followers_count = data['followers_count']) != null ? _data_followers_count : 0),
622
+ followingCount: Number((_data_following_count = data['following_count']) != null ? _data_following_count : 0),
623
+ status: (_data_status = data['status']) != null ? _data_status : 'active',
624
+ payload: data['payload'],
625
+ createdAt: data['created_at'] ? new Date(data['created_at']) : new Date(),
626
+ updatedAt: data['updated_at'] ? new Date(data['updated_at']) : new Date()
627
+ };
628
+ }
629
+ };
630
+
631
+ function createContentUsersService(transport, _config) {
632
+ return {
633
+ async list (params) {
634
+ const queryParams = {};
635
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
636
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
637
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
638
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
639
+ const response = await transport.get('/identities', {
640
+ params: queryParams
641
+ });
642
+ return decodePageResult(response, contentUserMapper);
643
+ },
644
+ async get (uniqueId) {
645
+ const response = await transport.get(`/identities/${uniqueId}`);
646
+ return decodeOne(response, contentUserMapper);
647
+ },
648
+ async register (uniqueId, data) {
649
+ const response = await transport.post(`/identities/${uniqueId}/register`, {
650
+ user: {
651
+ email: data.email,
652
+ name: data.name,
653
+ avatar_url: data.avatarUrl,
654
+ bio: data.bio,
655
+ payload: data.payload
656
+ }
657
+ });
658
+ return decodeOne(response, contentUserMapper);
659
+ },
660
+ async update (uniqueId, data) {
661
+ const response = await transport.put(`/identities/${uniqueId}`, {
662
+ user: {
663
+ name: data.name,
664
+ avatar_url: data.avatarUrl,
665
+ bio: data.bio,
666
+ payload: data.payload
667
+ }
668
+ });
669
+ return decodeOne(response, contentUserMapper);
670
+ },
671
+ async getDrafts (uniqueId) {
672
+ const response = await transport.get(`/identities/${uniqueId}/drafts`);
673
+ return decodeMany(response, postMapper);
674
+ },
675
+ async getPosts (uniqueId) {
676
+ const response = await transport.get(`/identities/${uniqueId}/posts`);
677
+ return decodeMany(response, postMapper);
678
+ },
679
+ async getComments (uniqueId) {
680
+ const response = await transport.get(`/identities/${uniqueId}/comments`);
681
+ return decodeMany(response, commentMapper);
682
+ },
683
+ async getActivities (uniqueId) {
684
+ const response = await transport.get(`/identities/${uniqueId}/activities`);
685
+ return (response.data || []).map((item)=>{
686
+ var _item_unique_id, _item_activity_type, _item_target_type, _item_target_unique_id;
687
+ return {
688
+ uniqueId: String((_item_unique_id = item['unique_id']) != null ? _item_unique_id : ''),
689
+ activityType: String((_item_activity_type = item['activity_type']) != null ? _item_activity_type : ''),
690
+ targetType: String((_item_target_type = item['target_type']) != null ? _item_target_type : ''),
691
+ targetUniqueId: String((_item_target_unique_id = item['target_unique_id']) != null ? _item_target_unique_id : ''),
692
+ description: item['description'],
693
+ createdAt: new Date(item['created_at']),
694
+ payload: item['payload']
695
+ };
696
+ });
697
+ },
698
+ async addTag (uniqueId, tagUniqueId) {
699
+ const response = await transport.post(`/identities/${uniqueId}/tags`, {
700
+ tag: {
701
+ unique_id: tagUniqueId
702
+ }
703
+ });
704
+ return decodeOne(response, contentUserMapper);
705
+ },
706
+ async removeTag (uniqueId, tagUniqueId) {
707
+ await transport.delete(`/identities/${uniqueId}/tags/${tagUniqueId}`);
708
+ },
709
+ async getFollowers (uniqueId) {
710
+ const response = await transport.get(`/identities/${uniqueId}/followers`);
711
+ return decodeMany(response, contentUserMapper);
712
+ },
713
+ async getFollowing (uniqueId) {
714
+ const response = await transport.get(`/identities/${uniqueId}/following`);
715
+ return decodeMany(response, contentUserMapper);
716
+ },
717
+ async followUser (uniqueId, targetUserUniqueId) {
718
+ await transport.post(`/identities/${uniqueId}/follows/${targetUserUniqueId}`, {});
719
+ },
720
+ async unfollowUser (uniqueId, targetUserUniqueId) {
721
+ await transport.delete(`/identities/${uniqueId}/unfollows/${targetUserUniqueId}`);
722
+ }
723
+ };
724
+ }
725
+
581
726
  function createContentBlock(transport, config) {
582
727
  return {
583
728
  posts: createPostsService(transport),
584
729
  comments: createCommentsService(transport),
585
730
  categories: createCategoriesService(transport),
586
- tags: createTagsService(transport)
731
+ tags: createTagsService(transport),
732
+ users: createContentUsersService(transport)
587
733
  };
588
734
  }
589
735
  const contentBlockMetadata = {
590
736
  name: 'content',
591
737
  version: '0.1.0',
592
- description: 'Content management for posts, comments, categories, and tags',
738
+ description: 'Content management for posts, comments, categories, tags, and users',
593
739
  resourceTypes: [
594
740
  'Post',
595
741
  'Comment',
596
742
  'Category',
597
- 'Tag'
743
+ 'Tag',
744
+ 'ContentUser'
598
745
  ]
599
746
  };
600
747
 
@@ -1,5 +1,5 @@
1
1
  import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';
2
- import { type PostsService, type CommentsService, type CategoriesService, type TagsService } from './services';
2
+ import { type PostsService, type CommentsService, type CategoriesService, type TagsService, type ContentUsersService } from './services';
3
3
  export interface ContentBlockConfig extends BlockConfig {
4
4
  appId: string;
5
5
  tenantId?: string;
@@ -9,6 +9,7 @@ export interface ContentBlock {
9
9
  comments: CommentsService;
10
10
  categories: CategoriesService;
11
11
  tags: TagsService;
12
+ users: ContentUsersService;
12
13
  }
13
14
  export declare function createContentBlock(transport: Transport, config: ContentBlockConfig): ContentBlock;
14
15
  export declare const contentBlockMetadata: BlockMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"content.block.d.ts","sourceRoot":"","sources":["../../../src/lib/content.block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,GACzB,YAAY,CAOd;AAED,eAAO,MAAM,oBAAoB,EAAE,aAUlC,CAAC"}
1
+ {"version":3,"file":"content.block.d.ts","sourceRoot":"","sources":["../../../src/lib/content.block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,GACzB,YAAY,CAQd;AAED,eAAO,MAAM,oBAAoB,EAAE,aAWlC,CAAC"}
@@ -2,4 +2,5 @@ export * from './post.mapper';
2
2
  export * from './comment.mapper';
3
3
  export * from './category.mapper';
4
4
  export * from './tag.mapper';
5
+ export * from './user.mapper';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { JsonApiResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { ContentUser } from '../types/user';
3
+ export declare const contentUserMapper: JsonApiResourceMapper<ContentUser>;
4
+ //# sourceMappingURL=user.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/user.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,MAAM,iBAAiB,EAAE,qBAAqB,CAAC,WAAW,CAkBhE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"categories.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/categories.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAqE3G"}
1
+ {"version":3,"file":"categories.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/categories.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CA+D3G"}
@@ -1 +1 @@
1
- {"version":3,"file":"comments.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/comments.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,OAAO,EACP,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGxC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAyEvG"}
1
+ {"version":3,"file":"comments.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/comments.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,OAAO,EACP,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGxC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAmEvG"}
@@ -2,4 +2,5 @@ export * from './posts.service';
2
2
  export * from './comments.service';
3
3
  export * from './categories.service';
4
4
  export * from './tags.service';
5
+ export * from './users.service';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -2,17 +2,23 @@ import type { Transport, PageResult } from '@23blocks/contracts';
2
2
  import type { Post, CreatePostRequest, UpdatePostRequest, ListPostsParams } from '../types/post';
3
3
  export interface PostsService {
4
4
  list(params?: ListPostsParams): Promise<PageResult<Post>>;
5
+ query(params: ListPostsParams): Promise<PageResult<Post>>;
5
6
  get(uniqueId: string): Promise<Post>;
6
7
  create(data: CreatePostRequest): Promise<Post>;
7
8
  update(uniqueId: string, data: UpdatePostRequest): Promise<Post>;
9
+ replace(uniqueId: string, data: UpdatePostRequest): Promise<Post>;
8
10
  delete(uniqueId: string): Promise<void>;
9
11
  recover(uniqueId: string): Promise<Post>;
10
12
  search(query: string, params?: ListPostsParams): Promise<PageResult<Post>>;
11
13
  listDeleted(params?: ListPostsParams): Promise<PageResult<Post>>;
14
+ changeOwner(uniqueId: string, newOwnerUniqueId: string): Promise<Post>;
15
+ publishVersion(uniqueId: string, versionUniqueId: string): Promise<Post>;
12
16
  like(uniqueId: string): Promise<Post>;
13
17
  dislike(uniqueId: string): Promise<Post>;
14
18
  save(uniqueId: string): Promise<Post>;
19
+ unsave(uniqueId: string): Promise<Post>;
15
20
  follow(uniqueId: string): Promise<Post>;
21
+ unfollow(uniqueId: string): Promise<Post>;
16
22
  }
17
23
  export declare function createPostsService(transport: Transport, _config: {
18
24
  appId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"posts.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/posts.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,IAAI,EACJ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,YAAY;IAE3B,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAGjE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CA8HjG"}
1
+ {"version":3,"file":"posts.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/posts.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,IAAI,EACJ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,YAAY;IAE3B,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAGjE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CA+KjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"tags.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/tags.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,GAAG,EACH,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAyD/F"}
1
+ {"version":3,"file":"tags.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/tags.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,GAAG,EACH,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAmD/F"}
@@ -0,0 +1,24 @@
1
+ import type { Transport, PageResult } from '@23blocks/contracts';
2
+ import type { ContentUser, RegisterContentUserRequest, UpdateContentUserRequest, ListContentUsersParams, UserActivity } from '../types/user';
3
+ import type { Post } from '../types/post';
4
+ import type { Comment } from '../types/comment';
5
+ export interface ContentUsersService {
6
+ list(params?: ListContentUsersParams): Promise<PageResult<ContentUser>>;
7
+ get(uniqueId: string): Promise<ContentUser>;
8
+ register(uniqueId: string, data: RegisterContentUserRequest): Promise<ContentUser>;
9
+ update(uniqueId: string, data: UpdateContentUserRequest): Promise<ContentUser>;
10
+ getDrafts(uniqueId: string): Promise<Post[]>;
11
+ getPosts(uniqueId: string): Promise<Post[]>;
12
+ getComments(uniqueId: string): Promise<Comment[]>;
13
+ getActivities(uniqueId: string): Promise<UserActivity[]>;
14
+ addTag(uniqueId: string, tagUniqueId: string): Promise<ContentUser>;
15
+ removeTag(uniqueId: string, tagUniqueId: string): Promise<void>;
16
+ getFollowers(uniqueId: string): Promise<ContentUser[]>;
17
+ getFollowing(uniqueId: string): Promise<ContentUser[]>;
18
+ followUser(uniqueId: string, targetUserUniqueId: string): Promise<void>;
19
+ unfollowUser(uniqueId: string, targetUserUniqueId: string): Promise<void>;
20
+ }
21
+ export declare function createContentUsersService(transport: Transport, _config: {
22
+ appId: string;
23
+ }): ContentUsersService;
24
+ //# sourceMappingURL=users.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/users.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,WAAW,EACX,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKhD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAG/E,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAGzD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGhE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAoG/G"}
@@ -2,4 +2,5 @@ export * from './post';
2
2
  export * from './comment';
3
3
  export * from './category';
4
4
  export * from './tag';
5
+ export * from './user';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { IdentityCore, EntityStatus } from '@23blocks/contracts';
2
+ export interface ContentUser extends IdentityCore {
3
+ name: string;
4
+ email: string;
5
+ avatarUrl?: string;
6
+ bio?: string;
7
+ postsCount: number;
8
+ commentsCount: number;
9
+ followersCount: number;
10
+ followingCount: number;
11
+ status: EntityStatus;
12
+ payload?: Record<string, unknown>;
13
+ }
14
+ export interface RegisterContentUserRequest {
15
+ email: string;
16
+ name: string;
17
+ avatarUrl?: string;
18
+ bio?: string;
19
+ payload?: Record<string, unknown>;
20
+ }
21
+ export interface UpdateContentUserRequest {
22
+ name?: string;
23
+ avatarUrl?: string;
24
+ bio?: string;
25
+ payload?: Record<string, unknown>;
26
+ }
27
+ export interface ListContentUsersParams {
28
+ page?: number;
29
+ perPage?: number;
30
+ status?: string;
31
+ search?: string;
32
+ }
33
+ export interface UserActivity {
34
+ uniqueId: string;
35
+ activityType: string;
36
+ targetType: string;
37
+ targetUniqueId: string;
38
+ description?: string;
39
+ createdAt: Date;
40
+ payload?: Record<string, unknown>;
41
+ }
42
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAItE,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@23blocks/block-content",
3
- "version": "1.0.5",
3
+ "version": "2.1.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",