@messenger-box/platform-server 10.0.3-alpha.7 → 10.0.3-alpha.74

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 (202) hide show
  1. package/lib/config/env-config.d.ts +7 -0
  2. package/lib/config/env-config.js +20 -0
  3. package/lib/config/env-config.js.map +1 -1
  4. package/lib/containers/containers.js +9 -1
  5. package/lib/containers/containers.js.map +1 -1
  6. package/lib/containers/context-services-from-container.d.ts +1 -1
  7. package/lib/containers/context-services-from-container.js +4 -2
  8. package/lib/containers/context-services-from-container.js.map +1 -1
  9. package/lib/graphql/resolvers/ai-fragment.d.ts +3 -0
  10. package/lib/graphql/resolvers/ai-fragment.js +276 -0
  11. package/lib/graphql/resolvers/ai-fragment.js.map +1 -0
  12. package/lib/graphql/resolvers/channel-member.d.ts +3 -2
  13. package/lib/graphql/resolvers/channel-member.js +30 -5
  14. package/lib/graphql/resolvers/channel-member.js.map +1 -1
  15. package/lib/graphql/resolvers/channel.d.ts +3 -2
  16. package/lib/graphql/resolvers/channel.js +308 -53
  17. package/lib/graphql/resolvers/channel.js.map +1 -1
  18. package/lib/graphql/resolvers/extended-token-account.d.ts +3 -2
  19. package/lib/graphql/resolvers/extended-token-account.js +90 -23
  20. package/lib/graphql/resolvers/extended-token-account.js.map +1 -1
  21. package/lib/graphql/resolvers/index.d.ts +1 -1
  22. package/lib/graphql/resolvers/index.js +1 -1
  23. package/lib/graphql/resolvers/index.js.map +1 -1
  24. package/lib/graphql/resolvers/post-thread.d.ts +1 -1
  25. package/lib/graphql/resolvers/post-thread.js +294 -132
  26. package/lib/graphql/resolvers/post-thread.js.map +1 -1
  27. package/lib/graphql/resolvers/post.d.ts +2 -3
  28. package/lib/graphql/resolvers/post.js +874 -239
  29. package/lib/graphql/resolvers/post.js.map +1 -1
  30. package/lib/graphql/resolvers/reaction.d.ts +3 -2
  31. package/lib/graphql/resolvers/reaction.js +96 -14
  32. package/lib/graphql/resolvers/reaction.js.map +1 -1
  33. package/lib/graphql/schema/ai-fragment.graphql +311 -0
  34. package/lib/graphql/schema/ai-fragment.graphql.js +1 -0
  35. package/lib/graphql/schema/ai-fragment.graphql.js.map +1 -0
  36. package/lib/graphql/schema/channel-member.graphql +110 -21
  37. package/lib/graphql/schema/channel-member.graphql.js +1 -1
  38. package/lib/graphql/schema/channel.graphql +356 -38
  39. package/lib/graphql/schema/channel.graphql.js +1 -1
  40. package/lib/graphql/schema/index.js +2 -2
  41. package/lib/graphql/schema/index.js.map +1 -1
  42. package/lib/graphql/schema/post-thread.graphql +167 -21
  43. package/lib/graphql/schema/post-thread.graphql.js +1 -1
  44. package/lib/graphql/schema/post.graphql +360 -40
  45. package/lib/graphql/schema/post.graphql.js +1 -1
  46. package/lib/graphql/schema/reaction.graphql +71 -13
  47. package/lib/graphql/schema/reaction.graphql.js +1 -1
  48. package/lib/graphql/schema/services.graphql +21 -0
  49. package/lib/graphql/schema/users.graphql +76 -13
  50. package/lib/graphql/schema/users.graphql.js +1 -1
  51. package/lib/index.js +1 -1
  52. package/lib/index.js.map +1 -1
  53. package/lib/inngest/factory.d.ts +20 -0
  54. package/lib/inngest/factory.js +4 -0
  55. package/lib/inngest/factory.js.map +1 -0
  56. package/lib/inngest/functions.d.ts +235 -0
  57. package/lib/inngest/functions.js +1385 -0
  58. package/lib/inngest/functions.js.map +1 -0
  59. package/lib/inngest/index.d.ts +3 -0
  60. package/lib/inngest/prompt.d.ts +6 -0
  61. package/lib/inngest/prompt.js +871 -0
  62. package/lib/inngest/prompt.js.map +1 -0
  63. package/lib/inngest/utils.d.ts +5 -0
  64. package/lib/inngest/utils.js +32 -0
  65. package/lib/inngest/utils.js.map +1 -0
  66. package/lib/interfaces/index.d.ts +0 -1
  67. package/lib/interfaces/services.d.ts +1 -1
  68. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.d.ts +17 -0
  69. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js +44 -0
  70. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js.map +1 -0
  71. package/lib/migrations/dbMigrations/index.d.ts +1 -0
  72. package/lib/migrations/index.d.ts +1 -0
  73. package/lib/migrations/mail-template-migration.js +1 -1
  74. package/lib/migrations/message-notification-template-migration.d.ts +1 -1
  75. package/lib/migrations/message-notification-template-migration.js +1 -1
  76. package/lib/module.js +10 -3
  77. package/lib/module.js.map +1 -1
  78. package/lib/plugins/ai-fragment-moleculer-service.d.ts +29 -0
  79. package/lib/plugins/ai-fragment-moleculer-service.js +516 -0
  80. package/lib/plugins/ai-fragment-moleculer-service.js.map +1 -0
  81. package/lib/plugins/channel-moleculer-service.d.ts +21 -1
  82. package/lib/plugins/channel-moleculer-service.js +426 -115
  83. package/lib/plugins/channel-moleculer-service.js.map +1 -1
  84. package/lib/plugins/extended-token-account-moleculer-service.d.ts +25 -1
  85. package/lib/plugins/extended-token-account-moleculer-service.js +348 -22
  86. package/lib/plugins/extended-token-account-moleculer-service.js.map +1 -1
  87. package/lib/plugins/index.d.ts +1 -0
  88. package/lib/plugins/messenger-notification-moleculer-service.d.ts +27 -3
  89. package/lib/plugins/messenger-notification-moleculer-service.js +404 -58
  90. package/lib/plugins/messenger-notification-moleculer-service.js.map +1 -1
  91. package/lib/plugins/post-moleculer-service.d.ts +85 -21
  92. package/lib/plugins/post-moleculer-service.js +1102 -256
  93. package/lib/plugins/post-moleculer-service.js.map +1 -1
  94. package/lib/plugins/post-thread-moleculer-service.d.ts +33 -1
  95. package/lib/plugins/post-thread-moleculer-service.js +326 -8
  96. package/lib/plugins/post-thread-moleculer-service.js.map +1 -1
  97. package/lib/plugins/reaction-moleculer-service.js +1 -1
  98. package/lib/plugins/reaction-moleculer-service.js.map +1 -1
  99. package/lib/preferences/settings/post-settings.d.ts +2 -0
  100. package/lib/preferences/settings/post-settings.js +47 -9
  101. package/lib/preferences/settings/post-settings.js.map +1 -1
  102. package/lib/services/ai-fragment-service.d.ts +195 -0
  103. package/lib/services/ai-fragment-service.js +631 -0
  104. package/lib/services/ai-fragment-service.js.map +1 -0
  105. package/lib/services/channel-service.d.ts +181 -33
  106. package/lib/services/channel-service.js +842 -273
  107. package/lib/services/channel-service.js.map +1 -1
  108. package/lib/services/extended-token-account-service.d.ts +130 -14
  109. package/lib/services/extended-token-account-service.js +462 -52
  110. package/lib/services/extended-token-account-service.js.map +1 -1
  111. package/lib/services/index.d.ts +3 -0
  112. package/lib/services/messenger-notification-service.d.ts +106 -13
  113. package/lib/services/messenger-notification-service.js +824 -442
  114. package/lib/services/messenger-notification-service.js.map +1 -1
  115. package/lib/services/post-service.d.ts +189 -16
  116. package/lib/services/post-service.js +949 -113
  117. package/lib/services/post-service.js.map +1 -1
  118. package/lib/services/post-thread-service.d.ts +114 -5
  119. package/lib/services/post-thread-service.js +400 -13
  120. package/lib/services/post-thread-service.js.map +1 -1
  121. package/lib/services/proxy-services/ai-fragment-microservice.d.ts +23 -0
  122. package/lib/services/proxy-services/ai-fragment-microservice.js +78 -0
  123. package/lib/services/proxy-services/ai-fragment-microservice.js.map +1 -0
  124. package/lib/services/proxy-services/channel-microservice.d.ts +6 -3
  125. package/lib/services/proxy-services/channel-microservice.js +25 -10
  126. package/lib/services/proxy-services/channel-microservice.js.map +1 -1
  127. package/lib/services/proxy-services/index.d.ts +1 -0
  128. package/lib/services/proxy-services/messenger-notification-microservice.d.ts +128 -8
  129. package/lib/services/proxy-services/messenger-notification-microservice.js +324 -29
  130. package/lib/services/proxy-services/messenger-notification-microservice.js.map +1 -1
  131. package/lib/services/proxy-services/post-microservice.d.ts +207 -12
  132. package/lib/services/proxy-services/post-microservice.js +623 -54
  133. package/lib/services/proxy-services/post-microservice.js.map +1 -1
  134. package/lib/services/proxy-services/post-thread-microservice.d.ts +134 -3
  135. package/lib/services/proxy-services/post-thread-microservice.js +388 -6
  136. package/lib/services/proxy-services/post-thread-microservice.js.map +1 -1
  137. package/lib/services/proxy-services/reaction-microservice.d.ts +161 -3
  138. package/lib/services/proxy-services/reaction-microservice.js +474 -2
  139. package/lib/services/proxy-services/reaction-microservice.js.map +1 -1
  140. package/lib/services/reaction-service.d.ts +124 -4
  141. package/lib/services/reaction-service.js +415 -3
  142. package/lib/services/reaction-service.js.map +1 -1
  143. package/lib/services/redis-cache-manager.d.ts +18 -0
  144. package/lib/services/redis-cache-manager.js +83 -0
  145. package/lib/services/redis-cache-manager.js.map +1 -0
  146. package/lib/services/sandbox-error-service.d.ts +23 -0
  147. package/lib/services/sandbox-error-service.js +422 -0
  148. package/lib/services/sandbox-error-service.js.map +1 -0
  149. package/lib/store/models/account-token-store.d.ts +1 -1
  150. package/lib/store/models/account-token-store.js.map +1 -1
  151. package/lib/store/models/ai-fragment.d.ts +4 -0
  152. package/lib/store/models/ai-fragment.js +125 -0
  153. package/lib/store/models/ai-fragment.js.map +1 -0
  154. package/lib/store/models/channel.d.ts +2 -3
  155. package/lib/store/models/channel.js +185 -71
  156. package/lib/store/models/channel.js.map +1 -1
  157. package/lib/store/models/index.d.ts +1 -0
  158. package/lib/store/models/post-thread.d.ts +3 -3
  159. package/lib/store/models/post-thread.js +96 -14
  160. package/lib/store/models/post-thread.js.map +1 -1
  161. package/lib/store/models/post.d.ts +2 -3
  162. package/lib/store/models/post.js +143 -23
  163. package/lib/store/models/post.js.map +1 -1
  164. package/lib/store/models/reaction.d.ts +2 -3
  165. package/lib/store/models/reaction.js +67 -8
  166. package/lib/store/models/reaction.js.map +1 -1
  167. package/lib/store/repositories/__tests__/__fixtures__/team-repository.d.ts +3 -3
  168. package/lib/store/repositories/ai-fragment-repository.d.ts +15 -0
  169. package/lib/store/repositories/ai-fragment-repository.js +69 -0
  170. package/lib/store/repositories/ai-fragment-repository.js.map +1 -0
  171. package/lib/store/repositories/channel-repository.d.ts +6 -6
  172. package/lib/store/repositories/channel-repository.js +5 -2
  173. package/lib/store/repositories/channel-repository.js.map +1 -1
  174. package/lib/store/repositories/index.d.ts +1 -0
  175. package/lib/store/repositories/post-repository.d.ts +6 -6
  176. package/lib/store/repositories/post-repository.js +5 -2
  177. package/lib/store/repositories/post-repository.js.map +1 -1
  178. package/lib/store/repositories/post-thread-repository.d.ts +6 -6
  179. package/lib/store/repositories/post-thread-repository.js +5 -2
  180. package/lib/store/repositories/post-thread-repository.js.map +1 -1
  181. package/lib/store/repositories/reaction-repository.d.ts +6 -6
  182. package/lib/store/repositories/reaction-repository.js +5 -2
  183. package/lib/store/repositories/reaction-repository.js.map +1 -1
  184. package/lib/templates/constants/SERVER_TYPES.ts.template +4 -4
  185. package/lib/templates/repositories/AiFragmentRepository.ts.template +4 -0
  186. package/lib/templates/repositories/ChannelRepository.ts.template +3 -3
  187. package/lib/templates/repositories/PostRepository.ts.template +3 -3
  188. package/lib/templates/repositories/PostThreadRepository.ts.template +3 -3
  189. package/lib/templates/repositories/ReactionRepository.ts.template +3 -4
  190. package/lib/templates/services/AiFragmentService.ts.template +123 -0
  191. package/lib/templates/services/ChannelService.ts.template +290 -39
  192. package/lib/templates/services/ExtendedTokenAccountService.ts.template +104 -9
  193. package/lib/templates/services/MessengerNotificationService.ts.template +94 -19
  194. package/lib/templates/services/PostService.ts.template +265 -20
  195. package/lib/templates/services/PostThreadService.ts.template +151 -6
  196. package/lib/templates/services/ReactionService.ts.template +129 -3
  197. package/lib/templates/services/RedisCacheManager.ts.template +22 -0
  198. package/lib/templates/services/SandboxErrorService.ts.template +125 -0
  199. package/package.json +14 -7
  200. package/lib/interfaces/context.d.ts +0 -14
  201. package/lib/store/models/common-options.js +0 -20
  202. package/lib/store/models/common-options.js.map +0 -1
@@ -8,4 +8,11 @@ export declare const config: Readonly<{
8
8
  INBOX_MESSEGE_PATH: string;
9
9
  THREAD_MESSEGE_PATH: string;
10
10
  THREADS_PATH: string;
11
+ INNGEST_PATH: string;
12
+ MONGO_URL: string;
13
+ E2B_TEMPLATE_ID: string;
14
+ E2B_VUE_TEMPLATE_ID: string;
15
+ E2B_VITE_REACT_TEMPLATE_ID: string;
16
+ E2B_DOMAIN: string;
17
+ E2B_API_KEY: string;
11
18
  } & import("envalid").CleanedEnvAccessors>;
@@ -21,5 +21,25 @@ import {cleanEnv,str,json,num}from'envalid';const config = cleanEnv(process.env,
21
21
  }),
22
22
  THREADS_PATH: str({
23
23
  default: 'MainStack.Thread'
24
+ }),
25
+ INNGEST_PATH: str({
26
+ default: '/api/inngest'
27
+ }),
28
+ MONGO_URL: str(),
29
+ // E2B Configuration
30
+ E2B_TEMPLATE_ID: str({
31
+ default: ''
32
+ }),
33
+ E2B_VUE_TEMPLATE_ID: str({
34
+ default: ''
35
+ }),
36
+ E2B_VITE_REACT_TEMPLATE_ID: str({
37
+ default: ''
38
+ }),
39
+ E2B_DOMAIN: str({
40
+ default: ''
41
+ }),
42
+ E2B_API_KEY: str({
43
+ default: ''
24
44
  })
25
45
  } /* end */);export{config};//# sourceMappingURL=env-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-config.js","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"kDAEa,MAAM,GAAG,QAAQ,CAC1B,OAAO,CAAC,GAAG;AACX;AACA,EAAA,SAAA,EAAA,GAAA,CAAA;AACI,IAAA,OAAA,EAAS,IAAE;IACX,IAAS,EAAA;IACT;WACuB,EAAA,GAAA,CAAA;IACvB,OAAQ,EAAA;IACR;aACkB,EAAA,GAAA,EAAA;yBAC2C,EAAA,GAAA,EAAA;UACA,EAAA,GAAA,EAAA;4BACrC;sBACN;IACpB,OAAS,EACb;;;;;;;;;;"}
1
+ {"version":3,"file":"env-config.js","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"kDAEa,MAAM,GAAG,QAAQ,CAC1B,OAAO,CAAC,GAAG;AACX;AACA,EAAA,SAAA,EAAA,GAAA,CAAA;AACI,IAAA,OAAA,EAAS,IAAE;IACX,IAAS,EAAA;IACT;WACuB,EAAA,GAAA,CAAA;IACvB,OAAQ,EAAA;IACR;aACkB,EAAA,GAAA,EAAA;yBAC2C,EAAA,GAAA,EAAA;UACA,EAAA,GAAA,EAAA;4BACrC;sBACN;IAClB,OAAY,EAAA;IACZ;;;qBAGmB,EAAA;IACnB,OAA0B,EAAA;IAC1B;cACW,EAAA,IAAK;IAClB,OAAS,EACb;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import {ContainerModule}from'inversify';import {TaggedType}from'@common-stack/core';import {ChannelService}from'../services/channel-service.js';import {PostService}from'../services/post-service.js';import {PostThreadService}from'../services/post-thread-service.js';import {ReactionService}from'../services/reaction-service.js';import {MessengerNotificationService}from'../services/messenger-notification-service.js';import {ExtendedTokenAccountService}from'../services/extended-token-account-service.js';import {SERVER_TYPES}from'common';import {ChannelRepository}from'../store/repositories/channel-repository.js';import {PostRepository}from'../store/repositories/post-repository.js';import {PostThreadRepository}from'../store/repositories/post-thread-repository.js';import {ReactionRepository}from'../store/repositories/reaction-repository.js';import {MessageNotificationTemplateMigration}from'../migrations/message-notification-template-migration.js';import'../migrations/mail-template-migration.js';import {ChannelProxyService}from'../services/proxy-services/channel-microservice.js';import {PostThreadMicroservice}from'../services/proxy-services/post-thread-microservice.js';import {PostProxyService}from'../services/proxy-services/post-microservice.js';import {ReactionMicroservice}from'../services/proxy-services/reaction-microservice.js';import {MessengerNotificationMicroservice}from'../services/proxy-services/messenger-notification-microservice.js';/**
1
+ import {ContainerModule}from'inversify';import {TaggedType}from'@common-stack/core';import {ChannelService}from'../services/channel-service.js';import {PostService}from'../services/post-service.js';import {PostThreadService}from'../services/post-thread-service.js';import {ReactionService}from'../services/reaction-service.js';import {MessengerNotificationService}from'../services/messenger-notification-service.js';import {ExtendedTokenAccountService}from'../services/extended-token-account-service.js';import {RedisCacheManager}from'../services/redis-cache-manager.js';import {SandboxErrorService}from'../services/sandbox-error-service.js';import {AiFragmentService}from'../services/ai-fragment-service.js';import {SERVER_TYPES}from'common/server';import {ChannelRepository}from'../store/repositories/channel-repository.js';import {PostRepository}from'../store/repositories/post-repository.js';import {PostThreadRepository}from'../store/repositories/post-thread-repository.js';import {ReactionRepository}from'../store/repositories/reaction-repository.js';import {AiFragmentRepository}from'../store/repositories/ai-fragment-repository.js';import {MessageNotificationTemplateMigration}from'../migrations/message-notification-template-migration.js';import'../migrations/mail-template-migration.js';import {AddPostsConfigurationsMigration}from'../migrations/dbMigrations/AddPostsConfigurationsMigration.js';import {ChannelProxyService}from'../services/proxy-services/channel-microservice.js';import {PostThreadMicroservice}from'../services/proxy-services/post-thread-microservice.js';import {PostProxyService}from'../services/proxy-services/post-microservice.js';import {ReactionMicroservice}from'../services/proxy-services/reaction-microservice.js';import {MessengerNotificationMicroservice}from'../services/proxy-services/messenger-notification-microservice.js';import {AiFragmentProxyService}from'../services/proxy-services/ai-fragment-microservice.js';/**
2
2
  * Local services and exposed microservices to serve remote connections.
3
3
  * Operates within in the Gateway.
4
4
  *
@@ -6,12 +6,16 @@ import {ContainerModule}from'inversify';import {TaggedType}from'@common-stack/co
6
6
  */
7
7
  const proxyServiceContainerModule = settings => new ContainerModule(bind => {
8
8
  bind('MongodbMigration').to(MessageNotificationTemplateMigration).whenTargetNamed(MessageNotificationTemplateMigration.name);
9
+ // add Db migrations
10
+ bind('MongodbMigration').to(AddPostsConfigurationsMigration).whenTargetNamed(AddPostsConfigurationsMigration.name);
9
11
  bind(SERVER_TYPES.ExtendedTokenAccountService).to(ExtendedTokenAccountService).inSingletonScope().whenTargetIsDefault();
10
12
  bind(SERVER_TYPES.ChannelService).to(ChannelProxyService).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
11
13
  bind(SERVER_TYPES.PostService).to(PostProxyService).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
14
+ bind(SERVER_TYPES.AiFragmentService).to(AiFragmentProxyService).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
12
15
  bind(SERVER_TYPES.PostThreadService).to(PostThreadMicroservice).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
13
16
  bind(SERVER_TYPES.ReactionService).to(ReactionMicroservice).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
14
17
  bind(SERVER_TYPES.MessengerNotificationService).to(MessengerNotificationMicroservice).inSingletonScope().whenTargetNamed(TaggedType.MICROSERVICE);
18
+ bind(SERVER_TYPES.SandboxErrorService).to(SandboxErrorService).inSingletonScope();
15
19
  });
16
20
  /**
17
21
  * Operates external to the Gateway. Usually a broker listen to calls and invoke this service
@@ -25,9 +29,13 @@ const serviceContainerModule = settings => new ContainerModule(bind => {
25
29
  bind(SERVER_TYPES.PostRepository).to(PostRepository).inSingletonScope().whenTargetIsDefault();
26
30
  bind(SERVER_TYPES.PostThreadRepository).to(PostThreadRepository).inSingletonScope().whenTargetIsDefault();
27
31
  bind(SERVER_TYPES.ReactionRepository).to(ReactionRepository).inSingletonScope().whenTargetIsDefault();
32
+ bind(SERVER_TYPES.AiFragmentRepository).to(AiFragmentRepository).inSingletonScope().whenTargetIsDefault();
28
33
  bind(SERVER_TYPES.ChannelService).to(ChannelService).inSingletonScope().whenTargetIsDefault();
29
34
  bind(SERVER_TYPES.PostService).to(PostService).inSingletonScope().whenTargetIsDefault();
30
35
  bind(SERVER_TYPES.PostThreadService).to(PostThreadService).inSingletonScope().whenTargetIsDefault();
31
36
  bind(SERVER_TYPES.ReactionService).to(ReactionService).inSingletonScope().whenTargetIsDefault();
32
37
  bind(SERVER_TYPES.MessengerNotificationService).to(MessengerNotificationService).inSingletonScope().whenTargetIsDefault();
38
+ bind(SERVER_TYPES.IRedisCacheManager).to(RedisCacheManager).inSingletonScope();
39
+ bind(SERVER_TYPES.SandboxErrorService).to(SandboxErrorService).inSingletonScope();
40
+ bind(SERVER_TYPES.AiFragmentService).to(AiFragmentService).inSingletonScope();
33
41
  });export{proxyServiceContainerModule,serviceContainerModule};//# sourceMappingURL=containers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sources":["../../src/containers/containers.ts"],"sourcesContent":[null],"names":[],"mappings":"m7CAgCA;;;;;AAKG;AACI,MAAM,2BAA2B,GAA6C,QAAS,IAAI,mBAC3E,CAAA,IAAE;MACb,CAAA,oBAAmB,EAAC,CAAA,oCAAA,CAAA,CAAA,eAAA,CAAA,oCAAA,CAAA,IAAA,CAAA;gDACoB,CAAC,EAAA,CAAA,2BAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AACxC,EAAA,IAAA,CAAA,YAAA,CAAA,cAAgB,CAAA,CAAA,EAAA,CAAA,mBAAA,CAAA,CAAA,gBAA2C,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;AAChE,EAAA,IAAA,CAAA,YAAK,CAAA,WAAa,CAAA,CAAA,EAAA,CAAA,gBAA4B,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;uCACX,EAAC,CAAA,sBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;AAC/B,EAAA,IAAA,CAAA,YAAA,CAAA,eAAkB,CAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;AAClB,EAAA,IAAA,CAAA,YAAA,CAAA,4BAAsB,CAAA,CAAA,EAAA,CAAA,iCAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,eAAA,CAAA,UAAA,CAAA,YAAA,CAAA;AAE3B,CAAA;;AAEK;AACA;AAEL;;AAEK;AACA,MAAA,sBAA0B,GAAC,QAAA,IAAc,IAAA,eAAA,CAAA,IAAA,IAAA;AAC9C,EAAA,IAAA,CAAA,YAAyB,CAAA,2BAA+B,CAAA,CAAA,EAAA,CAAA,2BAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;qCACzB,CAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAC1B,EAAA,IAAA,CAAA,YAAA,CAAA,cAAkB,CAAA,CAAA,EAAA,CAAA,cAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAClB,EAAA,IAAA,CAAA,YAAA,CAAA,oBAA2B,CAAA,CAAA,EAAA,CAAA,oBAAc,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAE9C,EAAA,IAAA,CAAA,YAAuB,CAAA,kBAA6B,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;kCACvB,CAAA,CAAA,EAAA,CAAA,cAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AACxB,EAAA,IAAA,CAAA,YAAA,CAAA,WAAkB,CAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAClB,EAAA,IAAA,CAAA,YAAA,CAAA,iBAA2B,CAAA,CAAA,EAAA,CAAA,iBAAc,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AAE9C,EAAA,IAAA,CAAA,YAAoC,CAAA,eAAa,CAAA,CAAA,EAAA,CAAA,eAA6B,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;gDACpC,CAAA,CAAA,EAAA,CAAA,4BAAA,CAAA,CAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA;AACrC,CAAA"}
1
+ {"version":3,"file":"containers.js","sources":["../../src/containers/containers.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { interfaces } from 'inversify';
2
- import { ServerContext } from 'common';
2
+ import { ServerContext } from 'common/server';
3
3
  export declare const contextServicesFromContainer: (container: interfaces.Container) => Partial<ServerContext>;
@@ -1,4 +1,4 @@
1
- import {TaggedType}from'@common-stack/core';import {SERVER_TYPES}from'common';// import { ExtendedTokenAccountService } from '../services';
1
+ import {TaggedType,CommonType}from'@common-stack/core';import {SERVER_TYPES}from'common/server';// import { ExtendedTokenAccountService } from '../services';
2
2
  const contextServicesFromContainer = container => {
3
3
  const services = {
4
4
  extendedTokenAccountService: container.get(SERVER_TYPES.ExtendedTokenAccountService),
@@ -7,7 +7,9 @@ const contextServicesFromContainer = container => {
7
7
  postService: container.getNamed(SERVER_TYPES.PostService, TaggedType.MICROSERVICE),
8
8
  postThreadService: container.getNamed(SERVER_TYPES.PostThreadService, TaggedType.MICROSERVICE),
9
9
  reactionService: container.getNamed(SERVER_TYPES.ReactionService, TaggedType.MICROSERVICE),
10
- messengerNotificationService: container.getNamed(SERVER_TYPES.MessengerNotificationService, TaggedType.MICROSERVICE)
10
+ messengerNotificationService: container.getNamed(SERVER_TYPES.MessengerNotificationService, TaggedType.MICROSERVICE),
11
+ inngestClient: container.get(CommonType.INNGEST_CLIENT),
12
+ aiFragmentService: container.getNamed(SERVER_TYPES.AiFragmentService, TaggedType.MICROSERVICE)
11
13
  };
12
14
  return services;
13
15
  };export{contextServicesFromContainer};//# sourceMappingURL=context-services-from-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-services-from-container.js","sources":["../../src/containers/context-services-from-container.ts"],"sourcesContent":[null],"names":[],"mappings":"8EAaA;AAEa,MAAA,4BAA4B,GAAG,SAAC,IAA2D;AACpG,EAAA,MAAA,WAAiB;+BACc,EAAA,aAAW,CAAC,YACvB,CAAA;AAEhB,IAAA,MAAA,EAAA,SAAiB,CAAA,GAAA,CAAC;AAClB,IAAA,cAAA,EAAA,SAAgB,CAAA,QAAU,CAAA,YAA0B,CAAA,cAAa,EAAA,UAAgB,CAAA,YAAW,CAAA;AAC5F,IAAA,WAAA,EAAA,SAAa,CAAA,QAAU,CAAA,YAAuB,CAAA,WAAa,EAAA,UAAa,CAAA,YAAW,CAAA;AACnF,IAAA,iBAAA,EAAA,SAAmB,CAAA,QAAU,CAAA,YACzB,CAAA,iBAAa,EAAA,UACb,CAAA,YAAW,CAAA;AAEf,IAAA,eAAA,EAAA,SAAiB,CAAA,QAAU,CAAA,YAA2B,CAAA,eAAa,EAAA,UAAiB,CAAA,YAAW,CAAA;AAC/F,IAAA,4BAAA,EAAA,SAA8B,CAAA,QAAU,CAAA,YACpC,CAAA,4BAAa,EAAA,UACb,CAAA,YAAW;;AAGnB,EAAA,OAAA;AACJ"}
1
+ {"version":3,"file":"context-services-from-container.js","sources":["../../src/containers/context-services-from-container.ts"],"sourcesContent":[null],"names":[],"mappings":"gGAeA;AAEa,MAAA,4BAA4B,GAAG,SAAC,IAA2D;AACpG,EAAA,MAAA,WAAiB;+BACc,EAAA,aAAW,CAAC,YACvB,CAAA;AAEhB,IAAA,MAAA,EAAA,SAAiB,CAAA,GAAA,CAAC;AAClB,IAAA,cAAA,EAAA,SAAgB,CAAA,QAAU,CAAA,YAA0B,CAAA,cAAa,EAAA,UAAgB,CAAA,YAAW,CAAA;AAC5F,IAAA,WAAA,EAAA,SAAa,CAAA,QAAU,CAAA,YAAuB,CAAA,WAAa,EAAA,UAAa,CAAA,YAAW,CAAA;AACnF,IAAA,iBAAA,EAAA,SAAmB,CAAA,QAAU,CAAA,YACzB,CAAA,iBAAa,EAAA,UACb,CAAA,YAAW,CAAA;AAEf,IAAA,eAAA,EAAA,SAAiB,CAAA,QAAU,CAAA,YAA2B,CAAA,eAAa,EAAA,UAAiB,CAAA,YAAW,CAAA;AAC/F,IAAA,4BAAA,EAAA,SAA8B,CAAA,QAAU,CAAA,YACpC,CAAA,4BAAa,EAAA,UACb,CAAA,YAAW,CAAA;iBAEF,EAAA,aAAW,CAAC,UAAmB,CAAA;AAC5C,IAAA,iBAAA,EAAA,SAAmB,CAAA,QAAU,CAAA,YACzB,CAAA,iBAAa,EAAA,UACb,CAAA,YAAW;;AAGnB,EAAA,OAAA;AACJ"}
@@ -0,0 +1,3 @@
1
+ import { IResolverOptions } from '@common-stack/server-core';
2
+ import { IResolvers } from 'common/server';
3
+ export declare const aiFragmentResolvers: (options: IResolverOptions) => IResolvers;
@@ -0,0 +1,276 @@
1
+ import {withFilter}from'graphql-subscriptions';const aiFragmentResolvers = options => ({
2
+ Query: {
3
+ async aiFragment(_src, {
4
+ id
5
+ }, {
6
+ aiFragmentService
7
+ }) {
8
+ options.logger.trace('(Query.aiFragment) id [%s]', id);
9
+ if (!id) {
10
+ options.logger.warn('Missing fragment id');
11
+ return null;
12
+ }
13
+ try {
14
+ return await aiFragmentService.getFragmentById(id);
15
+ } catch (error) {
16
+ options.logger.error('Error in aiFragment: %o', error);
17
+ return null;
18
+ }
19
+ },
20
+ async aiFragmentByMessageId(_src, {
21
+ messageId
22
+ }, {
23
+ aiFragmentService
24
+ }) {
25
+ options.logger.trace('(Query.aiFragmentByMessageId) messageId [%s]', messageId);
26
+ if (!messageId) {
27
+ options.logger.warn('Missing messageId');
28
+ return null;
29
+ }
30
+ try {
31
+ return await aiFragmentService.getFragmentByMessageId(messageId);
32
+ } catch (error) {
33
+ options.logger.error('Error in aiFragmentByMessageId: %o', error);
34
+ return null;
35
+ }
36
+ },
37
+ async aiFragmentsByOwner(_src, {
38
+ owner,
39
+ limit,
40
+ skip,
41
+ sort
42
+ }, {
43
+ aiFragmentService,
44
+ userContext,
45
+ orgName
46
+ }) {
47
+ const resolvedOwner = owner || userContext?.accountId;
48
+ const resolvedOrg = orgName || userContext?.orgId;
49
+ options.logger.trace('(Query.aiFragmentsByOwner) owner [%s] org [%s]', resolvedOwner, resolvedOrg);
50
+ if (!resolvedOwner || !resolvedOrg) {
51
+ options.logger.warn('Missing owner or organization');
52
+ return [];
53
+ }
54
+ try {
55
+ return await aiFragmentService.getFragmentsByUser(resolvedOrg, resolvedOwner, limit, skip);
56
+ } catch (error) {
57
+ options.logger.error('Error in aiFragmentsByOwner: %o', error);
58
+ return [];
59
+ }
60
+ },
61
+ async aiFragmentsByOrg(_src, {
62
+ orgName: org,
63
+ limit,
64
+ skip,
65
+ sort
66
+ }, {
67
+ aiFragmentService,
68
+ orgName,
69
+ userContext
70
+ }) {
71
+ const resolvedOrg = org || orgName || userContext?.orgId;
72
+ options.logger.trace('(Query.aiFragmentsByOrg) org [%s]', resolvedOrg);
73
+ if (!resolvedOrg) {
74
+ options.logger.warn('Missing organization');
75
+ return [];
76
+ }
77
+ try {
78
+ return await aiFragmentService.getAll({
79
+ criteria: {
80
+ orgName: resolvedOrg
81
+ },
82
+ limit,
83
+ skip,
84
+ sort
85
+ });
86
+ } catch (error) {
87
+ options.logger.error('Error in aiFragmentsByOrg: %o', error);
88
+ return [];
89
+ }
90
+ },
91
+ async aiFragments(_src, args, {
92
+ aiFragmentService,
93
+ userContext,
94
+ orgName
95
+ }) {
96
+ const {
97
+ criteria = {},
98
+ limit,
99
+ skip,
100
+ sort
101
+ } = args || {};
102
+ options.logger.trace('(Query.aiFragments) criteria [%j]', criteria);
103
+ try {
104
+ return await aiFragmentService.getAll({
105
+ criteria,
106
+ limit,
107
+ skip,
108
+ sort
109
+ });
110
+ } catch (error) {
111
+ options.logger.error('Error in aiFragments: %o', error);
112
+ return [];
113
+ }
114
+ }
115
+ },
116
+ Mutation: {
117
+ async createAiFragment(_src, {
118
+ input
119
+ }, {
120
+ aiFragmentService,
121
+ userContext,
122
+ orgName
123
+ }) {
124
+ options.logger.trace('(Mutation.createAiFragment) input.title [%s]', input?.title);
125
+ try {
126
+ const owner = userContext?.accountId;
127
+ const org = orgName || userContext?.orgId;
128
+ if (!owner || !org) {
129
+ options.logger.warn('Missing owner or organization in context');
130
+ throw new Error('User context required');
131
+ }
132
+ return await aiFragmentService.createFragment({
133
+ ...input,
134
+ owner,
135
+ orgName: org
136
+ });
137
+ } catch (error) {
138
+ options.logger.error('Error creating aiFragment: %o', error);
139
+ throw error;
140
+ }
141
+ },
142
+ async updateAiFragment(_src, {
143
+ input
144
+ }, {
145
+ aiFragmentService
146
+ }) {
147
+ options.logger.trace('(Mutation.updateAiFragment) id [%s]', input?.id);
148
+ try {
149
+ if (!input?.id) {
150
+ options.logger.warn('Missing fragment id');
151
+ throw new Error('Fragment ID is required');
152
+ }
153
+ return await aiFragmentService.update(input.id, {
154
+ ...input,
155
+ id: undefined
156
+ });
157
+ } catch (error) {
158
+ options.logger.error('Error updating aiFragment: %o', error);
159
+ throw error;
160
+ }
161
+ },
162
+ async deleteAiFragment(_src, {
163
+ id
164
+ }, {
165
+ aiFragmentService
166
+ }) {
167
+ options.logger.trace('(Mutation.deleteAiFragment) id [%s]', id);
168
+ try {
169
+ if (!id) {
170
+ options.logger.warn('Missing fragment id');
171
+ throw new Error('Fragment ID is required');
172
+ }
173
+ return await aiFragmentService.deleteFragment(id);
174
+ } catch (error) {
175
+ options.logger.error('Error deleting aiFragment: %o', error);
176
+ throw error;
177
+ }
178
+ },
179
+ async updateAiFragmentSyncStatus(_src, {
180
+ id,
181
+ syncStatus,
182
+ lastSyncAt
183
+ }, {
184
+ aiFragmentService
185
+ }) {
186
+ options.logger.trace('(Mutation.updateAiFragmentSyncStatus) id [%s] status [%s]', id, syncStatus);
187
+ try {
188
+ if (!id || !syncStatus) {
189
+ options.logger.warn('Missing id or syncStatus');
190
+ throw new Error('Fragment ID and sync status are required');
191
+ }
192
+ return await aiFragmentService.updateFileSync(id, {}, syncStatus);
193
+ } catch (error) {
194
+ options.logger.error('Error updating aiFragment sync status: %o', error);
195
+ throw error;
196
+ }
197
+ },
198
+ async syncAiFragmentFiles(_src, {
199
+ id,
200
+ files,
201
+ fileVersions
202
+ }, {
203
+ aiFragmentService
204
+ }) {
205
+ options.logger.trace('(Mutation.syncAiFragmentFiles) id [%s] files [%d]', id, Object.keys(files || {}).length);
206
+ try {
207
+ if (!id || !files) {
208
+ options.logger.warn('Missing id or files');
209
+ throw new Error('Fragment ID and files are required');
210
+ }
211
+ return await aiFragmentService.update(id, {
212
+ files,
213
+ fileVersions
214
+ });
215
+ } catch (error) {
216
+ options.logger.error('Error syncing aiFragment files: %o', error);
217
+ throw error;
218
+ }
219
+ },
220
+ async generateCode(_src, {
221
+ value,
222
+ modelConfig
223
+ }, context) {
224
+ try {
225
+ const {
226
+ orgName,
227
+ userContext,
228
+ inngestClient
229
+ } = context;
230
+ const owner = userContext?.accountId;
231
+ if (!orgName || !owner) {
232
+ return {
233
+ success: false,
234
+ message: 'Missing organization or user context',
235
+ eventId: null
236
+ };
237
+ }
238
+ const result = await inngestClient.send({
239
+ name: 'code-agent/run',
240
+ data: {
241
+ value,
242
+ owner,
243
+ orgName,
244
+ modelConfig
245
+ }
246
+ });
247
+ return {
248
+ success: true,
249
+ message: 'Code generation initiated successfully',
250
+ eventId: result.ids[0]
251
+ };
252
+ } catch (error) {
253
+ return {
254
+ success: false,
255
+ message: `Failed to generate code: ${error.message}`,
256
+ eventId: null
257
+ };
258
+ }
259
+ }
260
+ },
261
+ Subscription: {
262
+ fragmentUpdated: {
263
+ subscribe: withFilter((_, __, context) => context.pubsub.asyncIterator(['FRAGMENT_UPDATED']), (payload, variables) => payload.fragmentUpdated.projectId === variables.projectId),
264
+ resolve: (payload, _args, context) => {
265
+ try {
266
+ if (!context.userContext) context.userContext = {};
267
+ if (!context.req) context.req = {};
268
+ return payload.fragmentUpdated;
269
+ } catch (error) {
270
+ options.logger.error('Fragment update subscription resolve error: %o', error);
271
+ return payload.fragmentUpdated;
272
+ }
273
+ }
274
+ }
275
+ }
276
+ });export{aiFragmentResolvers};//# sourceMappingURL=ai-fragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-fragment.js","sources":["../../../src/graphql/resolvers/ai-fragment.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- import { IResolvers } from 'common';
2
- export declare const channelMemberResolvers: () => IResolvers;
1
+ import { IResolverOptions } from '@common-stack/server-core';
2
+ import { IResolvers } from 'common/server';
3
+ export declare const channelMemberResolvers: (options: IResolverOptions) => IResolvers;
@@ -1,16 +1,41 @@
1
- const channelMemberResolvers = () => ({
1
+ const channelMemberResolvers = options => ({
2
2
  Channel: {
3
3
  creator(src, args, {
4
- accountService
4
+ accountService,
5
+ accountUserDataLoader
5
6
  }) {
6
- return accountService.findAccountById(src.creator.toString());
7
+ options.logger.trace('(Channel.creator) src.creator [%s]', src.creator);
8
+ // Check if creator exists and is not null/undefined before calling service
9
+ if (!src.creator || src.creator === null || src.creator === undefined) {
10
+ return null;
11
+ }
12
+ return accountUserDataLoader.load(src.creator.toString());
7
13
  }
8
14
  },
9
15
  ChannelMember: {
16
+ id(src) {
17
+ // Handle both virtual 'id' and MongoDB '_id' fields
18
+ const memberId = src.id || src._id;
19
+ if (!memberId) {
20
+ // If neither exists, generate an id based on user and other properties
21
+ // This ensures we always have a unique identifier
22
+ if (src.user) {
23
+ return `${src.user.toString()}-${src.createdAt || Date.now()}`;
24
+ }
25
+ throw new Error('ChannelMember id is required but not provided');
26
+ }
27
+ return memberId.toString();
28
+ },
10
29
  user(src, args, {
11
- accountService
30
+ accountService,
31
+ accountUserDataLoader
12
32
  }) {
13
- return accountService.findAccountById(src.user.toString());
33
+ options.logger.trace('(ChannelMember.user) src.user [%s]', src.user);
34
+ // Check if user exists and is not null/undefined before calling service
35
+ if (!src.user || src.user === null || src.user === undefined) {
36
+ return null;
37
+ }
38
+ return accountUserDataLoader.load(src.user.toString());
14
39
  }
15
40
  },
16
41
  Query: {},
@@ -1 +1 @@
1
- {"version":3,"file":"channel-member.js","sources":["../../../src/graphql/resolvers/channel-member.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEa,MAAA,sBAAsB,GAAG,OAAmB;AACrD,EAAA,OAAA,EAAO;AACH,IAAA,OAAA,CAAA,GAAO,EAAI,IAAE;;;AAGhB,MAAA,OAAA,cAAA,CAAA,eAAA,CAAA,GAAA,CAAA,OAAA,CAAA,QAAA,EAAA,CAAA;AACD;AACI,GAAA;eACW,EAAA;QACX,CAAC,GAAA,EAAA,IAAA,EAAA;AACJ,MAAA;AACD,KAAA,EAAA;AACA,MAAA,qBAAY,CAAA,eAAA,CAAA,GAAA,CAAA,IAAA,CAAA,QAAA,EAAA,CAAA;AACf;;;;"}
1
+ {"version":3,"file":"channel-member.js","sources":["../../../src/graphql/resolvers/channel-member.ts"],"sourcesContent":[null],"names":[],"mappings":"MAIa,sBAAsB,GAAG,OAA0B,KAAgB;AAC5E,EAAA,OAAA,EAAO;WACI,CAAA,GAAA,MAAM,EAAA;oBACD;;AAGR,KAAA,EAAA;AACI,MAAA,OAAA,CAAA,MAAA,CAAA,MAAW,oCAAC,EAAA,GAAA,CAAA,OAAA,CAAA;;cAGT,CAAA,OAAA,IAAA,GAAA,CAAA,OAAA,KAAsB,IAAK,IAAI,GAAA,CAAA,OAAQ,KAAQ,SAAwC,EAAA;QAClG,OAAC,IAAA;AACJ;AACD,MAAA,OAAA,qBAAe,CAAA,IAAA,CAAA,GAAA,CAAA,OAAA,CAAA,QAAA,EAAA,CAAA;AACX;;eAEU,EAAA;YACN;;oBAEsD,GAAA,GAAA,CAAA,EAAA,IAAA,GAAA,CAAA,GAAA;AAClD,MAAA,IAAA,CAAA,QAAA,EAAO;AACH;;AAEJ,QAAA,IAAA,GAAA,CAAA,IAAA,EAAM;iBACT,CAAA,EAAA,GAAA,CAAA,IAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA,GAAA,CAAA,SAAA,IAAA,IAAA,CAAA,GAAA,EAAA,CAAA,CAAA;AACD;QACJ,MAAC,IAAA,KAAA,CAAA,+CAAA,CAAA;;aAEU,QAAO,CAAA,QAAM,EAAA;;AAGpB,IAAA,IAAA,CAAA,GAAA,EAAA,IAAQ,EAAA;AACJ,MAAA,cAAA;;;aAIP,CAAA,MAAA,CAAA,KAAA,CAAA,oCAAA,EAAA,GAAA,CAAA,IAAA,CAAA;AACJ;AACD,MAAA,KAAO,GAAE,CAAA,IAAA,IAAA,GAAA,CAAA,IAAA,KAAA,IAAA,IAAA,GAAA,CAAA,IAAA,KAAA,SAAA,EAAA;AACT,QAAA,OAAY,IAAA;AACf;;;;;;"}
@@ -1,2 +1,3 @@
1
- import { IResolvers } from 'common';
2
- export declare const channelResolvers: () => IResolvers;
1
+ import { IResolverOptions } from '@common-stack/server-core';
2
+ import { IResolvers } from 'common/server';
3
+ export declare const channelResolvers: (options: IResolverOptions) => IResolvers;