@m5kdev/backend 0.1.0 → 0.1.2

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 (294) hide show
  1. package/.cursor/rules/backend.mdc +70 -0
  2. package/.turbo/turbo-build.log +5 -0
  3. package/.turbo/turbo-check-types.log +5 -0
  4. package/.turbo/turbo-lint$colon$fix.log +255 -0
  5. package/CHANGELOG.md +19 -0
  6. package/dist/src/lib/posthog.d.ts +3 -0
  7. package/dist/src/lib/posthog.d.ts.map +1 -0
  8. package/dist/src/lib/posthog.js +7 -0
  9. package/dist/src/lib/sentry.d.ts +2 -0
  10. package/dist/src/lib/sentry.d.ts.map +1 -0
  11. package/dist/src/lib/sentry.js +9 -0
  12. package/dist/src/modules/access/access.repository.d.ts +2348 -0
  13. package/dist/src/modules/access/access.repository.d.ts.map +1 -0
  14. package/dist/src/modules/access/access.repository.js +32 -0
  15. package/dist/src/modules/access/access.service.d.ts +22 -0
  16. package/dist/src/modules/access/access.service.d.ts.map +1 -0
  17. package/dist/src/modules/access/access.service.js +51 -0
  18. package/dist/src/modules/access/access.test.d.ts +2 -0
  19. package/dist/src/modules/access/access.test.d.ts.map +1 -0
  20. package/dist/src/modules/access/access.test.js +182 -0
  21. package/dist/src/modules/access/access.utils.d.ts +17 -0
  22. package/dist/src/modules/access/access.utils.d.ts.map +1 -0
  23. package/dist/src/modules/access/access.utils.js +20 -0
  24. package/dist/src/modules/ai/ai.db.d.ts +396 -0
  25. package/dist/src/modules/ai/ai.db.d.ts.map +1 -0
  26. package/dist/src/modules/ai/ai.db.js +39 -0
  27. package/dist/src/modules/ai/ai.prompt.d.ts +28 -0
  28. package/dist/src/modules/ai/ai.prompt.d.ts.map +1 -0
  29. package/dist/src/modules/ai/ai.prompt.js +30 -0
  30. package/dist/src/modules/ai/ai.repository.d.ts +424 -0
  31. package/dist/src/modules/ai/ai.repository.d.ts.map +1 -0
  32. package/dist/src/modules/ai/ai.repository.js +26 -0
  33. package/dist/src/modules/ai/ai.router.d.ts +2 -0
  34. package/dist/src/modules/ai/ai.router.d.ts.map +1 -0
  35. package/dist/src/modules/ai/ai.router.js +132 -0
  36. package/dist/src/modules/ai/ai.service.d.ts +115 -0
  37. package/dist/src/modules/ai/ai.service.d.ts.map +1 -0
  38. package/dist/src/modules/ai/ai.service.js +207 -0
  39. package/dist/src/modules/ai/ai.trpc.d.ts +59 -0
  40. package/dist/src/modules/ai/ai.trpc.d.ts.map +1 -0
  41. package/dist/src/modules/ai/ai.trpc.js +20 -0
  42. package/dist/src/modules/ai/ideogram/ideogram.constants.d.ts +8 -0
  43. package/dist/src/modules/ai/ideogram/ideogram.constants.d.ts.map +1 -0
  44. package/dist/src/modules/ai/ideogram/ideogram.constants.js +167 -0
  45. package/dist/src/modules/ai/ideogram/ideogram.dto.d.ts +230 -0
  46. package/dist/src/modules/ai/ideogram/ideogram.dto.d.ts.map +1 -0
  47. package/dist/src/modules/ai/ideogram/ideogram.dto.js +49 -0
  48. package/dist/src/modules/ai/ideogram/ideogram.prompt.d.ts +3 -0
  49. package/dist/src/modules/ai/ideogram/ideogram.prompt.d.ts.map +1 -0
  50. package/dist/src/modules/ai/ideogram/ideogram.prompt.js +860 -0
  51. package/dist/src/modules/ai/ideogram/ideogram.repository.d.ts +7 -0
  52. package/dist/src/modules/ai/ideogram/ideogram.repository.d.ts.map +1 -0
  53. package/dist/src/modules/ai/ideogram/ideogram.repository.js +46 -0
  54. package/dist/src/modules/ai/ideogram/ideogram.service.d.ts +10 -0
  55. package/dist/src/modules/ai/ideogram/ideogram.service.d.ts.map +1 -0
  56. package/dist/src/modules/ai/ideogram/ideogram.service.js +11 -0
  57. package/dist/src/modules/auth/auth.db.d.ts +2336 -0
  58. package/dist/src/modules/auth/auth.db.d.ts.map +1 -0
  59. package/dist/src/modules/auth/auth.db.js +215 -0
  60. package/dist/src/modules/auth/auth.dto.d.ts +66 -0
  61. package/dist/src/modules/auth/auth.dto.d.ts.map +1 -0
  62. package/dist/src/modules/auth/auth.dto.js +38 -0
  63. package/dist/src/modules/auth/auth.lib.d.ts +4874 -0
  64. package/dist/src/modules/auth/auth.lib.d.ts.map +1 -0
  65. package/dist/src/modules/auth/auth.lib.js +284 -0
  66. package/dist/src/modules/auth/auth.middleware.d.ts +615 -0
  67. package/dist/src/modules/auth/auth.middleware.d.ts.map +1 -0
  68. package/dist/src/modules/auth/auth.middleware.js +52 -0
  69. package/dist/src/modules/auth/auth.repository.d.ts +2417 -0
  70. package/dist/src/modules/auth/auth.repository.d.ts.map +1 -0
  71. package/dist/src/modules/auth/auth.repository.js +541 -0
  72. package/dist/src/modules/auth/auth.service.d.ts +104 -0
  73. package/dist/src/modules/auth/auth.service.d.ts.map +1 -0
  74. package/dist/src/modules/auth/auth.service.js +201 -0
  75. package/dist/src/modules/auth/auth.trpc.d.ts +309 -0
  76. package/dist/src/modules/auth/auth.trpc.d.ts.map +1 -0
  77. package/dist/src/modules/auth/auth.trpc.js +157 -0
  78. package/dist/src/modules/auth/auth.utils.d.ts +2352 -0
  79. package/dist/src/modules/auth/auth.utils.d.ts.map +1 -0
  80. package/dist/src/modules/auth/auth.utils.js +97 -0
  81. package/dist/src/modules/base/base.abstract.d.ts +19 -0
  82. package/dist/src/modules/base/base.abstract.d.ts.map +1 -0
  83. package/dist/src/modules/base/base.abstract.js +53 -0
  84. package/dist/src/modules/base/base.dto.d.ts +70 -0
  85. package/dist/src/modules/base/base.dto.d.ts.map +1 -0
  86. package/dist/src/modules/base/base.dto.js +112 -0
  87. package/dist/src/modules/base/base.grants.d.ts +29 -0
  88. package/dist/src/modules/base/base.grants.d.ts.map +1 -0
  89. package/dist/src/modules/base/base.grants.js +123 -0
  90. package/dist/src/modules/base/base.grants.test.d.ts +2 -0
  91. package/dist/src/modules/base/base.grants.test.d.ts.map +1 -0
  92. package/dist/src/modules/base/base.grants.test.js +668 -0
  93. package/dist/src/modules/base/base.repository.d.ts +97 -0
  94. package/dist/src/modules/base/base.repository.d.ts.map +1 -0
  95. package/dist/src/modules/base/base.repository.js +307 -0
  96. package/dist/src/modules/base/base.service.d.ts +42 -0
  97. package/dist/src/modules/base/base.service.d.ts.map +1 -0
  98. package/dist/src/modules/base/base.service.js +109 -0
  99. package/dist/src/modules/base/base.types.d.ts +2 -0
  100. package/dist/src/modules/base/base.types.d.ts.map +1 -0
  101. package/dist/src/modules/base/base.types.js +2 -0
  102. package/dist/src/modules/billing/billing.db.d.ts +366 -0
  103. package/dist/src/modules/billing/billing.db.d.ts.map +1 -0
  104. package/dist/src/modules/billing/billing.db.js +29 -0
  105. package/dist/src/modules/billing/billing.repository.d.ts +2764 -0
  106. package/dist/src/modules/billing/billing.repository.d.ts.map +1 -0
  107. package/dist/src/modules/billing/billing.repository.js +235 -0
  108. package/dist/src/modules/billing/billing.router.d.ts +5 -0
  109. package/dist/src/modules/billing/billing.router.d.ts.map +1 -0
  110. package/dist/src/modules/billing/billing.router.js +56 -0
  111. package/dist/src/modules/billing/billing.service.d.ts +60 -0
  112. package/dist/src/modules/billing/billing.service.d.ts.map +1 -0
  113. package/dist/src/modules/billing/billing.service.js +147 -0
  114. package/dist/src/modules/billing/billing.trpc.d.ts +75 -0
  115. package/dist/src/modules/billing/billing.trpc.d.ts.map +1 -0
  116. package/dist/src/modules/billing/billing.trpc.js +17 -0
  117. package/dist/src/modules/clay/clay.repository.d.ts +6 -0
  118. package/dist/src/modules/clay/clay.repository.d.ts.map +1 -0
  119. package/dist/src/modules/clay/clay.repository.js +26 -0
  120. package/dist/src/modules/clay/clay.service.d.ts +29 -0
  121. package/dist/src/modules/clay/clay.service.d.ts.map +1 -0
  122. package/dist/src/modules/clay/clay.service.js +24 -0
  123. package/dist/src/modules/connect/connect.db.d.ts +357 -0
  124. package/dist/src/modules/connect/connect.db.d.ts.map +1 -0
  125. package/dist/src/modules/connect/connect.db.js +30 -0
  126. package/dist/src/modules/connect/connect.dto.d.ts +75 -0
  127. package/dist/src/modules/connect/connect.dto.d.ts.map +1 -0
  128. package/dist/src/modules/connect/connect.dto.js +36 -0
  129. package/dist/src/modules/connect/connect.linkedin.d.ts +3 -0
  130. package/dist/src/modules/connect/connect.linkedin.d.ts.map +1 -0
  131. package/dist/src/modules/connect/connect.linkedin.js +53 -0
  132. package/dist/src/modules/connect/connect.oauth.d.ts +28 -0
  133. package/dist/src/modules/connect/connect.oauth.d.ts.map +1 -0
  134. package/dist/src/modules/connect/connect.oauth.js +198 -0
  135. package/dist/src/modules/connect/connect.repository.d.ts +414 -0
  136. package/dist/src/modules/connect/connect.repository.d.ts.map +1 -0
  137. package/dist/src/modules/connect/connect.repository.js +54 -0
  138. package/dist/src/modules/connect/connect.router.d.ts +5 -0
  139. package/dist/src/modules/connect/connect.router.d.ts.map +1 -0
  140. package/dist/src/modules/connect/connect.router.js +54 -0
  141. package/dist/src/modules/connect/connect.service.d.ts +89 -0
  142. package/dist/src/modules/connect/connect.service.d.ts.map +1 -0
  143. package/dist/src/modules/connect/connect.service.js +114 -0
  144. package/dist/src/modules/connect/connect.trpc.d.ts +81 -0
  145. package/dist/src/modules/connect/connect.trpc.d.ts.map +1 -0
  146. package/dist/src/modules/connect/connect.trpc.js +21 -0
  147. package/dist/src/modules/connect/connect.types.d.ts +26 -0
  148. package/dist/src/modules/connect/connect.types.d.ts.map +1 -0
  149. package/dist/src/modules/connect/connect.types.js +2 -0
  150. package/dist/src/modules/crypto/crypto.db.d.ts +152 -0
  151. package/dist/src/modules/crypto/crypto.db.d.ts.map +1 -0
  152. package/dist/src/modules/crypto/crypto.db.js +17 -0
  153. package/dist/src/modules/crypto/crypto.repository.d.ts +160 -0
  154. package/dist/src/modules/crypto/crypto.repository.d.ts.map +1 -0
  155. package/dist/src/modules/crypto/crypto.repository.js +10 -0
  156. package/dist/src/modules/crypto/crypto.service.d.ts +11 -0
  157. package/dist/src/modules/crypto/crypto.service.d.ts.map +1 -0
  158. package/dist/src/modules/crypto/crypto.service.js +52 -0
  159. package/dist/src/modules/email/email.service.d.ts +57 -0
  160. package/dist/src/modules/email/email.service.d.ts.map +1 -0
  161. package/dist/src/modules/email/email.service.js +107 -0
  162. package/dist/src/modules/file/file.repository.d.ts +13 -0
  163. package/dist/src/modules/file/file.repository.d.ts.map +1 -0
  164. package/dist/src/modules/file/file.repository.js +79 -0
  165. package/dist/src/modules/file/file.router.d.ts +4 -0
  166. package/dist/src/modules/file/file.router.d.ts.map +1 -0
  167. package/dist/src/modules/file/file.router.js +99 -0
  168. package/dist/src/modules/file/file.service.d.ts +25 -0
  169. package/dist/src/modules/file/file.service.d.ts.map +1 -0
  170. package/dist/src/modules/file/file.service.js +150 -0
  171. package/dist/src/modules/recurrence/recurrence.db.d.ts +563 -0
  172. package/dist/src/modules/recurrence/recurrence.db.d.ts.map +1 -0
  173. package/dist/src/modules/recurrence/recurrence.db.js +66 -0
  174. package/dist/src/modules/recurrence/recurrence.repository.d.ts +585 -0
  175. package/dist/src/modules/recurrence/recurrence.repository.d.ts.map +1 -0
  176. package/dist/src/modules/recurrence/recurrence.repository.js +39 -0
  177. package/dist/src/modules/recurrence/recurrence.service.d.ts +30 -0
  178. package/dist/src/modules/recurrence/recurrence.service.d.ts.map +1 -0
  179. package/dist/src/modules/recurrence/recurrence.service.js +70 -0
  180. package/dist/src/modules/recurrence/recurrence.trpc.d.ts +243 -0
  181. package/dist/src/modules/recurrence/recurrence.trpc.d.ts.map +1 -0
  182. package/dist/src/modules/recurrence/recurrence.trpc.js +65 -0
  183. package/dist/src/modules/social/social.dto.d.ts +35 -0
  184. package/dist/src/modules/social/social.dto.d.ts.map +1 -0
  185. package/dist/src/modules/social/social.dto.js +18 -0
  186. package/dist/src/modules/social/social.linkedin.d.ts +11 -0
  187. package/dist/src/modules/social/social.linkedin.d.ts.map +1 -0
  188. package/dist/src/modules/social/social.linkedin.js +427 -0
  189. package/dist/src/modules/social/social.linkedin.test.d.ts +2 -0
  190. package/dist/src/modules/social/social.linkedin.test.d.ts.map +1 -0
  191. package/dist/src/modules/social/social.linkedin.test.js +235 -0
  192. package/dist/src/modules/social/social.service.d.ts +29 -0
  193. package/dist/src/modules/social/social.service.d.ts.map +1 -0
  194. package/dist/src/modules/social/social.service.js +76 -0
  195. package/dist/src/modules/social/social.types.d.ts +36 -0
  196. package/dist/src/modules/social/social.types.d.ts.map +1 -0
  197. package/dist/src/modules/social/social.types.js +2 -0
  198. package/dist/src/modules/tag/tag.db.d.ts +347 -0
  199. package/dist/src/modules/tag/tag.db.d.ts.map +1 -0
  200. package/dist/src/modules/tag/tag.db.js +42 -0
  201. package/dist/src/modules/tag/tag.dto.d.ts +1019 -0
  202. package/dist/src/modules/tag/tag.dto.d.ts.map +1 -0
  203. package/dist/src/modules/tag/tag.dto.js +9 -0
  204. package/dist/src/modules/tag/tag.repository.d.ts +384 -0
  205. package/dist/src/modules/tag/tag.repository.d.ts.map +1 -0
  206. package/dist/src/modules/tag/tag.repository.js +154 -0
  207. package/dist/src/modules/tag/tag.service.d.ts +36 -0
  208. package/dist/src/modules/tag/tag.service.d.ts.map +1 -0
  209. package/dist/src/modules/tag/tag.service.js +31 -0
  210. package/dist/src/modules/tag/tag.trpc.d.ts +191 -0
  211. package/dist/src/modules/tag/tag.trpc.d.ts.map +1 -0
  212. package/dist/src/modules/tag/tag.trpc.js +47 -0
  213. package/dist/src/modules/utils/applyPagination.d.ts +7 -0
  214. package/dist/src/modules/utils/applyPagination.d.ts.map +1 -0
  215. package/dist/src/modules/utils/applyPagination.js +16 -0
  216. package/dist/src/modules/utils/applySorting.d.ts +9 -0
  217. package/dist/src/modules/utils/applySorting.d.ts.map +1 -0
  218. package/dist/src/modules/utils/applySorting.js +18 -0
  219. package/dist/src/modules/utils/getConditionsFromFilters.d.ts +5 -0
  220. package/dist/src/modules/utils/getConditionsFromFilters.d.ts.map +1 -0
  221. package/dist/src/modules/utils/getConditionsFromFilters.js +200 -0
  222. package/dist/src/modules/video/video.service.d.ts +8 -0
  223. package/dist/src/modules/video/video.service.d.ts.map +1 -0
  224. package/dist/src/modules/video/video.service.js +84 -0
  225. package/dist/src/modules/webhook/webhook.constants.d.ts +9 -0
  226. package/dist/src/modules/webhook/webhook.constants.d.ts.map +1 -0
  227. package/dist/src/modules/webhook/webhook.constants.js +10 -0
  228. package/dist/src/modules/webhook/webhook.db.d.ts +137 -0
  229. package/dist/src/modules/webhook/webhook.db.d.ts.map +1 -0
  230. package/dist/src/modules/webhook/webhook.db.js +17 -0
  231. package/dist/src/modules/webhook/webhook.dto.d.ts +395 -0
  232. package/dist/src/modules/webhook/webhook.dto.d.ts.map +1 -0
  233. package/dist/src/modules/webhook/webhook.dto.js +7 -0
  234. package/dist/src/modules/webhook/webhook.repository.d.ts +149 -0
  235. package/dist/src/modules/webhook/webhook.repository.d.ts.map +1 -0
  236. package/dist/src/modules/webhook/webhook.repository.js +56 -0
  237. package/dist/src/modules/webhook/webhook.router.d.ts +4 -0
  238. package/dist/src/modules/webhook/webhook.router.d.ts.map +1 -0
  239. package/dist/src/modules/webhook/webhook.router.js +30 -0
  240. package/dist/src/modules/webhook/webhook.service.d.ts +10 -0
  241. package/dist/src/modules/webhook/webhook.service.d.ts.map +1 -0
  242. package/dist/src/modules/webhook/webhook.service.js +68 -0
  243. package/dist/src/modules/workflow/workflow.db.d.ts +297 -0
  244. package/dist/src/modules/workflow/workflow.db.d.ts.map +1 -0
  245. package/dist/src/modules/workflow/workflow.db.js +30 -0
  246. package/dist/src/modules/workflow/workflow.repository.d.ts +344 -0
  247. package/dist/src/modules/workflow/workflow.repository.d.ts.map +1 -0
  248. package/dist/src/modules/workflow/workflow.repository.js +105 -0
  249. package/dist/src/modules/workflow/workflow.service.d.ts +22 -0
  250. package/dist/src/modules/workflow/workflow.service.d.ts.map +1 -0
  251. package/dist/src/modules/workflow/workflow.service.js +37 -0
  252. package/dist/src/modules/workflow/workflow.trpc.d.ts +93 -0
  253. package/dist/src/modules/workflow/workflow.trpc.d.ts.map +1 -0
  254. package/dist/src/modules/workflow/workflow.trpc.js +21 -0
  255. package/dist/src/modules/workflow/workflow.types.d.ts +21 -0
  256. package/dist/src/modules/workflow/workflow.types.d.ts.map +1 -0
  257. package/dist/src/modules/workflow/workflow.types.js +2 -0
  258. package/dist/src/modules/workflow/workflow.utils.d.ts +22 -0
  259. package/dist/src/modules/workflow/workflow.utils.d.ts.map +1 -0
  260. package/dist/src/modules/workflow/workflow.utils.js +173 -0
  261. package/dist/src/test/stubs/utils.d.ts +3 -0
  262. package/dist/src/test/stubs/utils.d.ts.map +1 -0
  263. package/dist/src/test/stubs/utils.js +5 -0
  264. package/dist/src/trpc/context.d.ts +42 -0
  265. package/dist/src/trpc/context.d.ts.map +1 -0
  266. package/dist/src/trpc/context.js +17 -0
  267. package/dist/src/trpc/index.d.ts +4 -0
  268. package/dist/src/trpc/index.d.ts.map +1 -0
  269. package/dist/src/trpc/index.js +6 -0
  270. package/dist/src/trpc/procedures.d.ts +234 -0
  271. package/dist/src/trpc/procedures.d.ts.map +1 -0
  272. package/dist/src/trpc/procedures.js +32 -0
  273. package/dist/src/trpc/utils.d.ts +5 -0
  274. package/dist/src/trpc/utils.d.ts.map +1 -0
  275. package/dist/src/trpc/utils.js +20 -0
  276. package/dist/src/types.d.ts +486 -0
  277. package/dist/src/types.d.ts.map +1 -0
  278. package/dist/src/types.js +13 -0
  279. package/dist/src/utils/errors.d.ts +50 -0
  280. package/dist/src/utils/errors.d.ts.map +1 -0
  281. package/dist/src/utils/errors.js +104 -0
  282. package/dist/src/utils/logger.d.ts +2 -0
  283. package/dist/src/utils/logger.d.ts.map +1 -0
  284. package/dist/src/utils/logger.js +11 -0
  285. package/dist/src/utils/posthog.d.ts +14 -0
  286. package/dist/src/utils/posthog.d.ts.map +1 -0
  287. package/dist/src/utils/posthog.js +31 -0
  288. package/dist/src/utils/types.d.ts +5 -0
  289. package/dist/src/utils/types.d.ts.map +1 -0
  290. package/dist/src/utils/types.js +2 -0
  291. package/dist/tsconfig.tsbuildinfo +1 -0
  292. package/jest.config.ts +19 -0
  293. package/package.json +3 -6
  294. package/tsconfig.json +21 -0
@@ -0,0 +1,486 @@
1
+ import type { Mastra } from "@mastra/core";
2
+ import type { AIService } from "#modules/ai/ai.service";
3
+ import type { AuthService } from "#modules/auth/auth.service";
4
+ import type { BillingService } from "#modules/billing/billing.service";
5
+ export declare const createAuthTRPCRouter: <MastraInstance extends Mastra>(authService: AuthService, aiService: AIService<MastraInstance>, billingService: BillingService) => import("@trpc/server").TRPCBuiltRouter<{
6
+ ctx: {
7
+ session: {
8
+ id: string;
9
+ userId: string;
10
+ updatedAt: Date;
11
+ createdAt: Date;
12
+ expiresAt: Date;
13
+ token: string;
14
+ ipAddress: string | null;
15
+ userAgent: string | null;
16
+ impersonatedBy: string | null;
17
+ activeOrganizationId: string | null;
18
+ activeOrganizationRole: string | null;
19
+ activeTeamId: string | null;
20
+ activeTeamRole: string | null;
21
+ };
22
+ user: {
23
+ name: string;
24
+ id: string;
25
+ updatedAt: Date;
26
+ email: string;
27
+ emailVerified: boolean;
28
+ image: string | null;
29
+ createdAt: Date;
30
+ role: string | null;
31
+ banned: boolean | null;
32
+ banReason: string | null;
33
+ banExpires: Date | null;
34
+ stripeCustomerId: string | null;
35
+ paymentCustomerId: string | null;
36
+ paymentPlanTier: string | null;
37
+ paymentPlanExpiresAt: Date | null;
38
+ preferences: string | null;
39
+ metadata: Record<string, unknown>;
40
+ onboarding: number | null;
41
+ flags: string | null;
42
+ };
43
+ };
44
+ meta: import("trpc-to-openapi").OpenApiMeta;
45
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
46
+ transformer: true;
47
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
48
+ auth: import("@trpc/server").TRPCBuiltRouter<{
49
+ ctx: {
50
+ session: {
51
+ id: string;
52
+ userId: string;
53
+ updatedAt: Date;
54
+ createdAt: Date;
55
+ expiresAt: Date;
56
+ token: string;
57
+ ipAddress: string | null;
58
+ userAgent: string | null;
59
+ impersonatedBy: string | null;
60
+ activeOrganizationId: string | null;
61
+ activeOrganizationRole: string | null;
62
+ activeTeamId: string | null;
63
+ activeTeamRole: string | null;
64
+ };
65
+ user: {
66
+ name: string;
67
+ id: string;
68
+ updatedAt: Date;
69
+ email: string;
70
+ emailVerified: boolean;
71
+ image: string | null;
72
+ createdAt: Date;
73
+ role: string | null;
74
+ banned: boolean | null;
75
+ banReason: string | null;
76
+ banExpires: Date | null;
77
+ stripeCustomerId: string | null;
78
+ paymentCustomerId: string | null;
79
+ paymentPlanTier: string | null;
80
+ paymentPlanExpiresAt: Date | null;
81
+ preferences: string | null;
82
+ metadata: Record<string, unknown>;
83
+ onboarding: number | null;
84
+ flags: string | null;
85
+ };
86
+ };
87
+ meta: import("trpc-to-openapi").OpenApiMeta;
88
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
89
+ transformer: true;
90
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
91
+ getUserWaitlistCount: import("@trpc/server").TRPCQueryProcedure<{
92
+ input: void;
93
+ output: number;
94
+ meta: import("trpc-to-openapi").OpenApiMeta;
95
+ }>;
96
+ createInvitationCode: import("@trpc/server").TRPCMutationProcedure<{
97
+ input: {
98
+ name?: string | undefined;
99
+ };
100
+ output: {
101
+ id: string;
102
+ name: string | null;
103
+ email: string | null;
104
+ createdAt: Date;
105
+ updatedAt: Date | null;
106
+ status: string;
107
+ code: string | null;
108
+ expiresAt: Date | null;
109
+ };
110
+ meta: import("trpc-to-openapi").OpenApiMeta;
111
+ }>;
112
+ createAccountClaimCode: import("@trpc/server").TRPCMutationProcedure<{
113
+ input: {
114
+ userId: string;
115
+ expiresInHours?: number | undefined;
116
+ };
117
+ output: {
118
+ id: string;
119
+ claimUserId: string | null;
120
+ code: string | null;
121
+ status: string;
122
+ expiresAt: Date | null;
123
+ claimedAt: Date | null;
124
+ claimedEmail: string | null;
125
+ createdAt: Date;
126
+ updatedAt: Date | null;
127
+ };
128
+ meta: import("trpc-to-openapi").OpenApiMeta;
129
+ }>;
130
+ listAccountClaims: import("@trpc/server").TRPCQueryProcedure<{
131
+ input: void;
132
+ output: {
133
+ id: string;
134
+ updatedAt: Date | null;
135
+ createdAt: Date;
136
+ expiresAt: Date | null;
137
+ status: string;
138
+ claimUserId: string | null;
139
+ claimedAt: Date | null;
140
+ claimedEmail: string | null;
141
+ }[];
142
+ meta: import("trpc-to-openapi").OpenApiMeta;
143
+ }>;
144
+ generateAccountClaimMagicLink: import("@trpc/server").TRPCMutationProcedure<{
145
+ input: {
146
+ claimId: string;
147
+ email?: string | undefined;
148
+ };
149
+ output: {
150
+ id: string;
151
+ userId: string;
152
+ email: string;
153
+ createdAt: Date;
154
+ expiresAt: Date | null;
155
+ claimId: string;
156
+ url: string;
157
+ };
158
+ meta: import("trpc-to-openapi").OpenApiMeta;
159
+ }>;
160
+ listAccountClaimMagicLinks: import("@trpc/server").TRPCQueryProcedure<{
161
+ input: {
162
+ claimId: string;
163
+ };
164
+ output: {
165
+ id: string;
166
+ userId: string;
167
+ email: string;
168
+ createdAt: Date;
169
+ expiresAt: Date | null;
170
+ claimId: string;
171
+ url: string;
172
+ }[];
173
+ meta: import("trpc-to-openapi").OpenApiMeta;
174
+ }>;
175
+ getMyAccountClaimStatus: import("@trpc/server").TRPCQueryProcedure<{
176
+ input: void;
177
+ output: {
178
+ id: string;
179
+ claimUserId: string | null;
180
+ code: string | null;
181
+ status: string;
182
+ expiresAt: Date | null;
183
+ claimedAt: Date | null;
184
+ claimedEmail: string | null;
185
+ createdAt: Date;
186
+ updatedAt: Date | null;
187
+ } | null;
188
+ meta: import("trpc-to-openapi").OpenApiMeta;
189
+ }>;
190
+ setMyAccountClaimEmail: import("@trpc/server").TRPCMutationProcedure<{
191
+ input: {
192
+ email: string;
193
+ };
194
+ output: {
195
+ status: boolean;
196
+ };
197
+ meta: import("trpc-to-openapi").OpenApiMeta;
198
+ }>;
199
+ acceptMyAccountClaim: import("@trpc/server").TRPCMutationProcedure<{
200
+ input: void;
201
+ output: {
202
+ status: boolean;
203
+ };
204
+ meta: import("trpc-to-openapi").OpenApiMeta;
205
+ }>;
206
+ listWaitlist: import("@trpc/server").TRPCQueryProcedure<{
207
+ input: void;
208
+ output: {
209
+ id: string;
210
+ name: string | null;
211
+ email: string | null;
212
+ createdAt: Date;
213
+ updatedAt: Date | null;
214
+ status: string;
215
+ code: string | null;
216
+ expiresAt: Date | null;
217
+ }[];
218
+ meta: import("trpc-to-openapi").OpenApiMeta;
219
+ }>;
220
+ listAdminWaitlist: import("@trpc/server").TRPCQueryProcedure<{
221
+ input: void;
222
+ output: {
223
+ name: string | null;
224
+ id: string;
225
+ updatedAt: Date | null;
226
+ email: string | null;
227
+ createdAt: Date;
228
+ status: string;
229
+ }[];
230
+ meta: import("trpc-to-openapi").OpenApiMeta;
231
+ }>;
232
+ addToWaitlist: import("@trpc/server").TRPCMutationProcedure<{
233
+ input: {
234
+ email: string;
235
+ };
236
+ output: {
237
+ name: string | null;
238
+ id: string;
239
+ updatedAt: Date | null;
240
+ email: string | null;
241
+ createdAt: Date;
242
+ status: string;
243
+ };
244
+ meta: import("trpc-to-openapi").OpenApiMeta;
245
+ }>;
246
+ inviteToWaitlist: import("@trpc/server").TRPCMutationProcedure<{
247
+ input: {
248
+ email: string;
249
+ name?: string | undefined;
250
+ };
251
+ output: {
252
+ id: string;
253
+ name: string | null;
254
+ email: string | null;
255
+ createdAt: Date;
256
+ updatedAt: Date | null;
257
+ status: string;
258
+ code: string | null;
259
+ expiresAt: Date | null;
260
+ };
261
+ meta: import("trpc-to-openapi").OpenApiMeta;
262
+ }>;
263
+ inviteFromWaitlist: import("@trpc/server").TRPCMutationProcedure<{
264
+ input: {
265
+ id: string;
266
+ };
267
+ output: {
268
+ name: string | null;
269
+ id: string;
270
+ updatedAt: Date | null;
271
+ email: string | null;
272
+ createdAt: Date;
273
+ status: string;
274
+ };
275
+ meta: import("trpc-to-openapi").OpenApiMeta;
276
+ }>;
277
+ removeFromWaitlist: import("@trpc/server").TRPCMutationProcedure<{
278
+ input: {
279
+ id: string;
280
+ };
281
+ output: {
282
+ name: string | null;
283
+ id: string;
284
+ updatedAt: Date | null;
285
+ email: string | null;
286
+ createdAt: Date;
287
+ status: string;
288
+ };
289
+ meta: import("trpc-to-openapi").OpenApiMeta;
290
+ }>;
291
+ joinWaitlist: import("@trpc/server").TRPCMutationProcedure<{
292
+ input: {
293
+ email: string;
294
+ };
295
+ output: {
296
+ name: string | null;
297
+ id: string;
298
+ updatedAt: Date | null;
299
+ email: string | null;
300
+ createdAt: Date;
301
+ status: string;
302
+ };
303
+ meta: import("trpc-to-openapi").OpenApiMeta;
304
+ }>;
305
+ getOnboarding: import("@trpc/server").TRPCQueryProcedure<{
306
+ input: void;
307
+ output: number;
308
+ meta: import("trpc-to-openapi").OpenApiMeta;
309
+ }>;
310
+ setOnboarding: import("@trpc/server").TRPCMutationProcedure<{
311
+ input: number;
312
+ output: number;
313
+ meta: import("trpc-to-openapi").OpenApiMeta;
314
+ }>;
315
+ getPreferences: import("@trpc/server").TRPCQueryProcedure<{
316
+ input: void;
317
+ output: Record<string, unknown>;
318
+ meta: import("trpc-to-openapi").OpenApiMeta;
319
+ }>;
320
+ setPreferences: import("@trpc/server").TRPCMutationProcedure<{
321
+ input: Record<string, unknown>;
322
+ output: Record<string, unknown>;
323
+ meta: import("trpc-to-openapi").OpenApiMeta;
324
+ }>;
325
+ getMetadata: import("@trpc/server").TRPCQueryProcedure<{
326
+ input: void;
327
+ output: Record<string, unknown>;
328
+ meta: import("trpc-to-openapi").OpenApiMeta;
329
+ }>;
330
+ setMetadata: import("@trpc/server").TRPCMutationProcedure<{
331
+ input: Record<string, unknown>;
332
+ output: Record<string, unknown>;
333
+ meta: import("trpc-to-openapi").OpenApiMeta;
334
+ }>;
335
+ getFlags: import("@trpc/server").TRPCQueryProcedure<{
336
+ input: void;
337
+ output: string[];
338
+ meta: import("trpc-to-openapi").OpenApiMeta;
339
+ }>;
340
+ setFlags: import("@trpc/server").TRPCMutationProcedure<{
341
+ input: string[];
342
+ output: string[];
343
+ meta: import("trpc-to-openapi").OpenApiMeta;
344
+ }>;
345
+ validateWaitlistCode: import("@trpc/server").TRPCQueryProcedure<{
346
+ input: {
347
+ code: string;
348
+ };
349
+ output: {
350
+ status: string;
351
+ };
352
+ meta: import("trpc-to-openapi").OpenApiMeta;
353
+ }>;
354
+ }>>;
355
+ ai: import("@trpc/server").TRPCBuiltRouter<{
356
+ ctx: {
357
+ session: {
358
+ id: string;
359
+ userId: string;
360
+ updatedAt: Date;
361
+ createdAt: Date;
362
+ expiresAt: Date;
363
+ token: string;
364
+ ipAddress: string | null;
365
+ userAgent: string | null;
366
+ impersonatedBy: string | null;
367
+ activeOrganizationId: string | null;
368
+ activeOrganizationRole: string | null;
369
+ activeTeamId: string | null;
370
+ activeTeamRole: string | null;
371
+ };
372
+ user: {
373
+ name: string;
374
+ id: string;
375
+ updatedAt: Date;
376
+ email: string;
377
+ emailVerified: boolean;
378
+ image: string | null;
379
+ createdAt: Date;
380
+ role: string | null;
381
+ banned: boolean | null;
382
+ banReason: string | null;
383
+ banExpires: Date | null;
384
+ stripeCustomerId: string | null;
385
+ paymentCustomerId: string | null;
386
+ paymentPlanTier: string | null;
387
+ paymentPlanExpiresAt: Date | null;
388
+ preferences: string | null;
389
+ metadata: Record<string, unknown>;
390
+ onboarding: number | null;
391
+ flags: string | null;
392
+ };
393
+ };
394
+ meta: import("trpc-to-openapi").OpenApiMeta;
395
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
396
+ transformer: true;
397
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
398
+ getUserUsage: import("@trpc/server").TRPCQueryProcedure<{
399
+ input: {
400
+ userId: string;
401
+ };
402
+ output: {
403
+ inputTokens: number | null;
404
+ outputTokens: number | null;
405
+ totalTokens: number | null;
406
+ cost: number | null;
407
+ };
408
+ meta: import("trpc-to-openapi").OpenApiMeta;
409
+ }>;
410
+ }>>;
411
+ billing: import("@trpc/server").TRPCBuiltRouter<{
412
+ ctx: {
413
+ session: {
414
+ id: string;
415
+ userId: string;
416
+ updatedAt: Date;
417
+ createdAt: Date;
418
+ expiresAt: Date;
419
+ token: string;
420
+ ipAddress: string | null;
421
+ userAgent: string | null;
422
+ impersonatedBy: string | null;
423
+ activeOrganizationId: string | null;
424
+ activeOrganizationRole: string | null;
425
+ activeTeamId: string | null;
426
+ activeTeamRole: string | null;
427
+ };
428
+ user: {
429
+ name: string;
430
+ id: string;
431
+ updatedAt: Date;
432
+ email: string;
433
+ emailVerified: boolean;
434
+ image: string | null;
435
+ createdAt: Date;
436
+ role: string | null;
437
+ banned: boolean | null;
438
+ banReason: string | null;
439
+ banExpires: Date | null;
440
+ stripeCustomerId: string | null;
441
+ paymentCustomerId: string | null;
442
+ paymentPlanTier: string | null;
443
+ paymentPlanExpiresAt: Date | null;
444
+ preferences: string | null;
445
+ metadata: Record<string, unknown>;
446
+ onboarding: number | null;
447
+ flags: string | null;
448
+ };
449
+ };
450
+ meta: import("trpc-to-openapi").OpenApiMeta;
451
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
452
+ transformer: true;
453
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
454
+ getActiveSubscription: import("@trpc/server").TRPCQueryProcedure<{
455
+ input: void;
456
+ output: {
457
+ id: string;
458
+ plan: string;
459
+ referenceId: string;
460
+ status: string;
461
+ stripeCustomerId?: string | null | undefined;
462
+ stripeSubscriptionId?: string | null | undefined;
463
+ periodStart?: Date | null | undefined;
464
+ periodEnd?: Date | null | undefined;
465
+ cancelAtPeriodEnd?: boolean | null | undefined;
466
+ cancelAt?: Date | null | undefined;
467
+ canceledAt?: Date | null | undefined;
468
+ seats?: number | null | undefined;
469
+ trialStart?: Date | null | undefined;
470
+ trialEnd?: Date | null | undefined;
471
+ priceId?: string | null | undefined;
472
+ interval?: string | null | undefined;
473
+ unitAmount?: number | null | undefined;
474
+ discounts?: string[] | null | undefined;
475
+ } | null;
476
+ meta: import("trpc-to-openapi").OpenApiMeta;
477
+ }>;
478
+ listInvoices: import("@trpc/server").TRPCQueryProcedure<{
479
+ input: void;
480
+ output: import("stripe").Stripe.Invoice[];
481
+ meta: import("trpc-to-openapi").OpenApiMeta;
482
+ }>;
483
+ }>>;
484
+ }>>;
485
+ export type BackendTRPCRouter = ReturnType<typeof createAuthTRPCRouter>;
486
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIvE,eAAO,MAAM,oBAAoB,GAAI,cAAc,SAAS,MAAM,EAChE,aAAa,WAAW,EACxB,WAAW,SAAS,CAAC,cAAc,CAAC,EACpC,gBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAM5B,CAAC;AAEL,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAuthTRPCRouter = void 0;
4
+ const ai_trpc_1 = require("#modules/ai/ai.trpc");
5
+ const auth_trpc_1 = require("#modules/auth/auth.trpc");
6
+ const billing_trpc_1 = require("#modules/billing/billing.trpc");
7
+ const _trpc_1 = require("#trpc");
8
+ const createAuthTRPCRouter = (authService, aiService, billingService) => (0, _trpc_1.router)({
9
+ auth: (0, auth_trpc_1.createAuthTRPC)(authService),
10
+ ai: (0, ai_trpc_1.createAITRPC)(aiService),
11
+ billing: (0, billing_trpc_1.createBillingTRPC)(billingService),
12
+ });
13
+ exports.createAuthTRPCRouter = createAuthTRPCRouter;
@@ -0,0 +1,50 @@
1
+ import type { captureException } from "@sentry/node";
2
+ import { type TRPC_ERROR_CODE_KEY, TRPCError } from "@trpc/server";
3
+ import type { ServerErrorLayer } from "#modules/base/base.types";
4
+ export type { ServerErrorLayer };
5
+ export declare class ServerError extends Error {
6
+ readonly code: TRPC_ERROR_CODE_KEY;
7
+ readonly layer: ServerErrorLayer;
8
+ readonly layerName: string;
9
+ readonly clientMessage?: string;
10
+ readonly context?: Record<string, unknown>;
11
+ readonly boundaryStack?: string;
12
+ constructor({ code, layer, layerName, message, clientMessage, cause, context, captureBoundary, }: {
13
+ code: TRPC_ERROR_CODE_KEY;
14
+ layer?: ServerErrorLayer;
15
+ layerName?: string;
16
+ message?: string;
17
+ clientMessage?: string;
18
+ cause?: unknown;
19
+ context?: Record<string, unknown>;
20
+ captureBoundary?: boolean;
21
+ });
22
+ is5xxError(): boolean;
23
+ getHTTPStatusCode(): number;
24
+ toTRPC(): TRPCError;
25
+ toJSON(): {
26
+ code: "PARSE_ERROR" | "BAD_REQUEST" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "CLIENT_CLOSED_REQUEST";
27
+ layer: ServerErrorLayer;
28
+ layerName: string;
29
+ message: string;
30
+ context: Record<string, unknown> | undefined;
31
+ stack: string | undefined;
32
+ boundaryStack: string | undefined;
33
+ cause: unknown;
34
+ };
35
+ static fromUnknown(code: TRPC_ERROR_CODE_KEY, cause: unknown, opts?: {
36
+ layer?: ServerErrorLayer;
37
+ layerName?: string;
38
+ context?: Record<string, unknown>;
39
+ }): ServerError;
40
+ }
41
+ export type ErrorReporter = {
42
+ captureException: (err: Parameters<typeof captureException>[0], hint?: Parameters<typeof captureException>[1]) => string;
43
+ };
44
+ declare global {
45
+ var m5ErrorReporter: ErrorReporter | undefined;
46
+ }
47
+ export declare function getErrorReporter(): ErrorReporter | undefined;
48
+ export declare function setErrorReporter(reporter: ErrorReporter): void;
49
+ export declare function reportError(err: ServerError | Error | unknown, hint?: Parameters<typeof captureException>[1]): string | undefined;
50
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,mBAAmB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AACjC,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAEpB,EACV,IAAI,EACJ,KAAK,EACL,SAAS,EACT,OAAO,EACP,aAAa,EACb,KAAK,EACL,OAAO,EACP,eAAsB,GACvB,EAAE;QACD,IAAI,EAAE,mBAAmB,CAAC;QAC1B,KAAK,CAAC,EAAE,gBAAgB,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;IAiBD,UAAU,IAAI,OAAO;IAKrB,iBAAiB,IAAI,MAAM;IAI3B,MAAM,IAAI,SAAS;IAQnB,MAAM;;;;;;;;;;IAiBN,MAAM,CAAC,WAAW,CAChB,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;CAa7F;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,gBAAgB,EAAE,CAChB,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAC3C,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAC1C,MAAM,CAAC;CACb,CAAC;AACF,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,eAAe,EAAE,aAAa,GAAG,SAAS,CAAC;CAChD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,QAEvD;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,WAAW,GAAG,KAAK,GAAG,OAAO,EAClC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAC5C,MAAM,GAAG,SAAS,CAsBpB"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServerError = void 0;
4
+ exports.getErrorReporter = getErrorReporter;
5
+ exports.setErrorReporter = setErrorReporter;
6
+ exports.reportError = reportError;
7
+ const server_1 = require("@trpc/server");
8
+ const http_1 = require("@trpc/server/http");
9
+ const radashi_1 = require("radashi");
10
+ const logger_1 = require("./logger");
11
+ class ServerError extends Error {
12
+ code;
13
+ layer;
14
+ layerName;
15
+ clientMessage;
16
+ context;
17
+ boundaryStack; // where we wrapped it
18
+ constructor({ code, layer, layerName, message, clientMessage, cause, context, captureBoundary = true, }) {
19
+ // keep native cause chain when the cause is an Error
20
+ super(message ?? `server.error.${layer}.${(0, radashi_1.camel)(code)}`, {
21
+ cause: cause instanceof Error ? cause : undefined,
22
+ });
23
+ this.code = code;
24
+ this.layer = layer ?? "unknown";
25
+ this.layerName = layerName ?? "UnknownLayer";
26
+ this.clientMessage = clientMessage ?? `server.error.${layer}.${(0, radashi_1.camel)(code)}`;
27
+ this.context = context;
28
+ if (captureBoundary)
29
+ this.boundaryStack = new Error().stack;
30
+ Error.captureStackTrace?.(this, ServerError);
31
+ Object.setPrototypeOf(this, new.target.prototype);
32
+ }
33
+ is5xxError() {
34
+ const statusCode = this.getHTTPStatusCode();
35
+ return statusCode >= 500 && statusCode < 600;
36
+ }
37
+ getHTTPStatusCode() {
38
+ return (0, http_1.getHTTPStatusCodeFromError)(this.toTRPC());
39
+ }
40
+ toTRPC() {
41
+ return new server_1.TRPCError({
42
+ code: this.code,
43
+ message: this.message,
44
+ cause: this.cause,
45
+ });
46
+ }
47
+ toJSON() {
48
+ return {
49
+ code: this.code,
50
+ layer: this.layer,
51
+ layerName: this.layerName,
52
+ message: this.message,
53
+ context: this.context,
54
+ stack: process.env.NODE_ENV !== "production" ? this.stack : undefined,
55
+ boundaryStack: process.env.NODE_ENV !== "production" ? this.boundaryStack : undefined,
56
+ // Shallow representation of cause to avoid cycles
57
+ cause: this.cause instanceof Error
58
+ ? { name: this.cause.name, message: this.cause.message, stack: this.cause.stack }
59
+ : this.cause,
60
+ };
61
+ }
62
+ static fromUnknown(code, cause, opts) {
63
+ const msg = cause instanceof Error ? cause.message : undefined;
64
+ return new ServerError({
65
+ code,
66
+ layer: opts?.layer,
67
+ layerName: opts?.layerName,
68
+ message: msg,
69
+ cause,
70
+ context: opts?.context,
71
+ captureBoundary: true,
72
+ });
73
+ }
74
+ }
75
+ exports.ServerError = ServerError;
76
+ function getErrorReporter() {
77
+ return globalThis.m5ErrorReporter;
78
+ }
79
+ function setErrorReporter(reporter) {
80
+ globalThis.m5ErrorReporter = reporter;
81
+ }
82
+ function reportError(err, hint) {
83
+ let eventHint = hint;
84
+ const reporter = getErrorReporter();
85
+ if (!reporter) {
86
+ logger_1.logger.error("[reportError] No error reporter set!");
87
+ return;
88
+ }
89
+ if (err instanceof ServerError) {
90
+ // Merge - don't clobber caller-provided hint
91
+ eventHint = {
92
+ ...hint,
93
+ captureContext: {
94
+ ...hint?.captureContext,
95
+ extra: {
96
+ ...(hint?.captureContext?.extra ?? {}),
97
+ layer: err.layer,
98
+ layerName: err.layerName,
99
+ },
100
+ },
101
+ };
102
+ }
103
+ return reporter.captureException(err, eventHint);
104
+ }
@@ -0,0 +1,2 @@
1
+ export declare const logger: import("pino").Logger<never, boolean>;
2
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,uCAKjB,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logger = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pino_1 = tslib_1.__importDefault(require("pino"));
6
+ exports.logger = (0, pino_1.default)({
7
+ transport: {
8
+ target: "pino-pretty",
9
+ },
10
+ level: "debug",
11
+ });