@sylphx/management 0.1.0 → 0.2.1

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 +168 -0
  5. package/dist/admin.d.ts.map +1 -0
  6. package/dist/admin.js +123 -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 +49 -0
  107. package/dist/http.d.ts.map +1 -0
  108. package/dist/http.js +97 -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,66 @@
1
+ /**
2
+ * Plans — per-project subscription plan CRUD + Stripe sync.
3
+ *
4
+ * GET /plans/projects/:id/plans — list plans for project
5
+ * GET /plans/projects/:id/plans/:planId — get plan
6
+ * POST /plans/plans — create
7
+ * PATCH /plans/plans/:planId — update
8
+ * DELETE /plans/plans/:planId — delete
9
+ * POST /plans/plans/:planId/sync-stripe — push to Stripe
10
+ * POST /plans/plans/reorder — reorder display
11
+ */
12
+ import type { Client } from './client.js';
13
+ export interface Plan {
14
+ readonly id: string;
15
+ readonly projectId: string;
16
+ readonly name: string;
17
+ readonly slug: string;
18
+ readonly priceUsdCents: number;
19
+ readonly intervalDays: number;
20
+ readonly stripePriceId: string | null;
21
+ readonly features: readonly string[];
22
+ readonly displayOrder: number;
23
+ readonly archivedAt: string | null;
24
+ readonly createdAt: string;
25
+ }
26
+ export declare const list: (client: Client, projectId: string) => Promise<{
27
+ plans: readonly Plan[];
28
+ }>;
29
+ export declare const get: (client: Client, projectId: string, planId: string) => Promise<{
30
+ plan: Plan;
31
+ }>;
32
+ export interface CreatePlanInput {
33
+ readonly projectId: string;
34
+ readonly name: string;
35
+ readonly slug: string;
36
+ readonly priceUsdCents: number;
37
+ readonly intervalDays?: number;
38
+ readonly features?: readonly string[];
39
+ }
40
+ export declare const create: (client: Client, body: CreatePlanInput) => Promise<{
41
+ plan: Plan;
42
+ }>;
43
+ export interface UpdatePlanInput {
44
+ readonly name?: string;
45
+ readonly priceUsdCents?: number;
46
+ readonly intervalDays?: number;
47
+ readonly features?: readonly string[];
48
+ readonly archived?: boolean;
49
+ }
50
+ export declare const update: (client: Client, planId: string, body: UpdatePlanInput) => Promise<{
51
+ plan: Plan;
52
+ }>;
53
+ declare const _delete: (client: Client, planId: string) => Promise<{
54
+ success: boolean;
55
+ }>;
56
+ export { _delete as delete };
57
+ export declare const syncStripe: (client: Client, planId: string) => Promise<{
58
+ plan: Plan;
59
+ stripePriceId: string;
60
+ }>;
61
+ export declare const reorder: (client: Client, body: {
62
+ readonly order: readonly string[];
63
+ }) => Promise<{
64
+ success: boolean;
65
+ }>;
66
+ //# sourceMappingURL=plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,IAAI;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC;IAAE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;CAAE,CAG1F,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAG7F,CAAA;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAED,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,MAAM,eAAe,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAGpF,CAAA;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,MAAM,eAAe,KACnB,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAGxB,CAAA;AAED,QAAA,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAG7E,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA;AAE5B,eAAO,MAAM,UAAU,GACtB,QAAQ,MAAM,EACd,QAAQ,MAAM,KACZ,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAG/C,CAAA;AAED,eAAO,MAAM,OAAO,GACnB,QAAQ,MAAM,EACd,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,KACzC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAG9B,CAAA"}
package/dist/plans.js ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Plans — per-project subscription plan CRUD + Stripe sync.
3
+ *
4
+ * GET /plans/projects/:id/plans — list plans for project
5
+ * GET /plans/projects/:id/plans/:planId — get plan
6
+ * POST /plans/plans — create
7
+ * PATCH /plans/plans/:planId — update
8
+ * DELETE /plans/plans/:planId — delete
9
+ * POST /plans/plans/:planId/sync-stripe — push to Stripe
10
+ * POST /plans/plans/reorder — reorder display
11
+ */
12
+ import { plansEndpoints } from '@sylphx/contract';
13
+ import { interpolatePath, request } from './http.js';
14
+ export const list = (client, projectId) => {
15
+ const { method, path } = plansEndpoints.list;
16
+ return request(client, method, interpolatePath(path, { id: projectId }));
17
+ };
18
+ export const get = (client, projectId, planId) => {
19
+ const { method, path } = plansEndpoints.get;
20
+ return request(client, method, interpolatePath(path, { id: projectId, planId }));
21
+ };
22
+ export const create = (client, body) => {
23
+ const { method, path } = plansEndpoints.create;
24
+ return request(client, method, path, { body });
25
+ };
26
+ export const update = (client, planId, body) => {
27
+ const { method, path } = plansEndpoints.update;
28
+ return request(client, method, interpolatePath(path, { planId }), { body });
29
+ };
30
+ const _delete = (client, planId) => {
31
+ const { method, path } = plansEndpoints.delete;
32
+ return request(client, method, interpolatePath(path, { planId }));
33
+ };
34
+ export { _delete as delete };
35
+ export const syncStripe = (client, planId) => {
36
+ const { method, path } = plansEndpoints.syncStripe;
37
+ return request(client, method, interpolatePath(path, { planId }));
38
+ };
39
+ export const reorder = (client, body) => {
40
+ const { method, path } = plansEndpoints.reorder;
41
+ return request(client, method, path, { body });
42
+ };
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Privacy — automated cookie discovery + consent mapping for GDPR / CCPA.
3
+ *
4
+ * POST /privacy/scans — start scan
5
+ * GET /privacy/projects/:id/scans — list scans
6
+ * GET /privacy/projects/:id/scans/:scanId — get report
7
+ * GET /privacy/projects/:id/cookies — list detected cookies
8
+ * GET /privacy/projects/:id/summary — aggregate summary
9
+ * PATCH /privacy/projects/:id/cookies/:cookieId/category — recategorize
10
+ * PATCH /privacy/projects/:id/cookies/:cookieId/consent-type — (un)link consent type
11
+ * POST /privacy/cookies/bulk-link — bulk category → consent
12
+ * POST /privacy/known-cookies/seed — admin: seed reference DB
13
+ *
14
+ * Project path parameters accept TypeID OR slug (handled server-side via
15
+ * `getProjectByIdOrSlugWithAccess`); the SDK intentionally does not narrow.
16
+ */
17
+ import type { Client } from './client.js';
18
+ export type CookieCategory = 'necessary' | 'analytics' | 'marketing' | 'preferences' | 'functional' | 'unknown';
19
+ export type CookieParty = 'first_party' | 'third_party';
20
+ export type ScanStatus = 'pending' | 'running' | 'completed' | 'failed';
21
+ export interface StartScanInput {
22
+ readonly projectId: string;
23
+ readonly url: string;
24
+ readonly maxPages?: number;
25
+ readonly includeSubdomains?: boolean;
26
+ }
27
+ export interface StartScanResult {
28
+ readonly scanId: string;
29
+ readonly status: ScanStatus;
30
+ readonly message: string;
31
+ }
32
+ export declare const startScan: (client: Client, input: StartScanInput) => Promise<StartScanResult>;
33
+ export interface ScanReport {
34
+ readonly id: string;
35
+ readonly url: string;
36
+ readonly status: ScanStatus;
37
+ readonly pagesCrawled: number | null;
38
+ readonly totalCookies: number | null;
39
+ readonly firstPartyCookies: number | null;
40
+ readonly thirdPartyCookies: number | null;
41
+ readonly categoryCounts: Readonly<Record<string, number>> | null;
42
+ readonly error: string | null;
43
+ readonly startedAt: string | null;
44
+ readonly completedAt: string | null;
45
+ readonly durationMs: number | null;
46
+ readonly createdAt: string;
47
+ }
48
+ export declare const getScan: (client: Client, projectIdOrSlug: string, scanId: string) => Promise<ScanReport>;
49
+ export interface ScanSummary {
50
+ readonly id: string;
51
+ readonly url: string;
52
+ readonly status: ScanStatus;
53
+ readonly totalCookies: number | null;
54
+ readonly completedAt: string | null;
55
+ readonly createdAt: string;
56
+ }
57
+ export interface ListScansOptions {
58
+ readonly status?: ScanStatus;
59
+ readonly limit?: number;
60
+ readonly offset?: number;
61
+ }
62
+ export interface ListScansResult {
63
+ readonly scans: readonly ScanSummary[];
64
+ readonly total: number;
65
+ readonly limit: number;
66
+ readonly offset: number;
67
+ }
68
+ export declare const listScans: (client: Client, projectIdOrSlug: string, options?: ListScansOptions) => Promise<ListScansResult>;
69
+ export interface DetectedCookie {
70
+ readonly id: string;
71
+ readonly name: string;
72
+ readonly domain: string;
73
+ readonly path: string | null;
74
+ readonly party: CookieParty;
75
+ readonly category: CookieCategory;
76
+ readonly expirationSeconds: number | null;
77
+ readonly isSession: boolean;
78
+ readonly isSecure: boolean;
79
+ readonly isHttpOnly: boolean;
80
+ readonly sameSite: string | null;
81
+ readonly provider: string | null;
82
+ readonly description: string | null;
83
+ readonly consentTypeId: string | null;
84
+ readonly createdAt: string;
85
+ }
86
+ export interface ListCookiesOptions {
87
+ readonly scanId?: string;
88
+ readonly category?: CookieCategory;
89
+ readonly party?: CookieParty;
90
+ readonly search?: string;
91
+ readonly limit?: number;
92
+ readonly offset?: number;
93
+ }
94
+ export interface ListCookiesResult {
95
+ readonly cookies: readonly DetectedCookie[];
96
+ readonly total: number;
97
+ readonly limit: number;
98
+ readonly offset: number;
99
+ }
100
+ export declare const listCookies: (client: Client, projectIdOrSlug: string, options?: ListCookiesOptions) => Promise<ListCookiesResult>;
101
+ export interface CookieScanSummary {
102
+ readonly totalScans: number;
103
+ readonly lastScanAt: string | null;
104
+ readonly totalCookiesDetected: number;
105
+ readonly byCategoryCount: Readonly<Record<string, number>>;
106
+ readonly byPartyCount: Readonly<Record<string, number>>;
107
+ readonly unmappedCookies: number;
108
+ }
109
+ export declare const summary: (client: Client, projectIdOrSlug: string) => Promise<CookieScanSummary>;
110
+ export interface UpdateCookieCategoryResult {
111
+ readonly id: string;
112
+ readonly name: string;
113
+ readonly category: CookieCategory;
114
+ }
115
+ export declare const updateCookieCategory: (client: Client, projectIdOrSlug: string, cookieId: string, category: CookieCategory) => Promise<UpdateCookieCategoryResult>;
116
+ export interface LinkCookieResult {
117
+ readonly id: string;
118
+ readonly name: string;
119
+ readonly consentTypeId: string | null;
120
+ }
121
+ export declare const linkCookieToConsentType: (client: Client, projectIdOrSlug: string, cookieId: string, consentTypeId: string | null) => Promise<LinkCookieResult>;
122
+ export interface BulkLinkCookiesInput {
123
+ readonly projectId: string;
124
+ readonly category: CookieCategory;
125
+ readonly consentTypeId: string;
126
+ }
127
+ export interface BulkLinkCookiesResult {
128
+ readonly linkedCount: number;
129
+ readonly category: CookieCategory;
130
+ readonly consentTypeId: string;
131
+ }
132
+ export declare const bulkLinkCookies: (client: Client, input: BulkLinkCookiesInput) => Promise<BulkLinkCookiesResult>;
133
+ export interface SeedKnownCookiesResult {
134
+ readonly seededCount: number;
135
+ readonly message: string;
136
+ }
137
+ export declare const seedKnownCookies: (client: Client) => Promise<SeedKnownCookiesResult>;
138
+ //# sourceMappingURL=privacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../src/privacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Privacy — automated cookie discovery + consent mapping for GDPR / CCPA.
3
+ *
4
+ * POST /privacy/scans — start scan
5
+ * GET /privacy/projects/:id/scans — list scans
6
+ * GET /privacy/projects/:id/scans/:scanId — get report
7
+ * GET /privacy/projects/:id/cookies — list detected cookies
8
+ * GET /privacy/projects/:id/summary — aggregate summary
9
+ * PATCH /privacy/projects/:id/cookies/:cookieId/category — recategorize
10
+ * PATCH /privacy/projects/:id/cookies/:cookieId/consent-type — (un)link consent type
11
+ * POST /privacy/cookies/bulk-link — bulk category → consent
12
+ * POST /privacy/known-cookies/seed — admin: seed reference DB
13
+ *
14
+ * Project path parameters accept TypeID OR slug (handled server-side via
15
+ * `getProjectByIdOrSlugWithAccess`); the SDK intentionally does not narrow.
16
+ */
17
+ import { request } from './http.js';
18
+ export const startScan = (client, input) => request(client, 'POST', '/privacy/scans', { body: input });
19
+ export const getScan = (client, projectIdOrSlug, scanId) => request(client, 'GET', `/privacy/projects/${encodeURIComponent(projectIdOrSlug)}/scans/${encodeURIComponent(scanId)}`);
20
+ export const listScans = (client, projectIdOrSlug, options) => request(client, 'GET', `/privacy/projects/${encodeURIComponent(projectIdOrSlug)}/scans`, {
21
+ query: {
22
+ status: options?.status,
23
+ limit: options?.limit !== undefined ? String(options.limit) : undefined,
24
+ offset: options?.offset !== undefined ? String(options.offset) : undefined,
25
+ },
26
+ });
27
+ export const listCookies = (client, projectIdOrSlug, options) => request(client, 'GET', `/privacy/projects/${encodeURIComponent(projectIdOrSlug)}/cookies`, {
28
+ query: {
29
+ scanId: options?.scanId,
30
+ category: options?.category,
31
+ party: options?.party,
32
+ search: options?.search,
33
+ limit: options?.limit !== undefined ? String(options.limit) : undefined,
34
+ offset: options?.offset !== undefined ? String(options.offset) : undefined,
35
+ },
36
+ });
37
+ export const summary = (client, projectIdOrSlug) => request(client, 'GET', `/privacy/projects/${encodeURIComponent(projectIdOrSlug)}/summary`);
38
+ export const updateCookieCategory = (client, projectIdOrSlug, cookieId, category) => request(client, 'PATCH', `/privacy/projects/${encodeURIComponent(projectIdOrSlug)}/cookies/${encodeURIComponent(cookieId)}/category`, { body: { category } });
39
+ export const linkCookieToConsentType = (client, projectIdOrSlug, cookieId, consentTypeId) => request(client, 'PATCH', `/privacy/projects/${encodeURIComponent(projectIdOrSlug)}/cookies/${encodeURIComponent(cookieId)}/consent-type`, { body: { consentTypeId } });
40
+ export const bulkLinkCookies = (client, input) => request(client, 'POST', '/privacy/cookies/bulk-link', { body: input });
41
+ export const seedKnownCookies = (client) => request(client, 'POST', '/privacy/known-cookies/seed');
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Projects — create / list / delete.
3
+ *
4
+ * Wire shape sourced from `@sylphx/contract` (ADR-084). Paths + methods
5
+ * come from `projectsEndpoints`; hand-written types are forbidden here.
6
+ */
7
+ import type { CreateProjectInput, Project } from '@sylphx/contract';
8
+ import type { Client } from './client.js';
9
+ export declare const list: (client: Client) => Promise<Project[]>;
10
+ export type CreateInput = CreateProjectInput;
11
+ export declare const create: (client: Client, input: CreateInput) => Promise<Project>;
12
+ declare const _delete: (client: Client, id: string) => Promise<void>;
13
+ export { _delete as delete };
14
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,eAAO,MAAM,IAAI,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAI5D,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAE5C,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,WAAW,KAAG,OAAO,CAAC,OAAO,CAG1E,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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Projects — create / list / delete.
3
+ *
4
+ * Wire shape sourced from `@sylphx/contract` (ADR-084). Paths + methods
5
+ * come from `projectsEndpoints`; hand-written types are forbidden here.
6
+ */
7
+ import { projectsEndpoints } from '@sylphx/contract';
8
+ import { interpolatePath, request } from './http.js';
9
+ export const list = async (client) => {
10
+ const { method, path } = projectsEndpoints.list;
11
+ const res = await request(client, method, path);
12
+ return Array.isArray(res) ? res : (res.data ?? []);
13
+ };
14
+ export const create = (client, input) => {
15
+ const { method, path } = projectsEndpoints.create;
16
+ return request(client, method, path, { body: input });
17
+ };
18
+ const _delete = (client, id) => {
19
+ const { method, path } = projectsEndpoints.delete;
20
+ return request(client, method, interpolatePath(path, { id }));
21
+ };
22
+ export { _delete as delete };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Realtime pub/sub — per-project Redis Streams backing SSE channels.
3
+ *
4
+ * GET /realtime/status?projectId= — availability + provider
5
+ * GET /realtime/channels?projectId= — list active channels
6
+ * POST /realtime/channels — reserve a channel name
7
+ * DELETE /realtime/channels/:channelName — free a channel
8
+ *
9
+ * Channels are Redis-backed per-project streams; no external Soketi/Pusher
10
+ * service. Consumers open SSE connections to the runtime directly — this
11
+ * SDK module only manages the channel registry (create / list / delete).
12
+ */
13
+ import type { Client } from './client.js';
14
+ export interface RealtimeStatus {
15
+ readonly available: boolean;
16
+ readonly provider: string;
17
+ }
18
+ export declare const status: (client: Client, projectId: string) => Promise<RealtimeStatus>;
19
+ export interface RealtimeChannel {
20
+ readonly name: string;
21
+ readonly activeConnections: number;
22
+ readonly messagesPerHour: number;
23
+ readonly status: 'active' | 'empty';
24
+ }
25
+ export declare const listChannels: (client: Client, projectId: string) => Promise<{
26
+ channels: readonly RealtimeChannel[];
27
+ count: number;
28
+ }>;
29
+ export declare const createChannel: (client: Client, projectId: string, name: string) => Promise<{
30
+ name: string;
31
+ }>;
32
+ export declare const deleteChannel: (client: Client, projectId: string, channelName: string) => Promise<void>;
33
+ //# sourceMappingURL=realtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,cAAc,CACZ,CAAA;AAErE,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAA;CACnC;AAED,eAAO,MAAM,YAAY,GACxB,QAAQ,MAAM,EACd,WAAW,MAAM,KACf,OAAO,CAAC;IAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACK,CAAA;AAEvE,eAAO,MAAM,aAAa,GACzB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,MAAM,KACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CACkD,CAAA;AAE7E,eAAO,MAAM,aAAa,GACzB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,aAAa,MAAM,KACjB,OAAO,CAAC,IAAI,CAGZ,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Realtime pub/sub — per-project Redis Streams backing SSE channels.
3
+ *
4
+ * GET /realtime/status?projectId= — availability + provider
5
+ * GET /realtime/channels?projectId= — list active channels
6
+ * POST /realtime/channels — reserve a channel name
7
+ * DELETE /realtime/channels/:channelName — free a channel
8
+ *
9
+ * Channels are Redis-backed per-project streams; no external Soketi/Pusher
10
+ * service. Consumers open SSE connections to the runtime directly — this
11
+ * SDK module only manages the channel registry (create / list / delete).
12
+ */
13
+ import { request } from './http.js';
14
+ export const status = (client, projectId) => request(client, 'GET', '/realtime/status', { query: { projectId } });
15
+ export const listChannels = (client, projectId) => request(client, 'GET', '/realtime/channels', { query: { projectId } });
16
+ export const createChannel = (client, projectId, name) => request(client, 'POST', '/realtime/channels', { body: { projectId, name } });
17
+ export const deleteChannel = (client, projectId, channelName) => request(client, 'DELETE', `/realtime/channels/${encodeURIComponent(channelName)}`, {
18
+ query: { projectId },
19
+ });
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Referrals — per-project referral codes + conversion tracking.
3
+ *
4
+ * GET /referrals — list (projectId required)
5
+ * GET /referrals/stats — aggregated conversion stats
6
+ * GET /referrals/:id — detail (projectId required as query)
7
+ * POST /referrals — create (optional custom code)
8
+ * POST /referrals/:id/expire — mark pending referral expired
9
+ *
10
+ * Referral data is sharded into per-project databases; the `projectId`
11
+ * routes the request to the correct shard and is required on every call.
12
+ */
13
+ import type { Client } from './client.js';
14
+ export type ReferralStatus = 'pending' | 'completed' | 'expired' | 'cancelled';
15
+ export type RewardType = 'points' | 'credit' | 'discount' | 'custom';
16
+ export interface UserRef {
17
+ readonly id: string;
18
+ readonly email: string;
19
+ readonly name: string | null;
20
+ }
21
+ export interface Referral {
22
+ readonly id: string;
23
+ readonly projectId: string;
24
+ readonly projectName: string;
25
+ readonly code: string;
26
+ readonly referrer: UserRef | null;
27
+ readonly referredUser: UserRef | null;
28
+ readonly status: ReferralStatus;
29
+ readonly rewardType: RewardType;
30
+ readonly createdAt: string;
31
+ readonly completedAt: string | null;
32
+ }
33
+ export interface ReferralDetail extends Referral {
34
+ readonly metadata: Readonly<Record<string, unknown>> | null;
35
+ }
36
+ export interface ListOptions {
37
+ readonly environmentId?: string;
38
+ readonly limit?: number;
39
+ readonly offset?: number;
40
+ }
41
+ export declare const list: (client: Client, projectId: string, options?: ListOptions) => Promise<readonly Referral[]>;
42
+ export declare const get: (client: Client, id: string, projectId: string) => Promise<ReferralDetail>;
43
+ export interface CreateInput {
44
+ readonly projectId: string;
45
+ readonly referrerId: string;
46
+ readonly code?: string;
47
+ readonly rewardType?: RewardType;
48
+ }
49
+ export interface CreateResult {
50
+ readonly id: string;
51
+ readonly code: string;
52
+ }
53
+ export declare const create: (client: Client, input: CreateInput) => Promise<CreateResult>;
54
+ export interface StatsOptions {
55
+ readonly environmentId?: string;
56
+ readonly days?: number;
57
+ }
58
+ export interface ReferralStats {
59
+ readonly overall: {
60
+ readonly total: number;
61
+ readonly completed: number;
62
+ readonly pending: number;
63
+ readonly expired: number;
64
+ readonly conversionRate: number;
65
+ };
66
+ readonly period: {
67
+ readonly days: number;
68
+ readonly since: string;
69
+ readonly created: number;
70
+ readonly completed: number;
71
+ readonly conversionRate: number;
72
+ };
73
+ readonly byRewardType: readonly {
74
+ readonly rewardType: RewardType;
75
+ readonly total: number;
76
+ readonly completed: number;
77
+ readonly conversionRate: number;
78
+ }[];
79
+ readonly byProject: readonly {
80
+ readonly projectId: string;
81
+ readonly total: number;
82
+ readonly completed: number;
83
+ readonly conversionRate: number;
84
+ }[];
85
+ readonly dailyTrend: readonly {
86
+ readonly date: string;
87
+ readonly created: number;
88
+ readonly completed: number;
89
+ }[];
90
+ readonly topReferrers: readonly {
91
+ readonly referrerId: string;
92
+ readonly totalReferrals: number;
93
+ readonly completedReferrals: number;
94
+ }[];
95
+ }
96
+ export declare const stats: (client: Client, projectId: string, options?: StatsOptions) => Promise<ReferralStats>;
97
+ export declare const expire: (client: Client, id: string, projectId: string) => Promise<{
98
+ success: boolean;
99
+ }>;
100
+ //# sourceMappingURL=referrals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referrals.d.ts","sourceRoot":"","sources":["../src/referrals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Referrals — per-project referral codes + conversion tracking.
3
+ *
4
+ * GET /referrals — list (projectId required)
5
+ * GET /referrals/stats — aggregated conversion stats
6
+ * GET /referrals/:id — detail (projectId required as query)
7
+ * POST /referrals — create (optional custom code)
8
+ * POST /referrals/:id/expire — mark pending referral expired
9
+ *
10
+ * Referral data is sharded into per-project databases; the `projectId`
11
+ * routes the request to the correct shard and is required on every call.
12
+ */
13
+ import { request } from './http.js';
14
+ export const list = (client, projectId, options) => request(client, 'GET', '/referrals', {
15
+ query: {
16
+ projectId,
17
+ environmentId: options?.environmentId,
18
+ limit: options?.limit !== undefined ? String(options.limit) : undefined,
19
+ offset: options?.offset !== undefined ? String(options.offset) : undefined,
20
+ },
21
+ });
22
+ export const get = (client, id, projectId) => request(client, 'GET', `/referrals/${encodeURIComponent(id)}`, { query: { projectId } });
23
+ export const create = (client, input) => request(client, 'POST', '/referrals', { body: input });
24
+ export const stats = (client, projectId, options) => request(client, 'GET', '/referrals/stats', {
25
+ query: {
26
+ projectId,
27
+ environmentId: options?.environmentId,
28
+ days: options?.days !== undefined ? String(options.days) : undefined,
29
+ },
30
+ });
31
+ export const expire = (client, id, projectId) => request(client, 'POST', `/referrals/${encodeURIComponent(id)}/expire`, {
32
+ body: { projectId },
33
+ });
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Refresh token lifecycle (Platform-audience OAuth rotation).
3
+ *
4
+ * POST /auth/refresh — rotate a refresh token and mint a new access JWT
5
+ * POST /auth/logout — revoke the presented refresh token (sign out)
6
+ *
7
+ * The refresh endpoint is PUBLIC (no platformAuth middleware) because it
8
+ * authenticates via the refresh token itself in the JSON body.
9
+ *
10
+ * Note (ADR-089 Phase 5.1): these endpoints currently live on the
11
+ * Platform host but authenticate BaaS-issued refresh tokens. When Phase
12
+ * 5.1 consolidates the full OAuth AS on the runtime/BaaS plane, these
13
+ * methods will move to `@sylphx/sdk.auth.oauth`. Until then, Management
14
+ * exposes them so Console / CLI have a single type-safe surface.
15
+ *
16
+ * @see docs/adr/ADR-059-unified-credentials.md §1.1
17
+ * @see docs/adr/ADR-089-platform-as-first-customer-of-baas.md
18
+ */
19
+ import type { Client } from './client.js';
20
+ export interface RefreshResult {
21
+ readonly accessToken: string;
22
+ readonly refreshToken: string;
23
+ readonly expiresIn: number;
24
+ readonly tokenType: 'Bearer';
25
+ }
26
+ /**
27
+ * Rotate a refresh token. Returns a fresh access+refresh pair; the
28
+ * presented refresh token is invalidated server-side (single-use
29
+ * rotation per ADR-059 §1.1).
30
+ */
31
+ export declare const rotate: (client: Client, refreshToken: string) => Promise<RefreshResult>;
32
+ /**
33
+ * Revoke a refresh token (sign out). Idempotent — revoking an already-
34
+ * revoked or unknown token still returns success to prevent side-channel
35
+ * token-existence probing.
36
+ */
37
+ export declare const signOut: (client: Client, refreshToken: string) => Promise<{
38
+ success: boolean;
39
+ }>;
40
+ /** Backwards-compat alias used by some Console flows. */
41
+ export declare const revoke: (client: Client, refreshToken: string) => Promise<{
42
+ success: boolean;
43
+ }>;
44
+ //# sourceMappingURL=refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../src/refresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAA;CAC5B;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,cAAc,MAAM,KAAG,OAAO,CAAC,aAAa,CACd,CAAA;AAErE;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,cAAc,MAAM,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CACvB,CAAA;AAEpE,yDAAyD;AACzD,eAAO,MAAM,MAAM,WAJa,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAI9D,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Refresh token lifecycle (Platform-audience OAuth rotation).
3
+ *
4
+ * POST /auth/refresh — rotate a refresh token and mint a new access JWT
5
+ * POST /auth/logout — revoke the presented refresh token (sign out)
6
+ *
7
+ * The refresh endpoint is PUBLIC (no platformAuth middleware) because it
8
+ * authenticates via the refresh token itself in the JSON body.
9
+ *
10
+ * Note (ADR-089 Phase 5.1): these endpoints currently live on the
11
+ * Platform host but authenticate BaaS-issued refresh tokens. When Phase
12
+ * 5.1 consolidates the full OAuth AS on the runtime/BaaS plane, these
13
+ * methods will move to `@sylphx/sdk.auth.oauth`. Until then, Management
14
+ * exposes them so Console / CLI have a single type-safe surface.
15
+ *
16
+ * @see docs/adr/ADR-059-unified-credentials.md §1.1
17
+ * @see docs/adr/ADR-089-platform-as-first-customer-of-baas.md
18
+ */
19
+ import { request } from './http.js';
20
+ /**
21
+ * Rotate a refresh token. Returns a fresh access+refresh pair; the
22
+ * presented refresh token is invalidated server-side (single-use
23
+ * rotation per ADR-059 §1.1).
24
+ */
25
+ export const rotate = (client, refreshToken) => request(client, 'POST', '/auth/refresh', { body: { refreshToken } });
26
+ /**
27
+ * Revoke a refresh token (sign out). Idempotent — revoking an already-
28
+ * revoked or unknown token still returns success to prevent side-channel
29
+ * token-existence probing.
30
+ */
31
+ export const signOut = (client, refreshToken) => request(client, 'POST', '/auth/logout', { body: { refreshToken } });
32
+ /** Backwards-compat alias used by some Console flows. */
33
+ export const revoke = signOut;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Remote config — server-persisted non-secret key-value store per env.
3
+ *
4
+ * Renamed from `config.ts` in the old OOP SDK to `remoteConfig.ts` (ADR-077
5
+ * Rule D) — disambiguates from the CLI-side local JSON store (`config.ts`)
6
+ * and the billing `plan`/`subscription` surface.
7
+ */
8
+ import type { Client } from './client.js';
9
+ import type { ConfigEntry } from './types.js';
10
+ export declare const list: (client: Client, projectId: string, envType?: string) => Promise<ConfigEntry[]>;
11
+ export declare const get: (client: Client, projectId: string, key: string, envType?: string) => Promise<ConfigEntry>;
12
+ export declare const set: (client: Client, projectId: string, key: string, value: string, envType?: string) => Promise<ConfigEntry>;
13
+ declare const _delete: (client: Client, projectId: string, key: string, envType?: string) => Promise<void>;
14
+ export { _delete as delete };
15
+ //# sourceMappingURL=remoteConfig.d.ts.map