serene-core-server 0.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 (315) hide show
  1. package/dist/apollo/resolvers/mutations/mailing-lists.d.ts +11 -0
  2. package/dist/apollo/resolvers/mutations/mailing-lists.js +30 -0
  3. package/dist/apollo/resolvers/mutations/user-preferences.d.ts +13 -0
  4. package/dist/apollo/resolvers/mutations/user-preferences.js +31 -0
  5. package/dist/apollo/resolvers/mutations/users.d.ts +28 -0
  6. package/dist/apollo/resolvers/mutations/users.js +44 -0
  7. package/dist/apollo/resolvers/queries/access.d.ts +11 -0
  8. package/dist/apollo/resolvers/queries/access.js +25 -0
  9. package/dist/apollo/resolvers/queries/profile.d.ts +11 -0
  10. package/dist/apollo/resolvers/queries/profile.js +25 -0
  11. package/dist/apollo/resolvers/queries/quotas.d.ts +21 -0
  12. package/dist/apollo/resolvers/queries/quotas.js +25 -0
  13. package/dist/apollo/resolvers/queries/tech.d.ts +5 -0
  14. package/dist/apollo/resolvers/queries/tech.js +35 -0
  15. package/dist/apollo/resolvers/queries/user-preferences.d.ts +5 -0
  16. package/dist/apollo/resolvers/queries/user-preferences.js +33 -0
  17. package/dist/apollo/resolvers/queries/users.d.ts +15 -0
  18. package/dist/apollo/resolvers/queries/users.js +28 -0
  19. package/dist/apollo/resolvers/resolvers.d.ts +20 -0
  20. package/dist/apollo/resolvers/resolvers.js +38 -0
  21. package/dist/apollo/typedefs/typedefs.d.ts +1 -0
  22. package/dist/apollo/typedefs/typedefs.js +142 -0
  23. package/dist/index.d.ts +52 -0
  24. package/dist/index.js +68 -0
  25. package/dist/models/chat/chat-message-created-model.d.ts +17 -0
  26. package/dist/models/chat/chat-message-created-model.js +113 -0
  27. package/dist/models/chat/chat-message-model.d.ts +44 -0
  28. package/dist/models/chat/chat-message-model.js +523 -0
  29. package/dist/models/chat/chat-participant-model.d.ts +39 -0
  30. package/dist/models/chat/chat-participant-model.js +211 -0
  31. package/dist/models/chat/chat-session-model.d.ts +92 -0
  32. package/dist/models/chat/chat-session-model.js +301 -0
  33. package/dist/models/chat/chat-settings-model.d.ts +87 -0
  34. package/dist/models/chat/chat-settings-model.js +261 -0
  35. package/dist/models/feature-flags/feature-flag-model.d.ts +40 -0
  36. package/dist/models/feature-flags/feature-flag-model.js +164 -0
  37. package/dist/models/instances/instance-model.d.ts +93 -0
  38. package/dist/models/instances/instance-model.js +432 -0
  39. package/dist/models/instances/instance-setting-model.d.ts +39 -0
  40. package/dist/models/instances/instance-setting-model.js +193 -0
  41. package/dist/models/mailing-lists/mailing-list-model.d.ts +34 -0
  42. package/dist/models/mailing-lists/mailing-list-model.js +154 -0
  43. package/dist/models/mailing-lists/mailing-list-subscriber-model.d.ts +36 -0
  44. package/dist/models/mailing-lists/mailing-list-subscriber-model.js +152 -0
  45. package/dist/models/quotas/resource-quota-total-model.d.ts +46 -0
  46. package/dist/models/quotas/resource-quota-total-model.js +200 -0
  47. package/dist/models/quotas/resource-quota-usage-model.d.ts +51 -0
  48. package/dist/models/quotas/resource-quota-usage-model.js +181 -0
  49. package/dist/models/tech/rate-limited-api-event-model.d.ts +25 -0
  50. package/dist/models/tech/rate-limited-api-event-model.js +161 -0
  51. package/dist/models/tech/rate-limited-api-model.d.ts +21 -0
  52. package/dist/models/tech/rate-limited-api-model.js +141 -0
  53. package/dist/models/tech/tech-model.d.ts +44 -0
  54. package/dist/models/tech/tech-model.js +268 -0
  55. package/dist/models/tech/tech-provider-api-key-model.d.ts +43 -0
  56. package/dist/models/tech/tech-provider-api-key-model.js +224 -0
  57. package/dist/models/tech/tech-provider-model.d.ts +28 -0
  58. package/dist/models/tech/tech-provider-model.js +197 -0
  59. package/dist/models/users/external-user-integration-model.d.ts +36 -0
  60. package/dist/models/users/external-user-integration-model.js +196 -0
  61. package/dist/models/users/user-error-model.d.ts +54 -0
  62. package/dist/models/users/user-error-model.js +173 -0
  63. package/dist/models/users/user-error-summary-model.d.ts +45 -0
  64. package/dist/models/users/user-error-summary-model.js +172 -0
  65. package/dist/models/users/user-group-member-model.d.ts +41 -0
  66. package/dist/models/users/user-group-member-model.js +193 -0
  67. package/dist/models/users/user-group-model.d.ts +27 -0
  68. package/dist/models/users/user-group-model.js +146 -0
  69. package/dist/models/users/user-model.d.ts +46 -0
  70. package/dist/models/users/user-model.js +153 -0
  71. package/dist/models/users/user-preference-model.d.ts +60 -0
  72. package/dist/models/users/user-preference-model.js +228 -0
  73. package/dist/models/users/user-profile-model.d.ts +58 -0
  74. package/dist/models/users/user-profile-model.js +173 -0
  75. package/dist/prisma.config.d.ts +3 -0
  76. package/dist/prisma.config.js +13 -0
  77. package/dist/services/access/access-service.d.ts +12 -0
  78. package/dist/services/access/access-service.js +44 -0
  79. package/dist/services/access/encrypt-service.d.ts +13 -0
  80. package/dist/services/access/encrypt-service.js +84 -0
  81. package/dist/services/api-usage/api-usage-base-service.d.ts +15 -0
  82. package/dist/services/api-usage/api-usage-base-service.js +75 -0
  83. package/dist/services/console/service.d.ts +7 -0
  84. package/dist/services/console/service.js +70 -0
  85. package/dist/services/db/pg/pg-estimate-size-service.d.ts +16 -0
  86. package/dist/services/db/pg/pg-estimate-size-service.js +90 -0
  87. package/dist/services/files/types.d.ts +6 -0
  88. package/dist/services/files/types.js +2 -0
  89. package/dist/services/files/walk-dir-service.d.ts +8 -0
  90. package/dist/services/files/walk-dir-service.js +94 -0
  91. package/dist/services/locale/countries.d.ts +6 -0
  92. package/dist/services/locale/countries.js +484 -0
  93. package/dist/services/mailing-lists/mailing-list-subscriber-service.d.ts +14 -0
  94. package/dist/services/mailing-lists/mailing-list-subscriber-service.js +45 -0
  95. package/dist/services/process/sleep.d.ts +2 -0
  96. package/dist/services/process/sleep.js +10 -0
  97. package/dist/services/quotas/mutate-service.d.ts +5 -0
  98. package/dist/services/quotas/mutate-service.js +54 -0
  99. package/dist/services/quotas/query-service.d.ts +27 -0
  100. package/dist/services/quotas/query-service.js +137 -0
  101. package/dist/services/quotas/utils-service.d.ts +4 -0
  102. package/dist/services/quotas/utils-service.js +28 -0
  103. package/dist/services/tech/tech-provider-mutate-service.d.ts +7 -0
  104. package/dist/services/tech/tech-provider-mutate-service.js +142 -0
  105. package/dist/services/tech/tech-query-service.d.ts +9 -0
  106. package/dist/services/tech/tech-query-service.js +77 -0
  107. package/dist/services/user-preference/service.d.ts +10 -0
  108. package/dist/services/user-preference/service.js +70 -0
  109. package/dist/services/users/external-user-integration-service.d.ts +9 -0
  110. package/dist/services/users/external-user-integration-service.js +42 -0
  111. package/dist/services/users/profile-service.d.ts +40 -0
  112. package/dist/services/users/profile-service.js +408 -0
  113. package/dist/services/users/service.d.ts +64 -0
  114. package/dist/services/users/service.js +187 -0
  115. package/dist/services/users/user-error-service.d.ts +4 -0
  116. package/dist/services/users/user-error-service.js +42 -0
  117. package/dist/services/users/users-group-service.d.ts +16 -0
  118. package/dist/services/users/users-group-service.js +68 -0
  119. package/dist/services/utils/string-utils-service.d.ts +5 -0
  120. package/dist/services/utils/string-utils-service.js +41 -0
  121. package/dist/src/apollo/resolvers/mutations/mailing-lists.d.ts +11 -0
  122. package/dist/src/apollo/resolvers/mutations/mailing-lists.js +19 -0
  123. package/dist/src/apollo/resolvers/mutations/user-preferences.d.ts +13 -0
  124. package/dist/src/apollo/resolvers/mutations/user-preferences.js +20 -0
  125. package/dist/src/apollo/resolvers/mutations/users.d.ts +28 -0
  126. package/dist/src/apollo/resolvers/mutations/users.js +33 -0
  127. package/dist/src/apollo/resolvers/queries/access.d.ts +11 -0
  128. package/dist/src/apollo/resolvers/queries/access.js +14 -0
  129. package/dist/src/apollo/resolvers/queries/profile.d.ts +11 -0
  130. package/dist/src/apollo/resolvers/queries/profile.js +14 -0
  131. package/dist/src/apollo/resolvers/queries/quotas.d.ts +21 -0
  132. package/dist/src/apollo/resolvers/queries/quotas.js +14 -0
  133. package/dist/src/apollo/resolvers/queries/tech.d.ts +5 -0
  134. package/dist/src/apollo/resolvers/queries/tech.js +24 -0
  135. package/dist/src/apollo/resolvers/queries/user-preferences.d.ts +5 -0
  136. package/dist/src/apollo/resolvers/queries/user-preferences.js +22 -0
  137. package/dist/src/apollo/resolvers/queries/users.d.ts +15 -0
  138. package/dist/src/apollo/resolvers/queries/users.js +17 -0
  139. package/dist/src/apollo/typedefs/typedefs.d.ts +1 -0
  140. package/dist/src/apollo/typedefs/typedefs.js +139 -0
  141. package/dist/src/db.d.ts +3 -0
  142. package/dist/src/db.js +11 -0
  143. package/dist/src/index.d.ts +52 -0
  144. package/dist/src/index.js +52 -0
  145. package/dist/src/models/chat/chat-message-created-model.d.ts +17 -0
  146. package/dist/src/models/chat/chat-message-created-model.js +92 -0
  147. package/dist/src/models/chat/chat-message-model.d.ts +44 -0
  148. package/dist/src/models/chat/chat-message-model.js +484 -0
  149. package/dist/src/models/chat/chat-participant-model.d.ts +39 -0
  150. package/dist/src/models/chat/chat-participant-model.js +178 -0
  151. package/dist/src/models/chat/chat-session-model.d.ts +92 -0
  152. package/dist/src/models/chat/chat-session-model.js +266 -0
  153. package/dist/src/models/chat/chat-settings-model.d.ts +87 -0
  154. package/dist/src/models/chat/chat-settings-model.js +230 -0
  155. package/dist/src/models/feature-flags/feature-flag-model.d.ts +40 -0
  156. package/dist/src/models/feature-flags/feature-flag-model.js +137 -0
  157. package/dist/src/models/instances/instance-model.d.ts +100 -0
  158. package/dist/src/models/instances/instance-model.js +466 -0
  159. package/dist/src/models/instances/instance-setting-model.d.ts +39 -0
  160. package/dist/src/models/instances/instance-setting-model.js +164 -0
  161. package/dist/src/models/mailing-lists/mailing-list-model.d.ts +34 -0
  162. package/dist/src/models/mailing-lists/mailing-list-model.js +127 -0
  163. package/dist/src/models/mailing-lists/mailing-list-subscriber-model.d.ts +36 -0
  164. package/dist/src/models/mailing-lists/mailing-list-subscriber-model.js +127 -0
  165. package/dist/src/models/quotas/resource-quota-total-model.d.ts +46 -0
  166. package/dist/src/models/quotas/resource-quota-total-model.js +170 -0
  167. package/dist/src/models/quotas/resource-quota-usage-model.d.ts +51 -0
  168. package/dist/src/models/quotas/resource-quota-usage-model.js +151 -0
  169. package/dist/src/models/tech/rate-limited-api-event-model.d.ts +25 -0
  170. package/dist/src/models/tech/rate-limited-api-event-model.js +134 -0
  171. package/dist/src/models/tech/rate-limited-api-model.d.ts +21 -0
  172. package/dist/src/models/tech/rate-limited-api-model.js +116 -0
  173. package/dist/src/models/tech/tech-model.d.ts +44 -0
  174. package/dist/src/models/tech/tech-model.js +239 -0
  175. package/dist/src/models/tech/tech-provider-api-key-model.d.ts +43 -0
  176. package/dist/src/models/tech/tech-provider-api-key-model.js +195 -0
  177. package/dist/src/models/tech/tech-provider-model.d.ts +28 -0
  178. package/dist/src/models/tech/tech-provider-model.js +170 -0
  179. package/dist/src/models/users/external-user-integration-model.d.ts +36 -0
  180. package/dist/src/models/users/external-user-integration-model.js +167 -0
  181. package/dist/src/models/users/user-error-model.d.ts +54 -0
  182. package/dist/src/models/users/user-error-model.js +146 -0
  183. package/dist/src/models/users/user-error-summary-model.d.ts +45 -0
  184. package/dist/src/models/users/user-error-summary-model.js +145 -0
  185. package/dist/src/models/users/user-group-member-model.d.ts +41 -0
  186. package/dist/src/models/users/user-group-member-model.js +164 -0
  187. package/dist/src/models/users/user-group-model.d.ts +27 -0
  188. package/dist/src/models/users/user-group-model.js +121 -0
  189. package/dist/src/models/users/user-model.d.ts +46 -0
  190. package/dist/src/models/users/user-model.js +126 -0
  191. package/dist/src/models/users/user-preference-model.d.ts +60 -0
  192. package/dist/src/models/users/user-preference-model.js +197 -0
  193. package/dist/src/models/users/user-profile-model.d.ts +58 -0
  194. package/dist/src/models/users/user-profile-model.js +146 -0
  195. package/dist/src/services/access/access-service.d.ts +12 -0
  196. package/dist/src/services/access/access-service.js +27 -0
  197. package/dist/src/services/access/encrypt-service.d.ts +13 -0
  198. package/dist/src/services/access/encrypt-service.js +79 -0
  199. package/dist/src/services/api-usage/api-usage-base-service.d.ts +15 -0
  200. package/dist/src/services/api-usage/api-usage-base-service.js +58 -0
  201. package/dist/src/services/console/service.d.ts +7 -0
  202. package/dist/src/services/console/service.js +18 -0
  203. package/dist/src/services/db/pg/pg-estimate-size-service.d.ts +16 -0
  204. package/dist/src/services/db/pg/pg-estimate-size-service.js +83 -0
  205. package/dist/src/services/files/types.d.ts +6 -0
  206. package/dist/src/services/files/types.js +1 -0
  207. package/dist/src/services/files/walk-dir-service.d.ts +8 -0
  208. package/dist/src/services/files/walk-dir-service.js +77 -0
  209. package/dist/src/services/locale/countries.d.ts +6 -0
  210. package/dist/src/services/locale/countries.js +481 -0
  211. package/dist/src/services/mailing-lists/mailing-list-subscriber-service.d.ts +14 -0
  212. package/dist/src/services/mailing-lists/mailing-list-subscriber-service.js +28 -0
  213. package/dist/src/services/process/sleep.d.ts +2 -0
  214. package/dist/src/services/process/sleep.js +6 -0
  215. package/dist/src/services/quotas/mutate-service.d.ts +5 -0
  216. package/dist/src/services/quotas/mutate-service.js +37 -0
  217. package/dist/src/services/quotas/query-service.d.ts +27 -0
  218. package/dist/src/services/quotas/query-service.js +116 -0
  219. package/dist/src/services/quotas/utils-service.d.ts +4 -0
  220. package/dist/src/services/quotas/utils-service.js +22 -0
  221. package/dist/src/services/tech/tech-provider-mutate-service.d.ts +7 -0
  222. package/dist/src/services/tech/tech-provider-mutate-service.js +85 -0
  223. package/dist/src/services/tech/tech-query-service.d.ts +9 -0
  224. package/dist/src/services/tech/tech-query-service.js +58 -0
  225. package/dist/src/services/user-preference/service.d.ts +10 -0
  226. package/dist/src/services/user-preference/service.js +49 -0
  227. package/dist/src/services/users/external-user-integration-service.d.ts +9 -0
  228. package/dist/src/services/users/external-user-integration-service.js +25 -0
  229. package/dist/src/services/users/profile-service.d.ts +40 -0
  230. package/dist/src/services/users/profile-service.js +385 -0
  231. package/dist/src/services/users/service.d.ts +64 -0
  232. package/dist/src/services/users/service.js +152 -0
  233. package/dist/src/services/users/user-error-service.d.ts +4 -0
  234. package/dist/src/services/users/user-error-service.js +27 -0
  235. package/dist/src/services/users/users-group-service.d.ts +16 -0
  236. package/dist/src/services/users/users-group-service.js +51 -0
  237. package/dist/src/services/utils/field-naming-service.d.ts +20 -0
  238. package/dist/src/services/utils/field-naming-service.js +59 -0
  239. package/dist/src/services/utils/string-utils-service.d.ts +5 -0
  240. package/dist/src/services/utils/string-utils-service.js +37 -0
  241. package/dist/src/types/errors.d.ts +9 -0
  242. package/dist/src/types/errors.js +15 -0
  243. package/dist/src/types/user-types.d.ts +11 -0
  244. package/dist/src/types/user-types.js +14 -0
  245. package/dist/types/errors.d.ts +9 -0
  246. package/dist/types/errors.js +20 -0
  247. package/dist/types/user-types.d.ts +11 -0
  248. package/dist/types/user-types.js +19 -0
  249. package/package.json +21 -0
  250. package/prisma/schema.prisma +572 -0
  251. package/prisma.config.ts +14 -0
  252. package/src/apollo/README.md +4 -0
  253. package/src/apollo/resolvers/mutations/mailing-lists.ts +30 -0
  254. package/src/apollo/resolvers/mutations/user-preferences.ts +33 -0
  255. package/src/apollo/resolvers/mutations/users.ts +61 -0
  256. package/src/apollo/resolvers/queries/access.ts +23 -0
  257. package/src/apollo/resolvers/queries/profile.ts +24 -0
  258. package/src/apollo/resolvers/queries/quotas.ts +25 -0
  259. package/src/apollo/resolvers/queries/tech.ts +42 -0
  260. package/src/apollo/resolvers/queries/user-preferences.ts +34 -0
  261. package/src/apollo/resolvers/queries/users.ts +33 -0
  262. package/src/apollo/typedefs/typedefs.ts +139 -0
  263. package/src/db.ts +19 -0
  264. package/src/index.ts +52 -0
  265. package/src/models/chat/chat-message-created-model.ts +126 -0
  266. package/src/models/chat/chat-message-model.ts +678 -0
  267. package/src/models/chat/chat-participant-model.ts +248 -0
  268. package/src/models/chat/chat-session-model.ts +397 -0
  269. package/src/models/chat/chat-settings-model.ts +336 -0
  270. package/src/models/feature-flags/feature-flag-model.ts +198 -0
  271. package/src/models/instances/instance-model.ts +673 -0
  272. package/src/models/instances/instance-setting-model.ts +235 -0
  273. package/src/models/mailing-lists/mailing-list-model.ts +177 -0
  274. package/src/models/mailing-lists/mailing-list-subscriber-model.ts +194 -0
  275. package/src/models/quotas/resource-quota-total-model.ts +243 -0
  276. package/src/models/quotas/resource-quota-usage-model.ts +219 -0
  277. package/src/models/tech/rate-limited-api-event-model.ts +190 -0
  278. package/src/models/tech/rate-limited-api-model.ts +171 -0
  279. package/src/models/tech/tech-model.ts +360 -0
  280. package/src/models/tech/tech-provider-api-key-model.ts +289 -0
  281. package/src/models/tech/tech-provider-model.ts +247 -0
  282. package/src/models/users/external-user-integration-model.ts +236 -0
  283. package/src/models/users/user-error-model.ts +219 -0
  284. package/src/models/users/user-error-summary-model.ts +216 -0
  285. package/src/models/users/user-group-member-model.ts +233 -0
  286. package/src/models/users/user-group-model.ts +174 -0
  287. package/src/models/users/user-model.ts +172 -0
  288. package/src/models/users/user-preference-model.ts +285 -0
  289. package/src/models/users/user-profile-model.ts +207 -0
  290. package/src/services/access/access-service.ts +36 -0
  291. package/src/services/access/encrypt-service.ts +122 -0
  292. package/src/services/api-usage/api-usage-base-service.ts +95 -0
  293. package/src/services/console/service.ts +24 -0
  294. package/src/services/db/pg/pg-estimate-size-service.ts +119 -0
  295. package/src/services/files/types.ts +7 -0
  296. package/src/services/files/walk-dir-service.ts +135 -0
  297. package/src/services/locale/countries.ts +483 -0
  298. package/src/services/mailing-lists/mailing-list-subscriber-service.ts +54 -0
  299. package/src/services/process/sleep.ts +7 -0
  300. package/src/services/quotas/mutate-service.ts +66 -0
  301. package/src/services/quotas/query-service.ts +197 -0
  302. package/src/services/quotas/utils-service.ts +29 -0
  303. package/src/services/tech/tech-provider-mutate-service.ts +136 -0
  304. package/src/services/tech/tech-query-service.ts +93 -0
  305. package/src/services/user-preference/service.ts +110 -0
  306. package/src/services/users/external-user-integration-service.ts +51 -0
  307. package/src/services/users/profile-service.ts +513 -0
  308. package/src/services/users/service.ts +293 -0
  309. package/src/services/users/user-error-service.ts +74 -0
  310. package/src/services/users/users-group-service.ts +85 -0
  311. package/src/services/utils/field-naming-service.ts +78 -0
  312. package/src/services/utils/string-utils-service.ts +48 -0
  313. package/src/types/errors.ts +18 -0
  314. package/src/types/user-types.ts +19 -0
  315. package/tsconfig.json +25 -0
@@ -0,0 +1,61 @@
1
+ import { UsersService } from '../../../services/users/service'
2
+
3
+ // Services
4
+ const usersService = new UsersService()
5
+
6
+ // Factory of resolvers
7
+ // Note: prisma must be passed into the GraphQL server's context
8
+ export function sereneCoreUsersMutationResolvers() {
9
+ return {
10
+ Mutation: {
11
+ createBlankUser: async (
12
+ parent: any,
13
+ args: any,
14
+ context: any,
15
+ info: any
16
+ ) => {
17
+ return usersService.createBlankUser(context.prisma)
18
+ },
19
+ createUserByEmail: async (
20
+ parent: any,
21
+ args: any,
22
+ context: any,
23
+ info: any
24
+ ) => {
25
+ return usersService.createUserByEmail(
26
+ context.prisma,
27
+ args.email)
28
+ },
29
+ getOrCreateSignedOutUser: async (
30
+ parent: any,
31
+ args: any,
32
+ context: any,
33
+ info: any
34
+ ) => {
35
+ try {
36
+ return usersService.getOrCreateSignedOutUser(
37
+ context.prisma,
38
+ args.signedOutId,
39
+ args.defaultUserPreferences)
40
+ } catch (error) {
41
+ console.error(`getOrCreateSignedOutUser(): error: ${error}`)
42
+ }
43
+ },
44
+ getOrCreateUserByEmail: async (
45
+ parent: any,
46
+ args: any,
47
+ context: any,
48
+ info: any
49
+ ) => {
50
+ try {
51
+ return usersService.getOrCreateUserByEmail(
52
+ context.prisma,
53
+ args.email,
54
+ args.defaultUserPreferences)
55
+ } catch (error) {
56
+ console.error(`getOrCreateUserByEmail(): error: ${error}`)
57
+ }
58
+ },
59
+ },
60
+ }
61
+ }
@@ -0,0 +1,23 @@
1
+ import { AccessService } from '../../../services/access/access-service'
2
+
3
+ // Services
4
+ const accessService = new AccessService()
5
+
6
+ // Factory of resolvers
7
+ // Note: prisma must be passed into the GraphQL server's context
8
+ export function sereneCoreAccessQueryResolvers() {
9
+ return {
10
+ Query: {
11
+ isAdminUser: async (
12
+ parent: any,
13
+ args: any,
14
+ context: any,
15
+ info: any
16
+ ) => {
17
+ return accessService.isAdminUser(
18
+ context.prisma,
19
+ args.userProfileId)
20
+ },
21
+ },
22
+ }
23
+ }
@@ -0,0 +1,24 @@
1
+ import { ProfileService } from '../../../services/users/profile-service'
2
+
3
+ // Services
4
+ const profileService = new ProfileService()
5
+
6
+ // Factory of resolvers
7
+ // Note: prisma must be passed into the GraphQL server's context
8
+ export function sereneCoreProfileQueryResolvers() {
9
+ return {
10
+ Query: {
11
+ validateProfileCompleted: async (
12
+ parent: any,
13
+ args: any,
14
+ context: any,
15
+ info: any
16
+ ) => {
17
+ return profileService.validateProfileCompleted(
18
+ context.prisma,
19
+ args.forAction,
20
+ args.userProfileId)
21
+ },
22
+ },
23
+ }
24
+ }
@@ -0,0 +1,25 @@
1
+ import { ResourceQuotasQueryService } from '../../../services/quotas/query-service'
2
+
3
+ // Services
4
+ const resourceQuotasService = new ResourceQuotasQueryService()
5
+
6
+ // Factory of resolvers
7
+ // Note: prisma must be passed into the GraphQL server's context
8
+ export function sereneCoreQuotasQueryResolvers() {
9
+ return {
10
+ Query: {
11
+ getResourceQuotaUsage: async (
12
+ parent: any,
13
+ args: any,
14
+ context: any,
15
+ info: any
16
+ ) => {
17
+ return resourceQuotasService.getQuotaAndUsageForUi(
18
+ context.prisma,
19
+ args.userProfileId,
20
+ args.resource,
21
+ args.day)
22
+ },
23
+ },
24
+ }
25
+ }
@@ -0,0 +1,42 @@
1
+ import { TechQueryService } from '../../../services/tech/tech-query-service'
2
+ import { UsersService } from '../../../services/users/service'
3
+
4
+ // Services
5
+ const techQueryService = new TechQueryService()
6
+ const usersService = new UsersService()
7
+
8
+ // Factory of resolvers
9
+ // Note: prisma must be passed into the GraphQL server's context
10
+ export function sereneCoreTechQueryResolvers() {
11
+ return {
12
+ Query: {
13
+ getTechs: async (
14
+ parent: any,
15
+ args: any,
16
+ context: any,
17
+ info: any
18
+ ) => {
19
+ // Debug
20
+ const fnName = 'getTechs()'
21
+
22
+ console.log(`${fnName}: args: ` + JSON.stringify(args))
23
+
24
+ // Get userProfile
25
+ const userProfile = await
26
+ usersService.getById(
27
+ context.prisma,
28
+ args.userProfileId)
29
+
30
+ // Get quota and usage
31
+ const results = await
32
+ techQueryService.getTechs(
33
+ context.prisma,
34
+ userProfile,
35
+ args.resource)
36
+
37
+ // Return
38
+ return results.techs
39
+ },
40
+ },
41
+ }
42
+ }
@@ -0,0 +1,34 @@
1
+ import { UserPreferenceService } from '../../../services/user-preference/service'
2
+
3
+ // Services
4
+ const userPreferenceService = new UserPreferenceService()
5
+
6
+ // Factory of resolvers
7
+ // Note: prisma must be passed into the GraphQL server's context
8
+ export function sereneCoreUserPreferencesQueryResolvers() {
9
+ return {
10
+ Query: {
11
+ getUserPreferences: async (
12
+ parent: any,
13
+ args: any,
14
+ context: any,
15
+ info: any
16
+ ) => {
17
+ console.log('getUserPreferences(): ' +
18
+ `args.userProfileId: ${args.userProfileId} ` +
19
+ `args.keys: ${args.keys}`)
20
+
21
+ try {
22
+ return await
23
+ userPreferenceService.getUserPreferences(
24
+ context.prisma,
25
+ args.userProfileId,
26
+ args.category,
27
+ args.keys)
28
+ } catch (error) {
29
+ console.error(`getUserPreferences: ${error}`)
30
+ }
31
+ },
32
+ },
33
+ }
34
+ }
@@ -0,0 +1,33 @@
1
+ import { UsersService } from '../../../services/users/service'
2
+
3
+ // Services
4
+ const usersService = new UsersService()
5
+
6
+ // Factory of resolvers
7
+ // Note: prisma must be passed into the GraphQL server's context
8
+ export function sereneCoreUsersQueryResolvers() {
9
+ return {
10
+ Query: {
11
+ userById: async (
12
+ parent: any,
13
+ args: any,
14
+ context: any,
15
+ info: any
16
+ ) => {
17
+ return usersService.getById(
18
+ context.prisma,
19
+ args.userProfileId)
20
+ },
21
+ verifySignedInUserProfileId: async (
22
+ parent: any,
23
+ args: any,
24
+ context: any,
25
+ info: any
26
+ ) => {
27
+ return usersService.verifySignedInUserProfileId(
28
+ context.prisma,
29
+ args.userProfileId)
30
+ },
31
+ },
32
+ }
33
+ }
@@ -0,0 +1,139 @@
1
+ export const typeDefs = `#graphql
2
+
3
+ type ChatMessage {
4
+ id: String!
5
+ name: String!
6
+ message: String!
7
+ created: String!
8
+ updated: String
9
+ }
10
+
11
+ type ChatMessageResults {
12
+ status: Boolean!
13
+ message: String
14
+ chatMessages: [ChatMessage]
15
+ }
16
+
17
+ type ChatParticipant {
18
+ id: String!
19
+ userProfileId: String!
20
+ name: String!
21
+ }
22
+
23
+ type ChatParticipantResults {
24
+ status: Boolean!
25
+ message: String
26
+ chatParticipants: [ChatParticipant]
27
+ }
28
+
29
+ type ChatSession {
30
+ id: String!
31
+ status: String!
32
+ name: String
33
+ updated: String!
34
+ chatParticipants: [ChatParticipant]
35
+ }
36
+
37
+ type ChatSessionResults {
38
+ status: Boolean!
39
+ message: String
40
+ chatSession: ChatSession
41
+ }
42
+
43
+ type ResourceQuotaUsage {
44
+ userProfileId: String!
45
+ resource: String!
46
+ day: String!
47
+ quota: Float!
48
+ usage: Float!
49
+ }
50
+
51
+ type StatusAndMessage {
52
+ status: Boolean!
53
+ message: String
54
+ }
55
+
56
+ type Techs {
57
+ id: String!
58
+ resource: String!
59
+ variantName: String!
60
+ }
61
+
62
+ type UserPreference {
63
+ category: String!
64
+ key: String!
65
+ value: String
66
+ values: [String]
67
+ }
68
+
69
+ type UserProfile {
70
+ id: String!
71
+ userId: String
72
+ isAdmin: Boolean!
73
+ }
74
+
75
+ type VerifiedAndMessage {
76
+ verified: Boolean!
77
+ message: String
78
+ }
79
+
80
+ type Query {
81
+
82
+ # Profile
83
+ validateProfileCompleted(
84
+ forAction: String!,
85
+ userProfileId: String!): StatusAndMessage!
86
+
87
+ # Quotas
88
+ getResourceQuotaUsage(
89
+ userProfileId: String!,
90
+ resource: String!,
91
+ day: String,
92
+ viewUserProfileId: String): ResourceQuotaUsage!
93
+
94
+ # Tech
95
+ getTechs(
96
+ userProfileId: String!,
97
+ resource: String!): [Tech]
98
+
99
+ # Users
100
+ isAdminUser(userProfileId: String!): StatusAndMessage!
101
+ userById(userProfileId: String!): UserProfile
102
+ verifySignedInUserProfileId(userProfileId: String!): Boolean
103
+
104
+ # User preferences
105
+ getUserPreferences(
106
+ userProfileId: String!,
107
+ category: String!,
108
+ keys: [String]): [UserPreference]
109
+ }
110
+
111
+ type Mutation {
112
+
113
+ # Mailing lists
114
+ mailingListSignup(
115
+ mailingListName: String!,
116
+ email: String!,
117
+ firstName: String): VerifiedAndMessage!
118
+
119
+ # Users
120
+ createBlankUser: UserProfile!
121
+ createUserByEmail(email: String!): UserProfile!
122
+ deactivateUserProfileCurrentIFile(id: String!): Boolean
123
+ getOrCreateSignedOutUser(
124
+ signedOutId: String,
125
+ defaultUserPreferences: String): UserProfile!
126
+ getOrCreateUserByEmail(
127
+ email: String!,
128
+ defaultUserPreferences: String): UserProfile!
129
+
130
+ # User preferences
131
+ upsertUserPreference(
132
+ userProfileId: String!,
133
+ category: String!,
134
+ key: String!,
135
+ value: String,
136
+ values: [String]): Boolean
137
+ }
138
+
139
+ `
package/src/db.ts ADDED
@@ -0,0 +1,19 @@
1
+ import 'dotenv/config'
2
+ import { PrismaPg } from '@prisma/adapter-pg'
3
+ import { PrismaClient } from '@/../prisma/generated/prisma/client'
4
+
5
+ const connectionString = process.env.DATABASE_URL!
6
+
7
+ const adapter = new PrismaPg({ connectionString })
8
+
9
+ const globalForPrisma = globalThis as unknown as {
10
+ prisma: PrismaClient | undefined
11
+ }
12
+
13
+ export const prisma =
14
+ globalForPrisma.prisma ??
15
+ new PrismaClient({ adapter })
16
+
17
+ if (process.env.NODE_ENV !== 'production') {
18
+ globalForPrisma.prisma = prisma
19
+ }
package/src/index.ts ADDED
@@ -0,0 +1,52 @@
1
+ export * from './apollo/resolvers/mutations/mailing-lists'
2
+ export * from './apollo/resolvers/mutations/user-preferences'
3
+ export * from './apollo/resolvers/mutations/users'
4
+ export * from './apollo/resolvers/queries/access'
5
+ export * from './apollo/resolvers/queries/profile'
6
+ export * from './apollo/resolvers/queries/quotas'
7
+ export * from './apollo/resolvers/queries/tech'
8
+ export * from './apollo/resolvers/queries/user-preferences'
9
+ export * from './apollo/resolvers/queries/users'
10
+ export * from './models/chat/chat-message-created-model'
11
+ export * from './models/chat/chat-message-model'
12
+ export * from './models/chat/chat-participant-model'
13
+ export * from './models/chat/chat-session-model'
14
+ export * from './models/chat/chat-settings-model'
15
+ export * from './models/feature-flags/feature-flag-model'
16
+ export * from './models/instances/instance-model'
17
+ export * from './models/instances/instance-setting-model'
18
+ export * from './models/quotas/resource-quota-total-model'
19
+ export * from './models/quotas/resource-quota-usage-model'
20
+ export * from './models/tech/rate-limited-api-event-model'
21
+ export * from './models/tech/rate-limited-api-model'
22
+ export * from './models/tech/tech-model'
23
+ export * from './models/tech/tech-provider-api-key-model'
24
+ export * from './models/tech/tech-provider-model'
25
+ export * from './models/users/external-user-integration-model'
26
+ export * from './models/users/user-error-model'
27
+ export * from './models/users/user-error-summary-model'
28
+ export * from './models/users/user-group-member-model'
29
+ export * from './models/users/user-group-model'
30
+ export * from './models/users/user-model'
31
+ export * from './models/users/user-preference-model'
32
+ export * from './models/users/user-profile-model'
33
+ export * from './services/access/access-service'
34
+ export * from './services/access/encrypt-service'
35
+ export * from './services/api-usage/api-usage-base-service'
36
+ export * from './services/db/pg/pg-estimate-size-service'
37
+ export * from './services/files/types'
38
+ export * from './services/files/walk-dir-service'
39
+ export * from './services/locale/countries'
40
+ export * from './services/process/sleep'
41
+ export * from './services/quotas/mutate-service'
42
+ export * from './services/quotas/query-service'
43
+ export * from './services/quotas/utils-service'
44
+ export * from './services/tech/tech-provider-mutate-service'
45
+ export * from './services/tech/tech-query-service'
46
+ export * from './services/user-preference/service'
47
+ export * from './services/users/external-user-integration-service'
48
+ export * from './services/users/profile-service'
49
+ export * from './services/users/service'
50
+ export * from './services/users/user-error-service'
51
+ export * from './services/users/users-group-service'
52
+ export * from './services/utils/string-utils-service'
@@ -0,0 +1,126 @@
1
+ import { PrismaClient } from '@/prisma/client'
2
+ import { CustomError } from '../../types/errors'
3
+
4
+ export class ChatMessageCreatedModel {
5
+
6
+ // Consts
7
+ clName = 'ChatMessageCreatedModel'
8
+
9
+ // Code
10
+ async countMessages(
11
+ prisma: PrismaClient,
12
+ userProfileId: string,
13
+ instanceId: string | null | undefined,
14
+ techId: string | undefined,
15
+ startDate: Date,
16
+ sentByAi: boolean) {
17
+
18
+ // Debug
19
+ const fnName = `${this.clName}.countMessages()`
20
+
21
+ // Query
22
+ const count = await prisma.chatMessageCreated.count({
23
+ where: {
24
+ userProfileId: userProfileId,
25
+ instanceId: instanceId,
26
+ techId: techId,
27
+ sentByAi: sentByAi,
28
+ created: {
29
+ gte: startDate,
30
+ },
31
+ },
32
+ })
33
+
34
+ // Return
35
+ return count
36
+ }
37
+
38
+ async create(prisma: PrismaClient,
39
+ userProfileId: string,
40
+ instanceId: string | null,
41
+ techId: string,
42
+ sentByAi: boolean,
43
+ inputTokens: number,
44
+ outputTokens: number,
45
+ costInCents: number) {
46
+
47
+ // Debug
48
+ const fnName = `${this.clName}.create()`
49
+
50
+ // Validate
51
+ if (userProfileId == null) {
52
+ throw new CustomError(`${fnName}: userProfileId == null`)
53
+ }
54
+
55
+ if (instanceId === undefined) {
56
+ throw new CustomError(`${fnName}: instanceId === undefined`)
57
+ }
58
+
59
+ if (techId == null) {
60
+ throw new CustomError(`${fnName}: techId == null`)
61
+ }
62
+
63
+ if (sentByAi == null) {
64
+ throw new CustomError(`${fnName}: sentByAi == null`)
65
+ }
66
+
67
+ if (inputTokens == null) {
68
+ throw new CustomError(`${fnName}: inputTokens == null`)
69
+ }
70
+
71
+ if (outputTokens == null) {
72
+ throw new CustomError(`${fnName}: outputTokens == null`)
73
+ }
74
+
75
+ if (costInCents == null) {
76
+ throw new CustomError(`${fnName}: costInCents == null`)
77
+ }
78
+
79
+ // Create record
80
+ try {
81
+ return await prisma.chatMessageCreated.create({
82
+ data: {
83
+ userProfileId: userProfileId,
84
+ instanceId: instanceId,
85
+ techId: techId,
86
+ sentByAi: sentByAi,
87
+ inputTokens: inputTokens,
88
+ outputTokens: outputTokens,
89
+ costInCents: costInCents
90
+ }
91
+ })
92
+ } catch(error) {
93
+ console.error(`${fnName}: error: ${error}`)
94
+ throw 'Prisma error'
95
+ }
96
+ }
97
+
98
+ async deleteByDaysAgo(
99
+ prisma: PrismaClient,
100
+ daysAgo: number) {
101
+
102
+ // Debug
103
+ const fnName = `${this.clName}.deleteByDaysAgo()`
104
+
105
+ // Days ago
106
+ const day = 1000 * 60 * 60 * 24
107
+ const daysAgoTime = day * daysAgo
108
+ const daysAgoDate = new Date(new Date().getTime() - daysAgoTime)
109
+
110
+ // Delete records
111
+ try {
112
+ await prisma.chatMessageCreated.deleteMany({
113
+ where: {
114
+ created: {
115
+ lt: daysAgoDate
116
+ }
117
+ }
118
+ })
119
+ } catch(error: any) {
120
+ if (!(error instanceof error.NotFound)) {
121
+ console.error(`${fnName}: error: ${error}`)
122
+ throw 'Prisma error'
123
+ }
124
+ }
125
+ }
126
+ }