@aperture-browser/api-client 0.0.0-init.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/LICENSE +21 -0
- package/README.md +35 -0
- package/dist/index.d.ts +767 -0
- package/dist/index.js +787 -0
- package/dist/index.js.map +1 -0
- package/package.json +42 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,767 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
4
|
+
import * as Api from "@aperture-browser/api-schema";
|
|
5
|
+
import * as Context from "effect/Context";
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
import * as Stream from "effect/Stream";
|
|
8
|
+
import * as HttpClientError from "effect/unstable/http/HttpClientError";
|
|
9
|
+
import { AuthenticationResponseJSON, RegistrationResponseJSON } from "@simplewebauthn/browser";
|
|
10
|
+
|
|
11
|
+
//#region src/errors.d.ts
|
|
12
|
+
declare const ApiErrorBody: Schema.Struct<{
|
|
13
|
+
readonly error: Schema.Struct<{
|
|
14
|
+
readonly code: Schema.String;
|
|
15
|
+
readonly message: Schema.String;
|
|
16
|
+
}>;
|
|
17
|
+
}>;
|
|
18
|
+
type ApiErrorBody = typeof ApiErrorBody.Type;
|
|
19
|
+
declare const ApiRequestError_base: Schema.Class<ApiRequestError, Schema.TaggedStruct<"ApiRequestError", {
|
|
20
|
+
readonly code: Schema.String;
|
|
21
|
+
readonly message: Schema.String;
|
|
22
|
+
readonly status: Schema.Number;
|
|
23
|
+
}>, import("effect/Cause").YieldableError>;
|
|
24
|
+
/**
|
|
25
|
+
* A failed API request. `code` and `message` come from the server's error body when it
|
|
26
|
+
* sent one; `status` is 0 when no HTTP status applies.
|
|
27
|
+
*/
|
|
28
|
+
declare class ApiRequestError extends ApiRequestError_base {}
|
|
29
|
+
/**
|
|
30
|
+
* Maps HTTP and decoding failures to ApiRequestError. Error responses keep the code and
|
|
31
|
+
* message of the server's error body.
|
|
32
|
+
*/
|
|
33
|
+
declare const toApiRequestError: <A, R>(self: Effect.Effect<A, HttpClientError.HttpClientError | Schema.SchemaError, R>) => Effect.Effect<A, ApiRequestError, R>;
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/authorization/service.d.ts
|
|
36
|
+
declare const TENANT_HEADER = "X-Aperture-Tenant-Id";
|
|
37
|
+
interface CredentialContext {
|
|
38
|
+
authorityType: "system_admin" | "tenant" | null;
|
|
39
|
+
tenantId: string | null;
|
|
40
|
+
selectedTenantId: string | null;
|
|
41
|
+
}
|
|
42
|
+
type ApiCredentials = (CredentialContext & {
|
|
43
|
+
kind: "bearer";
|
|
44
|
+
token: string;
|
|
45
|
+
}) | (CredentialContext & {
|
|
46
|
+
kind: "session";
|
|
47
|
+
});
|
|
48
|
+
/** The browser's own login session, sent as a cookie. */
|
|
49
|
+
declare const webSessionCredentials: ApiCredentials;
|
|
50
|
+
type TenantHeaderMode = "none" | "optional" | "tenant-scoped";
|
|
51
|
+
/** Which tenant, if any, a request acts for under the given credentials. */
|
|
52
|
+
declare function resolveTenantHeader(credentials: ApiCredentials, mode: TenantHeaderMode): string | undefined;
|
|
53
|
+
/** How a request authenticates, and which tenant it acts for. */
|
|
54
|
+
interface Authorization {
|
|
55
|
+
readonly credentials?: ApiCredentials;
|
|
56
|
+
readonly bearerToken?: string;
|
|
57
|
+
readonly tenantHeader?: TenantHeaderMode;
|
|
58
|
+
}
|
|
59
|
+
declare const Authorization: {
|
|
60
|
+
anonymous: Authorization;
|
|
61
|
+
webSession: Authorization;
|
|
62
|
+
of: (credentials: ApiCredentials) => Authorization;
|
|
63
|
+
tenantScoped: (credentials: ApiCredentials) => Authorization;
|
|
64
|
+
};
|
|
65
|
+
declare const ApiAuthorization_base: Context.ServiceClass<ApiAuthorization, "@aperture-browser/api-client/ApiAuthorization", {
|
|
66
|
+
/** Runs a call with the given authorization and maps its failures to ApiRequestError. */readonly authorize: (authorization: Authorization) => <A, R>(self: Effect.Effect<A, HttpClientError.HttpClientError | Schema.SchemaError, R>) => Effect.Effect<A, ApiRequestError, R>; /** Emits whenever the web session is found to be missing, expired or revoked. */
|
|
67
|
+
readonly sessionAuthenticationFailures: Stream.Stream<void>;
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Authenticates API calls. Inside `authorize`, every request sent through the HttpClient
|
|
71
|
+
* that `authorizedHttpClientLayer` provides carries that call's credentials and tenant, so
|
|
72
|
+
* callers never touch headers.
|
|
73
|
+
*/
|
|
74
|
+
declare class ApiAuthorization extends ApiAuthorization_base {}
|
|
75
|
+
//#endregion
|
|
76
|
+
//#region src/schemas.d.ts
|
|
77
|
+
type PageMeta = Api.PageMeta;
|
|
78
|
+
type Tenant = Api.Tenant;
|
|
79
|
+
type User = Api.User;
|
|
80
|
+
type UserInvitation = Api.UserInvitation;
|
|
81
|
+
type TenantMembership = Api.TenantMembership;
|
|
82
|
+
type AuthMeResponse = Api.AuthMe;
|
|
83
|
+
type AuthMePrincipal = Api.Principal;
|
|
84
|
+
type AuthMeTenant = Api.Tenant;
|
|
85
|
+
type ResourceMode = Api.ResourceMode;
|
|
86
|
+
type ResourceGrant = Api.ResourceGrant;
|
|
87
|
+
type Scope = Api.Scope;
|
|
88
|
+
type TenantScope = Api.TenantScope;
|
|
89
|
+
type Session = Api.Session;
|
|
90
|
+
type SessionMedia = Api.SessionMedia;
|
|
91
|
+
type IceServer = Api.IceServer;
|
|
92
|
+
declare const SessionStatus: import("effect/Schema").Literals<readonly ["creating", "running", "suspended", "deleted", "expired", "failed"]>;
|
|
93
|
+
type SessionStatus = Api.SessionStatus;
|
|
94
|
+
type Snapshot = Api.Snapshot;
|
|
95
|
+
type ApiToken = Api.Token;
|
|
96
|
+
type TenantsPage = Api.TenantPage;
|
|
97
|
+
type UsersPage = Api.UserPage;
|
|
98
|
+
type SessionsPage = Api.SessionPage;
|
|
99
|
+
type SessionsBulkResponse = Api.SessionBulkResponse;
|
|
100
|
+
type SnapshotsPage = Api.SnapshotPage;
|
|
101
|
+
type TokensPage = Api.TokenPage;
|
|
102
|
+
type BrowserChannel = Api.BrowserChannel;
|
|
103
|
+
type BrowserChannelsResponse = Api.BrowserChannels;
|
|
104
|
+
type ResourceEvent = Api.Event;
|
|
105
|
+
type EventsPage = Api.EventPage;
|
|
106
|
+
type CreateSessionResponse = Api.CreateSessionResult;
|
|
107
|
+
type SessionMutationResponse = Api.SessionMutation;
|
|
108
|
+
type SnapshotMutationResponse = Api.SnapshotMutation;
|
|
109
|
+
type PromoteSessionResponse = Api.SnapshotMutation;
|
|
110
|
+
type CreateTokenResponse = Api.CreateTokenResponse;
|
|
111
|
+
//#endregion
|
|
112
|
+
//#region src/auth/schemas.d.ts
|
|
113
|
+
declare const LoginMethods: Schema.Struct<{
|
|
114
|
+
readonly methods: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
|
|
115
|
+
readonly type: Schema.Literal<"password">;
|
|
116
|
+
}>, Schema.Struct<{
|
|
117
|
+
readonly type: Schema.Literal<"api_token">;
|
|
118
|
+
}>, Schema.Struct<{
|
|
119
|
+
readonly type: Schema.Literal<"passkey">;
|
|
120
|
+
}>, Schema.Struct<{
|
|
121
|
+
readonly type: Schema.Literal<"oidc">;
|
|
122
|
+
readonly id: Schema.String;
|
|
123
|
+
readonly name: Schema.String;
|
|
124
|
+
readonly loginUrl: Schema.String;
|
|
125
|
+
}>]>>;
|
|
126
|
+
}>;
|
|
127
|
+
declare const PasskeyLoginOptions: Schema.Struct<{
|
|
128
|
+
readonly publicKey: Schema.Struct<{
|
|
129
|
+
readonly challenge: Schema.String;
|
|
130
|
+
readonly timeout: Schema.optionalKey<Schema.Number>;
|
|
131
|
+
readonly rpId: Schema.optionalKey<Schema.String>;
|
|
132
|
+
readonly allowCredentials: Schema.optionalKey<Schema.mutable<Schema.$Array<Schema.Struct<{
|
|
133
|
+
readonly id: Schema.String;
|
|
134
|
+
readonly type: Schema.Literal<"public-key">;
|
|
135
|
+
readonly transports: Schema.optionalKey<Schema.mutable<Schema.$Array<Schema.Literals<readonly ["ble", "cable", "hybrid", "internal", "nfc", "smart-card", "usb"]>>>>;
|
|
136
|
+
}>>>>;
|
|
137
|
+
readonly userVerification: Schema.optionalKey<Schema.Literals<readonly ["discouraged", "preferred", "required"]>>;
|
|
138
|
+
readonly hints: Schema.optionalKey<Schema.mutable<Schema.$Array<Schema.Literals<readonly ["hybrid", "security-key", "client-device"]>>>>;
|
|
139
|
+
readonly extensions: Schema.optionalKey<Schema.Struct<{
|
|
140
|
+
readonly appid: Schema.optionalKey<Schema.String>;
|
|
141
|
+
readonly credProps: Schema.optionalKey<Schema.Boolean>;
|
|
142
|
+
readonly hmacCreateSecret: Schema.optionalKey<Schema.Boolean>;
|
|
143
|
+
readonly minPinLength: Schema.optionalKey<Schema.Boolean>;
|
|
144
|
+
}>>;
|
|
145
|
+
}>;
|
|
146
|
+
}>;
|
|
147
|
+
declare const PasskeyRegistrationOptions: Schema.Struct<{
|
|
148
|
+
readonly publicKey: Schema.Struct<{
|
|
149
|
+
readonly rp: Schema.Struct<{
|
|
150
|
+
readonly id: Schema.optionalKey<Schema.String>;
|
|
151
|
+
readonly name: Schema.String;
|
|
152
|
+
}>;
|
|
153
|
+
readonly user: Schema.Struct<{
|
|
154
|
+
readonly id: Schema.String;
|
|
155
|
+
readonly name: Schema.String;
|
|
156
|
+
readonly displayName: Schema.String;
|
|
157
|
+
}>;
|
|
158
|
+
readonly challenge: Schema.String;
|
|
159
|
+
readonly pubKeyCredParams: Schema.mutable<Schema.$Array<Schema.Struct<{
|
|
160
|
+
readonly alg: Schema.Literals<readonly [-7, -8, -35, -36, -37, -38, -39, -257, -258, -259]>;
|
|
161
|
+
readonly type: Schema.Literal<"public-key">;
|
|
162
|
+
}>>>;
|
|
163
|
+
readonly timeout: Schema.optionalKey<Schema.Number>;
|
|
164
|
+
readonly excludeCredentials: Schema.optionalKey<Schema.mutable<Schema.$Array<Schema.Struct<{
|
|
165
|
+
readonly id: Schema.String;
|
|
166
|
+
readonly type: Schema.Literal<"public-key">;
|
|
167
|
+
readonly transports: Schema.optionalKey<Schema.mutable<Schema.$Array<Schema.Literals<readonly ["ble", "cable", "hybrid", "internal", "nfc", "smart-card", "usb"]>>>>;
|
|
168
|
+
}>>>>;
|
|
169
|
+
readonly authenticatorSelection: Schema.optionalKey<Schema.Struct<{
|
|
170
|
+
readonly authenticatorAttachment: Schema.optionalKey<Schema.Literals<readonly ["platform", "cross-platform"]>>;
|
|
171
|
+
readonly requireResidentKey: Schema.optionalKey<Schema.Boolean>;
|
|
172
|
+
readonly residentKey: Schema.optionalKey<Schema.Literals<readonly ["discouraged", "preferred", "required"]>>;
|
|
173
|
+
readonly userVerification: Schema.optionalKey<Schema.Literals<readonly ["discouraged", "preferred", "required"]>>;
|
|
174
|
+
}>>;
|
|
175
|
+
readonly hints: Schema.optionalKey<Schema.mutable<Schema.$Array<Schema.Literals<readonly ["hybrid", "security-key", "client-device"]>>>>;
|
|
176
|
+
readonly attestation: Schema.optionalKey<Schema.Literals<readonly ["direct", "enterprise", "indirect", "none"]>>;
|
|
177
|
+
readonly attestationFormats: Schema.optionalKey<Schema.mutable<Schema.$Array<Schema.Literals<readonly ["fido-u2f", "packed", "android-safetynet", "android-key", "tpm", "apple", "none"]>>>>;
|
|
178
|
+
readonly extensions: Schema.optionalKey<Schema.Struct<{
|
|
179
|
+
readonly appid: Schema.optionalKey<Schema.String>;
|
|
180
|
+
readonly credProps: Schema.optionalKey<Schema.Boolean>;
|
|
181
|
+
readonly hmacCreateSecret: Schema.optionalKey<Schema.Boolean>;
|
|
182
|
+
readonly minPinLength: Schema.optionalKey<Schema.Boolean>;
|
|
183
|
+
}>>;
|
|
184
|
+
}>;
|
|
185
|
+
}>;
|
|
186
|
+
declare const Passkey: Schema.Struct<{
|
|
187
|
+
readonly id: Schema.String;
|
|
188
|
+
readonly name: Schema.String;
|
|
189
|
+
readonly createdAt: Schema.String;
|
|
190
|
+
readonly lastUsedAt: Schema.NullOr<Schema.String>;
|
|
191
|
+
}>;
|
|
192
|
+
declare const Passkeys: Schema.Struct<{
|
|
193
|
+
readonly passkeys: Schema.$Array<Schema.Struct<{
|
|
194
|
+
readonly id: Schema.String;
|
|
195
|
+
readonly name: Schema.String;
|
|
196
|
+
readonly createdAt: Schema.String;
|
|
197
|
+
readonly lastUsedAt: Schema.NullOr<Schema.String>;
|
|
198
|
+
}>>;
|
|
199
|
+
}>;
|
|
200
|
+
declare const PasskeyMutation: Schema.Struct<{
|
|
201
|
+
readonly passkey: Schema.Struct<{
|
|
202
|
+
readonly id: Schema.String;
|
|
203
|
+
readonly name: Schema.String;
|
|
204
|
+
readonly createdAt: Schema.String;
|
|
205
|
+
readonly lastUsedAt: Schema.NullOr<Schema.String>;
|
|
206
|
+
}>;
|
|
207
|
+
}>;
|
|
208
|
+
declare const PasswordLoginResponse: Schema.Struct<{
|
|
209
|
+
readonly mfaRequired: Schema.Boolean;
|
|
210
|
+
}>;
|
|
211
|
+
declare const SecurityStatus: Schema.Struct<{
|
|
212
|
+
readonly hasPassword: Schema.Boolean;
|
|
213
|
+
readonly totpEnabled: Schema.Boolean;
|
|
214
|
+
readonly recoveryCodesRemaining: Schema.Number;
|
|
215
|
+
}>;
|
|
216
|
+
declare const TOTPEnrollment: Schema.Struct<{
|
|
217
|
+
readonly secret: Schema.String;
|
|
218
|
+
readonly otpauthUrl: Schema.String;
|
|
219
|
+
readonly qrCodeDataUrl: Schema.String;
|
|
220
|
+
}>;
|
|
221
|
+
declare const RecoveryCodes: Schema.Struct<{
|
|
222
|
+
readonly recoveryCodes: Schema.$Array<Schema.String>;
|
|
223
|
+
}>;
|
|
224
|
+
type LoginMethods = typeof LoginMethods.Type;
|
|
225
|
+
type PasskeyLoginOptions = typeof PasskeyLoginOptions.Type;
|
|
226
|
+
type PasskeyRegistrationOptions = typeof PasskeyRegistrationOptions.Type;
|
|
227
|
+
type Passkey = typeof Passkey.Type;
|
|
228
|
+
type Passkeys = typeof Passkeys.Type;
|
|
229
|
+
type PasskeyMutation = typeof PasskeyMutation.Type;
|
|
230
|
+
type PasswordLoginResponse = typeof PasswordLoginResponse.Type;
|
|
231
|
+
type RecoveryCodes = typeof RecoveryCodes.Type;
|
|
232
|
+
type SecurityStatus = typeof SecurityStatus.Type;
|
|
233
|
+
type TOTPEnrollment = typeof TOTPEnrollment.Type;
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region src/auth/service.d.ts
|
|
236
|
+
type Call$5<A> = Effect.Effect<A, ApiRequestError>;
|
|
237
|
+
declare const AuthApi_base: Context.ServiceClass<AuthApi, "@aperture-browser/api-client/AuthApi", {
|
|
238
|
+
readonly listLoginMethods: () => Call$5<LoginMethods>;
|
|
239
|
+
readonly loginWithPassword: (email: string, password: string) => Call$5<PasswordLoginResponse>;
|
|
240
|
+
readonly completePasswordMFA: (code: string) => Call$5<void>;
|
|
241
|
+
readonly loginWithAPIToken: (token: string) => Call$5<void>;
|
|
242
|
+
readonly beginPasskeyLogin: () => Call$5<PasskeyLoginOptions>;
|
|
243
|
+
readonly finishPasskeyLogin: (credential: AuthenticationResponseJSON) => Call$5<void>;
|
|
244
|
+
readonly acceptUserInvitation: (token: string, password: string) => Call$5<void>;
|
|
245
|
+
readonly logoutWebSession: () => Call$5<void>;
|
|
246
|
+
readonly getAuthMe: (selectedTenantId?: string | null, credentials?: ApiCredentials) => Call$5<AuthMeResponse>;
|
|
247
|
+
readonly getSecurityStatus: () => Call$5<SecurityStatus>;
|
|
248
|
+
readonly setPassword: (currentPassword: string, newPassword: string) => Call$5<void>;
|
|
249
|
+
readonly listPasskeys: () => Call$5<Passkeys>;
|
|
250
|
+
readonly beginPasskeyRegistration: (name: string) => Call$5<PasskeyRegistrationOptions>;
|
|
251
|
+
readonly finishPasskeyRegistration: (credential: RegistrationResponseJSON) => Call$5<PasskeyMutation>;
|
|
252
|
+
readonly renamePasskey: (passkeyId: string, name: string) => Call$5<PasskeyMutation>;
|
|
253
|
+
readonly deletePasskey: (passkeyId: string) => Call$5<void>;
|
|
254
|
+
readonly beginTOTPEnrollment: () => Call$5<TOTPEnrollment>;
|
|
255
|
+
readonly completeTOTPEnrollment: (code: string) => Call$5<RecoveryCodes>;
|
|
256
|
+
readonly regenerateRecoveryCodes: (code: string) => Call$5<RecoveryCodes>;
|
|
257
|
+
readonly disableTOTP: (code: string) => Call$5<void>;
|
|
258
|
+
}>;
|
|
259
|
+
/** Browser login, account security, and the current principal. */
|
|
260
|
+
declare class AuthApi extends AuthApi_base {}
|
|
261
|
+
//#endregion
|
|
262
|
+
//#region src/auth/layer.d.ts
|
|
263
|
+
declare const makeAuthApi: Effect.Effect<{
|
|
264
|
+
readonly listLoginMethods: () => Effect.Effect<{
|
|
265
|
+
readonly methods: readonly ({
|
|
266
|
+
readonly type: "password";
|
|
267
|
+
} | {
|
|
268
|
+
readonly type: "api_token";
|
|
269
|
+
} | {
|
|
270
|
+
readonly type: "passkey";
|
|
271
|
+
} | {
|
|
272
|
+
readonly type: "oidc";
|
|
273
|
+
readonly id: string;
|
|
274
|
+
readonly name: string;
|
|
275
|
+
readonly loginUrl: string;
|
|
276
|
+
})[];
|
|
277
|
+
}, ApiRequestError, never>;
|
|
278
|
+
readonly loginWithPassword: (email: string, password: string) => Effect.Effect<{
|
|
279
|
+
readonly mfaRequired: boolean;
|
|
280
|
+
}, ApiRequestError, never>;
|
|
281
|
+
readonly completePasswordMFA: (code: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
282
|
+
readonly loginWithAPIToken: (token: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
283
|
+
readonly beginPasskeyLogin: () => Effect.Effect<{
|
|
284
|
+
readonly publicKey: {
|
|
285
|
+
readonly challenge: string;
|
|
286
|
+
readonly timeout?: number | undefined;
|
|
287
|
+
readonly rpId?: string | undefined;
|
|
288
|
+
readonly allowCredentials?: {
|
|
289
|
+
readonly type: "public-key";
|
|
290
|
+
readonly id: string;
|
|
291
|
+
readonly transports?: ("ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb")[] | undefined;
|
|
292
|
+
}[] | undefined;
|
|
293
|
+
readonly userVerification?: "required" | "discouraged" | "preferred" | undefined;
|
|
294
|
+
readonly hints?: ("hybrid" | "security-key" | "client-device")[] | undefined;
|
|
295
|
+
readonly extensions?: {
|
|
296
|
+
readonly appid?: string | undefined;
|
|
297
|
+
readonly credProps?: boolean | undefined;
|
|
298
|
+
readonly hmacCreateSecret?: boolean | undefined;
|
|
299
|
+
readonly minPinLength?: boolean | undefined;
|
|
300
|
+
} | undefined;
|
|
301
|
+
};
|
|
302
|
+
}, ApiRequestError, never>;
|
|
303
|
+
readonly finishPasskeyLogin: (credential: AuthenticationResponseJSON) => Effect.Effect<void, ApiRequestError, never>;
|
|
304
|
+
readonly acceptUserInvitation: (token: string, password: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
305
|
+
readonly logoutWebSession: () => Effect.Effect<void, ApiRequestError, never>;
|
|
306
|
+
readonly getAuthMe: (selectedTenantId?: string | null, credentials?: ApiCredentials) => Effect.Effect<Api.AuthMe, ApiRequestError, never>;
|
|
307
|
+
readonly getSecurityStatus: () => Effect.Effect<{
|
|
308
|
+
readonly hasPassword: boolean;
|
|
309
|
+
readonly totpEnabled: boolean;
|
|
310
|
+
readonly recoveryCodesRemaining: number;
|
|
311
|
+
}, ApiRequestError, never>;
|
|
312
|
+
readonly setPassword: (currentPassword: string, newPassword: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
313
|
+
readonly listPasskeys: () => Effect.Effect<{
|
|
314
|
+
readonly passkeys: readonly {
|
|
315
|
+
readonly id: string;
|
|
316
|
+
readonly name: string;
|
|
317
|
+
readonly createdAt: string;
|
|
318
|
+
readonly lastUsedAt: string | null;
|
|
319
|
+
}[];
|
|
320
|
+
}, ApiRequestError, never>;
|
|
321
|
+
readonly beginPasskeyRegistration: (name: string) => Effect.Effect<{
|
|
322
|
+
readonly publicKey: {
|
|
323
|
+
readonly challenge: string;
|
|
324
|
+
readonly rp: {
|
|
325
|
+
readonly name: string;
|
|
326
|
+
readonly id?: string | undefined;
|
|
327
|
+
};
|
|
328
|
+
readonly user: {
|
|
329
|
+
readonly id: string;
|
|
330
|
+
readonly name: string;
|
|
331
|
+
readonly displayName: string;
|
|
332
|
+
};
|
|
333
|
+
readonly pubKeyCredParams: {
|
|
334
|
+
readonly alg: -7 | -8 | -35 | -36 | -37 | -38 | -39 | -257 | -258 | -259;
|
|
335
|
+
readonly type: "public-key";
|
|
336
|
+
}[];
|
|
337
|
+
readonly timeout?: number | undefined;
|
|
338
|
+
readonly hints?: ("hybrid" | "security-key" | "client-device")[] | undefined;
|
|
339
|
+
readonly extensions?: {
|
|
340
|
+
readonly appid?: string | undefined;
|
|
341
|
+
readonly credProps?: boolean | undefined;
|
|
342
|
+
readonly hmacCreateSecret?: boolean | undefined;
|
|
343
|
+
readonly minPinLength?: boolean | undefined;
|
|
344
|
+
} | undefined;
|
|
345
|
+
readonly excludeCredentials?: {
|
|
346
|
+
readonly type: "public-key";
|
|
347
|
+
readonly id: string;
|
|
348
|
+
readonly transports?: ("ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb")[] | undefined;
|
|
349
|
+
}[] | undefined;
|
|
350
|
+
readonly authenticatorSelection?: {
|
|
351
|
+
readonly userVerification?: "required" | "discouraged" | "preferred" | undefined;
|
|
352
|
+
readonly authenticatorAttachment?: "platform" | "cross-platform" | undefined;
|
|
353
|
+
readonly requireResidentKey?: boolean | undefined;
|
|
354
|
+
readonly residentKey?: "required" | "discouraged" | "preferred" | undefined;
|
|
355
|
+
} | undefined;
|
|
356
|
+
readonly attestation?: "direct" | "enterprise" | "indirect" | "none" | undefined;
|
|
357
|
+
readonly attestationFormats?: ("none" | "fido-u2f" | "packed" | "android-safetynet" | "android-key" | "tpm" | "apple")[] | undefined;
|
|
358
|
+
};
|
|
359
|
+
}, ApiRequestError, never>;
|
|
360
|
+
readonly finishPasskeyRegistration: (credential: RegistrationResponseJSON) => Effect.Effect<{
|
|
361
|
+
readonly passkey: {
|
|
362
|
+
readonly id: string;
|
|
363
|
+
readonly name: string;
|
|
364
|
+
readonly createdAt: string;
|
|
365
|
+
readonly lastUsedAt: string | null;
|
|
366
|
+
};
|
|
367
|
+
}, ApiRequestError, never>;
|
|
368
|
+
readonly renamePasskey: (passkeyId: string, name: string) => Effect.Effect<{
|
|
369
|
+
readonly passkey: {
|
|
370
|
+
readonly id: string;
|
|
371
|
+
readonly name: string;
|
|
372
|
+
readonly createdAt: string;
|
|
373
|
+
readonly lastUsedAt: string | null;
|
|
374
|
+
};
|
|
375
|
+
}, ApiRequestError, never>;
|
|
376
|
+
readonly deletePasskey: (passkeyId: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
377
|
+
readonly beginTOTPEnrollment: () => Effect.Effect<{
|
|
378
|
+
readonly secret: string;
|
|
379
|
+
readonly otpauthUrl: string;
|
|
380
|
+
readonly qrCodeDataUrl: string;
|
|
381
|
+
}, ApiRequestError, never>;
|
|
382
|
+
readonly completeTOTPEnrollment: (code: string) => Effect.Effect<{
|
|
383
|
+
readonly recoveryCodes: readonly string[];
|
|
384
|
+
}, ApiRequestError, never>;
|
|
385
|
+
readonly regenerateRecoveryCodes: (code: string) => Effect.Effect<{
|
|
386
|
+
readonly recoveryCodes: readonly string[];
|
|
387
|
+
}, ApiRequestError, never>;
|
|
388
|
+
readonly disableTOTP: (code: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
389
|
+
}, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
390
|
+
declare const authApiLayer: Layer.Layer<AuthApi, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
391
|
+
//#endregion
|
|
392
|
+
//#region src/authorization/layer.d.ts
|
|
393
|
+
/**
|
|
394
|
+
* Decorates the HttpClient so each request carries the authorization of the `authorize`
|
|
395
|
+
* call it runs in.
|
|
396
|
+
*/
|
|
397
|
+
declare const authorizedHttpClientLayer: Layer.Layer<HttpClient.HttpClient, never, HttpClient.HttpClient>;
|
|
398
|
+
declare const makeApiAuthorization: Effect.Effect<{
|
|
399
|
+
readonly authorize: (authorization: Authorization) => <A, R>(self: Effect.Effect<A, HttpClientError.HttpClientError | Schema.SchemaError, R>) => Effect.Effect<A, ApiRequestError, R>;
|
|
400
|
+
readonly sessionAuthenticationFailures: Stream.Stream<void>;
|
|
401
|
+
}, never, never>;
|
|
402
|
+
declare const apiAuthorizationLayer: Layer.Layer<ApiAuthorization, never, never>;
|
|
403
|
+
//#endregion
|
|
404
|
+
//#region src/events/service.d.ts
|
|
405
|
+
interface EventsListParams {
|
|
406
|
+
limit?: number;
|
|
407
|
+
cursor?: string;
|
|
408
|
+
resourceType?: string;
|
|
409
|
+
resourceId?: string;
|
|
410
|
+
}
|
|
411
|
+
declare const EventsApi_base: Context.ServiceClass<EventsApi, "@aperture-browser/api-client/EventsApi", {
|
|
412
|
+
readonly listEvents: (credentials: ApiCredentials, params?: EventsListParams) => Effect.Effect<EventsPage, ApiRequestError>;
|
|
413
|
+
}>;
|
|
414
|
+
/** The tenant's resource event log. */
|
|
415
|
+
declare class EventsApi extends EventsApi_base {}
|
|
416
|
+
//#endregion
|
|
417
|
+
//#region src/events/layer.d.ts
|
|
418
|
+
declare const makeEventsApi: Effect.Effect<{
|
|
419
|
+
readonly listEvents: (credentials: ApiCredentials, params?: EventsListParams) => Effect.Effect<EventsPage, ApiRequestError>;
|
|
420
|
+
}, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
421
|
+
declare const eventsApiLayer: Layer.Layer<EventsApi, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
422
|
+
//#endregion
|
|
423
|
+
//#region src/layer.d.ts
|
|
424
|
+
/**
|
|
425
|
+
* Every API service, sharing one ApiAuthorization. The services send requests through the
|
|
426
|
+
* HttpClient the app provides, decorated with each call's authorization.
|
|
427
|
+
*/
|
|
428
|
+
declare const apiClientLayer: Layer.Layer<AuthApi | ApiAuthorization | EventsApi | TenantsApi | UsersApi | SessionsApi | SnapshotsApi | TokensApi, never, HttpClient.HttpClient>;
|
|
429
|
+
type ApiServices = Layer.Success<typeof apiClientLayer>;
|
|
430
|
+
declare const baseUrlLayer: (baseUrl: string) => Layer.Layer<HttpClient.HttpClient, never, HttpClient.HttpClient>;
|
|
431
|
+
//#endregion
|
|
432
|
+
//#region src/pagination.d.ts
|
|
433
|
+
interface PaginatedResponse<T> {
|
|
434
|
+
readonly data: ReadonlyArray<T>;
|
|
435
|
+
readonly meta: PageMeta;
|
|
436
|
+
}
|
|
437
|
+
interface ListQueryParams {
|
|
438
|
+
limit?: number;
|
|
439
|
+
cursor?: string;
|
|
440
|
+
}
|
|
441
|
+
declare function getNextPageParam<T>(page: PaginatedResponse<T>): string | undefined;
|
|
442
|
+
declare function flattenInfinitePages<T>(pages: PaginatedResponse<T>[] | undefined): T[];
|
|
443
|
+
declare const defaultListLimit = 50;
|
|
444
|
+
declare const listQueryDefaults: {
|
|
445
|
+
readonly refetchOnWindowFocus: true;
|
|
446
|
+
};
|
|
447
|
+
//#endregion
|
|
448
|
+
//#region src/query.d.ts
|
|
449
|
+
type TagFilterValue = Array<{
|
|
450
|
+
key: string;
|
|
451
|
+
operator: "eq" | "neq" | "in" | "not_in";
|
|
452
|
+
values: string[];
|
|
453
|
+
}>;
|
|
454
|
+
/** Encodes tag filters as the parallel tagKey, tagOperator and tagValue query lists. */
|
|
455
|
+
declare const tagQuery: (tags: TagFilterValue | undefined) => {
|
|
456
|
+
tagKey: string[] | undefined;
|
|
457
|
+
tagOperator: ("eq" | "neq" | "in" | "not_in")[] | undefined;
|
|
458
|
+
tagValue: string[] | undefined;
|
|
459
|
+
};
|
|
460
|
+
/** Drops empty strings and empty list items, which mean "no filter". */
|
|
461
|
+
declare const compactQuery: <T extends object>(query: T) => T;
|
|
462
|
+
//#endregion
|
|
463
|
+
//#region src/sessions/schemas.d.ts
|
|
464
|
+
declare const BrowserStatus: Schema.Struct<{
|
|
465
|
+
readonly sessionId: Schema.String;
|
|
466
|
+
readonly cdpUrl: Schema.String;
|
|
467
|
+
readonly media: Schema.Struct<{
|
|
468
|
+
readonly mode: Schema.Literals<readonly ["auto", "cdp"]>;
|
|
469
|
+
readonly webrtcProducer: Schema.Boolean;
|
|
470
|
+
readonly iceServers: Schema.optionalKey<Schema.$Array<Schema.Struct<{
|
|
471
|
+
readonly urls: Schema.$Array<Schema.String>;
|
|
472
|
+
readonly username: Schema.optionalKey<Schema.String>;
|
|
473
|
+
readonly credential: Schema.optionalKey<Schema.String>;
|
|
474
|
+
}>>>;
|
|
475
|
+
}>;
|
|
476
|
+
readonly targets: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Struct<{
|
|
477
|
+
readonly targetId: Schema.String;
|
|
478
|
+
readonly generation: Schema.Number;
|
|
479
|
+
readonly state: Schema.Literals<readonly ["pending", "ready", "unavailable", "closed"]>;
|
|
480
|
+
readonly title: Schema.String;
|
|
481
|
+
readonly url: Schema.String;
|
|
482
|
+
readonly viewport: Schema.Struct<{
|
|
483
|
+
readonly width: Schema.Number;
|
|
484
|
+
readonly height: Schema.Number;
|
|
485
|
+
readonly deviceScaleFactor: Schema.Number;
|
|
486
|
+
readonly contentWidth: Schema.Number;
|
|
487
|
+
readonly contentHeight: Schema.Number;
|
|
488
|
+
readonly canvasWidth: Schema.Number;
|
|
489
|
+
readonly canvasHeight: Schema.Number;
|
|
490
|
+
}>;
|
|
491
|
+
}>>, never>;
|
|
492
|
+
}>;
|
|
493
|
+
/** A recording as the live session reports it. */
|
|
494
|
+
declare const Recording: Schema.Struct<{
|
|
495
|
+
readonly recordingId: Schema.String;
|
|
496
|
+
readonly mode: Schema.Literals<readonly ["tab", "viewer"]>;
|
|
497
|
+
readonly targetId: Schema.String;
|
|
498
|
+
readonly captureGeneration: Schema.Number;
|
|
499
|
+
readonly status: Schema.Literals<readonly ["starting", "running", "stopped", "failed"]>;
|
|
500
|
+
readonly stopReason: Schema.optionalKey<Schema.String>;
|
|
501
|
+
readonly path: Schema.String;
|
|
502
|
+
readonly startedAt: Schema.String;
|
|
503
|
+
readonly stoppedAt: Schema.optionalKey<Schema.String>;
|
|
504
|
+
readonly sizeBytes: Schema.optionalKey<Schema.Number>;
|
|
505
|
+
readonly fps: Schema.Number;
|
|
506
|
+
readonly bitrateKbps: Schema.Number;
|
|
507
|
+
readonly codec: Schema.String;
|
|
508
|
+
}>;
|
|
509
|
+
type BrowserStatus = typeof BrowserStatus.Type;
|
|
510
|
+
type Recording = typeof Recording.Type;
|
|
511
|
+
//#endregion
|
|
512
|
+
//#region src/sessions/service.d.ts
|
|
513
|
+
type Call$4<A> = Effect.Effect<A, ApiRequestError>;
|
|
514
|
+
interface SessionsListParams {
|
|
515
|
+
limit?: number;
|
|
516
|
+
cursor?: string;
|
|
517
|
+
includeDeleted?: boolean;
|
|
518
|
+
status?: Api.SessionStatus;
|
|
519
|
+
tags?: TagFilterValue;
|
|
520
|
+
}
|
|
521
|
+
type InitialBrowserTarget = Api.InitialBrowserTarget;
|
|
522
|
+
type InitialBrowserStorageState = Api.InitialBrowserStorageState;
|
|
523
|
+
interface CreateSessionInput {
|
|
524
|
+
baseSnapshotName?: string | null;
|
|
525
|
+
label?: string | null;
|
|
526
|
+
browser: {
|
|
527
|
+
channel: string;
|
|
528
|
+
args?: string[];
|
|
529
|
+
};
|
|
530
|
+
initialTargets?: readonly InitialBrowserTarget[];
|
|
531
|
+
storageState?: InitialBrowserStorageState;
|
|
532
|
+
tags?: Record<string, string>;
|
|
533
|
+
}
|
|
534
|
+
interface CreateSessionOptions {
|
|
535
|
+
waitForReady?: boolean;
|
|
536
|
+
}
|
|
537
|
+
interface PromoteSessionInput {
|
|
538
|
+
name: string;
|
|
539
|
+
description?: string | null;
|
|
540
|
+
force?: boolean;
|
|
541
|
+
tags?: Record<string, string>;
|
|
542
|
+
}
|
|
543
|
+
interface DownloadedFile {
|
|
544
|
+
blob: Blob;
|
|
545
|
+
filename: string | null;
|
|
546
|
+
}
|
|
547
|
+
declare const SessionsApi_base: Context.ServiceClass<SessionsApi, "@aperture-browser/api-client/SessionsApi", {
|
|
548
|
+
readonly listSessions: (credentials: ApiCredentials, params?: SessionsListParams) => Call$4<SessionsPage>;
|
|
549
|
+
readonly getSession: (credentials: ApiCredentials, sessionId: string) => Call$4<Session>;
|
|
550
|
+
readonly getSessionsBulk: (credentials: ApiCredentials, sessionIds: readonly string[]) => Call$4<SessionsBulkResponse>;
|
|
551
|
+
readonly createSession: (credentials: ApiCredentials, input: CreateSessionInput, options?: CreateSessionOptions) => Call$4<CreateSessionResponse>;
|
|
552
|
+
readonly deleteSession: (credentials: ApiCredentials, sessionId: string) => Call$4<SessionMutationResponse>;
|
|
553
|
+
readonly reopenSession: (credentials: ApiCredentials, sessionId: string) => Call$4<SessionMutationResponse>;
|
|
554
|
+
readonly suspendSession: (credentials: ApiCredentials, sessionId: string) => Call$4<SessionMutationResponse>;
|
|
555
|
+
readonly rotateSessionToken: (credentials: ApiCredentials, sessionId: string) => Call$4<SessionMutationResponse>;
|
|
556
|
+
readonly rotateCollaborationCapability: (credentials: ApiCredentials, sessionId: string, role: "editor" | "viewer") => Call$4<SessionMutationResponse>;
|
|
557
|
+
readonly replaceSessionTags: (credentials: ApiCredentials, sessionId: string, tags: Record<string, string>) => Call$4<SessionMutationResponse>;
|
|
558
|
+
readonly promoteSession: (credentials: ApiCredentials, sessionId: string, input: PromoteSessionInput) => Call$4<PromoteSessionResponse>;
|
|
559
|
+
readonly getBrowserChannels: (credentials: ApiCredentials) => Call$4<BrowserChannelsResponse>;
|
|
560
|
+
readonly getBrowserStatus: (credentials: ApiCredentials, sessionId: string, sessionToken?: string) => Call$4<BrowserStatus>;
|
|
561
|
+
readonly downloadSessionRecording: (credentials: ApiCredentials, sessionId: string, recordingId: string, sessionToken?: string) => Call$4<DownloadedFile>;
|
|
562
|
+
}>;
|
|
563
|
+
/** Browser sessions, their live browser, and their recordings. */
|
|
564
|
+
declare class SessionsApi extends SessionsApi_base {}
|
|
565
|
+
//#endregion
|
|
566
|
+
//#region src/sessions/layer.d.ts
|
|
567
|
+
declare const makeSessionsApi: Effect.Effect<{
|
|
568
|
+
readonly listSessions: (credentials: ApiCredentials, params?: SessionsListParams) => Effect.Effect<Api.SessionPage, ApiRequestError, never>;
|
|
569
|
+
readonly getSession: (credentials: ApiCredentials, sessionId: string) => Effect.Effect<Api.Session, ApiRequestError, never>;
|
|
570
|
+
readonly getSessionsBulk: (credentials: ApiCredentials, sessionIds: readonly string[]) => Effect.Effect<Api.SessionBulkResponse, ApiRequestError, never>;
|
|
571
|
+
readonly createSession: (credentials: ApiCredentials, input: CreateSessionInput, options?: CreateSessionOptions) => Effect.Effect<Api.CreateSessionResult, ApiRequestError, never>;
|
|
572
|
+
readonly deleteSession: (credentials: ApiCredentials, sessionId: string) => Effect.Effect<Api.SessionMutation, ApiRequestError, never>;
|
|
573
|
+
readonly reopenSession: (credentials: ApiCredentials, sessionId: string) => Effect.Effect<Api.SessionMutation, ApiRequestError, never>;
|
|
574
|
+
readonly suspendSession: (credentials: ApiCredentials, sessionId: string) => Effect.Effect<Api.SessionMutation, ApiRequestError, never>;
|
|
575
|
+
readonly rotateSessionToken: (credentials: ApiCredentials, sessionId: string) => Effect.Effect<Api.SessionMutation, ApiRequestError, never>;
|
|
576
|
+
readonly rotateCollaborationCapability: (credentials: ApiCredentials, sessionId: string, role: "editor" | "viewer") => Effect.Effect<Api.SessionMutation, ApiRequestError, never>;
|
|
577
|
+
readonly replaceSessionTags: (credentials: ApiCredentials, sessionId: string, tags: Record<string, string>) => Effect.Effect<Api.SessionMutation, ApiRequestError, never>;
|
|
578
|
+
readonly promoteSession: (credentials: ApiCredentials, sessionId: string, input: PromoteSessionInput) => Effect.Effect<Api.SnapshotMutation, ApiRequestError, never>;
|
|
579
|
+
readonly getBrowserChannels: (credentials: ApiCredentials) => Effect.Effect<Api.BrowserChannels, ApiRequestError, never>;
|
|
580
|
+
readonly getBrowserStatus: (credentials: ApiCredentials, sessionId: string, sessionToken?: string) => Effect.Effect<{
|
|
581
|
+
readonly sessionId: string;
|
|
582
|
+
readonly cdpUrl: string;
|
|
583
|
+
readonly media: {
|
|
584
|
+
readonly mode: "auto" | "cdp";
|
|
585
|
+
readonly webrtcProducer: boolean;
|
|
586
|
+
readonly iceServers?: readonly {
|
|
587
|
+
readonly urls: readonly string[];
|
|
588
|
+
readonly username?: string | undefined;
|
|
589
|
+
readonly credential?: string | undefined;
|
|
590
|
+
}[] | undefined;
|
|
591
|
+
};
|
|
592
|
+
readonly targets: readonly {
|
|
593
|
+
readonly targetId: string;
|
|
594
|
+
readonly generation: number;
|
|
595
|
+
readonly state: "pending" | "ready" | "unavailable" | "closed";
|
|
596
|
+
readonly title: string;
|
|
597
|
+
readonly url: string;
|
|
598
|
+
readonly viewport: {
|
|
599
|
+
readonly width: number;
|
|
600
|
+
readonly height: number;
|
|
601
|
+
readonly deviceScaleFactor: number;
|
|
602
|
+
readonly contentWidth: number;
|
|
603
|
+
readonly contentHeight: number;
|
|
604
|
+
readonly canvasWidth: number;
|
|
605
|
+
readonly canvasHeight: number;
|
|
606
|
+
};
|
|
607
|
+
}[];
|
|
608
|
+
}, ApiRequestError, never>;
|
|
609
|
+
readonly downloadSessionRecording: (credentials: ApiCredentials, sessionId: string, recordingId: string, sessionToken?: string) => Effect.Effect<DownloadedFile, ApiRequestError, never>;
|
|
610
|
+
}, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
611
|
+
declare const sessionsApiLayer: Layer.Layer<SessionsApi, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
612
|
+
//#endregion
|
|
613
|
+
//#region src/snapshots/service.d.ts
|
|
614
|
+
type Call$3<A> = Effect.Effect<A, ApiRequestError>;
|
|
615
|
+
interface SnapshotsListParams {
|
|
616
|
+
limit?: number;
|
|
617
|
+
cursor?: string;
|
|
618
|
+
includeDeleted?: boolean;
|
|
619
|
+
deleted?: "active" | "deleted" | "all";
|
|
620
|
+
name?: string;
|
|
621
|
+
tags?: TagFilterValue;
|
|
622
|
+
}
|
|
623
|
+
interface UpdateSnapshotInput {
|
|
624
|
+
description: string | null;
|
|
625
|
+
}
|
|
626
|
+
declare const SnapshotsApi_base: Context.ServiceClass<SnapshotsApi, "@aperture-browser/api-client/SnapshotsApi", {
|
|
627
|
+
readonly listSnapshots: (credentials: ApiCredentials, params?: SnapshotsListParams) => Call$3<SnapshotsPage>;
|
|
628
|
+
readonly updateSnapshot: (credentials: ApiCredentials, name: string, input: UpdateSnapshotInput) => Call$3<SnapshotMutationResponse>;
|
|
629
|
+
readonly replaceSnapshotTags: (credentials: ApiCredentials, name: string, tags: Record<string, string>) => Call$3<SnapshotMutationResponse>;
|
|
630
|
+
readonly deleteSnapshot: (credentials: ApiCredentials, name: string) => Call$3<SnapshotMutationResponse>;
|
|
631
|
+
readonly restoreSnapshot: (credentials: ApiCredentials, name: string) => Call$3<SnapshotMutationResponse>;
|
|
632
|
+
}>;
|
|
633
|
+
/** Retained snapshots that new sessions start from. */
|
|
634
|
+
declare class SnapshotsApi extends SnapshotsApi_base {}
|
|
635
|
+
//#endregion
|
|
636
|
+
//#region src/snapshots/layer.d.ts
|
|
637
|
+
declare const makeSnapshotsApi: Effect.Effect<{
|
|
638
|
+
readonly listSnapshots: (credentials: ApiCredentials, params?: SnapshotsListParams) => Effect.Effect<Api.SnapshotPage, ApiRequestError, never>;
|
|
639
|
+
readonly updateSnapshot: (credentials: ApiCredentials, name: string, input: UpdateSnapshotInput) => Effect.Effect<Api.SnapshotMutation, ApiRequestError, never>;
|
|
640
|
+
readonly replaceSnapshotTags: (credentials: ApiCredentials, name: string, tags: Record<string, string>) => Effect.Effect<Api.SnapshotMutation, ApiRequestError, never>;
|
|
641
|
+
readonly deleteSnapshot: (credentials: ApiCredentials, name: string) => Effect.Effect<Api.SnapshotMutation, ApiRequestError, never>;
|
|
642
|
+
readonly restoreSnapshot: (credentials: ApiCredentials, name: string) => Effect.Effect<Api.SnapshotMutation, ApiRequestError, never>;
|
|
643
|
+
}, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
644
|
+
declare const snapshotsApiLayer: Layer.Layer<SnapshotsApi, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
645
|
+
//#endregion
|
|
646
|
+
//#region src/tenants/service.d.ts
|
|
647
|
+
type Call$2<A> = Effect.Effect<A, ApiRequestError>;
|
|
648
|
+
interface TenantsListParams {
|
|
649
|
+
limit?: number;
|
|
650
|
+
cursor?: string;
|
|
651
|
+
includeDeleted?: boolean;
|
|
652
|
+
deleted?: "active" | "deleted" | "all";
|
|
653
|
+
}
|
|
654
|
+
declare const TenantsApi_base: Context.ServiceClass<TenantsApi, "@aperture-browser/api-client/TenantsApi", {
|
|
655
|
+
readonly listTenants: (credentials: ApiCredentials, params?: TenantsListParams) => Call$2<TenantsPage>;
|
|
656
|
+
readonly createTenant: (credentials: ApiCredentials, input: Api.TenantInput) => Call$2<Tenant>;
|
|
657
|
+
readonly updateTenant: (credentials: ApiCredentials, tenantId: string, input: Api.TenantInput) => Call$2<Tenant>;
|
|
658
|
+
readonly deleteTenant: (credentials: ApiCredentials, tenantId: string) => Call$2<Tenant>;
|
|
659
|
+
readonly restoreTenant: (credentials: ApiCredentials, tenantId: string) => Call$2<Tenant>;
|
|
660
|
+
}>;
|
|
661
|
+
/** Tenant administration. */
|
|
662
|
+
declare class TenantsApi extends TenantsApi_base {}
|
|
663
|
+
//#endregion
|
|
664
|
+
//#region src/tenants/layer.d.ts
|
|
665
|
+
declare const makeTenantsApi: Effect.Effect<{
|
|
666
|
+
readonly listTenants: (credentials: ApiCredentials, params?: TenantsListParams) => Effect.Effect<Api.TenantPage, ApiRequestError, never>;
|
|
667
|
+
readonly createTenant: (credentials: ApiCredentials, input: Api.TenantInput) => Effect.Effect<Api.Tenant, ApiRequestError, never>;
|
|
668
|
+
readonly updateTenant: (credentials: ApiCredentials, tenantId: string, input: Api.TenantInput) => Effect.Effect<Api.Tenant, ApiRequestError, never>;
|
|
669
|
+
readonly deleteTenant: (credentials: ApiCredentials, tenantId: string) => Effect.Effect<Api.Tenant, ApiRequestError, never>;
|
|
670
|
+
readonly restoreTenant: (credentials: ApiCredentials, tenantId: string) => Effect.Effect<Api.Tenant, ApiRequestError, never>;
|
|
671
|
+
}, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
672
|
+
declare const tenantsApiLayer: Layer.Layer<TenantsApi, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
673
|
+
//#endregion
|
|
674
|
+
//#region src/tokens/service.d.ts
|
|
675
|
+
type Call$1<A> = Effect.Effect<A, ApiRequestError>;
|
|
676
|
+
interface TokensListParams {
|
|
677
|
+
limit?: number;
|
|
678
|
+
cursor?: string;
|
|
679
|
+
tenantId?: string;
|
|
680
|
+
name?: string;
|
|
681
|
+
authorityType?: "system_admin" | "tenant";
|
|
682
|
+
revoked?: "all" | "active" | "revoked";
|
|
683
|
+
scope?: string;
|
|
684
|
+
}
|
|
685
|
+
interface CreateAdminTokenInput {
|
|
686
|
+
name: string;
|
|
687
|
+
authorityType: "system_admin" | "tenant";
|
|
688
|
+
tenantId?: string | null;
|
|
689
|
+
scopes: string[];
|
|
690
|
+
resourceMode: ResourceMode;
|
|
691
|
+
resourceGrants: ResourceGrant[];
|
|
692
|
+
expiresAt?: string | null;
|
|
693
|
+
}
|
|
694
|
+
interface CreateTenantTokenInput {
|
|
695
|
+
name: string;
|
|
696
|
+
scopes: string[];
|
|
697
|
+
resourceMode: ResourceMode;
|
|
698
|
+
resourceGrants: ResourceGrant[];
|
|
699
|
+
expiresAt?: string | null;
|
|
700
|
+
}
|
|
701
|
+
declare const TokensApi_base: Context.ServiceClass<TokensApi, "@aperture-browser/api-client/TokensApi", {
|
|
702
|
+
readonly listAdminTokens: (credentials: ApiCredentials, params?: TokensListParams) => Call$1<TokensPage>;
|
|
703
|
+
readonly createAdminToken: (credentials: ApiCredentials, input: CreateAdminTokenInput) => Call$1<CreateTokenResponse>;
|
|
704
|
+
readonly revokeAdminToken: (credentials: ApiCredentials, tokenId: string) => Call$1<void>;
|
|
705
|
+
readonly listTenantTokens: (credentials: ApiCredentials, params?: TokensListParams) => Call$1<TokensPage>;
|
|
706
|
+
readonly createTenantToken: (credentials: ApiCredentials, input: CreateTenantTokenInput) => Call$1<CreateTokenResponse>;
|
|
707
|
+
readonly revokeTenantToken: (credentials: ApiCredentials, tokenId: string) => Call$1<void>;
|
|
708
|
+
}>;
|
|
709
|
+
/** API tokens, issued either deployment-wide or within the current tenant. */
|
|
710
|
+
declare class TokensApi extends TokensApi_base {}
|
|
711
|
+
//#endregion
|
|
712
|
+
//#region src/tokens/layer.d.ts
|
|
713
|
+
declare const makeTokensApi: Effect.Effect<{
|
|
714
|
+
readonly listAdminTokens: (credentials: ApiCredentials, params?: TokensListParams) => Effect.Effect<Api.TokenPage, ApiRequestError, never>;
|
|
715
|
+
readonly createAdminToken: (credentials: ApiCredentials, input: CreateAdminTokenInput) => Effect.Effect<Api.CreateTokenResponse, ApiRequestError, never>;
|
|
716
|
+
readonly revokeAdminToken: (credentials: ApiCredentials, tokenId: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
717
|
+
readonly listTenantTokens: (credentials: ApiCredentials, params?: TokensListParams) => Effect.Effect<Api.TokenPage, ApiRequestError, never>;
|
|
718
|
+
readonly createTenantToken: (credentials: ApiCredentials, input: CreateTenantTokenInput) => Effect.Effect<Api.CreateTokenResponse, ApiRequestError, never>;
|
|
719
|
+
readonly revokeTenantToken: (credentials: ApiCredentials, tokenId: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
720
|
+
}, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
721
|
+
declare const tokensApiLayer: Layer.Layer<TokensApi, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
722
|
+
//#endregion
|
|
723
|
+
//#region src/users/service.d.ts
|
|
724
|
+
type Call<A> = Effect.Effect<A, ApiRequestError>;
|
|
725
|
+
interface UsersListParams {
|
|
726
|
+
limit?: number;
|
|
727
|
+
cursor?: string;
|
|
728
|
+
query?: string;
|
|
729
|
+
disabled?: "active" | "disabled" | "all";
|
|
730
|
+
}
|
|
731
|
+
interface UserInput {
|
|
732
|
+
email: string | null;
|
|
733
|
+
displayName: string;
|
|
734
|
+
isSystemAdmin: boolean;
|
|
735
|
+
}
|
|
736
|
+
declare const UsersApi_base: Context.ServiceClass<UsersApi, "@aperture-browser/api-client/UsersApi", {
|
|
737
|
+
readonly listUsers: (credentials: ApiCredentials, params?: UsersListParams) => Call<UsersPage>;
|
|
738
|
+
readonly createUser: (credentials: ApiCredentials, input: UserInput) => Call<User>;
|
|
739
|
+
readonly getUser: (credentials: ApiCredentials, userId: string) => Call<User>;
|
|
740
|
+
readonly updateUser: (credentials: ApiCredentials, userId: string, input: UserInput) => Call<User>;
|
|
741
|
+
readonly createUserInvitation: (credentials: ApiCredentials, userId: string) => Call<UserInvitation>;
|
|
742
|
+
readonly disableUser: (credentials: ApiCredentials, userId: string) => Call<User>;
|
|
743
|
+
readonly restoreUser: (credentials: ApiCredentials, userId: string) => Call<User>;
|
|
744
|
+
readonly listUserMemberships: (credentials: ApiCredentials, userId: string) => Call<ReadonlyArray<TenantMembership>>;
|
|
745
|
+
readonly upsertTenantMembership: (credentials: ApiCredentials, tenantId: string, userId: string, scopes: readonly string[]) => Call<TenantMembership>;
|
|
746
|
+
readonly deleteTenantMembership: (credentials: ApiCredentials, tenantId: string, userId: string) => Call<void>;
|
|
747
|
+
}>;
|
|
748
|
+
/** User administration and tenant memberships. */
|
|
749
|
+
declare class UsersApi extends UsersApi_base {}
|
|
750
|
+
//#endregion
|
|
751
|
+
//#region src/users/layer.d.ts
|
|
752
|
+
declare const makeUsersApi: Effect.Effect<{
|
|
753
|
+
readonly listUsers: (credentials: ApiCredentials, params?: UsersListParams) => Effect.Effect<Api.UserPage, ApiRequestError, never>;
|
|
754
|
+
readonly createUser: (credentials: ApiCredentials, input: UserInput) => Effect.Effect<Api.User, ApiRequestError, never>;
|
|
755
|
+
readonly getUser: (credentials: ApiCredentials, userId: string) => Effect.Effect<Api.User, ApiRequestError, never>;
|
|
756
|
+
readonly updateUser: (credentials: ApiCredentials, userId: string, input: UserInput) => Effect.Effect<Api.User, ApiRequestError, never>;
|
|
757
|
+
readonly createUserInvitation: (credentials: ApiCredentials, userId: string) => Effect.Effect<Api.UserInvitation, ApiRequestError, never>;
|
|
758
|
+
readonly disableUser: (credentials: ApiCredentials, userId: string) => Effect.Effect<Api.User, ApiRequestError, never>;
|
|
759
|
+
readonly restoreUser: (credentials: ApiCredentials, userId: string) => Effect.Effect<Api.User, ApiRequestError, never>;
|
|
760
|
+
readonly listUserMemberships: (credentials: ApiCredentials, userId: string) => Effect.Effect<readonly Api.TenantMembership[], ApiRequestError, never>;
|
|
761
|
+
readonly upsertTenantMembership: (credentials: ApiCredentials, tenantId: string, userId: string, scopes: readonly string[]) => Effect.Effect<Api.TenantMembership, ApiRequestError, never>;
|
|
762
|
+
readonly deleteTenantMembership: (credentials: ApiCredentials, tenantId: string, userId: string) => Effect.Effect<void, ApiRequestError, never>;
|
|
763
|
+
}, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
764
|
+
declare const usersApiLayer: Layer.Layer<UsersApi, never, HttpClient.HttpClient | ApiAuthorization>;
|
|
765
|
+
//#endregion
|
|
766
|
+
export { ApiAuthorization, ApiCredentials, ApiErrorBody, ApiRequestError, ApiServices, ApiToken, AuthApi, AuthMePrincipal, AuthMeResponse, AuthMeTenant, Authorization, BrowserChannel, BrowserChannelsResponse, BrowserStatus, CreateAdminTokenInput, CreateSessionInput, CreateSessionOptions, CreateSessionResponse, CreateTenantTokenInput, CreateTokenResponse, DownloadedFile, EventsApi, EventsListParams, EventsPage, IceServer, InitialBrowserStorageState, InitialBrowserTarget, ListQueryParams, LoginMethods, PageMeta, PaginatedResponse, Passkey, PasskeyLoginOptions, PasskeyMutation, PasskeyRegistrationOptions, Passkeys, PasswordLoginResponse, PromoteSessionInput, PromoteSessionResponse, Recording, RecoveryCodes, ResourceEvent, ResourceGrant, ResourceMode, Scope, SecurityStatus, Session, SessionMedia, SessionMutationResponse, SessionStatus, SessionsApi, SessionsBulkResponse, SessionsListParams, SessionsPage, Snapshot, SnapshotMutationResponse, SnapshotsApi, SnapshotsListParams, SnapshotsPage, TENANT_HEADER, TOTPEnrollment, TagFilterValue, Tenant, TenantHeaderMode, TenantMembership, TenantScope, TenantsApi, TenantsListParams, TenantsPage, TokensApi, TokensListParams, TokensPage, UpdateSnapshotInput, User, UserInput, UserInvitation, UsersApi, UsersListParams, UsersPage, apiAuthorizationLayer, apiClientLayer, authApiLayer, authorizedHttpClientLayer, baseUrlLayer, compactQuery, defaultListLimit, eventsApiLayer, flattenInfinitePages, getNextPageParam, listQueryDefaults, makeApiAuthorization, makeAuthApi, makeEventsApi, makeSessionsApi, makeSnapshotsApi, makeTenantsApi, makeTokensApi, makeUsersApi, resolveTenantHeader, sessionsApiLayer, snapshotsApiLayer, tagQuery, tenantsApiLayer, toApiRequestError, tokensApiLayer, usersApiLayer, webSessionCredentials };
|
|
767
|
+
//# sourceMappingURL=index.d.ts.map
|