@23blocks/block-content 1.0.4 → 2.0.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.
Files changed (76) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.esm.js +577 -0
  3. package/dist/src/index.d.ts +7 -0
  4. package/dist/src/index.d.ts.map +1 -0
  5. package/dist/src/lib/block-content.d.ts +2 -0
  6. package/dist/src/lib/block-content.d.ts.map +1 -0
  7. package/dist/src/lib/content.block.d.ts +15 -0
  8. package/dist/src/lib/content.block.d.ts.map +1 -0
  9. package/dist/src/lib/mappers/category.mapper.d.ts +4 -0
  10. package/dist/src/lib/mappers/category.mapper.d.ts.map +1 -0
  11. package/dist/src/lib/mappers/comment.mapper.d.ts +4 -0
  12. package/dist/src/lib/mappers/comment.mapper.d.ts.map +1 -0
  13. package/dist/{lib/mappers/index.js → src/lib/mappers/index.d.ts} +1 -2
  14. package/dist/src/lib/mappers/index.d.ts.map +1 -0
  15. package/dist/src/lib/mappers/post.mapper.d.ts +4 -0
  16. package/dist/src/lib/mappers/post.mapper.d.ts.map +1 -0
  17. package/dist/src/lib/mappers/tag.mapper.d.ts +4 -0
  18. package/dist/src/lib/mappers/tag.mapper.d.ts.map +1 -0
  19. package/dist/src/lib/mappers/utils.d.ts +29 -0
  20. package/dist/src/lib/mappers/utils.d.ts.map +1 -0
  21. package/dist/src/lib/services/categories.service.d.ts +15 -0
  22. package/dist/src/lib/services/categories.service.d.ts.map +1 -0
  23. package/dist/src/lib/services/comments.service.d.ts +15 -0
  24. package/dist/src/lib/services/comments.service.d.ts.map +1 -0
  25. package/dist/{lib/services/index.js → src/lib/services/index.d.ts} +1 -2
  26. package/dist/src/lib/services/index.d.ts.map +1 -0
  27. package/dist/src/lib/services/posts.service.d.ts +20 -0
  28. package/dist/src/lib/services/posts.service.d.ts.map +1 -0
  29. package/dist/src/lib/services/tags.service.d.ts +13 -0
  30. package/dist/src/lib/services/tags.service.d.ts.map +1 -0
  31. package/dist/src/lib/types/category.d.ts +51 -0
  32. package/dist/src/lib/types/category.d.ts.map +1 -0
  33. package/dist/src/lib/types/comment.d.ts +59 -0
  34. package/dist/src/lib/types/comment.d.ts.map +1 -0
  35. package/dist/{lib/types/index.js → src/lib/types/index.d.ts} +1 -2
  36. package/dist/src/lib/types/index.d.ts.map +1 -0
  37. package/dist/src/lib/types/post.d.ts +84 -0
  38. package/dist/src/lib/types/post.d.ts.map +1 -0
  39. package/dist/src/lib/types/tag.d.ts +37 -0
  40. package/dist/src/lib/types/tag.d.ts.map +1 -0
  41. package/package.json +10 -8
  42. package/dist/index.js +0 -7
  43. package/dist/index.js.map +0 -1
  44. package/dist/lib/block-content.js +0 -5
  45. package/dist/lib/block-content.js.map +0 -1
  46. package/dist/lib/content.block.js +0 -22
  47. package/dist/lib/content.block.js.map +0 -1
  48. package/dist/lib/mappers/category.mapper.js +0 -38
  49. package/dist/lib/mappers/category.mapper.js.map +0 -1
  50. package/dist/lib/mappers/comment.mapper.js +0 -43
  51. package/dist/lib/mappers/comment.mapper.js.map +0 -1
  52. package/dist/lib/mappers/index.js.map +0 -1
  53. package/dist/lib/mappers/post.mapper.js +0 -51
  54. package/dist/lib/mappers/post.mapper.js.map +0 -1
  55. package/dist/lib/mappers/tag.mapper.js +0 -21
  56. package/dist/lib/mappers/tag.mapper.js.map +0 -1
  57. package/dist/lib/mappers/utils.js +0 -75
  58. package/dist/lib/mappers/utils.js.map +0 -1
  59. package/dist/lib/services/categories.service.js +0 -69
  60. package/dist/lib/services/categories.service.js.map +0 -1
  61. package/dist/lib/services/comments.service.js +0 -73
  62. package/dist/lib/services/comments.service.js.map +0 -1
  63. package/dist/lib/services/index.js.map +0 -1
  64. package/dist/lib/services/posts.service.js +0 -127
  65. package/dist/lib/services/posts.service.js.map +0 -1
  66. package/dist/lib/services/tags.service.js +0 -59
  67. package/dist/lib/services/tags.service.js.map +0 -1
  68. package/dist/lib/types/category.js +0 -3
  69. package/dist/lib/types/category.js.map +0 -1
  70. package/dist/lib/types/comment.js +0 -3
  71. package/dist/lib/types/comment.js.map +0 -1
  72. package/dist/lib/types/index.js.map +0 -1
  73. package/dist/lib/types/post.js +0 -3
  74. package/dist/lib/types/post.js.map +0 -1
  75. package/dist/lib/types/tag.js +0 -3
  76. package/dist/lib/types/tag.js.map +0 -1
@@ -1,51 +0,0 @@
1
- import { parseString, parseDate, parseBoolean, parseOptionalNumber, parseStatus } from './utils';
2
- export const postMapper = {
3
- type: 'Post',
4
- map: (resource)=>({
5
- id: resource.id,
6
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
- createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
- updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
- postVersionUniqueId: parseString(resource.attributes['post_version_unique_id']),
10
- title: parseString(resource.attributes['title']) || '',
11
- abstract: parseString(resource.attributes['abstract']),
12
- keywords: parseString(resource.attributes['keywords']),
13
- content: parseString(resource.attributes['content']),
14
- thumbnailUrl: parseString(resource.attributes['thumbnail_url']),
15
- imageUrl: parseString(resource.attributes['image_url']),
16
- mediaUrl: parseString(resource.attributes['media_url']),
17
- payload: resource.attributes['payload'],
18
- status: parseStatus(resource.attributes['status']),
19
- enabled: parseBoolean(resource.attributes['enabled']),
20
- publishAt: parseDate(resource.attributes['publish_at']),
21
- publishUntil: parseDate(resource.attributes['publish_until']),
22
- // User
23
- userUniqueId: parseString(resource.attributes['user_unique_id']),
24
- userName: parseString(resource.attributes['user_name']),
25
- userAlias: parseString(resource.attributes['user_alias']),
26
- userAvatarUrl: parseString(resource.attributes['user_avatar_url']),
27
- // Visibility
28
- isPublic: parseBoolean(resource.attributes['is_public']),
29
- // Versioning
30
- version: parseOptionalNumber(resource.attributes['version']),
31
- // Engagement
32
- likes: parseOptionalNumber(resource.attributes['likes']),
33
- dislikes: parseOptionalNumber(resource.attributes['dislikes']),
34
- comments: parseOptionalNumber(resource.attributes['comments']),
35
- followers: parseOptionalNumber(resource.attributes['followers']),
36
- savers: parseOptionalNumber(resource.attributes['savers']),
37
- // SEO
38
- slug: parseString(resource.attributes['slug']),
39
- // AI
40
- aiGenerated: parseBoolean(resource.attributes['ai_generated']),
41
- aiModel: parseString(resource.attributes['ai_model']),
42
- // Moderation
43
- moderated: parseBoolean(resource.attributes['moderated']),
44
- moderatedBy: parseString(resource.attributes['moderated_by']),
45
- moderatedAt: parseDate(resource.attributes['moderated_at']),
46
- moderationReason: parseString(resource.attributes['moderation_reason']),
47
- moderationDecision: parseString(resource.attributes['moderation_decision'])
48
- })
49
- };
50
-
51
- //# sourceMappingURL=post.mapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/mappers/post.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Post } from '../types/post';\nimport { parseString, parseDate, parseBoolean, parseOptionalNumber, parseStatus } from './utils';\n\nexport const postMapper: ResourceMapper<Post> = {\n type: 'Post',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n postVersionUniqueId: parseString(resource.attributes['post_version_unique_id']),\n title: parseString(resource.attributes['title']) || '',\n abstract: parseString(resource.attributes['abstract']),\n keywords: parseString(resource.attributes['keywords']),\n content: parseString(resource.attributes['content']),\n thumbnailUrl: parseString(resource.attributes['thumbnail_url']),\n imageUrl: parseString(resource.attributes['image_url']),\n mediaUrl: parseString(resource.attributes['media_url']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n publishAt: parseDate(resource.attributes['publish_at']),\n publishUntil: parseDate(resource.attributes['publish_until']),\n\n // User\n userUniqueId: parseString(resource.attributes['user_unique_id']),\n userName: parseString(resource.attributes['user_name']),\n userAlias: parseString(resource.attributes['user_alias']),\n userAvatarUrl: parseString(resource.attributes['user_avatar_url']),\n\n // Visibility\n isPublic: parseBoolean(resource.attributes['is_public']),\n\n // Versioning\n version: parseOptionalNumber(resource.attributes['version']),\n\n // Engagement\n likes: parseOptionalNumber(resource.attributes['likes']),\n dislikes: parseOptionalNumber(resource.attributes['dislikes']),\n comments: parseOptionalNumber(resource.attributes['comments']),\n followers: parseOptionalNumber(resource.attributes['followers']),\n savers: parseOptionalNumber(resource.attributes['savers']),\n\n // SEO\n slug: parseString(resource.attributes['slug']),\n\n // AI\n aiGenerated: parseBoolean(resource.attributes['ai_generated']),\n aiModel: parseString(resource.attributes['ai_model']),\n\n // Moderation\n moderated: parseBoolean(resource.attributes['moderated']),\n moderatedBy: parseString(resource.attributes['moderated_by']),\n moderatedAt: parseDate(resource.attributes['moderated_at']),\n moderationReason: parseString(resource.attributes['moderation_reason']),\n moderationDecision: parseString(resource.attributes['moderation_decision']),\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseOptionalNumber","parseStatus","postMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","postVersionUniqueId","title","abstract","keywords","content","thumbnailUrl","imageUrl","mediaUrl","payload","status","enabled","publishAt","publishUntil","userUniqueId","userName","userAlias","userAvatarUrl","isPublic","version","likes","dislikes","comments","followers","savers","slug","aiGenerated","aiModel","moderated","moderatedBy","moderatedAt","moderationReason","moderationDecision"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,mBAAmB,EAAEC,WAAW,QAAQ,UAAU;AAEjG,OAAO,MAAMC,aAAmC;IAC9CC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUV,YAAYQ,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWX,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWb,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,qBAAqBf,YAAYQ,SAASG,UAAU,CAAC,yBAAyB;YAC9EK,OAAOhB,YAAYQ,SAASG,UAAU,CAAC,QAAQ,KAAK;YACpDM,UAAUjB,YAAYQ,SAASG,UAAU,CAAC,WAAW;YACrDO,UAAUlB,YAAYQ,SAASG,UAAU,CAAC,WAAW;YACrDQ,SAASnB,YAAYQ,SAASG,UAAU,CAAC,UAAU;YACnDS,cAAcpB,YAAYQ,SAASG,UAAU,CAAC,gBAAgB;YAC9DU,UAAUrB,YAAYQ,SAASG,UAAU,CAAC,YAAY;YACtDW,UAAUtB,YAAYQ,SAASG,UAAU,CAAC,YAAY;YACtDY,SAASf,SAASG,UAAU,CAAC,UAAU;YACvCa,QAAQpB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDc,SAASvB,aAAaM,SAASG,UAAU,CAAC,UAAU;YACpDe,WAAWzB,UAAUO,SAASG,UAAU,CAAC,aAAa;YACtDgB,cAAc1B,UAAUO,SAASG,UAAU,CAAC,gBAAgB;YAE5D,OAAO;YACPiB,cAAc5B,YAAYQ,SAASG,UAAU,CAAC,iBAAiB;YAC/DkB,UAAU7B,YAAYQ,SAASG,UAAU,CAAC,YAAY;YACtDmB,WAAW9B,YAAYQ,SAASG,UAAU,CAAC,aAAa;YACxDoB,eAAe/B,YAAYQ,SAASG,UAAU,CAAC,kBAAkB;YAEjE,aAAa;YACbqB,UAAU9B,aAAaM,SAASG,UAAU,CAAC,YAAY;YAEvD,aAAa;YACbsB,SAAS9B,oBAAoBK,SAASG,UAAU,CAAC,UAAU;YAE3D,aAAa;YACbuB,OAAO/B,oBAAoBK,SAASG,UAAU,CAAC,QAAQ;YACvDwB,UAAUhC,oBAAoBK,SAASG,UAAU,CAAC,WAAW;YAC7DyB,UAAUjC,oBAAoBK,SAASG,UAAU,CAAC,WAAW;YAC7D0B,WAAWlC,oBAAoBK,SAASG,UAAU,CAAC,YAAY;YAC/D2B,QAAQnC,oBAAoBK,SAASG,UAAU,CAAC,SAAS;YAEzD,MAAM;YACN4B,MAAMvC,YAAYQ,SAASG,UAAU,CAAC,OAAO;YAE7C,KAAK;YACL6B,aAAatC,aAAaM,SAASG,UAAU,CAAC,eAAe;YAC7D8B,SAASzC,YAAYQ,SAASG,UAAU,CAAC,WAAW;YAEpD,aAAa;YACb+B,WAAWxC,aAAaM,SAASG,UAAU,CAAC,YAAY;YACxDgC,aAAa3C,YAAYQ,SAASG,UAAU,CAAC,eAAe;YAC5DiC,aAAa3C,UAAUO,SAASG,UAAU,CAAC,eAAe;YAC1DkC,kBAAkB7C,YAAYQ,SAASG,UAAU,CAAC,oBAAoB;YACtEmC,oBAAoB9C,YAAYQ,SAASG,UAAU,CAAC,sBAAsB;QAC5E,CAAA;AACF,EAAE"}
@@ -1,21 +0,0 @@
1
- import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
2
- export const tagMapper = {
3
- type: 'Tag',
4
- map: (resource)=>({
5
- id: resource.id,
6
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
- createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
- updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
- tag: parseString(resource.attributes['tag']) || '',
10
- thumbnailUrl: parseString(resource.attributes['thumbnail_url']),
11
- imageUrl: parseString(resource.attributes['image_url']),
12
- contentUrl: parseString(resource.attributes['content_url']),
13
- mediaUrl: parseString(resource.attributes['media_url']),
14
- payload: resource.attributes['payload'],
15
- status: parseStatus(resource.attributes['status']),
16
- enabled: parseBoolean(resource.attributes['enabled']),
17
- slug: parseString(resource.attributes['slug'])
18
- })
19
- };
20
-
21
- //# sourceMappingURL=tag.mapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/mappers/tag.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Tag } from '../types/tag';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const tagMapper: ResourceMapper<Tag> = {\n type: 'Tag',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n tag: parseString(resource.attributes['tag']) || '',\n thumbnailUrl: parseString(resource.attributes['thumbnail_url']),\n imageUrl: parseString(resource.attributes['image_url']),\n contentUrl: parseString(resource.attributes['content_url']),\n mediaUrl: parseString(resource.attributes['media_url']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n slug: parseString(resource.attributes['slug']),\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","tagMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","tag","thumbnailUrl","imageUrl","contentUrl","mediaUrl","payload","status","enabled","slug"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,YAAiC;IAC5CC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,KAAKd,YAAYO,SAASG,UAAU,CAAC,MAAM,KAAK;YAChDK,cAAcf,YAAYO,SAASG,UAAU,CAAC,gBAAgB;YAC9DM,UAAUhB,YAAYO,SAASG,UAAU,CAAC,YAAY;YACtDO,YAAYjB,YAAYO,SAASG,UAAU,CAAC,cAAc;YAC1DQ,UAAUlB,YAAYO,SAASG,UAAU,CAAC,YAAY;YACtDS,SAASZ,SAASG,UAAU,CAAC,UAAU;YACvCU,QAAQjB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDW,SAASnB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDY,MAAMtB,YAAYO,SAASG,UAAU,CAAC,OAAO;QAC/C,CAAA;AACF,EAAE"}
@@ -1,75 +0,0 @@
1
- /**
2
- * Parse a string value, returning undefined for empty/undefined
3
- */ export function parseString(value) {
4
- if (value === null || value === undefined) {
5
- return undefined;
6
- }
7
- const str = String(value);
8
- return str.length > 0 ? str : undefined;
9
- }
10
- /**
11
- * Parse a date value
12
- */ export function parseDate(value) {
13
- if (value === null || value === undefined) {
14
- return undefined;
15
- }
16
- if (value instanceof Date) {
17
- return value;
18
- }
19
- if (typeof value === 'string' || typeof value === 'number') {
20
- const date = new Date(value);
21
- return isNaN(date.getTime()) ? undefined : date;
22
- }
23
- return undefined;
24
- }
25
- /**
26
- * Parse a boolean value
27
- */ export function parseBoolean(value) {
28
- if (typeof value === 'boolean') {
29
- return value;
30
- }
31
- if (value === 'true' || value === '1' || value === 1) {
32
- return true;
33
- }
34
- return false;
35
- }
36
- /**
37
- * Parse an array of strings
38
- */ export function parseStringArray(value) {
39
- if (value === null || value === undefined) {
40
- return undefined;
41
- }
42
- if (Array.isArray(value)) {
43
- return value.map(String);
44
- }
45
- return undefined;
46
- }
47
- /**
48
- * Parse a number value
49
- */ export function parseNumber(value) {
50
- if (value === null || value === undefined) {
51
- return 0;
52
- }
53
- const num = Number(value);
54
- return isNaN(num) ? 0 : num;
55
- }
56
- /**
57
- * Parse an optional number value
58
- */ export function parseOptionalNumber(value) {
59
- if (value === null || value === undefined) {
60
- return undefined;
61
- }
62
- const num = Number(value);
63
- return isNaN(num) ? undefined : num;
64
- }
65
- /**
66
- * Parse entity status
67
- */ export function parseStatus(value) {
68
- const status = parseString(value);
69
- if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {
70
- return status;
71
- }
72
- return 'active';
73
- }
74
-
75
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/mappers/utils.ts"],"sourcesContent":["/**\n * Parse a string value, returning undefined for empty/undefined\n */\nexport function parseString(value: unknown): string | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const str = String(value);\n return str.length > 0 ? str : undefined;\n}\n\n/**\n * Parse a date value\n */\nexport function parseDate(value: unknown): Date | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return isNaN(date.getTime()) ? undefined : date;\n }\n\n return undefined;\n}\n\n/**\n * Parse a boolean value\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (value === 'true' || value === '1' || value === 1) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse an array of strings\n */\nexport function parseStringArray(value: unknown): string[] | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.map(String);\n }\n return undefined;\n}\n\n/**\n * Parse a number value\n */\nexport function parseNumber(value: unknown): number {\n if (value === null || value === undefined) {\n return 0;\n }\n const num = Number(value);\n return isNaN(num) ? 0 : num;\n}\n\n/**\n * Parse an optional number value\n */\nexport function parseOptionalNumber(value: unknown): number | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const num = Number(value);\n return isNaN(num) ? undefined : num;\n}\n\n/**\n * Parse entity status\n */\nexport function parseStatus(value: unknown): 'active' | 'inactive' | 'pending' | 'archived' | 'deleted' {\n const status = parseString(value);\n if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {\n return status;\n }\n return 'active';\n}\n"],"names":["parseString","value","undefined","str","String","length","parseDate","Date","date","isNaN","getTime","parseBoolean","parseStringArray","Array","isArray","map","parseNumber","num","Number","parseOptionalNumber","parseStatus","status"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,YAAYC,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMC,MAAMC,OAAOH;IACnB,OAAOE,IAAIE,MAAM,GAAG,IAAIF,MAAMD;AAChC;AAEA;;CAEC,GACD,OAAO,SAASI,UAAUL,KAAc;IACtC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IAEA,IAAID,iBAAiBM,MAAM;QACzB,OAAON;IACT;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,MAAMO,OAAO,IAAID,KAAKN;QACtB,OAAOQ,MAAMD,KAAKE,OAAO,MAAMR,YAAYM;IAC7C;IAEA,OAAON;AACT;AAEA;;CAEC,GACD,OAAO,SAASS,aAAaV,KAAc;IACzC,IAAI,OAAOA,UAAU,WAAW;QAC9B,OAAOA;IACT;IACA,IAAIA,UAAU,UAAUA,UAAU,OAAOA,UAAU,GAAG;QACpD,OAAO;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASW,iBAAiBX,KAAc;IAC7C,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,IAAIW,MAAMC,OAAO,CAACb,QAAQ;QACxB,OAAOA,MAAMc,GAAG,CAACX;IACnB;IACA,OAAOF;AACT;AAEA;;CAEC,GACD,OAAO,SAASc,YAAYf,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAO,IAAIA;AAC1B;AAEA;;CAEC,GACD,OAAO,SAASE,oBAAoBlB,KAAc;IAChD,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAOf,YAAYe;AAClC;AAEA;;CAEC,GACD,OAAO,SAASG,YAAYnB,KAAc;IACxC,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,YAAYA,WAAW,cAAcA,WAAW,aAAaA,WAAW,cAAcA,WAAW,WAAW;QACzH,OAAOA;IACT;IACA,OAAO;AACT"}
@@ -1,69 +0,0 @@
1
- import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
2
- import { categoryMapper } from '../mappers/category.mapper';
3
- export function createCategoriesService(transport, _config) {
4
- return {
5
- async list (params) {
6
- const queryParams = {};
7
- if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
- if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
- if (params == null ? void 0 : params.parentUniqueId) queryParams['parent_unique_id'] = params.parentUniqueId;
10
- if (params == null ? void 0 : params.withChildren) queryParams['with'] = 'children';
11
- if (params == null ? void 0 : params.withPosts) queryParams['with'] = params.withChildren ? 'children,posts' : 'posts';
12
- const response = await transport.get('/content/categories', {
13
- params: queryParams
14
- });
15
- return decodePageResult(response, categoryMapper);
16
- },
17
- async get (uniqueId) {
18
- const response = await transport.get(`/content/categories/${uniqueId}`);
19
- return decodeOne(response, categoryMapper);
20
- },
21
- async create (data) {
22
- const response = await transport.post('/content/categories', {
23
- data: {
24
- type: 'Category',
25
- attributes: {
26
- name: data.name,
27
- description: data.description,
28
- parent_unique_id: data.parentUniqueId,
29
- display_order: data.displayOrder,
30
- image_url: data.imageUrl,
31
- icon_url: data.iconUrl
32
- }
33
- }
34
- });
35
- return decodeOne(response, categoryMapper);
36
- },
37
- async update (uniqueId, data) {
38
- const response = await transport.put(`/content/categories/${uniqueId}`, {
39
- data: {
40
- type: 'Category',
41
- attributes: {
42
- name: data.name,
43
- description: data.description,
44
- parent_unique_id: data.parentUniqueId,
45
- display_order: data.displayOrder,
46
- image_url: data.imageUrl,
47
- icon_url: data.iconUrl,
48
- enabled: data.enabled,
49
- status: data.status
50
- }
51
- }
52
- });
53
- return decodeOne(response, categoryMapper);
54
- },
55
- async delete (uniqueId) {
56
- await transport.delete(`/content/categories/${uniqueId}`);
57
- },
58
- async recover (uniqueId) {
59
- const response = await transport.put(`/content/categories/${uniqueId}/recover`, {});
60
- return decodeOne(response, categoryMapper);
61
- },
62
- async getChildren (uniqueId) {
63
- const response = await transport.get(`/content/categories/${uniqueId}/children`);
64
- return decodeMany(response, categoryMapper);
65
- }
66
- };
67
- }
68
-
69
- //# sourceMappingURL=categories.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/services/categories.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Category,\n CreateCategoryRequest,\n UpdateCategoryRequest,\n ListCategoriesParams,\n} from '../types/category';\nimport { categoryMapper } from '../mappers/category.mapper';\n\nexport interface CategoriesService {\n list(params?: ListCategoriesParams): Promise<PageResult<Category>>;\n get(uniqueId: string): Promise<Category>;\n create(data: CreateCategoryRequest): Promise<Category>;\n update(uniqueId: string, data: UpdateCategoryRequest): Promise<Category>;\n delete(uniqueId: string): Promise<void>;\n recover(uniqueId: string): Promise<Category>;\n getChildren(uniqueId: string): Promise<Category[]>;\n}\n\nexport function createCategoriesService(transport: Transport, _config: { appId: string }): CategoriesService {\n return {\n async list(params?: ListCategoriesParams): Promise<PageResult<Category>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.parentUniqueId) queryParams['parent_unique_id'] = params.parentUniqueId;\n if (params?.withChildren) queryParams['with'] = 'children';\n if (params?.withPosts) queryParams['with'] = params.withChildren ? 'children,posts' : 'posts';\n\n const response = await transport.get<unknown>('/content/categories', { params: queryParams });\n return decodePageResult(response, categoryMapper);\n },\n\n async get(uniqueId: string): Promise<Category> {\n const response = await transport.get<unknown>(`/content/categories/${uniqueId}`);\n return decodeOne(response, categoryMapper);\n },\n\n async create(data: CreateCategoryRequest): Promise<Category> {\n const response = await transport.post<unknown>('/content/categories', {\n data: {\n type: 'Category',\n attributes: {\n name: data.name,\n description: data.description,\n parent_unique_id: data.parentUniqueId,\n display_order: data.displayOrder,\n image_url: data.imageUrl,\n icon_url: data.iconUrl,\n },\n },\n });\n return decodeOne(response, categoryMapper);\n },\n\n async update(uniqueId: string, data: UpdateCategoryRequest): Promise<Category> {\n const response = await transport.put<unknown>(`/content/categories/${uniqueId}`, {\n data: {\n type: 'Category',\n attributes: {\n name: data.name,\n description: data.description,\n parent_unique_id: data.parentUniqueId,\n display_order: data.displayOrder,\n image_url: data.imageUrl,\n icon_url: data.iconUrl,\n enabled: data.enabled,\n status: data.status,\n },\n },\n });\n return decodeOne(response, categoryMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/content/categories/${uniqueId}`);\n },\n\n async recover(uniqueId: string): Promise<Category> {\n const response = await transport.put<unknown>(`/content/categories/${uniqueId}/recover`, {});\n return decodeOne(response, categoryMapper);\n },\n\n async getChildren(uniqueId: string): Promise<Category[]> {\n const response = await transport.get<unknown>(`/content/categories/${uniqueId}/children`);\n return decodeMany(response, categoryMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","categoryMapper","createCategoriesService","transport","_config","list","params","queryParams","page","String","perPage","parentUniqueId","withChildren","withPosts","response","get","uniqueId","create","data","post","type","attributes","name","description","parent_unique_id","display_order","displayOrder","image_url","imageUrl","icon_url","iconUrl","update","put","enabled","status","delete","recover","getChildren"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOlF,SAASC,cAAc,QAAQ,6BAA6B;AAY5D,OAAO,SAASC,wBAAwBC,SAAoB,EAAEC,OAA0B;IACtF,OAAO;QACL,MAAMC,MAAKC,MAA6B;YACtC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,cAAc,EAAEJ,WAAW,CAAC,mBAAmB,GAAGD,OAAOK,cAAc;YACnF,IAAIL,0BAAAA,OAAQM,YAAY,EAAEL,WAAW,CAAC,OAAO,GAAG;YAChD,IAAID,0BAAAA,OAAQO,SAAS,EAAEN,WAAW,CAAC,OAAO,GAAGD,OAAOM,YAAY,GAAG,mBAAmB;YAEtF,MAAME,WAAW,MAAMX,UAAUY,GAAG,CAAU,uBAAuB;gBAAET,QAAQC;YAAY;YAC3F,OAAOP,iBAAiBc,UAAUb;QACpC;QAEA,MAAMc,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMX,UAAUY,GAAG,CAAU,CAAC,oBAAoB,EAAEC,SAAS,CAAC;YAC/E,OAAOlB,UAAUgB,UAAUb;QAC7B;QAEA,MAAMgB,QAAOC,IAA2B;YACtC,MAAMJ,WAAW,MAAMX,UAAUgB,IAAI,CAAU,uBAAuB;gBACpED,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,MAAMJ,KAAKI,IAAI;wBACfC,aAAaL,KAAKK,WAAW;wBAC7BC,kBAAkBN,KAAKP,cAAc;wBACrCc,eAAeP,KAAKQ,YAAY;wBAChCC,WAAWT,KAAKU,QAAQ;wBACxBC,UAAUX,KAAKY,OAAO;oBACxB;gBACF;YACF;YACA,OAAOhC,UAAUgB,UAAUb;QAC7B;QAEA,MAAM8B,QAAOf,QAAgB,EAAEE,IAA2B;YACxD,MAAMJ,WAAW,MAAMX,UAAU6B,GAAG,CAAU,CAAC,oBAAoB,EAAEhB,SAAS,CAAC,EAAE;gBAC/EE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,MAAMJ,KAAKI,IAAI;wBACfC,aAAaL,KAAKK,WAAW;wBAC7BC,kBAAkBN,KAAKP,cAAc;wBACrCc,eAAeP,KAAKQ,YAAY;wBAChCC,WAAWT,KAAKU,QAAQ;wBACxBC,UAAUX,KAAKY,OAAO;wBACtBG,SAASf,KAAKe,OAAO;wBACrBC,QAAQhB,KAAKgB,MAAM;oBACrB;gBACF;YACF;YACA,OAAOpC,UAAUgB,UAAUb;QAC7B;QAEA,MAAMkC,QAAOnB,QAAgB;YAC3B,MAAMb,UAAUgC,MAAM,CAAC,CAAC,oBAAoB,EAAEnB,SAAS,CAAC;QAC1D;QAEA,MAAMoB,SAAQpB,QAAgB;YAC5B,MAAMF,WAAW,MAAMX,UAAU6B,GAAG,CAAU,CAAC,oBAAoB,EAAEhB,SAAS,QAAQ,CAAC,EAAE,CAAC;YAC1F,OAAOlB,UAAUgB,UAAUb;QAC7B;QAEA,MAAMoC,aAAYrB,QAAgB;YAChC,MAAMF,WAAW,MAAMX,UAAUY,GAAG,CAAU,CAAC,oBAAoB,EAAEC,SAAS,SAAS,CAAC;YACxF,OAAOjB,WAAWe,UAAUb;QAC9B;IACF;AACF"}
@@ -1,73 +0,0 @@
1
- import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
- import { commentMapper } from '../mappers/comment.mapper';
3
- export function createCommentsService(transport, _config) {
4
- return {
5
- async list (params) {
6
- const queryParams = {};
7
- if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
- if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
- if (params == null ? void 0 : params.postUniqueId) queryParams['post_unique_id'] = params.postUniqueId;
10
- if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
11
- if (params == null ? void 0 : params.parentId) queryParams['parent_id'] = params.parentId;
12
- if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
13
- const response = await transport.get('/comments', {
14
- params: queryParams
15
- });
16
- return decodePageResult(response, commentMapper);
17
- },
18
- async get (uniqueId) {
19
- const response = await transport.get(`/comments/${uniqueId}`);
20
- return decodeOne(response, commentMapper);
21
- },
22
- async create (data) {
23
- const response = await transport.post('/comments', {
24
- data: {
25
- type: 'Comment',
26
- attributes: {
27
- post_unique_id: data.postUniqueId,
28
- content: data.content,
29
- thumbnail_url: data.thumbnailUrl,
30
- image_url: data.imageUrl,
31
- content_url: data.contentUrl,
32
- media_url: data.mediaUrl,
33
- parent_id: data.parentId,
34
- payload: data.payload
35
- }
36
- }
37
- });
38
- return decodeOne(response, commentMapper);
39
- },
40
- async update (uniqueId, data) {
41
- const response = await transport.put(`/comments/${uniqueId}`, {
42
- data: {
43
- type: 'Comment',
44
- attributes: {
45
- content: data.content,
46
- thumbnail_url: data.thumbnailUrl,
47
- image_url: data.imageUrl,
48
- content_url: data.contentUrl,
49
- media_url: data.mediaUrl,
50
- enabled: data.enabled,
51
- status: data.status,
52
- payload: data.payload
53
- }
54
- }
55
- });
56
- return decodeOne(response, commentMapper);
57
- },
58
- async delete (uniqueId) {
59
- await transport.delete(`/comments/${uniqueId}`);
60
- },
61
- // Engagement
62
- async like (uniqueId) {
63
- const response = await transport.post(`/comments/${uniqueId}/like`, {});
64
- return decodeOne(response, commentMapper);
65
- },
66
- async dislike (uniqueId) {
67
- const response = await transport.post(`/comments/${uniqueId}/dislike`, {});
68
- return decodeOne(response, commentMapper);
69
- }
70
- };
71
- }
72
-
73
- //# sourceMappingURL=comments.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/services/comments.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Comment,\n CreateCommentRequest,\n UpdateCommentRequest,\n ListCommentsParams,\n} from '../types/comment';\nimport { commentMapper } from '../mappers/comment.mapper';\n\nexport interface CommentsService {\n list(params?: ListCommentsParams): Promise<PageResult<Comment>>;\n get(uniqueId: string): Promise<Comment>;\n create(data: CreateCommentRequest): Promise<Comment>;\n update(uniqueId: string, data: UpdateCommentRequest): Promise<Comment>;\n delete(uniqueId: string): Promise<void>;\n\n // Engagement\n like(uniqueId: string): Promise<Comment>;\n dislike(uniqueId: string): Promise<Comment>;\n}\n\nexport function createCommentsService(transport: Transport, _config: { appId: string }): CommentsService {\n return {\n async list(params?: ListCommentsParams): Promise<PageResult<Comment>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.postUniqueId) queryParams['post_unique_id'] = params.postUniqueId;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.parentId) queryParams['parent_id'] = params.parentId;\n if (params?.status) queryParams['status'] = params.status;\n\n const response = await transport.get<unknown>('/comments', { params: queryParams });\n return decodePageResult(response, commentMapper);\n },\n\n async get(uniqueId: string): Promise<Comment> {\n const response = await transport.get<unknown>(`/comments/${uniqueId}`);\n return decodeOne(response, commentMapper);\n },\n\n async create(data: CreateCommentRequest): Promise<Comment> {\n const response = await transport.post<unknown>('/comments', {\n data: {\n type: 'Comment',\n attributes: {\n post_unique_id: data.postUniqueId,\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n parent_id: data.parentId,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, commentMapper);\n },\n\n async update(uniqueId: string, data: UpdateCommentRequest): Promise<Comment> {\n const response = await transport.put<unknown>(`/comments/${uniqueId}`, {\n data: {\n type: 'Comment',\n attributes: {\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, commentMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/comments/${uniqueId}`);\n },\n\n // Engagement\n async like(uniqueId: string): Promise<Comment> {\n const response = await transport.post<unknown>(`/comments/${uniqueId}/like`, {});\n return decodeOne(response, commentMapper);\n },\n\n async dislike(uniqueId: string): Promise<Comment> {\n const response = await transport.post<unknown>(`/comments/${uniqueId}/dislike`, {});\n return decodeOne(response, commentMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","commentMapper","createCommentsService","transport","_config","list","params","queryParams","page","String","perPage","postUniqueId","userUniqueId","parentId","status","response","get","uniqueId","create","data","post","type","attributes","post_unique_id","content","thumbnail_url","thumbnailUrl","image_url","imageUrl","content_url","contentUrl","media_url","mediaUrl","parent_id","payload","update","put","enabled","delete","like","dislike"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,aAAa,QAAQ,4BAA4B;AAc1D,OAAO,SAASC,sBAAsBC,SAAoB,EAAEC,OAA0B;IACpF,OAAO;QACL,MAAMC,MAAKC,MAA2B;YACpC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,YAAY,EAAEJ,WAAW,CAAC,iBAAiB,GAAGD,OAAOK,YAAY;YAC7E,IAAIL,0BAAAA,OAAQM,YAAY,EAAEL,WAAW,CAAC,iBAAiB,GAAGD,OAAOM,YAAY;YAC7E,IAAIN,0BAAAA,OAAQO,QAAQ,EAAEN,WAAW,CAAC,YAAY,GAAGD,OAAOO,QAAQ;YAChE,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,SAAS,GAAGD,OAAOQ,MAAM;YAEzD,MAAMC,WAAW,MAAMZ,UAAUa,GAAG,CAAU,aAAa;gBAAEV,QAAQC;YAAY;YACjF,OAAOP,iBAAiBe,UAAUd;QACpC;QAEA,MAAMe,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMZ,UAAUa,GAAG,CAAU,CAAC,UAAU,EAAEC,SAAS,CAAC;YACrE,OAAOlB,UAAUgB,UAAUd;QAC7B;QAEA,MAAMiB,QAAOC,IAA0B;YACrC,MAAMJ,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,aAAa;gBAC1DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,gBAAgBJ,KAAKR,YAAY;wBACjCa,SAASL,KAAKK,OAAO;wBACrBC,eAAeN,KAAKO,YAAY;wBAChCC,WAAWR,KAAKS,QAAQ;wBACxBC,aAAaV,KAAKW,UAAU;wBAC5BC,WAAWZ,KAAKa,QAAQ;wBACxBC,WAAWd,KAAKN,QAAQ;wBACxBqB,SAASf,KAAKe,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnC,UAAUgB,UAAUd;QAC7B;QAEA,MAAMkC,QAAOlB,QAAgB,EAAEE,IAA0B;YACvD,MAAMJ,WAAW,MAAMZ,UAAUiC,GAAG,CAAU,CAAC,UAAU,EAAEnB,SAAS,CAAC,EAAE;gBACrEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVE,SAASL,KAAKK,OAAO;wBACrBC,eAAeN,KAAKO,YAAY;wBAChCC,WAAWR,KAAKS,QAAQ;wBACxBC,aAAaV,KAAKW,UAAU;wBAC5BC,WAAWZ,KAAKa,QAAQ;wBACxBK,SAASlB,KAAKkB,OAAO;wBACrBvB,QAAQK,KAAKL,MAAM;wBACnBoB,SAASf,KAAKe,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnC,UAAUgB,UAAUd;QAC7B;QAEA,MAAMqC,QAAOrB,QAAgB;YAC3B,MAAMd,UAAUmC,MAAM,CAAC,CAAC,UAAU,EAAErB,SAAS,CAAC;QAChD;QAEA,aAAa;QACb,MAAMsB,MAAKtB,QAAgB;YACzB,MAAMF,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,CAAC,UAAU,EAAEH,SAAS,KAAK,CAAC,EAAE,CAAC;YAC9E,OAAOlB,UAAUgB,UAAUd;QAC7B;QAEA,MAAMuC,SAAQvB,QAAgB;YAC5B,MAAMF,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,CAAC,UAAU,EAAEH,SAAS,QAAQ,CAAC,EAAE,CAAC;YACjF,OAAOlB,UAAUgB,UAAUd;QAC7B;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/services/index.ts"],"sourcesContent":["export * from './posts.service';\nexport * from './comments.service';\nexport * from './categories.service';\nexport * from './tags.service';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,kBAAkB;AAChC,cAAc,qBAAqB;AACnC,cAAc,uBAAuB;AACrC,cAAc,iBAAiB"}
@@ -1,127 +0,0 @@
1
- import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
- import { postMapper } from '../mappers/post.mapper';
3
- export function createPostsService(transport, _config) {
4
- return {
5
- async list (params) {
6
- const queryParams = {};
7
- if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
- if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
- if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
10
- if (params == null ? void 0 : params.categoryUniqueId) queryParams['category_unique_id'] = params.categoryUniqueId;
11
- if (params == null ? void 0 : params.tagUniqueId) queryParams['tag_unique_id'] = params.tagUniqueId;
12
- if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
13
- if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
14
- if ((params == null ? void 0 : params.isPublic) !== undefined) queryParams['is_public'] = String(params.isPublic);
15
- if (params == null ? void 0 : params.withComments) queryParams['with'] = 'comments';
16
- if (params == null ? void 0 : params.withCategories) queryParams['with'] = params.withComments ? 'comments,categories' : 'categories';
17
- if (params == null ? void 0 : params.withTags) {
18
- queryParams['with'] = queryParams['with'] ? `${queryParams['with']},tags` : 'tags';
19
- }
20
- if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
21
- const response = await transport.get('/posts', {
22
- params: queryParams
23
- });
24
- return decodePageResult(response, postMapper);
25
- },
26
- async get (uniqueId) {
27
- const response = await transport.get(`/posts/${uniqueId}`);
28
- return decodeOne(response, postMapper);
29
- },
30
- async create (data) {
31
- const response = await transport.post('/posts', {
32
- data: {
33
- type: 'Post',
34
- attributes: {
35
- title: data.title,
36
- abstract: data.abstract,
37
- keywords: data.keywords,
38
- content: data.content,
39
- thumbnail_url: data.thumbnailUrl,
40
- image_url: data.imageUrl,
41
- media_url: data.mediaUrl,
42
- category_unique_ids: data.categoryUniqueIds,
43
- tag_unique_ids: data.tagUniqueIds,
44
- is_public: data.isPublic,
45
- publish_at: data.publishAt,
46
- publish_until: data.publishUntil,
47
- payload: data.payload
48
- }
49
- }
50
- });
51
- return decodeOne(response, postMapper);
52
- },
53
- async update (uniqueId, data) {
54
- const response = await transport.put(`/posts/${uniqueId}`, {
55
- data: {
56
- type: 'Post',
57
- attributes: {
58
- title: data.title,
59
- abstract: data.abstract,
60
- keywords: data.keywords,
61
- content: data.content,
62
- thumbnail_url: data.thumbnailUrl,
63
- image_url: data.imageUrl,
64
- media_url: data.mediaUrl,
65
- category_unique_ids: data.categoryUniqueIds,
66
- tag_unique_ids: data.tagUniqueIds,
67
- is_public: data.isPublic,
68
- publish_at: data.publishAt,
69
- publish_until: data.publishUntil,
70
- enabled: data.enabled,
71
- status: data.status,
72
- payload: data.payload
73
- }
74
- }
75
- });
76
- return decodeOne(response, postMapper);
77
- },
78
- async delete (uniqueId) {
79
- await transport.delete(`/posts/${uniqueId}`);
80
- },
81
- async recover (uniqueId) {
82
- const response = await transport.put(`/posts/${uniqueId}/recover`, {});
83
- return decodeOne(response, postMapper);
84
- },
85
- async search (query, params) {
86
- const queryParams = {
87
- search: query
88
- };
89
- if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
90
- if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
91
- const response = await transport.post('/posts/search', {
92
- search: query
93
- }, {
94
- params: queryParams
95
- });
96
- return decodePageResult(response, postMapper);
97
- },
98
- async listDeleted (params) {
99
- const queryParams = {};
100
- if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
101
- if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
102
- const response = await transport.get('/posts/trash/show', {
103
- params: queryParams
104
- });
105
- return decodePageResult(response, postMapper);
106
- },
107
- // Engagement
108
- async like (uniqueId) {
109
- const response = await transport.post(`/posts/${uniqueId}/like`, {});
110
- return decodeOne(response, postMapper);
111
- },
112
- async dislike (uniqueId) {
113
- const response = await transport.post(`/posts/${uniqueId}/dislike`, {});
114
- return decodeOne(response, postMapper);
115
- },
116
- async save (uniqueId) {
117
- const response = await transport.post(`/posts/${uniqueId}/save`, {});
118
- return decodeOne(response, postMapper);
119
- },
120
- async follow (uniqueId) {
121
- const response = await transport.post(`/posts/${uniqueId}/follow`, {});
122
- return decodeOne(response, postMapper);
123
- }
124
- };
125
- }
126
-
127
- //# sourceMappingURL=posts.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/services/posts.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Post,\n CreatePostRequest,\n UpdatePostRequest,\n ListPostsParams,\n} from '../types/post';\nimport { postMapper } from '../mappers/post.mapper';\n\nexport interface PostsService {\n // Posts\n list(params?: ListPostsParams): Promise<PageResult<Post>>;\n get(uniqueId: string): Promise<Post>;\n create(data: CreatePostRequest): Promise<Post>;\n update(uniqueId: string, data: UpdatePostRequest): Promise<Post>;\n delete(uniqueId: string): Promise<void>;\n recover(uniqueId: string): Promise<Post>;\n search(query: string, params?: ListPostsParams): Promise<PageResult<Post>>;\n listDeleted(params?: ListPostsParams): Promise<PageResult<Post>>;\n\n // Engagement\n like(uniqueId: string): Promise<Post>;\n dislike(uniqueId: string): Promise<Post>;\n save(uniqueId: string): Promise<Post>;\n follow(uniqueId: string): Promise<Post>;\n}\n\nexport function createPostsService(transport: Transport, _config: { appId: string }): PostsService {\n return {\n async list(params?: ListPostsParams): Promise<PageResult<Post>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.categoryUniqueId) queryParams['category_unique_id'] = params.categoryUniqueId;\n if (params?.tagUniqueId) queryParams['tag_unique_id'] = params.tagUniqueId;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.search) queryParams['search'] = params.search;\n if (params?.isPublic !== undefined) queryParams['is_public'] = String(params.isPublic);\n if (params?.withComments) queryParams['with'] = 'comments';\n if (params?.withCategories) queryParams['with'] = params.withComments ? 'comments,categories' : 'categories';\n if (params?.withTags) {\n queryParams['with'] = queryParams['with'] ? `${queryParams['with']},tags` : 'tags';\n }\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/posts', { params: queryParams });\n return decodePageResult(response, postMapper);\n },\n\n async get(uniqueId: string): Promise<Post> {\n const response = await transport.get<unknown>(`/posts/${uniqueId}`);\n return decodeOne(response, postMapper);\n },\n\n async create(data: CreatePostRequest): Promise<Post> {\n const response = await transport.post<unknown>('/posts', {\n data: {\n type: 'Post',\n attributes: {\n title: data.title,\n abstract: data.abstract,\n keywords: data.keywords,\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n media_url: data.mediaUrl,\n category_unique_ids: data.categoryUniqueIds,\n tag_unique_ids: data.tagUniqueIds,\n is_public: data.isPublic,\n publish_at: data.publishAt,\n publish_until: data.publishUntil,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, postMapper);\n },\n\n async update(uniqueId: string, data: UpdatePostRequest): Promise<Post> {\n const response = await transport.put<unknown>(`/posts/${uniqueId}`, {\n data: {\n type: 'Post',\n attributes: {\n title: data.title,\n abstract: data.abstract,\n keywords: data.keywords,\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n media_url: data.mediaUrl,\n category_unique_ids: data.categoryUniqueIds,\n tag_unique_ids: data.tagUniqueIds,\n is_public: data.isPublic,\n publish_at: data.publishAt,\n publish_until: data.publishUntil,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, postMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/posts/${uniqueId}`);\n },\n\n async recover(uniqueId: string): Promise<Post> {\n const response = await transport.put<unknown>(`/posts/${uniqueId}/recover`, {});\n return decodeOne(response, postMapper);\n },\n\n async search(query: string, params?: ListPostsParams): Promise<PageResult<Post>> {\n const queryParams: Record<string, string> = { search: query };\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n\n const response = await transport.post<unknown>('/posts/search', { search: query }, { params: queryParams });\n return decodePageResult(response, postMapper);\n },\n\n async listDeleted(params?: ListPostsParams): Promise<PageResult<Post>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n\n const response = await transport.get<unknown>('/posts/trash/show', { params: queryParams });\n return decodePageResult(response, postMapper);\n },\n\n // Engagement\n async like(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/like`, {});\n return decodeOne(response, postMapper);\n },\n\n async dislike(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/dislike`, {});\n return decodeOne(response, postMapper);\n },\n\n async save(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/save`, {});\n return decodeOne(response, postMapper);\n },\n\n async follow(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/follow`, {});\n return decodeOne(response, postMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","postMapper","createPostsService","transport","_config","list","params","queryParams","page","String","perPage","status","categoryUniqueId","tagUniqueId","userUniqueId","search","isPublic","undefined","withComments","withCategories","withTags","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","title","abstract","keywords","content","thumbnail_url","thumbnailUrl","image_url","imageUrl","media_url","mediaUrl","category_unique_ids","categoryUniqueIds","tag_unique_ids","tagUniqueIds","is_public","publish_at","publishAt","publish_until","publishUntil","payload","update","put","enabled","delete","recover","query","listDeleted","like","dislike","save","follow"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
- import { tagMapper } from '../mappers/tag.mapper';
3
- export function createTagsService(transport, _config) {
4
- return {
5
- async list (params) {
6
- const queryParams = {};
7
- if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
- if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
- if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
10
- const response = await transport.get('/tags', {
11
- params: queryParams
12
- });
13
- return decodePageResult(response, tagMapper);
14
- },
15
- async get (uniqueId) {
16
- const response = await transport.get(`/tags/${uniqueId}`);
17
- return decodeOne(response, tagMapper);
18
- },
19
- async create (data) {
20
- const response = await transport.post('/tags', {
21
- data: {
22
- type: 'Tag',
23
- attributes: {
24
- tag: data.tag,
25
- thumbnail_url: data.thumbnailUrl,
26
- image_url: data.imageUrl,
27
- content_url: data.contentUrl,
28
- media_url: data.mediaUrl,
29
- payload: data.payload
30
- }
31
- }
32
- });
33
- return decodeOne(response, tagMapper);
34
- },
35
- async update (uniqueId, data) {
36
- const response = await transport.put(`/tags/${uniqueId}`, {
37
- data: {
38
- type: 'Tag',
39
- attributes: {
40
- tag: data.tag,
41
- thumbnail_url: data.thumbnailUrl,
42
- image_url: data.imageUrl,
43
- content_url: data.contentUrl,
44
- media_url: data.mediaUrl,
45
- enabled: data.enabled,
46
- status: data.status,
47
- payload: data.payload
48
- }
49
- }
50
- });
51
- return decodeOne(response, tagMapper);
52
- },
53
- async delete (uniqueId) {
54
- await transport.delete(`/tags/${uniqueId}`);
55
- }
56
- };
57
- }
58
-
59
- //# sourceMappingURL=tags.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/services/tags.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Tag,\n CreateTagRequest,\n UpdateTagRequest,\n ListTagsParams,\n} from '../types/tag';\nimport { tagMapper } from '../mappers/tag.mapper';\n\nexport interface TagsService {\n list(params?: ListTagsParams): Promise<PageResult<Tag>>;\n get(uniqueId: string): Promise<Tag>;\n create(data: CreateTagRequest): Promise<Tag>;\n update(uniqueId: string, data: UpdateTagRequest): Promise<Tag>;\n delete(uniqueId: string): Promise<void>;\n}\n\nexport function createTagsService(transport: Transport, _config: { appId: string }): TagsService {\n return {\n async list(params?: ListTagsParams): Promise<PageResult<Tag>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.search) queryParams['search'] = params.search;\n\n const response = await transport.get<unknown>('/tags', { params: queryParams });\n return decodePageResult(response, tagMapper);\n },\n\n async get(uniqueId: string): Promise<Tag> {\n const response = await transport.get<unknown>(`/tags/${uniqueId}`);\n return decodeOne(response, tagMapper);\n },\n\n async create(data: CreateTagRequest): Promise<Tag> {\n const response = await transport.post<unknown>('/tags', {\n data: {\n type: 'Tag',\n attributes: {\n tag: data.tag,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, tagMapper);\n },\n\n async update(uniqueId: string, data: UpdateTagRequest): Promise<Tag> {\n const response = await transport.put<unknown>(`/tags/${uniqueId}`, {\n data: {\n type: 'Tag',\n attributes: {\n tag: data.tag,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, tagMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/tags/${uniqueId}`);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","tagMapper","createTagsService","transport","_config","list","params","queryParams","page","String","perPage","search","response","get","uniqueId","create","data","post","type","attributes","tag","thumbnail_url","thumbnailUrl","image_url","imageUrl","content_url","contentUrl","media_url","mediaUrl","payload","update","put","enabled","status","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,SAAS,QAAQ,wBAAwB;AAUlD,OAAO,SAASC,kBAAkBC,SAAoB,EAAEC,OAA0B;IAChF,OAAO;QACL,MAAMC,MAAKC,MAAuB;YAChC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,MAAM,EAAEJ,WAAW,CAAC,SAAS,GAAGD,OAAOK,MAAM;YAEzD,MAAMC,WAAW,MAAMT,UAAUU,GAAG,CAAU,SAAS;gBAAEP,QAAQC;YAAY;YAC7E,OAAOP,iBAAiBY,UAAUX;QACpC;QAEA,MAAMY,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMT,UAAUU,GAAG,CAAU,CAAC,MAAM,EAAEC,SAAS,CAAC;YACjE,OAAOf,UAAUa,UAAUX;QAC7B;QAEA,MAAMc,QAAOC,IAAsB;YACjC,MAAMJ,WAAW,MAAMT,UAAUc,IAAI,CAAU,SAAS;gBACtDD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,KAAKJ,KAAKI,GAAG;wBACbC,eAAeL,KAAKM,YAAY;wBAChCC,WAAWP,KAAKQ,QAAQ;wBACxBC,aAAaT,KAAKU,UAAU;wBAC5BC,WAAWX,KAAKY,QAAQ;wBACxBC,SAASb,KAAKa,OAAO;oBACvB;gBACF;YACF;YACA,OAAO9B,UAAUa,UAAUX;QAC7B;QAEA,MAAM6B,QAAOhB,QAAgB,EAAEE,IAAsB;YACnD,MAAMJ,WAAW,MAAMT,UAAU4B,GAAG,CAAU,CAAC,MAAM,EAAEjB,SAAS,CAAC,EAAE;gBACjEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,KAAKJ,KAAKI,GAAG;wBACbC,eAAeL,KAAKM,YAAY;wBAChCC,WAAWP,KAAKQ,QAAQ;wBACxBC,aAAaT,KAAKU,UAAU;wBAC5BC,WAAWX,KAAKY,QAAQ;wBACxBI,SAAShB,KAAKgB,OAAO;wBACrBC,QAAQjB,KAAKiB,MAAM;wBACnBJ,SAASb,KAAKa,OAAO;oBACvB;gBACF;YACF;YACA,OAAO9B,UAAUa,UAAUX;QAC7B;QAEA,MAAMiC,QAAOpB,QAAgB;YAC3B,MAAMX,UAAU+B,MAAM,CAAC,CAAC,MAAM,EAAEpB,SAAS,CAAC;QAC5C;IACF;AACF"}
@@ -1,3 +0,0 @@
1
- export { };
2
-
3
- //# sourceMappingURL=category.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/types/category.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Category extends IdentityCore {\n code: string;\n name: string;\n description?: string;\n parentId?: string;\n parentUniqueId?: string;\n\n // Display\n displayOrder?: number;\n iconUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n slug?: string;\n\n // Business Logic\n status: EntityStatus;\n enabled: boolean;\n\n // SEO\n metaTitle?: string;\n metaDescription?: string;\n metaKeywords?: string;\n\n // Source tracking\n source?: string;\n sourceAlias?: string;\n sourceId?: string;\n sourceType?: string;\n\n // Extra\n payload?: Record<string, unknown>;\n\n // Nested\n children?: Category[];\n postCount?: number;\n}\n\n// Request types\nexport interface CreateCategoryRequest {\n name: string;\n description?: string;\n parentUniqueId?: string;\n displayOrder?: number;\n imageUrl?: string;\n iconUrl?: string;\n}\n\nexport interface UpdateCategoryRequest {\n name?: string;\n description?: string;\n parentUniqueId?: string;\n displayOrder?: number;\n imageUrl?: string;\n iconUrl?: string;\n enabled?: boolean;\n status?: EntityStatus;\n}\n\nexport interface ListCategoriesParams {\n page?: number;\n perPage?: number;\n parentUniqueId?: string;\n withChildren?: boolean;\n withPosts?: boolean;\n}\n"],"names":[],"rangeMappings":"","mappings":"AA4DA,WAMC"}
@@ -1,3 +0,0 @@
1
- export { };
2
-
3
- //# sourceMappingURL=comment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/types/comment.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Comment extends IdentityCore {\n uniqueId: string;\n postUniqueId: string;\n postVersion?: number;\n content: string;\n thumbnailUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n mediaUrl?: string;\n\n // User (denormalized)\n userUniqueId?: string;\n userName?: string;\n userAlias?: string;\n userAvatarUrl?: string;\n\n payload?: Record<string, unknown>;\n status: EntityStatus;\n enabled: boolean;\n\n // Threading\n parentId?: string;\n\n // Engagement metrics\n likes?: number;\n dislikes?: number;\n followers?: number;\n savers?: number;\n\n // AI\n aiGenerated?: boolean;\n aiModel?: string;\n\n // Moderation\n moderated?: boolean;\n moderatedBy?: string;\n moderatedAt?: Date;\n moderationReason?: string;\n moderationDecision?: string;\n}\n\n// Request types\nexport interface CreateCommentRequest {\n postUniqueId: string;\n content: string;\n thumbnailUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n mediaUrl?: string;\n parentId?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateCommentRequest {\n content?: string;\n thumbnailUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n mediaUrl?: string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListCommentsParams {\n page?: number;\n perPage?: number;\n postUniqueId?: string;\n userUniqueId?: string;\n parentId?: string;\n status?: EntityStatus;\n}\n"],"names":[],"rangeMappings":"","mappings":"AAkEA,WAOC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/types/index.ts"],"sourcesContent":["export * from './post';\nexport * from './comment';\nexport * from './category';\nexport * from './tag';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,YAAY;AAC1B,cAAc,aAAa;AAC3B,cAAc,QAAQ"}
@@ -1,3 +0,0 @@
1
- export { };
2
-
3
- //# sourceMappingURL=post.js.map