@goscribe/server 1.6.0 → 1.7.0

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 (281) hide show
  1. package/dist/generated/prisma/client.d.ts +224 -0
  2. package/dist/generated/prisma/client.js +34 -0
  3. package/dist/generated/prisma/commonInputTypes.d.ts +941 -0
  4. package/dist/generated/prisma/commonInputTypes.js +10 -0
  5. package/dist/generated/prisma/enums.d.ts +67 -0
  6. package/dist/generated/prisma/enums.js +66 -0
  7. package/dist/generated/prisma/internal/class.d.ts +539 -0
  8. package/dist/generated/prisma/internal/class.js +49 -0
  9. package/dist/generated/prisma/internal/prismaNamespace.d.ts +3924 -0
  10. package/dist/generated/prisma/internal/prismaNamespace.js +557 -0
  11. package/dist/generated/prisma/models/ActivityLog.d.ts +1847 -0
  12. package/dist/generated/prisma/models/ActivityLog.js +1 -0
  13. package/dist/generated/prisma/models/Artifact.d.ts +2345 -0
  14. package/dist/generated/prisma/models/Artifact.js +1 -0
  15. package/dist/generated/prisma/models/ArtifactVersion.d.ts +1550 -0
  16. package/dist/generated/prisma/models/ArtifactVersion.js +1 -0
  17. package/dist/generated/prisma/models/Channel.d.ts +1257 -0
  18. package/dist/generated/prisma/models/Channel.js +1 -0
  19. package/dist/generated/prisma/models/Chat.d.ts +1339 -0
  20. package/dist/generated/prisma/models/Chat.js +1 -0
  21. package/dist/generated/prisma/models/CopilotConversation.d.ts +1450 -0
  22. package/dist/generated/prisma/models/CopilotConversation.js +1 -0
  23. package/dist/generated/prisma/models/CopilotMessage.d.ts +1179 -0
  24. package/dist/generated/prisma/models/CopilotMessage.js +1 -0
  25. package/dist/generated/prisma/models/FileAsset.d.ts +1832 -0
  26. package/dist/generated/prisma/models/FileAsset.js +1 -0
  27. package/dist/generated/prisma/models/Flashcard.d.ts +1460 -0
  28. package/dist/generated/prisma/models/Flashcard.js +1 -0
  29. package/dist/generated/prisma/models/FlashcardProgress.d.ts +1782 -0
  30. package/dist/generated/prisma/models/FlashcardProgress.js +1 -0
  31. package/dist/generated/prisma/models/Folder.d.ts +1685 -0
  32. package/dist/generated/prisma/models/Folder.js +1 -0
  33. package/dist/generated/prisma/models/IdempotencyRecord.d.ts +1319 -0
  34. package/dist/generated/prisma/models/IdempotencyRecord.js +1 -0
  35. package/dist/generated/prisma/models/Invoice.d.ts +1586 -0
  36. package/dist/generated/prisma/models/Invoice.js +1 -0
  37. package/dist/generated/prisma/models/KnowledgeBase.d.ts +1721 -0
  38. package/dist/generated/prisma/models/KnowledgeBase.js +1 -0
  39. package/dist/generated/prisma/models/KnowledgeBaseChunk.d.ts +1333 -0
  40. package/dist/generated/prisma/models/KnowledgeBaseChunk.js +1 -0
  41. package/dist/generated/prisma/models/KnowledgeBaseDocument.d.ts +1695 -0
  42. package/dist/generated/prisma/models/KnowledgeBaseDocument.js +1 -0
  43. package/dist/generated/prisma/models/Notification.d.ts +1992 -0
  44. package/dist/generated/prisma/models/Notification.js +1 -0
  45. package/dist/generated/prisma/models/PasswordResetToken.d.ts +1210 -0
  46. package/dist/generated/prisma/models/PasswordResetToken.js +1 -0
  47. package/dist/generated/prisma/models/Plan.d.ts +1431 -0
  48. package/dist/generated/prisma/models/Plan.js +1 -0
  49. package/dist/generated/prisma/models/PlanLimit.d.ts +1328 -0
  50. package/dist/generated/prisma/models/PlanLimit.js +1 -0
  51. package/dist/generated/prisma/models/PodcastSegment.d.ts +1564 -0
  52. package/dist/generated/prisma/models/PodcastSegment.js +1 -0
  53. package/dist/generated/prisma/models/ResourcePrice.d.ts +1008 -0
  54. package/dist/generated/prisma/models/ResourcePrice.js +1 -0
  55. package/dist/generated/prisma/models/Role.d.ts +1065 -0
  56. package/dist/generated/prisma/models/Role.js +1 -0
  57. package/dist/generated/prisma/models/Session.d.ts +1105 -0
  58. package/dist/generated/prisma/models/Session.js +1 -0
  59. package/dist/generated/prisma/models/StripeEvent.d.ts +1081 -0
  60. package/dist/generated/prisma/models/StripeEvent.js +1 -0
  61. package/dist/generated/prisma/models/StudyGuideComment.d.ts +1321 -0
  62. package/dist/generated/prisma/models/StudyGuideComment.js +1 -0
  63. package/dist/generated/prisma/models/StudyGuideHighlight.d.ts +1629 -0
  64. package/dist/generated/prisma/models/StudyGuideHighlight.js +1 -0
  65. package/dist/generated/prisma/models/Subscription.d.ts +1677 -0
  66. package/dist/generated/prisma/models/Subscription.js +1 -0
  67. package/dist/generated/prisma/models/User.d.ts +7559 -0
  68. package/dist/generated/prisma/models/User.js +1 -0
  69. package/dist/generated/prisma/models/UserCredit.d.ts +1249 -0
  70. package/dist/generated/prisma/models/UserCredit.js +1 -0
  71. package/dist/generated/prisma/models/VerificationToken.d.ts +946 -0
  72. package/dist/generated/prisma/models/VerificationToken.js +1 -0
  73. package/dist/generated/prisma/models/WorksheetPreset.d.ts +1433 -0
  74. package/dist/generated/prisma/models/WorksheetPreset.js +1 -0
  75. package/dist/generated/prisma/models/WorksheetQuestion.d.ts +1491 -0
  76. package/dist/generated/prisma/models/WorksheetQuestion.js +1 -0
  77. package/dist/generated/prisma/models/WorksheetQuestionProgress.d.ts +1620 -0
  78. package/dist/generated/prisma/models/WorksheetQuestionProgress.js +1 -0
  79. package/dist/generated/prisma/models/Workspace.d.ts +3620 -0
  80. package/dist/generated/prisma/models/Workspace.js +1 -0
  81. package/dist/generated/prisma/models/WorkspaceInvitation.d.ts +1490 -0
  82. package/dist/generated/prisma/models/WorkspaceInvitation.js +1 -0
  83. package/dist/generated/prisma/models/WorkspaceKnowledgeBase.d.ts +1410 -0
  84. package/dist/generated/prisma/models/WorkspaceKnowledgeBase.js +1 -0
  85. package/dist/generated/prisma/models/WorkspaceMember.d.ts +1326 -0
  86. package/dist/generated/prisma/models/WorkspaceMember.js +1 -0
  87. package/dist/generated/prisma/models.d.ts +39 -0
  88. package/dist/generated/prisma/models.js +1 -0
  89. package/dist/src/context.d.ts +27 -0
  90. package/dist/src/context.js +33 -0
  91. package/dist/src/index.d.ts +3 -0
  92. package/dist/src/index.js +1 -0
  93. package/dist/src/lib/ai/config.d.ts +20 -0
  94. package/dist/src/lib/ai/config.js +31 -0
  95. package/dist/src/lib/ai/embedding-client.d.ts +8 -0
  96. package/dist/src/lib/ai/embedding-client.js +30 -0
  97. package/dist/src/lib/ai/index.d.ts +48 -0
  98. package/dist/src/lib/ai/index.js +29 -0
  99. package/dist/src/lib/ai/inference-backend/client.d.ts +28 -0
  100. package/dist/src/lib/ai/inference-backend/client.js +301 -0
  101. package/dist/src/lib/ai/inference-backend/mocks.d.ts +12 -0
  102. package/dist/src/lib/ai/inference-backend/mocks.js +133 -0
  103. package/dist/src/lib/ai/inference-backend/types.d.ts +44 -0
  104. package/dist/src/lib/ai/inference-backend/types.js +1 -0
  105. package/dist/src/lib/ai/json-parse.d.ts +2 -0
  106. package/dist/src/lib/ai/json-parse.js +34 -0
  107. package/dist/src/lib/ai/llm-client.d.ts +7 -0
  108. package/dist/src/lib/ai/llm-client.js +36 -0
  109. package/dist/src/lib/ai/mock.d.ts +2 -0
  110. package/dist/src/lib/ai/mock.js +10 -0
  111. package/dist/src/lib/ai/types.d.ts +9 -0
  112. package/dist/src/lib/ai/types.js +1 -0
  113. package/dist/src/lib/auth.d.ts +36 -0
  114. package/dist/src/lib/auth.js +117 -0
  115. package/dist/src/lib/chunking.d.ts +19 -0
  116. package/dist/src/lib/chunking.js +47 -0
  117. package/dist/src/lib/constants.d.ts +13 -0
  118. package/dist/src/lib/constants.js +12 -0
  119. package/dist/src/lib/curated-kb-seed.d.ts +12 -0
  120. package/dist/src/lib/curated-kb-seed.js +155 -0
  121. package/dist/src/lib/email.d.ts +11 -0
  122. package/dist/src/lib/email.js +152 -0
  123. package/dist/src/lib/embeddings.d.ts +2 -0
  124. package/dist/src/lib/embeddings.js +1 -0
  125. package/dist/src/lib/ensure-curated-kb-catalog.d.ts +6 -0
  126. package/dist/src/lib/ensure-curated-kb-catalog.js +53 -0
  127. package/dist/src/lib/env.d.ts +41 -0
  128. package/dist/src/lib/env.js +57 -0
  129. package/dist/src/lib/errors.d.ts +33 -0
  130. package/dist/src/lib/errors.js +78 -0
  131. package/dist/src/lib/file.d.ts +0 -0
  132. package/dist/src/lib/file.js +1 -0
  133. package/dist/src/lib/inference.d.ts +1 -0
  134. package/dist/src/lib/inference.js +1 -0
  135. package/dist/src/lib/kb-meta.d.ts +8 -0
  136. package/dist/src/lib/kb-meta.js +77 -0
  137. package/dist/src/lib/logger.d.ts +62 -0
  138. package/dist/src/lib/logger.js +364 -0
  139. package/dist/src/lib/pdf.d.ts +11 -0
  140. package/dist/src/lib/pdf.js +11 -0
  141. package/dist/src/lib/prisma.d.ts +3 -0
  142. package/dist/src/lib/prisma.js +15 -0
  143. package/dist/src/lib/pusher.d.ts +38 -0
  144. package/dist/src/lib/pusher.js +170 -0
  145. package/dist/src/lib/retry.d.ts +15 -0
  146. package/dist/src/lib/retry.js +37 -0
  147. package/dist/src/lib/storage.d.ts +11 -0
  148. package/dist/src/lib/storage.js +71 -0
  149. package/dist/src/lib/stripe.d.ts +10 -0
  150. package/dist/src/lib/stripe.js +36 -0
  151. package/dist/src/lib/validation.d.ts +51 -0
  152. package/dist/src/lib/validation.js +64 -0
  153. package/dist/src/lib/workspace-kb.d.ts +5 -0
  154. package/dist/src/lib/workspace-kb.js +7 -0
  155. package/dist/src/repositories/artifact.repository.d.ts +64 -0
  156. package/dist/src/repositories/artifact.repository.js +40 -0
  157. package/dist/src/repositories/base.repository.d.ts +14 -0
  158. package/dist/src/repositories/base.repository.js +14 -0
  159. package/dist/src/repositories/invitation.repository.d.ts +104 -0
  160. package/dist/src/repositories/invitation.repository.js +44 -0
  161. package/dist/src/repositories/notification.repository.d.ts +76 -0
  162. package/dist/src/repositories/notification.repository.js +44 -0
  163. package/dist/src/repositories/user.repository.d.ts +84 -0
  164. package/dist/src/repositories/user.repository.js +37 -0
  165. package/dist/src/repositories/workspace-member.repository.d.ts +35 -0
  166. package/dist/src/repositories/workspace-member.repository.js +31 -0
  167. package/dist/src/repositories/workspace.repository.d.ts +101 -0
  168. package/dist/src/repositories/workspace.repository.js +79 -0
  169. package/dist/src/routers/_app.d.ts +3464 -0
  170. package/dist/src/routers/_app.js +36 -0
  171. package/dist/src/routers/admin.d.ts +358 -0
  172. package/dist/src/routers/admin.js +105 -0
  173. package/dist/src/routers/annotations.d.ts +219 -0
  174. package/dist/src/routers/annotations.js +29 -0
  175. package/dist/src/routers/artifactVersions.d.ts +65 -0
  176. package/dist/src/routers/artifactVersions.js +14 -0
  177. package/dist/src/routers/auth.d.ts +161 -0
  178. package/dist/src/routers/auth.js +97 -0
  179. package/dist/src/routers/chat.d.ts +170 -0
  180. package/dist/src/routers/chat.js +32 -0
  181. package/dist/src/routers/copilot.d.ts +200 -0
  182. package/dist/src/routers/copilot.js +52 -0
  183. package/dist/src/routers/flashcards.d.ts +336 -0
  184. package/dist/src/routers/flashcards.js +93 -0
  185. package/dist/src/routers/knowledgeBase.d.ts +421 -0
  186. package/dist/src/routers/knowledgeBase.js +118 -0
  187. package/dist/src/routers/members.d.ts +169 -0
  188. package/dist/src/routers/members.js +47 -0
  189. package/dist/src/routers/notifications.d.ts +99 -0
  190. package/dist/src/routers/notifications.js +25 -0
  191. package/dist/src/routers/payment.d.ts +80 -0
  192. package/dist/src/routers/payment.js +21 -0
  193. package/dist/src/routers/podcast.d.ts +287 -0
  194. package/dist/src/routers/podcast.js +34 -0
  195. package/dist/src/routers/studyguide.d.ts +36 -0
  196. package/dist/src/routers/studyguide.js +8 -0
  197. package/dist/src/routers/worksheets.d.ts +429 -0
  198. package/dist/src/routers/worksheets.js +139 -0
  199. package/dist/src/routers/workspace.d.ts +563 -0
  200. package/dist/src/routers/workspace.js +104 -0
  201. package/dist/src/scripts/purge-deleted-users.d.ts +1 -0
  202. package/dist/src/scripts/purge-deleted-users.js +148 -0
  203. package/dist/src/server.d.ts +1 -0
  204. package/dist/src/server.js +190 -0
  205. package/dist/src/services/activity/activity-human-description.service.d.ts +13 -0
  206. package/dist/src/services/activity/activity-human-description.service.js +221 -0
  207. package/dist/src/services/activity/activity-human-description.service.test.d.ts +1 -0
  208. package/dist/src/services/activity/activity-human-description.service.test.js +16 -0
  209. package/dist/src/services/activity/activity-log.service.d.ts +87 -0
  210. package/dist/src/services/activity/activity-log.service.js +276 -0
  211. package/dist/src/services/activity/activity-log.service.test.d.ts +1 -0
  212. package/dist/src/services/activity/activity-log.service.test.js +27 -0
  213. package/dist/src/services/admin/admin.service.d.ts +270 -0
  214. package/dist/src/services/admin/admin.service.js +476 -0
  215. package/dist/src/services/ai/ai-session.service.d.ts +5 -0
  216. package/dist/src/services/ai/ai-session.service.js +4 -0
  217. package/dist/src/services/artifacts/annotation.service.d.ts +177 -0
  218. package/dist/src/services/artifacts/annotation.service.js +154 -0
  219. package/dist/src/services/artifacts/artifact-version.service.d.ts +38 -0
  220. package/dist/src/services/artifacts/artifact-version.service.js +129 -0
  221. package/dist/src/services/artifacts/chat.service.d.ts +127 -0
  222. package/dist/src/services/artifacts/chat.service.js +182 -0
  223. package/dist/src/services/artifacts/study-guide.service.d.ts +18 -0
  224. package/dist/src/services/artifacts/study-guide.service.js +65 -0
  225. package/dist/src/services/auth/auth.service.d.ts +94 -0
  226. package/dist/src/services/auth/auth.service.js +368 -0
  227. package/dist/src/services/base.service.d.ts +14 -0
  228. package/dist/src/services/base.service.js +14 -0
  229. package/dist/src/services/billing/payment.service.d.ts +44 -0
  230. package/dist/src/services/billing/payment.service.js +365 -0
  231. package/dist/src/services/billing/subscription.service.d.ts +37 -0
  232. package/dist/src/services/billing/subscription.service.js +654 -0
  233. package/dist/src/services/billing/usage.service.d.ts +47 -0
  234. package/dist/src/services/billing/usage.service.js +149 -0
  235. package/dist/src/services/content/copilot.service.d.ts +113 -0
  236. package/dist/src/services/content/copilot.service.js +439 -0
  237. package/dist/src/services/content/flashcard-progress.service.d.ts +159 -0
  238. package/dist/src/services/content/flashcard-progress.service.js +432 -0
  239. package/dist/src/services/content/flashcard.service.d.ts +184 -0
  240. package/dist/src/services/content/flashcard.service.js +339 -0
  241. package/dist/src/services/content/media-analysis.service.d.ts +23 -0
  242. package/dist/src/services/content/media-analysis.service.js +404 -0
  243. package/dist/src/services/content/podcast.service.d.ts +267 -0
  244. package/dist/src/services/content/podcast.service.js +653 -0
  245. package/dist/src/services/content/worksheet-content.service.d.ts +37 -0
  246. package/dist/src/services/content/worksheet-content.service.js +84 -0
  247. package/dist/src/services/content/worksheet-content.service.test.d.ts +1 -0
  248. package/dist/src/services/content/worksheet-content.service.test.js +69 -0
  249. package/dist/src/services/content/worksheet-generation.service.d.ts +91 -0
  250. package/dist/src/services/content/worksheet-generation.service.js +95 -0
  251. package/dist/src/services/content/worksheet-generation.service.test.d.ts +1 -0
  252. package/dist/src/services/content/worksheet-generation.service.test.js +20 -0
  253. package/dist/src/services/content/worksheet.service.d.ts +347 -0
  254. package/dist/src/services/content/worksheet.service.js +599 -0
  255. package/dist/src/services/knowledge/knowledge-base.service.d.ts +316 -0
  256. package/dist/src/services/knowledge/knowledge-base.service.js +544 -0
  257. package/dist/src/services/members/invitation.service.d.ts +66 -0
  258. package/dist/src/services/members/invitation.service.js +348 -0
  259. package/dist/src/services/members/member.service.d.ts +36 -0
  260. package/dist/src/services/members/member.service.js +193 -0
  261. package/dist/src/services/notifications/notification.service.d.ts +214 -0
  262. package/dist/src/services/notifications/notification.service.js +550 -0
  263. package/dist/src/services/notifications/notification.service.test.d.ts +1 -0
  264. package/dist/src/services/notifications/notification.service.test.js +87 -0
  265. package/dist/src/services/workspace/workspace-analytics.service.d.ts +24 -0
  266. package/dist/src/services/workspace/workspace-analytics.service.js +95 -0
  267. package/dist/src/services/workspace/workspace-kb.service.d.ts +40 -0
  268. package/dist/src/services/workspace/workspace-kb.service.js +184 -0
  269. package/dist/src/services/workspace/workspace.service.d.ts +263 -0
  270. package/dist/src/services/workspace/workspace.service.js +401 -0
  271. package/dist/src/trpc.d.ts +60 -0
  272. package/dist/src/trpc.js +217 -0
  273. package/dist/src/types/index.d.ts +126 -0
  274. package/dist/src/types/index.js +1 -0
  275. package/package.json +8 -9
  276. package/prisma/schema.prisma +3 -4
  277. package/prisma/seed.mjs +5 -2
  278. package/prisma.config.ts +16 -0
  279. package/src/lib/prisma.ts +18 -9
  280. package/src/scripts/purge-deleted-users.ts +1 -3
  281. package/tsconfig.json +3 -0
@@ -0,0 +1,126 @@
1
+ import type { Prisma } from '@prisma/client';
2
+ /**
3
+ * Common types for the application
4
+ */
5
+ export type PrismaTransaction = Omit<Prisma.TransactionClient, '$connect' | '$disconnect' | '$on' | '$transaction' | '$use'>;
6
+ /**
7
+ * User types
8
+ */
9
+ export interface UserSession {
10
+ id: string;
11
+ name?: string | null;
12
+ email?: string | null;
13
+ image?: string | null;
14
+ }
15
+ export interface AuthContext {
16
+ session: {
17
+ user: UserSession;
18
+ } | null;
19
+ userId?: string;
20
+ }
21
+ /**
22
+ * Artifact types
23
+ */
24
+ export type ArtifactTypeEnum = 'STUDY_GUIDE' | 'FLASHCARD_SET' | 'WORKSHEET' | 'MEETING_SUMMARY' | 'PODCAST_EPISODE';
25
+ export type DifficultyEnum = 'EASY' | 'MEDIUM' | 'HARD';
26
+ export type QuestionTypeEnum = 'MULTIPLE_CHOICE' | 'TEXT' | 'NUMERIC' | 'TRUE_FALSE' | 'MATCHING' | 'FILL_IN_THE_BLANK';
27
+ /**
28
+ * Worksheet types
29
+ */
30
+ export interface MarkSchemePoint {
31
+ point: number;
32
+ requirements: number;
33
+ }
34
+ export interface MarkScheme {
35
+ points: MarkSchemePoint[];
36
+ totalPoints: number;
37
+ }
38
+ export interface UserMarkSchemePoint extends MarkSchemePoint {
39
+ achievedPoints: number;
40
+ feedback: string;
41
+ }
42
+ export interface UserMarkScheme {
43
+ points: UserMarkSchemePoint[];
44
+ totalPoints: number;
45
+ }
46
+ export interface WorksheetQuestionMeta {
47
+ options?: string[];
48
+ completed?: boolean;
49
+ userAnswer?: string;
50
+ completedAt?: Date | null;
51
+ mark_scheme?: MarkScheme;
52
+ userMarkScheme?: UserMarkScheme;
53
+ }
54
+ export interface WorksheetQuestionProgressMeta {
55
+ userMarkScheme?: UserMarkScheme;
56
+ }
57
+ export interface CreateWorksheetQuestionInput {
58
+ prompt: string;
59
+ answer?: string;
60
+ type: QuestionTypeEnum;
61
+ difficulty?: DifficultyEnum;
62
+ order?: number;
63
+ meta?: WorksheetQuestionMeta;
64
+ }
65
+ export interface UpdateWorksheetQuestionInput extends Partial<CreateWorksheetQuestionInput> {
66
+ id: string;
67
+ }
68
+ /**
69
+ * Flashcard types
70
+ */
71
+ export interface CreateFlashcardInput {
72
+ front: string;
73
+ back: string;
74
+ tags?: string[];
75
+ order?: number;
76
+ }
77
+ export interface UpdateFlashcardInput extends Partial<CreateFlashcardInput> {
78
+ id: string;
79
+ }
80
+ /**
81
+ * File upload types
82
+ */
83
+ export interface FileUploadResult {
84
+ id: string;
85
+ name: string;
86
+ url: string;
87
+ mimeType: string;
88
+ size: number;
89
+ }
90
+ /**
91
+ * Pagination types
92
+ */
93
+ export interface PaginationInput {
94
+ page?: number;
95
+ limit?: number;
96
+ }
97
+ export interface PaginatedResult<T> {
98
+ data: T[];
99
+ pagination: {
100
+ page: number;
101
+ limit: number;
102
+ total: number;
103
+ totalPages: number;
104
+ };
105
+ }
106
+ /**
107
+ * Search types
108
+ */
109
+ export interface SearchInput extends PaginationInput {
110
+ query: string;
111
+ }
112
+ /**
113
+ * Response types
114
+ */
115
+ export type SuccessResponse<T = void> = {
116
+ success: true;
117
+ data: T;
118
+ message?: string;
119
+ };
120
+ export type ErrorResponse = {
121
+ success: false;
122
+ error: {
123
+ code: string;
124
+ message: string;
125
+ };
126
+ };
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goscribe/server",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,23 +13,20 @@
13
13
  },
14
14
  "scripts": {
15
15
  "dev": "tsx watch src/server.ts",
16
- "build": "npx prisma generate && tsc -p .",
16
+ "build": "prisma generate && tsc -p .",
17
17
  "start": "node --experimental-specifier-resolution=node dist/server.js",
18
18
  "test": "tsx --test \"src/**/*.test.ts\"",
19
19
  "test:activity": "tsx --test src/services/activity/activity-log.service.test.ts src/services/activity/activity-human-description.service.test.ts",
20
- "generate": "npx prisma generate",
20
+ "generate": "prisma generate",
21
21
  "prepublishOnly": "npm run generate && npm run build"
22
22
  },
23
- "prisma": {
24
- "seed": "node --experimental-specifier-resolution=node prisma/seed.mjs"
25
- },
26
23
  "author": "",
27
24
  "license": "MIT",
28
25
  "dependencies": {
29
26
  "@auth/express": "^0.11.0",
30
27
  "@auth/prisma-adapter": "^2.10.0",
31
- "@goscribe/server": "^1.1.2",
32
- "@prisma/client": "^6.14.0",
28
+ "@prisma/adapter-pg": "^7.0.0",
29
+ "@prisma/client": "^7.0.0",
33
30
  "@supabase/supabase-js": "^2.76.1",
34
31
  "@trpc/server": "^11.5.0",
35
32
  "@types/uuid": "^10.0.0",
@@ -44,7 +41,7 @@
44
41
  "morgan": "^1.10.1",
45
42
  "openai": "^6.3.0",
46
43
  "pdf-parse": "^1.1.4",
47
- "prisma": "^6.14.0",
44
+ "pg": "^8.16.0",
48
45
  "pusher": "^5.2.0",
49
46
  "pusher-js": "^8.4.0",
50
47
  "resend": "^6.9.2",
@@ -55,12 +52,14 @@
55
52
  "zod": "^4.1.1"
56
53
  },
57
54
  "devDependencies": {
55
+ "prisma": "^7.0.0",
58
56
  "@types/compression": "^1.8.1",
59
57
  "@types/cookie": "^1.0.0",
60
58
  "@types/cors": "^2.8.19",
61
59
  "@types/express": "^5.0.3",
62
60
  "@types/morgan": "^1.9.10",
63
61
  "@types/node": "^24.3.0",
62
+ "@types/pg": "^8.15.0",
64
63
  "ts-node": "^10.9.2",
65
64
  "ts-node-dev": "^2.0.0",
66
65
  "tsc-alias": "^1.8.16",
@@ -1,11 +1,10 @@
1
1
  generator client {
2
- provider = "prisma-client-js"
2
+ provider = "prisma-client"
3
+ output = "../generated/prisma"
3
4
  }
4
5
 
5
6
  datasource db {
6
- provider = "postgresql"
7
- url = env("DATABASE_URL")
8
- directUrl = env("DIRECT_URL")
7
+ provider = "postgresql"
9
8
  }
10
9
 
11
10
  //
package/prisma/seed.mjs CHANGED
@@ -1,4 +1,6 @@
1
- import { PrismaClient } from '@prisma/client';
1
+ import 'dotenv/config';
2
+ import { PrismaClient } from '../generated/prisma/client.js';
3
+ import { PrismaPg } from '@prisma/adapter-pg';
2
4
 
3
5
  /** Keep in sync with server/src/lib/curated-kb-seed.ts */
4
6
  const CURATED_KB_SEEDS = [
@@ -25,7 +27,8 @@ const CURATED_KB_SEEDS = [
25
27
  { slug: 'ib-psychology-hl', name: 'IB Psychology HL', description: 'Biological, cognitive, sociocultural, and abnormal psychology at HL depth.', category: 'IB', subject: 'psychology' },
26
28
  ];
27
29
 
28
- const prisma = new PrismaClient();
30
+ const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
31
+ const prisma = new PrismaClient({ adapter });
29
32
 
30
33
  async function main() {
31
34
  for (const seed of CURATED_KB_SEEDS) {
@@ -0,0 +1,16 @@
1
+ import "dotenv/config";
2
+ import { defineConfig, env } from "prisma/config";
3
+
4
+ // Migrations use direct connection when available (Supabase pooler vs direct).
5
+ const migrationUrl = process.env.DIRECT_URL ?? env("DATABASE_URL");
6
+
7
+ export default defineConfig({
8
+ schema: "prisma/schema.prisma",
9
+ migrations: {
10
+ path: "prisma/migrations",
11
+ seed: "node --experimental-specifier-resolution=node prisma/seed.mjs",
12
+ },
13
+ datasource: {
14
+ url: migrationUrl,
15
+ },
16
+ });
package/src/lib/prisma.ts CHANGED
@@ -1,16 +1,25 @@
1
- // Resolve the client from this package's generated output so types always match
2
- // `prisma/schema.prisma` (the `@prisma/client` entry can resolve to a different
3
- // generated client in multi-folder workspaces and lose model delegates in the IDE).
4
- import { PrismaClient } from "../../node_modules/.prisma/client/index.js";
1
+ import { PrismaPg } from "@prisma/adapter-pg";
2
+ import { PrismaClient } from "../../generated/prisma/client.js";
5
3
 
6
- export { ArtifactType } from "../../node_modules/.prisma/client/index.js";
4
+ export {
5
+ ArtifactType,
6
+ ActivityLogCategory,
7
+ ActivityLogStatus,
8
+ InvoiceType,
9
+ } from "../../generated/prisma/client.js";
7
10
 
8
11
  const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient };
9
12
 
13
+ function createPrismaClient(): PrismaClient {
14
+ const connectionString = process.env.DATABASE_URL;
15
+ if (!connectionString) {
16
+ throw new Error("DATABASE_URL is not set");
17
+ }
18
+ const adapter = new PrismaPg({ connectionString });
19
+ return new PrismaClient({ adapter });
20
+ }
21
+
10
22
  export const prisma =
11
- globalForPrisma.prisma ??
12
- new PrismaClient({
13
- // log: ["query"], // enable if you want
14
- });
23
+ globalForPrisma.prisma ?? createPrismaClient();
15
24
 
16
25
  if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;
@@ -1,4 +1,4 @@
1
- import { PrismaClient } from '@prisma/client';
1
+ import { prisma as db } from '../lib/prisma.js';
2
2
  import { supabaseClient } from '../lib/storage.js';
3
3
  import { logger } from '../lib/logger.js';
4
4
  import { env } from '../lib/env.js';
@@ -9,8 +9,6 @@ import {
9
9
  } from '@prisma/client';
10
10
  import { recordExplicitActivity } from '../services/activity/activity-log.service.js';
11
11
 
12
- const db = new PrismaClient();
13
-
14
12
  async function purgeDeletedUsers() {
15
13
  try {
16
14
  const startedAt = Date.now();
package/tsconfig.json CHANGED
@@ -9,6 +9,9 @@
9
9
 
10
10
  ],
11
11
  "baseUrl": "./",
12
+ "paths": {
13
+ "@prisma/client": ["./generated/prisma/client"]
14
+ },
12
15
  "declaration": true,
13
16
  "declarationDir": "dist", // optional, but keeps .d.ts in dist
14
17
  "emitDeclarationOnly": false, // unless you only want .d.ts