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,42 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserErrorService = void 0;
13
+ const user_error_model_1 = require("../../models/users/user-error-model");
14
+ const user_error_summary_model_1 = require("../../models/users/user-error-summary-model");
15
+ // Models
16
+ const userErrorModel = new user_error_model_1.UserErrorModel();
17
+ const userErrorSummaryModel = new user_error_summary_model_1.UserErrorSummaryModel();
18
+ // Class
19
+ class UserErrorService {
20
+ upsert(prisma, userProfileId, endUserProfileId, instanceId, summaryMessage, origin, message, techMessage) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ // If the summaryMessage isn't specified, set it to the message
23
+ if (summaryMessage == null) {
24
+ summaryMessage = message;
25
+ }
26
+ // Get the existing UserErrorSummary if it exists
27
+ var userErrorSummary = yield userErrorSummaryModel.getByUniqueKey(prisma, userProfileId, instanceId, origin, summaryMessage);
28
+ // Create/update UserErrorSummary
29
+ if (userErrorSummary == null) {
30
+ // Create
31
+ userErrorSummary = yield userErrorSummaryModel.create(prisma, userProfileId, instanceId, origin, summaryMessage, 1); // count
32
+ }
33
+ else {
34
+ // Inc count
35
+ userErrorSummary = yield userErrorSummaryModel.update(prisma, userErrorSummary.id, undefined, undefined, undefined, undefined, userErrorSummary.count + 1);
36
+ }
37
+ // Create UserError
38
+ const userError = yield userErrorModel.create(prisma, userErrorSummary.id, userProfileId, endUserProfileId, instanceId, origin, message, techMessage);
39
+ });
40
+ }
41
+ }
42
+ exports.UserErrorService = UserErrorService;
@@ -0,0 +1,16 @@
1
+ import { PrismaClient } from '@prisma/client';
2
+ import { UserGroupMemberModel } from '../../models/users/user-group-member-model';
3
+ import { UserGroupModel } from '../../models/users/user-group-model';
4
+ export declare class UsersGroupService {
5
+ clName: string;
6
+ externalUsersGroupName: string;
7
+ userGroupMemberModel: UserGroupMemberModel;
8
+ userGroupModel: UserGroupModel;
9
+ verifyGroupMemberByOwner(prisma: PrismaClient, memberUserProfileId: string, ownerUserProfileId: string, groupName: string): Promise<{
10
+ status: boolean;
11
+ message: string;
12
+ } | {
13
+ status: boolean;
14
+ message?: undefined;
15
+ }>;
16
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UsersGroupService = void 0;
13
+ const user_group_member_model_1 = require("../../models/users/user-group-member-model");
14
+ const user_group_model_1 = require("../../models/users/user-group-model");
15
+ class UsersGroupService {
16
+ constructor() {
17
+ // Consts
18
+ this.clName = 'UsersGroupService';
19
+ // Common group names
20
+ this.externalUsersGroupName = 'External users group';
21
+ // Models
22
+ this.userGroupMemberModel = new user_group_member_model_1.UserGroupMemberModel();
23
+ this.userGroupModel = new user_group_model_1.UserGroupModel();
24
+ }
25
+ // Code
26
+ verifyGroupMemberByOwner(prisma, memberUserProfileId, ownerUserProfileId, groupName) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ // Get the UserGroup record
29
+ const userGroup = yield this.userGroupModel.getByUniqueKey(prisma, ownerUserProfileId, groupName);
30
+ if (userGroup == null) {
31
+ return {
32
+ status: false,
33
+ message: `User group not found: ` + groupName
34
+ };
35
+ }
36
+ // Verify the member is present for the group
37
+ const memberUserGroupMember = yield this.userGroupMemberModel.getByUniqueKey(prisma, userGroup.id, memberUserProfileId);
38
+ if (memberUserGroupMember == null) {
39
+ return {
40
+ status: false,
41
+ message: `Member: ${memberUserProfileId} not found for group: ` +
42
+ groupName
43
+ };
44
+ }
45
+ // Verify the admin is present for the group (and is an admin of the group)
46
+ const ownerUserGroupMember = yield this.userGroupMemberModel.getByUniqueKey(prisma, userGroup.id, ownerUserProfileId);
47
+ if (ownerUserGroupMember == null) {
48
+ return {
49
+ status: false,
50
+ message: `Admin: ${ownerUserProfileId} not found for group: ` +
51
+ groupName
52
+ };
53
+ }
54
+ if (ownerUserGroupMember.isGroupAdmin === false) {
55
+ return {
56
+ status: false,
57
+ message: `Owner: ${ownerUserProfileId} is not an admin for group: ` +
58
+ groupName
59
+ };
60
+ }
61
+ // Return OK
62
+ return {
63
+ status: true
64
+ };
65
+ });
66
+ }
67
+ }
68
+ exports.UsersGroupService = UsersGroupService;
@@ -0,0 +1,5 @@
1
+ export declare class StringUtilsService {
2
+ toNaturalCase(input: string): string;
3
+ getShortLocaleString(date: Date): string;
4
+ getSnippet(text: string, maxChars: number): string;
5
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringUtilsService = void 0;
4
+ class StringUtilsService {
5
+ toNaturalCase(input) {
6
+ if (!input)
7
+ return '';
8
+ // Step 1: Normalize input (handle snake_case, kebab-case, camelCase)
9
+ let words = input
10
+ // Insert space before capital letters (camelCase to space-separated)
11
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
12
+ // Replace underscores and hyphens with space
13
+ .replace(/[_\-]+/g, ' ')
14
+ // Split into words
15
+ .split(' ');
16
+ // Step 2: Capitalize each word, but keep acronyms (like TV, AI) in uppercase
17
+ return words
18
+ .map((word) => {
19
+ if (word.length <= 2 && word === word.toUpperCase()) {
20
+ // likely an acronym: TV, AI, ML
21
+ return word;
22
+ }
23
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
24
+ })
25
+ .join(' ');
26
+ }
27
+ getShortLocaleString(date) {
28
+ const tz = date.toLocaleDateString('en', {
29
+ day: '2-digit',
30
+ timeZoneName: 'short'
31
+ }).slice(4);
32
+ return `${date.toLocaleString()} ${tz}`;
33
+ }
34
+ getSnippet(text, maxChars) {
35
+ if (text.length < maxChars) {
36
+ return text;
37
+ }
38
+ return text.substring(0, maxChars) + '..';
39
+ }
40
+ }
41
+ exports.StringUtilsService = StringUtilsService;
@@ -0,0 +1,11 @@
1
+ export declare function sereneCoreMailingListsMutationResolvers(): {
2
+ Mutation: {
3
+ upsertUserPreference: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ verified: boolean;
5
+ message: string;
6
+ } | {
7
+ verified: boolean;
8
+ message?: undefined;
9
+ } | undefined>;
10
+ };
11
+ };
@@ -0,0 +1,19 @@
1
+ import { MailingListSubscriberService } from '../../../services/mailing-lists/mailing-list-subscriber-service';
2
+ // Services
3
+ const mailingListSubscriberService = new MailingListSubscriberService();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreMailingListsMutationResolvers() {
7
+ return {
8
+ Mutation: {
9
+ upsertUserPreference: async (parent, args, context, info) => {
10
+ try {
11
+ return await mailingListSubscriberService.subscribe(context.prisma, args.mailingListName, args.email, args.firstName);
12
+ }
13
+ catch (error) {
14
+ console.error(`upsertUserPreference: ${error}`);
15
+ }
16
+ },
17
+ },
18
+ };
19
+ }
@@ -0,0 +1,13 @@
1
+ export declare function sereneCoreUserPreferencesMutationResolvers(): {
2
+ Mutation: {
3
+ upsertUserPreference: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ values: string[];
5
+ key: string;
6
+ id: string;
7
+ value: string | null;
8
+ userProfileId: string;
9
+ created: Date;
10
+ category: string;
11
+ } | undefined>;
12
+ };
13
+ };
@@ -0,0 +1,20 @@
1
+ import { UserPreferenceModel } from '../../../models/users/user-preference-model';
2
+ // Services
3
+ const userPreferenceModel = new UserPreferenceModel();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreUserPreferencesMutationResolvers() {
7
+ return {
8
+ Mutation: {
9
+ upsertUserPreference: async (parent, args, context, info) => {
10
+ try {
11
+ return await userPreferenceModel.upsert(context.prisma, undefined, // id
12
+ args.userProfileId, args.category, args.key, args.value, args.values);
13
+ }
14
+ catch (error) {
15
+ console.error(`upsertUserPreference: ${error}`);
16
+ }
17
+ },
18
+ },
19
+ };
20
+ }
@@ -0,0 +1,28 @@
1
+ export declare function sereneCoreUsersMutationResolvers(): {
2
+ Mutation: {
3
+ createBlankUser: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ id: string;
5
+ userId: string | null;
6
+ created: Date;
7
+ updated: Date;
8
+ isAdmin: boolean;
9
+ ownerType: string | null;
10
+ roles: string[];
11
+ deletePending: Date | null;
12
+ }>;
13
+ createUserByEmail: (parent: any, args: any, context: any, info: any) => Promise<string>;
14
+ getOrCreateSignedOutUser: (parent: any, args: any, context: any, info: any) => Promise<{
15
+ id: string;
16
+ } | undefined>;
17
+ getOrCreateUserByEmail: (parent: any, args: any, context: any, info: any) => Promise<{
18
+ id: string;
19
+ userId: string | null;
20
+ created: Date;
21
+ updated: Date;
22
+ isAdmin: boolean;
23
+ ownerType: string | null;
24
+ roles: string[];
25
+ deletePending: Date | null;
26
+ } | undefined>;
27
+ };
28
+ };
@@ -0,0 +1,33 @@
1
+ import { UsersService } from '../../../services/users/service';
2
+ // Services
3
+ const usersService = new UsersService();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreUsersMutationResolvers() {
7
+ return {
8
+ Mutation: {
9
+ createBlankUser: async (parent, args, context, info) => {
10
+ return usersService.createBlankUser(context.prisma);
11
+ },
12
+ createUserByEmail: async (parent, args, context, info) => {
13
+ return usersService.createUserByEmail(context.prisma, args.email);
14
+ },
15
+ getOrCreateSignedOutUser: async (parent, args, context, info) => {
16
+ try {
17
+ return usersService.getOrCreateSignedOutUser(context.prisma, args.signedOutId, args.defaultUserPreferences);
18
+ }
19
+ catch (error) {
20
+ console.error(`getOrCreateSignedOutUser(): error: ${error}`);
21
+ }
22
+ },
23
+ getOrCreateUserByEmail: async (parent, args, context, info) => {
24
+ try {
25
+ return usersService.getOrCreateUserByEmail(context.prisma, args.email, args.defaultUserPreferences);
26
+ }
27
+ catch (error) {
28
+ console.error(`getOrCreateUserByEmail(): error: ${error}`);
29
+ }
30
+ },
31
+ },
32
+ };
33
+ }
@@ -0,0 +1,11 @@
1
+ export declare function sereneCoreAccessQueryResolvers(): {
2
+ Query: {
3
+ isAdminUser: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ status: boolean;
5
+ message: string;
6
+ } | {
7
+ status: any;
8
+ message: null;
9
+ }>;
10
+ };
11
+ };
@@ -0,0 +1,14 @@
1
+ import { AccessService } from '../../../services/access/access-service';
2
+ // Services
3
+ const accessService = new AccessService();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreAccessQueryResolvers() {
7
+ return {
8
+ Query: {
9
+ isAdminUser: async (parent, args, context, info) => {
10
+ return accessService.isAdminUser(context.prisma, args.userProfileId);
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,11 @@
1
+ export declare function sereneCoreProfileQueryResolvers(): {
2
+ Query: {
3
+ validateProfileCompleted: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ status: boolean;
5
+ message?: undefined;
6
+ } | {
7
+ status: boolean;
8
+ message: string;
9
+ }>;
10
+ };
11
+ };
@@ -0,0 +1,14 @@
1
+ import { ProfileService } from '../../../services/users/profile-service';
2
+ // Services
3
+ const profileService = new ProfileService();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreProfileQueryResolvers() {
7
+ return {
8
+ Query: {
9
+ validateProfileCompleted: async (parent, args, context, info) => {
10
+ return profileService.validateProfileCompleted(context.prisma, args.forAction, args.userProfileId);
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,21 @@
1
+ export declare function sereneCoreQuotasQueryResolvers(): {
2
+ Query: {
3
+ getResourceQuotaUsage: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ status: boolean;
5
+ message: string;
6
+ userProfileId?: undefined;
7
+ resource?: undefined;
8
+ day?: undefined;
9
+ quota?: undefined;
10
+ usage?: undefined;
11
+ } | {
12
+ userProfileId: string;
13
+ resource: string;
14
+ day: string;
15
+ quota: number;
16
+ usage: number;
17
+ status?: undefined;
18
+ message?: undefined;
19
+ }>;
20
+ };
21
+ };
@@ -0,0 +1,14 @@
1
+ import { ResourceQuotasQueryService } from '../../../services/quotas/query-service';
2
+ // Services
3
+ const resourceQuotasService = new ResourceQuotasQueryService();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreQuotasQueryResolvers() {
7
+ return {
8
+ Query: {
9
+ getResourceQuotaUsage: async (parent, args, context, info) => {
10
+ return resourceQuotasService.getQuotaAndUsageForUi(context.prisma, args.userProfileId, args.resource, args.day);
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,5 @@
1
+ export declare function sereneCoreTechQueryResolvers(): {
2
+ Query: {
3
+ getTechs: (parent: any, args: any, context: any, info: any) => Promise<any>;
4
+ };
5
+ };
@@ -0,0 +1,24 @@
1
+ import { TechQueryService } from '../../../services/tech/tech-query-service';
2
+ import { UsersService } from '../../../services/users/service';
3
+ // Services
4
+ const techQueryService = new TechQueryService();
5
+ const usersService = new UsersService();
6
+ // Factory of resolvers
7
+ // Note: prisma must be passed into the GraphQL server's context
8
+ export function sereneCoreTechQueryResolvers() {
9
+ return {
10
+ Query: {
11
+ getTechs: async (parent, args, context, info) => {
12
+ // Debug
13
+ const fnName = 'getTechs()';
14
+ console.log(`${fnName}: args: ` + JSON.stringify(args));
15
+ // Get userProfile
16
+ const userProfile = await usersService.getById(context.prisma, args.userProfileId);
17
+ // Get quota and usage
18
+ const results = await techQueryService.getTechs(context.prisma, userProfile, args.resource);
19
+ // Return
20
+ return results.techs;
21
+ },
22
+ },
23
+ };
24
+ }
@@ -0,0 +1,5 @@
1
+ export declare function sereneCoreUserPreferencesQueryResolvers(): {
2
+ Query: {
3
+ getUserPreferences: (parent: any, args: any, context: any, info: any) => Promise<any[] | undefined>;
4
+ };
5
+ };
@@ -0,0 +1,22 @@
1
+ import { UserPreferenceService } from '../../../services/user-preference/service';
2
+ // Services
3
+ const userPreferenceService = new UserPreferenceService();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreUserPreferencesQueryResolvers() {
7
+ return {
8
+ Query: {
9
+ getUserPreferences: async (parent, args, context, info) => {
10
+ console.log('getUserPreferences(): ' +
11
+ `args.userProfileId: ${args.userProfileId} ` +
12
+ `args.keys: ${args.keys}`);
13
+ try {
14
+ return await userPreferenceService.getUserPreferences(context.prisma, args.userProfileId, args.category, args.keys);
15
+ }
16
+ catch (error) {
17
+ console.error(`getUserPreferences: ${error}`);
18
+ }
19
+ },
20
+ },
21
+ };
22
+ }
@@ -0,0 +1,15 @@
1
+ export declare function sereneCoreUsersQueryResolvers(): {
2
+ Query: {
3
+ userById: (parent: any, args: any, context: any, info: any) => Promise<{
4
+ id: string;
5
+ userId: string | null;
6
+ created: Date;
7
+ updated: Date;
8
+ isAdmin: boolean;
9
+ ownerType: string | null;
10
+ roles: string[];
11
+ deletePending: Date | null;
12
+ } | null | undefined>;
13
+ verifySignedInUserProfileId: (parent: any, args: any, context: any, info: any) => Promise<boolean>;
14
+ };
15
+ };
@@ -0,0 +1,17 @@
1
+ import { UsersService } from '../../../services/users/service';
2
+ // Services
3
+ const usersService = new UsersService();
4
+ // Factory of resolvers
5
+ // Note: prisma must be passed into the GraphQL server's context
6
+ export function sereneCoreUsersQueryResolvers() {
7
+ return {
8
+ Query: {
9
+ userById: async (parent, args, context, info) => {
10
+ return usersService.getById(context.prisma, args.userProfileId);
11
+ },
12
+ verifySignedInUserProfileId: async (parent, args, context, info) => {
13
+ return usersService.verifySignedInUserProfileId(context.prisma, args.userProfileId);
14
+ },
15
+ },
16
+ };
17
+ }
@@ -0,0 +1 @@
1
+ export declare const typeDefs = "#graphql\n\n type ChatMessage {\n id: String!\n name: String!\n message: String!\n created: String!\n updated: String\n }\n\n type ChatMessageResults {\n status: Boolean!\n message: String\n chatMessages: [ChatMessage]\n }\n\n type ChatParticipant {\n id: String!\n userProfileId: String!\n name: String!\n }\n\n type ChatParticipantResults {\n status: Boolean!\n message: String\n chatParticipants: [ChatParticipant]\n }\n\n type ChatSession {\n id: String!\n status: String!\n name: String\n updated: String!\n chatParticipants: [ChatParticipant]\n }\n\n type ChatSessionResults {\n status: Boolean!\n message: String\n chatSession: ChatSession\n }\n\n type ResourceQuotaUsage {\n userProfileId: String!\n resource: String!\n day: String!\n quota: Float!\n usage: Float!\n }\n\n type StatusAndMessage {\n status: Boolean!\n message: String\n }\n\n type Techs {\n id: String!\n resource: String!\n variantName: String!\n }\n\n type UserPreference {\n category: String!\n key: String!\n value: String\n values: [String]\n }\n\n type UserProfile {\n id: String!\n userId: String\n isAdmin: Boolean!\n }\n\n type VerifiedAndMessage {\n verified: Boolean!\n message: String\n }\n\n type Query {\n\n # Profile\n validateProfileCompleted(\n forAction: String!,\n userProfileId: String!): StatusAndMessage!\n\n # Quotas\n getResourceQuotaUsage(\n userProfileId: String!,\n resource: String!,\n day: String,\n viewUserProfileId: String): ResourceQuotaUsage!\n\n # Tech\n getTechs(\n userProfileId: String!,\n resource: String!): [Tech]\n\n # Users\n isAdminUser(userProfileId: String!): StatusAndMessage!\n userById(userProfileId: String!): UserProfile\n verifySignedInUserProfileId(userProfileId: String!): Boolean\n\n # User preferences\n getUserPreferences(\n userProfileId: String!,\n category: String!,\n keys: [String]): [UserPreference]\n }\n\n type Mutation {\n\n # Mailing lists\n mailingListSignup(\n mailingListName: String!,\n email: String!,\n firstName: String): VerifiedAndMessage!\n\n # Users\n createBlankUser: UserProfile!\n createUserByEmail(email: String!): UserProfile!\n deactivateUserProfileCurrentIFile(id: String!): Boolean\n getOrCreateSignedOutUser(\n signedOutId: String,\n defaultUserPreferences: String): UserProfile!\n getOrCreateUserByEmail(\n email: String!,\n defaultUserPreferences: String): UserProfile!\n\n # User preferences\n upsertUserPreference(\n userProfileId: String!,\n category: String!,\n key: String!,\n value: String,\n values: [String]): Boolean\n }\n\n";
@@ -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
+ `;
@@ -0,0 +1,3 @@
1
+ import 'dotenv/config';
2
+ import { PrismaClient } from '@/../prisma/generated/prisma/client';
3
+ export declare const prisma: PrismaClient<import("@/prisma/index").Prisma.PrismaClientOptions, never, import("@/prisma/runtime/client").DefaultArgs>;
package/dist/src/db.js ADDED
@@ -0,0 +1,11 @@
1
+ import 'dotenv/config';
2
+ import { PrismaPg } from '@prisma/adapter-pg';
3
+ import { PrismaClient } from '@/../prisma/generated/prisma/client';
4
+ const connectionString = process.env.DATABASE_URL;
5
+ const adapter = new PrismaPg({ connectionString });
6
+ const globalForPrisma = globalThis;
7
+ export const prisma = globalForPrisma.prisma ??
8
+ new PrismaClient({ adapter });
9
+ if (process.env.NODE_ENV !== 'production') {
10
+ globalForPrisma.prisma = prisma;
11
+ }