@messenger-box/platform-server 10.0.3-alpha.95 → 10.0.3-alpha.96

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 (68) hide show
  1. package/lib/containers/containers.js +1 -4
  2. package/lib/containers/containers.js.map +1 -1
  3. package/lib/containers/context-services-from-container.js +1 -2
  4. package/lib/containers/context-services-from-container.js.map +1 -1
  5. package/lib/graphql/resolvers/channel.js +2 -10
  6. package/lib/graphql/resolvers/channel.js.map +1 -1
  7. package/lib/graphql/resolvers/index.js +1 -1
  8. package/lib/graphql/resolvers/index.js.map +1 -1
  9. package/lib/graphql/resolvers/post.js +3 -30
  10. package/lib/graphql/resolvers/post.js.map +1 -1
  11. package/lib/graphql/schema/channel.graphql +17 -2
  12. package/lib/graphql/schema/channel.graphql.js +1 -1
  13. package/lib/graphql/schema/index.js +2 -2
  14. package/lib/graphql/schema/index.js.map +1 -1
  15. package/lib/graphql/schema/post.graphql +16 -2
  16. package/lib/graphql/schema/post.graphql.js +1 -1
  17. package/lib/inngest/factory.js +2 -2
  18. package/lib/inngest/factory.js.map +1 -1
  19. package/lib/inngest/functions.d.ts +0 -96
  20. package/lib/inngest/functions.js +88 -815
  21. package/lib/inngest/functions.js.map +1 -1
  22. package/lib/module.js +2 -2
  23. package/lib/module.js.map +1 -1
  24. package/lib/plugins/index.d.ts +0 -1
  25. package/lib/services/channel-service.js +2 -2
  26. package/lib/services/channel-service.js.map +1 -1
  27. package/lib/services/index.d.ts +0 -1
  28. package/lib/services/post-service.d.ts +2 -3
  29. package/lib/services/post-service.js +8 -10
  30. package/lib/services/post-service.js.map +1 -1
  31. package/lib/services/proxy-services/index.d.ts +0 -1
  32. package/lib/store/models/index.d.ts +0 -1
  33. package/lib/store/repositories/channel-repository.js +1 -1
  34. package/lib/store/repositories/channel-repository.js.map +1 -1
  35. package/lib/store/repositories/index.d.ts +0 -1
  36. package/lib/store/repositories/post-repository.js +1 -1
  37. package/lib/store/repositories/post-repository.js.map +1 -1
  38. package/lib/store/repositories/post-thread-repository.js +1 -1
  39. package/lib/store/repositories/post-thread-repository.js.map +1 -1
  40. package/lib/store/repositories/reaction-repository.js +1 -1
  41. package/lib/store/repositories/reaction-repository.js.map +1 -1
  42. package/lib/templates/constants/SERVER_TYPES.ts.template +0 -3
  43. package/lib/templates/constants/WorkflowNamespace.ts.template +10 -0
  44. package/lib/templates/services/PostService.ts.template +8 -8
  45. package/package.json +6 -7
  46. package/lib/graphql/resolvers/ai-fragment.d.ts +0 -3
  47. package/lib/graphql/resolvers/ai-fragment.js +0 -276
  48. package/lib/graphql/resolvers/ai-fragment.js.map +0 -1
  49. package/lib/graphql/schema/ai-fragment.graphql +0 -311
  50. package/lib/graphql/schema/ai-fragment.graphql.js +0 -1
  51. package/lib/graphql/schema/ai-fragment.graphql.js.map +0 -1
  52. package/lib/plugins/ai-fragment-moleculer-service.d.ts +0 -29
  53. package/lib/plugins/ai-fragment-moleculer-service.js +0 -516
  54. package/lib/plugins/ai-fragment-moleculer-service.js.map +0 -1
  55. package/lib/services/ai-fragment-service.d.ts +0 -195
  56. package/lib/services/ai-fragment-service.js +0 -631
  57. package/lib/services/ai-fragment-service.js.map +0 -1
  58. package/lib/services/proxy-services/ai-fragment-microservice.d.ts +0 -23
  59. package/lib/services/proxy-services/ai-fragment-microservice.js +0 -75
  60. package/lib/services/proxy-services/ai-fragment-microservice.js.map +0 -1
  61. package/lib/store/models/ai-fragment.d.ts +0 -4
  62. package/lib/store/models/ai-fragment.js +0 -125
  63. package/lib/store/models/ai-fragment.js.map +0 -1
  64. package/lib/store/repositories/ai-fragment-repository.d.ts +0 -15
  65. package/lib/store/repositories/ai-fragment-repository.js +0 -69
  66. package/lib/store/repositories/ai-fragment-repository.js.map +0 -1
  67. package/lib/templates/repositories/AiFragmentRepository.ts.template +0 -4
  68. package/lib/templates/services/AiFragmentService.ts.template +0 -123
@@ -1,631 +0,0 @@
1
- import {__decorate,__param,__metadata}from'tslib';import {injectable,inject}from'inversify';import {ServiceBroker}from'moleculer';import {SERVER_TYPES,AiFragmentSyncStatus}from'common/server';import {CommonType}from'@common-stack/core';import'@cdm-logger/core';import {DisposableCollection}from'@adminide-stack/core';/**
2
- * AI Fragment Service Implementation
3
- *
4
- * This service handles comprehensive AI fragment management within the messenger platform,
5
- * providing operations for creating, managing, and synchronizing AI-generated code fragments
6
- * with sandbox environments and file version control.
7
- *
8
- * Key capabilities:
9
- * - AI fragment creation and lifecycle management
10
- * - Sandbox URL management and synchronization
11
- * - File version control and conflict resolution
12
- * - Canvas layer support for visual components
13
- * - Template-based fragment generation
14
- * - Organization and user-based fragment retrieval
15
- * - Real-time file synchronization status tracking
16
- * - Batch operations for fragment management
17
- * - Cross-platform fragment compatibility
18
- *
19
- * The service integrates with the AI fragment repository and provides comprehensive
20
- * error handling and logging for fragment management workflows.
21
- */
22
- let AiFragmentService = class AiFragmentService {
23
- aiFragmentRepository;
24
- broker;
25
- toDispose = new DisposableCollection();
26
- logger;
27
- constructor(aiFragmentRepository, broker, logger) {
28
- this.aiFragmentRepository = aiFragmentRepository;
29
- this.broker = broker;
30
- this.logger = logger?.child({
31
- className: 'AiFragmentService'
32
- });
33
- }
34
- /**
35
- * Disposes of resources used by the service
36
- */
37
- dispose() {
38
- this.toDispose.dispose();
39
- }
40
- // IBaseService implementation methods
41
- /**
42
- * Retrieves documents with pagination and total count
43
- */
44
- async getAllWithCount(options) {
45
- try {
46
- this.logger.debug('Getting AI fragments with count', {
47
- options
48
- });
49
- return await this.aiFragmentRepository.getAllWithCount(options);
50
- } catch (error) {
51
- this.logger.error('Error getting AI fragments with count: %o', error);
52
- throw error;
53
- }
54
- }
55
- /**
56
- * Counts documents matching the specified conditions
57
- */
58
- async count(conditions) {
59
- try {
60
- this.logger.debug('Counting AI fragments', {
61
- conditions
62
- });
63
- return await this.aiFragmentRepository.count(conditions);
64
- } catch (error) {
65
- this.logger.error('Error counting AI fragments: %o', error);
66
- throw error;
67
- }
68
- }
69
- /**
70
- * Retrieves a single document by ID or matching the specified conditions
71
- */
72
- async get(conditions) {
73
- try {
74
- this.logger.debug('Getting AI fragment', {
75
- conditions
76
- });
77
- return await this.aiFragmentRepository.get(conditions);
78
- } catch (error) {
79
- this.logger.error('Error getting AI fragment: %o', error);
80
- throw error;
81
- }
82
- }
83
- /**
84
- * Retrieves a single document by name field
85
- */
86
- async getByName(name) {
87
- try {
88
- this.logger.debug('Getting AI fragment by name', {
89
- name
90
- });
91
- return await this.aiFragmentRepository.find({
92
- title: name
93
- });
94
- } catch (error) {
95
- this.logger.error('Error getting AI fragment by name: %o', error);
96
- throw error;
97
- }
98
- }
99
- /**
100
- * Retrieves documents matching the specified options
101
- */
102
- async getAll(options) {
103
- try {
104
- this.logger.debug('Getting all AI fragments', {
105
- options
106
- });
107
- return await this.aiFragmentRepository.getAll(options);
108
- } catch (error) {
109
- this.logger.error('Error getting all AI fragments: %o', error);
110
- throw error;
111
- }
112
- }
113
- /**
114
- * Retrieves multiple documents by their IDs
115
- */
116
- async getByIds(ids) {
117
- try {
118
- this.logger.debug('Getting AI fragments by IDs', {
119
- ids
120
- });
121
- return await this.aiFragmentRepository.getAll({
122
- criteria: {
123
- _id: {
124
- $in: ids
125
- }
126
- }
127
- });
128
- } catch (error) {
129
- this.logger.error('Error getting AI fragments by IDs: %o', error);
130
- throw error;
131
- }
132
- }
133
- /**
134
- * Creates a new document
135
- */
136
- async create(data) {
137
- try {
138
- this.logger.debug('Creating AI fragment', {
139
- data
140
- });
141
- return await this.aiFragmentRepository.create(data);
142
- } catch (error) {
143
- this.logger.error('Error creating AI fragment: %o', error);
144
- throw error;
145
- }
146
- }
147
- /**
148
- * Creates multiple documents in a single operation
149
- */
150
- async bulkCreate(data) {
151
- try {
152
- this.logger.debug('Bulk creating AI fragments', {
153
- count: data.length
154
- });
155
- const results = await Promise.all(data.map(item => this.aiFragmentRepository.create(item)));
156
- return results;
157
- } catch (error) {
158
- this.logger.error('Error bulk creating AI fragments: %o', error);
159
- throw error;
160
- }
161
- }
162
- /**
163
- * Updates a document by ID
164
- */
165
- async update(id, data) {
166
- try {
167
- this.logger.debug('Updating AI fragment', {
168
- id,
169
- data
170
- });
171
- return await this.aiFragmentRepository.update({
172
- _id: id
173
- }, data);
174
- } catch (error) {
175
- this.logger.error('Error updating AI fragment: %o', error);
176
- throw error;
177
- }
178
- }
179
- /**
180
- * Updates multiple documents
181
- */
182
- async bulkUpdate(conditions, data) {
183
- try {
184
- this.logger.debug('Bulk updating AI fragments', {
185
- conditions,
186
- data
187
- });
188
- const result = await this.aiFragmentRepository.bulkUpdate(conditions, data);
189
- return Array.isArray(result) ? result.length : 0;
190
- } catch (error) {
191
- this.logger.error('Error bulk updating AI fragments: %o', error);
192
- throw error;
193
- }
194
- }
195
- /**
196
- * Deletes a document by ID
197
- */
198
- async delete(id) {
199
- try {
200
- this.logger.debug('Deleting AI fragment', {
201
- id
202
- });
203
- return await this.aiFragmentRepository.delete({
204
- _id: id
205
- });
206
- } catch (error) {
207
- this.logger.error('Error deleting AI fragment: %o', error);
208
- throw error;
209
- }
210
- }
211
- /**
212
- * Deletes multiple documents
213
- */
214
- async bulkDelete(conditions) {
215
- try {
216
- this.logger.debug('Bulk deleting AI fragments', {
217
- conditions
218
- });
219
- const result = await this.aiFragmentRepository.bulkDelete(conditions);
220
- return Array.isArray(result) ? result.length : 0;
221
- } catch (error) {
222
- this.logger.error('Error bulk deleting AI fragments: %o', error);
223
- throw error;
224
- }
225
- }
226
- /**
227
- * Inserts a new document
228
- */
229
- async insert(data) {
230
- try {
231
- this.logger.debug('Inserting AI fragment', {
232
- data
233
- });
234
- return await this.aiFragmentRepository.create(data);
235
- } catch (error) {
236
- this.logger.error('Error inserting AI fragment: %o', error);
237
- throw error;
238
- }
239
- }
240
- // AI Fragment specific methods
241
- /**
242
- * Creates a new AI fragment with the specified parameters
243
- *
244
- * @description Creates a new AI fragment with all necessary metadata including
245
- * sandbox URL, files, canvas layers, and template information
246
- *
247
- * @param {IAiFragmentCreateInput & { owner: string; orgName: string }} input - The fragment creation data
248
- * @returns {Promise<AsDomainType<IAiFragmentModel>>} - The created fragment
249
- */
250
- async createFragment(input) {
251
- try {
252
- if (!input) {
253
- throw new Error('Fragment input data is required');
254
- }
255
- if (!input.messageId || !input.sandboxUrl || !input.title || !input.owner || !input.orgName) {
256
- throw new Error('Required fields (messageId, sandboxUrl, title, owner, orgName) are missing');
257
- }
258
- this.logger.debug('Creating AI fragment', {
259
- messageId: input.messageId,
260
- title: input.title,
261
- owner: input.owner,
262
- orgName: input.orgName,
263
- hasFiles: !!input.files,
264
- hasCanvasLayers: !!input.canvasLayers,
265
- template: input.template
266
- });
267
- const fragmentData = {
268
- messageId: input.messageId,
269
- sandboxUrl: input.sandboxUrl,
270
- title: input.title,
271
- files: input.files || {},
272
- owner: input.owner,
273
- orgName: input.orgName,
274
- canvasLayers: input.canvasLayers || null,
275
- template: input.template || null,
276
- syncStatus: AiFragmentSyncStatus.Synced,
277
- fileVersions: {},
278
- lastSyncAt: new Date()
279
- };
280
- const result = await this.aiFragmentRepository.create(fragmentData);
281
- this.logger.debug('AI fragment created successfully', {
282
- fragmentId: result.id,
283
- messageId: input.messageId
284
- });
285
- return result;
286
- } catch (error) {
287
- this.logger.error('Error creating AI fragment: %o', error);
288
- throw error instanceof Error ? error : new Error('Unknown error occurred while creating AI fragment');
289
- }
290
- }
291
- /**
292
- * Retrieves an AI fragment by its message ID
293
- *
294
- * @description Finds a fragment using its associated message ID
295
- *
296
- * @param {string} messageId - The message ID to search for
297
- * @returns {Promise<AsDomainType<IAiFragmentModel> | null>} - The found fragment or null
298
- */
299
- async getFragmentByMessageId(messageId) {
300
- try {
301
- if (!messageId) {
302
- throw new Error('Message ID is required');
303
- }
304
- this.logger.debug('Getting AI fragment by message ID', {
305
- messageId
306
- });
307
- const result = await this.aiFragmentRepository.find({
308
- messageId
309
- });
310
- if (result) {
311
- this.logger.debug('AI fragment found by message ID', {
312
- fragmentId: result.id,
313
- messageId
314
- });
315
- } else {
316
- this.logger.debug('No AI fragment found for message ID', {
317
- messageId
318
- });
319
- }
320
- return result;
321
- } catch (error) {
322
- this.logger.error('Error getting AI fragment by message ID: %o', error);
323
- throw error instanceof Error ? error : new Error('Unknown error occurred while getting AI fragment by message ID');
324
- }
325
- }
326
- /**
327
- * Retrieves AI fragments for a specific user and organization
328
- *
329
- * @description Gets paginated fragments for a user within an organization
330
- *
331
- * @param {string} orgName - Organization name
332
- * @param {string} owner - Owner identifier
333
- * @param {number} [limit=20] - Maximum number of fragments to return
334
- * @param {number} [skip=0] - Number of fragments to skip
335
- * @returns {Promise<AsDomainType<IAiFragmentModel>[]>} - Array of fragments
336
- */
337
- async getFragmentsByUser(orgName, owner, limit = 20, skip = 0) {
338
- try {
339
- if (!orgName || !owner) {
340
- throw new Error('Organization name and owner are required');
341
- }
342
- this.logger.debug('Getting AI fragments by user', {
343
- orgName,
344
- owner,
345
- limit,
346
- skip
347
- });
348
- const result = await this.aiFragmentRepository.getAll({
349
- criteria: {
350
- orgName,
351
- owner
352
- },
353
- limit,
354
- skip,
355
- sort: {
356
- createdAt: -1
357
- }
358
- });
359
- this.logger.debug('AI fragments retrieved for user', {
360
- orgName,
361
- owner,
362
- count: result.length,
363
- limit,
364
- skip
365
- });
366
- return result;
367
- } catch (error) {
368
- this.logger.error('Error getting AI fragments by user: %o', error);
369
- throw error instanceof Error ? error : new Error('Unknown error occurred while getting AI fragments by user');
370
- }
371
- }
372
- /**
373
- * Updates the files associated with a fragment
374
- *
375
- * @description Updates the files data for a fragment identified by message ID
376
- *
377
- * @param {string} messageId - The message ID of the fragment to update
378
- * @param {Record<string, any>} files - The new files data
379
- * @returns {Promise<AsDomainType<IAiFragmentModel> | null>} - The updated fragment or null
380
- */
381
- async updateFragmentFiles(messageId, files) {
382
- try {
383
- if (!messageId || !files) {
384
- throw new Error('Message ID and files data are required');
385
- }
386
- this.logger.debug('Updating AI fragment files', {
387
- messageId,
388
- fileCount: Object.keys(files).length
389
- });
390
- const result = await this.aiFragmentRepository.update({
391
- messageId
392
- }, {
393
- files
394
- });
395
- if (result) {
396
- this.logger.debug('AI fragment files updated successfully', {
397
- fragmentId: result.id,
398
- messageId
399
- });
400
- } else {
401
- this.logger.debug('No AI fragment found to update files', {
402
- messageId
403
- });
404
- }
405
- return result;
406
- } catch (error) {
407
- this.logger.error('Error updating AI fragment files: %o', error);
408
- throw error instanceof Error ? error : new Error('Unknown error occurred while updating AI fragment files');
409
- }
410
- }
411
- /**
412
- * Deletes an AI fragment by its ID
413
- *
414
- * @description Removes a fragment from the database
415
- *
416
- * @param {string} id - The fragment ID to delete
417
- * @returns {Promise<boolean>} - Success status
418
- */
419
- async deleteFragment(id) {
420
- try {
421
- if (!id) {
422
- throw new Error('Fragment ID is required');
423
- }
424
- this.logger.debug('Deleting AI fragment by ID', {
425
- id
426
- });
427
- const result = await this.aiFragmentRepository.delete({
428
- _id: id
429
- });
430
- this.logger.debug('AI fragment deletion result', {
431
- id,
432
- success: result
433
- });
434
- return result;
435
- } catch (error) {
436
- this.logger.error('Error deleting AI fragment by ID: %o', error);
437
- throw error instanceof Error ? error : new Error('Unknown error occurred while deleting AI fragment');
438
- }
439
- }
440
- /**
441
- * Deletes an AI fragment by its message ID
442
- *
443
- * @description Removes a fragment using its message ID
444
- *
445
- * @param {string} messageId - The message ID of the fragment to delete
446
- * @returns {Promise<boolean>} - Success status
447
- */
448
- async deleteFragmentByMessageId(messageId) {
449
- try {
450
- if (!messageId) {
451
- throw new Error('Message ID is required');
452
- }
453
- this.logger.debug('Deleting AI fragment by message ID', {
454
- messageId
455
- });
456
- const result = await this.aiFragmentRepository.delete({
457
- messageId
458
- });
459
- this.logger.debug('AI fragment deletion by message ID result', {
460
- messageId,
461
- success: result
462
- });
463
- return result;
464
- } catch (error) {
465
- this.logger.error('Error deleting AI fragment by message ID: %o', error);
466
- throw error instanceof Error ? error : new Error('Unknown error occurred while deleting AI fragment by message ID');
467
- }
468
- }
469
- /**
470
- * Retrieves an AI fragment by its ID
471
- *
472
- * @description Gets a fragment using its database ID
473
- *
474
- * @param {string} fragmentId - The fragment ID to retrieve
475
- * @returns {Promise<AsDomainType<IAiFragmentModel> | null>} - The found fragment or null
476
- */
477
- async getFragmentById(fragmentId) {
478
- try {
479
- if (!fragmentId) {
480
- throw new Error('Fragment ID is required');
481
- }
482
- this.logger.debug('Getting AI fragment by ID', {
483
- fragmentId
484
- });
485
- const result = await this.aiFragmentRepository.get(fragmentId);
486
- if (result) {
487
- this.logger.debug('AI fragment found by ID', {
488
- fragmentId
489
- });
490
- } else {
491
- this.logger.debug('No AI fragment found for ID', {
492
- fragmentId
493
- });
494
- }
495
- return result;
496
- } catch (error) {
497
- this.logger.error('Error getting AI fragment by ID: %o', error);
498
- throw error instanceof Error ? error : new Error('Unknown error occurred while getting AI fragment by ID');
499
- }
500
- }
501
- /**
502
- * Updates the sandbox URL for a fragment
503
- *
504
- * @description Updates the sandbox URL for a fragment identified by its ID
505
- *
506
- * @param {string} fragmentId - The fragment ID to update
507
- * @param {string} newSandboxUrl - The new sandbox URL
508
- * @returns {Promise<AsDomainType<IAiFragmentModel> | null>} - The updated fragment or null
509
- */
510
- async updateSandboxUrl(fragmentId, newSandboxUrl) {
511
- try {
512
- if (!fragmentId || !newSandboxUrl) {
513
- throw new Error('Fragment ID and new sandbox URL are required');
514
- }
515
- this.logger.debug('Updating AI fragment sandbox URL', {
516
- fragmentId,
517
- newSandboxUrl
518
- });
519
- const result = await this.aiFragmentRepository.update({
520
- _id: fragmentId
521
- }, {
522
- sandboxUrl: newSandboxUrl
523
- });
524
- if (result) {
525
- this.logger.debug('AI fragment sandbox URL updated successfully', {
526
- fragmentId,
527
- newSandboxUrl
528
- });
529
- } else {
530
- this.logger.debug('No AI fragment found to update sandbox URL', {
531
- fragmentId
532
- });
533
- }
534
- return result;
535
- } catch (error) {
536
- this.logger.error('Error updating AI fragment sandbox URL: %o', error);
537
- throw error instanceof Error ? error : new Error('Unknown error occurred while updating AI fragment sandbox URL');
538
- }
539
- }
540
- /**
541
- * Updates file synchronization status and versions
542
- *
543
- * @description Updates the sync status and file versions for a fragment
544
- *
545
- * @param {string} fragmentId - The fragment ID to update
546
- * @param {Record<string, number>} fileVersions - File version mapping
547
- * @param {AiFragmentSyncStatus} syncStatus - Current synchronization status
548
- * @returns {Promise<AsDomainType<IAiFragmentModel> | null>} - The updated fragment or null
549
- */
550
- async updateFileSync(fragmentId, fileVersions, syncStatus) {
551
- try {
552
- if (!fragmentId || !fileVersions || !syncStatus) {
553
- throw new Error('Fragment ID, file versions, and sync status are required');
554
- }
555
- this.logger.debug('Updating AI fragment file sync', {
556
- fragmentId,
557
- fileVersionCount: Object.keys(fileVersions).length,
558
- syncStatus
559
- });
560
- const result = await this.aiFragmentRepository.update({
561
- _id: fragmentId
562
- }, {
563
- fileVersions,
564
- syncStatus,
565
- lastSyncAt: new Date()
566
- });
567
- if (result) {
568
- this.logger.debug('AI fragment file sync updated successfully', {
569
- fragmentId,
570
- syncStatus
571
- });
572
- } else {
573
- this.logger.debug('No AI fragment found to update file sync', {
574
- fragmentId
575
- });
576
- }
577
- return result;
578
- } catch (error) {
579
- this.logger.error('Error updating AI fragment file sync: %o', error);
580
- throw error instanceof Error ? error : new Error('Unknown error occurred while updating AI fragment file sync');
581
- }
582
- }
583
- /**
584
- * Updates both files and synchronization status in a single operation
585
- *
586
- * @description Performs a comprehensive update of files and sync status
587
- *
588
- * @param {string} messageId - The message ID of the fragment to update
589
- * @param {Record<string, any>} files - The new files data
590
- * @param {Record<string, number>} fileVersions - File version mapping
591
- * @param {AiFragmentSyncStatus} syncStatus - Current synchronization status
592
- * @returns {Promise<AsDomainType<IAiFragmentModel> | null>} - The updated fragment or null
593
- */
594
- async updateFilesAndSync(messageId, files, fileVersions, syncStatus) {
595
- try {
596
- if (!messageId || !files || !fileVersions || !syncStatus) {
597
- throw new Error('Message ID, files, file versions, and sync status are required');
598
- }
599
- this.logger.debug('Updating AI fragment files and sync', {
600
- messageId,
601
- fileCount: Object.keys(files).length,
602
- fileVersionCount: Object.keys(fileVersions).length,
603
- syncStatus
604
- });
605
- const result = await this.aiFragmentRepository.update({
606
- messageId
607
- }, {
608
- files,
609
- fileVersions,
610
- syncStatus,
611
- lastSyncAt: new Date()
612
- });
613
- if (result) {
614
- this.logger.debug('AI fragment files and sync updated successfully', {
615
- fragmentId: result.id,
616
- messageId,
617
- syncStatus
618
- });
619
- } else {
620
- this.logger.debug('No AI fragment found to update files and sync', {
621
- messageId
622
- });
623
- }
624
- return result;
625
- } catch (error) {
626
- this.logger.error('Error updating AI fragment files and sync: %o', error);
627
- throw error instanceof Error ? error : new Error('Unknown error occurred while updating AI fragment files and sync');
628
- }
629
- }
630
- };
631
- AiFragmentService = __decorate([injectable(), __param(0, inject(SERVER_TYPES.AiFragmentRepository)), __param(1, inject(CommonType.MOLECULER_BROKER)), __param(2, inject('Logger')), __metadata("design:paramtypes", [Object, ServiceBroker, Object])], AiFragmentService);export{AiFragmentService};//# sourceMappingURL=ai-fragment-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-fragment-service.js","sources":["../../src/services/ai-fragment-service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { ServiceBroker } from 'moleculer';
2
- import { CdmLogger } from '@cdm-logger/core';
3
- import { IAiFragmentModel, IAiFragmentService, IAiFragmentCreateInput, MoleculerTopics, AiFragmentSyncStatus } from 'common/server';
4
- import { BaseProxyService2 } from '@common-stack/store-mongo';
5
- type MethodsNames = keyof IAiFragmentService;
6
- type MethodResponse<T extends MethodsNames> = ReturnType<IAiFragmentService[T]>;
7
- export declare class AiFragmentProxyService extends BaseProxyService2<IAiFragmentModel> implements IAiFragmentService {
8
- protected readonly logger: CdmLogger.ILogger;
9
- topic: MoleculerTopics;
10
- constructor(broker: ServiceBroker, logger: CdmLogger.ILogger);
11
- dispose(): void;
12
- createFragment(input: IAiFragmentCreateInput): MethodResponse<'createFragment'>;
13
- getFragmentByMessageId(messageId: string): MethodResponse<'getFragmentByMessageId'>;
14
- getFragmentsByUser(orgName: string, owner: string, limit?: number, skip?: number): MethodResponse<'getFragmentsByUser'>;
15
- updateFragmentFiles(messageId: string, files: Record<string, any>): MethodResponse<'updateFragmentFiles'>;
16
- deleteFragment(id: string): MethodResponse<'deleteFragment'>;
17
- deleteFragmentByMessageId(messageId: string): MethodResponse<'deleteFragmentByMessageId'>;
18
- getFragmentById(fragmentId: string): MethodResponse<'getFragmentById'>;
19
- updateSandboxUrl(fragmentId: string, newSandboxUrl: string): MethodResponse<'updateSandboxUrl'>;
20
- updateFileSync(fragmentId: string, fileVersions: Record<string, number>, syncStatus: AiFragmentSyncStatus): MethodResponse<'updateFileSync'>;
21
- updateFilesAndSync(fragmentId: string, files: Record<string, any>, fileVersions: Record<string, number>, syncStatus: AiFragmentSyncStatus): MethodResponse<'updateFilesAndSync'>;
22
- }
23
- export {};