@23blocks/angular 1.0.3 → 1.1.1

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 (43) hide show
  1. package/dist/lib/assets/assets.service.js +43 -30
  2. package/dist/lib/assets/assets.service.js.map +1 -1
  3. package/dist/lib/authentication/authentication.service.js +49 -32
  4. package/dist/lib/authentication/authentication.service.js.map +1 -1
  5. package/dist/lib/campaigns/campaigns.service.js +51 -38
  6. package/dist/lib/campaigns/campaigns.service.js.map +1 -1
  7. package/dist/lib/company/company.service.js +50 -37
  8. package/dist/lib/company/company.service.js.map +1 -1
  9. package/dist/lib/content/content.service.js +52 -39
  10. package/dist/lib/content/content.service.js.map +1 -1
  11. package/dist/lib/conversations/conversations.service.js +59 -46
  12. package/dist/lib/conversations/conversations.service.js.map +1 -1
  13. package/dist/lib/crm/crm.service.js +69 -56
  14. package/dist/lib/crm/crm.service.js.map +1 -1
  15. package/dist/lib/files/files.service.js +42 -29
  16. package/dist/lib/files/files.service.js.map +1 -1
  17. package/dist/lib/forms/forms.service.js +45 -32
  18. package/dist/lib/forms/forms.service.js.map +1 -1
  19. package/dist/lib/geolocation/geolocation.service.js +78 -65
  20. package/dist/lib/geolocation/geolocation.service.js.map +1 -1
  21. package/dist/lib/index.js +4 -1
  22. package/dist/lib/index.js.map +1 -1
  23. package/dist/lib/jarvis/jarvis.service.js +54 -41
  24. package/dist/lib/jarvis/jarvis.service.js.map +1 -1
  25. package/dist/lib/onboarding/onboarding.service.js +45 -32
  26. package/dist/lib/onboarding/onboarding.service.js.map +1 -1
  27. package/dist/lib/products/products.service.js +80 -67
  28. package/dist/lib/products/products.service.js.map +1 -1
  29. package/dist/lib/rewards/rewards.service.js +47 -34
  30. package/dist/lib/rewards/rewards.service.js.map +1 -1
  31. package/dist/lib/sales/sales.service.js +47 -34
  32. package/dist/lib/sales/sales.service.js.map +1 -1
  33. package/dist/lib/search/search.service.js +31 -18
  34. package/dist/lib/search/search.service.js.map +1 -1
  35. package/dist/lib/simple-providers.js +96 -15
  36. package/dist/lib/simple-providers.js.map +1 -1
  37. package/dist/lib/tokens.js +26 -1
  38. package/dist/lib/tokens.js.map +1 -1
  39. package/dist/lib/university/university.service.js +58 -45
  40. package/dist/lib/university/university.service.js.map +1 -1
  41. package/dist/lib/wallet/wallet.service.js +39 -26
  42. package/dist/lib/wallet/wallet.service.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,115 +1,123 @@
1
1
  import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
2
2
  import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
3
3
  import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
4
- import { Injectable, Inject } from '@angular/core';
4
+ import { Injectable, Inject, Optional } from '@angular/core';
5
5
  import { from } from 'rxjs';
6
6
  import { createContentBlock } from '@23blocks/block-content';
7
- import { TRANSPORT, CONTENT_CONFIG } from '../tokens.js';
7
+ import { TRANSPORT, CONTENT_TRANSPORT, CONTENT_CONFIG } from '../tokens.js';
8
8
  export class ContentService {
9
+ /**
10
+ * Ensure the service is configured, throw helpful error if not
11
+ */ ensureConfigured() {
12
+ if (!this.block) {
13
+ throw new Error('[23blocks] ContentService is not configured. ' + "Add 'urls.content' to your provideBlocks23() configuration.");
14
+ }
15
+ return this.block;
16
+ }
9
17
  // ───────────────────────────────────────────────────────────────────────────
10
18
  // Posts Service
11
19
  // ───────────────────────────────────────────────────────────────────────────
12
20
  listPosts(params) {
13
- return from(this.block.posts.list(params));
21
+ return from(this.ensureConfigured().posts.list(params));
14
22
  }
15
23
  getPost(uniqueId) {
16
- return from(this.block.posts.get(uniqueId));
24
+ return from(this.ensureConfigured().posts.get(uniqueId));
17
25
  }
18
26
  createPost(data) {
19
- return from(this.block.posts.create(data));
27
+ return from(this.ensureConfigured().posts.create(data));
20
28
  }
21
29
  updatePost(uniqueId, data) {
22
- return from(this.block.posts.update(uniqueId, data));
30
+ return from(this.ensureConfigured().posts.update(uniqueId, data));
23
31
  }
24
32
  deletePost(uniqueId) {
25
- return from(this.block.posts.delete(uniqueId));
33
+ return from(this.ensureConfigured().posts.delete(uniqueId));
26
34
  }
27
35
  recoverPost(uniqueId) {
28
- return from(this.block.posts.recover(uniqueId));
36
+ return from(this.ensureConfigured().posts.recover(uniqueId));
29
37
  }
30
38
  searchPosts(query, params) {
31
- return from(this.block.posts.search(query, params));
39
+ return from(this.ensureConfigured().posts.search(query, params));
32
40
  }
33
41
  listDeletedPosts(params) {
34
- return from(this.block.posts.listDeleted(params));
42
+ return from(this.ensureConfigured().posts.listDeleted(params));
35
43
  }
36
44
  likePost(uniqueId) {
37
- return from(this.block.posts.like(uniqueId));
45
+ return from(this.ensureConfigured().posts.like(uniqueId));
38
46
  }
39
47
  dislikePost(uniqueId) {
40
- return from(this.block.posts.dislike(uniqueId));
48
+ return from(this.ensureConfigured().posts.dislike(uniqueId));
41
49
  }
42
50
  savePost(uniqueId) {
43
- return from(this.block.posts.save(uniqueId));
51
+ return from(this.ensureConfigured().posts.save(uniqueId));
44
52
  }
45
53
  followPost(uniqueId) {
46
- return from(this.block.posts.follow(uniqueId));
54
+ return from(this.ensureConfigured().posts.follow(uniqueId));
47
55
  }
48
56
  // ───────────────────────────────────────────────────────────────────────────
49
57
  // Comments Service
50
58
  // ───────────────────────────────────────────────────────────────────────────
51
59
  listComments(params) {
52
- return from(this.block.comments.list(params));
60
+ return from(this.ensureConfigured().comments.list(params));
53
61
  }
54
62
  getComment(uniqueId) {
55
- return from(this.block.comments.get(uniqueId));
63
+ return from(this.ensureConfigured().comments.get(uniqueId));
56
64
  }
57
65
  createComment(data) {
58
- return from(this.block.comments.create(data));
66
+ return from(this.ensureConfigured().comments.create(data));
59
67
  }
60
68
  updateComment(uniqueId, data) {
61
- return from(this.block.comments.update(uniqueId, data));
69
+ return from(this.ensureConfigured().comments.update(uniqueId, data));
62
70
  }
63
71
  deleteComment(uniqueId) {
64
- return from(this.block.comments.delete(uniqueId));
72
+ return from(this.ensureConfigured().comments.delete(uniqueId));
65
73
  }
66
74
  likeComment(uniqueId) {
67
- return from(this.block.comments.like(uniqueId));
75
+ return from(this.ensureConfigured().comments.like(uniqueId));
68
76
  }
69
77
  dislikeComment(uniqueId) {
70
- return from(this.block.comments.dislike(uniqueId));
78
+ return from(this.ensureConfigured().comments.dislike(uniqueId));
71
79
  }
72
80
  // ───────────────────────────────────────────────────────────────────────────
73
81
  // Categories Service
74
82
  // ───────────────────────────────────────────────────────────────────────────
75
83
  listCategories(params) {
76
- return from(this.block.categories.list(params));
84
+ return from(this.ensureConfigured().categories.list(params));
77
85
  }
78
86
  getCategory(uniqueId) {
79
- return from(this.block.categories.get(uniqueId));
87
+ return from(this.ensureConfigured().categories.get(uniqueId));
80
88
  }
81
89
  createCategory(data) {
82
- return from(this.block.categories.create(data));
90
+ return from(this.ensureConfigured().categories.create(data));
83
91
  }
84
92
  updateCategory(uniqueId, data) {
85
- return from(this.block.categories.update(uniqueId, data));
93
+ return from(this.ensureConfigured().categories.update(uniqueId, data));
86
94
  }
87
95
  deleteCategory(uniqueId) {
88
- return from(this.block.categories.delete(uniqueId));
96
+ return from(this.ensureConfigured().categories.delete(uniqueId));
89
97
  }
90
98
  recoverCategory(uniqueId) {
91
- return from(this.block.categories.recover(uniqueId));
99
+ return from(this.ensureConfigured().categories.recover(uniqueId));
92
100
  }
93
101
  getCategoryChildren(uniqueId) {
94
- return from(this.block.categories.getChildren(uniqueId));
102
+ return from(this.ensureConfigured().categories.getChildren(uniqueId));
95
103
  }
96
104
  // ───────────────────────────────────────────────────────────────────────────
97
105
  // Tags Service
98
106
  // ───────────────────────────────────────────────────────────────────────────
99
107
  listTags(params) {
100
- return from(this.block.tags.list(params));
108
+ return from(this.ensureConfigured().tags.list(params));
101
109
  }
102
110
  getTag(uniqueId) {
103
- return from(this.block.tags.get(uniqueId));
111
+ return from(this.ensureConfigured().tags.get(uniqueId));
104
112
  }
105
113
  createTag(data) {
106
- return from(this.block.tags.create(data));
114
+ return from(this.ensureConfigured().tags.create(data));
107
115
  }
108
116
  updateTag(uniqueId, data) {
109
- return from(this.block.tags.update(uniqueId, data));
117
+ return from(this.ensureConfigured().tags.update(uniqueId, data));
110
118
  }
111
119
  deleteTag(uniqueId) {
112
- return from(this.block.tags.delete(uniqueId));
120
+ return from(this.ensureConfigured().tags.delete(uniqueId));
113
121
  }
114
122
  // ───────────────────────────────────────────────────────────────────────────
115
123
  // Direct Block Access (for advanced usage)
@@ -118,21 +126,26 @@ export class ContentService {
118
126
  * Access the underlying block for advanced operations
119
127
  * Use this when you need access to services not wrapped by this Angular service
120
128
  */ get rawBlock() {
121
- return this.block;
129
+ return this.ensureConfigured();
122
130
  }
123
- constructor(transport, config){
124
- this.block = createContentBlock(transport, config);
131
+ constructor(serviceTransport, legacyTransport, config){
132
+ const transport = serviceTransport != null ? serviceTransport : legacyTransport;
133
+ this.block = transport ? createContentBlock(transport, config) : null;
125
134
  }
126
135
  }
127
136
  ContentService = _ts_decorate([
128
137
  Injectable({
129
138
  providedIn: 'root'
130
139
  }),
131
- _ts_param(0, Inject(TRANSPORT)),
132
- _ts_param(1, Inject(CONTENT_CONFIG)),
140
+ _ts_param(0, Optional()),
141
+ _ts_param(0, Inject(CONTENT_TRANSPORT)),
142
+ _ts_param(1, Optional()),
143
+ _ts_param(1, Inject(TRANSPORT)),
144
+ _ts_param(2, Inject(CONTENT_CONFIG)),
133
145
  _ts_metadata("design:type", Function),
134
146
  _ts_metadata("design:paramtypes", [
135
- typeof Transport === "undefined" ? Object : Transport,
147
+ Object,
148
+ Object,
136
149
  typeof ContentBlockConfig === "undefined" ? Object : ContentBlockConfig
137
150
  ])
138
151
  ], ContentService);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/content/content.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createContentBlock,\n type ContentBlock,\n type ContentBlockConfig,\n type Post,\n type CreatePostRequest,\n type UpdatePostRequest,\n type ListPostsParams,\n type Comment,\n type CreateCommentRequest,\n type UpdateCommentRequest,\n type ListCommentsParams,\n type Category,\n type CreateCategoryRequest,\n type UpdateCategoryRequest,\n type ListCategoriesParams,\n type Tag,\n type CreateTagRequest,\n type UpdateTagRequest,\n type ListTagsParams,\n} from '@23blocks/block-content';\nimport { TRANSPORT, CONTENT_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Content block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class BlogComponent {\n * constructor(private content: ContentService) {}\n *\n * loadPosts() {\n * this.content.listPosts({ page: 1, perPage: 10 }).subscribe({\n * next: (result) => console.log('Posts:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ContentService {\n private readonly block: ContentBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(CONTENT_CONFIG) config: ContentBlockConfig\n ) {\n this.block = createContentBlock(transport, config);\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Posts Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPosts(params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.block.posts.list(params));\n }\n\n getPost(uniqueId: string): Observable<Post> {\n return from(this.block.posts.get(uniqueId));\n }\n\n createPost(data: CreatePostRequest): Observable<Post> {\n return from(this.block.posts.create(data));\n }\n\n updatePost(uniqueId: string, data: UpdatePostRequest): Observable<Post> {\n return from(this.block.posts.update(uniqueId, data));\n }\n\n deletePost(uniqueId: string): Observable<void> {\n return from(this.block.posts.delete(uniqueId));\n }\n\n recoverPost(uniqueId: string): Observable<Post> {\n return from(this.block.posts.recover(uniqueId));\n }\n\n searchPosts(query: string, params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.block.posts.search(query, params));\n }\n\n listDeletedPosts(params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.block.posts.listDeleted(params));\n }\n\n likePost(uniqueId: string): Observable<Post> {\n return from(this.block.posts.like(uniqueId));\n }\n\n dislikePost(uniqueId: string): Observable<Post> {\n return from(this.block.posts.dislike(uniqueId));\n }\n\n savePost(uniqueId: string): Observable<Post> {\n return from(this.block.posts.save(uniqueId));\n }\n\n followPost(uniqueId: string): Observable<Post> {\n return from(this.block.posts.follow(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Comments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listComments(params?: ListCommentsParams): Observable<PageResult<Comment>> {\n return from(this.block.comments.list(params));\n }\n\n getComment(uniqueId: string): Observable<Comment> {\n return from(this.block.comments.get(uniqueId));\n }\n\n createComment(data: CreateCommentRequest): Observable<Comment> {\n return from(this.block.comments.create(data));\n }\n\n updateComment(uniqueId: string, data: UpdateCommentRequest): Observable<Comment> {\n return from(this.block.comments.update(uniqueId, data));\n }\n\n deleteComment(uniqueId: string): Observable<void> {\n return from(this.block.comments.delete(uniqueId));\n }\n\n likeComment(uniqueId: string): Observable<Comment> {\n return from(this.block.comments.like(uniqueId));\n }\n\n dislikeComment(uniqueId: string): Observable<Comment> {\n return from(this.block.comments.dislike(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Categories Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listCategories(params?: ListCategoriesParams): Observable<PageResult<Category>> {\n return from(this.block.categories.list(params));\n }\n\n getCategory(uniqueId: string): Observable<Category> {\n return from(this.block.categories.get(uniqueId));\n }\n\n createCategory(data: CreateCategoryRequest): Observable<Category> {\n return from(this.block.categories.create(data));\n }\n\n updateCategory(uniqueId: string, data: UpdateCategoryRequest): Observable<Category> {\n return from(this.block.categories.update(uniqueId, data));\n }\n\n deleteCategory(uniqueId: string): Observable<void> {\n return from(this.block.categories.delete(uniqueId));\n }\n\n recoverCategory(uniqueId: string): Observable<Category> {\n return from(this.block.categories.recover(uniqueId));\n }\n\n getCategoryChildren(uniqueId: string): Observable<Category[]> {\n return from(this.block.categories.getChildren(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Tags Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listTags(params?: ListTagsParams): Observable<PageResult<Tag>> {\n return from(this.block.tags.list(params));\n }\n\n getTag(uniqueId: string): Observable<Tag> {\n return from(this.block.tags.get(uniqueId));\n }\n\n createTag(data: CreateTagRequest): Observable<Tag> {\n return from(this.block.tags.create(data));\n }\n\n updateTag(uniqueId: string, data: UpdateTagRequest): Observable<Tag> {\n return from(this.block.tags.update(uniqueId, data));\n }\n\n deleteTag(uniqueId: string): Observable<void> {\n return from(this.block.tags.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): ContentBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createContentBlock","TRANSPORT","CONTENT_CONFIG","ContentService","listPosts","params","block","posts","list","getPost","uniqueId","get","createPost","data","create","updatePost","update","deletePost","delete","recoverPost","recover","searchPosts","query","search","listDeletedPosts","listDeleted","likePost","like","dislikePost","dislike","savePost","save","followPost","follow","listComments","comments","getComment","createComment","updateComment","deleteComment","likeComment","dislikeComment","listCategories","categories","getCategory","createCategory","updateCategory","deleteCategory","recoverCategory","getCategoryChildren","getChildren","listTags","tags","getTag","createTag","updateTag","deleteTag","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/content/content.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createContentBlock,\n type ContentBlock,\n type ContentBlockConfig,\n type Post,\n type CreatePostRequest,\n type UpdatePostRequest,\n type ListPostsParams,\n type Comment,\n type CreateCommentRequest,\n type UpdateCommentRequest,\n type ListCommentsParams,\n type Category,\n type CreateCategoryRequest,\n type UpdateCategoryRequest,\n type ListCategoriesParams,\n type Tag,\n type CreateTagRequest,\n type UpdateTagRequest,\n type ListTagsParams,\n} from '@23blocks/block-content';\nimport { TRANSPORT, CONTENT_TRANSPORT, CONTENT_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Content block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class BlogComponent {\n * constructor(private content: ContentService) {}\n *\n * loadPosts() {\n * this.content.listPosts({ page: 1, perPage: 10 }).subscribe({\n * next: (result) => console.log('Posts:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ContentService {\n private readonly block: ContentBlock | null;\n\n constructor(\n @Optional() @Inject(CONTENT_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CONTENT_CONFIG) config: ContentBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createContentBlock(transport, config) : null;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): ContentBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ContentService is not configured. ' +\n \"Add 'urls.content' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Posts Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPosts(params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.ensureConfigured().posts.list(params));\n }\n\n getPost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.get(uniqueId));\n }\n\n createPost(data: CreatePostRequest): Observable<Post> {\n return from(this.ensureConfigured().posts.create(data));\n }\n\n updatePost(uniqueId: string, data: UpdatePostRequest): Observable<Post> {\n return from(this.ensureConfigured().posts.update(uniqueId, data));\n }\n\n deletePost(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().posts.delete(uniqueId));\n }\n\n recoverPost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.recover(uniqueId));\n }\n\n searchPosts(query: string, params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.ensureConfigured().posts.search(query, params));\n }\n\n listDeletedPosts(params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.ensureConfigured().posts.listDeleted(params));\n }\n\n likePost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.like(uniqueId));\n }\n\n dislikePost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.dislike(uniqueId));\n }\n\n savePost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.save(uniqueId));\n }\n\n followPost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.follow(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Comments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listComments(params?: ListCommentsParams): Observable<PageResult<Comment>> {\n return from(this.ensureConfigured().comments.list(params));\n }\n\n getComment(uniqueId: string): Observable<Comment> {\n return from(this.ensureConfigured().comments.get(uniqueId));\n }\n\n createComment(data: CreateCommentRequest): Observable<Comment> {\n return from(this.ensureConfigured().comments.create(data));\n }\n\n updateComment(uniqueId: string, data: UpdateCommentRequest): Observable<Comment> {\n return from(this.ensureConfigured().comments.update(uniqueId, data));\n }\n\n deleteComment(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().comments.delete(uniqueId));\n }\n\n likeComment(uniqueId: string): Observable<Comment> {\n return from(this.ensureConfigured().comments.like(uniqueId));\n }\n\n dislikeComment(uniqueId: string): Observable<Comment> {\n return from(this.ensureConfigured().comments.dislike(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Categories Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listCategories(params?: ListCategoriesParams): Observable<PageResult<Category>> {\n return from(this.ensureConfigured().categories.list(params));\n }\n\n getCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.get(uniqueId));\n }\n\n createCategory(data: CreateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.create(data));\n }\n\n updateCategory(uniqueId: string, data: UpdateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.update(uniqueId, data));\n }\n\n deleteCategory(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().categories.delete(uniqueId));\n }\n\n recoverCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.recover(uniqueId));\n }\n\n getCategoryChildren(uniqueId: string): Observable<Category[]> {\n return from(this.ensureConfigured().categories.getChildren(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Tags Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listTags(params?: ListTagsParams): Observable<PageResult<Tag>> {\n return from(this.ensureConfigured().tags.list(params));\n }\n\n getTag(uniqueId: string): Observable<Tag> {\n return from(this.ensureConfigured().tags.get(uniqueId));\n }\n\n createTag(data: CreateTagRequest): Observable<Tag> {\n return from(this.ensureConfigured().tags.create(data));\n }\n\n updateTag(uniqueId: string, data: UpdateTagRequest): Observable<Tag> {\n return from(this.ensureConfigured().tags.update(uniqueId, data));\n }\n\n deleteTag(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().tags.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): ContentBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createContentBlock","TRANSPORT","CONTENT_TRANSPORT","CONTENT_CONFIG","ContentService","ensureConfigured","block","Error","listPosts","params","posts","list","getPost","uniqueId","get","createPost","data","create","updatePost","update","deletePost","delete","recoverPost","recover","searchPosts","query","search","listDeletedPosts","listDeleted","likePost","like","dislikePost","dislike","savePost","save","followPost","follow","listComments","comments","getComment","createComment","updateComment","deleteComment","likeComment","dislikeComment","listCategories","categories","getCategory","createCategory","updateCategory","deleteCategory","recoverCategory","getCategoryChildren","getChildren","listTags","tags","getTag","createTag","updateTag","deleteTag","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,139 +1,147 @@
1
1
  import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
2
2
  import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
3
3
  import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
4
- import { Injectable, Inject } from '@angular/core';
4
+ import { Injectable, Inject, Optional } from '@angular/core';
5
5
  import { from } from 'rxjs';
6
6
  import { createConversationsBlock } from '@23blocks/block-conversations';
7
- import { TRANSPORT, CONVERSATIONS_CONFIG } from '../tokens.js';
7
+ import { TRANSPORT, CONVERSATIONS_TRANSPORT, CONVERSATIONS_CONFIG } from '../tokens.js';
8
8
  export class ConversationsService {
9
+ /**
10
+ * Ensure the service is configured, throw helpful error if not
11
+ */ ensureConfigured() {
12
+ if (!this.block) {
13
+ throw new Error('[23blocks] ConversationsService is not configured. ' + "Add 'urls.conversations' to your provideBlocks23() configuration.");
14
+ }
15
+ return this.block;
16
+ }
9
17
  // ─────────────────────────────────────────────────────────────────────────────
10
18
  // Messages Service
11
19
  // ─────────────────────────────────────────────────────────────────────────────
12
20
  listMessages(params) {
13
- return from(this.block.messages.list(params));
21
+ return from(this.ensureConfigured().messages.list(params));
14
22
  }
15
23
  getMessage(uniqueId) {
16
- return from(this.block.messages.get(uniqueId));
24
+ return from(this.ensureConfigured().messages.get(uniqueId));
17
25
  }
18
26
  createMessage(data) {
19
- return from(this.block.messages.create(data));
27
+ return from(this.ensureConfigured().messages.create(data));
20
28
  }
21
29
  updateMessage(uniqueId, data) {
22
- return from(this.block.messages.update(uniqueId, data));
30
+ return from(this.ensureConfigured().messages.update(uniqueId, data));
23
31
  }
24
32
  deleteMessage(uniqueId) {
25
- return from(this.block.messages.delete(uniqueId));
33
+ return from(this.ensureConfigured().messages.delete(uniqueId));
26
34
  }
27
35
  recoverMessage(uniqueId) {
28
- return from(this.block.messages.recover(uniqueId));
36
+ return from(this.ensureConfigured().messages.recover(uniqueId));
29
37
  }
30
38
  listMessagesByContext(contextId, params) {
31
- return from(this.block.messages.listByContext(contextId, params));
39
+ return from(this.ensureConfigured().messages.listByContext(contextId, params));
32
40
  }
33
41
  listMessagesByParent(parentId, params) {
34
- return from(this.block.messages.listByParent(parentId, params));
42
+ return from(this.ensureConfigured().messages.listByParent(parentId, params));
35
43
  }
36
44
  listDeletedMessages(params) {
37
- return from(this.block.messages.listDeleted(params));
45
+ return from(this.ensureConfigured().messages.listDeleted(params));
38
46
  }
39
47
  // ─────────────────────────────────────────────────────────────────────────────
40
48
  // Draft Messages Service
41
49
  // ─────────────────────────────────────────────────────────────────────────────
42
50
  listDraftMessages(params) {
43
- return from(this.block.draftMessages.list(params));
51
+ return from(this.ensureConfigured().draftMessages.list(params));
44
52
  }
45
53
  getDraftMessage(uniqueId) {
46
- return from(this.block.draftMessages.get(uniqueId));
54
+ return from(this.ensureConfigured().draftMessages.get(uniqueId));
47
55
  }
48
56
  createDraftMessage(data) {
49
- return from(this.block.draftMessages.create(data));
57
+ return from(this.ensureConfigured().draftMessages.create(data));
50
58
  }
51
59
  updateDraftMessage(uniqueId, data) {
52
- return from(this.block.draftMessages.update(uniqueId, data));
60
+ return from(this.ensureConfigured().draftMessages.update(uniqueId, data));
53
61
  }
54
62
  deleteDraftMessage(uniqueId) {
55
- return from(this.block.draftMessages.delete(uniqueId));
63
+ return from(this.ensureConfigured().draftMessages.delete(uniqueId));
56
64
  }
57
65
  listDraftMessagesByContext(contextId, params) {
58
- return from(this.block.draftMessages.listByContext(contextId, params));
66
+ return from(this.ensureConfigured().draftMessages.listByContext(contextId, params));
59
67
  }
60
68
  publishDraftMessage(uniqueId) {
61
- return from(this.block.draftMessages.publish(uniqueId));
69
+ return from(this.ensureConfigured().draftMessages.publish(uniqueId));
62
70
  }
63
71
  // ─────────────────────────────────────────────────────────────────────────────
64
72
  // Groups Service
65
73
  // ─────────────────────────────────────────────────────────────────────────────
66
74
  listGroups(params) {
67
- return from(this.block.groups.list(params));
75
+ return from(this.ensureConfigured().groups.list(params));
68
76
  }
69
77
  getGroup(uniqueId) {
70
- return from(this.block.groups.get(uniqueId));
78
+ return from(this.ensureConfigured().groups.get(uniqueId));
71
79
  }
72
80
  createGroup(data) {
73
- return from(this.block.groups.create(data));
81
+ return from(this.ensureConfigured().groups.create(data));
74
82
  }
75
83
  updateGroup(uniqueId, data) {
76
- return from(this.block.groups.update(uniqueId, data));
84
+ return from(this.ensureConfigured().groups.update(uniqueId, data));
77
85
  }
78
86
  deleteGroup(uniqueId) {
79
- return from(this.block.groups.delete(uniqueId));
87
+ return from(this.ensureConfigured().groups.delete(uniqueId));
80
88
  }
81
89
  recoverGroup(uniqueId) {
82
- return from(this.block.groups.recover(uniqueId));
90
+ return from(this.ensureConfigured().groups.recover(uniqueId));
83
91
  }
84
92
  searchGroups(query, params) {
85
- return from(this.block.groups.search(query, params));
93
+ return from(this.ensureConfigured().groups.search(query, params));
86
94
  }
87
95
  listDeletedGroups(params) {
88
- return from(this.block.groups.listDeleted(params));
96
+ return from(this.ensureConfigured().groups.listDeleted(params));
89
97
  }
90
98
  addGroupMember(uniqueId, memberId) {
91
- return from(this.block.groups.addMember(uniqueId, memberId));
99
+ return from(this.ensureConfigured().groups.addMember(uniqueId, memberId));
92
100
  }
93
101
  removeGroupMember(uniqueId, memberId) {
94
- return from(this.block.groups.removeMember(uniqueId, memberId));
102
+ return from(this.ensureConfigured().groups.removeMember(uniqueId, memberId));
95
103
  }
96
104
  // ─────────────────────────────────────────────────────────────────────────────
97
105
  // Notifications Service
98
106
  // ─────────────────────────────────────────────────────────────────────────────
99
107
  listNotifications(params) {
100
- return from(this.block.notifications.list(params));
108
+ return from(this.ensureConfigured().notifications.list(params));
101
109
  }
102
110
  getNotification(uniqueId) {
103
- return from(this.block.notifications.get(uniqueId));
111
+ return from(this.ensureConfigured().notifications.get(uniqueId));
104
112
  }
105
113
  createNotification(data) {
106
- return from(this.block.notifications.create(data));
114
+ return from(this.ensureConfigured().notifications.create(data));
107
115
  }
108
116
  updateNotification(uniqueId, data) {
109
- return from(this.block.notifications.update(uniqueId, data));
117
+ return from(this.ensureConfigured().notifications.update(uniqueId, data));
110
118
  }
111
119
  deleteNotification(uniqueId) {
112
- return from(this.block.notifications.delete(uniqueId));
120
+ return from(this.ensureConfigured().notifications.delete(uniqueId));
113
121
  }
114
122
  markNotificationAsRead(uniqueId) {
115
- return from(this.block.notifications.markAsRead(uniqueId));
123
+ return from(this.ensureConfigured().notifications.markAsRead(uniqueId));
116
124
  }
117
125
  markNotificationAsUnread(uniqueId) {
118
- return from(this.block.notifications.markAsUnread(uniqueId));
126
+ return from(this.ensureConfigured().notifications.markAsUnread(uniqueId));
119
127
  }
120
128
  listNotificationsByTarget(targetId, params) {
121
- return from(this.block.notifications.listByTarget(targetId, params));
129
+ return from(this.ensureConfigured().notifications.listByTarget(targetId, params));
122
130
  }
123
131
  listUnreadNotifications(params) {
124
- return from(this.block.notifications.listUnread(params));
132
+ return from(this.ensureConfigured().notifications.listUnread(params));
125
133
  }
126
134
  // ─────────────────────────────────────────────────────────────────────────────
127
135
  // Conversations Service
128
136
  // ─────────────────────────────────────────────────────────────────────────────
129
137
  getConversation(params) {
130
- return from(this.block.conversations.get(params));
138
+ return from(this.ensureConfigured().conversations.get(params));
131
139
  }
132
140
  listContexts() {
133
- return from(this.block.conversations.listContexts());
141
+ return from(this.ensureConfigured().conversations.listContexts());
134
142
  }
135
143
  deleteContext(context) {
136
- return from(this.block.conversations.deleteContext(context));
144
+ return from(this.ensureConfigured().conversations.deleteContext(context));
137
145
  }
138
146
  // ─────────────────────────────────────────────────────────────────────────────
139
147
  // Direct Block Access (for advanced usage)
@@ -142,21 +150,26 @@ export class ConversationsService {
142
150
  * Access the underlying block for advanced operations
143
151
  * Use this when you need access to services not wrapped by this Angular service
144
152
  */ get rawBlock() {
145
- return this.block;
153
+ return this.ensureConfigured();
146
154
  }
147
- constructor(transport, config){
148
- this.block = createConversationsBlock(transport, config);
155
+ constructor(serviceTransport, legacyTransport, config){
156
+ const transport = serviceTransport != null ? serviceTransport : legacyTransport;
157
+ this.block = transport ? createConversationsBlock(transport, config) : null;
149
158
  }
150
159
  }
151
160
  ConversationsService = _ts_decorate([
152
161
  Injectable({
153
162
  providedIn: 'root'
154
163
  }),
155
- _ts_param(0, Inject(TRANSPORT)),
156
- _ts_param(1, Inject(CONVERSATIONS_CONFIG)),
164
+ _ts_param(0, Optional()),
165
+ _ts_param(0, Inject(CONVERSATIONS_TRANSPORT)),
166
+ _ts_param(1, Optional()),
167
+ _ts_param(1, Inject(TRANSPORT)),
168
+ _ts_param(2, Inject(CONVERSATIONS_CONFIG)),
157
169
  _ts_metadata("design:type", Function),
158
170
  _ts_metadata("design:paramtypes", [
159
- typeof Transport === "undefined" ? Object : Transport,
171
+ Object,
172
+ Object,
160
173
  typeof ConversationsBlockConfig === "undefined" ? Object : ConversationsBlockConfig
161
174
  ])
162
175
  ], ConversationsService);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/conversations/conversations.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createConversationsBlock,\n type ConversationsBlock,\n type ConversationsBlockConfig,\n type Message,\n type CreateMessageRequest,\n type UpdateMessageRequest,\n type ListMessagesParams,\n type DraftMessage,\n type CreateDraftMessageRequest,\n type UpdateDraftMessageRequest,\n type ListDraftMessagesParams,\n type Group,\n type CreateGroupRequest,\n type UpdateGroupRequest,\n type ListGroupsParams,\n type Notification,\n type CreateNotificationRequest,\n type UpdateNotificationRequest,\n type ListNotificationsParams,\n type Conversation,\n type GetConversationParams,\n} from '@23blocks/block-conversations';\nimport { TRANSPORT, CONVERSATIONS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Conversations block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class ChatComponent {\n * constructor(private conversations: ConversationsService) {}\n *\n * sendMessage(contextId: string, content: string) {\n * this.conversations.createMessage({ contextId, content }).subscribe({\n * next: (message) => console.log('Message sent:', message),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ConversationsService {\n private readonly block: ConversationsBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(CONVERSATIONS_CONFIG) config: ConversationsBlockConfig\n ) {\n this.block = createConversationsBlock(transport, config);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Messages Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMessages(params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.block.messages.list(params));\n }\n\n getMessage(uniqueId: string): Observable<Message> {\n return from(this.block.messages.get(uniqueId));\n }\n\n createMessage(data: CreateMessageRequest): Observable<Message> {\n return from(this.block.messages.create(data));\n }\n\n updateMessage(uniqueId: string, data: UpdateMessageRequest): Observable<Message> {\n return from(this.block.messages.update(uniqueId, data));\n }\n\n deleteMessage(uniqueId: string): Observable<void> {\n return from(this.block.messages.delete(uniqueId));\n }\n\n recoverMessage(uniqueId: string): Observable<Message> {\n return from(this.block.messages.recover(uniqueId));\n }\n\n listMessagesByContext(contextId: string, params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.block.messages.listByContext(contextId, params));\n }\n\n listMessagesByParent(parentId: string, params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.block.messages.listByParent(parentId, params));\n }\n\n listDeletedMessages(params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.block.messages.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Draft Messages Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listDraftMessages(params?: ListDraftMessagesParams): Observable<PageResult<DraftMessage>> {\n return from(this.block.draftMessages.list(params));\n }\n\n getDraftMessage(uniqueId: string): Observable<DraftMessage> {\n return from(this.block.draftMessages.get(uniqueId));\n }\n\n createDraftMessage(data: CreateDraftMessageRequest): Observable<DraftMessage> {\n return from(this.block.draftMessages.create(data));\n }\n\n updateDraftMessage(uniqueId: string, data: UpdateDraftMessageRequest): Observable<DraftMessage> {\n return from(this.block.draftMessages.update(uniqueId, data));\n }\n\n deleteDraftMessage(uniqueId: string): Observable<void> {\n return from(this.block.draftMessages.delete(uniqueId));\n }\n\n listDraftMessagesByContext(contextId: string, params?: ListDraftMessagesParams): Observable<PageResult<DraftMessage>> {\n return from(this.block.draftMessages.listByContext(contextId, params));\n }\n\n publishDraftMessage(uniqueId: string): Observable<DraftMessage> {\n return from(this.block.draftMessages.publish(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Groups Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listGroups(params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.block.groups.list(params));\n }\n\n getGroup(uniqueId: string): Observable<Group> {\n return from(this.block.groups.get(uniqueId));\n }\n\n createGroup(data: CreateGroupRequest): Observable<Group> {\n return from(this.block.groups.create(data));\n }\n\n updateGroup(uniqueId: string, data: UpdateGroupRequest): Observable<Group> {\n return from(this.block.groups.update(uniqueId, data));\n }\n\n deleteGroup(uniqueId: string): Observable<void> {\n return from(this.block.groups.delete(uniqueId));\n }\n\n recoverGroup(uniqueId: string): Observable<Group> {\n return from(this.block.groups.recover(uniqueId));\n }\n\n searchGroups(query: string, params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.block.groups.search(query, params));\n }\n\n listDeletedGroups(params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.block.groups.listDeleted(params));\n }\n\n addGroupMember(uniqueId: string, memberId: string): Observable<Group> {\n return from(this.block.groups.addMember(uniqueId, memberId));\n }\n\n removeGroupMember(uniqueId: string, memberId: string): Observable<Group> {\n return from(this.block.groups.removeMember(uniqueId, memberId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Notifications Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listNotifications(params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.block.notifications.list(params));\n }\n\n getNotification(uniqueId: string): Observable<Notification> {\n return from(this.block.notifications.get(uniqueId));\n }\n\n createNotification(data: CreateNotificationRequest): Observable<Notification> {\n return from(this.block.notifications.create(data));\n }\n\n updateNotification(uniqueId: string, data: UpdateNotificationRequest): Observable<Notification> {\n return from(this.block.notifications.update(uniqueId, data));\n }\n\n deleteNotification(uniqueId: string): Observable<void> {\n return from(this.block.notifications.delete(uniqueId));\n }\n\n markNotificationAsRead(uniqueId: string): Observable<Notification> {\n return from(this.block.notifications.markAsRead(uniqueId));\n }\n\n markNotificationAsUnread(uniqueId: string): Observable<Notification> {\n return from(this.block.notifications.markAsUnread(uniqueId));\n }\n\n listNotificationsByTarget(targetId: string, params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.block.notifications.listByTarget(targetId, params));\n }\n\n listUnreadNotifications(params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.block.notifications.listUnread(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Conversations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getConversation(params: GetConversationParams): Observable<Conversation> {\n return from(this.block.conversations.get(params));\n }\n\n listContexts(): Observable<string[]> {\n return from(this.block.conversations.listContexts());\n }\n\n deleteContext(context: string): Observable<void> {\n return from(this.block.conversations.deleteContext(context));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): ConversationsBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createConversationsBlock","TRANSPORT","CONVERSATIONS_CONFIG","ConversationsService","listMessages","params","block","messages","list","getMessage","uniqueId","get","createMessage","data","create","updateMessage","update","deleteMessage","delete","recoverMessage","recover","listMessagesByContext","contextId","listByContext","listMessagesByParent","parentId","listByParent","listDeletedMessages","listDeleted","listDraftMessages","draftMessages","getDraftMessage","createDraftMessage","updateDraftMessage","deleteDraftMessage","listDraftMessagesByContext","publishDraftMessage","publish","listGroups","groups","getGroup","createGroup","updateGroup","deleteGroup","recoverGroup","searchGroups","query","search","listDeletedGroups","addGroupMember","memberId","addMember","removeGroupMember","removeMember","listNotifications","notifications","getNotification","createNotification","updateNotification","deleteNotification","markNotificationAsRead","markAsRead","markNotificationAsUnread","markAsUnread","listNotificationsByTarget","targetId","listByTarget","listUnreadNotifications","listUnread","getConversation","conversations","listContexts","deleteContext","context","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/conversations/conversations.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createConversationsBlock,\n type ConversationsBlock,\n type ConversationsBlockConfig,\n type Message,\n type CreateMessageRequest,\n type UpdateMessageRequest,\n type ListMessagesParams,\n type DraftMessage,\n type CreateDraftMessageRequest,\n type UpdateDraftMessageRequest,\n type ListDraftMessagesParams,\n type Group,\n type CreateGroupRequest,\n type UpdateGroupRequest,\n type ListGroupsParams,\n type Notification,\n type CreateNotificationRequest,\n type UpdateNotificationRequest,\n type ListNotificationsParams,\n type Conversation,\n type GetConversationParams,\n} from '@23blocks/block-conversations';\nimport { TRANSPORT, CONVERSATIONS_TRANSPORT, CONVERSATIONS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Conversations block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class ChatComponent {\n * constructor(private conversations: ConversationsService) {}\n *\n * sendMessage(contextId: string, content: string) {\n * this.conversations.createMessage({ contextId, content }).subscribe({\n * next: (message) => console.log('Message sent:', message),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ConversationsService {\n private readonly block: ConversationsBlock | null;\n\n constructor(\n @Optional() @Inject(CONVERSATIONS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CONVERSATIONS_CONFIG) config: ConversationsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createConversationsBlock(transport, config) : null;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): ConversationsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ConversationsService is not configured. ' +\n \"Add 'urls.conversations' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Messages Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMessages(params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.list(params));\n }\n\n getMessage(uniqueId: string): Observable<Message> {\n return from(this.ensureConfigured().messages.get(uniqueId));\n }\n\n createMessage(data: CreateMessageRequest): Observable<Message> {\n return from(this.ensureConfigured().messages.create(data));\n }\n\n updateMessage(uniqueId: string, data: UpdateMessageRequest): Observable<Message> {\n return from(this.ensureConfigured().messages.update(uniqueId, data));\n }\n\n deleteMessage(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().messages.delete(uniqueId));\n }\n\n recoverMessage(uniqueId: string): Observable<Message> {\n return from(this.ensureConfigured().messages.recover(uniqueId));\n }\n\n listMessagesByContext(contextId: string, params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.listByContext(contextId, params));\n }\n\n listMessagesByParent(parentId: string, params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.listByParent(parentId, params));\n }\n\n listDeletedMessages(params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Draft Messages Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listDraftMessages(params?: ListDraftMessagesParams): Observable<PageResult<DraftMessage>> {\n return from(this.ensureConfigured().draftMessages.list(params));\n }\n\n getDraftMessage(uniqueId: string): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.get(uniqueId));\n }\n\n createDraftMessage(data: CreateDraftMessageRequest): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.create(data));\n }\n\n updateDraftMessage(uniqueId: string, data: UpdateDraftMessageRequest): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.update(uniqueId, data));\n }\n\n deleteDraftMessage(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().draftMessages.delete(uniqueId));\n }\n\n listDraftMessagesByContext(contextId: string, params?: ListDraftMessagesParams): Observable<PageResult<DraftMessage>> {\n return from(this.ensureConfigured().draftMessages.listByContext(contextId, params));\n }\n\n publishDraftMessage(uniqueId: string): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.publish(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Groups Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listGroups(params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().groups.list(params));\n }\n\n getGroup(uniqueId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.get(uniqueId));\n }\n\n createGroup(data: CreateGroupRequest): Observable<Group> {\n return from(this.ensureConfigured().groups.create(data));\n }\n\n updateGroup(uniqueId: string, data: UpdateGroupRequest): Observable<Group> {\n return from(this.ensureConfigured().groups.update(uniqueId, data));\n }\n\n deleteGroup(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().groups.delete(uniqueId));\n }\n\n recoverGroup(uniqueId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.recover(uniqueId));\n }\n\n searchGroups(query: string, params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().groups.search(query, params));\n }\n\n listDeletedGroups(params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().groups.listDeleted(params));\n }\n\n addGroupMember(uniqueId: string, memberId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.addMember(uniqueId, memberId));\n }\n\n removeGroupMember(uniqueId: string, memberId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.removeMember(uniqueId, memberId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Notifications Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listNotifications(params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.ensureConfigured().notifications.list(params));\n }\n\n getNotification(uniqueId: string): Observable<Notification> {\n return from(this.ensureConfigured().notifications.get(uniqueId));\n }\n\n createNotification(data: CreateNotificationRequest): Observable<Notification> {\n return from(this.ensureConfigured().notifications.create(data));\n }\n\n updateNotification(uniqueId: string, data: UpdateNotificationRequest): Observable<Notification> {\n return from(this.ensureConfigured().notifications.update(uniqueId, data));\n }\n\n deleteNotification(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().notifications.delete(uniqueId));\n }\n\n markNotificationAsRead(uniqueId: string): Observable<Notification> {\n return from(this.ensureConfigured().notifications.markAsRead(uniqueId));\n }\n\n markNotificationAsUnread(uniqueId: string): Observable<Notification> {\n return from(this.ensureConfigured().notifications.markAsUnread(uniqueId));\n }\n\n listNotificationsByTarget(targetId: string, params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.ensureConfigured().notifications.listByTarget(targetId, params));\n }\n\n listUnreadNotifications(params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.ensureConfigured().notifications.listUnread(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Conversations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getConversation(params: GetConversationParams): Observable<Conversation> {\n return from(this.ensureConfigured().conversations.get(params));\n }\n\n listContexts(): Observable<string[]> {\n return from(this.ensureConfigured().conversations.listContexts());\n }\n\n deleteContext(context: string): Observable<void> {\n return from(this.ensureConfigured().conversations.deleteContext(context));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): ConversationsBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createConversationsBlock","TRANSPORT","CONVERSATIONS_TRANSPORT","CONVERSATIONS_CONFIG","ConversationsService","ensureConfigured","block","Error","listMessages","params","messages","list","getMessage","uniqueId","get","createMessage","data","create","updateMessage","update","deleteMessage","delete","recoverMessage","recover","listMessagesByContext","contextId","listByContext","listMessagesByParent","parentId","listByParent","listDeletedMessages","listDeleted","listDraftMessages","draftMessages","getDraftMessage","createDraftMessage","updateDraftMessage","deleteDraftMessage","listDraftMessagesByContext","publishDraftMessage","publish","listGroups","groups","getGroup","createGroup","updateGroup","deleteGroup","recoverGroup","searchGroups","query","search","listDeletedGroups","addGroupMember","memberId","addMember","removeGroupMember","removeMember","listNotifications","notifications","getNotification","createNotification","updateNotification","deleteNotification","markNotificationAsRead","markAsRead","markNotificationAsUnread","markAsUnread","listNotificationsByTarget","targetId","listByTarget","listUnreadNotifications","listUnread","getConversation","conversations","listContexts","deleteContext","context","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}