@hexclave/shared 1.0.60 → 1.0.62

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 (157) hide show
  1. package/dist/{admin-interface-BxUHaniY.d.ts → admin-interface-D63SFHX_.d.ts} +94 -12
  2. package/dist/admin-interface-D63SFHX_.d.ts.map +1 -0
  3. package/dist/{admin-metrics-DQ7vvSym.d.ts → admin-metrics-bsOkw4YQ.d.ts} +16 -16
  4. package/dist/{admin-metrics-DQ7vvSym.d.ts.map → admin-metrics-bsOkw4YQ.d.ts.map} +1 -1
  5. package/dist/ai/unified-prompts/reminders.js +1 -1
  6. package/dist/ai/unified-prompts/reminders.js.map +1 -1
  7. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  8. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +12 -1
  9. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  10. package/dist/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.d.ts +5 -0
  11. package/dist/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.d.ts.map +1 -0
  12. package/dist/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.js +128 -0
  13. package/dist/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.js.map +1 -0
  14. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.d.ts +1 -1
  15. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -0
  16. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  17. package/dist/ai/unified-prompts/skill-site-prompt.d.ts +3 -1
  18. package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  19. package/dist/ai/unified-prompts/skill-site-prompt.js +11 -0
  20. package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  21. package/dist/apps/apps-config.d.ts +6 -0
  22. package/dist/apps/apps-config.d.ts.map +1 -1
  23. package/dist/apps/apps-config.js +6 -0
  24. package/dist/apps/apps-config.js.map +1 -1
  25. package/dist/{client-interface-D-cO5E3C.d.ts → client-interface-DvkciaL0.d.ts} +10 -10
  26. package/dist/{client-interface-D-cO5E3C.d.ts.map → client-interface-DvkciaL0.d.ts.map} +1 -1
  27. package/dist/config/schema-fuzzer.test.js +38 -1
  28. package/dist/config/schema-fuzzer.test.js.map +1 -1
  29. package/dist/config/schema.d.ts +2 -2
  30. package/dist/config/schema.js +45 -0
  31. package/dist/config/schema.js.map +1 -1
  32. package/dist/config-authoring.d.ts +1 -1
  33. package/dist/{current-user-Cg6by3KK.d.ts → current-user-BBoN3hsn.d.ts} +13 -13
  34. package/dist/{current-user-Cg6by3KK.d.ts.map → current-user-BBoN3hsn.d.ts.map} +1 -1
  35. package/dist/{email-outbox-B3lyx4Eg.d.ts → email-outbox-CqzwInBL.d.ts} +207 -207
  36. package/dist/{email-outbox-B3lyx4Eg.d.ts.map → email-outbox-CqzwInBL.d.ts.map} +1 -1
  37. package/dist/esm/ai/unified-prompts/reminders.js +1 -1
  38. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -1
  39. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  40. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +12 -1
  41. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  42. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.d.ts +5 -0
  43. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.d.ts.map +1 -0
  44. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.js +128 -0
  45. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.js.map +1 -0
  46. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.d.ts +1 -1
  47. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -0
  48. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  49. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts +3 -1
  50. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  51. package/dist/esm/ai/unified-prompts/skill-site-prompt.js +10 -1
  52. package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  53. package/dist/esm/apps/apps-config.d.ts +6 -0
  54. package/dist/esm/apps/apps-config.d.ts.map +1 -1
  55. package/dist/esm/apps/apps-config.js +6 -0
  56. package/dist/esm/apps/apps-config.js.map +1 -1
  57. package/dist/esm/config/schema-fuzzer.test.js +38 -1
  58. package/dist/esm/config/schema-fuzzer.test.js.map +1 -1
  59. package/dist/esm/config/schema.d.ts +220 -90
  60. package/dist/esm/config/schema.d.ts.map +1 -1
  61. package/dist/esm/config/schema.js +42 -1
  62. package/dist/esm/config/schema.js.map +1 -1
  63. package/dist/esm/interface/admin-interface.d.ts +83 -1
  64. package/dist/esm/interface/admin-interface.d.ts.map +1 -1
  65. package/dist/esm/interface/admin-interface.js +48 -0
  66. package/dist/esm/interface/admin-interface.js.map +1 -1
  67. package/dist/esm/interface/admin-metrics.d.ts +15 -15
  68. package/dist/esm/interface/conversations.d.ts +36 -36
  69. package/dist/esm/interface/crud/current-user.d.ts +12 -12
  70. package/dist/esm/interface/crud/email-outbox.d.ts +206 -206
  71. package/dist/esm/interface/crud/invoices.d.ts +2 -2
  72. package/dist/esm/interface/crud/products.d.ts +23 -23
  73. package/dist/esm/interface/crud/project-api-keys.d.ts +4 -4
  74. package/dist/esm/interface/crud/projects.d.ts +59 -59
  75. package/dist/esm/interface/crud/team-member-profiles.d.ts +26 -26
  76. package/dist/esm/interface/crud/transactions.d.ts +20 -20
  77. package/dist/esm/interface/crud/transactions.d.ts.map +1 -1
  78. package/dist/esm/interface/crud/users.d.ts +16 -16
  79. package/dist/esm/interface/plan-usage.d.ts +2 -2
  80. package/dist/esm/interface/webhooks.d.ts +2 -2
  81. package/dist/esm/known-errors.d.ts +1 -1
  82. package/dist/esm/schema-fields.d.ts +4 -4
  83. package/dist/esm/sessions.d.ts +11 -11
  84. package/dist/esm/utils/tar.d.ts +26 -0
  85. package/dist/esm/utils/tar.d.ts.map +1 -0
  86. package/dist/esm/utils/tar.js +136 -0
  87. package/dist/esm/utils/tar.js.map +1 -0
  88. package/dist/helpers/password.d.ts +1 -1
  89. package/dist/helpers/production-mode.d.ts +1 -1
  90. package/dist/index.d.ts +4 -4
  91. package/dist/interface/admin-interface.d.ts +3 -3
  92. package/dist/interface/admin-interface.js +48 -0
  93. package/dist/interface/admin-interface.js.map +1 -1
  94. package/dist/interface/admin-metrics.d.ts +1 -1
  95. package/dist/interface/client-interface.d.ts +1 -1
  96. package/dist/interface/conversations.d.ts +36 -36
  97. package/dist/interface/crud/current-user.d.ts +1 -1
  98. package/dist/interface/crud/email-outbox.d.ts +1 -1
  99. package/dist/interface/crud/invoices.d.ts +1 -1
  100. package/dist/interface/crud/products.d.ts +1 -1
  101. package/dist/interface/crud/project-api-keys.d.ts +1 -1
  102. package/dist/interface/crud/projects.d.ts +1 -1
  103. package/dist/interface/crud/team-member-profiles.d.ts +1 -1
  104. package/dist/interface/crud/transactions.d.ts +1 -1
  105. package/dist/interface/crud/users.d.ts +1 -1
  106. package/dist/interface/plan-usage.d.ts +1 -1
  107. package/dist/interface/server-interface.d.ts +1 -1
  108. package/dist/interface/webhooks.d.ts +1 -1
  109. package/dist/{invoices-BGLLnTlR.d.ts → invoices-CHo9YKbI.d.ts} +3 -3
  110. package/dist/{invoices-BGLLnTlR.d.ts.map → invoices-CHo9YKbI.d.ts.map} +1 -1
  111. package/dist/{known-errors-BFf8SVm8.d.ts → known-errors-Bm4a61wL.d.ts} +2 -2
  112. package/dist/{known-errors-BFf8SVm8.d.ts.map → known-errors-Bm4a61wL.d.ts.map} +1 -1
  113. package/dist/known-errors.d.ts +1 -1
  114. package/dist/{plan-usage-Dw09F0sh.d.ts → plan-usage-BaDxcLZ1.d.ts} +3 -3
  115. package/dist/{plan-usage-Dw09F0sh.d.ts.map → plan-usage-BaDxcLZ1.d.ts.map} +1 -1
  116. package/dist/{products-Cwn7_4uD.d.ts → products-D4o8A2W0.d.ts} +24 -24
  117. package/dist/{products-Cwn7_4uD.d.ts.map → products-D4o8A2W0.d.ts.map} +1 -1
  118. package/dist/{project-api-keys-CXTBQ2IZ.d.ts → project-api-keys--7V5X_UW.d.ts} +5 -5
  119. package/dist/{project-api-keys-CXTBQ2IZ.d.ts.map → project-api-keys--7V5X_UW.d.ts.map} +1 -1
  120. package/dist/{projects-Cw80wrT7.d.ts → projects-BX5Y50kJ.d.ts} +60 -60
  121. package/dist/{projects-Cw80wrT7.d.ts.map → projects-BX5Y50kJ.d.ts.map} +1 -1
  122. package/dist/{schema-DGZfskAR.d.ts → schema-dJ_7rUCO.d.ts} +221 -91
  123. package/dist/schema-dJ_7rUCO.d.ts.map +1 -0
  124. package/dist/{schema-fields-DPaAnhmc.d.ts → schema-fields-DZtDQEEO.d.ts} +5 -5
  125. package/dist/{schema-fields-DPaAnhmc.d.ts.map → schema-fields-DZtDQEEO.d.ts.map} +1 -1
  126. package/dist/schema-fields.d.ts +1 -1
  127. package/dist/{server-interface-BXeSO8Wj.d.ts → server-interface-Ra_vIHP4.d.ts} +8 -8
  128. package/dist/{server-interface-BXeSO8Wj.d.ts.map → server-interface-Ra_vIHP4.d.ts.map} +1 -1
  129. package/dist/{sessions-B7755rIu.d.ts → sessions-CI-0TBQb.d.ts} +13 -13
  130. package/dist/{sessions-B7755rIu.d.ts.map → sessions-CI-0TBQb.d.ts.map} +1 -1
  131. package/dist/sessions.d.ts +1 -1
  132. package/dist/{team-member-profiles-B9sAsj4g.d.ts → team-member-profiles-BoDEqx-0.d.ts} +27 -27
  133. package/dist/{team-member-profiles-B9sAsj4g.d.ts.map → team-member-profiles-BoDEqx-0.d.ts.map} +1 -1
  134. package/dist/{transactions-Brdmr3jE.d.ts → transactions-CHNUJ42J.d.ts} +21 -21
  135. package/dist/transactions-CHNUJ42J.d.ts.map +1 -0
  136. package/dist/{users-ydVQVHD_.d.ts → users-DHNRwoSz.d.ts} +18 -18
  137. package/dist/{users-ydVQVHD_.d.ts.map → users-DHNRwoSz.d.ts.map} +1 -1
  138. package/dist/utils/tar.d.ts +26 -0
  139. package/dist/utils/tar.d.ts.map +1 -0
  140. package/dist/utils/tar.js +138 -0
  141. package/dist/utils/tar.js.map +1 -0
  142. package/dist/{webhooks-ByXrdSOx.d.ts → webhooks-8Ts1Clcb.d.ts} +3 -3
  143. package/dist/{webhooks-ByXrdSOx.d.ts.map → webhooks-8Ts1Clcb.d.ts.map} +1 -1
  144. package/package.json +1 -1
  145. package/src/ai/unified-prompts/reminders.ts +1 -1
  146. package/src/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.ts +7 -7
  147. package/src/ai/unified-prompts/skill-site-prompt-parts/deployments-skill.ts +128 -0
  148. package/src/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.ts +1 -0
  149. package/src/ai/unified-prompts/skill-site-prompt.ts +15 -0
  150. package/src/apps/apps-config.ts +9 -0
  151. package/src/config/schema-fuzzer.test.ts +37 -0
  152. package/src/config/schema.ts +193 -0
  153. package/src/interface/admin-interface.ts +173 -0
  154. package/src/utils/tar.tsx +261 -0
  155. package/dist/admin-interface-BxUHaniY.d.ts.map +0 -1
  156. package/dist/schema-DGZfskAR.d.ts.map +0 -1
  157. package/dist/transactions-Brdmr3jE.d.ts.map +0 -1
@@ -31,6 +31,71 @@ type ChatContent = Array<{
31
31
  argsText: string;
32
32
  result: any;
33
33
  }>;
34
+ type AdminDeploymentRunJson = {
35
+ id: string;
36
+ service_id: string;
37
+ status: "queued" | "building" | "ready" | "error" | "canceled";
38
+ target: string;
39
+ triggered_by: string;
40
+ url: string | null;
41
+ error: string | null;
42
+ created_at_millis: number;
43
+ finished_at_millis: number | null;
44
+ };
45
+ type AdminDeploymentEnvVarJson = {
46
+ key: string;
47
+ type: "plain" | "secret" | "connection";
48
+ value: string | null;
49
+ secret_key: string | null;
50
+ };
51
+ type AdminDeploymentEnvVarOptions = {
52
+ type?: undefined;
53
+ value: string;
54
+ } | {
55
+ type: "secret";
56
+ key: string;
57
+ } | {
58
+ type: "connection";
59
+ value: string;
60
+ };
61
+ type AdminDeploymentServiceJson = {
62
+ id: string;
63
+ type: "vercel";
64
+ framework: string | null;
65
+ install_command: string | null;
66
+ build_command: string | null;
67
+ output_directory: string | null;
68
+ root_directory: string | null;
69
+ provisioned: boolean;
70
+ status: "not_deployed" | "queued" | "building" | "deployed" | "failed" | "canceled";
71
+ has_successful_deploy: boolean;
72
+ url: string | null;
73
+ env: AdminDeploymentEnvVarJson[];
74
+ domains: {
75
+ hostname: string;
76
+ is_primary: boolean;
77
+ verified: boolean;
78
+ }[];
79
+ latest_run: AdminDeploymentRunJson | null;
80
+ };
81
+ type AdminDeploymentServiceBuildOptions = {
82
+ framework?: string | null;
83
+ install_command?: string | null;
84
+ build_command?: string | null;
85
+ output_directory?: string | null;
86
+ root_directory?: string | null;
87
+ };
88
+ type AdminDeploymentDomainJson = {
89
+ hostname: string;
90
+ is_primary: boolean;
91
+ verified: boolean;
92
+ pending_first_deploy: boolean;
93
+ dns_records: {
94
+ type: string;
95
+ name: string;
96
+ value: string;
97
+ }[];
98
+ };
34
99
  type AdminAuthApplicationOptions = ServerAuthApplicationOptions & ({
35
100
  superSecretAdminKey: string;
36
101
  } | {
@@ -371,7 +436,24 @@ declare class HexclaveAdminInterface extends HexclaveServerInterface {
371
436
  }): Promise<EmailOutboxCrud["Server"]["List"]>;
372
437
  getOutboxEmail(id: string): Promise<EmailOutboxCrud["Server"]["Read"]>;
373
438
  updateOutboxEmail(id: string, data: EmailOutboxCrud["Server"]["Update"]): Promise<EmailOutboxCrud["Server"]["Read"]>;
439
+ listDeploymentServices(): Promise<AdminDeploymentServiceJson[]>;
440
+ createDeploymentService(id: string, build: AdminDeploymentServiceBuildOptions): Promise<AdminDeploymentServiceJson>;
441
+ updateDeploymentService(serviceId: string, update: AdminDeploymentServiceBuildOptions & {
442
+ env?: Record<string, AdminDeploymentEnvVarOptions>;
443
+ }): Promise<AdminDeploymentServiceJson>;
444
+ deleteDeploymentService(serviceId: string): Promise<void>;
445
+ listDeploymentRuns(serviceId: string, options?: {
446
+ limit?: number;
447
+ }): Promise<AdminDeploymentRunJson[]>;
448
+ getDeploymentRunLogs(runId: string, options?: {
449
+ signal?: AbortSignal;
450
+ }): Promise<string>;
451
+ addDeploymentServiceDomain(serviceId: string, hostname: string, options?: {
452
+ isPrimary?: boolean;
453
+ }): Promise<void>;
454
+ getDeploymentServiceDomain(serviceId: string, hostname: string): Promise<AdminDeploymentDomainJson>;
455
+ deleteDeploymentServiceDomain(serviceId: string, hostname: string): Promise<void>;
374
456
  }
375
457
  //#endregion
376
- export { AdminAuthApplicationOptions, ChatContent, HexclaveAdminInterface, InternalApiKeyCreateCrudRequest, InternalApiKeyCreateCrudResponse, type PlanUsageResponse };
458
+ export { AdminAuthApplicationOptions, AdminDeploymentDomainJson, AdminDeploymentEnvVarJson, AdminDeploymentEnvVarOptions, AdminDeploymentRunJson, AdminDeploymentServiceBuildOptions, AdminDeploymentServiceJson, ChatContent, HexclaveAdminInterface, InternalApiKeyCreateCrudRequest, InternalApiKeyCreateCrudResponse, type PlanUsageResponse };
377
459
  //# sourceMappingURL=admin-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-interface.d.ts","names":[],"sources":["../../../src/interface/admin-interface.ts"],"mappings":"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"}
1
+ {"version":3,"file":"admin-interface.d.ts","names":[],"sources":["../../../src/interface/admin-interface.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;KA+BK,qBAAA,GAAwB,KAAA,CAAI,SAAS,QAAQ,wBAAA;AAAA,KAEtC,WAAA,GAAc,KAAK;EACzB,IAAA;EAAc,IAAA;AAAA;EACd,IAAA;EAAmB,QAAA;EAAkB,UAAA;EAAoB,IAAA;EAAW,QAAA;EAAkB,MAAA;AAAA;AAAA,KAGhF,sBAAA;EACV,EAAA;EACA,UAAA;EACA,MAAA;EACA,MAAA;EACA,YAAA;EACA,GAAA;EACA,KAAA;EACA,iBAAA;EACA,kBAAA;AAAA;AAAA,KAQU,yBAAA;EACV,GAAA;EACA,IAAA;EACA,KAAA;EACA,UAAA;AAAA;AAAA,KAOU,4BAAA;EACN,IAAA;EAAkB,KAAA;AAAA;EAClB,IAAA;EAAgB,GAAA;AAAA;EAChB,IAAA;EAAoB,KAAA;AAAA;AAAA,KAEd,0BAAA;EACV,EAAA;EACA,IAAA;EACA,SAAA;EACA,eAAA;EACA,aAAA;EACA,gBAAA;EACA,cAAA;EACA,WAAA;EACA,MAAA;EACA,qBAAA;EACA,GAAA;EACA,GAAA,EAAK,yBAAA;EACL,OAAA;IAAW,QAAA;IAAkB,UAAA;IAAqB,QAAA;EAAA;EAClD,UAAA,EAAY,sBAAsB;AAAA;AAAA,KAKxB,kCAAA;EACV,SAAA;EACA,eAAA;EACA,aAAA;EACA,gBAAA;EACA,cAAA;AAAA;AAAA,KAGU,yBAAA;EACV,QAAA;EACA,UAAA;EACA,QAAA;EACA,oBAAA;EACA,WAAA;IAAe,IAAA;IAAc,IAAA;IAAc,KAAA;EAAA;AAAA;AAAA,KAGjC,2BAAA,GAA8B,4BAAA;EAEtC,mBAAA;AAAA;EAGA,mBAAA,EAAqB,eAAA,UAAyB,OAAA;AAAA;AAAA,KAItC,+BAAA;EACV,0BAAA;EACA,qBAAA;EACA,0BAAA;EACA,iBAAA;EACA,WAAA;AAAA;AAAA,KAGU,gCAAA,GAAmC,mBAAmB;EAChE,sBAAA;EACA,iBAAA;EACA,sBAAA;AAAA;AAAA,cAIW,sBAAA,SAA+B,uBAAA;EAAA,SACd,OAAA,EAAS,2BAAA;cAAT,OAAA,EAAS,2BAAA;EAIxB,gBAAA,CAAiB,IAAA,UAAc,OAAA,EAAS,WAAA,EAAa,OAAA,EAAS,eAAA,SAAwB,WAAA,aAA8B,OAAA,CAAA,QAAA;;;;;;YAgBjH,kCAAA,kBAAoD,WAAA,OAAkB,WAAA,GACpF,IAAA,UACA,cAAA,EAAgB,WAAA,EAChB,gBAAA,EAAkB,eAAA,SAClB,aAAA,WAAwB,CAAA,KACvB,OAAA,CAAQ,MAAA,CACT,QAAA;IACE,UAAA;MACE,WAAA,EAAa,WAAA;MACb,YAAA,EAAc,YAAA;IAAA;EAAA,GAGlB,YAAA,CAAa,CAAA;EAcT,UAAA,IAAc,OAAA,CAAQ,YAAA;EAWtB,aAAA,CAAc,MAAA,EAAQ,YAAA,sBAAkC,OAAA,CAAQ,YAAA;EAehE,oBAAA,CACJ,OAAA,EAAS,+BAAA,GACR,OAAA,CAAQ,gCAAA;EAeL,mBAAA,IAAuB,OAAA,CAAQ,mBAAA;EAM/B,wBAAA,CAAyB,EAAA,WAAU,OAAA;EAenC,iBAAA,CAAkB,EAAA,UAAY,OAAA,EAAS,eAAA,GAAkB,OAAA,CAAQ,mBAAA;EAKjE,0BAAA,IAA8B,OAAA;IAAU,EAAA;IAAY,YAAA;IAAsB,QAAA;IAAmB,UAAA;EAAA;EAM7F,uBAAA,IAA2B,OAAA;IAAU,EAAA;IAAY,YAAA;IAAsB,QAAA;IAAuC,UAAA;IAAoB,cAAA;EAAA;EAMlI,gBAAA,CAAiB,OAAA;IAAW,YAAA;IAAuB,QAAA;IAA2B,UAAA;EAAA,IAAwB,OAAA;IAAU,EAAA;EAAA;EAehH,gBAAA,CAAiB,EAAA,UAAY,IAAA;IAAQ,YAAA;IAAuB,QAAA;IAAkC,UAAA;IAAqB,cAAA;EAAA,IAAmC,OAAA;EActJ,gBAAA,CAAiB,EAAA,WAAa,OAAA;EAU9B,eAAA,IAAmB,OAAA;IAAU,EAAA;IAAY,YAAA;EAAA;EAQzC,6BAAA,IAAiC,OAAA,CAAQ,6BAAA;EAMzC,sCAAA,CACJ,OAAA;IAAW,KAAA;IAAe,MAAA;IAAiB,KAAA;EAAA,IAC1C,OAAA;IAAU,KAAA,EAAO,6BAAA;IAAkD,UAAA;EAAA;EAahE,8BAAA,CAA+B,IAAA,EAAM,6BAAA,sBAAmD,OAAA,CAAQ,6BAAA;EAehG,8BAAA,CAA+B,YAAA,UAAsB,IAAA,EAAM,6BAAA,sBAAmD,OAAA,CAAQ,6BAAA;EAetH,8BAAA,CAA+B,YAAA,WAAuB,OAAA;EAQtD,gCAAA,IAAoC,OAAA,CAAQ,gCAAA;EAM5C,iCAAA,CAAkC,IAAA,EAAM,gCAAA,sBAAsD,OAAA,CAAQ,gCAAA;EAetG,iCAAA,CAAkC,YAAA,UAAsB,IAAA,EAAM,gCAAA,sBAAsD,OAAA,CAAQ,gCAAA;EAe5H,iCAAA,CAAkC,YAAA,WAAuB,OAAA;EAQzD,YAAA,IAAgB,OAAA,CAAQ,aAAA;EAexB,aAAA,IAAiB,OAAA;EAUjB,UAAA,CACJ,gBAAA,YACA,OAAA;IACE,YAAA;IACA,QAAA;IACA,OAAA;IACA,EAAA;IACA,MAAA;IACA,KAAA;IACA,KAAA;EAAA,IAED,OAAA,CAAQ,eAAA;EAoDL,YAAA,IAAgB,OAAA,CAAQ,mBAAA;EAWxB,eAAA,CAAgB,MAAA,WAAiB,OAAA,CAAQ,oBAAA;EAWzC,oBAAA,CAAqB,OAAA;IACzB,IAAA,EAAM,qBAAA;IACN,eAAA;IACA,UAAA;IACA,WAAA;IACA,WAAA;IACA,OAAA;IACA,SAAA;IACA,MAAA,GAAS,uBAAA;IACT,kBAAA;IACA,kBAAA;IACA,QAAA;IACA,KAAA;IACA,KAAA;EAAA,IACE,OAAA,CAAQ,yBAAA;EAaN,4BAAA,CAA6B,OAAA;IACjC,MAAA;EAAA,IACE,OAAA,CAAQ,8BAAA;EAaN,oBAAA,IAAwB,OAAA,CAAQ,iBAAA;EAWhC,aAAA,CAAc,IAAA;IAClB,eAAA;IACA,YAAA;MACE,IAAA;MACA,IAAA;MACA,QAAA;MACA,QAAA;MACA,YAAA;MACA,WAAA;IAAA;EAAA,IAEA,OAAA;IAAU,OAAA;IAAkB,aAAA;EAAA;EAW1B,eAAA,CAAgB,IAAA;IACpB,WAAA;EAAA,IACE,OAAA;IAAU,OAAA;IAAkB,aAAA;EAAA;EAW1B,cAAA,IAAkB,OAAA,CAAQ,kBAAA;EAO1B,yBAAA,CAA0B,IAAA;IAC9B,SAAA;IACA,iBAAA;EAAA,IACE,OAAA;IACA,SAAA;IACA,SAAA;IACA,iBAAA;IACA,mBAAA;IACA,MAAA;EAAA;EAYE,uBAAA,CAAwB,IAAA;IAC5B,SAAA;IACA,SAAA;IACA,iBAAA;EAAA,IACE,OAAA;IAAU,MAAA;EAAA;EAWR,uBAAA,IAA2B,OAAA;IAC7B,KAAA,EAAO,KAAA;MACL,SAAA;MACA,SAAA;MACA,iBAAA;MACA,MAAA;MACA,mBAAA;IAAA;EAAA;EASA,wBAAA,CAAyB,IAAA;IAC7B,gBAAA;EAAA,IACE,OAAA;IAAU,MAAA;EAAA;EAWR,yBAAA,CAA0B,IAAA;IAC9B,SAAA;EAAA,IACE,OAAA;IAAU,MAAA;EAAA;EAWR,yBAAA,CACJ,KAAA,UACA,WAAA,WACC,OAAA;EAiBG,eAAA,CAAgB,QAAA,UAAkB,OAAA,QAAe,OAAA;EAcjD,gBAAA,CAAiB,QAAA,WAAmB,OAAA;IAAU,QAAA,EAAU,KAAA;EAAA;EASxD,kBAAA,CAAmB,OAAA;IACvB,OAAA;IACA,cAAA;IACA,UAAA;IACA,iBAAA;IACA,eAAA;IACA,cAAA;EAAA,IACE,OAAA;IAAU,IAAA;IAAc,gBAAA,GAAmB,MAAA;EAAA;EAkBzC,2BAAA,CAA4B,iBAAA,WAA4B,OAAA;IAAU,UAAA;EAAA;EAalE,gBAAA,CAAiB,WAAA,WAAsB,OAAA;IAAU,EAAA;EAAA;EAiBjD,aAAA,CAAc,EAAA,WAAa,OAAA;IAAU,YAAA;IAAsB,UAAA;EAAA;EAS3D,gBAAA,CAAiB,EAAA,UAAY,SAAA,WAAoB,OAAA;EAgBjD,gBAAA,CAAiB,EAAA,WAAa,OAAA;EAU9B,mBAAA,CAAoB,EAAA,UAAY,SAAA,UAAmB,OAAA,0BAAiC,OAAA;IAAU,aAAA;EAAA;EAe9F,SAAA,IAAa,OAAA;IAAU,aAAA;EAAA;EASvB,iBAAA,CAAkB,KAAA,yCAA8C,OAAA;IAAU,aAAA;EAAA;EAS1E,iBAAA,CAAkB,KAAA,wCAA6C,cAAA,OAAqB,MAAA,GAAS,qBAAA,GAAwB,OAAA;EAiBrH,oBAAA,CAAqB,KAAA,wCAA6C,sBAAA,QAA8B,OAAA;EAchG,qBAAA,IAAyB,OAAA,CAAQ,qBAAA;EAUjC,wBAAA,IAA4B,OAAA;EA8ThB;;;;;;EAhTZ,iBAAA,CAAkB,KAAA,WAAgB,OAAA,CAAQ,iBAAA;EA8VwC;;;;;;EA9UlF,mBAAA,CAAoB,OAAA;IAAW,YAAA,EAAc,iCAAA;IAAmC,iBAAA;EAAA,IAA8B,OAAA;IAAU,MAAA;IAAmB,EAAA;EAAA;EAiZ9D;;;;;;EA3X7E,oBAAA,CAAqB,KAAA,WAAgB,OAAA;IAAU,MAAA;EAAA;EAjzBY;;;;;;EAo0B3D,oBAAA,CAAqB,KAAA,UAAe,OAAA;IAAW,iBAAA;IAA2B,aAAA;EAAA,IAA2B,OAAA;IAAU,MAAA;EAAA;EAiB/G,uBAAA,CAAwB,KAAA,4BAAiC,IAAA,aAAiB,OAAA;EAa1E,mBAAA,CAAoB,WAAA,WAAsB,OAAA;IAAU,EAAA;EAAA;EAiBpD,mBAAA,CAAoB,EAAA,WAAa,OAAA;EAUjC,aAAA,IAAiB,OAAA;IAAU,GAAA;EAAA;EAe3B,oBAAA,IAAwB,OAAA;IAAiB,UAAA;IAAoB,eAAA;IAA0B,iBAAA;IAA4B,eAAA;EAAA;EAanH,uBAAA,IAA2B,OAAA;IAAU,QAAA;IAAkB,OAAA,EAAS,KAAA;MAAQ,EAAA;MAAY,IAAA;MAAc,OAAA;MAAkB,SAAA;MAAoB,WAAA;IAAA;EAAA;EAiBxI,0BAAA,CAA2B,QAAA,UAAkB,OAAA,EAAS,MAAA,yBAA+B,OAAA;EAYrF,gCAAA,IAAoC,OAAA;IAAU,aAAA;EAAA;EAe9C,gBAAA,CAAiB,MAAA;IAAW,MAAA;IAAiB,KAAA;IAAgB,IAAA,GAAO,eAAA;IAAiB,YAAA;IAA2C,UAAA;EAAA,IAAwB,OAAA;IAAU,YAAA,EAAc,WAAA;IAAe,UAAA;EAAA;EAgB/L,kBAAA,CAAmB,MAAA,GAAS,8BAAA,GAAiC,OAAA,CAAQ,+BAAA;EAmBrE,gBAAA,CAAiB,eAAA,WAA0B,OAAA,CAAQ,6BAAA;EASnD,uBAAA,CAAwB,eAAA,UAAyB,MAAA,GAAS,mCAAA,GAAsC,OAAA,CAAQ,oCAAA;EAYxG,2BAAA,CAA4B,eAAA,UAAyB,OAAA,WAAkB,OAAA,CAAQ,wCAAA;EAS/E,sBAAA,CAAuB,eAAA,UAAyB,OAAA;IAAY,MAAA;IAAiB,KAAA;EAAA,IAAmB,OAAA,CAAQ,sCAAA;EAYxG,iBAAA,CAAkB,OAAA;IACtB,IAAA;IACA,EAAA;IACA,SAAA;IACA,SAAA,EAAW,WAAA;IAv6BW;;;;;;;;IAg7BtB,SAAA;EAAA,IACE,OAAA;IAAU,OAAA;IAAkB,mBAAA;EAAA;EAuB1B,sCAAA,CACJ,UAAA;IAAc,0BAAA;EAAA,GACd,KAAA,YACC,OAAA;IACD,cAAA,EAAgB,KAAA;MACd,EAAA;MACA,YAAA;MACA,aAAA;MACA,iBAAA,EAAmB,gBAAA;IAAA;IAErB,oBAAA;EAAA;EAgBI,gBAAA,CAAiB,OAAA;IAAY,MAAA;IAAiB,aAAA;IAAwB,OAAA;IAAkB,KAAA;IAAgB,MAAA;EAAA,IAAoB,OAAA,CAAQ,eAAA;EAepI,cAAA,CAAe,EAAA,WAAa,OAAA,CAAQ,eAAA;EASpC,iBAAA,CAAkB,EAAA,UAAY,IAAA,EAAM,eAAA,uBAAsC,OAAA,CAAQ,eAAA;EAiBlF,sBAAA,IAA0B,OAAA,CAAQ,0BAAA;EASlC,uBAAA,CAAwB,EAAA,UAAY,KAAA,EAAO,kCAAA,GAAqC,OAAA,CAAQ,0BAAA;EAexF,uBAAA,CAAwB,SAAA,UAAmB,MAAA,EAAQ,kCAAA;IAEvD,GAAA,GAAM,MAAA,SAAe,4BAAA;EAAA,IACnB,OAAA,CAAQ,0BAAA;EAeN,uBAAA,CAAwB,SAAA,WAAoB,OAAA;EAQ5C,kBAAA,CAAmB,SAAA,UAAmB,OAAA;IAAY,KAAA;EAAA,IAAmB,OAAA,CAAQ,sBAAA;EAS7E,oBAAA,CAAqB,KAAA,UAAe,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IAAgB,OAAA;EAazE,0BAAA,CAA2B,SAAA,UAAmB,QAAA,UAAkB,OAAA;IAAY,SAAA;EAAA,IAAwB,OAAA;EAcpG,0BAAA,CAA2B,SAAA,UAAmB,QAAA,WAAmB,OAAA,CAAQ,yBAAA;EASzE,6BAAA,CAA8B,SAAA,UAAmB,QAAA,WAAmB,OAAA;AAAA"}
@@ -546,6 +546,54 @@ var HexclaveAdminInterface = class extends HexclaveServerInterface {
546
546
  body: JSON.stringify(data)
547
547
  }, null)).json();
548
548
  }
549
+ async listDeploymentServices() {
550
+ return (await (await this.sendAdminRequest("/deployments/services", { method: "GET" }, null)).json()).items;
551
+ }
552
+ async createDeploymentService(id, build) {
553
+ return await (await this.sendAdminRequest("/deployments/services", {
554
+ method: "POST",
555
+ headers: { "content-type": "application/json" },
556
+ body: JSON.stringify({
557
+ id,
558
+ ...build
559
+ })
560
+ }, null)).json();
561
+ }
562
+ async updateDeploymentService(serviceId, update) {
563
+ return await (await this.sendAdminRequest(urlString`/deployments/services/${serviceId}`, {
564
+ method: "PATCH",
565
+ headers: { "content-type": "application/json" },
566
+ body: JSON.stringify(update)
567
+ }, null)).json();
568
+ }
569
+ async deleteDeploymentService(serviceId) {
570
+ await this.sendAdminRequest(urlString`/deployments/services/${serviceId}`, { method: "DELETE" }, null);
571
+ }
572
+ async listDeploymentRuns(serviceId, options) {
573
+ return (await (await this.sendAdminRequest(urlString`/deployments/services/${serviceId}/runs` + (options?.limit !== void 0 ? `?limit=${options.limit}` : ""), { method: "GET" }, null)).json()).items;
574
+ }
575
+ async getDeploymentRunLogs(runId, options) {
576
+ return await (await this.sendAdminRequest(urlString`/deployments/runs/${runId}/logs`, {
577
+ method: "GET",
578
+ signal: options?.signal
579
+ }, null)).text();
580
+ }
581
+ async addDeploymentServiceDomain(serviceId, hostname, options) {
582
+ await this.sendAdminRequest(urlString`/deployments/services/${serviceId}/domains`, {
583
+ method: "POST",
584
+ headers: { "content-type": "application/json" },
585
+ body: JSON.stringify({
586
+ hostname,
587
+ ...options?.isPrimary ? { is_primary: true } : {}
588
+ })
589
+ }, null);
590
+ }
591
+ async getDeploymentServiceDomain(serviceId, hostname) {
592
+ return await (await this.sendAdminRequest(urlString`/deployments/services/${serviceId}/domains/${hostname}`, { method: "GET" }, null)).json();
593
+ }
594
+ async deleteDeploymentServiceDomain(serviceId, hostname) {
595
+ await this.sendAdminRequest(urlString`/deployments/services/${serviceId}/domains/${hostname}`, { method: "DELETE" }, null);
596
+ }
549
597
  };
550
598
  //#endregion
551
599
  export { HexclaveAdminInterface };
@@ -1 +1 @@
1
- {"version":3,"file":"admin-interface.js","names":[],"sources":["../../../src/interface/admin-interface.ts"],"sourcesContent":["import * as yup from \"yup\";\nimport type { EnvironmentConfigOverrideOverride } from \"../config/schema\";\nimport { KnownErrors } from \"../known-errors\";\nimport { branchConfigSourceSchema, type ConfigAgentRunApi, type RestrictedReason } from \"../schema-fields\";\nimport { AccessToken, InternalSession, RefreshToken } from \"../sessions\";\nimport type { MoneyAmount } from \"../utils/currency-constants\";\nimport { Result } from \"../utils/results\";\nimport { urlString } from \"../utils/urls\";\nimport type { AnalyticsClickmapDevice, AnalyticsClickmapKind, AnalyticsClickmapResponse, AnalyticsClickmapTokenResponse, MetricsResponse, MetricsUserCounts, UserActivityResponse } from \"./admin-metrics\";\nimport { EmailOutboxCrud } from \"./crud/email-outbox\";\nimport { InternalEmailsCrud } from \"./crud/emails\";\nimport { InternalApiKeysCrud } from \"./crud/internal-api-keys\";\nimport { ProjectPermissionDefinitionsCrud } from \"./crud/project-permissions\";\nimport { ProjectsCrud } from \"./crud/projects\";\nimport type {\n AdminGetSessionReplayAllEventsResponse,\n AdminGetSessionReplayChunkEventsResponse,\n AdminGetSessionReplayResponse,\n AdminListSessionReplayChunksOptions,\n AdminListSessionReplayChunksResponse,\n AdminListSessionReplaysOptions,\n AdminListSessionReplaysResponse\n} from \"./crud/session-replays\";\nimport { SvixTokenCrud } from \"./crud/svix-token\";\nimport { TeamPermissionDefinitionsCrud } from \"./crud/team-permissions\";\nimport type { Transaction, TransactionType } from \"./crud/transactions\";\nimport type { PlanUsageResponse } from \"./plan-usage\";\nimport { HexclaveServerInterface, ServerAuthApplicationOptions } from \"./server-interface\";\n\nexport type { PlanUsageResponse } from \"./plan-usage\";\n\ntype BranchConfigSourceApi = yup.InferType<typeof branchConfigSourceSchema>;\n\nexport type ChatContent = Array<\n | { type: \"text\", text: string }\n | { type: \"tool-call\", toolName: string, toolCallId: string, args: any, argsText: string, result: any }\n>;\n\nexport type AdminAuthApplicationOptions = ServerAuthApplicationOptions &(\n | {\n superSecretAdminKey: string,\n }\n | {\n projectOwnerSession: InternalSession | (() => Promise<string | null>),\n }\n);\n\nexport type InternalApiKeyCreateCrudRequest = {\n has_publishable_client_key: boolean,\n has_secret_server_key: boolean,\n has_super_secret_admin_key: boolean,\n expires_at_millis: number,\n description: string,\n};\n\nexport type InternalApiKeyCreateCrudResponse = InternalApiKeysCrud[\"Admin\"][\"Read\"] & {\n publishable_client_key?: string,\n secret_server_key?: string,\n super_secret_admin_key?: string,\n};\n\n\nexport class HexclaveAdminInterface extends HexclaveServerInterface {\n constructor(public readonly options: AdminAuthApplicationOptions) {\n super(options);\n }\n\n public async sendAdminRequest(path: string, options: RequestInit, session: InternalSession | null, requestType: \"admin\" = \"admin\") {\n return await this.sendServerRequest(\n path,\n {\n ...options,\n headers: {\n // Hexclave rebrand: emit x-hexclave-* request header; the backend proxy dual-accepts both names.\n \"x-hexclave-super-secret-admin-key\": \"superSecretAdminKey\" in this.options ? this.options.superSecretAdminKey : \"\",\n ...options.headers,\n },\n },\n session,\n requestType,\n );\n }\n\n protected async sendAdminRequestAndCatchKnownError<E extends typeof KnownErrors[keyof KnownErrors]>(\n path: string,\n requestOptions: RequestInit,\n tokenStoreOrNull: InternalSession | null,\n errorsToCatch: readonly E[],\n ): Promise<Result<\n Response & {\n usedTokens: {\n accessToken: AccessToken,\n refreshToken: RefreshToken | null,\n } | null,\n },\n InstanceType<E>\n >> {\n try {\n return Result.ok(await this.sendAdminRequest(path, requestOptions, tokenStoreOrNull));\n } catch (e) {\n for (const errorType of errorsToCatch) {\n if (errorType.isInstance(e)) {\n return Result.error(e as InstanceType<E>);\n }\n }\n throw e;\n }\n }\n\n async getProject(): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async updateProject(update: ProjectsCrud[\"Admin\"][\"Update\"]): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(update),\n },\n null,\n );\n return await response.json();\n }\n\n async createInternalApiKey(\n options: InternalApiKeyCreateCrudRequest,\n ): Promise<InternalApiKeyCreateCrudResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/api-keys\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n },\n null,\n );\n return await response.json();\n }\n\n async listInternalApiKeys(): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"][]> {\n const response = await this.sendAdminRequest(\"/internal/api-keys\", {}, null);\n const result = await response.json() as InternalApiKeysCrud[\"Admin\"][\"List\"];\n return result.items;\n }\n\n async revokeInternalApiKeyById(id: string) {\n await this.sendAdminRequest(\n `/internal/api-keys/${id}`, {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n revoked: true,\n }),\n },\n null,\n );\n }\n\n async getInternalApiKey(id: string, session: InternalSession): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(`/internal/api-keys/${id}`, {}, session);\n return await response.json();\n }\n\n async listInternalEmailTemplates(): Promise<{ id: string, display_name: string, theme_id?: string, tsx_source: string }[]> {\n const response = await this.sendAdminRequest(`/internal/email-templates`, {}, null);\n const result = await response.json() as { templates: { id: string, display_name: string, theme_id?: string, tsx_source: string }[] };\n return result.templates;\n }\n\n async listInternalEmailDrafts(): Promise<{ id: string, display_name: string, theme_id?: string | undefined | false, tsx_source: string, sent_at_millis?: number | null }[]> {\n const response = await this.sendAdminRequest(`/internal/email-drafts`, {}, null);\n const result = await response.json() as { drafts: { id: string, display_name: string, theme_id?: string | undefined | false, tsx_source: string, sent_at_millis?: number | null }[] };\n return result.drafts;\n }\n\n async createEmailDraft(options: { display_name?: string, theme_id?: string | false, tsx_source?: string }): Promise<{ id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-drafts`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n },\n null,\n );\n return await response.json();\n }\n\n async updateEmailDraft(id: string, data: { display_name?: string, theme_id?: string | null | false, tsx_source?: string, sent_at_millis?: number | null }): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-drafts/${id}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n }\n\n async deleteEmailDraft(id: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-drafts/${id}`,\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async listEmailThemes(): Promise<{ id: string, display_name: string }[]> {\n const response = await this.sendAdminRequest(`/internal/email-themes`, {}, null);\n const result = await response.json() as { themes: { id: string, display_name: string }[] };\n return result.themes;\n }\n\n\n // Team permission definitions methods\n async listTeamPermissionDefinitions(): Promise<TeamPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/team-permission-definitions`, {}, null);\n const result = await response.json() as TeamPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async listTeamPermissionDefinitionsPaginated(\n options: { limit: number, cursor?: string, query?: string },\n ): Promise<{ items: TeamPermissionDefinitionsCrud['Admin']['Read'][], nextCursor: string | null }> {\n const params = new URLSearchParams();\n params.set(\"limit\", String(options.limit));\n if (options.cursor) params.set(\"cursor\", options.cursor);\n if (options.query) params.set(\"query\", options.query);\n const response = await this.sendAdminRequest(`/team-permission-definitions?${params.toString()}`, {}, null);\n const result = await response.json() as TeamPermissionDefinitionsCrud['Admin']['List'];\n return {\n items: result.items,\n nextCursor: result.pagination?.next_cursor ?? null,\n };\n }\n\n async createTeamPermissionDefinition(data: TeamPermissionDefinitionsCrud['Admin']['Create']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/team-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateTeamPermissionDefinition(permissionId: string, data: TeamPermissionDefinitionsCrud['Admin']['Update']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteTeamPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async listProjectPermissionDefinitions(): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/project-permission-definitions`, {}, null);\n const result = await response.json() as ProjectPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async createProjectPermissionDefinition(data: ProjectPermissionDefinitionsCrud['Admin']['Create']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/project-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateProjectPermissionDefinition(permissionId: string, data: ProjectPermissionDefinitionsCrud['Admin']['Update']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProjectPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async getSvixToken(): Promise<SvixTokenCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/webhooks/svix-token\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProject(): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async getMetrics(\n includeAnonymous: boolean = false,\n filters?: {\n country_code?: string,\n referrer?: string,\n browser?: string,\n os?: string,\n device?: string,\n since?: string,\n until?: string,\n },\n ): Promise<MetricsResponse> {\n const params = new URLSearchParams();\n if (includeAnonymous) {\n params.append('include_anonymous', 'true');\n }\n if (filters?.country_code) params.append('filter_country_code', filters.country_code);\n if (filters?.referrer) params.append('filter_referrer', filters.referrer);\n if (filters?.browser) params.append('filter_browser', filters.browser);\n if (filters?.os) params.append('filter_os', filters.os);\n if (filters?.device) params.append('filter_device', filters.device);\n if (filters?.since) params.append('filter_since', filters.since);\n if (filters?.until) params.append('filter_until', filters.until);\n const queryString = params.toString();\n const response = await this.sendAdminRequest(\n `/internal/metrics${queryString ? `?${queryString}` : ''}`,\n {\n method: \"GET\",\n },\n null,\n );\n const body = (await response.json()) as MetricsResponse;\n // The yup schema's .optional().default(...) fallbacks only run during\n // backend response validation, not on this client-side cast — apply them\n // here too so the one-release-cycle tolerance for older servers that the\n // schema comments promise actually holds for dashboard consumers. The\n // Partial views widen the static type (which claims these are always\n // defined) to match what an older server can actually send.\n const rawBody: Partial<MetricsResponse> = body;\n const rawAnalytics: Partial<MetricsResponse[\"analytics_overview\"]> = body.analytics_overview;\n return {\n ...body,\n live_users: rawBody.live_users ?? 0,\n hourly_users: rawBody.hourly_users ?? [],\n hourly_active_users: rawBody.hourly_active_users ?? [],\n analytics_overview: {\n ...body.analytics_overview,\n hourly_page_views: rawAnalytics.hourly_page_views ?? [],\n hourly_active_users: rawAnalytics.hourly_active_users ?? [],\n hourly_visitors: rawAnalytics.hourly_visitors ?? [],\n daily_anonymous_visitors_fallback: rawAnalytics.daily_anonymous_visitors_fallback ?? [],\n anonymous_visitors_fallback: rawAnalytics.anonymous_visitors_fallback ?? 0,\n top_regions: rawAnalytics.top_regions ?? [],\n bounce_rate: rawAnalytics.bounce_rate ?? 0,\n daily_bounce_rate: rawAnalytics.daily_bounce_rate ?? [],\n daily_avg_session_seconds: rawAnalytics.daily_avg_session_seconds ?? [],\n top_browsers: rawAnalytics.top_browsers ?? [],\n top_operating_systems: rawAnalytics.top_operating_systems ?? [],\n top_devices: rawAnalytics.top_devices ?? [],\n },\n };\n }\n\n async getPlanUsage(): Promise<PlanUsageResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/plan-usage\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async getUserActivity(userId: string): Promise<UserActivityResponse> {\n const response = await this.sendAdminRequest(\n urlString`/internal/user-activity?user_id=${userId}`,\n {\n method: \"GET\",\n },\n null,\n );\n return (await response.json()) as UserActivityResponse;\n }\n\n async getAnalyticsClickmap(options: {\n kind: AnalyticsClickmapKind,\n member_user_ids?: string[],\n route_path?: string,\n route_regex?: string,\n url_pattern?: string,\n user_id?: string,\n replay_id?: string,\n device?: AnalyticsClickmapDevice,\n viewport_width_min?: number,\n viewport_width_max?: number,\n sampling?: number,\n since: string,\n until: string,\n }): Promise<AnalyticsClickmapResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/analytics/clickmap\",\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(options),\n },\n null,\n );\n return (await response.json()) as AnalyticsClickmapResponse;\n }\n\n async createAnalyticsClickmapToken(options: {\n origin: string,\n }): Promise<AnalyticsClickmapTokenResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/analytics/clickmap-token\",\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(options),\n },\n null,\n );\n return (await response.json()) as AnalyticsClickmapTokenResponse;\n }\n\n async getMetricsUserCounts(): Promise<MetricsUserCounts> {\n const response = await this.sendAdminRequest(\n \"/internal/metrics/user-counts\",\n {\n method: \"GET\",\n },\n null,\n );\n return (await response.json()) as MetricsUserCounts;\n }\n\n async sendTestEmail(data: {\n recipient_email: string,\n email_config: {\n host: string,\n port: number,\n username: string,\n password: string,\n sender_email: string,\n sender_name: string,\n },\n }): Promise<{ success: boolean, error_message?: string }> {\n const response = await this.sendAdminRequest(`/internal/send-test-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async sendTestWebhook(data: {\n endpoint_id: string,\n }): Promise<{ success: boolean, error_message?: string }> {\n const response = await this.sendAdminRequest(`/internal/send-test-webhook`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async listSentEmails(): Promise<InternalEmailsCrud[\"Admin\"][\"List\"]> {\n const response = await this.sendAdminRequest(\"/internal/emails\", {\n method: \"GET\",\n }, null);\n return await response.json();\n }\n\n async setupManagedEmailProvider(data: {\n subdomain: string,\n sender_local_part: string,\n }): Promise<{\n domain_id: string,\n subdomain: string,\n sender_local_part: string,\n name_server_records: string[],\n status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\",\n }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/setup\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async checkManagedEmailStatus(data: {\n domain_id: string,\n subdomain: string,\n sender_local_part: string,\n }): Promise<{ status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\" }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/check\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async listManagedEmailDomains(): Promise<{\n items: Array<{\n domain_id: string,\n subdomain: string,\n sender_local_part: string,\n status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\",\n name_server_records: string[],\n }>,\n }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/list\", {\n method: \"GET\",\n }, null);\n return await response.json();\n }\n\n async deleteManagedEmailDomain(data: {\n resend_domain_id: string,\n }): Promise<{ status: \"deleted\" }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/delete\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async applyManagedEmailProvider(data: {\n domain_id: string,\n }): Promise<{ status: \"applied\" }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/apply\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async sendSignInInvitationEmail(\n email: string,\n callbackUrl: string,\n ): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/send-sign-in-invitation\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n email,\n callback_url: callbackUrl,\n }),\n },\n null,\n );\n }\n\n async saveChatMessage(threadId: string, message: any): Promise<void> {\n await this.sendAdminRequest(\n `/internal/ai-chat/${threadId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ message }),\n },\n null,\n );\n }\n\n async listChatMessages(threadId: string): Promise<{ messages: Array<any> }> {\n const response = await this.sendAdminRequest(\n `/internal/ai-chat/${threadId}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async renderEmailPreview(options: {\n themeId?: string | null | false,\n themeTsxSource?: string,\n templateId?: string,\n templateTsxSource?: string,\n editableMarkers?: boolean,\n editableSource?: 'template' | 'theme' | 'both',\n }): Promise<{ html: string, editable_regions?: Record<string, unknown> }> {\n const response = await this.sendAdminRequest(`/emails/render-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n theme_id: options.themeId,\n theme_tsx_source: options.themeTsxSource,\n template_id: options.templateId,\n template_tsx_source: options.templateTsxSource,\n editable_markers: options.editableMarkers,\n editable_source: options.editableSource,\n }),\n }, null);\n return await response.json();\n }\n\n async rewriteTemplateSourceWithAI(templateTsxSource: string): Promise<{ tsx_source: string }> {\n const response = await this.sendAdminRequest(`/internal/rewrite-template-source`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n template_tsx_source: templateTsxSource,\n }),\n }, null);\n return await response.json();\n }\n\n async createEmailTheme(displayName: string): Promise<{ id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n display_name: displayName,\n }),\n },\n null,\n );\n return await response.json();\n }\n\n async getEmailTheme(id: string): Promise<{ display_name: string, tsx_source: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async updateEmailTheme(id: string, tsxSource: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n tsx_source: tsxSource,\n }),\n },\n null,\n );\n }\n\n async deleteEmailTheme(id: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async updateEmailTemplate(id: string, tsxSource: string, themeId: string | null | false): Promise<{ rendered_html: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-templates/${id}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ tsx_source: tsxSource, theme_id: themeId }),\n },\n null,\n );\n return await response.json();\n }\n\n async getConfig(): Promise<{ config_string: string }> {\n const response = await this.sendAdminRequest(\n `/internal/config`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getConfigOverride(level: \"project\" | \"branch\" | \"environment\"): Promise<{ config_string: string }> {\n const response = await this.sendAdminRequest(\n `/internal/config/override/${level}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async setConfigOverride(level: \"project\" | \"branch\" | \"environment\", configOverride: any, source?: BranchConfigSourceApi): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/override/${level}`,\n {\n method: \"PUT\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n config_string: JSON.stringify(configOverride),\n ...(source && { source }),\n }),\n },\n null,\n );\n }\n\n async updateConfigOverride(level: \"project\" | \"branch\" | \"environment\", configOverrideOverride: any): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/override/${level}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ config_override_string: JSON.stringify(configOverrideOverride) }),\n },\n null,\n );\n }\n\n async getPushedConfigSource(): Promise<BranchConfigSourceApi> {\n const response = await this.sendAdminRequest(\n `/internal/config/source`,\n { method: \"GET\" },\n null,\n );\n const data = await response.json();\n return data.source;\n }\n\n async unlinkPushedConfigSource(): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/source`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n /**\n * Reads a specific config-agent run's state (or `null`) for the linked GitHub\n * repo. Polled by the dashboard — using the id returned by `applyConfigViaAgent`\n * — for live progress and the review diff. Runs are independent, so each is\n * addressed by its own id rather than \"the\" run on the branch.\n */\n async getConfigAgentRun(runId: string): Promise<ConfigAgentRunApi | null> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/run?run_id=${encodeURIComponent(runId)}`,\n { method: \"GET\" },\n null,\n );\n const data = await response.json();\n return data.agent_run ?? null;\n }\n\n /**\n * Applies a dashboard config change to the linked GitHub repo by running the\n * config agent in a sandbox (server-side). Returns immediately with the new run's\n * `id`; poll `getConfigAgentRun(id)` for progress. The GitHub access token is the\n * caller's own OAuth token and is used transiently server-side.\n */\n async applyConfigViaAgent(options: { configUpdate: EnvironmentConfigOverrideOverride, githubAccessToken: string }): Promise<{ status: \"started\", id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/apply`,\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n github_access_token: options.githubAccessToken,\n config_update_string: JSON.stringify(options.configUpdate),\n }),\n },\n null,\n );\n return await response.json();\n }\n\n /**\n * Cancels a specific in-flight agent-driven config write: hard-stops the sandbox\n * so the agent stops mid-work. Also cancels runs in `awaiting_review`. No revert\n * — if the agent already pushed, the commit stays. Returns `not-running` if the\n * run is gone or already terminal.\n */\n async cancelConfigAgentRun(runId: string): Promise<{ status: \"cancelling\" | \"not-running\" }> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/cancel`,\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ run_id: runId }),\n },\n null,\n );\n return await response.json();\n }\n\n /**\n * Commits a specific run's reviewed change to GitHub. Only valid when that run is in\n * `awaiting_review` status; the change (diff + base commit) was captured at apply time\n * and is rebuilt + pushed via the GitHub API here, so no live sandbox is involved.\n * Returns `not-awaiting-review` if the run isn't in a committable state.\n */\n async commitConfigAgentRun(runId: string, options: { githubAccessToken: string, commitMessage?: string }): Promise<{ status: \"committing\" | \"not-awaiting-review\" }> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/commit`,\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n run_id: runId,\n github_access_token: options.githubAccessToken,\n ...(options.commitMessage ? { commit_message: options.commitMessage } : {}),\n }),\n },\n null,\n );\n return await response.json();\n }\n\n async resetConfigOverrideKeys(level: \"branch\" | \"environment\", keys: string[]): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/override/${level}/reset-keys`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ keys }),\n },\n null,\n );\n }\n async createEmailTemplate(displayName: string): Promise<{ id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-templates`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n display_name: displayName,\n }),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteEmailTemplate(id: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-templates/${id}`,\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async setupPayments(): Promise<{ url: string }> {\n const response = await this.sendAdminRequest(\n \"/internal/payments/setup\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async getStripeAccountInfo(): Promise<null | { account_id: string, charges_enabled: boolean, details_submitted: boolean, payouts_enabled: boolean }> {\n const response = await this.sendAdminRequestAndCatchKnownError(\n \"/internal/payments/stripe/account-info\",\n {},\n null,\n [KnownErrors.StripeAccountInfoNotFound],\n );\n if (response.status === \"error\") {\n return null;\n }\n return await response.data.json();\n }\n\n async getPaymentMethodConfigs(): Promise<{ configId: string, methods: Array<{ id: string, name: string, enabled: boolean, available: boolean, overridable: boolean }> } | null> {\n const response = await this.sendAdminRequestAndCatchKnownError(\n \"/internal/payments/method-configs\",\n { method: \"GET\" },\n null,\n [KnownErrors.StripeAccountInfoNotFound],\n );\n if (response.status === \"error\") {\n return null;\n }\n const data = await response.data.json();\n return {\n configId: data.config_id,\n methods: data.methods,\n };\n }\n\n async updatePaymentMethodConfigs(configId: string, updates: Record<string, 'on' | 'off'>): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/payments/method-configs\",\n {\n method: \"PATCH\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ config_id: configId, updates }),\n },\n null,\n );\n }\n\n async createStripeWidgetAccountSession(): Promise<{ client_secret: string }> {\n const response = await this.sendAdminRequest(\n \"/internal/payments/stripe-widgets/account-session\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async listTransactions(params?: { cursor?: string, limit?: number, type?: TransactionType, customerType?: 'user' | 'team' | 'custom', customerId?: string }): Promise<{ transactions: Transaction[], nextCursor: string | null }> {\n const qs = new URLSearchParams();\n if (params?.cursor) qs.set('cursor', params.cursor);\n if (typeof params?.limit === 'number') qs.set('limit', String(params.limit));\n if (params?.type) qs.set('type', params.type);\n if (params?.customerType) qs.set('customer_type', params.customerType);\n if (params?.customerId) qs.set('customer_id', params.customerId);\n const response = await this.sendAdminRequest(\n `/internal/payments/transactions${qs.size ? `?${qs.toString()}` : ''}`,\n { method: 'GET' },\n null,\n );\n const json = await response.json() as { transactions: Transaction[], next_cursor: string | null };\n return { transactions: json.transactions, nextCursor: json.next_cursor };\n }\n\n async listSessionReplays(params?: AdminListSessionReplaysOptions): Promise<AdminListSessionReplaysResponse> {\n const qs = new URLSearchParams();\n if (params?.cursor) qs.set(\"cursor\", params.cursor);\n if (typeof params?.limit === \"number\") qs.set(\"limit\", String(params.limit));\n if (params?.user_ids && params.user_ids.length > 0) qs.set(\"user_ids\", params.user_ids.join(\",\"));\n if (params?.team_ids && params.team_ids.length > 0) qs.set(\"team_ids\", params.team_ids.join(\",\"));\n if (typeof params?.duration_ms_min === \"number\") qs.set(\"duration_ms_min\", String(params.duration_ms_min));\n if (typeof params?.duration_ms_max === \"number\") qs.set(\"duration_ms_max\", String(params.duration_ms_max));\n if (typeof params?.last_event_at_from_millis === \"number\") qs.set(\"last_event_at_from_millis\", String(params.last_event_at_from_millis));\n if (typeof params?.last_event_at_to_millis === \"number\") qs.set(\"last_event_at_to_millis\", String(params.last_event_at_to_millis));\n if (typeof params?.click_count_min === \"number\") qs.set(\"click_count_min\", String(params.click_count_min));\n const response = await this.sendAdminRequest(\n `/internal/session-replays${qs.size ? `?${qs.toString()}` : \"\"}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getSessionReplay(sessionReplayId: string): Promise<AdminGetSessionReplayResponse> {\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async listSessionReplayChunks(sessionReplayId: string, params?: AdminListSessionReplayChunksOptions): Promise<AdminListSessionReplayChunksResponse> {\n const qs = new URLSearchParams();\n if (params?.cursor) qs.set(\"cursor\", params.cursor);\n if (typeof params?.limit === \"number\") qs.set(\"limit\", String(params.limit));\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}/chunks${qs.size ? `?${qs.toString()}` : \"\"}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getSessionReplayChunkEvents(sessionReplayId: string, chunkId: string): Promise<AdminGetSessionReplayChunkEventsResponse> {\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}/chunks/${encodeURIComponent(chunkId)}/events`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getSessionReplayEvents(sessionReplayId: string, options?: { offset?: number, limit?: number }): Promise<AdminGetSessionReplayAllEventsResponse> {\n const qs = new URLSearchParams();\n if (typeof options?.offset === \"number\") qs.set(\"offset\", String(options.offset));\n if (typeof options?.limit === \"number\") qs.set(\"limit\", String(options.limit));\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}/events${qs.size ? `?${qs.toString()}` : \"\"}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async refundTransaction(options: {\n type: \"subscription\" | \"one-time-purchase\",\n id: string,\n invoiceId?: string,\n amountUsd: MoneyAmount,\n /**\n * Lifecycle action for the source purchase:\n * \"now\" — end product access immediately (revokes product,\n * expires item grants, cancels Stripe sub if any).\n * \"at-period-end\" — schedule sub cancel-at-period-end; subscriptions\n * only — rejected for one-time purchases.\n * undefined — no lifecycle change; refund money only.\n */\n endAction?: \"now\" | \"at-period-end\",\n }): Promise<{ success: boolean, refundTransactionId: string }> {\n const response = await this.sendAdminRequest(\n \"/internal/payments/transactions/refund\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n type: options.type,\n id: options.id,\n ...(options.invoiceId !== undefined ? { invoice_id: options.invoiceId } : {}),\n amount_usd: options.amountUsd,\n ...(options.endAction !== undefined ? { end_action: options.endAction } : {}),\n }),\n },\n null,\n );\n const json = await response.json();\n return { success: json.success, refundTransactionId: json.refund_transaction_id };\n }\n\n\n async previewAffectedUsersByOnboardingChange(\n onboarding: { require_email_verification?: boolean },\n limit?: number,\n ): Promise<{\n affected_users: Array<{\n id: string,\n display_name: string | null,\n primary_email: string | null,\n restricted_reason: RestrictedReason,\n }>,\n total_affected_count: number,\n }> {\n const response = await this.sendAdminRequest(\n `/internal/onboarding/preview-affected-users${limit ? `?limit=${limit}` : ''}`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ onboarding }),\n },\n null,\n );\n return await response.json();\n }\n\n async listOutboxEmails(options?: { status?: string, simple_status?: string, user_id?: string, limit?: number, cursor?: string }): Promise<EmailOutboxCrud[\"Server\"][\"List\"]> {\n const qs = new URLSearchParams();\n if (options?.status) qs.set('status', options.status);\n if (options?.simple_status) qs.set('simple_status', options.simple_status);\n if (options?.user_id) qs.set('user_id', options.user_id);\n if (options?.limit !== undefined) qs.set('limit', options.limit.toString());\n if (options?.cursor) qs.set('cursor', options.cursor);\n const response = await this.sendServerRequest(\n `/emails/outbox${qs.size ? `?${qs.toString()}` : ''}`,\n { method: 'GET' },\n null,\n );\n return await response.json();\n }\n\n async getOutboxEmail(id: string): Promise<EmailOutboxCrud[\"Server\"][\"Read\"]> {\n const response = await this.sendServerRequest(\n `/emails/outbox/${id}`,\n { method: 'GET' },\n null,\n );\n return await response.json();\n }\n\n async updateOutboxEmail(id: string, data: EmailOutboxCrud[\"Server\"][\"Update\"]): Promise<EmailOutboxCrud[\"Server\"][\"Read\"]> {\n const response = await this.sendServerRequest(\n `/emails/outbox/${id}`,\n {\n method: 'PATCH',\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"admin-interface.js","names":[],"sources":["../../../src/interface/admin-interface.ts"],"sourcesContent":["import * as yup from \"yup\";\nimport type { EnvironmentConfigOverrideOverride } from \"../config/schema\";\nimport { KnownErrors } from \"../known-errors\";\nimport { branchConfigSourceSchema, type ConfigAgentRunApi, type RestrictedReason } from \"../schema-fields\";\nimport { AccessToken, InternalSession, RefreshToken } from \"../sessions\";\nimport type { MoneyAmount } from \"../utils/currency-constants\";\nimport { Result } from \"../utils/results\";\nimport { urlString } from \"../utils/urls\";\nimport type { AnalyticsClickmapDevice, AnalyticsClickmapKind, AnalyticsClickmapResponse, AnalyticsClickmapTokenResponse, MetricsResponse, MetricsUserCounts, UserActivityResponse } from \"./admin-metrics\";\nimport { EmailOutboxCrud } from \"./crud/email-outbox\";\nimport { InternalEmailsCrud } from \"./crud/emails\";\nimport { InternalApiKeysCrud } from \"./crud/internal-api-keys\";\nimport { ProjectPermissionDefinitionsCrud } from \"./crud/project-permissions\";\nimport { ProjectsCrud } from \"./crud/projects\";\nimport type {\n AdminGetSessionReplayAllEventsResponse,\n AdminGetSessionReplayChunkEventsResponse,\n AdminGetSessionReplayResponse,\n AdminListSessionReplayChunksOptions,\n AdminListSessionReplayChunksResponse,\n AdminListSessionReplaysOptions,\n AdminListSessionReplaysResponse\n} from \"./crud/session-replays\";\nimport { SvixTokenCrud } from \"./crud/svix-token\";\nimport { TeamPermissionDefinitionsCrud } from \"./crud/team-permissions\";\nimport type { Transaction, TransactionType } from \"./crud/transactions\";\nimport type { PlanUsageResponse } from \"./plan-usage\";\nimport { HexclaveServerInterface, ServerAuthApplicationOptions } from \"./server-interface\";\n\nexport type { PlanUsageResponse } from \"./plan-usage\";\n\ntype BranchConfigSourceApi = yup.InferType<typeof branchConfigSourceSchema>;\n\nexport type ChatContent = Array<\n | { type: \"text\", text: string }\n | { type: \"tool-call\", toolName: string, toolCallId: string, args: any, argsText: string, result: any }\n>;\n\nexport type AdminDeploymentRunJson = {\n id: string,\n service_id: string,\n status: \"queued\" | \"building\" | \"ready\" | \"error\" | \"canceled\",\n target: string,\n triggered_by: string,\n url: string | null,\n error: string | null,\n created_at_millis: number,\n finished_at_millis: number | null,\n};\n\n// One env var of a deployment service, normalized from the config-side\n// definition: \"plain\" vars carry their literal `value`, \"connection\" vars\n// carry the \"serviceId.outputKey\" reference they resolve to at deploy time,\n// and \"secret\" vars carry only the `secret_key` whose value is supplied via\n// `hexclave deploy --secret <key>=<value>` (never stored).\nexport type AdminDeploymentEnvVarJson = {\n key: string,\n type: \"plain\" | \"secret\" | \"connection\",\n value: string | null,\n secret_key: string | null,\n};\n\n// The config-side shape of one env var, mirroring\n// `deployments-alpha.services.<id>.env.<KEY>` in hexclave.config.ts: no type means a\n// plain value, \"secret\" requires `key`, \"connection\" requires a\n// \"serviceId.outputKey\" `value`.\nexport type AdminDeploymentEnvVarOptions =\n | { type?: undefined, value: string }\n | { type: \"secret\", key: string }\n | { type: \"connection\", value: string };\n\nexport type AdminDeploymentServiceJson = {\n id: string,\n type: \"vercel\",\n framework: string | null,\n install_command: string | null,\n build_command: string | null,\n output_directory: string | null,\n root_directory: string | null,\n provisioned: boolean,\n status: \"not_deployed\" | \"queued\" | \"building\" | \"deployed\" | \"failed\" | \"canceled\",\n has_successful_deploy: boolean,\n url: string | null,\n env: AdminDeploymentEnvVarJson[],\n domains: { hostname: string, is_primary: boolean, verified: boolean }[],\n latest_run: AdminDeploymentRunJson | null,\n};\n\n// null means \"unset this field\" (falls back to platform auto-detection);\n// undefined means \"leave unchanged\".\nexport type AdminDeploymentServiceBuildOptions = {\n framework?: string | null,\n install_command?: string | null,\n build_command?: string | null,\n output_directory?: string | null,\n root_directory?: string | null,\n};\n\nexport type AdminDeploymentDomainJson = {\n hostname: string,\n is_primary: boolean,\n verified: boolean,\n pending_first_deploy: boolean,\n dns_records: { type: string, name: string, value: string }[],\n};\n\nexport type AdminAuthApplicationOptions = ServerAuthApplicationOptions &(\n | {\n superSecretAdminKey: string,\n }\n | {\n projectOwnerSession: InternalSession | (() => Promise<string | null>),\n }\n);\n\nexport type InternalApiKeyCreateCrudRequest = {\n has_publishable_client_key: boolean,\n has_secret_server_key: boolean,\n has_super_secret_admin_key: boolean,\n expires_at_millis: number,\n description: string,\n};\n\nexport type InternalApiKeyCreateCrudResponse = InternalApiKeysCrud[\"Admin\"][\"Read\"] & {\n publishable_client_key?: string,\n secret_server_key?: string,\n super_secret_admin_key?: string,\n};\n\n\nexport class HexclaveAdminInterface extends HexclaveServerInterface {\n constructor(public readonly options: AdminAuthApplicationOptions) {\n super(options);\n }\n\n public async sendAdminRequest(path: string, options: RequestInit, session: InternalSession | null, requestType: \"admin\" = \"admin\") {\n return await this.sendServerRequest(\n path,\n {\n ...options,\n headers: {\n // Hexclave rebrand: emit x-hexclave-* request header; the backend proxy dual-accepts both names.\n \"x-hexclave-super-secret-admin-key\": \"superSecretAdminKey\" in this.options ? this.options.superSecretAdminKey : \"\",\n ...options.headers,\n },\n },\n session,\n requestType,\n );\n }\n\n protected async sendAdminRequestAndCatchKnownError<E extends typeof KnownErrors[keyof KnownErrors]>(\n path: string,\n requestOptions: RequestInit,\n tokenStoreOrNull: InternalSession | null,\n errorsToCatch: readonly E[],\n ): Promise<Result<\n Response & {\n usedTokens: {\n accessToken: AccessToken,\n refreshToken: RefreshToken | null,\n } | null,\n },\n InstanceType<E>\n >> {\n try {\n return Result.ok(await this.sendAdminRequest(path, requestOptions, tokenStoreOrNull));\n } catch (e) {\n for (const errorType of errorsToCatch) {\n if (errorType.isInstance(e)) {\n return Result.error(e as InstanceType<E>);\n }\n }\n throw e;\n }\n }\n\n async getProject(): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async updateProject(update: ProjectsCrud[\"Admin\"][\"Update\"]): Promise<ProjectsCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(update),\n },\n null,\n );\n return await response.json();\n }\n\n async createInternalApiKey(\n options: InternalApiKeyCreateCrudRequest,\n ): Promise<InternalApiKeyCreateCrudResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/api-keys\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n },\n null,\n );\n return await response.json();\n }\n\n async listInternalApiKeys(): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"][]> {\n const response = await this.sendAdminRequest(\"/internal/api-keys\", {}, null);\n const result = await response.json() as InternalApiKeysCrud[\"Admin\"][\"List\"];\n return result.items;\n }\n\n async revokeInternalApiKeyById(id: string) {\n await this.sendAdminRequest(\n `/internal/api-keys/${id}`, {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n revoked: true,\n }),\n },\n null,\n );\n }\n\n async getInternalApiKey(id: string, session: InternalSession): Promise<InternalApiKeysCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(`/internal/api-keys/${id}`, {}, session);\n return await response.json();\n }\n\n async listInternalEmailTemplates(): Promise<{ id: string, display_name: string, theme_id?: string, tsx_source: string }[]> {\n const response = await this.sendAdminRequest(`/internal/email-templates`, {}, null);\n const result = await response.json() as { templates: { id: string, display_name: string, theme_id?: string, tsx_source: string }[] };\n return result.templates;\n }\n\n async listInternalEmailDrafts(): Promise<{ id: string, display_name: string, theme_id?: string | undefined | false, tsx_source: string, sent_at_millis?: number | null }[]> {\n const response = await this.sendAdminRequest(`/internal/email-drafts`, {}, null);\n const result = await response.json() as { drafts: { id: string, display_name: string, theme_id?: string | undefined | false, tsx_source: string, sent_at_millis?: number | null }[] };\n return result.drafts;\n }\n\n async createEmailDraft(options: { display_name?: string, theme_id?: string | false, tsx_source?: string }): Promise<{ id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-drafts`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(options),\n },\n null,\n );\n return await response.json();\n }\n\n async updateEmailDraft(id: string, data: { display_name?: string, theme_id?: string | null | false, tsx_source?: string, sent_at_millis?: number | null }): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-drafts/${id}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n }\n\n async deleteEmailDraft(id: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-drafts/${id}`,\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async listEmailThemes(): Promise<{ id: string, display_name: string }[]> {\n const response = await this.sendAdminRequest(`/internal/email-themes`, {}, null);\n const result = await response.json() as { themes: { id: string, display_name: string }[] };\n return result.themes;\n }\n\n\n // Team permission definitions methods\n async listTeamPermissionDefinitions(): Promise<TeamPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/team-permission-definitions`, {}, null);\n const result = await response.json() as TeamPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async listTeamPermissionDefinitionsPaginated(\n options: { limit: number, cursor?: string, query?: string },\n ): Promise<{ items: TeamPermissionDefinitionsCrud['Admin']['Read'][], nextCursor: string | null }> {\n const params = new URLSearchParams();\n params.set(\"limit\", String(options.limit));\n if (options.cursor) params.set(\"cursor\", options.cursor);\n if (options.query) params.set(\"query\", options.query);\n const response = await this.sendAdminRequest(`/team-permission-definitions?${params.toString()}`, {}, null);\n const result = await response.json() as TeamPermissionDefinitionsCrud['Admin']['List'];\n return {\n items: result.items,\n nextCursor: result.pagination?.next_cursor ?? null,\n };\n }\n\n async createTeamPermissionDefinition(data: TeamPermissionDefinitionsCrud['Admin']['Create']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/team-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateTeamPermissionDefinition(permissionId: string, data: TeamPermissionDefinitionsCrud['Admin']['Update']): Promise<TeamPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteTeamPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/team-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async listProjectPermissionDefinitions(): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read'][]> {\n const response = await this.sendAdminRequest(`/project-permission-definitions`, {}, null);\n const result = await response.json() as ProjectPermissionDefinitionsCrud['Admin']['List'];\n return result.items;\n }\n\n async createProjectPermissionDefinition(data: ProjectPermissionDefinitionsCrud['Admin']['Create']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n \"/project-permission-definitions\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async updateProjectPermissionDefinition(permissionId: string, data: ProjectPermissionDefinitionsCrud['Admin']['Update']): Promise<ProjectPermissionDefinitionsCrud['Admin']['Read']> {\n const response = await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProjectPermissionDefinition(permissionId: string): Promise<void> {\n await this.sendAdminRequest(\n `/project-permission-definitions/${permissionId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async getSvixToken(): Promise<SvixTokenCrud[\"Admin\"][\"Read\"]> {\n const response = await this.sendAdminRequest(\n \"/webhooks/svix-token\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteProject(): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/projects/current\",\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async getMetrics(\n includeAnonymous: boolean = false,\n filters?: {\n country_code?: string,\n referrer?: string,\n browser?: string,\n os?: string,\n device?: string,\n since?: string,\n until?: string,\n },\n ): Promise<MetricsResponse> {\n const params = new URLSearchParams();\n if (includeAnonymous) {\n params.append('include_anonymous', 'true');\n }\n if (filters?.country_code) params.append('filter_country_code', filters.country_code);\n if (filters?.referrer) params.append('filter_referrer', filters.referrer);\n if (filters?.browser) params.append('filter_browser', filters.browser);\n if (filters?.os) params.append('filter_os', filters.os);\n if (filters?.device) params.append('filter_device', filters.device);\n if (filters?.since) params.append('filter_since', filters.since);\n if (filters?.until) params.append('filter_until', filters.until);\n const queryString = params.toString();\n const response = await this.sendAdminRequest(\n `/internal/metrics${queryString ? `?${queryString}` : ''}`,\n {\n method: \"GET\",\n },\n null,\n );\n const body = (await response.json()) as MetricsResponse;\n // The yup schema's .optional().default(...) fallbacks only run during\n // backend response validation, not on this client-side cast — apply them\n // here too so the one-release-cycle tolerance for older servers that the\n // schema comments promise actually holds for dashboard consumers. The\n // Partial views widen the static type (which claims these are always\n // defined) to match what an older server can actually send.\n const rawBody: Partial<MetricsResponse> = body;\n const rawAnalytics: Partial<MetricsResponse[\"analytics_overview\"]> = body.analytics_overview;\n return {\n ...body,\n live_users: rawBody.live_users ?? 0,\n hourly_users: rawBody.hourly_users ?? [],\n hourly_active_users: rawBody.hourly_active_users ?? [],\n analytics_overview: {\n ...body.analytics_overview,\n hourly_page_views: rawAnalytics.hourly_page_views ?? [],\n hourly_active_users: rawAnalytics.hourly_active_users ?? [],\n hourly_visitors: rawAnalytics.hourly_visitors ?? [],\n daily_anonymous_visitors_fallback: rawAnalytics.daily_anonymous_visitors_fallback ?? [],\n anonymous_visitors_fallback: rawAnalytics.anonymous_visitors_fallback ?? 0,\n top_regions: rawAnalytics.top_regions ?? [],\n bounce_rate: rawAnalytics.bounce_rate ?? 0,\n daily_bounce_rate: rawAnalytics.daily_bounce_rate ?? [],\n daily_avg_session_seconds: rawAnalytics.daily_avg_session_seconds ?? [],\n top_browsers: rawAnalytics.top_browsers ?? [],\n top_operating_systems: rawAnalytics.top_operating_systems ?? [],\n top_devices: rawAnalytics.top_devices ?? [],\n },\n };\n }\n\n async getPlanUsage(): Promise<PlanUsageResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/plan-usage\",\n {\n method: \"GET\",\n },\n null,\n );\n return await response.json();\n }\n\n async getUserActivity(userId: string): Promise<UserActivityResponse> {\n const response = await this.sendAdminRequest(\n urlString`/internal/user-activity?user_id=${userId}`,\n {\n method: \"GET\",\n },\n null,\n );\n return (await response.json()) as UserActivityResponse;\n }\n\n async getAnalyticsClickmap(options: {\n kind: AnalyticsClickmapKind,\n member_user_ids?: string[],\n route_path?: string,\n route_regex?: string,\n url_pattern?: string,\n user_id?: string,\n replay_id?: string,\n device?: AnalyticsClickmapDevice,\n viewport_width_min?: number,\n viewport_width_max?: number,\n sampling?: number,\n since: string,\n until: string,\n }): Promise<AnalyticsClickmapResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/analytics/clickmap\",\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(options),\n },\n null,\n );\n return (await response.json()) as AnalyticsClickmapResponse;\n }\n\n async createAnalyticsClickmapToken(options: {\n origin: string,\n }): Promise<AnalyticsClickmapTokenResponse> {\n const response = await this.sendAdminRequest(\n \"/internal/analytics/clickmap-token\",\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(options),\n },\n null,\n );\n return (await response.json()) as AnalyticsClickmapTokenResponse;\n }\n\n async getMetricsUserCounts(): Promise<MetricsUserCounts> {\n const response = await this.sendAdminRequest(\n \"/internal/metrics/user-counts\",\n {\n method: \"GET\",\n },\n null,\n );\n return (await response.json()) as MetricsUserCounts;\n }\n\n async sendTestEmail(data: {\n recipient_email: string,\n email_config: {\n host: string,\n port: number,\n username: string,\n password: string,\n sender_email: string,\n sender_name: string,\n },\n }): Promise<{ success: boolean, error_message?: string }> {\n const response = await this.sendAdminRequest(`/internal/send-test-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async sendTestWebhook(data: {\n endpoint_id: string,\n }): Promise<{ success: boolean, error_message?: string }> {\n const response = await this.sendAdminRequest(`/internal/send-test-webhook`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async listSentEmails(): Promise<InternalEmailsCrud[\"Admin\"][\"List\"]> {\n const response = await this.sendAdminRequest(\"/internal/emails\", {\n method: \"GET\",\n }, null);\n return await response.json();\n }\n\n async setupManagedEmailProvider(data: {\n subdomain: string,\n sender_local_part: string,\n }): Promise<{\n domain_id: string,\n subdomain: string,\n sender_local_part: string,\n name_server_records: string[],\n status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\",\n }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/setup\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async checkManagedEmailStatus(data: {\n domain_id: string,\n subdomain: string,\n sender_local_part: string,\n }): Promise<{ status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\" }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/check\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async listManagedEmailDomains(): Promise<{\n items: Array<{\n domain_id: string,\n subdomain: string,\n sender_local_part: string,\n status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\",\n name_server_records: string[],\n }>,\n }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/list\", {\n method: \"GET\",\n }, null);\n return await response.json();\n }\n\n async deleteManagedEmailDomain(data: {\n resend_domain_id: string,\n }): Promise<{ status: \"deleted\" }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/delete\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async applyManagedEmailProvider(data: {\n domain_id: string,\n }): Promise<{ status: \"applied\" }> {\n const response = await this.sendAdminRequest(\"/internal/emails/managed-onboarding/apply\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n }, null);\n return await response.json();\n }\n\n async sendSignInInvitationEmail(\n email: string,\n callbackUrl: string,\n ): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/send-sign-in-invitation\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n email,\n callback_url: callbackUrl,\n }),\n },\n null,\n );\n }\n\n async saveChatMessage(threadId: string, message: any): Promise<void> {\n await this.sendAdminRequest(\n `/internal/ai-chat/${threadId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ message }),\n },\n null,\n );\n }\n\n async listChatMessages(threadId: string): Promise<{ messages: Array<any> }> {\n const response = await this.sendAdminRequest(\n `/internal/ai-chat/${threadId}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async renderEmailPreview(options: {\n themeId?: string | null | false,\n themeTsxSource?: string,\n templateId?: string,\n templateTsxSource?: string,\n editableMarkers?: boolean,\n editableSource?: 'template' | 'theme' | 'both',\n }): Promise<{ html: string, editable_regions?: Record<string, unknown> }> {\n const response = await this.sendAdminRequest(`/emails/render-email`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n theme_id: options.themeId,\n theme_tsx_source: options.themeTsxSource,\n template_id: options.templateId,\n template_tsx_source: options.templateTsxSource,\n editable_markers: options.editableMarkers,\n editable_source: options.editableSource,\n }),\n }, null);\n return await response.json();\n }\n\n async rewriteTemplateSourceWithAI(templateTsxSource: string): Promise<{ tsx_source: string }> {\n const response = await this.sendAdminRequest(`/internal/rewrite-template-source`, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n template_tsx_source: templateTsxSource,\n }),\n }, null);\n return await response.json();\n }\n\n async createEmailTheme(displayName: string): Promise<{ id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n display_name: displayName,\n }),\n },\n null,\n );\n return await response.json();\n }\n\n async getEmailTheme(id: string): Promise<{ display_name: string, tsx_source: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async updateEmailTheme(id: string, tsxSource: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n tsx_source: tsxSource,\n }),\n },\n null,\n );\n }\n\n async deleteEmailTheme(id: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-themes/${id}`,\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async updateEmailTemplate(id: string, tsxSource: string, themeId: string | null | false): Promise<{ rendered_html: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-templates/${id}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ tsx_source: tsxSource, theme_id: themeId }),\n },\n null,\n );\n return await response.json();\n }\n\n async getConfig(): Promise<{ config_string: string }> {\n const response = await this.sendAdminRequest(\n `/internal/config`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getConfigOverride(level: \"project\" | \"branch\" | \"environment\"): Promise<{ config_string: string }> {\n const response = await this.sendAdminRequest(\n `/internal/config/override/${level}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async setConfigOverride(level: \"project\" | \"branch\" | \"environment\", configOverride: any, source?: BranchConfigSourceApi): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/override/${level}`,\n {\n method: \"PUT\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n config_string: JSON.stringify(configOverride),\n ...(source && { source }),\n }),\n },\n null,\n );\n }\n\n async updateConfigOverride(level: \"project\" | \"branch\" | \"environment\", configOverrideOverride: any): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/override/${level}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ config_override_string: JSON.stringify(configOverrideOverride) }),\n },\n null,\n );\n }\n\n async getPushedConfigSource(): Promise<BranchConfigSourceApi> {\n const response = await this.sendAdminRequest(\n `/internal/config/source`,\n { method: \"GET\" },\n null,\n );\n const data = await response.json();\n return data.source;\n }\n\n async unlinkPushedConfigSource(): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/source`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n /**\n * Reads a specific config-agent run's state (or `null`) for the linked GitHub\n * repo. Polled by the dashboard — using the id returned by `applyConfigViaAgent`\n * — for live progress and the review diff. Runs are independent, so each is\n * addressed by its own id rather than \"the\" run on the branch.\n */\n async getConfigAgentRun(runId: string): Promise<ConfigAgentRunApi | null> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/run?run_id=${encodeURIComponent(runId)}`,\n { method: \"GET\" },\n null,\n );\n const data = await response.json();\n return data.agent_run ?? null;\n }\n\n /**\n * Applies a dashboard config change to the linked GitHub repo by running the\n * config agent in a sandbox (server-side). Returns immediately with the new run's\n * `id`; poll `getConfigAgentRun(id)` for progress. The GitHub access token is the\n * caller's own OAuth token and is used transiently server-side.\n */\n async applyConfigViaAgent(options: { configUpdate: EnvironmentConfigOverrideOverride, githubAccessToken: string }): Promise<{ status: \"started\", id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/apply`,\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n github_access_token: options.githubAccessToken,\n config_update_string: JSON.stringify(options.configUpdate),\n }),\n },\n null,\n );\n return await response.json();\n }\n\n /**\n * Cancels a specific in-flight agent-driven config write: hard-stops the sandbox\n * so the agent stops mid-work. Also cancels runs in `awaiting_review`. No revert\n * — if the agent already pushed, the commit stays. Returns `not-running` if the\n * run is gone or already terminal.\n */\n async cancelConfigAgentRun(runId: string): Promise<{ status: \"cancelling\" | \"not-running\" }> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/cancel`,\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ run_id: runId }),\n },\n null,\n );\n return await response.json();\n }\n\n /**\n * Commits a specific run's reviewed change to GitHub. Only valid when that run is in\n * `awaiting_review` status; the change (diff + base commit) was captured at apply time\n * and is rebuilt + pushed via the GitHub API here, so no live sandbox is involved.\n * Returns `not-awaiting-review` if the run isn't in a committable state.\n */\n async commitConfigAgentRun(runId: string, options: { githubAccessToken: string, commitMessage?: string }): Promise<{ status: \"committing\" | \"not-awaiting-review\" }> {\n const response = await this.sendAdminRequest(\n `/internal/config/github/commit`,\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n run_id: runId,\n github_access_token: options.githubAccessToken,\n ...(options.commitMessage ? { commit_message: options.commitMessage } : {}),\n }),\n },\n null,\n );\n return await response.json();\n }\n\n async resetConfigOverrideKeys(level: \"branch\" | \"environment\", keys: string[]): Promise<void> {\n await this.sendAdminRequest(\n `/internal/config/override/${level}/reset-keys`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ keys }),\n },\n null,\n );\n }\n async createEmailTemplate(displayName: string): Promise<{ id: string }> {\n const response = await this.sendAdminRequest(\n `/internal/email-templates`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n display_name: displayName,\n }),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteEmailTemplate(id: string): Promise<void> {\n await this.sendAdminRequest(\n `/internal/email-templates/${id}`,\n {\n method: \"DELETE\",\n },\n null,\n );\n }\n\n async setupPayments(): Promise<{ url: string }> {\n const response = await this.sendAdminRequest(\n \"/internal/payments/setup\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async getStripeAccountInfo(): Promise<null | { account_id: string, charges_enabled: boolean, details_submitted: boolean, payouts_enabled: boolean }> {\n const response = await this.sendAdminRequestAndCatchKnownError(\n \"/internal/payments/stripe/account-info\",\n {},\n null,\n [KnownErrors.StripeAccountInfoNotFound],\n );\n if (response.status === \"error\") {\n return null;\n }\n return await response.data.json();\n }\n\n async getPaymentMethodConfigs(): Promise<{ configId: string, methods: Array<{ id: string, name: string, enabled: boolean, available: boolean, overridable: boolean }> } | null> {\n const response = await this.sendAdminRequestAndCatchKnownError(\n \"/internal/payments/method-configs\",\n { method: \"GET\" },\n null,\n [KnownErrors.StripeAccountInfoNotFound],\n );\n if (response.status === \"error\") {\n return null;\n }\n const data = await response.data.json();\n return {\n configId: data.config_id,\n methods: data.methods,\n };\n }\n\n async updatePaymentMethodConfigs(configId: string, updates: Record<string, 'on' | 'off'>): Promise<void> {\n await this.sendAdminRequest(\n \"/internal/payments/method-configs\",\n {\n method: \"PATCH\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ config_id: configId, updates }),\n },\n null,\n );\n }\n\n async createStripeWidgetAccountSession(): Promise<{ client_secret: string }> {\n const response = await this.sendAdminRequest(\n \"/internal/payments/stripe-widgets/account-session\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({}),\n },\n null,\n );\n return await response.json();\n }\n\n async listTransactions(params?: { cursor?: string, limit?: number, type?: TransactionType, customerType?: 'user' | 'team' | 'custom', customerId?: string }): Promise<{ transactions: Transaction[], nextCursor: string | null }> {\n const qs = new URLSearchParams();\n if (params?.cursor) qs.set('cursor', params.cursor);\n if (typeof params?.limit === 'number') qs.set('limit', String(params.limit));\n if (params?.type) qs.set('type', params.type);\n if (params?.customerType) qs.set('customer_type', params.customerType);\n if (params?.customerId) qs.set('customer_id', params.customerId);\n const response = await this.sendAdminRequest(\n `/internal/payments/transactions${qs.size ? `?${qs.toString()}` : ''}`,\n { method: 'GET' },\n null,\n );\n const json = await response.json() as { transactions: Transaction[], next_cursor: string | null };\n return { transactions: json.transactions, nextCursor: json.next_cursor };\n }\n\n async listSessionReplays(params?: AdminListSessionReplaysOptions): Promise<AdminListSessionReplaysResponse> {\n const qs = new URLSearchParams();\n if (params?.cursor) qs.set(\"cursor\", params.cursor);\n if (typeof params?.limit === \"number\") qs.set(\"limit\", String(params.limit));\n if (params?.user_ids && params.user_ids.length > 0) qs.set(\"user_ids\", params.user_ids.join(\",\"));\n if (params?.team_ids && params.team_ids.length > 0) qs.set(\"team_ids\", params.team_ids.join(\",\"));\n if (typeof params?.duration_ms_min === \"number\") qs.set(\"duration_ms_min\", String(params.duration_ms_min));\n if (typeof params?.duration_ms_max === \"number\") qs.set(\"duration_ms_max\", String(params.duration_ms_max));\n if (typeof params?.last_event_at_from_millis === \"number\") qs.set(\"last_event_at_from_millis\", String(params.last_event_at_from_millis));\n if (typeof params?.last_event_at_to_millis === \"number\") qs.set(\"last_event_at_to_millis\", String(params.last_event_at_to_millis));\n if (typeof params?.click_count_min === \"number\") qs.set(\"click_count_min\", String(params.click_count_min));\n const response = await this.sendAdminRequest(\n `/internal/session-replays${qs.size ? `?${qs.toString()}` : \"\"}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getSessionReplay(sessionReplayId: string): Promise<AdminGetSessionReplayResponse> {\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async listSessionReplayChunks(sessionReplayId: string, params?: AdminListSessionReplayChunksOptions): Promise<AdminListSessionReplayChunksResponse> {\n const qs = new URLSearchParams();\n if (params?.cursor) qs.set(\"cursor\", params.cursor);\n if (typeof params?.limit === \"number\") qs.set(\"limit\", String(params.limit));\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}/chunks${qs.size ? `?${qs.toString()}` : \"\"}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getSessionReplayChunkEvents(sessionReplayId: string, chunkId: string): Promise<AdminGetSessionReplayChunkEventsResponse> {\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}/chunks/${encodeURIComponent(chunkId)}/events`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async getSessionReplayEvents(sessionReplayId: string, options?: { offset?: number, limit?: number }): Promise<AdminGetSessionReplayAllEventsResponse> {\n const qs = new URLSearchParams();\n if (typeof options?.offset === \"number\") qs.set(\"offset\", String(options.offset));\n if (typeof options?.limit === \"number\") qs.set(\"limit\", String(options.limit));\n const response = await this.sendAdminRequest(\n `/internal/session-replays/${encodeURIComponent(sessionReplayId)}/events${qs.size ? `?${qs.toString()}` : \"\"}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async refundTransaction(options: {\n type: \"subscription\" | \"one-time-purchase\",\n id: string,\n invoiceId?: string,\n amountUsd: MoneyAmount,\n /**\n * Lifecycle action for the source purchase:\n * \"now\" — end product access immediately (revokes product,\n * expires item grants, cancels Stripe sub if any).\n * \"at-period-end\" — schedule sub cancel-at-period-end; subscriptions\n * only — rejected for one-time purchases.\n * undefined — no lifecycle change; refund money only.\n */\n endAction?: \"now\" | \"at-period-end\",\n }): Promise<{ success: boolean, refundTransactionId: string }> {\n const response = await this.sendAdminRequest(\n \"/internal/payments/transactions/refund\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n type: options.type,\n id: options.id,\n ...(options.invoiceId !== undefined ? { invoice_id: options.invoiceId } : {}),\n amount_usd: options.amountUsd,\n ...(options.endAction !== undefined ? { end_action: options.endAction } : {}),\n }),\n },\n null,\n );\n const json = await response.json();\n return { success: json.success, refundTransactionId: json.refund_transaction_id };\n }\n\n\n async previewAffectedUsersByOnboardingChange(\n onboarding: { require_email_verification?: boolean },\n limit?: number,\n ): Promise<{\n affected_users: Array<{\n id: string,\n display_name: string | null,\n primary_email: string | null,\n restricted_reason: RestrictedReason,\n }>,\n total_affected_count: number,\n }> {\n const response = await this.sendAdminRequest(\n `/internal/onboarding/preview-affected-users${limit ? `?limit=${limit}` : ''}`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ onboarding }),\n },\n null,\n );\n return await response.json();\n }\n\n async listOutboxEmails(options?: { status?: string, simple_status?: string, user_id?: string, limit?: number, cursor?: string }): Promise<EmailOutboxCrud[\"Server\"][\"List\"]> {\n const qs = new URLSearchParams();\n if (options?.status) qs.set('status', options.status);\n if (options?.simple_status) qs.set('simple_status', options.simple_status);\n if (options?.user_id) qs.set('user_id', options.user_id);\n if (options?.limit !== undefined) qs.set('limit', options.limit.toString());\n if (options?.cursor) qs.set('cursor', options.cursor);\n const response = await this.sendServerRequest(\n `/emails/outbox${qs.size ? `?${qs.toString()}` : ''}`,\n { method: 'GET' },\n null,\n );\n return await response.json();\n }\n\n async getOutboxEmail(id: string): Promise<EmailOutboxCrud[\"Server\"][\"Read\"]> {\n const response = await this.sendServerRequest(\n `/emails/outbox/${id}`,\n { method: 'GET' },\n null,\n );\n return await response.json();\n }\n\n async updateOutboxEmail(id: string, data: EmailOutboxCrud[\"Server\"][\"Update\"]): Promise<EmailOutboxCrud[\"Server\"][\"Read\"]> {\n const response = await this.sendServerRequest(\n `/emails/outbox/${id}`,\n {\n method: 'PATCH',\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(data),\n },\n null,\n );\n return await response.json();\n }\n\n // ---- Deployments app ------------------------------------------------------\n\n async listDeploymentServices(): Promise<AdminDeploymentServiceJson[]> {\n const response = await this.sendAdminRequest(\n \"/deployments/services\",\n { method: \"GET\" },\n null,\n );\n return (await response.json()).items;\n }\n\n async createDeploymentService(id: string, build: AdminDeploymentServiceBuildOptions): Promise<AdminDeploymentServiceJson> {\n const response = await this.sendAdminRequest(\n \"/deployments/services\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ id, ...build }),\n },\n null,\n );\n return await response.json();\n }\n\n async updateDeploymentService(serviceId: string, update: AdminDeploymentServiceBuildOptions & {\n // Replaces the service's whole env var set (config-side definition shape).\n env?: Record<string, AdminDeploymentEnvVarOptions>,\n }): Promise<AdminDeploymentServiceJson> {\n const response = await this.sendAdminRequest(\n urlString`/deployments/services/${serviceId}`,\n {\n method: \"PATCH\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(update),\n },\n null,\n );\n return await response.json();\n }\n\n async deleteDeploymentService(serviceId: string): Promise<void> {\n await this.sendAdminRequest(\n urlString`/deployments/services/${serviceId}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n async listDeploymentRuns(serviceId: string, options?: { limit?: number }): Promise<AdminDeploymentRunJson[]> {\n const response = await this.sendAdminRequest(\n urlString`/deployments/services/${serviceId}/runs` + (options?.limit !== undefined ? `?limit=${options.limit}` : \"\"),\n { method: \"GET\" },\n null,\n );\n return (await response.json()).items;\n }\n\n async getDeploymentRunLogs(runId: string, options?: { signal?: AbortSignal }): Promise<string> {\n // The endpoint streams chunked plain text until the run is terminal (or a\n // server-side cap); reading the full body gives \"the logs so far\". Pass a\n // signal so an abandoned view can abort — otherwise the server keeps\n // following the build for minutes.\n const response = await this.sendAdminRequest(\n urlString`/deployments/runs/${runId}/logs`,\n { method: \"GET\", signal: options?.signal },\n null,\n );\n return await response.text();\n }\n\n async addDeploymentServiceDomain(serviceId: string, hostname: string, options?: { isPrimary?: boolean }): Promise<void> {\n await this.sendAdminRequest(\n urlString`/deployments/services/${serviceId}/domains`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({ hostname, ...(options?.isPrimary ? { is_primary: true } : {}) }),\n },\n null,\n );\n }\n\n async getDeploymentServiceDomain(serviceId: string, hostname: string): Promise<AdminDeploymentDomainJson> {\n const response = await this.sendAdminRequest(\n urlString`/deployments/services/${serviceId}/domains/${hostname}`,\n { method: \"GET\" },\n null,\n );\n return await response.json();\n }\n\n async deleteDeploymentServiceDomain(serviceId: string, hostname: string): Promise<void> {\n await this.sendAdminRequest(\n urlString`/deployments/services/${serviceId}/domains/${hostname}`,\n { method: \"DELETE\" },\n null,\n );\n }\n\n}\n"],"mappings":"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"}
@@ -150,23 +150,23 @@ declare const MetricsEmailOverviewSchema: yup.ObjectSchema<{
150
150
  activity: number;
151
151
  }[];
152
152
  daily_emails_by_status: {
153
+ error: number;
153
154
  date: string;
154
155
  ok: number;
155
- error: number;
156
156
  in_progress: number;
157
157
  }[];
158
158
  emails_sent: number;
159
159
  recent_emails: {
160
+ status: string;
160
161
  id: string;
161
- created_at_millis: number;
162
162
  subject: string;
163
- status: string;
163
+ created_at_millis: number;
164
164
  }[];
165
165
  deliverability_status: {
166
166
  error: number;
167
- bounced: number;
168
167
  in_progress: number;
169
168
  delivered: number;
169
+ bounced: number;
170
170
  };
171
171
  deliverability_rate: number;
172
172
  bounce_rate: number;
@@ -369,7 +369,7 @@ declare const UserActivityResponseBodySchema: yup.ObjectSchema<{
369
369
  data_points: undefined;
370
370
  }, "">;
371
371
  declare const AnalyticsClickmapKindSchema: yup.StringSchema<"team_user_hour_of_week" | "session_replay_clicks", yup.AnyObject, undefined, "">;
372
- declare const AnalyticsClickmapDeviceSchema: yup.StringSchema<"mobile" | "tv" | "widescreen" | "desktop" | "laptop" | "tablet", yup.AnyObject, undefined, "">;
372
+ declare const AnalyticsClickmapDeviceSchema: yup.StringSchema<"tv" | "widescreen" | "desktop" | "laptop" | "tablet" | "mobile", yup.AnyObject, undefined, "">;
373
373
  declare const AnalyticsClickmapTokenResponseBodySchema: yup.ObjectSchema<{
374
374
  token: string;
375
375
  origin: string;
@@ -403,17 +403,17 @@ declare const AnalyticsClickmapResponseBodySchema: yup.ObjectSchema<{
403
403
  replays: number;
404
404
  }[];
405
405
  users: {
406
+ primary_email: string | null;
406
407
  display_name: string | null;
407
408
  id: string;
408
- primary_email: string | null;
409
409
  profile_image_url: string | null;
410
410
  clicks: number;
411
411
  replays: number;
412
412
  last_event_at_millis: number;
413
413
  }[];
414
414
  replays: {
415
- id: string;
416
415
  user_id: string | null;
416
+ id: string;
417
417
  clicks: number;
418
418
  last_event_at_millis: number;
419
419
  route_path: string | null;
@@ -443,9 +443,9 @@ declare const AnalyticsClickmapResponseBodySchema: yup.ObjectSchema<{
443
443
  elements: never[];
444
444
  }, "">;
445
445
  declare const MetricsActiveUsersByCountrySchema: yup.MixedSchema<Record<string, {
446
+ primary_email: string | null;
446
447
  display_name: string | null;
447
448
  id: string;
448
- primary_email: string | null;
449
449
  profile_image_url: string | null;
450
450
  signed_up_at_millis: number;
451
451
  last_active_at_millis: number | null;
@@ -471,25 +471,25 @@ declare const MetricsResponseBodySchema: yup.ObjectSchema<{
471
471
  }[];
472
472
  users_by_country: Record<string, number>;
473
473
  active_users_by_country: Record<string, {
474
+ primary_email: string | null;
474
475
  display_name: string | null;
475
476
  id: string;
476
- primary_email: string | null;
477
477
  profile_image_url: string | null;
478
478
  signed_up_at_millis: number;
479
479
  last_active_at_millis: number | null;
480
480
  }[]>;
481
481
  recently_registered: {
482
+ primary_email: string | null;
482
483
  display_name: string | null;
483
484
  id: string;
484
- primary_email: string | null;
485
485
  profile_image_url: string | null;
486
486
  signed_up_at_millis: number;
487
487
  last_active_at_millis: number | null;
488
488
  }[];
489
489
  recently_active: {
490
+ primary_email: string | null;
490
491
  display_name: string | null;
491
492
  id: string;
492
- primary_email: string | null;
493
493
  profile_image_url: string | null;
494
494
  signed_up_at_millis: number;
495
495
  last_active_at_millis: number | null;
@@ -563,23 +563,23 @@ declare const MetricsResponseBodySchema: yup.ObjectSchema<{
563
563
  emails_by_status: Record<string, number>;
564
564
  total_emails: number;
565
565
  daily_emails_by_status: {
566
+ error: number;
566
567
  date: string;
567
568
  ok: number;
568
- error: number;
569
569
  in_progress: number;
570
570
  }[];
571
571
  emails_sent: number;
572
572
  recent_emails: {
573
+ status: string;
573
574
  id: string;
574
- created_at_millis: number;
575
575
  subject: string;
576
- status: string;
576
+ created_at_millis: number;
577
577
  }[];
578
578
  deliverability_status: {
579
579
  error: number;
580
- bounced: number;
581
580
  in_progress: number;
582
581
  delivered: number;
582
+ bounced: number;
583
583
  };
584
584
  deliverability_rate: number;
585
585
  bounce_rate: number;