@23blocks/block-content 3.3.2 → 3.3.3

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
@@ -162,7 +162,11 @@ const postMapper = {
162
162
  moderatedBy: parseString(resource.attributes['moderated_by']),
163
163
  moderatedAt: parseDate(resource.attributes['moderated_at']),
164
164
  moderationReason: parseString(resource.attributes['moderation_reason']),
165
- moderationDecision: parseString(resource.attributes['moderation_decision'])
165
+ moderationDecision: parseString(resource.attributes['moderation_decision']),
166
+ // Series
167
+ seriesId: parseOptionalNumber(resource.attributes['series_id']),
168
+ seriesUniqueId: parseString(resource.attributes['series_unique_id']),
169
+ seriesSequence: parseOptionalNumber(resource.attributes['series_sequence'])
166
170
  })
167
171
  };
168
172
 
@@ -1056,6 +1060,169 @@ const activityMapper = {
1056
1060
  };
1057
1061
  }
1058
1062
 
1063
+ function parseVisibility(value) {
1064
+ const str = parseString(value);
1065
+ if (str === 'public' || str === 'private' || str === 'unlisted') {
1066
+ return str;
1067
+ }
1068
+ return undefined;
1069
+ }
1070
+ function parseCompletionStatus(value) {
1071
+ const str = parseString(value);
1072
+ if (str === 'ongoing' || str === 'completed' || str === 'hiatus' || str === 'cancelled') {
1073
+ return str;
1074
+ }
1075
+ return undefined;
1076
+ }
1077
+ const seriesMapper = {
1078
+ type: 'Series',
1079
+ map: (resource)=>({
1080
+ id: resource.id,
1081
+ uniqueId: parseString(resource.attributes['unique_id']),
1082
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
1083
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
1084
+ title: parseString(resource.attributes['title']) || '',
1085
+ description: parseString(resource.attributes['description']),
1086
+ slug: parseString(resource.attributes['slug']),
1087
+ thumbnailUrl: parseString(resource.attributes['thumbnail_url']),
1088
+ imageUrl: parseString(resource.attributes['image_url']),
1089
+ status: parseStatus(resource.attributes['status']),
1090
+ enabled: parseBoolean(resource.attributes['enabled']),
1091
+ visibility: parseVisibility(resource.attributes['visibility']),
1092
+ completionStatus: parseCompletionStatus(resource.attributes['completion_status']),
1093
+ // User
1094
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
1095
+ userName: parseString(resource.attributes['user_name']),
1096
+ userAlias: parseString(resource.attributes['user_alias']),
1097
+ userAvatarUrl: parseString(resource.attributes['user_avatar_url']),
1098
+ // Engagement
1099
+ postsCount: parseOptionalNumber(resource.attributes['posts_count']),
1100
+ likes: parseOptionalNumber(resource.attributes['likes']),
1101
+ dislikes: parseOptionalNumber(resource.attributes['dislikes']),
1102
+ followers: parseOptionalNumber(resource.attributes['followers']),
1103
+ savers: parseOptionalNumber(resource.attributes['savers']),
1104
+ // AI
1105
+ aiGenerated: parseBoolean(resource.attributes['ai_generated']),
1106
+ aiModel: parseString(resource.attributes['ai_model']),
1107
+ // Moderation
1108
+ moderated: parseBoolean(resource.attributes['moderated']),
1109
+ // Metadata
1110
+ payload: resource.attributes['payload']
1111
+ })
1112
+ };
1113
+
1114
+ function createSeriesService(transport, _config) {
1115
+ return {
1116
+ // CRUD Operations
1117
+ async list (params) {
1118
+ const queryParams = {};
1119
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1120
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1121
+ const response = await transport.get('/series', {
1122
+ params: queryParams
1123
+ });
1124
+ return decodePageResult(response, seriesMapper);
1125
+ },
1126
+ async query (params) {
1127
+ const queryParams = {};
1128
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1129
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1130
+ if (params == null ? void 0 : params.visibility) queryParams['visibility'] = params.visibility;
1131
+ if (params == null ? void 0 : params.completionStatus) queryParams['completion_status'] = params.completionStatus;
1132
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
1133
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
1134
+ const response = await transport.post('/series/query', queryParams);
1135
+ return decodePageResult(response, seriesMapper);
1136
+ },
1137
+ async get (uniqueId) {
1138
+ const response = await transport.get(`/series/${uniqueId}`);
1139
+ return decodeOne(response, seriesMapper);
1140
+ },
1141
+ async create (data) {
1142
+ const response = await transport.post('/series', {
1143
+ series: {
1144
+ title: data.title,
1145
+ description: data.description,
1146
+ slug: data.slug,
1147
+ thumbnail_url: data.thumbnailUrl,
1148
+ image_url: data.imageUrl,
1149
+ visibility: data.visibility,
1150
+ completion_status: data.completionStatus,
1151
+ payload: data.payload
1152
+ }
1153
+ });
1154
+ return decodeOne(response, seriesMapper);
1155
+ },
1156
+ async update (uniqueId, data) {
1157
+ const response = await transport.put(`/series/${uniqueId}`, {
1158
+ series: {
1159
+ title: data.title,
1160
+ description: data.description,
1161
+ slug: data.slug,
1162
+ thumbnail_url: data.thumbnailUrl,
1163
+ image_url: data.imageUrl,
1164
+ visibility: data.visibility,
1165
+ completion_status: data.completionStatus,
1166
+ enabled: data.enabled,
1167
+ status: data.status,
1168
+ payload: data.payload
1169
+ }
1170
+ });
1171
+ return decodeOne(response, seriesMapper);
1172
+ },
1173
+ async delete (uniqueId) {
1174
+ await transport.delete(`/series/${uniqueId}`);
1175
+ },
1176
+ // Social Actions
1177
+ async like (uniqueId) {
1178
+ const response = await transport.put(`/series/${uniqueId}/like`, {});
1179
+ return decodeOne(response, seriesMapper);
1180
+ },
1181
+ async dislike (uniqueId) {
1182
+ const response = await transport.put(`/series/${uniqueId}/dislike`, {});
1183
+ return decodeOne(response, seriesMapper);
1184
+ },
1185
+ async follow (uniqueId) {
1186
+ const response = await transport.put(`/series/${uniqueId}/follow`, {});
1187
+ return decodeOne(response, seriesMapper);
1188
+ },
1189
+ async unfollow (uniqueId) {
1190
+ await transport.delete(`/series/${uniqueId}/unfollow`);
1191
+ },
1192
+ async save (uniqueId) {
1193
+ const response = await transport.put(`/series/${uniqueId}/save`, {});
1194
+ return decodeOne(response, seriesMapper);
1195
+ },
1196
+ async unsave (uniqueId) {
1197
+ await transport.delete(`/series/${uniqueId}/unsave`);
1198
+ },
1199
+ // Post Management
1200
+ async getPosts (uniqueId) {
1201
+ const response = await transport.get(`/series/${uniqueId}/posts`);
1202
+ return decodeMany(response, postMapper);
1203
+ },
1204
+ async addPost (seriesUniqueId, postUniqueId, sequence) {
1205
+ const queryParams = {};
1206
+ if (sequence !== undefined) queryParams['sequence'] = String(sequence);
1207
+ await transport.post(`/series/${seriesUniqueId}/posts/${postUniqueId}`, {}, {
1208
+ params: queryParams
1209
+ });
1210
+ },
1211
+ async removePost (seriesUniqueId, postUniqueId) {
1212
+ await transport.delete(`/series/${seriesUniqueId}/posts/${postUniqueId}`);
1213
+ },
1214
+ async reorderPosts (uniqueId, data) {
1215
+ const response = await transport.put(`/series/${uniqueId}/reorder`, {
1216
+ posts: data.posts.map((p)=>({
1217
+ post_unique_id: p.postUniqueId,
1218
+ sequence: p.sequence
1219
+ }))
1220
+ });
1221
+ return decodeOne(response, seriesMapper);
1222
+ }
1223
+ };
1224
+ }
1225
+
1059
1226
  function createContentBlock(transport, config) {
1060
1227
  return {
1061
1228
  posts: createPostsService(transport),
@@ -1065,7 +1232,8 @@ function createContentBlock(transport, config) {
1065
1232
  tags: createTagsService(transport),
1066
1233
  users: createContentUsersService(transport),
1067
1234
  moderation: createModerationService(transport),
1068
- activity: createActivityService(transport)
1235
+ activity: createActivityService(transport),
1236
+ series: createSeriesService(transport)
1069
1237
  };
1070
1238
  }
1071
1239
  const contentBlockMetadata = {
@@ -1081,8 +1249,9 @@ const contentBlockMetadata = {
1081
1249
  'ContentUser',
1082
1250
  'Following',
1083
1251
  'ContentFlag',
1084
- 'Activity'
1252
+ 'Activity',
1253
+ 'Series'
1085
1254
  ]
1086
1255
  };
1087
1256
 
1088
- export { activityMapper, categoryMapper, commentMapper, contentBlockMetadata, contentFlagMapper, contentUserMapper, createActivityService, createCategoriesService, createCommentsService, createContentBlock, createContentUsersService, createModerationService, createPostVersionsService, createPostsService, createTagsService, followingMapper, postMapper, postVersionMapper, tagMapper };
1257
+ export { activityMapper, categoryMapper, commentMapper, contentBlockMetadata, contentFlagMapper, contentUserMapper, createActivityService, createCategoriesService, createCommentsService, createContentBlock, createContentUsersService, createModerationService, createPostVersionsService, createPostsService, createSeriesService, createTagsService, followingMapper, postMapper, postVersionMapper, seriesMapper, tagMapper };
@@ -1,5 +1,5 @@
1
1
  import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';
2
- import { type PostsService, type PostVersionsService, type CommentsService, type CategoriesService, type TagsService, type ContentUsersService, type ModerationService, type ActivityService } from './services';
2
+ import { type PostsService, type PostVersionsService, type CommentsService, type CategoriesService, type TagsService, type ContentUsersService, type ModerationService, type ActivityService, type SeriesService } from './services';
3
3
  export interface ContentBlockConfig extends BlockConfig {
4
4
  appId: string;
5
5
  tenantId?: string;
@@ -13,6 +13,7 @@ export interface ContentBlock {
13
13
  users: ContentUsersService;
14
14
  moderation: ModerationService;
15
15
  activity: ActivityService;
16
+ series: SeriesService;
16
17
  }
17
18
  export declare function createContentBlock(transport: Transport, config: ContentBlockConfig): ContentBlock;
18
19
  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,EASL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,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,YAAY,EAAE,mBAAmB,CAAC;IAClC,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,CAWd;AAED,eAAO,MAAM,oBAAoB,EAAE,aAelC,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,EAUL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,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,YAAY,EAAE,mBAAmB,CAAC;IAClC,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;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,GACzB,YAAY,CAYd;AAED,eAAO,MAAM,oBAAoB,EAAE,aAgBlC,CAAC"}
@@ -6,4 +6,5 @@ export * from './tag.mapper';
6
6
  export * from './user.mapper';
7
7
  export * from './moderation.mapper';
8
8
  export * from './activity.mapper';
9
+ export * from './series.mapper';
9
10
  //# 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,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"post.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/post.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,eAAO,MAAM,UAAU,EAAE,cAAc,CAAC,IAAI,CAuD3C,CAAC"}
1
+ {"version":3,"file":"post.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/post.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,eAAO,MAAM,UAAU,EAAE,cAAc,CAAC,IAAI,CA4D3C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { Series } from '../types/series';
3
+ export declare const seriesMapper: ResourceMapper<Series>;
4
+ //# sourceMappingURL=series.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"series.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/series.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAA4C,MAAM,iBAAiB,CAAC;AAmBxF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,MAAM,CAyC/C,CAAC"}
@@ -6,4 +6,5 @@ export * from './tags.service';
6
6
  export * from './users.service';
7
7
  export * from './moderation.service';
8
8
  export * from './activity.service';
9
+ export * from './series.service';
9
10
  //# 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,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Transport, PageResult } from '@23blocks/contracts';
2
+ import type { Series, CreateSeriesRequest, UpdateSeriesRequest, ListSeriesParams, QuerySeriesParams, ReorderPostsRequest } from '../types/series';
3
+ import type { Post } from '../types/post';
4
+ export interface SeriesService {
5
+ list(params?: ListSeriesParams): Promise<PageResult<Series>>;
6
+ query(params: QuerySeriesParams): Promise<PageResult<Series>>;
7
+ get(uniqueId: string): Promise<Series>;
8
+ create(data: CreateSeriesRequest): Promise<Series>;
9
+ update(uniqueId: string, data: UpdateSeriesRequest): Promise<Series>;
10
+ delete(uniqueId: string): Promise<void>;
11
+ like(uniqueId: string): Promise<Series>;
12
+ dislike(uniqueId: string): Promise<Series>;
13
+ follow(uniqueId: string): Promise<Series>;
14
+ unfollow(uniqueId: string): Promise<void>;
15
+ save(uniqueId: string): Promise<Series>;
16
+ unsave(uniqueId: string): Promise<void>;
17
+ getPosts(uniqueId: string): Promise<Post[]>;
18
+ addPost(seriesUniqueId: string, postUniqueId: string, sequence?: number): Promise<void>;
19
+ removePost(seriesUniqueId: string, postUniqueId: string): Promise<void>;
20
+ reorderPosts(uniqueId: string, data: ReorderPostsRequest): Promise<Series>;
21
+ }
22
+ export declare function createSeriesService(transport: Transport, _config: {
23
+ appId: string;
24
+ }): SeriesService;
25
+ //# sourceMappingURL=series.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"series.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/series.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,WAAW,aAAa;IAE5B,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGxC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5E;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CA4HnG"}
@@ -6,4 +6,5 @@ export * from './tag';
6
6
  export * from './user';
7
7
  export * from './moderation';
8
8
  export * from './activity';
9
+ export * from './series';
9
10
  //# 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,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -33,6 +33,9 @@ export interface Post extends IdentityCore {
33
33
  moderatedAt?: Date;
34
34
  moderationReason?: string;
35
35
  moderationDecision?: string;
36
+ seriesId?: number;
37
+ seriesUniqueId?: string;
38
+ seriesSequence?: number;
36
39
  }
37
40
  export interface CreatePostRequest {
38
41
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/post.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { IdentityCore, EntityStatus } from '@23blocks/contracts';
2
+ export type SeriesVisibility = 'public' | 'private' | 'unlisted';
3
+ export type SeriesCompletionStatus = 'ongoing' | 'completed' | 'hiatus' | 'cancelled';
4
+ export interface Series extends IdentityCore {
5
+ uniqueId: string;
6
+ title: string;
7
+ description?: string;
8
+ slug?: string;
9
+ thumbnailUrl?: string;
10
+ imageUrl?: string;
11
+ status: EntityStatus;
12
+ enabled: boolean;
13
+ visibility?: SeriesVisibility;
14
+ completionStatus?: SeriesCompletionStatus;
15
+ userUniqueId?: string;
16
+ userName?: string;
17
+ userAlias?: string;
18
+ userAvatarUrl?: string;
19
+ postsCount?: number;
20
+ likes?: number;
21
+ dislikes?: number;
22
+ followers?: number;
23
+ savers?: number;
24
+ aiGenerated?: boolean;
25
+ aiModel?: string;
26
+ moderated?: boolean;
27
+ payload?: Record<string, unknown>;
28
+ }
29
+ export interface CreateSeriesRequest {
30
+ title: string;
31
+ description?: string;
32
+ slug?: string;
33
+ thumbnailUrl?: string;
34
+ imageUrl?: string;
35
+ visibility?: SeriesVisibility;
36
+ completionStatus?: SeriesCompletionStatus;
37
+ payload?: Record<string, unknown>;
38
+ }
39
+ export interface UpdateSeriesRequest {
40
+ title?: string;
41
+ description?: string;
42
+ slug?: string;
43
+ thumbnailUrl?: string;
44
+ imageUrl?: string;
45
+ visibility?: SeriesVisibility;
46
+ completionStatus?: SeriesCompletionStatus;
47
+ enabled?: boolean;
48
+ status?: EntityStatus;
49
+ payload?: Record<string, unknown>;
50
+ }
51
+ export interface ListSeriesParams {
52
+ page?: number;
53
+ perPage?: number;
54
+ }
55
+ export interface QuerySeriesParams {
56
+ page?: number;
57
+ perPage?: number;
58
+ visibility?: SeriesVisibility;
59
+ completionStatus?: SeriesCompletionStatus;
60
+ search?: string;
61
+ userUniqueId?: string;
62
+ }
63
+ export interface ReorderPostsRequest {
64
+ posts: Array<{
65
+ postUniqueId: string;
66
+ sequence: number;
67
+ }>;
68
+ }
69
+ //# sourceMappingURL=series.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/series.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@23blocks/block-content",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",