@sylphx/management 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/LICENSE +21 -0
  3. package/README.md +157 -101
  4. package/dist/admin.d.ts +141 -0
  5. package/dist/admin.d.ts.map +1 -0
  6. package/dist/admin.js +96 -0
  7. package/dist/adminBootstrap.d.ts +46 -0
  8. package/dist/adminBootstrap.d.ts.map +1 -0
  9. package/dist/adminBootstrap.js +33 -0
  10. package/dist/adminBuilds.d.ts +72 -0
  11. package/dist/adminBuilds.d.ts.map +1 -0
  12. package/dist/adminBuilds.js +29 -0
  13. package/dist/adminEnvServices.d.ts +41 -0
  14. package/dist/adminEnvServices.d.ts.map +1 -0
  15. package/dist/adminEnvServices.js +22 -0
  16. package/dist/adminRateLimits.d.ts +61 -0
  17. package/dist/adminRateLimits.d.ts.map +1 -0
  18. package/dist/adminRateLimits.js +44 -0
  19. package/dist/adminReconcile.d.ts +45 -0
  20. package/dist/adminReconcile.d.ts.map +1 -0
  21. package/dist/adminReconcile.js +20 -0
  22. package/dist/adminResources.d.ts +97 -0
  23. package/dist/adminResources.d.ts.map +1 -0
  24. package/dist/adminResources.js +40 -0
  25. package/dist/adminSecrets.d.ts +60 -0
  26. package/dist/adminSecrets.d.ts.map +1 -0
  27. package/dist/adminSecrets.js +43 -0
  28. package/dist/adminTenants.d.ts +41 -0
  29. package/dist/adminTenants.d.ts.map +1 -0
  30. package/dist/adminTenants.js +29 -0
  31. package/dist/ai.d.ts +148 -0
  32. package/dist/ai.d.ts.map +1 -0
  33. package/dist/ai.js +29 -0
  34. package/dist/analytics.d.ts +49 -0
  35. package/dist/analytics.d.ts.map +1 -0
  36. package/dist/analytics.js +23 -0
  37. package/dist/auth.d.ts +39 -0
  38. package/dist/auth.d.ts.map +1 -0
  39. package/dist/auth.js +27 -0
  40. package/dist/authSettings.d.ts +71 -0
  41. package/dist/authSettings.d.ts.map +1 -0
  42. package/dist/authSettings.js +39 -0
  43. package/dist/backups.d.ts +66 -0
  44. package/dist/backups.d.ts.map +1 -0
  45. package/dist/backups.js +32 -0
  46. package/dist/billing.d.ts +105 -0
  47. package/dist/billing.d.ts.map +1 -0
  48. package/dist/billing.js +42 -0
  49. package/dist/billingSettings.d.ts +78 -0
  50. package/dist/billingSettings.d.ts.map +1 -0
  51. package/dist/billingSettings.js +54 -0
  52. package/dist/branchDatabases.d.ts +53 -0
  53. package/dist/branchDatabases.d.ts.map +1 -0
  54. package/dist/branchDatabases.js +38 -0
  55. package/dist/certs.d.ts +63 -0
  56. package/dist/certs.d.ts.map +1 -0
  57. package/dist/certs.js +28 -0
  58. package/dist/ciSettings.d.ts +77 -0
  59. package/dist/ciSettings.d.ts.map +1 -0
  60. package/dist/ciSettings.js +41 -0
  61. package/dist/client.d.ts +36 -38
  62. package/dist/client.d.ts.map +1 -1
  63. package/dist/client.js +32 -90
  64. package/dist/consent.d.ts +111 -0
  65. package/dist/consent.d.ts.map +1 -0
  66. package/dist/consent.js +35 -0
  67. package/dist/databases.d.ts +17 -0
  68. package/dist/databases.d.ts.map +1 -0
  69. package/dist/databases.js +32 -0
  70. package/dist/deployments.d.ts +22 -0
  71. package/dist/deployments.d.ts.map +1 -0
  72. package/dist/deployments.js +39 -0
  73. package/dist/domains.d.ts +26 -0
  74. package/dist/domains.d.ts.map +1 -0
  75. package/dist/domains.js +39 -0
  76. package/dist/edgeDeployments.d.ts +43 -0
  77. package/dist/edgeDeployments.d.ts.map +1 -0
  78. package/dist/edgeDeployments.js +32 -0
  79. package/dist/email.d.ts +45 -0
  80. package/dist/email.d.ts.map +1 -0
  81. package/dist/email.js +21 -0
  82. package/dist/engagement.d.ts +100 -0
  83. package/dist/engagement.d.ts.map +1 -0
  84. package/dist/engagement.js +28 -0
  85. package/dist/envVars.d.ts +17 -0
  86. package/dist/envVars.d.ts.map +1 -0
  87. package/dist/envVars.js +34 -0
  88. package/dist/environments.d.ts +41 -0
  89. package/dist/environments.d.ts.map +1 -0
  90. package/dist/environments.js +54 -0
  91. package/dist/errors.d.ts +8 -3
  92. package/dist/errors.d.ts.map +1 -1
  93. package/dist/errors.js +8 -2
  94. package/dist/experiments.d.ts +80 -0
  95. package/dist/experiments.d.ts.map +1 -0
  96. package/dist/experiments.js +23 -0
  97. package/dist/flags.d.ts +85 -0
  98. package/dist/flags.d.ts.map +1 -0
  99. package/dist/flags.js +25 -0
  100. package/dist/functions.d.ts +39 -0
  101. package/dist/functions.d.ts.map +1 -0
  102. package/dist/functions.js +40 -0
  103. package/dist/github.d.ts +33 -0
  104. package/dist/github.d.ts.map +1 -0
  105. package/dist/github.js +22 -0
  106. package/dist/http.d.ts +28 -0
  107. package/dist/http.d.ts.map +1 -0
  108. package/dist/http.js +71 -0
  109. package/dist/index.d.ts +85 -20
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +86 -20
  112. package/dist/kv.d.ts +66 -0
  113. package/dist/kv.d.ts.map +1 -0
  114. package/dist/kv.js +36 -0
  115. package/dist/logs.d.ts +14 -0
  116. package/dist/logs.d.ts.map +1 -0
  117. package/dist/logs.js +17 -0
  118. package/dist/management.d.ts +55 -0
  119. package/dist/management.d.ts.map +1 -0
  120. package/dist/management.js +31 -0
  121. package/dist/monitoring.d.ts +65 -0
  122. package/dist/monitoring.d.ts.map +1 -0
  123. package/dist/monitoring.js +29 -0
  124. package/dist/newsletter.d.ts +279 -0
  125. package/dist/newsletter.d.ts.map +1 -0
  126. package/dist/newsletter.js +98 -0
  127. package/dist/notifications.d.ts +30 -0
  128. package/dist/notifications.d.ts.map +1 -0
  129. package/dist/notifications.js +19 -0
  130. package/dist/oidc.d.ts +46 -0
  131. package/dist/oidc.d.ts.map +1 -0
  132. package/dist/oidc.js +25 -0
  133. package/dist/organizations.d.ts +24 -0
  134. package/dist/organizations.d.ts.map +1 -0
  135. package/dist/organizations.js +42 -0
  136. package/dist/plans.d.ts +66 -0
  137. package/dist/plans.d.ts.map +1 -0
  138. package/dist/plans.js +42 -0
  139. package/dist/privacy.d.ts +138 -0
  140. package/dist/privacy.d.ts.map +1 -0
  141. package/dist/privacy.js +41 -0
  142. package/dist/projects.d.ts +14 -0
  143. package/dist/projects.d.ts.map +1 -0
  144. package/dist/projects.js +22 -0
  145. package/dist/realtime.d.ts +33 -0
  146. package/dist/realtime.d.ts.map +1 -0
  147. package/dist/realtime.js +19 -0
  148. package/dist/referrals.d.ts +100 -0
  149. package/dist/referrals.d.ts.map +1 -0
  150. package/dist/referrals.js +33 -0
  151. package/dist/refresh.d.ts +44 -0
  152. package/dist/refresh.d.ts.map +1 -0
  153. package/dist/refresh.js +33 -0
  154. package/dist/remoteConfig.d.ts +15 -0
  155. package/dist/remoteConfig.d.ts.map +1 -0
  156. package/dist/remoteConfig.js +35 -0
  157. package/dist/resourceBindings.d.ts +19 -0
  158. package/dist/resourceBindings.d.ts.map +1 -0
  159. package/dist/resourceBindings.js +24 -0
  160. package/dist/runners.d.ts +60 -0
  161. package/dist/runners.d.ts.map +1 -0
  162. package/dist/runners.js +17 -0
  163. package/dist/saml.d.ts +44 -0
  164. package/dist/saml.d.ts.map +1 -0
  165. package/dist/saml.js +77 -0
  166. package/dist/sandboxes.d.ts +15 -0
  167. package/dist/sandboxes.d.ts.map +1 -0
  168. package/dist/sandboxes.js +18 -0
  169. package/dist/search.d.ts +66 -0
  170. package/dist/search.d.ts.map +1 -0
  171. package/dist/search.js +29 -0
  172. package/dist/secrets.d.ts +50 -0
  173. package/dist/secrets.d.ts.map +1 -0
  174. package/dist/secrets.js +61 -0
  175. package/dist/security.d.ts +58 -0
  176. package/dist/security.d.ts.map +1 -0
  177. package/dist/security.js +49 -0
  178. package/dist/serviceTokenRequests.d.ts +71 -0
  179. package/dist/serviceTokenRequests.d.ts.map +1 -0
  180. package/dist/serviceTokenRequests.js +43 -0
  181. package/dist/serviceTokens.d.ts +65 -0
  182. package/dist/serviceTokens.d.ts.map +1 -0
  183. package/dist/serviceTokens.js +22 -0
  184. package/dist/services.d.ts +10 -0
  185. package/dist/services.d.ts.map +1 -0
  186. package/dist/services.js +15 -0
  187. package/dist/sessionReplay.d.ts +116 -0
  188. package/dist/sessionReplay.d.ts.map +1 -0
  189. package/dist/sessionReplay.js +29 -0
  190. package/dist/storage.d.ts +12 -0
  191. package/dist/storage.d.ts.map +1 -0
  192. package/dist/storage.js +10 -0
  193. package/dist/tasks.d.ts +29 -0
  194. package/dist/tasks.d.ts.map +1 -0
  195. package/dist/tasks.js +29 -0
  196. package/dist/types.d.ts +59 -155
  197. package/dist/types.d.ts.map +1 -1
  198. package/dist/types.js +17 -3
  199. package/dist/user.d.ts +99 -0
  200. package/dist/user.d.ts.map +1 -0
  201. package/dist/user.js +58 -0
  202. package/dist/users.d.ts +9 -0
  203. package/dist/users.d.ts.map +1 -0
  204. package/dist/users.js +11 -0
  205. package/dist/volumes.d.ts +16 -0
  206. package/dist/volumes.d.ts.map +1 -0
  207. package/dist/volumes.js +9 -0
  208. package/dist/webhooks.d.ts +77 -0
  209. package/dist/webhooks.d.ts.map +1 -0
  210. package/dist/webhooks.js +27 -0
  211. package/package.json +194 -5
  212. package/dist/request.d.ts +0 -5
  213. package/dist/request.d.ts.map +0 -1
  214. package/dist/request.js +0 -1
  215. package/dist/resources/config.d.ts +0 -30
  216. package/dist/resources/config.d.ts.map +0 -1
  217. package/dist/resources/config.js +0 -62
  218. package/dist/resources/databases.d.ts +0 -26
  219. package/dist/resources/databases.d.ts.map +0 -1
  220. package/dist/resources/databases.js +0 -29
  221. package/dist/resources/deployments.d.ts +0 -24
  222. package/dist/resources/deployments.d.ts.map +0 -1
  223. package/dist/resources/deployments.js +0 -30
  224. package/dist/resources/domains.d.ts +0 -30
  225. package/dist/resources/domains.d.ts.map +0 -1
  226. package/dist/resources/domains.js +0 -46
  227. package/dist/resources/env-vars.d.ts +0 -19
  228. package/dist/resources/env-vars.d.ts.map +0 -1
  229. package/dist/resources/env-vars.js +0 -30
  230. package/dist/resources/environments.d.ts +0 -16
  231. package/dist/resources/environments.d.ts.map +0 -1
  232. package/dist/resources/environments.js +0 -24
  233. package/dist/resources/logs.d.ts +0 -13
  234. package/dist/resources/logs.d.ts.map +0 -1
  235. package/dist/resources/logs.js +0 -20
  236. package/dist/resources/org.d.ts +0 -15
  237. package/dist/resources/org.d.ts.map +0 -1
  238. package/dist/resources/org.js +0 -25
  239. package/dist/resources/projects.d.ts +0 -19
  240. package/dist/resources/projects.d.ts.map +0 -1
  241. package/dist/resources/projects.js +0 -19
  242. package/dist/resources/resources.d.ts +0 -26
  243. package/dist/resources/resources.d.ts.map +0 -1
  244. package/dist/resources/resources.js +0 -32
  245. package/dist/resources/services.d.ts +0 -21
  246. package/dist/resources/services.d.ts.map +0 -1
  247. package/dist/resources/services.js +0 -30
  248. package/dist/resources/storage.d.ts +0 -21
  249. package/dist/resources/storage.d.ts.map +0 -1
  250. package/dist/resources/storage.js +0 -25
  251. package/dist/resources/tasks.d.ts +0 -42
  252. package/dist/resources/tasks.d.ts.map +0 -1
  253. package/dist/resources/tasks.js +0 -49
  254. package/dist/resources/user.d.ts +0 -9
  255. package/dist/resources/user.d.ts.map +0 -1
  256. package/dist/resources/user.js +0 -10
  257. package/dist/resources/volumes.d.ts +0 -20
  258. package/dist/resources/volumes.d.ts.map +0 -1
  259. package/dist/resources/volumes.js +0 -19
@@ -0,0 +1,77 @@
1
+ /**
2
+ * CI settings — org-level CI runner / repo configuration, GitHub App
3
+ * installation management, per-repo override list.
4
+ *
5
+ * Mirrors `apps/api/src/server/platform/routes/ci-settings.ts` — paths
6
+ * sourced from `@sylphx/contract`.
7
+ */
8
+ import type { Client } from './client.js';
9
+ export interface OrgCiSettings {
10
+ readonly orgId: string;
11
+ readonly defaultRunnerClass: string;
12
+ readonly maxParallelJobs: number;
13
+ readonly autoCancelStale: boolean;
14
+ readonly concurrency: number;
15
+ readonly timeoutSeconds: number;
16
+ readonly updatedAt: string;
17
+ }
18
+ export declare const getOrgSettings: (client: Client) => Promise<{
19
+ settings: OrgCiSettings;
20
+ }>;
21
+ export interface UpsertOrgSettingsInput {
22
+ readonly defaultRunnerClass?: string;
23
+ readonly maxParallelJobs?: number;
24
+ readonly autoCancelStale?: boolean;
25
+ readonly concurrency?: number;
26
+ readonly timeoutSeconds?: number;
27
+ }
28
+ export declare const upsertOrgSettings: (client: Client, body: UpsertOrgSettingsInput) => Promise<{
29
+ settings: OrgCiSettings;
30
+ }>;
31
+ export interface RepoCiOverride {
32
+ readonly id: string;
33
+ readonly orgId: string;
34
+ readonly repoFullName: string;
35
+ readonly runnerClass: string | null;
36
+ readonly maxParallelJobs: number | null;
37
+ readonly updatedAt: string;
38
+ }
39
+ export declare const listRepoOverrides: (client: Client) => Promise<{
40
+ overrides: readonly RepoCiOverride[];
41
+ }>;
42
+ export declare const upsertRepoOverride: (client: Client, body: {
43
+ readonly repoFullName: string;
44
+ readonly runnerClass?: string | null;
45
+ readonly maxParallelJobs?: number | null;
46
+ }) => Promise<{
47
+ override: RepoCiOverride;
48
+ }>;
49
+ export declare const deleteRepoOverride: (client: Client, repo: string) => Promise<{
50
+ success: boolean;
51
+ }>;
52
+ export interface CiInstallation {
53
+ readonly id: string;
54
+ readonly installationId: string;
55
+ readonly accountLogin: string;
56
+ readonly accountType: 'User' | 'Organization';
57
+ readonly repoSelection: 'all' | 'selected';
58
+ readonly connectedAt: string;
59
+ }
60
+ export declare const listInstallations: (client: Client) => Promise<{
61
+ installations: readonly CiInstallation[];
62
+ }>;
63
+ export interface CiUsage {
64
+ readonly orgId: string;
65
+ readonly periodStart: string;
66
+ readonly periodEnd: string;
67
+ readonly minutesUsed: number;
68
+ readonly minutesIncluded: number;
69
+ readonly overageMinutes: number;
70
+ }
71
+ export declare const getUsage: (client: Client) => Promise<{
72
+ usage: CiUsage;
73
+ }>;
74
+ export declare const disconnectInstallation: (client: Client, installationId: string) => Promise<{
75
+ success: boolean;
76
+ }>;
77
+ //# sourceMappingURL=ciSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ciSettings.d.ts","sourceRoot":"","sources":["../src/ciSettings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * CI settings — org-level CI runner / repo configuration, GitHub App
3
+ * installation management, per-repo override list.
4
+ *
5
+ * Mirrors `apps/api/src/server/platform/routes/ci-settings.ts` — paths
6
+ * sourced from `@sylphx/contract`.
7
+ */
8
+ import { ciSettingsEndpoints } from '@sylphx/contract';
9
+ import { interpolatePath, request } from './http.js';
10
+ export const getOrgSettings = (client) => {
11
+ const { method, path } = ciSettingsEndpoints.getOrgSettings;
12
+ return request(client, method, path);
13
+ };
14
+ export const upsertOrgSettings = (client, body) => {
15
+ const { method, path } = ciSettingsEndpoints.upsertOrgSettings;
16
+ return request(client, method, path, { body });
17
+ };
18
+ export const listRepoOverrides = (client) => {
19
+ const { method, path } = ciSettingsEndpoints.listRepoOverrides;
20
+ return request(client, method, path);
21
+ };
22
+ export const upsertRepoOverride = (client, body) => {
23
+ const { method, path } = ciSettingsEndpoints.upsertRepoOverride;
24
+ return request(client, method, path, { body });
25
+ };
26
+ export const deleteRepoOverride = (client, repo) => {
27
+ const { method, path } = ciSettingsEndpoints.deleteRepoOverride;
28
+ return request(client, method, interpolatePath(path, { repo }));
29
+ };
30
+ export const listInstallations = (client) => {
31
+ const { method, path } = ciSettingsEndpoints.listInstallations;
32
+ return request(client, method, path);
33
+ };
34
+ export const getUsage = (client) => {
35
+ const { method, path } = ciSettingsEndpoints.getUsage;
36
+ return request(client, method, path);
37
+ };
38
+ export const disconnectInstallation = (client, installationId) => {
39
+ const { method, path } = ciSettingsEndpoints.disconnectInstallation;
40
+ return request(client, method, interpolatePath(path, { installationId }));
41
+ };
package/dist/client.d.ts CHANGED
@@ -1,41 +1,39 @@
1
- import { ConfigResource } from './resources/config.js';
2
- import { DatabasesResource } from './resources/databases.js';
3
- import { DeploymentsResource } from './resources/deployments.js';
4
- import { DomainsResource } from './resources/domains.js';
5
- import { EnvVarsResource } from './resources/env-vars.js';
6
- import { EnvironmentsResource } from './resources/environments.js';
7
- import { LogsResource } from './resources/logs.js';
8
- import { OrgResource } from './resources/org.js';
9
- import { ProjectsResource } from './resources/projects.js';
10
- import { ResourceBindingsResource } from './resources/resources.js';
11
- import { ServicesResource } from './resources/services.js';
12
- import { StoragesResource } from './resources/storage.js';
13
- import { TasksResource } from './resources/tasks.js';
14
- import { UserResource } from './resources/user.js';
15
- import { VolumesResource } from './resources/volumes.js';
16
- export interface SylphxManagementOptions {
17
- token: string;
18
- /** Base URL for the API. Default: 'https://api.sylphx.com' */
19
- baseUrl?: string;
20
- /** User-Agent header value. Default: '@sylphx/management/1.0.0' */
21
- userAgent?: string;
1
+ /**
2
+ * `@sylphx/management` pure-functional TypeScript SDK for the Sylphx
3
+ * Management API.
4
+ *
5
+ * Shape (ADR-077 Rule B — no classes, no `this`, no inheritance):
6
+ *
7
+ * import { createClient, projects, databases } from '@sylphx/management'
8
+ *
9
+ * const client = createClient({ token: process.env.SYLPHX_TOKEN! })
10
+ * const list = await projects.list(client)
11
+ * const db = await databases.create(client, { name: 'mydb', tier: 'standard', env: 'production', storageGb: 10 })
12
+ *
13
+ * The `Client` returned by `createClient` is a frozen value-type carrying
14
+ * only the transport primitives (token, URLs, User-Agent). All business
15
+ * logic lives server-side (Effect-TS, ADR-058). Capability modules
16
+ * (`projects`, `databases`, …) are flat namespaces of free async
17
+ * functions that take `Client` as their first argument. No state is
18
+ * held in the SDK; the same `Client` may be shared across any number
19
+ * of parallel calls.
20
+ *
21
+ * Errors surface as `ApiError` with the upstream status + a best-effort
22
+ * parsed body. Consumers treat them via `try/catch` or `.catch`; the
23
+ * Effect-TS CLI wraps via `Effect.tryPromise` at its ApiService Layer.
24
+ */
25
+ export interface ClientOptions {
26
+ readonly token: string;
27
+ /** Base URL for the API. Default: `https://api.sylphx.com`. */
28
+ readonly baseUrl?: string;
29
+ /** User-Agent header value. Default: `@sylphx/management/1.0.0`. */
30
+ readonly userAgent?: string;
22
31
  }
23
- export declare class SylphxManagement {
24
- readonly user: UserResource;
25
- readonly projects: ProjectsResource;
26
- readonly deployments: DeploymentsResource;
27
- readonly environments: EnvironmentsResource;
28
- readonly envVars: EnvVarsResource;
29
- readonly domains: DomainsResource;
30
- readonly databases: DatabasesResource;
31
- readonly services: ServicesResource;
32
- readonly volumes: VolumesResource;
33
- readonly storage: StoragesResource;
34
- readonly config: ConfigResource;
35
- readonly tasks: TasksResource;
36
- readonly resources: ResourceBindingsResource;
37
- readonly org: OrgResource;
38
- readonly logs: LogsResource;
39
- constructor(options: SylphxManagementOptions);
32
+ export interface Client {
33
+ readonly token: string;
34
+ readonly baseUrl: string;
35
+ readonly apiBase: string;
36
+ readonly userAgent: string;
40
37
  }
38
+ export declare function createClient(opts: ClientOptions): Client;
41
39
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,gBAAgB;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAA;IAC5C,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;gBAEf,OAAO,EAAE,uBAAuB;CAwE5C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAQxD"}
package/dist/client.js CHANGED
@@ -1,91 +1,33 @@
1
- import { ApiError } from './errors.js';
2
- import { ConfigResource } from './resources/config.js';
3
- import { DatabasesResource } from './resources/databases.js';
4
- import { DeploymentsResource } from './resources/deployments.js';
5
- import { DomainsResource } from './resources/domains.js';
6
- import { EnvVarsResource } from './resources/env-vars.js';
7
- import { EnvironmentsResource } from './resources/environments.js';
8
- import { LogsResource } from './resources/logs.js';
9
- import { OrgResource } from './resources/org.js';
10
- import { ProjectsResource } from './resources/projects.js';
11
- import { ResourceBindingsResource } from './resources/resources.js';
12
- import { ServicesResource } from './resources/services.js';
13
- import { StoragesResource } from './resources/storage.js';
14
- import { TasksResource } from './resources/tasks.js';
15
- import { UserResource } from './resources/user.js';
16
- import { VolumesResource } from './resources/volumes.js';
17
- export class SylphxManagement {
18
- user;
19
- projects;
20
- deployments;
21
- environments;
22
- envVars;
23
- domains;
24
- databases;
25
- services;
26
- volumes;
27
- storage;
28
- config;
29
- tasks;
30
- resources;
31
- org;
32
- logs;
33
- constructor(options) {
34
- const baseUrl = options.baseUrl ?? 'https://api.sylphx.com';
35
- const userAgent = options.userAgent ?? '@sylphx/management/1.0.0';
36
- const apiBase = `${baseUrl}/v1`;
37
- const request = async (method, path, opts) => {
38
- let url = `${apiBase}${path}`;
39
- if (opts?.query) {
40
- const params = new URLSearchParams(opts.query);
41
- url += `?${params.toString()}`;
42
- }
43
- const headers = {
44
- Authorization: `Bearer ${options.token}`,
45
- 'Content-Type': 'application/json',
46
- 'User-Agent': userAgent,
47
- };
48
- const res = await fetch(url, {
49
- method,
50
- headers,
51
- body: opts?.body ? JSON.stringify(opts.body) : undefined,
52
- });
53
- if (!res.ok) {
54
- let body;
55
- const text = await res.text();
56
- try {
57
- body = JSON.parse(text);
58
- }
59
- catch {
60
- body = text;
61
- }
62
- const message = typeof body === 'object' && body !== null && 'message' in body
63
- ? String(body['message'])
64
- : `HTTP ${res.status}`;
65
- throw new ApiError(res.status, message, body);
66
- }
67
- if (res.status === 204) {
68
- return undefined;
69
- }
70
- return res.json();
71
- };
72
- // Build resource instances — environments first since others depend on it
73
- this.environments = new EnvironmentsResource(request);
74
- this.user = new UserResource(request);
75
- this.projects = new ProjectsResource(request);
76
- this.deployments = new DeploymentsResource(request);
77
- this.envVars = new EnvVarsResource(request);
78
- this.domains = new DomainsResource(request);
79
- this.databases = new DatabasesResource(request);
80
- this.volumes = new VolumesResource(request);
81
- this.storage = new StoragesResource(request);
82
- this.org = new OrgResource(request);
83
- // Resources that depend on environments for envType → envId resolution
84
- this.services = new ServicesResource(request, this.environments);
85
- this.config = new ConfigResource(request, this.environments);
86
- this.tasks = new TasksResource(request, this.environments);
87
- this.resources = new ResourceBindingsResource(request, this.environments);
88
- // Logs resource gets baseUrl + token directly (SSE URL generation)
89
- this.logs = new LogsResource(baseUrl, options.token);
90
- }
1
+ /**
2
+ * `@sylphx/management` pure-functional TypeScript SDK for the Sylphx
3
+ * Management API.
4
+ *
5
+ * Shape (ADR-077 Rule B — no classes, no `this`, no inheritance):
6
+ *
7
+ * import { createClient, projects, databases } from '@sylphx/management'
8
+ *
9
+ * const client = createClient({ token: process.env.SYLPHX_TOKEN! })
10
+ * const list = await projects.list(client)
11
+ * const db = await databases.create(client, { name: 'mydb', tier: 'standard', env: 'production', storageGb: 10 })
12
+ *
13
+ * The `Client` returned by `createClient` is a frozen value-type carrying
14
+ * only the transport primitives (token, URLs, User-Agent). All business
15
+ * logic lives server-side (Effect-TS, ADR-058). Capability modules
16
+ * (`projects`, `databases`, …) are flat namespaces of free async
17
+ * functions that take `Client` as their first argument. No state is
18
+ * held in the SDK; the same `Client` may be shared across any number
19
+ * of parallel calls.
20
+ *
21
+ * Errors surface as `ApiError` with the upstream status + a best-effort
22
+ * parsed body. Consumers treat them via `try/catch` or `.catch`; the
23
+ * Effect-TS CLI wraps via `Effect.tryPromise` at its ApiService Layer.
24
+ */
25
+ export function createClient(opts) {
26
+ const baseUrl = opts.baseUrl ?? 'https://api.sylphx.com';
27
+ return Object.freeze({
28
+ token: opts.token,
29
+ baseUrl,
30
+ apiBase: `${baseUrl}/v1`,
31
+ userAgent: opts.userAgent ?? '@sylphx/management/1.0.0',
32
+ });
91
33
  }
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Consent management — per-project consent type CRUD + audit history.
3
+ *
4
+ * GET /consent/projects/:idOrSlug/consent-types — list types
5
+ * POST /consent/consent-types — create type
6
+ * PATCH /consent/consent-types/:consentTypeId — update (projectId query)
7
+ * DELETE /consent/consent-types/:consentTypeId — soft delete (projectId query)
8
+ * POST /consent/consent-types/bulk-delete — bulk soft delete
9
+ * GET /consent/projects/:idOrSlug/consent-history — audit trail
10
+ * GET /consent/projects/:idOrSlug/consent-stats — grant/deny rates by type
11
+ *
12
+ * Update / delete require both `consentTypeId` (path) AND `projectId`
13
+ * (query) because consent type rows live in per-project databases —
14
+ * without the projectId the server cannot route the query.
15
+ */
16
+ import type { Client } from './client.js';
17
+ export type ConsentCategory = 'necessary' | 'analytics' | 'marketing' | 'preferences' | 'functional';
18
+ export interface ConsentType {
19
+ readonly id: string;
20
+ readonly slug: string;
21
+ readonly category: ConsentCategory;
22
+ readonly name: string;
23
+ readonly description: string;
24
+ readonly required: boolean;
25
+ readonly defaultEnabled: boolean;
26
+ readonly sortOrder: number;
27
+ readonly isActive: boolean;
28
+ readonly createdAt: string;
29
+ readonly updatedAt: string;
30
+ }
31
+ export declare const list: (client: Client, projectIdOrSlug: string) => Promise<{
32
+ consentTypes: readonly ConsentType[];
33
+ total: number;
34
+ }>;
35
+ export interface CreateInput {
36
+ readonly projectId: string;
37
+ readonly category: ConsentCategory;
38
+ readonly slug: string;
39
+ readonly name: string;
40
+ readonly description: string;
41
+ readonly required?: boolean;
42
+ readonly defaultEnabled?: boolean;
43
+ readonly sortOrder?: number;
44
+ }
45
+ export declare const create: (client: Client, input: CreateInput) => Promise<ConsentType>;
46
+ export interface UpdateInput {
47
+ readonly category?: ConsentCategory;
48
+ readonly slug?: string;
49
+ readonly name?: string;
50
+ readonly description?: string;
51
+ readonly required?: boolean;
52
+ readonly defaultEnabled?: boolean;
53
+ readonly sortOrder?: number;
54
+ readonly isActive?: boolean;
55
+ }
56
+ export declare const update: (client: Client, consentTypeId: string, projectId: string, input: UpdateInput) => Promise<ConsentType>;
57
+ declare const _delete: (client: Client, consentTypeId: string, projectId: string) => Promise<{
58
+ success: boolean;
59
+ }>;
60
+ export { _delete as delete };
61
+ export interface BulkDeleteInput {
62
+ readonly projectId: string;
63
+ readonly consentTypeIds: readonly string[];
64
+ }
65
+ export interface BulkDeleteResult {
66
+ readonly deleted: number;
67
+ readonly errors?: readonly {
68
+ readonly id: string;
69
+ readonly error: string;
70
+ }[];
71
+ }
72
+ export declare const bulkDelete: (client: Client, input: BulkDeleteInput) => Promise<BulkDeleteResult>;
73
+ export interface ConsentHistoryEntry {
74
+ readonly id: string;
75
+ readonly userId: string | null;
76
+ readonly anonymousId: string | null;
77
+ readonly consentType: {
78
+ readonly slug: string;
79
+ readonly name: string;
80
+ readonly category: ConsentCategory;
81
+ };
82
+ readonly previousGranted: boolean | null;
83
+ readonly newGranted: boolean;
84
+ readonly source: string;
85
+ readonly reason: string | null;
86
+ readonly version: number | null;
87
+ readonly createdAt: string;
88
+ }
89
+ export interface HistoryOptions {
90
+ readonly userId?: string;
91
+ readonly limit?: number;
92
+ readonly offset?: number;
93
+ }
94
+ export interface HistoryResult {
95
+ readonly history: readonly ConsentHistoryEntry[];
96
+ readonly total?: number;
97
+ }
98
+ export declare const history: (client: Client, projectIdOrSlug: string, options?: HistoryOptions) => Promise<HistoryResult>;
99
+ export interface ConsentStatsEntry {
100
+ readonly category: ConsentCategory;
101
+ readonly slug: string;
102
+ readonly name: string;
103
+ readonly totalConsents: number;
104
+ readonly granted: number;
105
+ readonly denied: number;
106
+ readonly grantRate: string;
107
+ }
108
+ export declare const stats: (client: Client, projectIdOrSlug: string) => Promise<{
109
+ stats: readonly ConsentStatsEntry[];
110
+ }>;
111
+ //# sourceMappingURL=consent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../src/consent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Consent management — per-project consent type CRUD + audit history.
3
+ *
4
+ * GET /consent/projects/:idOrSlug/consent-types — list types
5
+ * POST /consent/consent-types — create type
6
+ * PATCH /consent/consent-types/:consentTypeId — update (projectId query)
7
+ * DELETE /consent/consent-types/:consentTypeId — soft delete (projectId query)
8
+ * POST /consent/consent-types/bulk-delete — bulk soft delete
9
+ * GET /consent/projects/:idOrSlug/consent-history — audit trail
10
+ * GET /consent/projects/:idOrSlug/consent-stats — grant/deny rates by type
11
+ *
12
+ * Update / delete require both `consentTypeId` (path) AND `projectId`
13
+ * (query) because consent type rows live in per-project databases —
14
+ * without the projectId the server cannot route the query.
15
+ */
16
+ import { request } from './http.js';
17
+ export const list = (client, projectIdOrSlug) => request(client, 'GET', `/consent/projects/${encodeURIComponent(projectIdOrSlug)}/consent-types`);
18
+ export const create = (client, input) => request(client, 'POST', '/consent/consent-types', { body: input });
19
+ export const update = (client, consentTypeId, projectId, input) => request(client, 'PATCH', `/consent/consent-types/${encodeURIComponent(consentTypeId)}`, {
20
+ query: { projectId },
21
+ body: input,
22
+ });
23
+ const _delete = (client, consentTypeId, projectId) => request(client, 'DELETE', `/consent/consent-types/${encodeURIComponent(consentTypeId)}`, {
24
+ query: { projectId },
25
+ });
26
+ export { _delete as delete };
27
+ export const bulkDelete = (client, input) => request(client, 'POST', '/consent/consent-types/bulk-delete', { body: input });
28
+ export const history = (client, projectIdOrSlug, options) => request(client, 'GET', `/consent/projects/${encodeURIComponent(projectIdOrSlug)}/consent-history`, {
29
+ query: {
30
+ userId: options?.userId,
31
+ limit: options?.limit !== undefined ? String(options.limit) : undefined,
32
+ offset: options?.offset !== undefined ? String(options.offset) : undefined,
33
+ },
34
+ });
35
+ export const stats = (client, projectIdOrSlug) => request(client, 'GET', `/consent/projects/${encodeURIComponent(projectIdOrSlug)}/consent-stats`);
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Databases — provisioning, get, branch, delete (served via unified
3
+ * `/resources` with `kind=database`).
4
+ *
5
+ * Wire shape sourced from `@sylphx/contract` (ADR-084).
6
+ */
7
+ import type { BranchDatabaseInput, CreateDatabaseInput, Database } from '@sylphx/contract';
8
+ import type { Client } from './client.js';
9
+ export declare const list: (client: Client) => Promise<Database[]>;
10
+ export type CreateInput = CreateDatabaseInput;
11
+ export declare const create: (client: Client, input: CreateInput) => Promise<Database>;
12
+ export declare const get: (client: Client, id: string) => Promise<Database>;
13
+ declare const _delete: (client: Client, id: string) => Promise<void>;
14
+ export { _delete as delete };
15
+ export type BranchInput = BranchDatabaseInput;
16
+ export declare const branch: (client: Client, id: string, input: BranchInput) => Promise<Database>;
17
+ //# sourceMappingURL=databases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../src/databases.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,eAAO,MAAM,IAAI,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,QAAQ,EAAE,CAM7D,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAA;AAE7C,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,WAAW,KAAG,OAAO,CAAC,QAAQ,CAG3E,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,QAAQ,CAGhE,CAAA;AAED,QAAA,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAGzD,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA;AAE5B,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAA;AAE7C,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,EAAE,OAAO,WAAW,KAAG,OAAO,CAAC,QAAQ,CAGvF,CAAA"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Databases — provisioning, get, branch, delete (served via unified
3
+ * `/resources` with `kind=database`).
4
+ *
5
+ * Wire shape sourced from `@sylphx/contract` (ADR-084).
6
+ */
7
+ import { databasesEndpoints } from '@sylphx/contract';
8
+ import { interpolatePath, request } from './http.js';
9
+ export const list = async (client) => {
10
+ const { method, path } = databasesEndpoints.list;
11
+ const res = await request(client, method, path, {
12
+ query: { kind: 'database' },
13
+ });
14
+ return Array.isArray(res) ? res : (res.data ?? []);
15
+ };
16
+ export const create = (client, input) => {
17
+ const { method, path } = databasesEndpoints.create;
18
+ return request(client, method, path, { body: { ...input, kind: 'database' } });
19
+ };
20
+ export const get = (client, id) => {
21
+ const { method, path } = databasesEndpoints.get;
22
+ return request(client, method, interpolatePath(path, { id }));
23
+ };
24
+ const _delete = (client, id) => {
25
+ const { method, path } = databasesEndpoints.delete;
26
+ return request(client, method, interpolatePath(path, { id }));
27
+ };
28
+ export { _delete as delete };
29
+ export const branch = (client, id, input) => {
30
+ const { method, path } = databasesEndpoints.branch;
31
+ return request(client, method, interpolatePath(path, { id }), { body: input });
32
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Deployments — status / get / trigger / history / rollback.
3
+ *
4
+ * Wire shape sourced from `@sylphx/contract` (ADR-084).
5
+ */
6
+ import type { DeploymentDetail, DeploymentStatus, DeployResult, RollbackDeploymentInput } from '@sylphx/contract';
7
+ import type { Client } from './client.js';
8
+ export declare const status: (client: Client, projectId: string) => Promise<DeploymentStatus>;
9
+ export declare const get: (client: Client, deploymentId: string) => Promise<DeploymentDetail>;
10
+ export declare const trigger: (client: Client, projectId: string, envType: string) => Promise<DeployResult>;
11
+ export declare const history: (client: Client, projectId: string, envType: string) => Promise<DeployResult[]>;
12
+ export type RollbackBody = RollbackDeploymentInput;
13
+ export declare const rollback: (client: Client, projectId: string, body: RollbackBody) => Promise<DeployResult>;
14
+ /**
15
+ * Cancel an in-flight build. Terminal builds (`ready` / `error` /
16
+ * `cancelled`) return 409. Phase 4b closure for ADR-089 Matrix 2.
17
+ */
18
+ export declare const cancel: (client: Client, buildId: string) => Promise<{
19
+ success: boolean;
20
+ }>;
21
+ export type { DeploymentDetail } from '@sylphx/contract';
22
+ //# sourceMappingURL=deployments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAGlF,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,cAAc,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAGlF,CAAA;AAED,eAAO,MAAM,OAAO,GACnB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,SAAS,MAAM,KACb,OAAO,CAAC,YAAY,CAKtB,CAAA;AAED,eAAO,MAAM,OAAO,GACnB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,SAAS,MAAM,KACb,OAAO,CAAC,YAAY,EAAE,CAKxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAA;AAElD,eAAO,MAAM,QAAQ,GACpB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,YAAY,KAChB,OAAO,CAAC,YAAY,CAGtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAGpF,CAAA;AAID,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Deployments — status / get / trigger / history / rollback.
3
+ *
4
+ * Wire shape sourced from `@sylphx/contract` (ADR-084).
5
+ */
6
+ import { deploymentsEndpoints } from '@sylphx/contract';
7
+ import { interpolatePath, request } from './http.js';
8
+ export const status = (client, projectId) => {
9
+ const { method, path } = deploymentsEndpoints.status;
10
+ return request(client, method, interpolatePath(path, { id: projectId }));
11
+ };
12
+ export const get = (client, deploymentId) => {
13
+ const { method, path } = deploymentsEndpoints.get;
14
+ return request(client, method, interpolatePath(path, { id: deploymentId }));
15
+ };
16
+ export const trigger = (client, projectId, envType) => {
17
+ const { method, path } = deploymentsEndpoints.trigger;
18
+ return request(client, method, interpolatePath(path, { id: projectId }), {
19
+ body: { envType },
20
+ });
21
+ };
22
+ export const history = (client, projectId, envType) => {
23
+ const { method, path } = deploymentsEndpoints.history;
24
+ return request(client, method, interpolatePath(path, { id: projectId }), {
25
+ query: { envType },
26
+ });
27
+ };
28
+ export const rollback = (client, projectId, body) => {
29
+ const { method, path } = deploymentsEndpoints.rollback;
30
+ return request(client, method, interpolatePath(path, { id: projectId }), { body });
31
+ };
32
+ /**
33
+ * Cancel an in-flight build. Terminal builds (`ready` / `error` /
34
+ * `cancelled`) return 409. Phase 4b closure for ADR-089 Matrix 2.
35
+ */
36
+ export const cancel = (client, buildId) => {
37
+ const { method, path } = deploymentsEndpoints.envScopedCancelBuild;
38
+ return request(client, method, interpolatePath(path, { buildId }));
39
+ };