@sylphx/management 0.4.1 → 0.5.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 (79) hide show
  1. package/CHANGELOG.md +38 -2
  2. package/README.md +6 -6
  3. package/dist/adminEnvsSpec.d.ts +11 -0
  4. package/dist/adminEnvsSpec.d.ts.map +1 -0
  5. package/dist/adminEnvsSpec.js +12 -0
  6. package/dist/adminSecrets.d.ts +3 -3
  7. package/dist/adminSecrets.d.ts.map +1 -1
  8. package/dist/adminSecrets.js +2 -2
  9. package/dist/auth.d.ts +7 -18
  10. package/dist/auth.d.ts.map +1 -1
  11. package/dist/auth.js +1 -2
  12. package/dist/authSettings.d.ts +7 -60
  13. package/dist/authSettings.d.ts.map +1 -1
  14. package/dist/authSettings.js +11 -19
  15. package/dist/backups.d.ts +8 -25
  16. package/dist/backups.d.ts.map +1 -1
  17. package/dist/backups.js +21 -7
  18. package/dist/client.d.ts +5 -2
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +3 -2
  21. package/dist/deployments.d.ts +11 -4
  22. package/dist/deployments.d.ts.map +1 -1
  23. package/dist/deployments.js +10 -3
  24. package/dist/domains.d.ts +1 -1
  25. package/dist/domains.d.ts.map +1 -1
  26. package/dist/domains.js +1 -1
  27. package/dist/email.d.ts +22 -29
  28. package/dist/email.d.ts.map +1 -1
  29. package/dist/email.js +52 -12
  30. package/dist/environments.d.ts.map +1 -1
  31. package/dist/environments.js +4 -1
  32. package/dist/http.d.ts.map +1 -1
  33. package/dist/http.js +6 -3
  34. package/dist/index.d.ts +2 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -0
  37. package/dist/kv.d.ts +1 -2
  38. package/dist/kv.d.ts.map +1 -1
  39. package/dist/management.d.ts +10 -11
  40. package/dist/management.d.ts.map +1 -1
  41. package/dist/management.js +5 -5
  42. package/dist/newsletter.d.ts +32 -257
  43. package/dist/newsletter.d.ts.map +1 -1
  44. package/dist/newsletter.js +135 -95
  45. package/dist/oidc.d.ts +6 -27
  46. package/dist/oidc.d.ts.map +1 -1
  47. package/dist/oidc.js +16 -6
  48. package/dist/organizations.d.ts +3 -1
  49. package/dist/organizations.d.ts.map +1 -1
  50. package/dist/organizations.js +8 -0
  51. package/dist/privacy.d.ts +3 -98
  52. package/dist/privacy.d.ts.map +1 -1
  53. package/dist/privacy.js +57 -25
  54. package/dist/realtime.d.ts +4 -6
  55. package/dist/realtime.d.ts.map +1 -1
  56. package/dist/realtime.js +4 -5
  57. package/dist/refresh.d.ts +11 -12
  58. package/dist/refresh.d.ts.map +1 -1
  59. package/dist/refresh.js +10 -2
  60. package/dist/runners.d.ts +7 -58
  61. package/dist/runners.d.ts.map +1 -1
  62. package/dist/runners.js +18 -17
  63. package/dist/sandboxes.d.ts +1 -1
  64. package/dist/sandboxes.js +1 -1
  65. package/dist/search.d.ts +7 -40
  66. package/dist/search.d.ts.map +1 -1
  67. package/dist/search.js +28 -18
  68. package/dist/serviceTokens.d.ts +8 -44
  69. package/dist/serviceTokens.d.ts.map +1 -1
  70. package/dist/serviceTokens.js +24 -8
  71. package/dist/tasks.d.ts +3 -6
  72. package/dist/tasks.d.ts.map +1 -1
  73. package/dist/types.d.ts +8 -22
  74. package/dist/types.d.ts.map +1 -1
  75. package/dist/types.js +1 -1
  76. package/dist/volumes.d.ts +6 -5
  77. package/dist/volumes.d.ts.map +1 -1
  78. package/dist/volumes.js +40 -7
  79. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,WAAW,GAAG,qBAAqB,GAAG,QAAQ,CAAA;AAE5F,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAK7C,CAAA;AAEV,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,KACf,OAAO,CAAC;IAAE,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CACqC,CAAA;AAEnF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,WAAW,KAChB,OAAO,CAAC,UAAU,CAGlB,CAAA;AAEH,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,KACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAK7B,CAAA;AACF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,WAAW,GAAG,qBAAqB,GAAG,QAAQ,CAAA;AAE5F,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAK7C,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,cAAc,CAAA;AAEvC,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAGtF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,GAAG;IACnE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,WAAW,KAChB,OAAO,CAAC,UAAU,CAKpB,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,KACd,OAAO,CAAC,sBAAsB,CAGhC,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
package/dist/oidc.js CHANGED
@@ -10,16 +10,26 @@
10
10
  * custom. Each policy pins an issuer + subject pattern + allowed scope
11
11
  * set; tokens exchanged through the policy inherit exactly those scopes.
12
12
  */
13
- import { request } from './http.js';
13
+ import { oidcEndpoints } from '@sylphx/contract';
14
+ import { interpolatePath, request } from './http.js';
14
15
  export const SUPPORTED_PROVIDERS = [
15
16
  'github-actions',
16
17
  'gitlab-ci',
17
18
  'bitbucket-pipelines',
18
19
  'custom',
19
20
  ];
20
- export const list = (client, projectId) => request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/oidc-policies`);
21
- export const create = (client, projectId, input) => request(client, 'POST', `/projects/${encodeURIComponent(projectId)}/oidc-policies`, {
22
- body: { audience: null, ...input },
23
- });
24
- const _delete = (client, projectId, policyId) => request(client, 'DELETE', `/projects/${encodeURIComponent(projectId)}/oidc-policies/${encodeURIComponent(policyId)}`);
21
+ export const list = (client, projectId) => {
22
+ const { method, path } = oidcEndpoints.listPolicies;
23
+ return request(client, method, interpolatePath(path, { projectId }));
24
+ };
25
+ export const create = (client, projectId, input) => {
26
+ const { method, path } = oidcEndpoints.createPolicy;
27
+ return request(client, method, interpolatePath(path, { projectId }), {
28
+ body: { audience: null, ...input },
29
+ });
30
+ };
31
+ const _delete = (client, projectId, policyId) => {
32
+ const { method, path } = oidcEndpoints.deletePolicy;
33
+ return request(client, method, interpolatePath(path, { projectId, id: policyId }));
34
+ };
25
35
  export { _delete as delete };
@@ -3,11 +3,13 @@
3
3
  *
4
4
  * Wire shape sourced from `@sylphx/contract` (ADR-084).
5
5
  */
6
- import type { MyOrgResponse, OrgMember, OrgMemberRole, UpdateMemberRoleResult, UserOrganizationsResponse } from '@sylphx/contract';
6
+ import type { CreateOrgInput, MyOrgResponse, Organization, OrgMember, OrgMemberRole, OrgSettings, UpdateMemberRoleResult, UserOrganizationsResponse } from '@sylphx/contract';
7
7
  import type { Client } from './client.js';
8
8
  export type { OrgMemberRole, UpdateMemberRoleResult };
9
9
  export declare const current: (client: Client) => Promise<MyOrgResponse>;
10
10
  export declare const listMemberships: (client: Client) => Promise<UserOrganizationsResponse>;
11
+ export declare const create: (client: Client, input: CreateOrgInput) => Promise<Organization>;
12
+ export declare const getSettings: (client: Client, id: string) => Promise<OrgSettings>;
11
13
  export declare const listMembers: (client: Client, orgId: string) => Promise<OrgMember[]>;
12
14
  export declare const inviteMember: (client: Client, orgId: string, email: string, role: "admin" | "member") => Promise<void>;
13
15
  export declare const removeMember: (client: Client, orgId: string, userId: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../src/organizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,aAAa,EACb,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAA;AAErD,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAG7D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,yBAAyB,CAGjF,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAQpF,CAAA;AAED,eAAO,MAAM,YAAY,GACxB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,OAAO,MAAM,EACb,MAAM,OAAO,GAAG,QAAQ,KACtB,OAAO,CAAC,IAAI,CAKd,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAGxF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,MAAM,aAAa,KACjB,OAAO,CAAC,sBAAsB,CAKhC,CAAA"}
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../src/organizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAA;AAErD,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAG7D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,yBAAyB,CAGjF,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,cAAc,KAAG,OAAO,CAAC,YAAY,CAGlF,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,WAAW,CAG3E,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAQpF,CAAA;AAED,eAAO,MAAM,YAAY,GACxB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,OAAO,MAAM,EACb,MAAM,OAAO,GAAG,QAAQ,KACtB,OAAO,CAAC,IAAI,CAKd,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAGxF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,MAAM,aAAa,KACjB,OAAO,CAAC,sBAAsB,CAKhC,CAAA"}
@@ -13,6 +13,14 @@ export const listMemberships = (client) => {
13
13
  const { method, path } = organizationsEndpoints.memberships;
14
14
  return request(client, method, path);
15
15
  };
16
+ export const create = (client, input) => {
17
+ const { method, path } = organizationsEndpoints.create;
18
+ return request(client, method, path, { body: input });
19
+ };
20
+ export const getSettings = (client, id) => {
21
+ const { method, path } = organizationsEndpoints.getSettings;
22
+ return request(client, method, interpolatePath(path, { id }));
23
+ };
16
24
  export const listMembers = async (client, orgId) => {
17
25
  const { method, path } = organizationsEndpoints.listMembers;
18
26
  const res = await request(client, method, interpolatePath(path, { orgId }));
package/dist/privacy.d.ts CHANGED
@@ -14,75 +14,18 @@
14
14
  * Project path parameters accept TypeID OR slug (handled server-side via
15
15
  * `getProjectByIdOrSlugWithAccess`); the SDK intentionally does not narrow.
16
16
  */
17
+ import type { BulkLinkCookiesInput, BulkLinkCookiesResult, CookieCategory, CookieParty, CookieScanSummary, DetectedCookie, LinkCookieResult, ListCookiesResult, ListScansResult, ScanReport, ScanReportSummary, ScanStatus, SeedKnownCookiesResult, StartScanInput, StartScanResult, UpdateCookieCategoryResult } from '@sylphx/contract';
17
18
  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
- }
19
+ export type { BulkLinkCookiesInput, BulkLinkCookiesResult, CookieCategory, CookieParty, CookieScanSummary, DetectedCookie, LinkCookieResult, ListCookiesResult, ListScansResult, ScanReport, ScanStatus, SeedKnownCookiesResult, StartScanInput, StartScanResult, UpdateCookieCategoryResult, };
20
+ export type ScanSummary = ScanReportSummary;
32
21
  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
22
  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
23
  export interface ListScansOptions {
58
24
  readonly status?: ScanStatus;
59
25
  readonly limit?: number;
60
26
  readonly offset?: number;
61
27
  }
62
- export interface ListScansResult {
63
- readonly scans: readonly ScanSummary[];
64
- readonly total: number;
65
- readonly limit: number;
66
- readonly offset: number;
67
- }
68
28
  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
29
  export interface ListCookiesOptions {
87
30
  readonly scanId?: string;
88
31
  readonly category?: CookieCategory;
@@ -91,48 +34,10 @@ export interface ListCookiesOptions {
91
34
  readonly limit?: number;
92
35
  readonly offset?: number;
93
36
  }
94
- export interface ListCookiesResult {
95
- readonly cookies: readonly DetectedCookie[];
96
- readonly total: number;
97
- readonly limit: number;
98
- readonly offset: number;
99
- }
100
37
  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
38
  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
39
  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
40
  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
41
  export declare const bulkLinkCookies: (client: Client, input: BulkLinkCookiesInput) => Promise<BulkLinkCookiesResult>;
133
- export interface SeedKnownCookiesResult {
134
- readonly seededCount: number;
135
- readonly message: string;
136
- }
137
42
  export declare const seedKnownCookies: (client: Client) => Promise<SeedKnownCookiesResult>;
138
43
  //# sourceMappingURL=privacy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../src/privacy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../src/privacy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACX,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,0BAA0B,EAC1B,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,YAAY,EACX,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,0BAA0B,GAC1B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAA;AAE3C,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,OAAO,cAAc,KAAG,OAAO,CAAC,eAAe,CAGxF,CAAA;AAED,eAAO,MAAM,OAAO,GACnB,QAAQ,MAAM,EACd,iBAAiB,MAAM,EACvB,QAAQ,MAAM,KACZ,OAAO,CAAC,UAAU,CAGpB,CAAA;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,SAAS,GACrB,QAAQ,MAAM,EACd,iBAAiB,MAAM,EACvB,UAAU,gBAAgB,KACxB,OAAO,CAAC,eAAe,CASzB,CAAA;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,WAAW,GACvB,QAAQ,MAAM,EACd,iBAAiB,MAAM,EACvB,UAAU,kBAAkB,KAC1B,OAAO,CAAC,iBAAiB,CAY3B,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,iBAAiB,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAG1F,CAAA;AAED,eAAO,MAAM,oBAAoB,GAChC,QAAQ,MAAM,EACd,iBAAiB,MAAM,EACvB,UAAU,MAAM,EAChB,UAAU,cAAc,KACtB,OAAO,CAAC,0BAA0B,CAKpC,CAAA;AAED,eAAO,MAAM,uBAAuB,GACnC,QAAQ,MAAM,EACd,iBAAiB,MAAM,EACvB,UAAU,MAAM,EAChB,eAAe,MAAM,GAAG,IAAI,KAC1B,OAAO,CAAC,gBAAgB,CAK1B,CAAA;AAED,eAAO,MAAM,eAAe,GAC3B,QAAQ,MAAM,EACd,OAAO,oBAAoB,KACzB,OAAO,CAAC,qBAAqB,CAG/B,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAG/E,CAAA"}
package/dist/privacy.js CHANGED
@@ -14,28 +14,60 @@
14
14
  * Project path parameters accept TypeID OR slug (handled server-side via
15
15
  * `getProjectByIdOrSlugWithAccess`); the SDK intentionally does not narrow.
16
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');
17
+ import { privacyEndpoints } from '@sylphx/contract';
18
+ import { interpolatePath, request } from './http.js';
19
+ export const startScan = (client, input) => {
20
+ const { method, path } = privacyEndpoints.startScan;
21
+ return request(client, method, path, { body: input });
22
+ };
23
+ export const getScan = (client, projectIdOrSlug, scanId) => {
24
+ const { method, path } = privacyEndpoints.getScan;
25
+ return request(client, method, interpolatePath(path, { id: projectIdOrSlug, scanId }));
26
+ };
27
+ export const listScans = (client, projectIdOrSlug, options) => {
28
+ const { method, path } = privacyEndpoints.listScans;
29
+ return request(client, method, interpolatePath(path, { id: projectIdOrSlug }), {
30
+ query: {
31
+ status: options?.status,
32
+ limit: options?.limit !== undefined ? String(options.limit) : undefined,
33
+ offset: options?.offset !== undefined ? String(options.offset) : undefined,
34
+ },
35
+ });
36
+ };
37
+ export const listCookies = (client, projectIdOrSlug, options) => {
38
+ const { method, path } = privacyEndpoints.listCookies;
39
+ return request(client, method, interpolatePath(path, { id: projectIdOrSlug }), {
40
+ query: {
41
+ scanId: options?.scanId,
42
+ category: options?.category,
43
+ party: options?.party,
44
+ search: options?.search,
45
+ limit: options?.limit !== undefined ? String(options.limit) : undefined,
46
+ offset: options?.offset !== undefined ? String(options.offset) : undefined,
47
+ },
48
+ });
49
+ };
50
+ export const summary = (client, projectIdOrSlug) => {
51
+ const { method, path } = privacyEndpoints.getSummary;
52
+ return request(client, method, interpolatePath(path, { id: projectIdOrSlug }));
53
+ };
54
+ export const updateCookieCategory = (client, projectIdOrSlug, cookieId, category) => {
55
+ const { method, path } = privacyEndpoints.updateCookieCategory;
56
+ return request(client, method, interpolatePath(path, { id: projectIdOrSlug, cookieId }), {
57
+ body: { category },
58
+ });
59
+ };
60
+ export const linkCookieToConsentType = (client, projectIdOrSlug, cookieId, consentTypeId) => {
61
+ const { method, path } = privacyEndpoints.linkCookie;
62
+ return request(client, method, interpolatePath(path, { id: projectIdOrSlug, cookieId }), {
63
+ body: { consentTypeId },
64
+ });
65
+ };
66
+ export const bulkLinkCookies = (client, input) => {
67
+ const { method, path } = privacyEndpoints.bulkLinkCookies;
68
+ return request(client, method, path, { body: input });
69
+ };
70
+ export const seedKnownCookies = (client) => {
71
+ const { method, path } = privacyEndpoints.seedKnownCookies;
72
+ return request(client, method, path);
73
+ };
@@ -1,19 +1,17 @@
1
1
  /**
2
- * Realtime pub/sub — per-project Redis Streams backing SSE channels.
2
+ * Realtime pub/sub — per-project managed event channels.
3
3
  *
4
- * GET /realtime/status?projectId= — availability + provider
4
+ * GET /realtime/status?projectId= — availability
5
5
  * GET /realtime/channels?projectId= — list active channels
6
6
  * POST /realtime/channels — reserve a channel name
7
7
  * DELETE /realtime/channels/:channelName — free a channel
8
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).
9
+ * Consumers open managed realtime connections from their app; this SDK
10
+ * module only manages the channel registry (create / list / delete).
12
11
  */
13
12
  import type { Client } from './client.js';
14
13
  export interface RealtimeStatus {
15
14
  readonly available: boolean;
16
- readonly provider: string;
17
15
  }
18
16
  export declare const status: (client: Client, projectId: string) => Promise<RealtimeStatus>;
19
17
  export interface RealtimeChannel {
@@ -1 +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"}
1
+ {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC3B;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"}
package/dist/realtime.js CHANGED
@@ -1,14 +1,13 @@
1
1
  /**
2
- * Realtime pub/sub — per-project Redis Streams backing SSE channels.
2
+ * Realtime pub/sub — per-project managed event channels.
3
3
  *
4
- * GET /realtime/status?projectId= — availability + provider
4
+ * GET /realtime/status?projectId= — availability
5
5
  * GET /realtime/channels?projectId= — list active channels
6
6
  * POST /realtime/channels — reserve a channel name
7
7
  * DELETE /realtime/channels/:channelName — free a channel
8
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).
9
+ * Consumers open managed realtime connections from their app; this SDK
10
+ * module only manages the channel registry (create / list / delete).
12
11
  */
13
12
  import { request } from './http.js';
14
13
  export const status = (client, projectId) => request(client, 'GET', '/realtime/status', { query: { projectId } });
package/dist/refresh.d.ts CHANGED
@@ -16,13 +16,15 @@
16
16
  * @see docs/adr/ADR-059-unified-credentials.md §1.1
17
17
  * @see docs/adr/ADR-089-platform-as-first-customer-of-baas.md
18
18
  */
19
+ import { authEndpoints, type RefreshTokenResult } from '@sylphx/contract';
19
20
  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
- }
21
+ export type RefreshResult = RefreshTokenResult;
22
+ type EndpointResponse<E> = E extends {
23
+ readonly response: {
24
+ readonly Type: infer T;
25
+ };
26
+ } ? T : never;
27
+ export type SignOutResult = EndpointResponse<typeof authEndpoints.signOut>;
26
28
  /**
27
29
  * Rotate a refresh token. Returns a fresh access+refresh pair; the
28
30
  * presented refresh token is invalidated server-side (single-use
@@ -34,11 +36,8 @@ export declare const rotate: (client: Client, refreshToken: string) => Promise<R
34
36
  * revoked or unknown token still returns success to prevent side-channel
35
37
  * token-existence probing.
36
38
  */
37
- export declare const signOut: (client: Client, refreshToken: string) => Promise<{
38
- success: boolean;
39
- }>;
39
+ export declare const signOut: (client: Client, refreshToken: string) => Promise<SignOutResult>;
40
40
  /** Backwards-compat alias used by some Console flows. */
41
- export declare const revoke: (client: Client, refreshToken: string) => Promise<{
42
- success: boolean;
43
- }>;
41
+ export declare const revoke: (client: Client, refreshToken: string) => Promise<SignOutResult>;
42
+ export {};
44
43
  //# sourceMappingURL=refresh.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../src/refresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACN,aAAa,EAEb,KAAK,kBAAkB,EAEvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAA;AAC9C,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAClG,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAM1E;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,cAAc,MAAM,KAAG,OAAO,CAAC,aAAa,CAGhF,CAAA;AAEH;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,cAAc,MAAM,KAAG,OAAO,CAAC,aAAa,CAGjF,CAAA;AAEH,yDAAyD;AACzD,eAAO,MAAM,MAAM,WANa,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,aAAa,CAMvD,CAAA"}
package/dist/refresh.js CHANGED
@@ -16,18 +16,26 @@
16
16
  * @see docs/adr/ADR-059-unified-credentials.md §1.1
17
17
  * @see docs/adr/ADR-089-platform-as-first-customer-of-baas.md
18
18
  */
19
+ import { authEndpoints, refreshEndpoints, } from '@sylphx/contract';
19
20
  import { request } from './http.js';
21
+ const refreshTokenBody = (refreshToken) => ({
22
+ refresh_token: refreshToken,
23
+ });
20
24
  /**
21
25
  * Rotate a refresh token. Returns a fresh access+refresh pair; the
22
26
  * presented refresh token is invalidated server-side (single-use
23
27
  * rotation per ADR-059 §1.1).
24
28
  */
25
- export const rotate = (client, refreshToken) => request(client, 'POST', '/auth/refresh', { body: { refreshToken } });
29
+ export const rotate = (client, refreshToken) => request(client, refreshEndpoints.refresh.method, refreshEndpoints.refresh.path, {
30
+ body: refreshTokenBody(refreshToken),
31
+ });
26
32
  /**
27
33
  * Revoke a refresh token (sign out). Idempotent — revoking an already-
28
34
  * revoked or unknown token still returns success to prevent side-channel
29
35
  * token-existence probing.
30
36
  */
31
- export const signOut = (client, refreshToken) => request(client, 'POST', '/auth/logout', { body: { refreshToken } });
37
+ export const signOut = (client, refreshToken) => request(client, authEndpoints.signOut.method, authEndpoints.signOut.path, {
38
+ body: refreshTokenBody(refreshToken),
39
+ });
32
40
  /** Backwards-compat alias used by some Console flows. */
33
41
  export const revoke = signOut;
package/dist/runners.d.ts CHANGED
@@ -1,60 +1,9 @@
1
- /**
2
- * CI runners — self-hosted machines that execute build / deploy jobs.
3
- *
4
- * POST /runners — register (returns one-time install token)
5
- * GET /runners — list
6
- * GET /runners/:id/jobs — recent jobs for a runner
7
- * DELETE /runners/:id — unregister
8
- *
9
- * The `registrationToken` returned by `register()` is shown ONCE — the
10
- * server only keeps a hash. Runners exchange it for a long-lived
11
- * credential during bootstrap.
12
- */
1
+ import { type CreateRunnerInput, type CreateRunnerResult, type DeleteRunnerResult, type ListRunnerJobsResult, type ListRunnersResult, type Runner, type RunnerArch, type RunnerJob, type RunnerPlatform } from '@sylphx/contract';
13
2
  import type { Client } from './client.js';
14
- export type RunnerPlatform = 'linux' | 'macos' | 'windows';
15
- export type RunnerArch = 'x64' | 'arm64';
16
- export interface RunnerView {
17
- readonly id: string;
18
- readonly name: string;
19
- readonly platform: RunnerPlatform;
20
- readonly arch: RunnerArch;
21
- readonly version: string | null;
22
- readonly status: string;
23
- readonly lastSeenAt: string | null;
24
- readonly createdAt: string;
25
- readonly labels?: readonly string[];
26
- readonly maxJobs?: number;
27
- }
28
- export interface RunnerJob {
29
- readonly id: string;
30
- readonly runnerId: string | null;
31
- readonly status: string;
32
- readonly gitRepo: string;
33
- readonly gitBranch: string;
34
- readonly gitCommit: string | null;
35
- readonly startedAt: string | null;
36
- readonly finishedAt: string | null;
37
- }
38
- export interface RegisterInput {
39
- readonly name: string;
40
- readonly platform: RunnerPlatform;
41
- readonly arch: RunnerArch;
42
- readonly labels?: readonly string[];
43
- readonly maxJobs?: number;
44
- }
45
- export interface RegisterResult {
46
- readonly runnerId: string;
47
- /** One-time install token — shown ONCE. */
48
- readonly registrationToken: string;
49
- }
50
- export declare const register: (client: Client, input: RegisterInput) => Promise<RegisterResult>;
51
- export declare const list: (client: Client) => Promise<{
52
- runners: readonly RunnerView[];
53
- }>;
54
- export declare const listJobs: (client: Client, runnerId: string) => Promise<{
55
- jobs: readonly RunnerJob[];
56
- }>;
57
- export declare const unregister: (client: Client, runnerId: string) => Promise<{
58
- success: boolean;
59
- }>;
3
+ export type { CreateRunnerInput as RegisterInput, CreateRunnerResult as RegisterResult, Runner, RunnerArch, RunnerJob, RunnerPlatform, };
4
+ export type RunnerView = Runner;
5
+ export declare const register: (client: Client, input: CreateRunnerInput) => Promise<CreateRunnerResult>;
6
+ export declare const list: (client: Client) => Promise<ListRunnersResult>;
7
+ export declare const listJobs: (client: Client, runnerId: string) => Promise<ListRunnerJobsResult>;
8
+ export declare const unregister: (client: Client, runnerId: string) => Promise<DeleteRunnerResult>;
60
9
  //# sourceMappingURL=runners.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../src/runners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;AAC1D,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA;AAExC,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CAClC;AAED,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,OAAO,aAAa,KAAG,OAAO,CAAC,cAAc,CACjC,CAAA;AAErD,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAC7C,CAAA;AAEnC,eAAO,MAAM,QAAQ,GACpB,QAAQ,MAAM,EACd,UAAU,MAAM,KACd,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,CAC+B,CAAA;AAExE,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CACpB,CAAA"}
1
+ {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../src/runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EAEnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,YAAY,EACX,iBAAiB,IAAI,aAAa,EAClC,kBAAkB,IAAI,cAAc,EACpC,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,GACd,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAE/B,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,OAAO,iBAAiB,KAAG,OAAO,CAAC,kBAAkB,CAG7F,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAG9D,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,oBAAoB,CAGvF,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,kBAAkB,CAGvF,CAAA"}
package/dist/runners.js CHANGED
@@ -1,17 +1,18 @@
1
- /**
2
- * CI runners self-hosted machines that execute build / deploy jobs.
3
- *
4
- * POST /runners — register (returns one-time install token)
5
- * GET /runners — list
6
- * GET /runners/:id/jobs — recent jobs for a runner
7
- * DELETE /runners/:id — unregister
8
- *
9
- * The `registrationToken` returned by `register()` is shown ONCE — the
10
- * server only keeps a hash. Runners exchange it for a long-lived
11
- * credential during bootstrap.
12
- */
13
- import { request } from './http.js';
14
- export const register = (client, input) => request(client, 'POST', '/runners', { body: input });
15
- export const list = (client) => request(client, 'GET', '/runners');
16
- export const listJobs = (client, runnerId) => request(client, 'GET', `/runners/${encodeURIComponent(runnerId)}/jobs`);
17
- export const unregister = (client, runnerId) => request(client, 'DELETE', `/runners/${encodeURIComponent(runnerId)}`);
1
+ import { runnersEndpoints, } from '@sylphx/contract';
2
+ import { interpolatePath, request } from './http.js';
3
+ export const register = (client, input) => {
4
+ const { method, path } = runnersEndpoints.create;
5
+ return request(client, method, path, { body: input });
6
+ };
7
+ export const list = (client) => {
8
+ const { method, path } = runnersEndpoints.list;
9
+ return request(client, method, path);
10
+ };
11
+ export const listJobs = (client, runnerId) => {
12
+ const { method, path } = runnersEndpoints.listJobs;
13
+ return request(client, method, interpolatePath(path, { runnerId }));
14
+ };
15
+ export const unregister = (client, runnerId) => {
16
+ const { method, path } = runnersEndpoints.delete;
17
+ return request(client, method, interpolatePath(path, { runnerId }));
18
+ };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Ephemeral compute sandboxes (ADR-052 container_executions).
3
3
  *
4
- * POST /projects/:id/sandboxes — create (waits for pod ready)
4
+ * POST /projects/:id/sandboxes — create (waits for runtime ready)
5
5
  * GET /projects/:id/sandboxes — list active sandboxes for a project
6
6
  * GET /sandboxes/:id — get details
7
7
  * DELETE /sandboxes/:id — terminate
package/dist/sandboxes.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Ephemeral compute sandboxes (ADR-052 container_executions).
3
3
  *
4
- * POST /projects/:id/sandboxes — create (waits for pod ready)
4
+ * POST /projects/:id/sandboxes — create (waits for runtime ready)
5
5
  * GET /projects/:id/sandboxes — list active sandboxes for a project
6
6
  * GET /sandboxes/:id — get details
7
7
  * DELETE /sandboxes/:id — terminate