@sylphx/contract 0.2.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 (571) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +21 -0
  3. package/README.md +164 -0
  4. package/dist/endpoint.d.ts +65 -0
  5. package/dist/endpoint.d.ts.map +1 -0
  6. package/dist/endpoint.js +22 -0
  7. package/dist/endpoints/admin-ai-playground.d.ts +93 -0
  8. package/dist/endpoints/admin-ai-playground.d.ts.map +1 -0
  9. package/dist/endpoints/admin-ai-playground.js +37 -0
  10. package/dist/endpoints/admin-anomalies.d.ts +108 -0
  11. package/dist/endpoints/admin-anomalies.d.ts.map +1 -0
  12. package/dist/endpoints/admin-anomalies.js +72 -0
  13. package/dist/endpoints/admin-apm.d.ts +102 -0
  14. package/dist/endpoints/admin-apm.d.ts.map +1 -0
  15. package/dist/endpoints/admin-apm.js +70 -0
  16. package/dist/endpoints/admin-audit.d.ts +714 -0
  17. package/dist/endpoints/admin-audit.d.ts.map +1 -0
  18. package/dist/endpoints/admin-audit.js +494 -0
  19. package/dist/endpoints/admin-billing.d.ts +82 -0
  20. package/dist/endpoints/admin-billing.d.ts.map +1 -0
  21. package/dist/endpoints/admin-billing.js +190 -0
  22. package/dist/endpoints/admin-bootstrap.d.ts +16 -0
  23. package/dist/endpoints/admin-bootstrap.d.ts.map +1 -0
  24. package/dist/endpoints/admin-bootstrap.js +28 -0
  25. package/dist/endpoints/admin-broadcasts.d.ts +105 -0
  26. package/dist/endpoints/admin-broadcasts.d.ts.map +1 -0
  27. package/dist/endpoints/admin-broadcasts.js +60 -0
  28. package/dist/endpoints/admin-builds.d.ts +33 -0
  29. package/dist/endpoints/admin-builds.d.ts.map +1 -0
  30. package/dist/endpoints/admin-builds.js +36 -0
  31. package/dist/endpoints/admin-config.d.ts +180 -0
  32. package/dist/endpoints/admin-config.d.ts.map +1 -0
  33. package/dist/endpoints/admin-config.js +108 -0
  34. package/dist/endpoints/admin-consent.d.ts +123 -0
  35. package/dist/endpoints/admin-consent.d.ts.map +1 -0
  36. package/dist/endpoints/admin-consent.js +126 -0
  37. package/dist/endpoints/admin-env-services.d.ts +28 -0
  38. package/dist/endpoints/admin-env-services.d.ts.map +1 -0
  39. package/dist/endpoints/admin-env-services.js +35 -0
  40. package/dist/endpoints/admin-impersonation.d.ts +105 -0
  41. package/dist/endpoints/admin-impersonation.d.ts.map +1 -0
  42. package/dist/endpoints/admin-impersonation.js +88 -0
  43. package/dist/endpoints/admin-invitations.d.ts +73 -0
  44. package/dist/endpoints/admin-invitations.d.ts.map +1 -0
  45. package/dist/endpoints/admin-invitations.js +55 -0
  46. package/dist/endpoints/admin-jwt-keys.d.ts +75 -0
  47. package/dist/endpoints/admin-jwt-keys.d.ts.map +1 -0
  48. package/dist/endpoints/admin-jwt-keys.js +63 -0
  49. package/dist/endpoints/admin-logs.d.ts +109 -0
  50. package/dist/endpoints/admin-logs.d.ts.map +1 -0
  51. package/dist/endpoints/admin-logs.js +78 -0
  52. package/dist/endpoints/admin-plans.d.ts +63 -0
  53. package/dist/endpoints/admin-plans.d.ts.map +1 -0
  54. package/dist/endpoints/admin-plans.js +47 -0
  55. package/dist/endpoints/admin-project-users.d.ts +148 -0
  56. package/dist/endpoints/admin-project-users.d.ts.map +1 -0
  57. package/dist/endpoints/admin-project-users.js +89 -0
  58. package/dist/endpoints/admin-projects.d.ts +124 -0
  59. package/dist/endpoints/admin-projects.d.ts.map +1 -0
  60. package/dist/endpoints/admin-projects.js +74 -0
  61. package/dist/endpoints/admin-quotas.d.ts +98 -0
  62. package/dist/endpoints/admin-quotas.d.ts.map +1 -0
  63. package/dist/endpoints/admin-quotas.js +67 -0
  64. package/dist/endpoints/admin-rate-limits.d.ts +50 -0
  65. package/dist/endpoints/admin-rate-limits.d.ts.map +1 -0
  66. package/dist/endpoints/admin-rate-limits.js +53 -0
  67. package/dist/endpoints/admin-reconcile.d.ts +28 -0
  68. package/dist/endpoints/admin-reconcile.d.ts.map +1 -0
  69. package/dist/endpoints/admin-reconcile.js +33 -0
  70. package/dist/endpoints/admin-resources.d.ts +51 -0
  71. package/dist/endpoints/admin-resources.d.ts.map +1 -0
  72. package/dist/endpoints/admin-resources.js +53 -0
  73. package/dist/endpoints/admin-secrets.d.ts +41 -0
  74. package/dist/endpoints/admin-secrets.d.ts.map +1 -0
  75. package/dist/endpoints/admin-secrets.js +33 -0
  76. package/dist/endpoints/admin-services.d.ts +29 -0
  77. package/dist/endpoints/admin-services.d.ts.map +1 -0
  78. package/dist/endpoints/admin-services.js +35 -0
  79. package/dist/endpoints/admin-tasks.d.ts +186 -0
  80. package/dist/endpoints/admin-tasks.d.ts.map +1 -0
  81. package/dist/endpoints/admin-tasks.js +67 -0
  82. package/dist/endpoints/admin-tenants.d.ts +26 -0
  83. package/dist/endpoints/admin-tenants.d.ts.map +1 -0
  84. package/dist/endpoints/admin-tenants.js +30 -0
  85. package/dist/endpoints/admin-traces.d.ts +124 -0
  86. package/dist/endpoints/admin-traces.d.ts.map +1 -0
  87. package/dist/endpoints/admin-traces.js +59 -0
  88. package/dist/endpoints/admin-users.d.ts +106 -0
  89. package/dist/endpoints/admin-users.d.ts.map +1 -0
  90. package/dist/endpoints/admin-users.js +83 -0
  91. package/dist/endpoints/admin-webhook-signature-versions.d.ts +59 -0
  92. package/dist/endpoints/admin-webhook-signature-versions.d.ts.map +1 -0
  93. package/dist/endpoints/admin-webhook-signature-versions.js +57 -0
  94. package/dist/endpoints/ai-admin.d.ts +30 -0
  95. package/dist/endpoints/ai-admin.d.ts.map +1 -0
  96. package/dist/endpoints/ai-admin.js +59 -0
  97. package/dist/endpoints/analytics-admin.d.ts +279 -0
  98. package/dist/endpoints/analytics-admin.d.ts.map +1 -0
  99. package/dist/endpoints/analytics-admin.js +308 -0
  100. package/dist/endpoints/analytics.d.ts +58 -0
  101. package/dist/endpoints/analytics.d.ts.map +1 -0
  102. package/dist/endpoints/analytics.js +43 -0
  103. package/dist/endpoints/audit-chain.d.ts +49 -0
  104. package/dist/endpoints/audit-chain.d.ts.map +1 -0
  105. package/dist/endpoints/audit-chain.js +29 -0
  106. package/dist/endpoints/audit.d.ts +50 -0
  107. package/dist/endpoints/audit.d.ts.map +1 -0
  108. package/dist/endpoints/audit.js +30 -0
  109. package/dist/endpoints/auth-admin.d.ts +65 -0
  110. package/dist/endpoints/auth-admin.d.ts.map +1 -0
  111. package/dist/endpoints/auth-admin.js +55 -0
  112. package/dist/endpoints/auth.d.ts +157 -0
  113. package/dist/endpoints/auth.d.ts.map +1 -0
  114. package/dist/endpoints/auth.js +214 -0
  115. package/dist/endpoints/backups.d.ts +51 -0
  116. package/dist/endpoints/backups.d.ts.map +1 -0
  117. package/dist/endpoints/backups.js +47 -0
  118. package/dist/endpoints/billing-console.d.ts +294 -0
  119. package/dist/endpoints/billing-console.d.ts.map +1 -0
  120. package/dist/endpoints/billing-console.js +167 -0
  121. package/dist/endpoints/billing-settings.d.ts +107 -0
  122. package/dist/endpoints/billing-settings.d.ts.map +1 -0
  123. package/dist/endpoints/billing-settings.js +117 -0
  124. package/dist/endpoints/branch-databases.d.ts +75 -0
  125. package/dist/endpoints/branch-databases.d.ts.map +1 -0
  126. package/dist/endpoints/branch-databases.js +61 -0
  127. package/dist/endpoints/challenge.d.ts +62 -0
  128. package/dist/endpoints/challenge.d.ts.map +1 -0
  129. package/dist/endpoints/challenge.js +52 -0
  130. package/dist/endpoints/ci-settings.d.ts +89 -0
  131. package/dist/endpoints/ci-settings.d.ts.map +1 -0
  132. package/dist/endpoints/ci-settings.js +78 -0
  133. package/dist/endpoints/consent-admin.d.ts +134 -0
  134. package/dist/endpoints/consent-admin.d.ts.map +1 -0
  135. package/dist/endpoints/consent-admin.js +83 -0
  136. package/dist/endpoints/databases.d.ts +251 -0
  137. package/dist/endpoints/databases.d.ts.map +1 -0
  138. package/dist/endpoints/databases.js +150 -0
  139. package/dist/endpoints/deployments.d.ts +280 -0
  140. package/dist/endpoints/deployments.d.ts.map +1 -0
  141. package/dist/endpoints/deployments.js +205 -0
  142. package/dist/endpoints/domains.d.ts +356 -0
  143. package/dist/endpoints/domains.d.ts.map +1 -0
  144. package/dist/endpoints/domains.js +149 -0
  145. package/dist/endpoints/edge-deployments.d.ts +92 -0
  146. package/dist/endpoints/edge-deployments.d.ts.map +1 -0
  147. package/dist/endpoints/edge-deployments.js +58 -0
  148. package/dist/endpoints/email-admin.d.ts +415 -0
  149. package/dist/endpoints/email-admin.d.ts.map +1 -0
  150. package/dist/endpoints/email-admin.js +253 -0
  151. package/dist/endpoints/email.d.ts +37 -0
  152. package/dist/endpoints/email.d.ts.map +1 -0
  153. package/dist/endpoints/email.js +42 -0
  154. package/dist/endpoints/engagement-admin.d.ts +98 -0
  155. package/dist/endpoints/engagement-admin.d.ts.map +1 -0
  156. package/dist/endpoints/engagement-admin.js +64 -0
  157. package/dist/endpoints/env-vars.d.ts +66 -0
  158. package/dist/endpoints/env-vars.d.ts.map +1 -0
  159. package/dist/endpoints/env-vars.js +47 -0
  160. package/dist/endpoints/environments.d.ts +456 -0
  161. package/dist/endpoints/environments.d.ts.map +1 -0
  162. package/dist/endpoints/environments.js +237 -0
  163. package/dist/endpoints/experiments.d.ts +500 -0
  164. package/dist/endpoints/experiments.d.ts.map +1 -0
  165. package/dist/endpoints/experiments.js +93 -0
  166. package/dist/endpoints/flags-admin.d.ts +74 -0
  167. package/dist/endpoints/flags-admin.d.ts.map +1 -0
  168. package/dist/endpoints/flags-admin.js +84 -0
  169. package/dist/endpoints/flags.d.ts +23 -0
  170. package/dist/endpoints/flags.d.ts.map +1 -0
  171. package/dist/endpoints/flags.js +17 -0
  172. package/dist/endpoints/github.d.ts +30 -0
  173. package/dist/endpoints/github.d.ts.map +1 -0
  174. package/dist/endpoints/github.js +37 -0
  175. package/dist/endpoints/image-opt.d.ts +43 -0
  176. package/dist/endpoints/image-opt.d.ts.map +1 -0
  177. package/dist/endpoints/image-opt.js +44 -0
  178. package/dist/endpoints/kv-admin.d.ts +58 -0
  179. package/dist/endpoints/kv-admin.d.ts.map +1 -0
  180. package/dist/endpoints/kv-admin.js +69 -0
  181. package/dist/endpoints/kv.d.ts +63 -0
  182. package/dist/endpoints/kv.d.ts.map +1 -0
  183. package/dist/endpoints/kv.js +82 -0
  184. package/dist/endpoints/monitoring-admin.d.ts +204 -0
  185. package/dist/endpoints/monitoring-admin.d.ts.map +1 -0
  186. package/dist/endpoints/monitoring-admin.js +119 -0
  187. package/dist/endpoints/monitoring.d.ts +63 -0
  188. package/dist/endpoints/monitoring.d.ts.map +1 -0
  189. package/dist/endpoints/monitoring.js +27 -0
  190. package/dist/endpoints/newsletter.d.ts +366 -0
  191. package/dist/endpoints/newsletter.d.ts.map +1 -0
  192. package/dist/endpoints/newsletter.js +232 -0
  193. package/dist/endpoints/notifications-admin.d.ts +268 -0
  194. package/dist/endpoints/notifications-admin.d.ts.map +1 -0
  195. package/dist/endpoints/notifications-admin.js +172 -0
  196. package/dist/endpoints/notifications.d.ts +225 -0
  197. package/dist/endpoints/notifications.d.ts.map +1 -0
  198. package/dist/endpoints/notifications.js +150 -0
  199. package/dist/endpoints/oidc.d.ts +67 -0
  200. package/dist/endpoints/oidc.d.ts.map +1 -0
  201. package/dist/endpoints/oidc.js +49 -0
  202. package/dist/endpoints/organizations.d.ts +702 -0
  203. package/dist/endpoints/organizations.d.ts.map +1 -0
  204. package/dist/endpoints/organizations.js +460 -0
  205. package/dist/endpoints/plans.d.ts +136 -0
  206. package/dist/endpoints/plans.d.ts.map +1 -0
  207. package/dist/endpoints/plans.js +83 -0
  208. package/dist/endpoints/privacy.d.ts +131 -0
  209. package/dist/endpoints/privacy.d.ts.map +1 -0
  210. package/dist/endpoints/privacy.js +98 -0
  211. package/dist/endpoints/project-manifest.d.ts +1044 -0
  212. package/dist/endpoints/project-manifest.d.ts.map +1 -0
  213. package/dist/endpoints/project-manifest.js +59 -0
  214. package/dist/endpoints/projects.d.ts +187 -0
  215. package/dist/endpoints/projects.d.ts.map +1 -0
  216. package/dist/endpoints/projects.js +58 -0
  217. package/dist/endpoints/rate-limits.d.ts +83 -0
  218. package/dist/endpoints/rate-limits.d.ts.map +1 -0
  219. package/dist/endpoints/rate-limits.js +54 -0
  220. package/dist/endpoints/realtime-admin.d.ts +42 -0
  221. package/dist/endpoints/realtime-admin.d.ts.map +1 -0
  222. package/dist/endpoints/realtime-admin.js +50 -0
  223. package/dist/endpoints/realtime.d.ts +35 -0
  224. package/dist/endpoints/realtime.d.ts.map +1 -0
  225. package/dist/endpoints/realtime.js +39 -0
  226. package/dist/endpoints/referrals-admin.d.ts +118 -0
  227. package/dist/endpoints/referrals-admin.d.ts.map +1 -0
  228. package/dist/endpoints/referrals-admin.js +59 -0
  229. package/dist/endpoints/refresh.d.ts +19 -0
  230. package/dist/endpoints/refresh.d.ts.map +1 -0
  231. package/dist/endpoints/refresh.js +25 -0
  232. package/dist/endpoints/regions.d.ts +41 -0
  233. package/dist/endpoints/regions.d.ts.map +1 -0
  234. package/dist/endpoints/regions.js +43 -0
  235. package/dist/endpoints/runners.d.ts +55 -0
  236. package/dist/endpoints/runners.d.ts.map +1 -0
  237. package/dist/endpoints/runners.js +45 -0
  238. package/dist/endpoints/saml.d.ts +147 -0
  239. package/dist/endpoints/saml.d.ts.map +1 -0
  240. package/dist/endpoints/saml.js +106 -0
  241. package/dist/endpoints/search.d.ts +62 -0
  242. package/dist/endpoints/search.d.ts.map +1 -0
  243. package/dist/endpoints/search.js +40 -0
  244. package/dist/endpoints/secrets.d.ts +95 -0
  245. package/dist/endpoints/secrets.d.ts.map +1 -0
  246. package/dist/endpoints/secrets.js +81 -0
  247. package/dist/endpoints/security.d.ts +231 -0
  248. package/dist/endpoints/security.d.ts.map +1 -0
  249. package/dist/endpoints/security.js +291 -0
  250. package/dist/endpoints/service-tokens.d.ts +392 -0
  251. package/dist/endpoints/service-tokens.d.ts.map +1 -0
  252. package/dist/endpoints/service-tokens.js +125 -0
  253. package/dist/endpoints/session-replay.d.ts +142 -0
  254. package/dist/endpoints/session-replay.d.ts.map +1 -0
  255. package/dist/endpoints/session-replay.js +53 -0
  256. package/dist/endpoints/storage-admin.d.ts +96 -0
  257. package/dist/endpoints/storage-admin.d.ts.map +1 -0
  258. package/dist/endpoints/storage-admin.js +113 -0
  259. package/dist/endpoints/storage.d.ts +167 -0
  260. package/dist/endpoints/storage.d.ts.map +1 -0
  261. package/dist/endpoints/storage.js +117 -0
  262. package/dist/endpoints/tasks.d.ts +141 -0
  263. package/dist/endpoints/tasks.d.ts.map +1 -0
  264. package/dist/endpoints/tasks.js +97 -0
  265. package/dist/endpoints/users.d.ts +103 -0
  266. package/dist/endpoints/users.d.ts.map +1 -0
  267. package/dist/endpoints/users.js +98 -0
  268. package/dist/endpoints/webhooks.d.ts +201 -0
  269. package/dist/endpoints/webhooks.d.ts.map +1 -0
  270. package/dist/endpoints/webhooks.js +120 -0
  271. package/dist/errors.d.ts +153 -0
  272. package/dist/errors.d.ts.map +1 -0
  273. package/dist/errors.js +73 -0
  274. package/dist/index.d.ts +12303 -0
  275. package/dist/index.d.ts.map +1 -0
  276. package/dist/index.js +390 -0
  277. package/dist/schemas/_primitives.d.ts +37 -0
  278. package/dist/schemas/_primitives.d.ts.map +1 -0
  279. package/dist/schemas/_primitives.js +38 -0
  280. package/dist/schemas/admin-ai-playground.d.ts +128 -0
  281. package/dist/schemas/admin-ai-playground.d.ts.map +1 -0
  282. package/dist/schemas/admin-ai-playground.js +84 -0
  283. package/dist/schemas/admin-anomalies.d.ts +131 -0
  284. package/dist/schemas/admin-anomalies.d.ts.map +1 -0
  285. package/dist/schemas/admin-anomalies.js +106 -0
  286. package/dist/schemas/admin-apm.d.ts +151 -0
  287. package/dist/schemas/admin-apm.d.ts.map +1 -0
  288. package/dist/schemas/admin-apm.js +96 -0
  289. package/dist/schemas/admin-audit.d.ts +625 -0
  290. package/dist/schemas/admin-audit.d.ts.map +1 -0
  291. package/dist/schemas/admin-audit.js +508 -0
  292. package/dist/schemas/admin-billing.d.ts +73 -0
  293. package/dist/schemas/admin-billing.d.ts.map +1 -0
  294. package/dist/schemas/admin-billing.js +60 -0
  295. package/dist/schemas/admin-bootstrap.d.ts +32 -0
  296. package/dist/schemas/admin-bootstrap.d.ts.map +1 -0
  297. package/dist/schemas/admin-bootstrap.js +37 -0
  298. package/dist/schemas/admin-broadcasts.d.ts +181 -0
  299. package/dist/schemas/admin-broadcasts.d.ts.map +1 -0
  300. package/dist/schemas/admin-broadcasts.js +93 -0
  301. package/dist/schemas/admin-builds.d.ts +108 -0
  302. package/dist/schemas/admin-builds.d.ts.map +1 -0
  303. package/dist/schemas/admin-builds.js +127 -0
  304. package/dist/schemas/admin-config.d.ts +248 -0
  305. package/dist/schemas/admin-config.d.ts.map +1 -0
  306. package/dist/schemas/admin-config.js +145 -0
  307. package/dist/schemas/admin-consent.d.ts +129 -0
  308. package/dist/schemas/admin-consent.d.ts.map +1 -0
  309. package/dist/schemas/admin-consent.js +76 -0
  310. package/dist/schemas/admin-env-services.d.ts +63 -0
  311. package/dist/schemas/admin-env-services.d.ts.map +1 -0
  312. package/dist/schemas/admin-env-services.js +81 -0
  313. package/dist/schemas/admin-impersonation.d.ts +150 -0
  314. package/dist/schemas/admin-impersonation.d.ts.map +1 -0
  315. package/dist/schemas/admin-impersonation.js +114 -0
  316. package/dist/schemas/admin-invitations.d.ts +119 -0
  317. package/dist/schemas/admin-invitations.d.ts.map +1 -0
  318. package/dist/schemas/admin-invitations.js +80 -0
  319. package/dist/schemas/admin-jwt-keys.d.ts +130 -0
  320. package/dist/schemas/admin-jwt-keys.d.ts.map +1 -0
  321. package/dist/schemas/admin-jwt-keys.js +83 -0
  322. package/dist/schemas/admin-logs.d.ts +170 -0
  323. package/dist/schemas/admin-logs.d.ts.map +1 -0
  324. package/dist/schemas/admin-logs.js +108 -0
  325. package/dist/schemas/admin-plans.d.ts +92 -0
  326. package/dist/schemas/admin-plans.d.ts.map +1 -0
  327. package/dist/schemas/admin-plans.js +62 -0
  328. package/dist/schemas/admin-project-users.d.ts +183 -0
  329. package/dist/schemas/admin-project-users.d.ts.map +1 -0
  330. package/dist/schemas/admin-project-users.js +108 -0
  331. package/dist/schemas/admin-projects.d.ts +237 -0
  332. package/dist/schemas/admin-projects.d.ts.map +1 -0
  333. package/dist/schemas/admin-projects.js +129 -0
  334. package/dist/schemas/admin-quotas.d.ts +161 -0
  335. package/dist/schemas/admin-quotas.d.ts.map +1 -0
  336. package/dist/schemas/admin-quotas.js +107 -0
  337. package/dist/schemas/admin-rate-limits.d.ts +90 -0
  338. package/dist/schemas/admin-rate-limits.d.ts.map +1 -0
  339. package/dist/schemas/admin-rate-limits.js +72 -0
  340. package/dist/schemas/admin-reconcile.d.ts +89 -0
  341. package/dist/schemas/admin-reconcile.d.ts.map +1 -0
  342. package/dist/schemas/admin-reconcile.js +86 -0
  343. package/dist/schemas/admin-resources.d.ts +129 -0
  344. package/dist/schemas/admin-resources.d.ts.map +1 -0
  345. package/dist/schemas/admin-resources.js +143 -0
  346. package/dist/schemas/admin-secrets.d.ts +113 -0
  347. package/dist/schemas/admin-secrets.d.ts.map +1 -0
  348. package/dist/schemas/admin-secrets.js +94 -0
  349. package/dist/schemas/admin-services.d.ts +71 -0
  350. package/dist/schemas/admin-services.d.ts.map +1 -0
  351. package/dist/schemas/admin-services.js +61 -0
  352. package/dist/schemas/admin-tasks.d.ts +239 -0
  353. package/dist/schemas/admin-tasks.d.ts.map +1 -0
  354. package/dist/schemas/admin-tasks.js +103 -0
  355. package/dist/schemas/admin-tenants.d.ts +45 -0
  356. package/dist/schemas/admin-tenants.d.ts.map +1 -0
  357. package/dist/schemas/admin-tenants.js +54 -0
  358. package/dist/schemas/admin-traces.d.ts +203 -0
  359. package/dist/schemas/admin-traces.d.ts.map +1 -0
  360. package/dist/schemas/admin-traces.js +128 -0
  361. package/dist/schemas/admin-users.d.ts +158 -0
  362. package/dist/schemas/admin-users.d.ts.map +1 -0
  363. package/dist/schemas/admin-users.js +110 -0
  364. package/dist/schemas/admin-webhook-signature-versions.d.ts +103 -0
  365. package/dist/schemas/admin-webhook-signature-versions.d.ts.map +1 -0
  366. package/dist/schemas/admin-webhook-signature-versions.js +73 -0
  367. package/dist/schemas/ai-admin.d.ts +39 -0
  368. package/dist/schemas/ai-admin.d.ts.map +1 -0
  369. package/dist/schemas/ai-admin.js +29 -0
  370. package/dist/schemas/ai.d.ts +120 -0
  371. package/dist/schemas/ai.d.ts.map +1 -0
  372. package/dist/schemas/ai.js +84 -0
  373. package/dist/schemas/analytics-admin.d.ts +104 -0
  374. package/dist/schemas/analytics-admin.d.ts.map +1 -0
  375. package/dist/schemas/analytics-admin.js +61 -0
  376. package/dist/schemas/analytics.d.ts +118 -0
  377. package/dist/schemas/analytics.d.ts.map +1 -0
  378. package/dist/schemas/analytics.js +80 -0
  379. package/dist/schemas/audit-chain.d.ts +81 -0
  380. package/dist/schemas/audit-chain.d.ts.map +1 -0
  381. package/dist/schemas/audit-chain.js +62 -0
  382. package/dist/schemas/auth-admin.d.ts +55 -0
  383. package/dist/schemas/auth-admin.d.ts.map +1 -0
  384. package/dist/schemas/auth-admin.js +48 -0
  385. package/dist/schemas/auth.d.ts +865 -0
  386. package/dist/schemas/auth.d.ts.map +1 -0
  387. package/dist/schemas/auth.js +815 -0
  388. package/dist/schemas/backups.d.ts +70 -0
  389. package/dist/schemas/backups.d.ts.map +1 -0
  390. package/dist/schemas/backups.js +38 -0
  391. package/dist/schemas/billing-console.d.ts +414 -0
  392. package/dist/schemas/billing-console.d.ts.map +1 -0
  393. package/dist/schemas/billing-console.js +298 -0
  394. package/dist/schemas/billing-settings.d.ts +156 -0
  395. package/dist/schemas/billing-settings.d.ts.map +1 -0
  396. package/dist/schemas/billing-settings.js +119 -0
  397. package/dist/schemas/billing.d.ts +211 -0
  398. package/dist/schemas/billing.d.ts.map +1 -0
  399. package/dist/schemas/billing.js +147 -0
  400. package/dist/schemas/branch-database.d.ts +98 -0
  401. package/dist/schemas/branch-database.d.ts.map +1 -0
  402. package/dist/schemas/branch-database.js +68 -0
  403. package/dist/schemas/challenge.d.ts +104 -0
  404. package/dist/schemas/challenge.d.ts.map +1 -0
  405. package/dist/schemas/challenge.js +74 -0
  406. package/dist/schemas/ci-settings.d.ts +122 -0
  407. package/dist/schemas/ci-settings.d.ts.map +1 -0
  408. package/dist/schemas/ci-settings.js +65 -0
  409. package/dist/schemas/consent-admin.d.ts +187 -0
  410. package/dist/schemas/consent-admin.d.ts.map +1 -0
  411. package/dist/schemas/consent-admin.js +114 -0
  412. package/dist/schemas/consent.d.ts +78 -0
  413. package/dist/schemas/consent.d.ts.map +1 -0
  414. package/dist/schemas/consent.js +68 -0
  415. package/dist/schemas/database.d.ts +104 -0
  416. package/dist/schemas/database.d.ts.map +1 -0
  417. package/dist/schemas/database.js +89 -0
  418. package/dist/schemas/deployment.d.ts +386 -0
  419. package/dist/schemas/deployment.d.ts.map +1 -0
  420. package/dist/schemas/deployment.js +282 -0
  421. package/dist/schemas/domain.d.ts +148 -0
  422. package/dist/schemas/domain.d.ts.map +1 -0
  423. package/dist/schemas/domain.js +86 -0
  424. package/dist/schemas/edge-deployments.d.ts +140 -0
  425. package/dist/schemas/edge-deployments.d.ts.map +1 -0
  426. package/dist/schemas/edge-deployments.js +87 -0
  427. package/dist/schemas/email-admin.d.ts +384 -0
  428. package/dist/schemas/email-admin.d.ts.map +1 -0
  429. package/dist/schemas/email-admin.js +313 -0
  430. package/dist/schemas/email.d.ts +46 -0
  431. package/dist/schemas/email.d.ts.map +1 -0
  432. package/dist/schemas/email.js +34 -0
  433. package/dist/schemas/engagement-admin.d.ts +148 -0
  434. package/dist/schemas/engagement-admin.d.ts.map +1 -0
  435. package/dist/schemas/engagement-admin.js +107 -0
  436. package/dist/schemas/env-var.d.ts +68 -0
  437. package/dist/schemas/env-var.d.ts.map +1 -0
  438. package/dist/schemas/env-var.js +52 -0
  439. package/dist/schemas/environment.d.ts +392 -0
  440. package/dist/schemas/environment.d.ts.map +1 -0
  441. package/dist/schemas/environment.js +211 -0
  442. package/dist/schemas/experiments.d.ts +540 -0
  443. package/dist/schemas/experiments.d.ts.map +1 -0
  444. package/dist/schemas/experiments.js +150 -0
  445. package/dist/schemas/flags-admin.d.ts +112 -0
  446. package/dist/schemas/flags-admin.d.ts.map +1 -0
  447. package/dist/schemas/flags-admin.js +84 -0
  448. package/dist/schemas/flags.d.ts +43 -0
  449. package/dist/schemas/flags.d.ts.map +1 -0
  450. package/dist/schemas/flags.js +27 -0
  451. package/dist/schemas/github.d.ts +34 -0
  452. package/dist/schemas/github.d.ts.map +1 -0
  453. package/dist/schemas/github.js +24 -0
  454. package/dist/schemas/ids.d.ts +39 -0
  455. package/dist/schemas/ids.d.ts.map +1 -0
  456. package/dist/schemas/ids.js +26 -0
  457. package/dist/schemas/image-opt.d.ts +70 -0
  458. package/dist/schemas/image-opt.d.ts.map +1 -0
  459. package/dist/schemas/image-opt.js +68 -0
  460. package/dist/schemas/kv-admin.d.ts +60 -0
  461. package/dist/schemas/kv-admin.d.ts.map +1 -0
  462. package/dist/schemas/kv-admin.js +43 -0
  463. package/dist/schemas/kv.d.ts +79 -0
  464. package/dist/schemas/kv.d.ts.map +1 -0
  465. package/dist/schemas/kv.js +54 -0
  466. package/dist/schemas/monitoring-admin.d.ts +314 -0
  467. package/dist/schemas/monitoring-admin.d.ts.map +1 -0
  468. package/dist/schemas/monitoring-admin.js +196 -0
  469. package/dist/schemas/monitoring.d.ts +143 -0
  470. package/dist/schemas/monitoring.d.ts.map +1 -0
  471. package/dist/schemas/monitoring.js +96 -0
  472. package/dist/schemas/newsletter.d.ts +366 -0
  473. package/dist/schemas/newsletter.d.ts.map +1 -0
  474. package/dist/schemas/newsletter.js +245 -0
  475. package/dist/schemas/notifications-admin.d.ts +337 -0
  476. package/dist/schemas/notifications-admin.d.ts.map +1 -0
  477. package/dist/schemas/notifications-admin.js +261 -0
  478. package/dist/schemas/notifications.d.ts +312 -0
  479. package/dist/schemas/notifications.d.ts.map +1 -0
  480. package/dist/schemas/notifications.js +235 -0
  481. package/dist/schemas/oidc.d.ts +74 -0
  482. package/dist/schemas/oidc.d.ts.map +1 -0
  483. package/dist/schemas/oidc.js +46 -0
  484. package/dist/schemas/organization-billing.d.ts +165 -0
  485. package/dist/schemas/organization-billing.d.ts.map +1 -0
  486. package/dist/schemas/organization-billing.js +156 -0
  487. package/dist/schemas/organization-project-users.d.ts +126 -0
  488. package/dist/schemas/organization-project-users.d.ts.map +1 -0
  489. package/dist/schemas/organization-project-users.js +88 -0
  490. package/dist/schemas/organization-projects.d.ts +129 -0
  491. package/dist/schemas/organization-projects.d.ts.map +1 -0
  492. package/dist/schemas/organization-projects.js +119 -0
  493. package/dist/schemas/organization-referrals.d.ts +129 -0
  494. package/dist/schemas/organization-referrals.d.ts.map +1 -0
  495. package/dist/schemas/organization-referrals.js +126 -0
  496. package/dist/schemas/organization-team.d.ts +123 -0
  497. package/dist/schemas/organization-team.d.ts.map +1 -0
  498. package/dist/schemas/organization-team.js +119 -0
  499. package/dist/schemas/organization.d.ts +210 -0
  500. package/dist/schemas/organization.d.ts.map +1 -0
  501. package/dist/schemas/organization.js +169 -0
  502. package/dist/schemas/plans.d.ts +211 -0
  503. package/dist/schemas/plans.d.ts.map +1 -0
  504. package/dist/schemas/plans.js +131 -0
  505. package/dist/schemas/privacy.d.ts +174 -0
  506. package/dist/schemas/privacy.d.ts.map +1 -0
  507. package/dist/schemas/privacy.js +132 -0
  508. package/dist/schemas/project-manifest.d.ts +1421 -0
  509. package/dist/schemas/project-manifest.d.ts.map +1 -0
  510. package/dist/schemas/project-manifest.js +318 -0
  511. package/dist/schemas/project.d.ts +132 -0
  512. package/dist/schemas/project.d.ts.map +1 -0
  513. package/dist/schemas/project.js +76 -0
  514. package/dist/schemas/realtime-admin.d.ts +51 -0
  515. package/dist/schemas/realtime-admin.d.ts.map +1 -0
  516. package/dist/schemas/realtime-admin.js +29 -0
  517. package/dist/schemas/realtime.d.ts +46 -0
  518. package/dist/schemas/realtime.d.ts.map +1 -0
  519. package/dist/schemas/realtime.js +32 -0
  520. package/dist/schemas/referrals-admin.d.ts +166 -0
  521. package/dist/schemas/referrals-admin.d.ts.map +1 -0
  522. package/dist/schemas/referrals-admin.js +123 -0
  523. package/dist/schemas/referrals.d.ts +148 -0
  524. package/dist/schemas/referrals.d.ts.map +1 -0
  525. package/dist/schemas/referrals.js +102 -0
  526. package/dist/schemas/refresh.d.ts +29 -0
  527. package/dist/schemas/refresh.d.ts.map +1 -0
  528. package/dist/schemas/refresh.js +18 -0
  529. package/dist/schemas/region.d.ts +118 -0
  530. package/dist/schemas/region.d.ts.map +1 -0
  531. package/dist/schemas/region.js +86 -0
  532. package/dist/schemas/resources.d.ts +345 -0
  533. package/dist/schemas/resources.d.ts.map +1 -0
  534. package/dist/schemas/resources.js +220 -0
  535. package/dist/schemas/runners.d.ts +93 -0
  536. package/dist/schemas/runners.d.ts.map +1 -0
  537. package/dist/schemas/runners.js +49 -0
  538. package/dist/schemas/saml.d.ts +254 -0
  539. package/dist/schemas/saml.d.ts.map +1 -0
  540. package/dist/schemas/saml.js +159 -0
  541. package/dist/schemas/search.d.ts +96 -0
  542. package/dist/schemas/search.d.ts.map +1 -0
  543. package/dist/schemas/search.js +57 -0
  544. package/dist/schemas/secret.d.ts +101 -0
  545. package/dist/schemas/secret.d.ts.map +1 -0
  546. package/dist/schemas/secret.js +79 -0
  547. package/dist/schemas/security.d.ts +345 -0
  548. package/dist/schemas/security.d.ts.map +1 -0
  549. package/dist/schemas/security.js +248 -0
  550. package/dist/schemas/service-tokens.d.ts +342 -0
  551. package/dist/schemas/service-tokens.d.ts.map +1 -0
  552. package/dist/schemas/service-tokens.js +101 -0
  553. package/dist/schemas/session-replay.d.ts +285 -0
  554. package/dist/schemas/session-replay.d.ts.map +1 -0
  555. package/dist/schemas/session-replay.js +145 -0
  556. package/dist/schemas/storage-admin.d.ts +351 -0
  557. package/dist/schemas/storage-admin.d.ts.map +1 -0
  558. package/dist/schemas/storage-admin.js +197 -0
  559. package/dist/schemas/storage.d.ts +257 -0
  560. package/dist/schemas/storage.d.ts.map +1 -0
  561. package/dist/schemas/storage.js +173 -0
  562. package/dist/schemas/tasks.d.ts +178 -0
  563. package/dist/schemas/tasks.d.ts.map +1 -0
  564. package/dist/schemas/tasks.js +102 -0
  565. package/dist/schemas/user.d.ts +103 -0
  566. package/dist/schemas/user.d.ts.map +1 -0
  567. package/dist/schemas/user.js +79 -0
  568. package/dist/schemas/webhooks.d.ts +259 -0
  569. package/dist/schemas/webhooks.d.ts.map +1 -0
  570. package/dist/schemas/webhooks.js +198 -0
  571. package/package.json +154 -0
@@ -0,0 +1,313 @@
1
+ /**
2
+ * Email Admin — Console-plane email templates / sending / scheduling / logs /
3
+ * suppressions / settings / admin-only operations. Distinct from the BaaS
4
+ * plane `email` namespace (BaaS covers `emailEndpoints.send/sendTemplated/
5
+ * sendToUser/isConfigured`); these admin surfaces operate on the platform
6
+ * database + Console UI and are only reachable by authenticated project
7
+ * members (or super-admins for `/admin/*`).
8
+ *
9
+ * Mirrors the wire shapes served at `/email/*` in
10
+ * `apps/api/src/server/platform/routes/email/*`.
11
+ */
12
+ import { Schema } from 'effect';
13
+ // ── Templates ──────────────────────────────────────────────────────────────
14
+ export const EmailTemplateType = Schema.Literal('transactional', 'newsletter');
15
+ export const EmailTemplateItem = Schema.Struct({
16
+ id: Schema.String,
17
+ key: Schema.String,
18
+ name: Schema.String,
19
+ description: Schema.NullOr(Schema.String),
20
+ type: Schema.String,
21
+ subject: Schema.String,
22
+ isActive: Schema.Boolean,
23
+ createdAt: Schema.String,
24
+ updatedAt: Schema.String,
25
+ });
26
+ export const ListTemplatesResult = Schema.Struct({
27
+ templates: Schema.Array(EmailTemplateItem),
28
+ total: Schema.Number,
29
+ });
30
+ /**
31
+ * Full template response — includes body text / variables. Returned from
32
+ * GET/POST/PATCH/DELETE on `/projects/:id/templates/:key`.
33
+ */
34
+ export const EmailTemplateDetail = Schema.Struct({
35
+ id: Schema.String,
36
+ key: Schema.String,
37
+ name: Schema.String,
38
+ description: Schema.NullOr(Schema.String),
39
+ type: Schema.String,
40
+ subject: Schema.String,
41
+ htmlBody: Schema.String,
42
+ textBody: Schema.NullOr(Schema.String),
43
+ variables: Schema.NullOr(Schema.Array(Schema.String)),
44
+ fromName: Schema.NullOr(Schema.String),
45
+ fromEmail: Schema.NullOr(Schema.String),
46
+ replyTo: Schema.NullOr(Schema.String),
47
+ isActive: Schema.Boolean,
48
+ createdAt: Schema.String,
49
+ updatedAt: Schema.String,
50
+ });
51
+ export const CreateTemplateInput = Schema.Struct({
52
+ key: Schema.String,
53
+ name: Schema.String,
54
+ description: Schema.optional(Schema.String),
55
+ type: Schema.optional(EmailTemplateType),
56
+ subject: Schema.String,
57
+ htmlBody: Schema.String,
58
+ textBody: Schema.optional(Schema.String),
59
+ variables: Schema.optional(Schema.Array(Schema.String)),
60
+ fromEmail: Schema.optional(Schema.String),
61
+ fromName: Schema.optional(Schema.String),
62
+ replyTo: Schema.optional(Schema.String),
63
+ isActive: Schema.optional(Schema.Boolean),
64
+ });
65
+ export const UpdateTemplateInput = Schema.Struct({
66
+ name: Schema.optional(Schema.String),
67
+ description: Schema.optional(Schema.NullOr(Schema.String)),
68
+ type: Schema.optional(EmailTemplateType),
69
+ subject: Schema.optional(Schema.String),
70
+ htmlBody: Schema.optional(Schema.String),
71
+ textBody: Schema.optional(Schema.NullOr(Schema.String)),
72
+ variables: Schema.optional(Schema.NullOr(Schema.Array(Schema.String))),
73
+ fromEmail: Schema.optional(Schema.NullOr(Schema.String)),
74
+ fromName: Schema.optional(Schema.NullOr(Schema.String)),
75
+ replyTo: Schema.optional(Schema.NullOr(Schema.String)),
76
+ isActive: Schema.optional(Schema.Boolean),
77
+ });
78
+ // ── Send (Console surface — per-project) ───────────────────────────────────
79
+ export const SendEmailAdminInput = Schema.Struct({
80
+ to: Schema.String,
81
+ subject: Schema.String,
82
+ html: Schema.String,
83
+ text: Schema.optional(Schema.String),
84
+ replyTo: Schema.optional(Schema.String),
85
+ });
86
+ export const SendEmailAdminResult = Schema.Struct({
87
+ success: Schema.Boolean,
88
+ id: Schema.optional(Schema.String),
89
+ });
90
+ export const SendTemplatedEmailAdminInput = Schema.Struct({
91
+ template: Schema.Literal('welcome', 'verification', 'password_reset', 'security_alert'),
92
+ to: Schema.String,
93
+ data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
94
+ });
95
+ export const SendTemplatedEmailAdminResult = Schema.Struct({
96
+ success: Schema.Boolean,
97
+ template: Schema.String,
98
+ });
99
+ export const SendToUserInput = Schema.Struct({
100
+ userId: Schema.String,
101
+ subject: Schema.String,
102
+ html: Schema.String,
103
+ text: Schema.optional(Schema.String),
104
+ });
105
+ // ── Scheduling ─────────────────────────────────────────────────────────────
106
+ export const ScheduleEmailInput = Schema.Struct({
107
+ to: Schema.String,
108
+ toName: Schema.optional(Schema.String),
109
+ subject: Schema.String,
110
+ html: Schema.optional(Schema.String),
111
+ text: Schema.optional(Schema.String),
112
+ replyTo: Schema.optional(Schema.String),
113
+ fromEmail: Schema.optional(Schema.String),
114
+ fromName: Schema.optional(Schema.String),
115
+ scheduledFor: Schema.String,
116
+ templateKey: Schema.optional(Schema.String),
117
+ templateData: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
118
+ idempotencyKey: Schema.optional(Schema.String),
119
+ metadata: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
120
+ });
121
+ export const ScheduleEmailResult = Schema.Struct({
122
+ id: Schema.String,
123
+ status: Schema.String,
124
+ scheduledFor: Schema.String,
125
+ qstashMessageId: Schema.NullOr(Schema.String),
126
+ });
127
+ export const ScheduledEmail = Schema.Struct({
128
+ id: Schema.String,
129
+ toEmail: Schema.String,
130
+ toName: Schema.NullOr(Schema.String),
131
+ subject: Schema.String,
132
+ status: Schema.String,
133
+ scheduledFor: Schema.String,
134
+ templateKey: Schema.NullOr(Schema.String),
135
+ sentAt: Schema.NullOr(Schema.String),
136
+ cancelledAt: Schema.NullOr(Schema.String),
137
+ error: Schema.NullOr(Schema.String),
138
+ createdAt: Schema.String,
139
+ });
140
+ export const ScheduledEmailDetail = Schema.Struct({
141
+ id: Schema.String,
142
+ toEmail: Schema.String,
143
+ toName: Schema.NullOr(Schema.String),
144
+ subject: Schema.String,
145
+ status: Schema.String,
146
+ scheduledFor: Schema.String,
147
+ templateKey: Schema.NullOr(Schema.String),
148
+ templateData: Schema.NullOr(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
149
+ metadata: Schema.NullOr(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
150
+ sentAt: Schema.NullOr(Schema.String),
151
+ cancelledAt: Schema.NullOr(Schema.String),
152
+ error: Schema.NullOr(Schema.String),
153
+ providerMessageId: Schema.NullOr(Schema.String),
154
+ createdAt: Schema.String,
155
+ });
156
+ export const ListScheduledEmailsQuery = Schema.Struct({
157
+ status: Schema.optional(Schema.String),
158
+ search: Schema.optional(Schema.String),
159
+ from: Schema.optional(Schema.String),
160
+ to: Schema.optional(Schema.String),
161
+ limit: Schema.optional(Schema.String),
162
+ offset: Schema.optional(Schema.String),
163
+ environmentId: Schema.optional(Schema.String),
164
+ });
165
+ export const ListScheduledEmailsResult = Schema.Struct({
166
+ emails: Schema.Array(ScheduledEmail),
167
+ total: Schema.Number,
168
+ limit: Schema.Number,
169
+ offset: Schema.Number,
170
+ });
171
+ export const CancelScheduledEmailResult = Schema.Struct({
172
+ id: Schema.String,
173
+ status: Schema.String,
174
+ cancelledAt: Schema.NullOr(Schema.String),
175
+ });
176
+ export const RescheduleEmailInput = Schema.Struct({
177
+ scheduledFor: Schema.String,
178
+ });
179
+ export const RescheduleEmailResult = Schema.Struct({
180
+ id: Schema.String,
181
+ status: Schema.String,
182
+ scheduledFor: Schema.String,
183
+ qstashMessageId: Schema.NullOr(Schema.String),
184
+ });
185
+ export const ScheduledEmailStatsQuery = Schema.Struct({
186
+ from: Schema.optional(Schema.String),
187
+ to: Schema.optional(Schema.String),
188
+ });
189
+ export const ScheduledEmailStatsResult = Schema.Struct({
190
+ total: Schema.Number,
191
+ pending: Schema.Number,
192
+ queued: Schema.Number,
193
+ sent: Schema.Number,
194
+ cancelled: Schema.Number,
195
+ failed: Schema.Number,
196
+ });
197
+ // ── Logs ───────────────────────────────────────────────────────────────────
198
+ export const EmailLogItem = Schema.Struct({
199
+ id: Schema.String,
200
+ object: Schema.Literal('email'),
201
+ to: Schema.Array(Schema.String),
202
+ from: Schema.String,
203
+ subject: Schema.String,
204
+ status: Schema.String,
205
+ created_at: Schema.String,
206
+ last_event: Schema.NullOr(Schema.String),
207
+ });
208
+ export const EmailLogEvent = Schema.Struct({
209
+ id: Schema.String,
210
+ type: Schema.String,
211
+ created_at: Schema.String,
212
+ });
213
+ export const EmailLogDetail = Schema.Struct({
214
+ id: Schema.String,
215
+ object: Schema.Literal('email'),
216
+ to: Schema.Array(Schema.String),
217
+ from: Schema.String,
218
+ subject: Schema.String,
219
+ status: Schema.String,
220
+ created_at: Schema.String,
221
+ last_event: Schema.NullOr(Schema.String),
222
+ reply_to: Schema.NullOr(Schema.String),
223
+ bcc: Schema.NullOr(Schema.Array(Schema.String)),
224
+ cc: Schema.NullOr(Schema.Array(Schema.String)),
225
+ delivered_at: Schema.NullOr(Schema.String),
226
+ bounced_at: Schema.NullOr(Schema.String),
227
+ complained_at: Schema.NullOr(Schema.String),
228
+ opened_at: Schema.NullOr(Schema.String),
229
+ clicked_at: Schema.NullOr(Schema.String),
230
+ bounce_type: Schema.NullOr(Schema.String),
231
+ error: Schema.NullOr(Schema.String),
232
+ events: Schema.Array(EmailLogEvent),
233
+ });
234
+ export const ListEmailLogsQuery = Schema.Struct({
235
+ cursor: Schema.optional(Schema.String),
236
+ limit: Schema.optional(Schema.String),
237
+ status: Schema.optional(Schema.Literal('queued', 'sent', 'delivered', 'bounced', 'complained', 'failed')),
238
+ email: Schema.optional(Schema.String),
239
+ from: Schema.optional(Schema.String),
240
+ to: Schema.optional(Schema.String),
241
+ });
242
+ export const ListEmailLogsResult = Schema.Struct({
243
+ data: Schema.Array(EmailLogItem),
244
+ nextCursor: Schema.NullOr(Schema.String),
245
+ });
246
+ // ── Suppressions ───────────────────────────────────────────────────────────
247
+ export const SuppressionReason = Schema.Literal('hard_bounce', 'complaint', 'manual');
248
+ export const SuppressionItem = Schema.Struct({
249
+ id: Schema.String,
250
+ email: Schema.String,
251
+ reason: SuppressionReason,
252
+ can_unsuppress: Schema.Boolean,
253
+ suppressed_at: Schema.String,
254
+ unsuppressed_at: Schema.NullOr(Schema.String),
255
+ created_at: Schema.String,
256
+ });
257
+ export const ListSuppressionsQuery = Schema.Struct({
258
+ cursor: Schema.optional(Schema.String),
259
+ limit: Schema.optional(Schema.String),
260
+ reason: Schema.optional(SuppressionReason),
261
+ });
262
+ export const ListSuppressionsResult = Schema.Struct({
263
+ data: Schema.Array(SuppressionItem),
264
+ nextCursor: Schema.NullOr(Schema.String),
265
+ });
266
+ export const AddSuppressionInput = Schema.Struct({
267
+ email: Schema.String,
268
+ reason: Schema.optional(Schema.Literal('manual')),
269
+ });
270
+ // ── Settings (per-project email config) ────────────────────────────────────
271
+ export const EmailSettings = Schema.Struct({
272
+ defaultFromEmail: Schema.NullOr(Schema.String),
273
+ defaultFromName: Schema.NullOr(Schema.String),
274
+ webhookUrl: Schema.NullOr(Schema.String),
275
+ webhookSecretPrefix: Schema.NullOr(Schema.String),
276
+ trackOpens: Schema.Boolean,
277
+ trackClicks: Schema.Boolean,
278
+ });
279
+ export const UpdateEmailSettingsInput = Schema.Struct({
280
+ defaultFromEmail: Schema.optional(Schema.NullOr(Schema.String)),
281
+ defaultFromName: Schema.optional(Schema.NullOr(Schema.String)),
282
+ webhookUrl: Schema.optional(Schema.NullOr(Schema.String)),
283
+ rotateWebhookSecret: Schema.optional(Schema.Boolean),
284
+ trackOpens: Schema.optional(Schema.Boolean),
285
+ trackClicks: Schema.optional(Schema.Boolean),
286
+ });
287
+ // ── Admin (super-admin platform ops) ───────────────────────────────────────
288
+ export const AdminSendEmailInput = Schema.Struct({
289
+ to: Schema.Union(Schema.String, Schema.Array(Schema.String)),
290
+ subject: Schema.String,
291
+ html: Schema.String,
292
+ text: Schema.optional(Schema.String),
293
+ });
294
+ export const AdminSendEmailResult = Schema.Struct({
295
+ success: Schema.Boolean,
296
+ id: Schema.optional(Schema.String),
297
+ sentTo: Schema.Number,
298
+ });
299
+ export const AdminEmailStatsResult = Schema.Struct({
300
+ period: Schema.Struct({
301
+ days: Schema.Number,
302
+ since: Schema.String,
303
+ }),
304
+ emails: Schema.Struct({
305
+ total: Schema.Number,
306
+ successful: Schema.Number,
307
+ failed: Schema.Number,
308
+ successRate: Schema.Number,
309
+ }),
310
+ });
311
+ // Note: `GET /email/configured` is served by the shared BaaS
312
+ // `emailEndpoints.isConfigured` — the Console route mounts the same contract
313
+ // behind `platformAuth`. No admin-specific schema is needed here.
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Email — BaaS plane transactional send. Mirrors `@sylphx/sdk/email.ts`.
3
+ */
4
+ import { Schema } from 'effect';
5
+ export declare const EmailMessageId: Schema.brand<typeof Schema.String, "EmailMessageId">;
6
+ export type EmailMessageId = typeof EmailMessageId.Type;
7
+ export declare const SendEmailInput: Schema.Struct<{
8
+ to: typeof Schema.String;
9
+ subject: typeof Schema.String;
10
+ html: typeof Schema.String;
11
+ text: Schema.optional<typeof Schema.String>;
12
+ replyTo: Schema.optional<typeof Schema.String>;
13
+ fromEmail: Schema.optional<typeof Schema.String>;
14
+ fromName: Schema.optional<typeof Schema.String>;
15
+ headers: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
16
+ }>;
17
+ export type SendEmailInput = typeof SendEmailInput.Type;
18
+ export declare const SendEmailResult: Schema.Struct<{
19
+ id: typeof Schema.String;
20
+ success: typeof Schema.Boolean;
21
+ }>;
22
+ export type SendEmailResult = typeof SendEmailResult.Type;
23
+ export declare const EmailTemplate: Schema.Literal<["welcome", "verification", "password_reset", "security_alert"]>;
24
+ export type EmailTemplate = typeof EmailTemplate.Type;
25
+ export declare const SendTemplatedEmailInput: Schema.Struct<{
26
+ template: Schema.Literal<["welcome", "verification", "password_reset", "security_alert"]>;
27
+ to: typeof Schema.String;
28
+ data: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
29
+ }>;
30
+ export type SendTemplatedEmailInput = typeof SendTemplatedEmailInput.Type;
31
+ /** `POST /email/send-template` — mirrors `SendEmailResult` envelope. */
32
+ export declare const SendTemplatedEmailResult: Schema.Struct<{
33
+ id: typeof Schema.String;
34
+ success: typeof Schema.Boolean;
35
+ }>;
36
+ export type SendTemplatedEmailResult = typeof SendEmailResult.Type;
37
+ export declare const SendEmailToUserInput: Schema.Struct<{
38
+ userId: typeof Schema.String;
39
+ subject: typeof Schema.String;
40
+ html: typeof Schema.String;
41
+ text: Schema.optional<typeof Schema.String>;
42
+ }>;
43
+ export type SendEmailToUserInput = typeof SendEmailToUserInput.Type;
44
+ export declare const EmailConfiguredResult: typeof Schema.Boolean;
45
+ export type EmailConfiguredResult = typeof EmailConfiguredResult.Type;
46
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/schemas/email.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,cAAc,sDAAqD,CAAA;AAChF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,cAAc;;;;;;;;;EASzB,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,eAAe;;;EAG1B,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,aAAa,iFAKzB,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD,eAAO,MAAM,uBAAuB;;;;EAIlC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA;AAEzE,wEAAwE;AACxE,eAAO,MAAM,wBAAwB;;;EAAkB,CAAA;AACvD,MAAM,MAAM,wBAAwB,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAElE,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,qBAAqB,uBAAiB,CAAA;AAEnD,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Email — BaaS plane transactional send. Mirrors `@sylphx/sdk/email.ts`.
3
+ */
4
+ import { Schema } from 'effect';
5
+ export const EmailMessageId = Schema.String.pipe(Schema.brand('EmailMessageId'));
6
+ export const SendEmailInput = Schema.Struct({
7
+ to: Schema.String,
8
+ subject: Schema.String,
9
+ html: Schema.String,
10
+ text: Schema.optional(Schema.String),
11
+ replyTo: Schema.optional(Schema.String),
12
+ fromEmail: Schema.optional(Schema.String),
13
+ fromName: Schema.optional(Schema.String),
14
+ headers: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.String })),
15
+ });
16
+ export const SendEmailResult = Schema.Struct({
17
+ id: Schema.String,
18
+ success: Schema.Boolean,
19
+ });
20
+ export const EmailTemplate = Schema.Literal('welcome', 'verification', 'password_reset', 'security_alert');
21
+ export const SendTemplatedEmailInput = Schema.Struct({
22
+ template: EmailTemplate,
23
+ to: Schema.String,
24
+ data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
25
+ });
26
+ /** `POST /email/send-template` — mirrors `SendEmailResult` envelope. */
27
+ export const SendTemplatedEmailResult = SendEmailResult;
28
+ export const SendEmailToUserInput = Schema.Struct({
29
+ userId: Schema.String,
30
+ subject: Schema.String,
31
+ html: Schema.String,
32
+ text: Schema.optional(Schema.String),
33
+ });
34
+ export const EmailConfiguredResult = Schema.Boolean;
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Engagement Admin — Console-plane gamification config + overrides + stats.
3
+ * Distinct from the BaaS-plane engagement API that customer SDKs consume.
4
+ * Base configs are defined in customer code and synced to the platform on
5
+ * provider init; Console is read-only + override-only.
6
+ *
7
+ * Mirrors the wire shapes served at `/engagement/*` in
8
+ * `apps/api/src/server/platform/routes/engagement.ts`. Streaks / leaderboards /
9
+ * achievements are stored as JSON blobs; the contract exposes them as
10
+ * permissive records to avoid drifting from customer-defined shapes.
11
+ */
12
+ import { Schema } from 'effect';
13
+ export declare const EngagementEntityType: Schema.Literal<["streak", "leaderboard", "achievement", "all"]>;
14
+ export type EngagementEntityType = typeof EngagementEntityType.Type;
15
+ /** Base config (raw from customer code, synced on provider init). */
16
+ export declare const EngagementBaseConfig: Schema.Struct<{
17
+ streaks: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
18
+ leaderboards: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
19
+ achievements: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
20
+ achievementCategories: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
21
+ }>;
22
+ export type EngagementBaseConfig = typeof EngagementBaseConfig.Type;
23
+ /** Resolved config (base + Console overrides, disabled entities filtered out). */
24
+ export declare const EngagementResolvedConfig: Schema.Struct<{
25
+ streaks: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
26
+ leaderboards: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
27
+ achievements: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
28
+ }>;
29
+ export type EngagementResolvedConfig = typeof EngagementResolvedConfig.Type;
30
+ export declare const StreakOverride: Schema.Struct<{
31
+ name: Schema.optional<typeof Schema.String>;
32
+ description: Schema.optional<typeof Schema.String>;
33
+ gracePeriodHours: Schema.optional<typeof Schema.Number>;
34
+ maxValue: Schema.optional<typeof Schema.Number>;
35
+ resetOnMiss: Schema.optional<typeof Schema.Boolean>;
36
+ enabled: Schema.optional<typeof Schema.Boolean>;
37
+ }>;
38
+ export type StreakOverride = typeof StreakOverride.Type;
39
+ export declare const LeaderboardOverride: Schema.Struct<{
40
+ name: Schema.optional<typeof Schema.String>;
41
+ description: Schema.optional<typeof Schema.String>;
42
+ maxEntries: Schema.optional<typeof Schema.Number>;
43
+ sortDirection: Schema.optional<Schema.Literal<["asc", "desc"]>>;
44
+ enabled: Schema.optional<typeof Schema.Boolean>;
45
+ }>;
46
+ export type LeaderboardOverride = typeof LeaderboardOverride.Type;
47
+ export declare const AchievementOverride: Schema.Struct<{
48
+ name: Schema.optional<typeof Schema.String>;
49
+ description: Schema.optional<typeof Schema.String>;
50
+ unlockedDescription: Schema.optional<typeof Schema.String>;
51
+ points: Schema.optional<typeof Schema.Number>;
52
+ tier: Schema.optional<Schema.Literal<["bronze", "silver", "gold", "platinum", "diamond"]>>;
53
+ secret: Schema.optional<typeof Schema.Boolean>;
54
+ enabled: Schema.optional<typeof Schema.Boolean>;
55
+ }>;
56
+ export type AchievementOverride = typeof AchievementOverride.Type;
57
+ export declare const EngagementProjectQuery: Schema.Struct<{
58
+ projectId: typeof Schema.String;
59
+ }>;
60
+ export type EngagementProjectQuery = typeof EngagementProjectQuery.Type;
61
+ export declare const UpdateStreakOverrideInput: Schema.Struct<{
62
+ projectId: typeof Schema.String;
63
+ streakId: typeof Schema.String;
64
+ override: Schema.Struct<{
65
+ name: Schema.optional<typeof Schema.String>;
66
+ description: Schema.optional<typeof Schema.String>;
67
+ gracePeriodHours: Schema.optional<typeof Schema.Number>;
68
+ maxValue: Schema.optional<typeof Schema.Number>;
69
+ resetOnMiss: Schema.optional<typeof Schema.Boolean>;
70
+ enabled: Schema.optional<typeof Schema.Boolean>;
71
+ }>;
72
+ }>;
73
+ export type UpdateStreakOverrideInput = typeof UpdateStreakOverrideInput.Type;
74
+ export declare const UpdateLeaderboardOverrideInput: Schema.Struct<{
75
+ projectId: typeof Schema.String;
76
+ leaderboardId: typeof Schema.String;
77
+ override: Schema.Struct<{
78
+ name: Schema.optional<typeof Schema.String>;
79
+ description: Schema.optional<typeof Schema.String>;
80
+ maxEntries: Schema.optional<typeof Schema.Number>;
81
+ sortDirection: Schema.optional<Schema.Literal<["asc", "desc"]>>;
82
+ enabled: Schema.optional<typeof Schema.Boolean>;
83
+ }>;
84
+ }>;
85
+ export type UpdateLeaderboardOverrideInput = typeof UpdateLeaderboardOverrideInput.Type;
86
+ export declare const UpdateAchievementOverrideInput: Schema.Struct<{
87
+ projectId: typeof Schema.String;
88
+ achievementId: typeof Schema.String;
89
+ override: Schema.Struct<{
90
+ name: Schema.optional<typeof Schema.String>;
91
+ description: Schema.optional<typeof Schema.String>;
92
+ unlockedDescription: Schema.optional<typeof Schema.String>;
93
+ points: Schema.optional<typeof Schema.Number>;
94
+ tier: Schema.optional<Schema.Literal<["bronze", "silver", "gold", "platinum", "diamond"]>>;
95
+ secret: Schema.optional<typeof Schema.Boolean>;
96
+ enabled: Schema.optional<typeof Schema.Boolean>;
97
+ }>;
98
+ }>;
99
+ export type UpdateAchievementOverrideInput = typeof UpdateAchievementOverrideInput.Type;
100
+ export declare const ClearOverridesInput: Schema.Struct<{
101
+ projectId: typeof Schema.String;
102
+ entityType: Schema.optional<Schema.Literal<["streak", "leaderboard", "achievement", "all"]>>;
103
+ entityId: Schema.optional<typeof Schema.String>;
104
+ }>;
105
+ export type ClearOverridesInput = typeof ClearOverridesInput.Type;
106
+ export declare const GetEngagementConfigResult: Schema.Struct<{
107
+ exists: typeof Schema.Boolean;
108
+ base: Schema.Struct<{
109
+ streaks: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
110
+ leaderboards: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
111
+ achievements: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
112
+ achievementCategories: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
113
+ }>;
114
+ resolved: Schema.Struct<{
115
+ streaks: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
116
+ leaderboards: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
117
+ achievements: Schema.Array$<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
118
+ }>;
119
+ overrides: Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
120
+ lastSyncedAt: Schema.NullOr<typeof Schema.String>;
121
+ }>;
122
+ export type GetEngagementConfigResult = typeof GetEngagementConfigResult.Type;
123
+ export declare const EngagementSuccessResult: Schema.Struct<{
124
+ success: typeof Schema.Boolean;
125
+ }>;
126
+ export type EngagementSuccessResult = typeof EngagementSuccessResult.Type;
127
+ export declare const GetEngagementStatsResult: Schema.Struct<{
128
+ config: Schema.Struct<{
129
+ exists: typeof Schema.Boolean;
130
+ lastSyncedAt: Schema.NullOr<typeof Schema.String>;
131
+ streakCount: typeof Schema.Number;
132
+ leaderboardCount: typeof Schema.Number;
133
+ achievementCount: typeof Schema.Number;
134
+ }>;
135
+ streaks: Schema.Struct<{
136
+ totalUsers: typeof Schema.Number;
137
+ activeStreaks: typeof Schema.Number;
138
+ }>;
139
+ leaderboards: Schema.Struct<{
140
+ totalParticipants: typeof Schema.Number;
141
+ }>;
142
+ achievements: Schema.Struct<{
143
+ totalProgress: typeof Schema.Number;
144
+ totalUnlocked: typeof Schema.Number;
145
+ }>;
146
+ }>;
147
+ export type GetEngagementStatsResult = typeof GetEngagementStatsResult.Type;
148
+ //# sourceMappingURL=engagement-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engagement-admin.d.ts","sourceRoot":"","sources":["../../src/schemas/engagement-admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,eAAO,MAAM,oBAAoB,iEAAgE,CAAA;AACjG,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,qEAAqE;AACrE,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,kFAAkF;AAClF,eAAO,MAAM,wBAAwB;;;;EAInC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAI3E,eAAO,MAAM,cAAc;;;;;;;EAOzB,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,mBAAmB;;;;;;EAM9B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAEjE,eAAO,MAAM,mBAAmB;;;;;;;;EAQ9B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAIjE,eAAO,MAAM,sBAAsB;;EAEjC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,eAAO,MAAM,yBAAyB;;;;;;;;;;;EAIpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAE7E,eAAO,MAAM,8BAA8B;;;;;;;;;;EAIzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAC,IAAI,CAAA;AAEvF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;EAIzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAC,IAAI,CAAA;AAEvF,eAAO,MAAM,mBAAmB;;;;EAI9B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAIjE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAMpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAE7E,eAAO,MAAM,uBAAuB;;EAElC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;EAmBnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Engagement Admin — Console-plane gamification config + overrides + stats.
3
+ * Distinct from the BaaS-plane engagement API that customer SDKs consume.
4
+ * Base configs are defined in customer code and synced to the platform on
5
+ * provider init; Console is read-only + override-only.
6
+ *
7
+ * Mirrors the wire shapes served at `/engagement/*` in
8
+ * `apps/api/src/server/platform/routes/engagement.ts`. Streaks / leaderboards /
9
+ * achievements are stored as JSON blobs; the contract exposes them as
10
+ * permissive records to avoid drifting from customer-defined shapes.
11
+ */
12
+ import { Schema } from 'effect';
13
+ const OpaqueRecord = Schema.Record({ key: Schema.String, value: Schema.Unknown });
14
+ export const EngagementEntityType = Schema.Literal('streak', 'leaderboard', 'achievement', 'all');
15
+ /** Base config (raw from customer code, synced on provider init). */
16
+ export const EngagementBaseConfig = Schema.Struct({
17
+ streaks: Schema.Array(OpaqueRecord),
18
+ leaderboards: Schema.Array(OpaqueRecord),
19
+ achievements: Schema.Array(OpaqueRecord),
20
+ achievementCategories: Schema.Array(OpaqueRecord),
21
+ });
22
+ /** Resolved config (base + Console overrides, disabled entities filtered out). */
23
+ export const EngagementResolvedConfig = Schema.Struct({
24
+ streaks: Schema.Array(OpaqueRecord),
25
+ leaderboards: Schema.Array(OpaqueRecord),
26
+ achievements: Schema.Array(OpaqueRecord),
27
+ });
28
+ // ── Overrides ─────────────────────────────────────────────────────────────
29
+ export const StreakOverride = Schema.Struct({
30
+ name: Schema.optional(Schema.String),
31
+ description: Schema.optional(Schema.String),
32
+ gracePeriodHours: Schema.optional(Schema.Number),
33
+ maxValue: Schema.optional(Schema.Number),
34
+ resetOnMiss: Schema.optional(Schema.Boolean),
35
+ enabled: Schema.optional(Schema.Boolean),
36
+ });
37
+ export const LeaderboardOverride = Schema.Struct({
38
+ name: Schema.optional(Schema.String),
39
+ description: Schema.optional(Schema.String),
40
+ maxEntries: Schema.optional(Schema.Number),
41
+ sortDirection: Schema.optional(Schema.Literal('asc', 'desc')),
42
+ enabled: Schema.optional(Schema.Boolean),
43
+ });
44
+ export const AchievementOverride = Schema.Struct({
45
+ name: Schema.optional(Schema.String),
46
+ description: Schema.optional(Schema.String),
47
+ unlockedDescription: Schema.optional(Schema.String),
48
+ points: Schema.optional(Schema.Number),
49
+ tier: Schema.optional(Schema.Literal('bronze', 'silver', 'gold', 'platinum', 'diamond')),
50
+ secret: Schema.optional(Schema.Boolean),
51
+ enabled: Schema.optional(Schema.Boolean),
52
+ });
53
+ // ── Requests ──────────────────────────────────────────────────────────────
54
+ export const EngagementProjectQuery = Schema.Struct({
55
+ projectId: Schema.String,
56
+ });
57
+ export const UpdateStreakOverrideInput = Schema.Struct({
58
+ projectId: Schema.String,
59
+ streakId: Schema.String,
60
+ override: StreakOverride,
61
+ });
62
+ export const UpdateLeaderboardOverrideInput = Schema.Struct({
63
+ projectId: Schema.String,
64
+ leaderboardId: Schema.String,
65
+ override: LeaderboardOverride,
66
+ });
67
+ export const UpdateAchievementOverrideInput = Schema.Struct({
68
+ projectId: Schema.String,
69
+ achievementId: Schema.String,
70
+ override: AchievementOverride,
71
+ });
72
+ export const ClearOverridesInput = Schema.Struct({
73
+ projectId: Schema.String,
74
+ entityType: Schema.optional(EngagementEntityType),
75
+ entityId: Schema.optional(Schema.String),
76
+ });
77
+ // ── Responses ─────────────────────────────────────────────────────────────
78
+ export const GetEngagementConfigResult = Schema.Struct({
79
+ exists: Schema.Boolean,
80
+ base: EngagementBaseConfig,
81
+ resolved: EngagementResolvedConfig,
82
+ overrides: Schema.NullOr(OpaqueRecord),
83
+ lastSyncedAt: Schema.NullOr(Schema.String),
84
+ });
85
+ export const EngagementSuccessResult = Schema.Struct({
86
+ success: Schema.Boolean,
87
+ });
88
+ export const GetEngagementStatsResult = Schema.Struct({
89
+ config: Schema.Struct({
90
+ exists: Schema.Boolean,
91
+ lastSyncedAt: Schema.NullOr(Schema.String),
92
+ streakCount: Schema.Number,
93
+ leaderboardCount: Schema.Number,
94
+ achievementCount: Schema.Number,
95
+ }),
96
+ streaks: Schema.Struct({
97
+ totalUsers: Schema.Number,
98
+ activeStreaks: Schema.Number,
99
+ }),
100
+ leaderboards: Schema.Struct({
101
+ totalParticipants: Schema.Number,
102
+ }),
103
+ achievements: Schema.Struct({
104
+ totalProgress: Schema.Number,
105
+ totalUnlocked: Schema.Number,
106
+ }),
107
+ });