@23blocks/block-content 3.2.0 → 3.3.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 +179 -3
- package/dist/src/lib/content.block.d.ts +3 -1
- package/dist/src/lib/content.block.d.ts.map +1 -1
- package/dist/src/lib/mappers/activity.mapper.d.ts +4 -0
- package/dist/src/lib/mappers/activity.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/index.d.ts +2 -0
- package/dist/src/lib/mappers/index.d.ts.map +1 -1
- package/dist/src/lib/mappers/moderation.mapper.d.ts +4 -0
- package/dist/src/lib/mappers/moderation.mapper.d.ts.map +1 -0
- package/dist/src/lib/services/activity.service.d.ts +27 -0
- package/dist/src/lib/services/activity.service.d.ts.map +1 -0
- package/dist/src/lib/services/index.d.ts +2 -0
- package/dist/src/lib/services/index.d.ts.map +1 -1
- package/dist/src/lib/services/moderation.service.d.ts +42 -0
- package/dist/src/lib/services/moderation.service.d.ts.map +1 -0
- package/dist/src/lib/types/activity.d.ts +38 -0
- package/dist/src/lib/types/activity.d.ts.map +1 -0
- package/dist/src/lib/types/index.d.ts +2 -0
- package/dist/src/lib/types/index.d.ts.map +1 -1
- package/dist/src/lib/types/moderation.d.ts +60 -0
- package/dist/src/lib/types/moderation.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -754,13 +754,187 @@ function createContentUsersService(transport, _config) {
|
|
|
754
754
|
};
|
|
755
755
|
}
|
|
756
756
|
|
|
757
|
+
const contentFlagMapper = {
|
|
758
|
+
type: 'content_flag',
|
|
759
|
+
map: (resource)=>{
|
|
760
|
+
var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7, _resource_attributes8, _resource_attributes9;
|
|
761
|
+
var _parseString, _parseString1, _parseString2, _parseString3, _parseDate;
|
|
762
|
+
return {
|
|
763
|
+
uniqueId: resource.id,
|
|
764
|
+
contentType: (_parseString = parseString((_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['content_type'])) != null ? _parseString : 'post',
|
|
765
|
+
contentUniqueId: (_parseString1 = parseString((_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['content_unique_id'])) != null ? _parseString1 : '',
|
|
766
|
+
reporterUniqueId: (_parseString2 = parseString((_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['reporter_unique_id'])) != null ? _parseString2 : '',
|
|
767
|
+
reason: (_parseString3 = parseString((_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['reason'])) != null ? _parseString3 : '',
|
|
768
|
+
category: parseString((_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['category']),
|
|
769
|
+
status: parseStatus((_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['status']),
|
|
770
|
+
createdAt: (_parseDate = parseDate((_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['created_at'])) != null ? _parseDate : new Date(),
|
|
771
|
+
resolvedAt: parseDate((_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['resolved_at']),
|
|
772
|
+
resolvedBy: parseString((_resource_attributes8 = resource.attributes) == null ? void 0 : _resource_attributes8['resolved_by']),
|
|
773
|
+
resolution: parseString((_resource_attributes9 = resource.attributes) == null ? void 0 : _resource_attributes9['resolution'])
|
|
774
|
+
};
|
|
775
|
+
}
|
|
776
|
+
};
|
|
777
|
+
|
|
778
|
+
/**
|
|
779
|
+
* Create the Moderation service
|
|
780
|
+
*/ function createModerationService(transport, _config) {
|
|
781
|
+
return {
|
|
782
|
+
async moderatePost (postUniqueId, request) {
|
|
783
|
+
const response = await transport.post(`/posts/${postUniqueId}/moderate`, {
|
|
784
|
+
moderation: {
|
|
785
|
+
action: request.action,
|
|
786
|
+
reason: request.reason
|
|
787
|
+
}
|
|
788
|
+
});
|
|
789
|
+
return {
|
|
790
|
+
success: response.success,
|
|
791
|
+
action: response.action,
|
|
792
|
+
moderatedAt: new Date(response.moderated_at),
|
|
793
|
+
moderatedBy: response.moderated_by,
|
|
794
|
+
reason: response.reason
|
|
795
|
+
};
|
|
796
|
+
},
|
|
797
|
+
async moderateComment (postUniqueId, commentUniqueId, request) {
|
|
798
|
+
const response = await transport.delete(`/posts/${postUniqueId}/comments/${commentUniqueId}/moderate`);
|
|
799
|
+
var _response_success, _response_action;
|
|
800
|
+
return {
|
|
801
|
+
success: (_response_success = response.success) != null ? _response_success : true,
|
|
802
|
+
action: (_response_action = response.action) != null ? _response_action : request.action,
|
|
803
|
+
moderatedAt: response.moderated_at ? new Date(response.moderated_at) : new Date(),
|
|
804
|
+
moderatedBy: response.moderated_by,
|
|
805
|
+
reason: response.reason
|
|
806
|
+
};
|
|
807
|
+
},
|
|
808
|
+
async listFlags (params) {
|
|
809
|
+
const queryParams = {};
|
|
810
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
811
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
812
|
+
if (params == null ? void 0 : params.contentType) queryParams['content_type'] = params.contentType;
|
|
813
|
+
if (params == null ? void 0 : params.category) queryParams['category'] = params.category;
|
|
814
|
+
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
815
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort_by'] = params.sortBy;
|
|
816
|
+
if (params == null ? void 0 : params.sortOrder) queryParams['sort_order'] = params.sortOrder;
|
|
817
|
+
const response = await transport.get('/content_flags', {
|
|
818
|
+
params: queryParams
|
|
819
|
+
});
|
|
820
|
+
return decodePageResult(response, contentFlagMapper);
|
|
821
|
+
},
|
|
822
|
+
async getFlag (flagUniqueId) {
|
|
823
|
+
const response = await transport.get(`/content_flags/${flagUniqueId}`);
|
|
824
|
+
return decodeOne(response, contentFlagMapper);
|
|
825
|
+
},
|
|
826
|
+
async createFlag (request) {
|
|
827
|
+
const response = await transport.post('/content_flags', {
|
|
828
|
+
content_flag: {
|
|
829
|
+
content_type: request.contentType,
|
|
830
|
+
content_unique_id: request.contentUniqueId,
|
|
831
|
+
reason: request.reason,
|
|
832
|
+
category: request.category
|
|
833
|
+
}
|
|
834
|
+
});
|
|
835
|
+
return decodeOne(response, contentFlagMapper);
|
|
836
|
+
},
|
|
837
|
+
async resolveFlag (flagUniqueId, resolution) {
|
|
838
|
+
const response = await transport.put(`/content_flags/${flagUniqueId}/resolve`, {
|
|
839
|
+
content_flag: {
|
|
840
|
+
resolution
|
|
841
|
+
}
|
|
842
|
+
});
|
|
843
|
+
return decodeOne(response, contentFlagMapper);
|
|
844
|
+
},
|
|
845
|
+
async dismissFlag (flagUniqueId, reason) {
|
|
846
|
+
await transport.put(`/content_flags/${flagUniqueId}/dismiss`, {
|
|
847
|
+
content_flag: {
|
|
848
|
+
reason
|
|
849
|
+
}
|
|
850
|
+
});
|
|
851
|
+
}
|
|
852
|
+
};
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
const activityMapper = {
|
|
856
|
+
type: 'activity',
|
|
857
|
+
map: (resource)=>{
|
|
858
|
+
var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7, _resource_attributes8, _resource_attributes9, _resource_attributes10, _resource_attributes11, _resource_attributes12, _resource_attributes13, _resource_attributes14;
|
|
859
|
+
var _parseDate, _parseDate1, _parseString, _parseString1, _parseString2, _parseString3;
|
|
860
|
+
return {
|
|
861
|
+
uniqueId: resource.id,
|
|
862
|
+
createdAt: (_parseDate = parseDate((_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['created_at'])) != null ? _parseDate : new Date(),
|
|
863
|
+
updatedAt: (_parseDate1 = parseDate((_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['updated_at'])) != null ? _parseDate1 : new Date(),
|
|
864
|
+
activityType: (_parseString = parseString((_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['activity_type'])) != null ? _parseString : 'post_created',
|
|
865
|
+
actorUniqueId: (_parseString1 = parseString((_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['actor_unique_id'])) != null ? _parseString1 : '',
|
|
866
|
+
actorName: parseString((_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['actor_name']),
|
|
867
|
+
actorAvatarUrl: parseString((_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['actor_avatar_url']),
|
|
868
|
+
targetType: (_parseString2 = parseString((_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['target_type'])) != null ? _parseString2 : 'post',
|
|
869
|
+
targetUniqueId: (_parseString3 = parseString((_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['target_unique_id'])) != null ? _parseString3 : '',
|
|
870
|
+
targetTitle: parseString((_resource_attributes8 = resource.attributes) == null ? void 0 : _resource_attributes8['target_title']),
|
|
871
|
+
targetPreview: parseString((_resource_attributes9 = resource.attributes) == null ? void 0 : _resource_attributes9['target_preview']),
|
|
872
|
+
relatedUniqueId: parseString((_resource_attributes10 = resource.attributes) == null ? void 0 : _resource_attributes10['related_unique_id']),
|
|
873
|
+
relatedType: parseString((_resource_attributes11 = resource.attributes) == null ? void 0 : _resource_attributes11['related_type']),
|
|
874
|
+
metadata: (_resource_attributes12 = resource.attributes) == null ? void 0 : _resource_attributes12['metadata'],
|
|
875
|
+
status: parseStatus((_resource_attributes13 = resource.attributes) == null ? void 0 : _resource_attributes13['status']),
|
|
876
|
+
enabled: parseBoolean((_resource_attributes14 = resource.attributes) == null ? void 0 : _resource_attributes14['enabled'])
|
|
877
|
+
};
|
|
878
|
+
}
|
|
879
|
+
};
|
|
880
|
+
|
|
881
|
+
/**
|
|
882
|
+
* Create the Activity service
|
|
883
|
+
*/ function createActivityService(transport, _config) {
|
|
884
|
+
return {
|
|
885
|
+
async getActivities (identityUniqueId, params) {
|
|
886
|
+
const queryParams = {};
|
|
887
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
888
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
889
|
+
if (params == null ? void 0 : params.activityType) queryParams['activity_type'] = params.activityType;
|
|
890
|
+
if (params == null ? void 0 : params.targetType) queryParams['target_type'] = params.targetType;
|
|
891
|
+
if (params == null ? void 0 : params.dateFrom) queryParams['date_from'] = params.dateFrom;
|
|
892
|
+
if (params == null ? void 0 : params.dateTo) queryParams['date_to'] = params.dateTo;
|
|
893
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort_by'] = params.sortBy;
|
|
894
|
+
if (params == null ? void 0 : params.sortOrder) queryParams['sort_order'] = params.sortOrder;
|
|
895
|
+
const response = await transport.get(`/identities/${identityUniqueId}/activities`, {
|
|
896
|
+
params: queryParams
|
|
897
|
+
});
|
|
898
|
+
return decodePageResult(response, activityMapper);
|
|
899
|
+
},
|
|
900
|
+
async getComments (identityUniqueId, params) {
|
|
901
|
+
const queryParams = {};
|
|
902
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
903
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
904
|
+
if (params == null ? void 0 : params.postUniqueId) queryParams['post_unique_id'] = params.postUniqueId;
|
|
905
|
+
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
906
|
+
const response = await transport.get(`/identities/${identityUniqueId}/comments`, {
|
|
907
|
+
params: queryParams
|
|
908
|
+
});
|
|
909
|
+
return decodePageResult(response, commentMapper);
|
|
910
|
+
},
|
|
911
|
+
async getFeed (params) {
|
|
912
|
+
const queryParams = {};
|
|
913
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
914
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
915
|
+
if (params == null ? void 0 : params.activityType) queryParams['activity_type'] = params.activityType;
|
|
916
|
+
if (params == null ? void 0 : params.targetType) queryParams['target_type'] = params.targetType;
|
|
917
|
+
if (params == null ? void 0 : params.dateFrom) queryParams['date_from'] = params.dateFrom;
|
|
918
|
+
if (params == null ? void 0 : params.dateTo) queryParams['date_to'] = params.dateTo;
|
|
919
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort_by'] = params.sortBy;
|
|
920
|
+
if (params == null ? void 0 : params.sortOrder) queryParams['sort_order'] = params.sortOrder;
|
|
921
|
+
const response = await transport.get('/activities/feed', {
|
|
922
|
+
params: queryParams
|
|
923
|
+
});
|
|
924
|
+
return decodePageResult(response, activityMapper);
|
|
925
|
+
}
|
|
926
|
+
};
|
|
927
|
+
}
|
|
928
|
+
|
|
757
929
|
function createContentBlock(transport, config) {
|
|
758
930
|
return {
|
|
759
931
|
posts: createPostsService(transport),
|
|
760
932
|
comments: createCommentsService(transport),
|
|
761
933
|
categories: createCategoriesService(transport),
|
|
762
934
|
tags: createTagsService(transport),
|
|
763
|
-
users: createContentUsersService(transport)
|
|
935
|
+
users: createContentUsersService(transport),
|
|
936
|
+
moderation: createModerationService(transport),
|
|
937
|
+
activity: createActivityService(transport)
|
|
764
938
|
};
|
|
765
939
|
}
|
|
766
940
|
const contentBlockMetadata = {
|
|
@@ -772,8 +946,10 @@ const contentBlockMetadata = {
|
|
|
772
946
|
'Comment',
|
|
773
947
|
'Category',
|
|
774
948
|
'Tag',
|
|
775
|
-
'ContentUser'
|
|
949
|
+
'ContentUser',
|
|
950
|
+
'ContentFlag',
|
|
951
|
+
'Activity'
|
|
776
952
|
]
|
|
777
953
|
};
|
|
778
954
|
|
|
779
|
-
export { categoryMapper, commentMapper, contentBlockMetadata, contentUserMapper, createCategoriesService, createCommentsService, createContentBlock, createContentUsersService, createPostsService, createTagsService, postMapper, tagMapper };
|
|
955
|
+
export { activityMapper, categoryMapper, commentMapper, contentBlockMetadata, contentFlagMapper, contentUserMapper, createActivityService, createCategoriesService, createCommentsService, createContentBlock, createContentUsersService, createModerationService, createPostsService, createTagsService, postMapper, tagMapper };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';
|
|
2
|
-
import { type PostsService, type CommentsService, type CategoriesService, type TagsService, type ContentUsersService } from './services';
|
|
2
|
+
import { type PostsService, type CommentsService, type CategoriesService, type TagsService, type ContentUsersService, type ModerationService, type ActivityService } from './services';
|
|
3
3
|
export interface ContentBlockConfig extends BlockConfig {
|
|
4
4
|
appId: string;
|
|
5
5
|
tenantId?: string;
|
|
@@ -10,6 +10,8 @@ export interface ContentBlock {
|
|
|
10
10
|
categories: CategoriesService;
|
|
11
11
|
tags: TagsService;
|
|
12
12
|
users: ContentUsersService;
|
|
13
|
+
moderation: ModerationService;
|
|
14
|
+
activity: ActivityService;
|
|
13
15
|
}
|
|
14
16
|
export declare function createContentBlock(transport: Transport, config: ContentBlockConfig): ContentBlock;
|
|
15
17
|
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,
|
|
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,EAQL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,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;IAC3B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,GACzB,YAAY,CAUd;AAED,eAAO,MAAM,oBAAoB,EAAE,aAalC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/activity.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,mBAAmB,CAAC;AAGhE,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,QAAQ,CAoBnD,CAAC"}
|
|
@@ -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;AAC7B,cAAc,eAAe,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;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moderation.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/moderation.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAezD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Transport, PageResult } from '@23blocks/contracts';
|
|
2
|
+
import type { Activity, ListActivitiesParams } from '../types/activity';
|
|
3
|
+
import type { Comment, ListCommentsParams } from '../types/comment';
|
|
4
|
+
/**
|
|
5
|
+
* Activity Service Interface - User activity feed operations
|
|
6
|
+
*/
|
|
7
|
+
export interface ActivityService {
|
|
8
|
+
/**
|
|
9
|
+
* Get activities for an identity (user)
|
|
10
|
+
*/
|
|
11
|
+
getActivities(identityUniqueId: string, params?: ListActivitiesParams): Promise<PageResult<Activity>>;
|
|
12
|
+
/**
|
|
13
|
+
* Get comments by an identity (user)
|
|
14
|
+
*/
|
|
15
|
+
getComments(identityUniqueId: string, params?: ListCommentsParams): Promise<PageResult<Comment>>;
|
|
16
|
+
/**
|
|
17
|
+
* Get the user's activity feed (activities from followed users)
|
|
18
|
+
*/
|
|
19
|
+
getFeed(params?: ListActivitiesParams): Promise<PageResult<Activity>>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Create the Activity service
|
|
23
|
+
*/
|
|
24
|
+
export declare function createActivityService(transport: Transport, _config: {
|
|
25
|
+
appId: string;
|
|
26
|
+
}): ActivityService;
|
|
27
|
+
//# sourceMappingURL=activity.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/activity.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAIpE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtG;;OAEG;IACH,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjG;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;CACvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACzB,eAAe,CAqDjB"}
|
|
@@ -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;AAC/B,cAAc,iBAAiB,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;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Transport, PageResult } from '@23blocks/contracts';
|
|
2
|
+
import type { ModerationResult, ModerateContentRequest, ContentFlag, CreateContentFlagRequest, ListContentFlagsParams } from '../types/moderation';
|
|
3
|
+
/**
|
|
4
|
+
* Moderation Service Interface - Content moderation operations
|
|
5
|
+
*/
|
|
6
|
+
export interface ModerationService {
|
|
7
|
+
/**
|
|
8
|
+
* Moderate a post
|
|
9
|
+
*/
|
|
10
|
+
moderatePost(postUniqueId: string, request: ModerateContentRequest): Promise<ModerationResult>;
|
|
11
|
+
/**
|
|
12
|
+
* Moderate a comment
|
|
13
|
+
*/
|
|
14
|
+
moderateComment(postUniqueId: string, commentUniqueId: string, request: ModerateContentRequest): Promise<ModerationResult>;
|
|
15
|
+
/**
|
|
16
|
+
* List content flags
|
|
17
|
+
*/
|
|
18
|
+
listFlags(params?: ListContentFlagsParams): Promise<PageResult<ContentFlag>>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a specific flag
|
|
21
|
+
*/
|
|
22
|
+
getFlag(flagUniqueId: string): Promise<ContentFlag>;
|
|
23
|
+
/**
|
|
24
|
+
* Create a content flag (report content)
|
|
25
|
+
*/
|
|
26
|
+
createFlag(request: CreateContentFlagRequest): Promise<ContentFlag>;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve a content flag
|
|
29
|
+
*/
|
|
30
|
+
resolveFlag(flagUniqueId: string, resolution: string): Promise<ContentFlag>;
|
|
31
|
+
/**
|
|
32
|
+
* Dismiss a content flag
|
|
33
|
+
*/
|
|
34
|
+
dismissFlag(flagUniqueId: string, reason?: string): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create the Moderation service
|
|
38
|
+
*/
|
|
39
|
+
export declare function createModerationService(transport: Transport, _config: {
|
|
40
|
+
appId: string;
|
|
41
|
+
}): ModerationService;
|
|
42
|
+
//# sourceMappingURL=moderation.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moderation.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/moderation.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,sBAAsB,EAEvB,MAAM,qBAAqB,CAAC;AAG7B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/F;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE3H;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7E;;OAEG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpE;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5E;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACzB,iBAAiB,CA+FnB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { IdentityCore, EntityStatus } from '@23blocks/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* Content activity types
|
|
4
|
+
*/
|
|
5
|
+
export type ActivityType = 'post_created' | 'post_updated' | 'post_liked' | 'post_shared' | 'comment_created' | 'comment_liked' | 'comment_reply' | 'followed' | 'unfollowed' | 'saved' | 'unsaved';
|
|
6
|
+
/**
|
|
7
|
+
* Activity feed item
|
|
8
|
+
*/
|
|
9
|
+
export interface Activity extends IdentityCore {
|
|
10
|
+
activityType: ActivityType;
|
|
11
|
+
actorUniqueId: string;
|
|
12
|
+
actorName?: string;
|
|
13
|
+
actorAvatarUrl?: string;
|
|
14
|
+
targetType: 'post' | 'comment' | 'user';
|
|
15
|
+
targetUniqueId: string;
|
|
16
|
+
targetTitle?: string;
|
|
17
|
+
targetPreview?: string;
|
|
18
|
+
relatedUniqueId?: string;
|
|
19
|
+
relatedType?: string;
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
status: EntityStatus;
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List activities params
|
|
26
|
+
*/
|
|
27
|
+
export interface ListActivitiesParams {
|
|
28
|
+
page?: number;
|
|
29
|
+
perPage?: number;
|
|
30
|
+
identityUniqueId?: string;
|
|
31
|
+
activityType?: ActivityType;
|
|
32
|
+
targetType?: 'post' | 'comment' | 'user';
|
|
33
|
+
dateFrom?: string;
|
|
34
|
+
dateTo?: string;
|
|
35
|
+
sortBy?: string;
|
|
36
|
+
sortOrder?: 'asc' | 'desc';
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,cAAc,GACd,YAAY,GACZ,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,UAAU,GACV,YAAY,GACZ,OAAO,GACP,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B"}
|
|
@@ -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;AACtB,cAAc,QAAQ,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;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { EntityStatus } from '@23blocks/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* Moderation action types
|
|
4
|
+
*/
|
|
5
|
+
export type ModerationAction = 'hide' | 'delete' | 'flag' | 'unflag' | 'approve' | 'reject';
|
|
6
|
+
/**
|
|
7
|
+
* Moderation result
|
|
8
|
+
*/
|
|
9
|
+
export interface ModerationResult {
|
|
10
|
+
success: boolean;
|
|
11
|
+
action: ModerationAction;
|
|
12
|
+
moderatedAt: Date;
|
|
13
|
+
moderatedBy?: string;
|
|
14
|
+
reason?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Moderation request
|
|
18
|
+
*/
|
|
19
|
+
export interface ModerateContentRequest {
|
|
20
|
+
action: ModerationAction;
|
|
21
|
+
reason?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Content flag
|
|
25
|
+
*/
|
|
26
|
+
export interface ContentFlag {
|
|
27
|
+
uniqueId: string;
|
|
28
|
+
contentType: 'post' | 'comment';
|
|
29
|
+
contentUniqueId: string;
|
|
30
|
+
reporterUniqueId: string;
|
|
31
|
+
reason: string;
|
|
32
|
+
category?: 'spam' | 'harassment' | 'inappropriate' | 'copyright' | 'other';
|
|
33
|
+
status: EntityStatus;
|
|
34
|
+
createdAt: Date;
|
|
35
|
+
resolvedAt?: Date;
|
|
36
|
+
resolvedBy?: string;
|
|
37
|
+
resolution?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create content flag request
|
|
41
|
+
*/
|
|
42
|
+
export interface CreateContentFlagRequest {
|
|
43
|
+
contentType: 'post' | 'comment';
|
|
44
|
+
contentUniqueId: string;
|
|
45
|
+
reason: string;
|
|
46
|
+
category?: 'spam' | 'harassment' | 'inappropriate' | 'copyright' | 'other';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* List content flags params
|
|
50
|
+
*/
|
|
51
|
+
export interface ListContentFlagsParams {
|
|
52
|
+
page?: number;
|
|
53
|
+
perPage?: number;
|
|
54
|
+
contentType?: 'post' | 'comment';
|
|
55
|
+
category?: string;
|
|
56
|
+
status?: EntityStatus;
|
|
57
|
+
sortBy?: string;
|
|
58
|
+
sortOrder?: 'asc' | 'desc';
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=moderation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/moderation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,OAAO,CAAC;IAC3E,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,OAAO,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B"}
|