@corgelabs/corge 0.0.1 → 1.0.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 (341) hide show
  1. package/dist/ai/index.d.ts +3 -0
  2. package/dist/ai/index.d.ts.map +1 -0
  3. package/dist/ai/index.js +3 -0
  4. package/dist/ai/index.js.map +1 -0
  5. package/dist/ai/schema.d.ts +83 -0
  6. package/dist/ai/schema.d.ts.map +1 -0
  7. package/dist/ai/schema.js +19 -0
  8. package/dist/ai/schema.js.map +1 -0
  9. package/dist/ai/service.d.ts +14 -0
  10. package/dist/ai/service.d.ts.map +1 -0
  11. package/dist/ai/service.js +266 -0
  12. package/dist/ai/service.js.map +1 -0
  13. package/dist/ai/utils.d.ts +10 -0
  14. package/dist/ai/utils.d.ts.map +1 -0
  15. package/dist/ai/utils.js +27 -0
  16. package/dist/ai/utils.js.map +1 -0
  17. package/dist/attachments/index.d.ts +4 -0
  18. package/dist/attachments/index.d.ts.map +1 -0
  19. package/dist/attachments/index.js +4 -0
  20. package/dist/attachments/index.js.map +1 -0
  21. package/dist/attachments/routes.d.ts +75 -0
  22. package/dist/attachments/routes.d.ts.map +1 -0
  23. package/dist/attachments/routes.js +18 -0
  24. package/dist/attachments/routes.js.map +1 -0
  25. package/dist/attachments/schema.d.ts +61 -0
  26. package/dist/attachments/schema.d.ts.map +1 -0
  27. package/dist/attachments/schema.js +30 -0
  28. package/dist/attachments/schema.js.map +1 -0
  29. package/dist/attachments/service.d.ts +27 -0
  30. package/dist/attachments/service.d.ts.map +1 -0
  31. package/dist/attachments/service.js +224 -0
  32. package/dist/attachments/service.js.map +1 -0
  33. package/dist/attachments/utils.d.ts +9 -0
  34. package/dist/attachments/utils.d.ts.map +1 -0
  35. package/dist/attachments/utils.js +80 -0
  36. package/dist/attachments/utils.js.map +1 -0
  37. package/dist/auth/index.d.ts +4 -0
  38. package/dist/auth/index.d.ts.map +1 -0
  39. package/dist/auth/index.js +4 -0
  40. package/dist/auth/index.js.map +1 -0
  41. package/dist/auth/oidc.d.ts +25 -0
  42. package/dist/auth/oidc.d.ts.map +1 -0
  43. package/dist/auth/oidc.js +298 -0
  44. package/dist/auth/oidc.js.map +1 -0
  45. package/dist/auth/recovery.d.ts +41 -0
  46. package/dist/auth/recovery.d.ts.map +1 -0
  47. package/dist/auth/recovery.js +250 -0
  48. package/dist/auth/recovery.js.map +1 -0
  49. package/dist/auth/routes.d.ts +226 -0
  50. package/dist/auth/routes.d.ts.map +1 -0
  51. package/dist/auth/routes.js +96 -0
  52. package/dist/auth/routes.js.map +1 -0
  53. package/dist/auth/schema.d.ts +158 -0
  54. package/dist/auth/schema.d.ts.map +1 -0
  55. package/dist/auth/schema.js +82 -0
  56. package/dist/auth/schema.js.map +1 -0
  57. package/dist/auth/service.d.ts +96 -0
  58. package/dist/auth/service.d.ts.map +1 -0
  59. package/dist/auth/service.js +129 -0
  60. package/dist/auth/service.js.map +1 -0
  61. package/dist/auth/session.d.ts +51 -0
  62. package/dist/auth/session.d.ts.map +1 -0
  63. package/dist/auth/session.js +344 -0
  64. package/dist/auth/session.js.map +1 -0
  65. package/dist/auth/utils.d.ts +17 -0
  66. package/dist/auth/utils.d.ts.map +1 -0
  67. package/dist/auth/utils.js +96 -0
  68. package/dist/auth/utils.js.map +1 -0
  69. package/dist/bin/corge.js +547 -0
  70. package/dist/chat/context.d.ts +10 -0
  71. package/dist/chat/context.d.ts.map +1 -0
  72. package/dist/chat/context.js +221 -0
  73. package/dist/chat/context.js.map +1 -0
  74. package/dist/chat/index.d.ts +4 -0
  75. package/dist/chat/index.d.ts.map +1 -0
  76. package/dist/chat/index.js +4 -0
  77. package/dist/chat/index.js.map +1 -0
  78. package/dist/chat/routes.d.ts +160 -0
  79. package/dist/chat/routes.d.ts.map +1 -0
  80. package/dist/chat/routes.js +210 -0
  81. package/dist/chat/routes.js.map +1 -0
  82. package/dist/chat/schema.d.ts +285 -0
  83. package/dist/chat/schema.d.ts.map +1 -0
  84. package/dist/chat/schema.js +74 -0
  85. package/dist/chat/schema.js.map +1 -0
  86. package/dist/chat/service.d.ts +64 -0
  87. package/dist/chat/service.d.ts.map +1 -0
  88. package/dist/chat/service.js +279 -0
  89. package/dist/chat/service.js.map +1 -0
  90. package/dist/chat/stream.d.ts +53 -0
  91. package/dist/chat/stream.d.ts.map +1 -0
  92. package/dist/chat/stream.js +339 -0
  93. package/dist/chat/stream.js.map +1 -0
  94. package/dist/chat/utils.d.ts +61 -0
  95. package/dist/chat/utils.d.ts.map +1 -0
  96. package/dist/chat/utils.js +285 -0
  97. package/dist/chat/utils.js.map +1 -0
  98. package/dist/cli/builder.d.ts +6 -0
  99. package/dist/cli/builder.d.ts.map +1 -0
  100. package/dist/cli/builder.js +91 -0
  101. package/dist/cli/builder.js.map +1 -0
  102. package/dist/cli/deployer.d.ts +2 -0
  103. package/dist/cli/deployer.d.ts.map +1 -0
  104. package/dist/cli/deployer.js +152 -0
  105. package/dist/cli/deployer.js.map +1 -0
  106. package/dist/cli/dev-server.d.ts +2 -0
  107. package/dist/cli/dev-server.d.ts.map +1 -0
  108. package/dist/cli/dev-server.js +70 -0
  109. package/dist/cli/dev-server.js.map +1 -0
  110. package/dist/cli/env.d.ts +4 -0
  111. package/dist/cli/env.d.ts.map +1 -0
  112. package/dist/cli/env.js +68 -0
  113. package/dist/cli/env.js.map +1 -0
  114. package/dist/cli/init.d.ts +6 -0
  115. package/dist/cli/init.d.ts.map +1 -0
  116. package/dist/cli/init.js +103 -0
  117. package/dist/cli/init.js.map +1 -0
  118. package/dist/config.d.ts +262 -0
  119. package/dist/config.d.ts.map +1 -0
  120. package/dist/config.js +212 -0
  121. package/dist/config.js.map +1 -0
  122. package/dist/db/index.d.ts +3 -0
  123. package/dist/db/index.d.ts.map +1 -0
  124. package/dist/db/index.js +3 -0
  125. package/dist/db/index.js.map +1 -0
  126. package/dist/db/schema.d.ts +410 -0
  127. package/dist/db/schema.d.ts.map +1 -0
  128. package/dist/db/schema.js +294 -0
  129. package/dist/db/schema.js.map +1 -0
  130. package/dist/db/service.d.ts +42 -0
  131. package/dist/db/service.d.ts.map +1 -0
  132. package/dist/db/service.js +372 -0
  133. package/dist/db/service.js.map +1 -0
  134. package/dist/db/utils.d.ts +25 -0
  135. package/dist/db/utils.d.ts.map +1 -0
  136. package/dist/db/utils.js +188 -0
  137. package/dist/db/utils.js.map +1 -0
  138. package/dist/emails/index.d.ts +4 -0
  139. package/dist/emails/index.d.ts.map +1 -0
  140. package/dist/emails/index.js +4 -0
  141. package/dist/emails/index.js.map +1 -0
  142. package/dist/emails/routes.d.ts +191 -0
  143. package/dist/emails/routes.d.ts.map +1 -0
  144. package/dist/emails/routes.js +39 -0
  145. package/dist/emails/routes.js.map +1 -0
  146. package/dist/emails/schema.d.ts +237 -0
  147. package/dist/emails/schema.d.ts.map +1 -0
  148. package/dist/emails/schema.js +98 -0
  149. package/dist/emails/schema.js.map +1 -0
  150. package/dist/emails/service.d.ts +22 -0
  151. package/dist/emails/service.d.ts.map +1 -0
  152. package/dist/emails/service.js +337 -0
  153. package/dist/emails/service.js.map +1 -0
  154. package/dist/emails/utils.d.ts +49 -0
  155. package/dist/emails/utils.d.ts.map +1 -0
  156. package/dist/emails/utils.js +341 -0
  157. package/dist/emails/utils.js.map +1 -0
  158. package/dist/files/index.d.ts +4 -0
  159. package/dist/files/index.d.ts.map +1 -0
  160. package/dist/files/index.js +4 -0
  161. package/dist/files/index.js.map +1 -0
  162. package/dist/files/routes.d.ts +72 -0
  163. package/dist/files/routes.d.ts.map +1 -0
  164. package/dist/files/routes.js +38 -0
  165. package/dist/files/routes.js.map +1 -0
  166. package/dist/files/schema.d.ts +57 -0
  167. package/dist/files/schema.d.ts.map +1 -0
  168. package/dist/files/schema.js +39 -0
  169. package/dist/files/schema.js.map +1 -0
  170. package/dist/files/service.d.ts +27 -0
  171. package/dist/files/service.d.ts.map +1 -0
  172. package/dist/files/service.js +175 -0
  173. package/dist/files/service.js.map +1 -0
  174. package/dist/files/utils.d.ts +3 -0
  175. package/dist/files/utils.d.ts.map +1 -0
  176. package/dist/files/utils.js +63 -0
  177. package/dist/files/utils.js.map +1 -0
  178. package/dist/index.d.ts +875 -0
  179. package/dist/index.d.ts.map +1 -0
  180. package/dist/index.js +9919 -0
  181. package/dist/index.js.map +7 -0
  182. package/dist/payments/billing.d.ts +29 -0
  183. package/dist/payments/billing.d.ts.map +1 -0
  184. package/dist/payments/billing.js +378 -0
  185. package/dist/payments/billing.js.map +1 -0
  186. package/dist/payments/index.d.ts +4 -0
  187. package/dist/payments/index.d.ts.map +1 -0
  188. package/dist/payments/index.js +4 -0
  189. package/dist/payments/index.js.map +1 -0
  190. package/dist/payments/routes.d.ts +340 -0
  191. package/dist/payments/routes.d.ts.map +1 -0
  192. package/dist/payments/routes.js +56 -0
  193. package/dist/payments/routes.js.map +1 -0
  194. package/dist/payments/schema.d.ts +412 -0
  195. package/dist/payments/schema.d.ts.map +1 -0
  196. package/dist/payments/schema.js +260 -0
  197. package/dist/payments/schema.js.map +1 -0
  198. package/dist/payments/service.d.ts +31 -0
  199. package/dist/payments/service.d.ts.map +1 -0
  200. package/dist/payments/service.js +322 -0
  201. package/dist/payments/service.js.map +1 -0
  202. package/dist/payments/utils.d.ts +61 -0
  203. package/dist/payments/utils.d.ts.map +1 -0
  204. package/dist/payments/utils.js +369 -0
  205. package/dist/payments/utils.js.map +1 -0
  206. package/dist/router/guard.d.ts +19 -0
  207. package/dist/router/guard.d.ts.map +1 -0
  208. package/dist/router/guard.js +243 -0
  209. package/dist/router/guard.js.map +1 -0
  210. package/dist/router/index.d.ts +3 -0
  211. package/dist/router/index.d.ts.map +1 -0
  212. package/dist/router/index.js +3 -0
  213. package/dist/router/index.js.map +1 -0
  214. package/dist/router/schema.d.ts +103 -0
  215. package/dist/router/schema.d.ts.map +1 -0
  216. package/dist/router/schema.js +282 -0
  217. package/dist/router/schema.js.map +1 -0
  218. package/dist/router/service.d.ts +25 -0
  219. package/dist/router/service.d.ts.map +1 -0
  220. package/dist/router/service.js +339 -0
  221. package/dist/router/service.js.map +1 -0
  222. package/dist/tasks/index.d.ts +4 -0
  223. package/dist/tasks/index.d.ts.map +1 -0
  224. package/dist/tasks/index.js +4 -0
  225. package/dist/tasks/index.js.map +1 -0
  226. package/dist/tasks/routes.d.ts +54 -0
  227. package/dist/tasks/routes.d.ts.map +1 -0
  228. package/dist/tasks/routes.js +195 -0
  229. package/dist/tasks/routes.js.map +1 -0
  230. package/dist/tasks/schema.d.ts +261 -0
  231. package/dist/tasks/schema.d.ts.map +1 -0
  232. package/dist/tasks/schema.js +35 -0
  233. package/dist/tasks/schema.js.map +1 -0
  234. package/dist/tasks/service.d.ts +32 -0
  235. package/dist/tasks/service.d.ts.map +1 -0
  236. package/dist/tasks/service.js +201 -0
  237. package/dist/tasks/service.js.map +1 -0
  238. package/dist/tasks/steps.d.ts +18 -0
  239. package/dist/tasks/steps.d.ts.map +1 -0
  240. package/dist/tasks/steps.js +365 -0
  241. package/dist/tasks/steps.js.map +1 -0
  242. package/dist/tasks/utils.d.ts +75 -0
  243. package/dist/tasks/utils.d.ts.map +1 -0
  244. package/dist/tasks/utils.js +311 -0
  245. package/dist/tasks/utils.js.map +1 -0
  246. package/dist/tasks/watcher.d.ts +13 -0
  247. package/dist/tasks/watcher.d.ts.map +1 -0
  248. package/dist/tasks/watcher.js +255 -0
  249. package/dist/tasks/watcher.js.map +1 -0
  250. package/dist/tasks/worker.d.ts +28 -0
  251. package/dist/tasks/worker.d.ts.map +1 -0
  252. package/dist/tasks/worker.js +326 -0
  253. package/dist/tasks/worker.js.map +1 -0
  254. package/dist/utils/index.d.ts +3 -0
  255. package/dist/utils/index.d.ts.map +1 -0
  256. package/dist/utils/index.js +3 -0
  257. package/dist/utils/index.js.map +1 -0
  258. package/dist/utils/schema.d.ts +79 -0
  259. package/dist/utils/schema.d.ts.map +1 -0
  260. package/dist/utils/schema.js +41 -0
  261. package/dist/utils/schema.js.map +1 -0
  262. package/dist/utils/service.d.ts +32 -0
  263. package/dist/utils/service.d.ts.map +1 -0
  264. package/dist/utils/service.js +384 -0
  265. package/dist/utils/service.js.map +1 -0
  266. package/docs/SDK_SPEC.md +1645 -0
  267. package/infra/firestore.base.indexes.json +138 -0
  268. package/infra/firestore.base.rules +152 -0
  269. package/infra/storage.base.rules +8 -0
  270. package/package.json +59 -13
  271. package/src/ai/index.ts +2 -0
  272. package/src/ai/schema.ts +64 -0
  273. package/src/ai/service.ts +317 -0
  274. package/src/ai/utils.ts +38 -0
  275. package/src/attachments/index.ts +3 -0
  276. package/src/attachments/routes.ts +28 -0
  277. package/src/attachments/schema.ts +45 -0
  278. package/src/attachments/service.ts +315 -0
  279. package/src/attachments/utils.ts +115 -0
  280. package/src/auth/index.ts +3 -0
  281. package/src/auth/oidc.ts +419 -0
  282. package/src/auth/recovery.ts +365 -0
  283. package/src/auth/routes.ts +142 -0
  284. package/src/auth/schema.ts +181 -0
  285. package/src/auth/service.ts +183 -0
  286. package/src/auth/session.ts +414 -0
  287. package/src/auth/utils.ts +106 -0
  288. package/src/chat/context.ts +310 -0
  289. package/src/chat/index.ts +3 -0
  290. package/src/chat/routes.ts +264 -0
  291. package/src/chat/schema.ts +295 -0
  292. package/src/chat/service.ts +360 -0
  293. package/src/chat/stream.ts +481 -0
  294. package/src/chat/utils.ts +370 -0
  295. package/src/cli/builder.ts +93 -0
  296. package/src/cli/deployer.ts +184 -0
  297. package/src/cli/dev-server.ts +77 -0
  298. package/src/cli/env.ts +89 -0
  299. package/src/cli/init.ts +125 -0
  300. package/src/config.ts +447 -0
  301. package/src/db/index.ts +2 -0
  302. package/src/db/schema.ts +409 -0
  303. package/src/db/service.ts +477 -0
  304. package/src/db/utils.ts +250 -0
  305. package/src/emails/index.ts +3 -0
  306. package/src/emails/routes.ts +64 -0
  307. package/src/emails/schema.ts +239 -0
  308. package/src/emails/service.ts +488 -0
  309. package/src/emails/utils.ts +449 -0
  310. package/src/files/index.ts +3 -0
  311. package/src/files/routes.ts +44 -0
  312. package/src/files/schema.ts +76 -0
  313. package/src/files/service.ts +238 -0
  314. package/src/files/utils.ts +77 -0
  315. package/src/index.ts +425 -0
  316. package/src/payments/billing.ts +488 -0
  317. package/src/payments/index.ts +3 -0
  318. package/src/payments/routes.ts +92 -0
  319. package/src/payments/schema.ts +401 -0
  320. package/src/payments/service.ts +445 -0
  321. package/src/payments/utils.ts +472 -0
  322. package/src/router/guard.ts +319 -0
  323. package/src/router/index.ts +2 -0
  324. package/src/router/schema.ts +458 -0
  325. package/src/router/service.ts +453 -0
  326. package/src/tasks/index.ts +11 -0
  327. package/src/tasks/routes.ts +230 -0
  328. package/src/tasks/schema.ts +310 -0
  329. package/src/tasks/service.ts +254 -0
  330. package/src/tasks/steps.ts +472 -0
  331. package/src/tasks/utils.ts +445 -0
  332. package/src/tasks/watcher.ts +307 -0
  333. package/src/tasks/worker.ts +461 -0
  334. package/src/utils/index.ts +2 -0
  335. package/src/utils/schema.ts +69 -0
  336. package/src/utils/service.ts +461 -0
  337. package/tests/e2e.test.ts +2531 -0
  338. package/tsconfig.base.json +12 -0
  339. package/README.md +0 -2
  340. package/index.d.ts +0 -1
  341. package/index.js +0 -1
package/dist/config.js ADDED
@@ -0,0 +1,212 @@
1
+ try {
2
+ process.loadEnvFile();
3
+ }
4
+ catch { }
5
+ export const SECRET_NAMES = [
6
+ 'SDK_API_KEY',
7
+ 'MISTRAL_API_KEY',
8
+ 'TYPESAFE_API_KEY',
9
+ 'JINA_API_KEY',
10
+ 'WEB_API_KEY'
11
+ ];
12
+ export const EMAIL_SECRET_NAMES = [
13
+ 'RESEND_API_KEY',
14
+ 'SENDGRID_API_KEY',
15
+ 'EMAIL_WEBHOOK_SECRET',
16
+ 'EMAIL_SANDBOX_WEBHOOK_SECRET'
17
+ ];
18
+ export const PAYMENT_SECRET_NAMES = [
19
+ 'STRIPE_API_KEY',
20
+ 'STRIPE_SANDBOX_API_KEY',
21
+ 'STRIPE_WEBHOOK_SECRET',
22
+ 'STRIPE_SANDBOX_WEBHOOK_SECRET',
23
+ 'DODO_API_KEY',
24
+ 'DODO_SANDBOX_API_KEY',
25
+ 'DODO_WEBHOOK_SECRET',
26
+ 'DODO_SANDBOX_WEBHOOK_SECRET'
27
+ ];
28
+ const gcpProject = process.env.GCP_PROJECT ?? '';
29
+ const region = 'me-central1';
30
+ const defaultWebBaseUrl = `https://${gcpProject || 'app'}.web.app`;
31
+ export const CORE_CONFIG = {
32
+ appName: gcpProject,
33
+ gcpProject,
34
+ region,
35
+ secrets: [],
36
+ firestoreDbs: { prod: gcpProject, dev: `${gcpProject}-dev` },
37
+ storageBuckets: { prod: `${gcpProject}.firebasestorage.app`, dev: `${gcpProject}-dev` },
38
+ db: {
39
+ rbac: {
40
+ admin: { any: ['*'] },
41
+ user: { own: ['*'] },
42
+ anon: {}
43
+ }
44
+ },
45
+ context: {
46
+ dir: 'src/context',
47
+ maxSources: 5,
48
+ userContextTimeoutMs: 3_500
49
+ },
50
+ serviceAccount: `firebase-adminsdk-fbsvc@${gcpProject}.iam.gserviceaccount.com`,
51
+ computeAccount: '68329189121-compute@developer.gserviceaccount.com',
52
+ workerUris: {
53
+ prod: `https://${region}-${gcpProject}.cloudfunctions.net/${gcpProject}-tasks`,
54
+ dev: `https://${region}-${gcpProject}.cloudfunctions.net/${gcpProject}-tasks-dev`
55
+ },
56
+ queueBaseNames: {
57
+ prod: `${gcpProject}-tasks`,
58
+ dev: `${gcpProject}-tasks-dev`
59
+ },
60
+ cloudRun: {
61
+ memory: '4GiB',
62
+ cpu: 2,
63
+ http: { timeoutSeconds: 180, concurrency: 80, maxInstances: 50, invoker: 'public' },
64
+ worker: { timeoutSeconds: 540, concurrency: 20, maxInstances: 20 }
65
+ },
66
+ tasks: {
67
+ useCloudTasks: Boolean(process.env.K_SERVICE),
68
+ defaultShardsCount: 20,
69
+ batchCreateSize: 100,
70
+ maxAttempts: 3,
71
+ hedgeAfterMs: 65_000,
72
+ heartbeatIntervalMs: 20_000,
73
+ heartbeatStaleMs: 30_000,
74
+ timeoutMs: 510_000,
75
+ ttlMs: 3_600_000,
76
+ scanDeadlineSeconds: 120,
77
+ defaultDeadlineSeconds: 540,
78
+ claimCheckThresholdBytes: 204_800,
79
+ yieldBudgetRatio: 0.75
80
+ },
81
+ models: {
82
+ vertex: 'claude-haiku-5-5',
83
+ vertexExpert: 'claude-sonnet-4-5',
84
+ vertexEmbedding: 'text-embedding-005',
85
+ vertexLocation: 'global',
86
+ mistralOcr: 'mistral-ocr-latest',
87
+ jev: 'jev-latest',
88
+ defaultAgentMaxSteps: 8
89
+ },
90
+ limits: {
91
+ maxAttachments: 500,
92
+ maxChatAttachments: 20,
93
+ chatMessagesLimit: 15,
94
+ defaultListLimit: 100,
95
+ maxFileBytes: 20 * 1024 * 1024,
96
+ maxBodyBytes: 25 * 1024 * 1024,
97
+ maxWaitMs: 60_000,
98
+ httpUser: { max: 300, windowMs: 60_000, keyBy: 'user' },
99
+ httpIp: { max: 60, windowMs: 60_000, keyBy: 'ip' },
100
+ buckets: {
101
+ mistral: { windowMs: 60_000, max: 1250 },
102
+ jev: { windowMs: 60_000, max: 1200 },
103
+ ai: { windowMs: 60_000, max: 2000 },
104
+ workflows: { windowMs: 1_000, max: 500 },
105
+ firestore: { windowMs: 1_000, max: 500 },
106
+ storage: { windowMs: 1_000, max: 1000 },
107
+ emails: { windowMs: 1_000, max: 50 },
108
+ payments: { windowMs: 1_000, max: 100 }
109
+ }
110
+ },
111
+ auth: {
112
+ sessionCookie: 'session',
113
+ sessionExpiresInMs: 14 * 24 * 60 * 60 * 1000,
114
+ tokenCacheTtlMs: 5 * 60_000,
115
+ tokenCacheMaxSize: 2000,
116
+ adminUserId: 'admin',
117
+ allowedOrigins: [
118
+ /^https:\/\/[a-z0-9-]+\.a\.run\.app$/i,
119
+ /^https:\/\/([a-z0-9-]+\.)?(web\.app|firebaseapp\.com)$/i,
120
+ /^http:\/\/(localhost|127\.0\.0\.1)(:\d+)?$/i
121
+ ]
122
+ },
123
+ emails: {
124
+ provider: 'resend',
125
+ fromEmail: `no-reply@${gcpProject || 'app'}.firebaseapp.com`,
126
+ fromName: gcpProject || 'App',
127
+ actionBaseUrl: `https://${gcpProject || 'app'}.web.app`,
128
+ otpTtlMinutes: 15,
129
+ recoveryOtpTtlMinutes: 10,
130
+ maxVerifyAttempts: 5,
131
+ enforceSuppressionList: true,
132
+ webhookToleranceSeconds: 300,
133
+ authFlows: {
134
+ verify_email: { actionPath: '/auth/verify-email', subject: 'Verify your email address' },
135
+ reset_password: { actionPath: '/auth/reset-password', subject: 'Reset your password' },
136
+ verify_recovery_email: { actionPath: '/auth/verify-recovery', subject: 'Verify your recovery email' },
137
+ account_recovery: { actionPath: '/auth/account-recovery', subject: 'Recover your account' },
138
+ welcome: { actionPath: '/dashboard', subject: 'Welcome!' },
139
+ security_alert: { actionPath: '/settings/security', subject: 'Security alert on your account' }
140
+ },
141
+ sendgrid: {
142
+ baseUrl: 'https://api.sendgrid.com/v3'
143
+ },
144
+ resend: {
145
+ baseUrl: 'https://api.resend.com'
146
+ }
147
+ },
148
+ payments: {
149
+ enabled: false,
150
+ provider: 'dodo',
151
+ defaultCurrency: 'usd',
152
+ defaultPlanId: 'free',
153
+ autoTrackAiTokens: true,
154
+ aiTokenMeterName: 'ai_tokens',
155
+ webhookToleranceSeconds: 300,
156
+ urls: {
157
+ successUrl: `${defaultWebBaseUrl}/billing/success`,
158
+ cancelUrl: `${defaultWebBaseUrl}/billing/cancel`,
159
+ returnUrl: `${defaultWebBaseUrl}/billing`
160
+ },
161
+ dodo: {
162
+ liveBaseUrl: 'https://live.dodopayments.com',
163
+ testBaseUrl: 'https://test.dodopayments.com'
164
+ },
165
+ stripe: {
166
+ baseUrl: 'https://api.stripe.com/v1',
167
+ apiVersion: '2025-02-24.acacia'
168
+ }
169
+ }
170
+ };
171
+ const mergeDeep = (target, source) => {
172
+ if (!source)
173
+ return target;
174
+ for (const [k, v] of Object.entries(source)) {
175
+ if (v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof RegExp) && typeof target[k] === 'object') {
176
+ mergeDeep(target[k], v);
177
+ }
178
+ else if (v !== undefined) {
179
+ ;
180
+ target[k] = v;
181
+ }
182
+ }
183
+ return target;
184
+ };
185
+ export const defineConfig = (overrides) => {
186
+ if (overrides?.gcpProject && overrides.gcpProject !== CORE_CONFIG.gcpProject) {
187
+ const p = overrides.gcpProject;
188
+ const r = overrides.region ?? CORE_CONFIG.region;
189
+ CORE_CONFIG.appName = p;
190
+ CORE_CONFIG.firestoreDbs = { prod: p, dev: `${p}-dev` };
191
+ CORE_CONFIG.storageBuckets = { prod: `${p}.firebasestorage.app`, dev: `${p}-dev` };
192
+ CORE_CONFIG.serviceAccount = `firebase-adminsdk-fbsvc@${p}.iam.gserviceaccount.com`;
193
+ CORE_CONFIG.workerUris = {
194
+ prod: `https://${r}-${p}.cloudfunctions.net/${p}-tasks`,
195
+ dev: `https://${r}-${p}.cloudfunctions.net/${p}-tasks-dev`
196
+ };
197
+ CORE_CONFIG.queueBaseNames = {
198
+ prod: `${p}-tasks`,
199
+ dev: `${p}-tasks-dev`
200
+ };
201
+ CORE_CONFIG.emails.fromEmail = `no-reply@${p}.firebaseapp.com`;
202
+ CORE_CONFIG.emails.fromName = p;
203
+ CORE_CONFIG.emails.actionBaseUrl = `https://${p}.web.app`;
204
+ CORE_CONFIG.payments.urls = {
205
+ successUrl: `https://${p}.web.app/billing/success`,
206
+ cancelUrl: `https://${p}.web.app/billing/cancel`,
207
+ returnUrl: `https://${p}.web.app/billing`
208
+ };
209
+ }
210
+ return mergeDeep(CORE_CONFIG, overrides);
211
+ };
212
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './schema';
2
+ export { DbService } from './service';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './schema';
2
+ export { DbService } from './service';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,410 @@
1
+ import { z } from 'zod';
2
+ import type { Core } from '../index';
3
+ import { type DbAccessScope, type DbAction, type DbRole, type RbacConfig, type RbacRoleScopes } from '../config';
4
+ export { type DbAccessScope, type DbAction, type DbRole, type RbacConfig, type RbacRoleScopes };
5
+ export interface DbCallContext {
6
+ userId?: EntryId;
7
+ userRole?: DbRole;
8
+ bypassRbac?: boolean;
9
+ core?: Core;
10
+ }
11
+ export declare const entryId: z.ZodString;
12
+ export type EntryId = z.infer<typeof entryId>;
13
+ export declare const fileRef: z.ZodString;
14
+ export type FileRef = z.infer<typeof fileRef>;
15
+ export declare const fileScan: z.ZodObject<{
16
+ type: z.ZodString;
17
+ confidence: z.ZodNumber;
18
+ fields: z.ZodRecord<z.ZodString, z.ZodAny>;
19
+ markdown: z.ZodString;
20
+ }, z.core.$strip>;
21
+ export type FileScan = z.infer<typeof fileScan>;
22
+ export declare const unparseableReason: z.ZodEnum<{
23
+ CLASSIFICATION_REJECTED: "CLASSIFICATION_REJECTED";
24
+ CORRUPTED_FILE: "CORRUPTED_FILE";
25
+ EMPTY_OR_UNREADABLE: "EMPTY_OR_UNREADABLE";
26
+ PASSWORD_PROTECTED: "PASSWORD_PROTECTED";
27
+ UNSUPPORTED_FORMAT: "UNSUPPORTED_FORMAT";
28
+ }>;
29
+ export type UnparseableReason = z.infer<typeof unparseableReason>;
30
+ export declare const fileScanError: z.ZodObject<{
31
+ status: z.ZodLiteral<"unparseable">;
32
+ reason: z.ZodEnum<{
33
+ CLASSIFICATION_REJECTED: "CLASSIFICATION_REJECTED";
34
+ CORRUPTED_FILE: "CORRUPTED_FILE";
35
+ EMPTY_OR_UNREADABLE: "EMPTY_OR_UNREADABLE";
36
+ PASSWORD_PROTECTED: "PASSWORD_PROTECTED";
37
+ UNSUPPORTED_FORMAT: "UNSUPPORTED_FORMAT";
38
+ }>;
39
+ agentHint: z.ZodString;
40
+ diagnosticMessage: z.ZodOptional<z.ZodString>;
41
+ failedAt: z.ZodString;
42
+ }, z.core.$strip>;
43
+ export type FileScanError = z.infer<typeof fileScanError>;
44
+ export interface BaseEntryFields {
45
+ id: EntryId;
46
+ deleted: boolean;
47
+ createdAt: Date;
48
+ updatedAt: Date;
49
+ }
50
+ export type WithBaseFields<T> = Omit<BaseEntryFields, keyof T> & T;
51
+ export type AuthRelationType = '1:1' | '1:N' | 'N:1' | 'M:N' | 'global';
52
+ export interface UserRelationConfig {
53
+ type?: AuthRelationType;
54
+ userField?: string;
55
+ userIdsField?: string;
56
+ junction?: {
57
+ collection: string;
58
+ userField?: string;
59
+ targetField?: string;
60
+ };
61
+ deleteWhenEmpty?: boolean;
62
+ }
63
+ export interface CollectionDefinition<S extends z.ZodObject<any> = z.ZodObject<any>> {
64
+ name?: string;
65
+ schema: S;
66
+ userRelation?: UserRelationConfig;
67
+ rbac?: RbacConfig;
68
+ sortByUpdated?: boolean;
69
+ onHardDelete?: (doc: WithBaseFields<z.infer<S>>, core: Core) => Promise<void>;
70
+ }
71
+ export interface DbListOptions<M = Record<string, any>> {
72
+ ids?: string[];
73
+ userId?: EntryId;
74
+ where?: Partial<{
75
+ [K in keyof M]: M[K] | readonly M[K][];
76
+ }>;
77
+ orderBy?: {
78
+ field: keyof M & string;
79
+ direction?: 'asc' | 'desc';
80
+ };
81
+ includeDeleted?: boolean;
82
+ limit?: number;
83
+ cursor?: string;
84
+ select?: (keyof M & string)[];
85
+ bypassRbac?: boolean;
86
+ }
87
+ export type PaginatedList<T> = T[] & {
88
+ nextCursor?: string | null;
89
+ };
90
+ export interface DbListPage<T> {
91
+ items: T[];
92
+ nextCursor: string | null;
93
+ }
94
+ export declare const defineCollection: <S extends z.ZodObject<any>>(def: CollectionDefinition<S>) => CollectionDefinition<S>;
95
+ export declare const defineCollections: <T extends Record<string, CollectionDefinition<any>>>(defs: T) => T;
96
+ export declare const coreCollections: {
97
+ chat: {
98
+ schema: z.ZodObject<{
99
+ userId: z.ZodString;
100
+ agentId: z.ZodDefault<z.ZodString>;
101
+ title: z.ZodDefault<z.ZodString>;
102
+ model: z.ZodDefault<z.ZodString>;
103
+ messageCount: z.ZodDefault<z.ZodNumber>;
104
+ summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
105
+ activeGenerationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
106
+ }, z.core.$strip>;
107
+ userRelation: {
108
+ type: "1:N";
109
+ userField: string;
110
+ };
111
+ sortByUpdated: true;
112
+ };
113
+ file: {
114
+ schema: z.ZodObject<{
115
+ id: z.ZodString;
116
+ shaSum: z.ZodString;
117
+ fileName: z.ZodString;
118
+ contentType: z.ZodString;
119
+ size: z.ZodNumber;
120
+ scan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
121
+ type: z.ZodString;
122
+ confidence: z.ZodNumber;
123
+ fields: z.ZodRecord<z.ZodString, z.ZodAny>;
124
+ markdown: z.ZodString;
125
+ }, z.core.$strip>>>;
126
+ scanError: z.ZodOptional<z.ZodNullable<z.ZodObject<{
127
+ status: z.ZodLiteral<"unparseable">;
128
+ reason: z.ZodEnum<{
129
+ CLASSIFICATION_REJECTED: "CLASSIFICATION_REJECTED";
130
+ CORRUPTED_FILE: "CORRUPTED_FILE";
131
+ EMPTY_OR_UNREADABLE: "EMPTY_OR_UNREADABLE";
132
+ PASSWORD_PROTECTED: "PASSWORD_PROTECTED";
133
+ UNSUPPORTED_FORMAT: "UNSUPPORTED_FORMAT";
134
+ }>;
135
+ agentHint: z.ZodString;
136
+ diagnosticMessage: z.ZodOptional<z.ZodString>;
137
+ failedAt: z.ZodString;
138
+ }, z.core.$strip>>>;
139
+ userId: z.ZodString;
140
+ }, z.core.$strip>;
141
+ userRelation: {
142
+ type: "1:N";
143
+ userField: string;
144
+ };
145
+ };
146
+ user_auth_meta: {
147
+ schema: z.ZodObject<{
148
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
149
+ emailVerified: z.ZodDefault<z.ZodBoolean>;
150
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
151
+ avatarUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
152
+ recoveryEmail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
153
+ recoveryEmailVerified: z.ZodDefault<z.ZodBoolean>;
154
+ linkedProviders: z.ZodDefault<z.ZodArray<z.ZodObject<{
155
+ provider: z.ZodEnum<{
156
+ apple: "apple";
157
+ google: "google";
158
+ }>;
159
+ providerUserId: z.ZodString;
160
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
161
+ linkedAt: z.ZodDate;
162
+ }, z.core.$strip>>>;
163
+ providerKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
164
+ }, z.core.$strip>;
165
+ userRelation: {
166
+ type: "1:1";
167
+ userField: string;
168
+ };
169
+ rbac: {
170
+ admin: {
171
+ any: "*"[];
172
+ };
173
+ user: {
174
+ own: "read"[];
175
+ };
176
+ anon: {};
177
+ };
178
+ };
179
+ auth_tokens: {
180
+ schema: z.ZodObject<{
181
+ userId: z.ZodString;
182
+ purpose: z.ZodEnum<{
183
+ account_recovery: "account_recovery";
184
+ reset_password: "reset_password";
185
+ verify_email: "verify_email";
186
+ verify_recovery_email: "verify_recovery_email";
187
+ }>;
188
+ targetEmail: z.ZodString;
189
+ tokenHash: z.ZodString;
190
+ urlTokenHash: z.ZodOptional<z.ZodString>;
191
+ attempts: z.ZodDefault<z.ZodNumber>;
192
+ expiresAt: z.ZodDate;
193
+ consumedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
194
+ }, z.core.$strip>;
195
+ userRelation: {
196
+ type: "1:N";
197
+ userField: string;
198
+ };
199
+ rbac: {
200
+ admin: {
201
+ any: "*"[];
202
+ };
203
+ user: {};
204
+ anon: {};
205
+ };
206
+ };
207
+ email_log: {
208
+ schema: z.ZodObject<{
209
+ userId: z.ZodOptional<z.ZodString>;
210
+ provider: z.ZodEnum<{
211
+ dev: "dev";
212
+ firebase: "firebase";
213
+ resend: "resend";
214
+ sendgrid: "sendgrid";
215
+ }>;
216
+ externalMessageId: z.ZodOptional<z.ZodString>;
217
+ to: z.ZodString;
218
+ from: z.ZodString;
219
+ subject: z.ZodOptional<z.ZodString>;
220
+ template: z.ZodOptional<z.ZodString>;
221
+ purpose: z.ZodOptional<z.ZodString>;
222
+ status: z.ZodDefault<z.ZodEnum<{
223
+ bounced: "bounced";
224
+ clicked: "clicked";
225
+ complained: "complained";
226
+ delivered: "delivered";
227
+ failed: "failed";
228
+ opened: "opened";
229
+ queued: "queued";
230
+ sent: "sent";
231
+ suppressed: "suppressed";
232
+ }>>;
233
+ errorMessage: z.ZodOptional<z.ZodString>;
234
+ sentAt: z.ZodString;
235
+ deliveredAt: z.ZodOptional<z.ZodString>;
236
+ bouncedAt: z.ZodOptional<z.ZodString>;
237
+ }, z.core.$strip>;
238
+ userRelation: {
239
+ type: "1:N";
240
+ userField: string;
241
+ };
242
+ sortByUpdated: true;
243
+ rbac: {
244
+ admin: {
245
+ any: "*"[];
246
+ };
247
+ user: {
248
+ own: "read"[];
249
+ };
250
+ anon: {};
251
+ };
252
+ };
253
+ email_suppression: {
254
+ schema: z.ZodObject<{
255
+ email: z.ZodString;
256
+ reason: z.ZodEnum<{
257
+ hard_bounce: "hard_bounce";
258
+ manual: "manual";
259
+ spam_complaint: "spam_complaint";
260
+ }>;
261
+ provider: z.ZodEnum<{
262
+ manual: "manual";
263
+ resend: "resend";
264
+ sendgrid: "sendgrid";
265
+ }>;
266
+ rawEvent: z.ZodOptional<z.ZodString>;
267
+ suppressedAt: z.ZodString;
268
+ }, z.core.$strip>;
269
+ userRelation: {
270
+ type: "global";
271
+ };
272
+ rbac: {
273
+ admin: {
274
+ any: "*"[];
275
+ };
276
+ user: {};
277
+ anon: {};
278
+ };
279
+ };
280
+ payment_customer: {
281
+ schema: z.ZodObject<{
282
+ userId: z.ZodString;
283
+ email: z.ZodOptional<z.ZodString>;
284
+ name: z.ZodOptional<z.ZodString>;
285
+ stripeCustomerId: z.ZodOptional<z.ZodString>;
286
+ dodoCustomerId: z.ZodOptional<z.ZodString>;
287
+ activeProvider: z.ZodOptional<z.ZodEnum<{
288
+ dodo: "dodo";
289
+ stripe: "stripe";
290
+ }>>;
291
+ planId: z.ZodDefault<z.ZodString>;
292
+ subscriptionId: z.ZodOptional<z.ZodString>;
293
+ subscriptionStatus: z.ZodDefault<z.ZodEnum<{
294
+ active: "active";
295
+ cancelled: "cancelled";
296
+ expired: "expired";
297
+ none: "none";
298
+ on_hold: "on_hold";
299
+ past_due: "past_due";
300
+ trialing: "trialing";
301
+ }>>;
302
+ currentPeriodStart: z.ZodOptional<z.ZodString>;
303
+ currentPeriodEnd: z.ZodOptional<z.ZodString>;
304
+ cancelAtPeriodEnd: z.ZodDefault<z.ZodBoolean>;
305
+ bonusAiTokens: z.ZodDefault<z.ZodNumber>;
306
+ credits: z.ZodDefault<z.ZodNumber>;
307
+ bonusMetrics: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
308
+ }, z.core.$strip>;
309
+ userRelation: {
310
+ type: "1:1";
311
+ userField: string;
312
+ };
313
+ rbac: {
314
+ admin: {
315
+ any: "*"[];
316
+ };
317
+ user: {
318
+ own: "read"[];
319
+ };
320
+ anon: {};
321
+ };
322
+ };
323
+ payment_usage: {
324
+ schema: z.ZodObject<{
325
+ userId: z.ZodString;
326
+ periodKey: z.ZodString;
327
+ planId: z.ZodDefault<z.ZodString>;
328
+ aiTokensUsed: z.ZodDefault<z.ZodNumber>;
329
+ aiInputTokens: z.ZodDefault<z.ZodNumber>;
330
+ aiOutputTokens: z.ZodDefault<z.ZodNumber>;
331
+ overageTokensReported: z.ZodDefault<z.ZodNumber>;
332
+ metricsUsed: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
333
+ lastUpdatedAt: z.ZodString;
334
+ }, z.core.$strip>;
335
+ userRelation: {
336
+ type: "1:N";
337
+ userField: string;
338
+ };
339
+ rbac: {
340
+ admin: {
341
+ any: "*"[];
342
+ };
343
+ user: {
344
+ own: "read"[];
345
+ };
346
+ anon: {};
347
+ };
348
+ };
349
+ payment_transaction: {
350
+ schema: z.ZodObject<{
351
+ userId: z.ZodString;
352
+ provider: z.ZodEnum<{
353
+ dodo: "dodo";
354
+ stripe: "stripe";
355
+ }>;
356
+ externalId: z.ZodString;
357
+ type: z.ZodEnum<{
358
+ "checkout.completed": "checkout.completed";
359
+ "invoice.created": "invoice.created";
360
+ "invoice.paid": "invoice.paid";
361
+ "payment.failed": "payment.failed";
362
+ "payment.succeeded": "payment.succeeded";
363
+ "subscription.active": "subscription.active";
364
+ "subscription.cancelled": "subscription.cancelled";
365
+ "subscription.past_due": "subscription.past_due";
366
+ "subscription.renewed": "subscription.renewed";
367
+ "subscription.tier_changed": "subscription.tier_changed";
368
+ }>;
369
+ amount: z.ZodOptional<z.ZodNumber>;
370
+ currency: z.ZodOptional<z.ZodString>;
371
+ productOrPlanId: z.ZodOptional<z.ZodString>;
372
+ rawEventType: z.ZodString;
373
+ processedAt: z.ZodString;
374
+ }, z.core.$strip>;
375
+ userRelation: {
376
+ type: "1:N";
377
+ userField: string;
378
+ };
379
+ sortByUpdated: true;
380
+ rbac: {
381
+ admin: {
382
+ any: "*"[];
383
+ };
384
+ user: {
385
+ own: "read"[];
386
+ };
387
+ anon: {};
388
+ };
389
+ };
390
+ };
391
+ export declare const collectionRegistry: Map<string, CollectionDefinition<any>>;
392
+ export declare const registerCollections: (defs: Record<string, CollectionDefinition<any>>, reset?: boolean) => void;
393
+ export declare const unregisterCollections: (names: string[]) => void;
394
+ export declare const getRegisteredCollectionNames: () => string[];
395
+ export declare const getCollectionDef: (name: string) => CollectionDefinition<any>;
396
+ export declare const getEffectiveRbac: (collection: string) => RbacConfig;
397
+ export type CoreCollections = typeof coreCollections;
398
+ export interface Register {
399
+ }
400
+ export type RegisteredCollections = Register extends {
401
+ collections: infer C extends Record<string, CollectionDefinition<any>>;
402
+ } ? CoreCollections & C : CoreCollections;
403
+ export type CollectionName = keyof RegisteredCollections | (string & {});
404
+ export type SelectModel<T extends CollectionName> = T extends keyof RegisteredCollections ? WithBaseFields<z.infer<RegisteredCollections[T]['schema']>> : Record<string, any> & BaseEntryFields;
405
+ export type InsertData<T extends CollectionName> = Omit<SelectModel<T>, 'id' | 'deleted' | 'createdAt' | 'updatedAt'> & {
406
+ id?: string;
407
+ deleted?: boolean;
408
+ };
409
+ export type UpdateData<T extends CollectionName> = Partial<Omit<SelectModel<T>, 'id' | 'createdAt'>>;
410
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}