@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.
- package/CHANGELOG.md +88 -0
- package/LICENSE +21 -0
- package/README.md +157 -101
- package/dist/admin.d.ts +141 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +96 -0
- package/dist/adminBootstrap.d.ts +46 -0
- package/dist/adminBootstrap.d.ts.map +1 -0
- package/dist/adminBootstrap.js +33 -0
- package/dist/adminBuilds.d.ts +72 -0
- package/dist/adminBuilds.d.ts.map +1 -0
- package/dist/adminBuilds.js +29 -0
- package/dist/adminEnvServices.d.ts +41 -0
- package/dist/adminEnvServices.d.ts.map +1 -0
- package/dist/adminEnvServices.js +22 -0
- package/dist/adminRateLimits.d.ts +61 -0
- package/dist/adminRateLimits.d.ts.map +1 -0
- package/dist/adminRateLimits.js +44 -0
- package/dist/adminReconcile.d.ts +45 -0
- package/dist/adminReconcile.d.ts.map +1 -0
- package/dist/adminReconcile.js +20 -0
- package/dist/adminResources.d.ts +97 -0
- package/dist/adminResources.d.ts.map +1 -0
- package/dist/adminResources.js +40 -0
- package/dist/adminSecrets.d.ts +60 -0
- package/dist/adminSecrets.d.ts.map +1 -0
- package/dist/adminSecrets.js +43 -0
- package/dist/adminTenants.d.ts +41 -0
- package/dist/adminTenants.d.ts.map +1 -0
- package/dist/adminTenants.js +29 -0
- package/dist/ai.d.ts +148 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +29 -0
- package/dist/analytics.d.ts +49 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +23 -0
- package/dist/auth.d.ts +39 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +27 -0
- package/dist/authSettings.d.ts +71 -0
- package/dist/authSettings.d.ts.map +1 -0
- package/dist/authSettings.js +39 -0
- package/dist/backups.d.ts +66 -0
- package/dist/backups.d.ts.map +1 -0
- package/dist/backups.js +32 -0
- package/dist/billing.d.ts +105 -0
- package/dist/billing.d.ts.map +1 -0
- package/dist/billing.js +42 -0
- package/dist/billingSettings.d.ts +78 -0
- package/dist/billingSettings.d.ts.map +1 -0
- package/dist/billingSettings.js +54 -0
- package/dist/branchDatabases.d.ts +53 -0
- package/dist/branchDatabases.d.ts.map +1 -0
- package/dist/branchDatabases.js +38 -0
- package/dist/certs.d.ts +63 -0
- package/dist/certs.d.ts.map +1 -0
- package/dist/certs.js +28 -0
- package/dist/ciSettings.d.ts +77 -0
- package/dist/ciSettings.d.ts.map +1 -0
- package/dist/ciSettings.js +41 -0
- package/dist/client.d.ts +36 -38
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +32 -90
- package/dist/consent.d.ts +111 -0
- package/dist/consent.d.ts.map +1 -0
- package/dist/consent.js +35 -0
- package/dist/databases.d.ts +17 -0
- package/dist/databases.d.ts.map +1 -0
- package/dist/databases.js +32 -0
- package/dist/deployments.d.ts +22 -0
- package/dist/deployments.d.ts.map +1 -0
- package/dist/deployments.js +39 -0
- package/dist/domains.d.ts +26 -0
- package/dist/domains.d.ts.map +1 -0
- package/dist/domains.js +39 -0
- package/dist/edgeDeployments.d.ts +43 -0
- package/dist/edgeDeployments.d.ts.map +1 -0
- package/dist/edgeDeployments.js +32 -0
- package/dist/email.d.ts +45 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +21 -0
- package/dist/engagement.d.ts +100 -0
- package/dist/engagement.d.ts.map +1 -0
- package/dist/engagement.js +28 -0
- package/dist/envVars.d.ts +17 -0
- package/dist/envVars.d.ts.map +1 -0
- package/dist/envVars.js +34 -0
- package/dist/environments.d.ts +41 -0
- package/dist/environments.d.ts.map +1 -0
- package/dist/environments.js +54 -0
- package/dist/errors.d.ts +8 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +8 -2
- package/dist/experiments.d.ts +80 -0
- package/dist/experiments.d.ts.map +1 -0
- package/dist/experiments.js +23 -0
- package/dist/flags.d.ts +85 -0
- package/dist/flags.d.ts.map +1 -0
- package/dist/flags.js +25 -0
- package/dist/functions.d.ts +39 -0
- package/dist/functions.d.ts.map +1 -0
- package/dist/functions.js +40 -0
- package/dist/github.d.ts +33 -0
- package/dist/github.d.ts.map +1 -0
- package/dist/github.js +22 -0
- package/dist/http.d.ts +28 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +71 -0
- package/dist/index.d.ts +85 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -20
- package/dist/kv.d.ts +66 -0
- package/dist/kv.d.ts.map +1 -0
- package/dist/kv.js +36 -0
- package/dist/logs.d.ts +14 -0
- package/dist/logs.d.ts.map +1 -0
- package/dist/logs.js +17 -0
- package/dist/management.d.ts +55 -0
- package/dist/management.d.ts.map +1 -0
- package/dist/management.js +31 -0
- package/dist/monitoring.d.ts +65 -0
- package/dist/monitoring.d.ts.map +1 -0
- package/dist/monitoring.js +29 -0
- package/dist/newsletter.d.ts +279 -0
- package/dist/newsletter.d.ts.map +1 -0
- package/dist/newsletter.js +98 -0
- package/dist/notifications.d.ts +30 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +19 -0
- package/dist/oidc.d.ts +46 -0
- package/dist/oidc.d.ts.map +1 -0
- package/dist/oidc.js +25 -0
- package/dist/organizations.d.ts +24 -0
- package/dist/organizations.d.ts.map +1 -0
- package/dist/organizations.js +42 -0
- package/dist/plans.d.ts +66 -0
- package/dist/plans.d.ts.map +1 -0
- package/dist/plans.js +42 -0
- package/dist/privacy.d.ts +138 -0
- package/dist/privacy.d.ts.map +1 -0
- package/dist/privacy.js +41 -0
- package/dist/projects.d.ts +14 -0
- package/dist/projects.d.ts.map +1 -0
- package/dist/projects.js +22 -0
- package/dist/realtime.d.ts +33 -0
- package/dist/realtime.d.ts.map +1 -0
- package/dist/realtime.js +19 -0
- package/dist/referrals.d.ts +100 -0
- package/dist/referrals.d.ts.map +1 -0
- package/dist/referrals.js +33 -0
- package/dist/refresh.d.ts +44 -0
- package/dist/refresh.d.ts.map +1 -0
- package/dist/refresh.js +33 -0
- package/dist/remoteConfig.d.ts +15 -0
- package/dist/remoteConfig.d.ts.map +1 -0
- package/dist/remoteConfig.js +35 -0
- package/dist/resourceBindings.d.ts +19 -0
- package/dist/resourceBindings.d.ts.map +1 -0
- package/dist/resourceBindings.js +24 -0
- package/dist/runners.d.ts +60 -0
- package/dist/runners.d.ts.map +1 -0
- package/dist/runners.js +17 -0
- package/dist/saml.d.ts +44 -0
- package/dist/saml.d.ts.map +1 -0
- package/dist/saml.js +77 -0
- package/dist/sandboxes.d.ts +15 -0
- package/dist/sandboxes.d.ts.map +1 -0
- package/dist/sandboxes.js +18 -0
- package/dist/search.d.ts +66 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +29 -0
- package/dist/secrets.d.ts +50 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +61 -0
- package/dist/security.d.ts +58 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +49 -0
- package/dist/serviceTokenRequests.d.ts +71 -0
- package/dist/serviceTokenRequests.d.ts.map +1 -0
- package/dist/serviceTokenRequests.js +43 -0
- package/dist/serviceTokens.d.ts +65 -0
- package/dist/serviceTokens.d.ts.map +1 -0
- package/dist/serviceTokens.js +22 -0
- package/dist/services.d.ts +10 -0
- package/dist/services.d.ts.map +1 -0
- package/dist/services.js +15 -0
- package/dist/sessionReplay.d.ts +116 -0
- package/dist/sessionReplay.d.ts.map +1 -0
- package/dist/sessionReplay.js +29 -0
- package/dist/storage.d.ts +12 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +10 -0
- package/dist/tasks.d.ts +29 -0
- package/dist/tasks.d.ts.map +1 -0
- package/dist/tasks.js +29 -0
- package/dist/types.d.ts +59 -155
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +17 -3
- package/dist/user.d.ts +99 -0
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +58 -0
- package/dist/users.d.ts +9 -0
- package/dist/users.d.ts.map +1 -0
- package/dist/users.js +11 -0
- package/dist/volumes.d.ts +16 -0
- package/dist/volumes.d.ts.map +1 -0
- package/dist/volumes.js +9 -0
- package/dist/webhooks.d.ts +77 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +27 -0
- package/package.json +194 -5
- package/dist/request.d.ts +0 -5
- package/dist/request.d.ts.map +0 -1
- package/dist/request.js +0 -1
- package/dist/resources/config.d.ts +0 -30
- package/dist/resources/config.d.ts.map +0 -1
- package/dist/resources/config.js +0 -62
- package/dist/resources/databases.d.ts +0 -26
- package/dist/resources/databases.d.ts.map +0 -1
- package/dist/resources/databases.js +0 -29
- package/dist/resources/deployments.d.ts +0 -24
- package/dist/resources/deployments.d.ts.map +0 -1
- package/dist/resources/deployments.js +0 -30
- package/dist/resources/domains.d.ts +0 -30
- package/dist/resources/domains.d.ts.map +0 -1
- package/dist/resources/domains.js +0 -46
- package/dist/resources/env-vars.d.ts +0 -19
- package/dist/resources/env-vars.d.ts.map +0 -1
- package/dist/resources/env-vars.js +0 -30
- package/dist/resources/environments.d.ts +0 -16
- package/dist/resources/environments.d.ts.map +0 -1
- package/dist/resources/environments.js +0 -24
- package/dist/resources/logs.d.ts +0 -13
- package/dist/resources/logs.d.ts.map +0 -1
- package/dist/resources/logs.js +0 -20
- package/dist/resources/org.d.ts +0 -15
- package/dist/resources/org.d.ts.map +0 -1
- package/dist/resources/org.js +0 -25
- package/dist/resources/projects.d.ts +0 -19
- package/dist/resources/projects.d.ts.map +0 -1
- package/dist/resources/projects.js +0 -19
- package/dist/resources/resources.d.ts +0 -26
- package/dist/resources/resources.d.ts.map +0 -1
- package/dist/resources/resources.js +0 -32
- package/dist/resources/services.d.ts +0 -21
- package/dist/resources/services.d.ts.map +0 -1
- package/dist/resources/services.js +0 -30
- package/dist/resources/storage.d.ts +0 -21
- package/dist/resources/storage.d.ts.map +0 -1
- package/dist/resources/storage.js +0 -25
- package/dist/resources/tasks.d.ts +0 -42
- package/dist/resources/tasks.d.ts.map +0 -1
- package/dist/resources/tasks.js +0 -49
- package/dist/resources/user.d.ts +0 -9
- package/dist/resources/user.d.ts.map +0 -1
- package/dist/resources/user.js +0 -10
- package/dist/resources/volumes.d.ts +0 -20
- package/dist/resources/volumes.d.ts.map +0 -1
- package/dist/resources/volumes.js +0 -19
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session replay — rrweb-style session recordings for debugging + UX research.
|
|
3
|
+
*
|
|
4
|
+
* GET /session-replay/projects/:projectId/sessions
|
|
5
|
+
* GET /session-replay/projects/:projectId/sessions/stats
|
|
6
|
+
* GET /session-replay/projects/:projectId/sessions/:sessionId
|
|
7
|
+
* DELETE /session-replay/projects/:projectId/sessions/:sessionId
|
|
8
|
+
*
|
|
9
|
+
* The full session payload (`get()`) decompresses every rrweb event into a
|
|
10
|
+
* plain array — it can be large (MB+) for long sessions. The list endpoint
|
|
11
|
+
* returns summary rows only; fetch the full recording only for playback.
|
|
12
|
+
*/
|
|
13
|
+
import type { Client } from './client.js';
|
|
14
|
+
export interface SessionMarker {
|
|
15
|
+
readonly type: string;
|
|
16
|
+
readonly timestamp: number;
|
|
17
|
+
readonly payload?: Readonly<Record<string, unknown>>;
|
|
18
|
+
}
|
|
19
|
+
export interface SessionReplaySummary {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly sessionId: string;
|
|
22
|
+
readonly userId: string | null;
|
|
23
|
+
readonly url: string | null;
|
|
24
|
+
readonly userAgent: string | null;
|
|
25
|
+
readonly screenWidth: number | null;
|
|
26
|
+
readonly screenHeight: number | null;
|
|
27
|
+
readonly devicePixelRatio: number | null;
|
|
28
|
+
readonly timezone: string | null;
|
|
29
|
+
readonly language: string | null;
|
|
30
|
+
readonly duration: number | null;
|
|
31
|
+
readonly eventCount: number;
|
|
32
|
+
readonly bytesStored: number;
|
|
33
|
+
readonly hasErrors: boolean;
|
|
34
|
+
readonly errorIds: readonly string[];
|
|
35
|
+
readonly hasRageClicks: boolean;
|
|
36
|
+
readonly hasDeadClicks: boolean;
|
|
37
|
+
readonly rageClickCount: number;
|
|
38
|
+
readonly deadClickCount: number;
|
|
39
|
+
readonly networkRequestCount: number;
|
|
40
|
+
readonly consoleLogCount: number;
|
|
41
|
+
readonly markers: readonly SessionMarker[];
|
|
42
|
+
readonly isComplete: boolean;
|
|
43
|
+
readonly startedAt: string;
|
|
44
|
+
readonly endedAt: string | null;
|
|
45
|
+
readonly createdAt: string;
|
|
46
|
+
readonly updatedAt: string;
|
|
47
|
+
}
|
|
48
|
+
export interface RageClick {
|
|
49
|
+
readonly timestamp: number;
|
|
50
|
+
readonly element: string;
|
|
51
|
+
readonly selector?: string;
|
|
52
|
+
readonly clickCount: number;
|
|
53
|
+
readonly duration?: number;
|
|
54
|
+
readonly x?: number;
|
|
55
|
+
readonly y?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface DeadClick {
|
|
58
|
+
readonly timestamp: number;
|
|
59
|
+
readonly element: string;
|
|
60
|
+
readonly selector?: string;
|
|
61
|
+
readonly expectedAction?: string;
|
|
62
|
+
readonly x?: number;
|
|
63
|
+
readonly y?: number;
|
|
64
|
+
readonly waitTime?: number;
|
|
65
|
+
}
|
|
66
|
+
export interface NetworkRequest {
|
|
67
|
+
readonly timestamp: number;
|
|
68
|
+
readonly method: string;
|
|
69
|
+
readonly url: string;
|
|
70
|
+
readonly status: number;
|
|
71
|
+
readonly duration: number;
|
|
72
|
+
}
|
|
73
|
+
export interface ConsoleLog {
|
|
74
|
+
readonly timestamp: number;
|
|
75
|
+
readonly level: 'log' | 'info' | 'warn' | 'error';
|
|
76
|
+
readonly message: string;
|
|
77
|
+
readonly stack?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface SessionReplayFull extends SessionReplaySummary {
|
|
80
|
+
readonly events: readonly Readonly<Record<string, unknown>>[];
|
|
81
|
+
readonly rageClicks: readonly RageClick[];
|
|
82
|
+
readonly deadClicks: readonly DeadClick[];
|
|
83
|
+
readonly networkRequests: readonly NetworkRequest[];
|
|
84
|
+
readonly consoleLogs: readonly ConsoleLog[];
|
|
85
|
+
}
|
|
86
|
+
export interface ListOptions {
|
|
87
|
+
readonly limit?: number;
|
|
88
|
+
readonly offset?: number;
|
|
89
|
+
readonly hasErrors?: boolean;
|
|
90
|
+
readonly hasRageClicks?: boolean;
|
|
91
|
+
readonly hasDeadClicks?: boolean;
|
|
92
|
+
readonly userId?: string;
|
|
93
|
+
readonly startDate?: string;
|
|
94
|
+
readonly endDate?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface ListResult {
|
|
97
|
+
readonly sessions: readonly SessionReplaySummary[];
|
|
98
|
+
readonly total: number;
|
|
99
|
+
readonly hasMore: boolean;
|
|
100
|
+
}
|
|
101
|
+
export declare const list: (client: Client, projectId: string, options?: ListOptions) => Promise<ListResult>;
|
|
102
|
+
export interface SessionStats {
|
|
103
|
+
readonly totalSessions: number;
|
|
104
|
+
readonly sessionsThisMonth: number;
|
|
105
|
+
readonly sessionsThisWeek: number;
|
|
106
|
+
readonly sessionsWithErrors: number;
|
|
107
|
+
readonly sessionsWithRageClicks: number;
|
|
108
|
+
readonly totalStorageBytes: number;
|
|
109
|
+
}
|
|
110
|
+
export declare const stats: (client: Client, projectId: string) => Promise<SessionStats>;
|
|
111
|
+
export declare const get: (client: Client, projectId: string, sessionId: string) => Promise<SessionReplayFull>;
|
|
112
|
+
declare const _delete: (client: Client, projectId: string, sessionId: string) => Promise<{
|
|
113
|
+
success: boolean;
|
|
114
|
+
}>;
|
|
115
|
+
export { _delete as delete };
|
|
116
|
+
//# sourceMappingURL=sessionReplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionReplay.d.ts","sourceRoot":"","sources":["../src/sessionReplay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session replay — rrweb-style session recordings for debugging + UX research.
|
|
3
|
+
*
|
|
4
|
+
* GET /session-replay/projects/:projectId/sessions
|
|
5
|
+
* GET /session-replay/projects/:projectId/sessions/stats
|
|
6
|
+
* GET /session-replay/projects/:projectId/sessions/:sessionId
|
|
7
|
+
* DELETE /session-replay/projects/:projectId/sessions/:sessionId
|
|
8
|
+
*
|
|
9
|
+
* The full session payload (`get()`) decompresses every rrweb event into a
|
|
10
|
+
* plain array — it can be large (MB+) for long sessions. The list endpoint
|
|
11
|
+
* returns summary rows only; fetch the full recording only for playback.
|
|
12
|
+
*/
|
|
13
|
+
import { request } from './http.js';
|
|
14
|
+
export const list = (client, projectId, options) => request(client, 'GET', `/session-replay/projects/${encodeURIComponent(projectId)}/sessions`, {
|
|
15
|
+
query: {
|
|
16
|
+
limit: options?.limit !== undefined ? String(options.limit) : undefined,
|
|
17
|
+
offset: options?.offset !== undefined ? String(options.offset) : undefined,
|
|
18
|
+
hasErrors: options?.hasErrors !== undefined ? String(options.hasErrors) : undefined,
|
|
19
|
+
hasRageClicks: options?.hasRageClicks !== undefined ? String(options.hasRageClicks) : undefined,
|
|
20
|
+
hasDeadClicks: options?.hasDeadClicks !== undefined ? String(options.hasDeadClicks) : undefined,
|
|
21
|
+
userId: options?.userId,
|
|
22
|
+
startDate: options?.startDate,
|
|
23
|
+
endDate: options?.endDate,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
export const stats = (client, projectId) => request(client, 'GET', `/session-replay/projects/${encodeURIComponent(projectId)}/sessions/stats`);
|
|
27
|
+
export const get = (client, projectId, sessionId) => request(client, 'GET', `/session-replay/projects/${encodeURIComponent(projectId)}/sessions/${encodeURIComponent(sessionId)}`);
|
|
28
|
+
const _delete = (client, projectId, sessionId) => request(client, 'DELETE', `/session-replay/projects/${encodeURIComponent(projectId)}/sessions/${encodeURIComponent(sessionId)}`);
|
|
29
|
+
export { _delete as delete };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Blob storage — list / create / delete. */
|
|
2
|
+
import type { Client } from './client.js';
|
|
3
|
+
import type { StorageResource } from './types.js';
|
|
4
|
+
export declare const list: (client: Client, projectId: string, envType?: string) => Promise<StorageResource[]>;
|
|
5
|
+
export interface CreateInput {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly envType: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const create: (client: Client, projectId: string, input: CreateInput) => Promise<StorageResource>;
|
|
10
|
+
declare const _delete: (client: Client, projectId: string, storageId: string) => Promise<void>;
|
|
11
|
+
export { _delete as delete };
|
|
12
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,KACd,OAAO,CAAC,eAAe,EAAE,CAQ3B,CAAA;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,WAAW,KAChB,OAAO,CAAC,eAAe,CACqE,CAAA;AAE/F,QAAA,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAKlF,CAAA;AACF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/storage.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Blob storage — list / create / delete. */
|
|
2
|
+
import { request } from './http.js';
|
|
3
|
+
export const list = async (client, projectId, envType) => {
|
|
4
|
+
const res = await request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/storage`);
|
|
5
|
+
const arr = Array.isArray(res) ? res : [];
|
|
6
|
+
return envType ? arr.filter((r) => !r.envType || r.envType === envType) : arr;
|
|
7
|
+
};
|
|
8
|
+
export const create = (client, projectId, input) => request(client, 'POST', `/projects/${encodeURIComponent(projectId)}/storage`, { body: input });
|
|
9
|
+
const _delete = (client, projectId, storageId) => request(client, 'DELETE', `/projects/${encodeURIComponent(projectId)}/storage/${encodeURIComponent(storageId)}`);
|
|
10
|
+
export { _delete as delete };
|
package/dist/tasks.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Task definitions (jobs / crons / services) — upsert by taskName + envId. */
|
|
2
|
+
import type { Client } from './client.js';
|
|
3
|
+
import type { Task } from './types.js';
|
|
4
|
+
export declare const list: (client: Client, projectId: string, envType?: string) => Promise<Task[]>;
|
|
5
|
+
export interface CreateInput {
|
|
6
|
+
readonly taskName: string;
|
|
7
|
+
readonly envType: string;
|
|
8
|
+
readonly executionMode?: 'job' | 'service' | 'cron';
|
|
9
|
+
readonly command?: readonly string[];
|
|
10
|
+
readonly imageRef?: string;
|
|
11
|
+
readonly machineConfig?: {
|
|
12
|
+
cpu?: string;
|
|
13
|
+
memory?: string;
|
|
14
|
+
gpu?: string;
|
|
15
|
+
};
|
|
16
|
+
readonly handlerPath?: string;
|
|
17
|
+
readonly timeoutSeconds?: number;
|
|
18
|
+
readonly retryConfig?: {
|
|
19
|
+
maxAttempts?: number;
|
|
20
|
+
backoff?: 'fixed' | 'exponential';
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare const create: (client: Client, projectId: string, input: CreateInput) => Promise<Task>;
|
|
24
|
+
export declare const get: (client: Client, projectId: string, taskId: string) => Promise<Task>;
|
|
25
|
+
export type UpdateInput = Partial<Pick<Task, 'executionMode' | 'command' | 'imageRef' | 'machineConfig' | 'handlerPath' | 'timeoutSeconds' | 'retryConfig'>>;
|
|
26
|
+
export declare const update: (client: Client, projectId: string, taskId: string, input: UpdateInput) => Promise<Task>;
|
|
27
|
+
declare const _delete: (client: Client, projectId: string, taskId: string) => Promise<void>;
|
|
28
|
+
export { _delete as delete };
|
|
29
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,UAAU,MAAM,KACd,OAAO,CAAC,IAAI,EAAE,CAShB,CAAA;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAA;KAAE,CAAA;CAClF;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,WAAW,KAChB,OAAO,CAAC,IAAI,CAad,CAAA;AAED,eAAO,MAAM,GAAG,GAAU,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAOzF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,CAChC,IAAI,CACH,IAAI,EACF,eAAe,GACf,SAAS,GACT,UAAU,GACV,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,aAAa,CACf,CACD,CAAA;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,QAAQ,MAAM,EACd,OAAO,WAAW,KAChB,OAAO,CAAC,IAAI,CAQd,CAAA;AAED,QAAA,MAAM,OAAO,GAAU,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAMtF,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
|
package/dist/tasks.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Task definitions (jobs / crons / services) — upsert by taskName + envId. */
|
|
2
|
+
import { resolveId as resolveEnvId } from './environments.js';
|
|
3
|
+
import { request } from './http.js';
|
|
4
|
+
export const list = async (client, projectId, envType) => {
|
|
5
|
+
const envId = envType ? await resolveEnvId(client, projectId, envType) : undefined;
|
|
6
|
+
const res = await request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/tasks`, envId ? { query: { envId } } : {});
|
|
7
|
+
return res.tasks ?? [];
|
|
8
|
+
};
|
|
9
|
+
export const create = async (client, projectId, input) => {
|
|
10
|
+
const envId = await resolveEnvId(client, projectId, input.envType);
|
|
11
|
+
if (!envId) {
|
|
12
|
+
throw new Error(`Environment '${input.envType}' not found for project '${projectId}'`);
|
|
13
|
+
}
|
|
14
|
+
const { envType: _drop, ...rest } = input;
|
|
15
|
+
const res = await request(client, 'POST', `/projects/${encodeURIComponent(projectId)}/tasks`, { body: { ...rest, envId } });
|
|
16
|
+
return res.task;
|
|
17
|
+
};
|
|
18
|
+
export const get = async (client, projectId, taskId) => {
|
|
19
|
+
const res = await request(client, 'GET', `/projects/${encodeURIComponent(projectId)}/tasks/${encodeURIComponent(taskId)}`);
|
|
20
|
+
return res.task;
|
|
21
|
+
};
|
|
22
|
+
export const update = async (client, projectId, taskId, input) => {
|
|
23
|
+
const res = await request(client, 'PATCH', `/projects/${encodeURIComponent(projectId)}/tasks/${encodeURIComponent(taskId)}`, { body: input });
|
|
24
|
+
return res.task;
|
|
25
|
+
};
|
|
26
|
+
const _delete = async (client, projectId, taskId) => {
|
|
27
|
+
await request(client, 'DELETE', `/projects/${encodeURIComponent(projectId)}/tasks/${encodeURIComponent(taskId)}`);
|
|
28
|
+
};
|
|
29
|
+
export { _delete as delete };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,32 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
export interface DeployResult {
|
|
25
|
-
deploymentId?: string;
|
|
26
|
-
status: string;
|
|
27
|
-
environment?: string;
|
|
28
|
-
message?: string;
|
|
29
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Domain types shared across capability modules.
|
|
3
|
+
*
|
|
4
|
+
* ADR-084 Wave 1 entities — **Project, Environment, Database, EnvVar,
|
|
5
|
+
* Domain* (Domain / DomainHostname / DomainEmailBinding / DnsRecord /
|
|
6
|
+
* HostnameInstruction), Deployment* (DeploymentStatus / DeployResult /
|
|
7
|
+
* DeploymentDetail / PromoteResult), Secret* (SecretDetail / SecretListItem
|
|
8
|
+
* / SecretVersion / EnvironmentRef), User (WhoAmI), Organization (Org /
|
|
9
|
+
* OrgMember)** — are re-exported **type-only** from `@sylphx/contract`
|
|
10
|
+
* (the framework-free Effect Schema SSOT). Hand-written types are gone; if
|
|
11
|
+
* wire shape drifts, fix it at the contract, not here.
|
|
12
|
+
*
|
|
13
|
+
* Entities whose contract package hasn't landed yet (Service, Volume,
|
|
14
|
+
* StorageResource, ConfigEntry, Task, Sandbox*, SylphxFunction*,
|
|
15
|
+
* ResourceBinding) keep their hand-written types below — they graduate as
|
|
16
|
+
* later ADR-084 waves ship.
|
|
17
|
+
*/
|
|
18
|
+
export type { DeploymentDetail, DeploymentEnvironmentStatus as DeploymentStatusEnv, DeploymentStatus, DeployResult, DnsRecord, Domain, Domain as DomainResult, DomainEmailBinding, DomainHostname, Environment, EnvVar, HostnameInstruction, Organization as Org, OrgMember, PromoteResult, } from '@sylphx/contract';
|
|
19
|
+
import type { Project } from '@sylphx/contract';
|
|
20
|
+
export type { Project };
|
|
21
|
+
/** @deprecated Use Project instead */
|
|
22
|
+
export type App = Project;
|
|
23
|
+
export type { Database, WhoAmI } from '@sylphx/contract';
|
|
30
24
|
export interface LogEntry {
|
|
31
25
|
id?: string;
|
|
32
26
|
level: 'info' | 'warn' | 'error' | 'success';
|
|
@@ -37,99 +31,6 @@ export interface LogStream {
|
|
|
37
31
|
url: string;
|
|
38
32
|
token: string;
|
|
39
33
|
}
|
|
40
|
-
export interface EnvVar {
|
|
41
|
-
key: string;
|
|
42
|
-
value: string;
|
|
43
|
-
isSecret?: boolean;
|
|
44
|
-
secret?: boolean;
|
|
45
|
-
}
|
|
46
|
-
export interface DnsRecord {
|
|
47
|
-
type: 'MX' | 'TXT' | 'CNAME' | 'A';
|
|
48
|
-
name: string;
|
|
49
|
-
value: string;
|
|
50
|
-
priority?: number;
|
|
51
|
-
ttl: number;
|
|
52
|
-
status?: 'pending' | 'verified';
|
|
53
|
-
description?: string;
|
|
54
|
-
}
|
|
55
|
-
export interface HostnameInstruction {
|
|
56
|
-
type: 'A' | 'CNAME';
|
|
57
|
-
name: string;
|
|
58
|
-
value: string;
|
|
59
|
-
ttl: number;
|
|
60
|
-
}
|
|
61
|
-
export interface DomainHostname {
|
|
62
|
-
id: string;
|
|
63
|
-
domainId: string;
|
|
64
|
-
hostname: string;
|
|
65
|
-
isPrimary: boolean;
|
|
66
|
-
redirectTo: string | null;
|
|
67
|
-
dnsStatus: 'pending' | 'active' | 'error';
|
|
68
|
-
instruction: HostnameInstruction;
|
|
69
|
-
verifiedAt: string | null;
|
|
70
|
-
lastCheckError: string | null;
|
|
71
|
-
createdAt: string;
|
|
72
|
-
}
|
|
73
|
-
export interface DomainEmailBinding {
|
|
74
|
-
id: string;
|
|
75
|
-
domainId: string;
|
|
76
|
-
dnsStatus: 'pending' | 'verifying' | 'verified' | 'failed';
|
|
77
|
-
stalwartLoaded: boolean;
|
|
78
|
-
defaultFromEmail: string | null;
|
|
79
|
-
defaultFromName: string | null;
|
|
80
|
-
records: DnsRecord[];
|
|
81
|
-
verifiedAt: string | null;
|
|
82
|
-
verificationError: string | null;
|
|
83
|
-
createdAt: string;
|
|
84
|
-
}
|
|
85
|
-
export interface DomainResult {
|
|
86
|
-
id: string;
|
|
87
|
-
apexDomain: string;
|
|
88
|
-
hostnames: DomainHostname[];
|
|
89
|
-
email: DomainEmailBinding | null;
|
|
90
|
-
createdAt: string;
|
|
91
|
-
updatedAt: string;
|
|
92
|
-
}
|
|
93
|
-
/** @deprecated Use DomainHostname instead */
|
|
94
|
-
export interface Domain {
|
|
95
|
-
domain: string;
|
|
96
|
-
status?: string;
|
|
97
|
-
ssl?: boolean;
|
|
98
|
-
}
|
|
99
|
-
export interface Database {
|
|
100
|
-
id: string;
|
|
101
|
-
name: string;
|
|
102
|
-
slug?: string;
|
|
103
|
-
status: string;
|
|
104
|
-
tier: string;
|
|
105
|
-
host?: string;
|
|
106
|
-
port?: number;
|
|
107
|
-
dbUser?: string;
|
|
108
|
-
dbName?: string;
|
|
109
|
-
connectionString?: string;
|
|
110
|
-
storageGb?: number;
|
|
111
|
-
env?: string;
|
|
112
|
-
provider?: string;
|
|
113
|
-
backupRetentionDays?: number;
|
|
114
|
-
createdAt?: string;
|
|
115
|
-
}
|
|
116
|
-
export interface Project {
|
|
117
|
-
id: string;
|
|
118
|
-
slug: string;
|
|
119
|
-
name: string;
|
|
120
|
-
ref?: string;
|
|
121
|
-
orgId?: string;
|
|
122
|
-
environments?: Array<{
|
|
123
|
-
id: string;
|
|
124
|
-
slug?: string;
|
|
125
|
-
name: string;
|
|
126
|
-
envType?: string;
|
|
127
|
-
isActive?: boolean;
|
|
128
|
-
publicKey?: string;
|
|
129
|
-
}>;
|
|
130
|
-
}
|
|
131
|
-
/** @deprecated Use Project instead */
|
|
132
|
-
export type App = Project;
|
|
133
34
|
export interface Service {
|
|
134
35
|
id: string;
|
|
135
36
|
name: string;
|
|
@@ -218,7 +119,7 @@ export interface Task {
|
|
|
218
119
|
export interface ResourceBinding {
|
|
219
120
|
id: string;
|
|
220
121
|
resourceId: string;
|
|
221
|
-
|
|
122
|
+
projectEnvironmentId: string;
|
|
222
123
|
resourceType: string;
|
|
223
124
|
role: string;
|
|
224
125
|
envName?: string;
|
|
@@ -226,44 +127,47 @@ export interface ResourceBinding {
|
|
|
226
127
|
projectSlug?: string;
|
|
227
128
|
createdAt?: string;
|
|
228
129
|
}
|
|
229
|
-
export interface
|
|
130
|
+
export interface SandboxSummary {
|
|
230
131
|
id: string;
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
billingEmail?: string | null;
|
|
235
|
-
createdAt?: string;
|
|
132
|
+
status: string;
|
|
133
|
+
image: string;
|
|
134
|
+
endpoint: string | null;
|
|
236
135
|
}
|
|
237
|
-
export interface
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
role: string;
|
|
243
|
-
joinedAt: string;
|
|
136
|
+
export interface Sandbox extends SandboxSummary {
|
|
137
|
+
token: string | null;
|
|
138
|
+
createdAt: string;
|
|
139
|
+
startedAt: string | null;
|
|
140
|
+
expiresAt: string | null;
|
|
244
141
|
}
|
|
245
|
-
export interface
|
|
246
|
-
|
|
247
|
-
id: string;
|
|
248
|
-
email: string;
|
|
249
|
-
name: string;
|
|
250
|
-
};
|
|
251
|
-
orgs: Org[];
|
|
142
|
+
export interface SandboxCreateResult extends SandboxSummary {
|
|
143
|
+
token: string | null;
|
|
252
144
|
}
|
|
253
|
-
export interface
|
|
254
|
-
id: string;
|
|
145
|
+
export interface SylphxFunctionSummary {
|
|
255
146
|
name: string;
|
|
256
|
-
|
|
257
|
-
|
|
147
|
+
status: string;
|
|
148
|
+
version: number;
|
|
149
|
+
runtime?: string | null;
|
|
150
|
+
memoryMb?: number | null;
|
|
151
|
+
timeoutSeconds?: number | null;
|
|
152
|
+
invocationCount?: number;
|
|
153
|
+
errorCount?: number;
|
|
258
154
|
url?: string;
|
|
259
155
|
}
|
|
260
|
-
export interface
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
156
|
+
export interface SylphxFunction extends SylphxFunctionSummary {
|
|
157
|
+
description?: string | null;
|
|
158
|
+
requireAuth?: boolean;
|
|
159
|
+
lastInvokedAt?: string | null;
|
|
160
|
+
}
|
|
161
|
+
export interface SylphxFunctionDeployResult extends SylphxFunctionSummary {
|
|
162
|
+
/** Present when the server short-circuited because the codeHash was unchanged */
|
|
163
|
+
_unchanged?: boolean;
|
|
164
|
+
}
|
|
165
|
+
export interface SylphxFunctionInvocation {
|
|
166
|
+
id?: string;
|
|
167
|
+
createdAt: string;
|
|
168
|
+
status: 'success' | 'error' | 'timeout' | string;
|
|
169
|
+
statusCode: number | null;
|
|
170
|
+
durationMs: number | null;
|
|
171
|
+
errorMessage: string | null;
|
|
268
172
|
}
|
|
269
173
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Domain types shared across capability modules.
|
|
3
|
+
*
|
|
4
|
+
* ADR-084 Wave 1 entities — **Project, Environment, Database, EnvVar,
|
|
5
|
+
* Domain* (Domain / DomainHostname / DomainEmailBinding / DnsRecord /
|
|
6
|
+
* HostnameInstruction), Deployment* (DeploymentStatus / DeployResult /
|
|
7
|
+
* DeploymentDetail / PromoteResult), Secret* (SecretDetail / SecretListItem
|
|
8
|
+
* / SecretVersion / EnvironmentRef), User (WhoAmI), Organization (Org /
|
|
9
|
+
* OrgMember)** — are re-exported **type-only** from `@sylphx/contract`
|
|
10
|
+
* (the framework-free Effect Schema SSOT). Hand-written types are gone; if
|
|
11
|
+
* wire shape drifts, fix it at the contract, not here.
|
|
12
|
+
*
|
|
13
|
+
* Entities whose contract package hasn't landed yet (Service, Volume,
|
|
14
|
+
* StorageResource, ConfigEntry, Task, Sandbox*, SylphxFunction*,
|
|
15
|
+
* ResourceBinding) keep their hand-written types below — they graduate as
|
|
16
|
+
* later ADR-084 waves ship.
|
|
17
|
+
*/
|
|
4
18
|
export {};
|
package/dist/user.d.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform user — the authenticated operator's profile, sessions, security
|
|
3
|
+
* posture, and GDPR export/erasure. Distinct from `users.ts` (which is the
|
|
4
|
+
* customer-managed end-user directory) and from `auth.ts` (credentials).
|
|
5
|
+
*
|
|
6
|
+
* Mirrors `apps/api/src/server/platform/routes/user.ts` — paths sourced
|
|
7
|
+
* from `@sylphx/contract` (`usersEndpoints`, mount `/user/*`).
|
|
8
|
+
*/
|
|
9
|
+
import type { Client } from './client.js';
|
|
10
|
+
export interface WhoAmI {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly email: string;
|
|
13
|
+
readonly role: string | null;
|
|
14
|
+
readonly orgId: string | null;
|
|
15
|
+
}
|
|
16
|
+
export declare const whoami: (client: Client) => Promise<WhoAmI>;
|
|
17
|
+
export interface PlatformProfile {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly email: string;
|
|
20
|
+
readonly name: string | null;
|
|
21
|
+
readonly avatarUrl: string | null;
|
|
22
|
+
readonly locale: string | null;
|
|
23
|
+
readonly timezone: string | null;
|
|
24
|
+
readonly createdAt: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const getProfile: (client: Client) => Promise<{
|
|
27
|
+
profile: PlatformProfile;
|
|
28
|
+
}>;
|
|
29
|
+
export interface UpdateProfileInput {
|
|
30
|
+
readonly name?: string;
|
|
31
|
+
readonly avatarUrl?: string;
|
|
32
|
+
readonly locale?: string;
|
|
33
|
+
readonly timezone?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const updateProfile: (client: Client, body: UpdateProfileInput) => Promise<{
|
|
36
|
+
profile: PlatformProfile;
|
|
37
|
+
}>;
|
|
38
|
+
export interface SecurityPosture {
|
|
39
|
+
readonly passwordSet: boolean;
|
|
40
|
+
readonly mfaEnabled: boolean;
|
|
41
|
+
readonly passkeyCount: number;
|
|
42
|
+
readonly backupCodesRemaining: number;
|
|
43
|
+
readonly score: number;
|
|
44
|
+
}
|
|
45
|
+
export declare const getSecurity: (client: Client) => Promise<SecurityPosture>;
|
|
46
|
+
export declare const changePassword: (client: Client, body: {
|
|
47
|
+
readonly currentPassword: string;
|
|
48
|
+
readonly newPassword: string;
|
|
49
|
+
}) => Promise<{
|
|
50
|
+
success: boolean;
|
|
51
|
+
}>;
|
|
52
|
+
export interface ConnectedAccount {
|
|
53
|
+
readonly provider: string;
|
|
54
|
+
readonly externalId: string;
|
|
55
|
+
readonly email: string | null;
|
|
56
|
+
readonly connectedAt: string;
|
|
57
|
+
}
|
|
58
|
+
export declare const getConnectedAccounts: (client: Client) => Promise<{
|
|
59
|
+
accounts: readonly ConnectedAccount[];
|
|
60
|
+
}>;
|
|
61
|
+
export interface LoginHistoryEntry {
|
|
62
|
+
readonly id: string;
|
|
63
|
+
readonly at: string;
|
|
64
|
+
readonly ip: string | null;
|
|
65
|
+
readonly userAgent: string | null;
|
|
66
|
+
readonly success: boolean;
|
|
67
|
+
readonly method: string;
|
|
68
|
+
}
|
|
69
|
+
export declare const getLoginHistory: (client: Client) => Promise<{
|
|
70
|
+
history: readonly LoginHistoryEntry[];
|
|
71
|
+
}>;
|
|
72
|
+
export interface UserSession {
|
|
73
|
+
readonly id: string;
|
|
74
|
+
readonly createdAt: string;
|
|
75
|
+
readonly lastSeenAt: string;
|
|
76
|
+
readonly ip: string | null;
|
|
77
|
+
readonly userAgent: string | null;
|
|
78
|
+
readonly current: boolean;
|
|
79
|
+
}
|
|
80
|
+
export declare const getSessions: (client: Client) => Promise<{
|
|
81
|
+
sessions: readonly UserSession[];
|
|
82
|
+
}>;
|
|
83
|
+
export declare const revokeSession: (client: Client, sessionId: string) => Promise<{
|
|
84
|
+
success: boolean;
|
|
85
|
+
}>;
|
|
86
|
+
export declare const revokeAllSessions: (client: Client) => Promise<{
|
|
87
|
+
success: boolean;
|
|
88
|
+
count: number;
|
|
89
|
+
}>;
|
|
90
|
+
export declare const exportData: (client: Client) => Promise<{
|
|
91
|
+
downloadUrl: string;
|
|
92
|
+
expiresAt: string;
|
|
93
|
+
}>;
|
|
94
|
+
export declare const deleteAccount: (client: Client, body?: {
|
|
95
|
+
readonly confirmEmail: string;
|
|
96
|
+
}) => Promise<{
|
|
97
|
+
success: boolean;
|
|
98
|
+
}>;
|
|
99
|
+
//# sourceMappingURL=user.d.ts.map
|