@atlasauth/backend 0.29.0 → 0.31.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 +34 -1
- package/README.md +34 -0
- package/dist/backchannel-handlers.js +2 -2
- package/dist/backchannel-handlers.js.map +1 -1
- package/dist/client/domains.d.ts +33 -3
- package/dist/client/domains.js.map +1 -1
- package/dist/client/index.d.ts +64 -11
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/instance-security.d.ts +9 -1
- package/dist/client/instance-security.js +6 -1
- package/dist/client/instance-security.js.map +1 -1
- package/dist/client/instance.d.ts +42 -0
- package/dist/client/instance.js +16 -0
- package/dist/client/instance.js.map +1 -1
- package/dist/client/invitations.d.ts +4 -0
- package/dist/client/invitations.js.map +1 -1
- package/dist/client/jwt-connections.d.ts +46 -0
- package/dist/client/jwt-connections.js +24 -0
- package/dist/client/jwt-connections.js.map +1 -0
- package/dist/client/messaging.d.ts +7 -0
- package/dist/client/messaging.js.map +1 -1
- package/dist/client/oauth-clients.d.ts +70 -0
- package/dist/client/oauth-clients.js +18 -0
- package/dist/client/oauth-clients.js.map +1 -1
- package/dist/client/org-ldap-connections.d.ts +10 -0
- package/dist/client/org-ldap-connections.js.map +1 -1
- package/dist/client/organizations.d.ts +106 -8
- package/dist/client/organizations.js +35 -3
- package/dist/client/organizations.js.map +1 -1
- package/dist/client/platform.d.ts +10 -0
- package/dist/client/platform.js.map +1 -1
- package/dist/client/referrals.d.ts +12 -5
- package/dist/client/referrals.js.map +1 -1
- package/dist/client/scim-tokens.d.ts +7 -0
- package/dist/client/scim-tokens.js.map +1 -1
- package/dist/client/sso-connections.d.ts +14 -0
- package/dist/client/sso-connections.js.map +1 -1
- package/dist/client/sso-onboarding.d.ts +14 -1
- package/dist/client/sso-onboarding.js +3 -2
- package/dist/client/sso-onboarding.js.map +1 -1
- package/dist/client/user-hooks.d.ts +15 -6
- package/dist/client/user-hooks.js.map +1 -1
- package/dist/client/users.d.ts +19 -2
- package/dist/client/users.js.map +1 -1
- package/dist/client/webhooks.d.ts +4 -0
- package/dist/client/webhooks.js.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.js +4 -10
- package/dist/index.js.map +1 -1
- package/dist/jwks-cache.d.ts +27 -0
- package/dist/jwks-cache.js +45 -4
- package/dist/jwks-cache.js.map +1 -1
- package/dist/oidc.d.ts +35 -1
- package/dist/oidc.js +39 -0
- package/dist/oidc.js.map +1 -1
- package/dist/pca-entry.d.ts +11 -0
- package/dist/pca-entry.js +18 -0
- package/dist/pca-entry.js.map +1 -0
- package/dist/rp.d.ts +253 -0
- package/dist/rp.js +311 -0
- package/dist/rp.js.map +1 -0
- package/dist/verify.d.ts +8 -0
- package/dist/verify.js +3 -1
- package/dist/verify.js.map +1 -1
- package/dist/webhook-common.d.ts +53 -0
- package/dist/webhook-common.js +48 -0
- package/dist/webhook-common.js.map +1 -0
- package/dist/webhooks-web.d.ts +24 -0
- package/dist/webhooks-web.js +82 -0
- package/dist/webhooks-web.js.map +1 -0
- package/dist/webhooks.d.ts +23 -41
- package/dist/webhooks.js +19 -70
- package/dist/webhooks.js.map +1 -1
- package/package.json +41 -4
- package/dist/pca/require-pca.d.ts +0 -47
- package/dist/pca/require-pca.js +0 -121
- package/dist/pca/require-pca.js.map +0 -1
- package/dist/pca/verify.d.ts +0 -36
- package/dist/pca/verify.js +0 -136
- package/dist/pca/verify.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../src/client/invitations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../src/client/invitations.ts"],"names":[],"mappings":";;AAqCA,kDAwBC;AA7DD,uCAAgD;AAqChD,SAAgB,mBAAmB,CAAC,OAAkB;IACpD,OAAO;QACL,0FAA0F;QAC1F,UAAU,CACR,WAAmC,EACnC,cAAuB;YAEvB,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,EAAE,WAAW,EAAE;gBACrB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,SAAuB,EAAE;YAC5B,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,CAAC,IAA0B,EAAE,cAAuB;YACxD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAA,aAAG,EAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QAChF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
/** A trusted-JWT connection: your system signs a short-lived JWT and sends the person to `login_url`. */
|
|
3
|
+
export interface JwtConnection {
|
|
4
|
+
object: 'jwt_connection';
|
|
5
|
+
id: string;
|
|
6
|
+
organization_id: string | null;
|
|
7
|
+
status: 'draft' | 'active' | 'disabled';
|
|
8
|
+
jwks_uri: string | null;
|
|
9
|
+
issuer: string | null;
|
|
10
|
+
audience: string | null;
|
|
11
|
+
email_claim: string;
|
|
12
|
+
max_age_seconds: number;
|
|
13
|
+
default_role_id: string | null;
|
|
14
|
+
/** Send the person here with ?token=<jwt>&redirect_url=<your app URL>. */
|
|
15
|
+
login_url: string;
|
|
16
|
+
created_at: number;
|
|
17
|
+
updated_at: number;
|
|
18
|
+
}
|
|
19
|
+
export interface JwtConnectionBody {
|
|
20
|
+
organization_id?: string | null;
|
|
21
|
+
status?: 'draft' | 'active' | 'disabled';
|
|
22
|
+
/** An https URL serving your public signing keys (RS / PS / ES / EdDSA). */
|
|
23
|
+
jwks_uri?: string;
|
|
24
|
+
issuer?: string;
|
|
25
|
+
audience?: string;
|
|
26
|
+
/** Default email. */
|
|
27
|
+
email_claim?: string;
|
|
28
|
+
/** exp − iat at most this; 30–3600, default 300. */
|
|
29
|
+
max_age_seconds?: number;
|
|
30
|
+
default_role_id?: string | null;
|
|
31
|
+
}
|
|
32
|
+
export declare function jwtConnectionsResource(request: RequestFn): {
|
|
33
|
+
list(): Promise<{
|
|
34
|
+
object: "list";
|
|
35
|
+
data: JwtConnection[];
|
|
36
|
+
has_more: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
get(id: string): Promise<JwtConnection>;
|
|
39
|
+
create(body: JwtConnectionBody, idempotencyKey?: string): Promise<JwtConnection>;
|
|
40
|
+
update(id: string, body: JwtConnectionBody): Promise<JwtConnection>;
|
|
41
|
+
delete(id: string): Promise<{
|
|
42
|
+
object: "jwt_connection";
|
|
43
|
+
id: string;
|
|
44
|
+
deleted: true;
|
|
45
|
+
}>;
|
|
46
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jwtConnectionsResource = jwtConnectionsResource;
|
|
4
|
+
const request_1 = require("./request");
|
|
5
|
+
function jwtConnectionsResource(request) {
|
|
6
|
+
return {
|
|
7
|
+
list() {
|
|
8
|
+
return request({ method: 'GET', path: '/v1/jwt_connections' });
|
|
9
|
+
},
|
|
10
|
+
get(id) {
|
|
11
|
+
return request({ method: 'GET', path: `/v1/jwt_connections/${(0, request_1.enc)(id)}` });
|
|
12
|
+
},
|
|
13
|
+
create(body, idempotencyKey) {
|
|
14
|
+
return request({ method: 'POST', path: '/v1/jwt_connections', body, idempotencyKey });
|
|
15
|
+
},
|
|
16
|
+
update(id, body) {
|
|
17
|
+
return request({ method: 'PATCH', path: `/v1/jwt_connections/${(0, request_1.enc)(id)}`, body });
|
|
18
|
+
},
|
|
19
|
+
delete(id) {
|
|
20
|
+
return request({ method: 'DELETE', path: `/v1/jwt_connections/${(0, request_1.enc)(id)}` });
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=jwt-connections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-connections.js","sourceRoot":"","sources":["../../src/client/jwt-connections.ts"],"names":[],"mappings":";;AAkCA,wDAkBC;AApDD,uCAAgD;AAkChD,SAAgB,sBAAsB,CAAC,OAAkB;IACvD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,CAAC,IAAuB,EAAE,cAAuB;YACrD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAAuB;YACxC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -457,7 +457,14 @@ export interface MessagingTestResult {
|
|
|
457
457
|
object: 'messaging_test';
|
|
458
458
|
channel: string;
|
|
459
459
|
sent_to: string;
|
|
460
|
+
/** Always true: a provider refusal is a 502 error whose meta says what the provider answered. */
|
|
460
461
|
ok: true;
|
|
462
|
+
accepted: boolean;
|
|
463
|
+
/** The transport that accepted it (resend, smtp, twilio, ...). */
|
|
464
|
+
provider: string;
|
|
465
|
+
provider_message_id: string | null;
|
|
466
|
+
/** SMTP: the server reply line (carries the queue id). */
|
|
467
|
+
provider_response?: string;
|
|
461
468
|
}
|
|
462
469
|
export interface DeletedMessagingProvider {
|
|
463
470
|
object: 'messaging_provider';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/client/messaging.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/client/messaging.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,12 @@ export interface OAuthClient extends ProvisioningFields {
|
|
|
52
52
|
grant_types: string[];
|
|
53
53
|
token_endpoint_auth_method: 'client_secret_basic' | 'client_secret_post' | 'none' | 'private_key_jwt' | 'workload_jwt';
|
|
54
54
|
secret_prefix: string | null;
|
|
55
|
+
/**
|
|
56
|
+
* Create and update responses only: the origins this write added to the
|
|
57
|
+
* instance's allowed_origins (`add_redirect_origins`, or automatically for a
|
|
58
|
+
* client a connected integration signs users in with).
|
|
59
|
+
*/
|
|
60
|
+
added_origins?: string[];
|
|
55
61
|
/**
|
|
56
62
|
* After a rotation with overlap: when the previous secret stops working (epoch
|
|
57
63
|
* ms). Null when only the current secret is accepted.
|
|
@@ -77,6 +83,14 @@ export interface OAuthClient extends ProvisioningFields {
|
|
|
77
83
|
* with no "Sign out?" page. First-party clients only.
|
|
78
84
|
*/
|
|
79
85
|
skip_logout_confirmation?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* The app's sign-in follows its Atlas session: each refresh keeps that
|
|
88
|
+
* session alive, and once it has ended the refresh fails (`invalid_grant`).
|
|
89
|
+
* First-party clients only.
|
|
90
|
+
*/
|
|
91
|
+
refresh_touches_session?: boolean;
|
|
92
|
+
/** No authorization code is issued for a user whose primary email is not verified. */
|
|
93
|
+
require_verified_email?: boolean;
|
|
80
94
|
/** Refused at every OAuth endpoint while true (kept, not deleted). */
|
|
81
95
|
disabled?: boolean;
|
|
82
96
|
/** PKCE required even though the client is confidential. */
|
|
@@ -159,6 +173,11 @@ export interface OAuthClientLogoutFields {
|
|
|
159
173
|
frontchannel_logout_session_required?: boolean;
|
|
160
174
|
/** Skip the logout confirmation page. First-party clients only (`422` otherwise). */
|
|
161
175
|
skip_logout_confirmation?: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* A refresh_token grant also slides the Atlas session it came from, and an
|
|
178
|
+
* ended Atlas session refuses the refresh. First-party clients only (`422` otherwise).
|
|
179
|
+
*/
|
|
180
|
+
refresh_touches_session?: boolean;
|
|
162
181
|
}
|
|
163
182
|
/** Create/rotate reveal the secret exactly once, alongside the client. */
|
|
164
183
|
export interface OAuthClientWithSecret extends OAuthClient {
|
|
@@ -170,6 +189,21 @@ export interface OAuthClientWithSecret extends OAuthClient {
|
|
|
170
189
|
recipient: string;
|
|
171
190
|
fields: string[];
|
|
172
191
|
};
|
|
192
|
+
/** Where and until when a generated secret can be fetched once more (`revealSecret`). Absent for a chosen secret. */
|
|
193
|
+
client_secret_reveal?: {
|
|
194
|
+
path: string;
|
|
195
|
+
expires_at: number;
|
|
196
|
+
};
|
|
197
|
+
note: string;
|
|
198
|
+
}
|
|
199
|
+
/** `revealSecret`: the secret the latest create or rotate generated (once, within 10 minutes). */
|
|
200
|
+
export interface OAuthClientSecretReveal {
|
|
201
|
+
object: 'oauth_client_secret';
|
|
202
|
+
id: string;
|
|
203
|
+
client_id: string;
|
|
204
|
+
client_secret: string;
|
|
205
|
+
secret_prefix: string | null;
|
|
206
|
+
client_secret_expires_at: number | null;
|
|
173
207
|
note: string;
|
|
174
208
|
}
|
|
175
209
|
export interface RotateOAuthClientSecretBody {
|
|
@@ -209,8 +243,14 @@ export interface CreateOAuthClientBody extends ProvisioningInput, OAuthClientLog
|
|
|
209
243
|
first_party?: boolean;
|
|
210
244
|
/** How long the issued secret authenticates, in seconds; omit for no expiry. */
|
|
211
245
|
secret_expires_in_seconds?: number;
|
|
246
|
+
/** Your own secret (32-256 random printable characters); omit and Atlas generates one. */
|
|
247
|
+
client_secret?: string;
|
|
248
|
+
/** Issue no authorization code for a user whose primary email is not verified. Default false. */
|
|
249
|
+
require_verified_email?: boolean;
|
|
212
250
|
/** Require PKCE. New clients default to true (confidential ones included); send false to opt out. */
|
|
213
251
|
require_pkce?: boolean;
|
|
252
|
+
/** Also add the redirect URIs' origins to allowed_origins (append only; listed in `added_origins`). */
|
|
253
|
+
add_redirect_origins?: boolean;
|
|
214
254
|
}
|
|
215
255
|
export interface UpdateOAuthClientBody extends OAuthClientLogoutFields, OAuthClientSubjectFields, OAuthClientTokenFields {
|
|
216
256
|
/** Replaces the provisioning metadata. */
|
|
@@ -225,6 +265,10 @@ export interface UpdateOAuthClientBody extends OAuthClientLogoutFields, OAuthCli
|
|
|
225
265
|
disabled?: boolean;
|
|
226
266
|
/** Require PKCE for this confidential client too. */
|
|
227
267
|
require_pkce?: boolean;
|
|
268
|
+
/** Issue no authorization code for a user whose primary email is not verified. */
|
|
269
|
+
require_verified_email?: boolean;
|
|
270
|
+
/** Also add the redirect URIs' origins to allowed_origins (append only; listed in `added_origins`). */
|
|
271
|
+
add_redirect_origins?: boolean;
|
|
228
272
|
}
|
|
229
273
|
/** One client in a migration import. Idempotent per `client_id`. */
|
|
230
274
|
export interface ImportOAuthClientEntry {
|
|
@@ -301,6 +345,18 @@ export interface BackchannelLogoutTest {
|
|
|
301
345
|
/** First 512 characters of the response body. */
|
|
302
346
|
body_excerpt: string | null;
|
|
303
347
|
}
|
|
348
|
+
/** The result of {@link oauthClientsResource}'s `logout`. */
|
|
349
|
+
export interface OAuthClientLogout {
|
|
350
|
+
object: 'oauth_client_logout';
|
|
351
|
+
client_id: string;
|
|
352
|
+
sid: string;
|
|
353
|
+
/** `revoked`: this call ended the Atlas session. `already_ended`: it had already ended. */
|
|
354
|
+
session: 'revoked' | 'already_ended';
|
|
355
|
+
/** This client's refresh grants under the sid that were revoked (offline_access included). */
|
|
356
|
+
grants_revoked: number;
|
|
357
|
+
/** Back-channel logouts queued, to this client and every other app signed in through the session. */
|
|
358
|
+
backchannel_logouts: number;
|
|
359
|
+
}
|
|
304
360
|
export declare function oauthClientsResource(request: RequestFn): {
|
|
305
361
|
/** Bulk-import OAuth clients for a migration, optionally with pre-hashed secrets. */
|
|
306
362
|
import(body: {
|
|
@@ -318,6 +374,11 @@ export declare function oauthClientsResource(request: RequestFn): {
|
|
|
318
374
|
* (default 24 hours, max 7 days; 0 = revoke it now).
|
|
319
375
|
*/
|
|
320
376
|
rotateSecret(id: string, body?: RotateOAuthClientSecretBody, idempotencyKey?: string): Promise<OAuthClientSecretRotation>;
|
|
377
|
+
/**
|
|
378
|
+
* The secret the latest create or rotate generated, once more: within 10
|
|
379
|
+
* minutes, a single time, while it is still current. 410 afterwards (rotate).
|
|
380
|
+
*/
|
|
381
|
+
revealSecret(id: string): Promise<OAuthClientSecretReveal>;
|
|
321
382
|
delete(id: string): Promise<{
|
|
322
383
|
object: "oauth_client";
|
|
323
384
|
id: string;
|
|
@@ -336,6 +397,15 @@ export declare function oauthClientsResource(request: RequestFn): {
|
|
|
336
397
|
};
|
|
337
398
|
/** The client's back-channel logout delivery log, newest first. */
|
|
338
399
|
listBackchannelDeliveries(id: string, query?: BackchannelDeliveriesQuery): Promise<BackchannelLogoutDeliveryPage>;
|
|
400
|
+
/**
|
|
401
|
+
* Sign a user out of this app AND of Atlas in one call
|
|
402
|
+
* (`POST /v1/oauth_clients/:id/logout`): revokes this client's grants under
|
|
403
|
+
* `sid` and the Atlas session itself (every other app gets a back-channel
|
|
404
|
+
* logout). `id` is the client id or its public `client_id`; `sid` is the
|
|
405
|
+
* id_token's `sid`. Needs `oauth_clients:write` and `sessions:write`. No
|
|
406
|
+
* browser redirect to `/oauth2/logout` is needed afterwards.
|
|
407
|
+
*/
|
|
408
|
+
logout(id: string, sid: string, idempotencyKey?: string): Promise<OAuthClientLogout>;
|
|
339
409
|
/** Send a test back-channel logout now and return what the receiver answered. */
|
|
340
410
|
testBackchannelLogout(id: string): Promise<BackchannelLogoutTest>;
|
|
341
411
|
/** Set (or clear with null) the URLs of your own sign-in and consent pages for a client. */
|
|
@@ -34,6 +34,13 @@ function oauthClientsResource(request) {
|
|
|
34
34
|
idempotencyKey,
|
|
35
35
|
});
|
|
36
36
|
},
|
|
37
|
+
/**
|
|
38
|
+
* The secret the latest create or rotate generated, once more: within 10
|
|
39
|
+
* minutes, a single time, while it is still current. 410 afterwards (rotate).
|
|
40
|
+
*/
|
|
41
|
+
revealSecret(id) {
|
|
42
|
+
return request({ method: 'POST', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/secret/reveal` });
|
|
43
|
+
},
|
|
37
44
|
delete(id) {
|
|
38
45
|
return request({ method: 'DELETE', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}` });
|
|
39
46
|
},
|
|
@@ -59,6 +66,17 @@ function oauthClientsResource(request) {
|
|
|
59
66
|
query: { ...query },
|
|
60
67
|
});
|
|
61
68
|
},
|
|
69
|
+
/**
|
|
70
|
+
* Sign a user out of this app AND of Atlas in one call
|
|
71
|
+
* (`POST /v1/oauth_clients/:id/logout`): revokes this client's grants under
|
|
72
|
+
* `sid` and the Atlas session itself (every other app gets a back-channel
|
|
73
|
+
* logout). `id` is the client id or its public `client_id`; `sid` is the
|
|
74
|
+
* id_token's `sid`. Needs `oauth_clients:write` and `sessions:write`. No
|
|
75
|
+
* browser redirect to `/oauth2/logout` is needed afterwards.
|
|
76
|
+
*/
|
|
77
|
+
logout(id, sid, idempotencyKey) {
|
|
78
|
+
return request({ method: 'POST', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/logout`, body: { sid }, idempotencyKey });
|
|
79
|
+
},
|
|
62
80
|
/** Send a test back-channel logout now and return what the receiver answered. */
|
|
63
81
|
testBackchannelLogout(id) {
|
|
64
82
|
return request({ method: 'POST', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/backchannel_logout/test` });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,13 @@ export interface OrgLdapAttributeMap {
|
|
|
7
7
|
firstName?: string;
|
|
8
8
|
lastName?: string;
|
|
9
9
|
username?: string;
|
|
10
|
+
/** The groups attribute (default memberOf), read for group_role_mappings. */
|
|
11
|
+
groups?: string;
|
|
12
|
+
}
|
|
13
|
+
/** A directory group DN → organization role key. */
|
|
14
|
+
export interface OrgLdapGroupRoleMapping {
|
|
15
|
+
group: string;
|
|
16
|
+
role: string;
|
|
10
17
|
}
|
|
11
18
|
/** An organization-owned LDAP / Active Directory connection. Never the bind password. */
|
|
12
19
|
export interface OrgLdapConnection {
|
|
@@ -21,6 +28,7 @@ export interface OrgLdapConnection {
|
|
|
21
28
|
start_tls: boolean;
|
|
22
29
|
require_consent_screen: boolean;
|
|
23
30
|
attributes: OrgLdapAttributeMap;
|
|
31
|
+
group_role_mappings: OrgLdapGroupRoleMapping[];
|
|
24
32
|
has_bind_password: boolean;
|
|
25
33
|
default_role_id: string | null;
|
|
26
34
|
created_at: number;
|
|
@@ -40,6 +48,8 @@ export interface UpdateOrgLdapConnectionBody {
|
|
|
40
48
|
/** Ask the person to confirm the sign-in before it completes (the sign-in response then carries `consent_required`). */
|
|
41
49
|
require_consent_screen?: boolean;
|
|
42
50
|
attributes?: OrgLdapAttributeMap;
|
|
51
|
+
/** The first mapping whose group the person is in picks their role when they are seated; null clears. */
|
|
52
|
+
group_role_mappings?: OrgLdapGroupRoleMapping[] | null;
|
|
43
53
|
/** Service-account password. Write-only; re-encrypted only when supplied. */
|
|
44
54
|
bind_password?: string;
|
|
45
55
|
default_role_id?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-ldap-connections.js","sourceRoot":"","sources":["../../src/client/org-ldap-connections.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"org-ldap-connections.js","sourceRoot":"","sources":["../../src/client/org-ldap-connections.ts"],"names":[],"mappings":";;AA4EA,gEAuCC;AAnHD,uCAAgD;AA4EhD,SAAgB,0BAA0B,CAAC,OAAkB;IAC3D,OAAO;QACL,IAAI,CACF,SAAuC,EAAE;YAEzC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,CACJ,IAAiC,EACjC,cAAuB;YAEvB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,4BAA4B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,CACJ,EAAU,EACV,IAAiC,EACjC,cAAuB;YAEvB,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,4BAA4B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI;gBACJ,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QACD;;;WAGG;QACH,IAAI,CAAC,EAAU,EAAE,OAAmC,EAAE;YACpD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,IAAA,aAAG,EAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -9,16 +9,66 @@ export interface Organization {
|
|
|
9
9
|
image_url: string | null;
|
|
10
10
|
public_metadata: Metadata;
|
|
11
11
|
max_allowed_memberships: number;
|
|
12
|
-
|
|
12
|
+
/** null when your backend created the organization without a creator. */
|
|
13
|
+
created_by: string | null;
|
|
14
|
+
/** Your own id for this customer; unique per instance. */
|
|
15
|
+
external_id: string | null;
|
|
16
|
+
/** Role key → your product's name for it (echoed as the `org_role_mapped` token claim). */
|
|
17
|
+
role_mappings: Record<string, string> | null;
|
|
18
|
+
/** On create with `owner_email` only: the invitation sent to that address. */
|
|
19
|
+
owner_invitation?: {
|
|
20
|
+
object: 'organization_invitation';
|
|
21
|
+
id: string;
|
|
22
|
+
email: string;
|
|
23
|
+
role: string;
|
|
24
|
+
status: string;
|
|
25
|
+
expires_at: number | null;
|
|
26
|
+
};
|
|
13
27
|
created_at: number;
|
|
14
28
|
updated_at: number;
|
|
15
29
|
}
|
|
30
|
+
/** GET /v1/organizations/{id}: the organization plus its SSO setup. */
|
|
31
|
+
export interface OrganizationDetail extends Organization {
|
|
32
|
+
sso?: {
|
|
33
|
+
connections: {
|
|
34
|
+
id: string;
|
|
35
|
+
type: string;
|
|
36
|
+
status: 'draft' | 'active' | 'disabled';
|
|
37
|
+
}[];
|
|
38
|
+
/** The SCIM 2.0 base URL to give this organization's identity provider. */
|
|
39
|
+
scim_base_url: string;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** GET /v1/organizations/by_domain/{domain}: the owning organization and the matched domain. */
|
|
43
|
+
export interface OrganizationByDomain extends Organization {
|
|
44
|
+
domain: {
|
|
45
|
+
object: 'org_domain';
|
|
46
|
+
id: string;
|
|
47
|
+
domain: string;
|
|
48
|
+
status: OrgDomainStatus;
|
|
49
|
+
verified_at: number | null;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export type OrgDomainStatus = 'pending' | 'verified' | 'failed';
|
|
53
|
+
export type OrgDomainVerificationMethod = 'dns_txt' | 'well_known' | 'email';
|
|
54
|
+
export interface ListOrganizationsParams extends CursorParams {
|
|
55
|
+
/** Only the organization with this external_id. */
|
|
56
|
+
external_id?: string;
|
|
57
|
+
/** public_metadata equality filters, sent as ?metadata[key]=value (AND). */
|
|
58
|
+
metadata?: Record<string, string>;
|
|
59
|
+
}
|
|
16
60
|
export interface OrganizationMembership {
|
|
17
61
|
object: 'organization_membership';
|
|
18
62
|
id: string;
|
|
19
63
|
organization_id: string;
|
|
20
64
|
user_id: string;
|
|
21
65
|
role: string;
|
|
66
|
+
/**
|
|
67
|
+
* Who manages the role: `scim`, `sso:<connection id>` or `ldap:<connection id>`
|
|
68
|
+
* (the identity provider keeps it in step), `directory_sync`, `manual` (set
|
|
69
|
+
* through the API or dashboard), or null (joined by invitation, or older rows).
|
|
70
|
+
*/
|
|
71
|
+
role_source?: string | null;
|
|
22
72
|
created_at: number;
|
|
23
73
|
}
|
|
24
74
|
export interface OrganizationInvitation {
|
|
@@ -37,7 +87,7 @@ export interface OrgDomain {
|
|
|
37
87
|
id: string;
|
|
38
88
|
organization_id: string;
|
|
39
89
|
domain: string;
|
|
40
|
-
status:
|
|
90
|
+
status: OrgDomainStatus;
|
|
41
91
|
auto_join: boolean;
|
|
42
92
|
default_role_id: string | null;
|
|
43
93
|
verification: {
|
|
@@ -45,6 +95,25 @@ export interface OrgDomain {
|
|
|
45
95
|
record_type: 'TXT';
|
|
46
96
|
record_value: string;
|
|
47
97
|
};
|
|
98
|
+
/** Every way to prove the domain. */
|
|
99
|
+
verification_methods: {
|
|
100
|
+
dns_txt: {
|
|
101
|
+
record_name: string;
|
|
102
|
+
record_type: 'TXT';
|
|
103
|
+
record_value: string;
|
|
104
|
+
};
|
|
105
|
+
well_known: {
|
|
106
|
+
url: string;
|
|
107
|
+
body: string;
|
|
108
|
+
content_type: string;
|
|
109
|
+
};
|
|
110
|
+
email: {
|
|
111
|
+
addresses: string[];
|
|
112
|
+
sent_to: string | null;
|
|
113
|
+
expires_at: number | null;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
verification_method: OrgDomainVerificationMethod | null;
|
|
48
117
|
verified_at: number | null;
|
|
49
118
|
last_checked_at: number | null;
|
|
50
119
|
created_at: number;
|
|
@@ -232,10 +301,21 @@ export interface OrganizationEntitlements {
|
|
|
232
301
|
export interface CreateOrganizationBody {
|
|
233
302
|
name: string;
|
|
234
303
|
slug: string;
|
|
235
|
-
|
|
304
|
+
/** Seated with the creator role; omit (or null) for a backend-created organization with no members yet. */
|
|
305
|
+
created_by?: string | null;
|
|
306
|
+
external_id?: string;
|
|
307
|
+
public_metadata?: Metadata;
|
|
308
|
+
private_metadata?: Metadata;
|
|
309
|
+
/** Invites this address with the creator role (org:admin by default). */
|
|
310
|
+
owner_email?: string;
|
|
311
|
+
role_mappings?: Record<string, string>;
|
|
236
312
|
max_allowed_memberships?: number;
|
|
237
313
|
}
|
|
238
314
|
export interface UpdateOrganizationBody {
|
|
315
|
+
/** null clears it. */
|
|
316
|
+
external_id?: string | null;
|
|
317
|
+
/** null clears them. */
|
|
318
|
+
role_mappings?: Record<string, string> | null;
|
|
239
319
|
name?: string;
|
|
240
320
|
slug?: string;
|
|
241
321
|
image_url?: string;
|
|
@@ -285,8 +365,14 @@ export interface OrganizationWebhookEndpointBody {
|
|
|
285
365
|
active?: boolean;
|
|
286
366
|
}
|
|
287
367
|
export declare function organizationsResource(request: RequestFn): {
|
|
288
|
-
list(params?:
|
|
289
|
-
get(id: string): Promise<
|
|
368
|
+
list(params?: ListOrganizationsParams): Promise<CursorPage<Organization>>;
|
|
369
|
+
get(id: string): Promise<OrganizationDetail>;
|
|
370
|
+
/** The organization owning a domain (or an email address's domain). Verified domains only unless includeUnverified. */
|
|
371
|
+
findByDomain(domain: string, opts?: {
|
|
372
|
+
includeUnverified?: boolean;
|
|
373
|
+
}): Promise<OrganizationByDomain>;
|
|
374
|
+
/** `GET /v1/organizations/:id/policy`. */
|
|
375
|
+
getPolicy(id: string): Promise<OrganizationPolicy>;
|
|
290
376
|
create(body: CreateOrganizationBody, idempotencyKey?: string): Promise<Organization>;
|
|
291
377
|
update(id: string, body: UpdateOrganizationBody): Promise<Organization>;
|
|
292
378
|
delete(id: string): Promise<DeletedObject>;
|
|
@@ -324,10 +410,12 @@ export declare function organizationsResource(request: RequestFn): {
|
|
|
324
410
|
role: string;
|
|
325
411
|
}>;
|
|
326
412
|
update(orgId: string, userId: string, body: {
|
|
327
|
-
role
|
|
413
|
+
role?: string;
|
|
414
|
+
role_source?: string;
|
|
328
415
|
}): Promise<{
|
|
329
416
|
object: "organization_membership";
|
|
330
|
-
role
|
|
417
|
+
role?: string;
|
|
418
|
+
role_source?: string | null;
|
|
331
419
|
updated: true;
|
|
332
420
|
}>;
|
|
333
421
|
remove(orgId: string, userId: string): Promise<{
|
|
@@ -364,9 +452,19 @@ export declare function organizationsResource(request: RequestFn): {
|
|
|
364
452
|
auto_join?: boolean;
|
|
365
453
|
default_role_id?: string | null;
|
|
366
454
|
}, idempotencyKey?: string): Promise<OrgDomain>;
|
|
367
|
-
|
|
455
|
+
/** Check now. No body = the DNS TXT check; `well_known` fetches the file; `email` takes the emailed code. */
|
|
456
|
+
verify(orgId: string, domainId: string, body?: {
|
|
457
|
+
method?: OrgDomainVerificationMethod;
|
|
458
|
+
code?: string;
|
|
459
|
+
}): Promise<OrgDomain & {
|
|
368
460
|
verified: boolean;
|
|
369
461
|
}>;
|
|
462
|
+
/** Email a 6-digit code to admin@ (or another administrative mailbox) at the domain, via your own email provider. */
|
|
463
|
+
sendVerificationEmail(orgId: string, domainId: string, body?: {
|
|
464
|
+
address?: "admin" | "administrator" | "hostmaster" | "postmaster" | "webmaster";
|
|
465
|
+
}): Promise<OrgDomain & {
|
|
466
|
+
sent_to: string;
|
|
467
|
+
}>;
|
|
370
468
|
delete(orgId: string, domainId: string): Promise<{
|
|
371
469
|
object: "org_domain";
|
|
372
470
|
id: string;
|
|
@@ -5,11 +5,27 @@ const request_1 = require("./request");
|
|
|
5
5
|
function organizationsResource(request) {
|
|
6
6
|
return {
|
|
7
7
|
list(params = {}) {
|
|
8
|
-
|
|
8
|
+
const { metadata, ...rest } = params;
|
|
9
|
+
const query = { ...rest };
|
|
10
|
+
for (const [k, v] of Object.entries(metadata ?? {}))
|
|
11
|
+
query[`metadata[${k}]`] = v;
|
|
12
|
+
return request({ method: 'GET', path: '/v1/organizations', query });
|
|
9
13
|
},
|
|
10
14
|
get(id) {
|
|
11
15
|
return request({ method: 'GET', path: `/v1/organizations/${(0, request_1.enc)(id)}` });
|
|
12
16
|
},
|
|
17
|
+
/** The organization owning a domain (or an email address's domain). Verified domains only unless includeUnverified. */
|
|
18
|
+
findByDomain(domain, opts = {}) {
|
|
19
|
+
return request({
|
|
20
|
+
method: 'GET',
|
|
21
|
+
path: `/v1/organizations/by_domain/${(0, request_1.enc)(domain)}`,
|
|
22
|
+
query: opts.includeUnverified ? { include_unverified: 'true' } : {},
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
/** `GET /v1/organizations/:id/policy`. */
|
|
26
|
+
getPolicy(id) {
|
|
27
|
+
return request({ method: 'GET', path: `/v1/organizations/${(0, request_1.enc)(id)}/policy` });
|
|
28
|
+
},
|
|
13
29
|
create(body, idempotencyKey) {
|
|
14
30
|
return request({ method: 'POST', path: '/v1/organizations', body, idempotencyKey });
|
|
15
31
|
},
|
|
@@ -58,7 +74,13 @@ function organizationsResource(request) {
|
|
|
58
74
|
idempotencyKey,
|
|
59
75
|
});
|
|
60
76
|
},
|
|
61
|
-
update(orgId, userId,
|
|
77
|
+
update(orgId, userId,
|
|
78
|
+
/**
|
|
79
|
+
* `role_source`: `manual` takes the role out of directory control; `scim`,
|
|
80
|
+
* `sso:<connection id>` or `ldap:<connection id>` hands it back to that source.
|
|
81
|
+
* A role sent alone counts as `manual`.
|
|
82
|
+
*/
|
|
83
|
+
body) {
|
|
62
84
|
return request({
|
|
63
85
|
method: 'PATCH',
|
|
64
86
|
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/memberships/${(0, request_1.enc)(userId)}`,
|
|
@@ -103,10 +125,20 @@ function organizationsResource(request) {
|
|
|
103
125
|
idempotencyKey,
|
|
104
126
|
});
|
|
105
127
|
},
|
|
106
|
-
|
|
128
|
+
/** Check now. No body = the DNS TXT check; `well_known` fetches the file; `email` takes the emailed code. */
|
|
129
|
+
verify(orgId, domainId, body) {
|
|
107
130
|
return request({
|
|
108
131
|
method: 'POST',
|
|
109
132
|
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/domains/${(0, request_1.enc)(domainId)}/verify`,
|
|
133
|
+
...(body ? { body } : {}),
|
|
134
|
+
});
|
|
135
|
+
},
|
|
136
|
+
/** Email a 6-digit code to admin@ (or another administrative mailbox) at the domain, via your own email provider. */
|
|
137
|
+
sendVerificationEmail(orgId, domainId, body = {}) {
|
|
138
|
+
return request({
|
|
139
|
+
method: 'POST',
|
|
140
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/domains/${(0, request_1.enc)(domainId)}/verification_email`,
|
|
141
|
+
body,
|
|
110
142
|
});
|
|
111
143
|
},
|
|
112
144
|
delete(orgId, domainId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/client/organizations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/client/organizations.ts"],"names":[],"mappings":";;AAoWA,sDA4aC;AAhxBD,uCAAgD;AAoWhD,SAAgB,qBAAqB,CAAC,OAAkB;IACtD,OAAO;QACL,IAAI,CAAC,SAAkC,EAAE;YACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;YACrC,MAAM,KAAK,GAA0D,EAAE,GAAG,IAAI,EAAE,CAAC;YACjF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,uHAAuH;QACvH,YAAY,CAAC,MAAc,EAAE,OAAwC,EAAE;YACrE,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,+BAA+B,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE;gBAClD,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;aACpE,CAAC,CAAC;QACL,CAAC;QACD,0CAA0C;QAC1C,SAAS,CAAC,EAAU;YAClB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,CAAC,IAA4B,EAAE,cAAuB;YAC1D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAA4B;YAC7C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,gFAAgF;QAChF,cAAc,CAAC,EAAU,EAAE,IAAqC;YAC9D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,4CAA4C;QAC5C,YAAY,CAAC,EAAU,EAAE,IAA6B;YACpD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,CAAC;QACD;;;;WAIG;QACH,SAAS,CAAC,EAAU,EAAE,IAA+C;YACnE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,gGAAgG;QAChG,SAAS,CAAC,EAAU;YAClB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QACpF,CAAC;QACD;;;WAGG;QACH,YAAY,CAAC,EAAU;YACrB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,WAAW,EAAE;YACX,IAAI,CAAC,KAAa;gBAChB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YACzF,CAAC;YACD,GAAG,CACD,KAAa,EACb,IAAwC,EACxC,cAAuB;gBAOvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,cAAc;oBACnD,IAAI;oBACJ,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,KAAa,EACb,MAAc;YACd;;;;eAIG;YACH,IAA6C;gBAE7C,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE;oBAClE,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,KAAa,EACb,MAAc;gBAEd,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE;iBACnE,CAAC,CAAC;YACL,CAAC;SACF;QAED,WAAW,EAAE;YACX,IAAI,CAAC,KAAa;gBAChB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,CACJ,KAAa,EACb,IAA8D,EAC9D,cAAuB;gBASvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,cAAc;oBACnD,IAAI;oBACJ,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,KAAa,EACb,YAAoB;gBAEpB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB,IAAA,aAAG,EAAC,YAAY,CAAC,SAAS;iBAChF,CAAC,CAAC;YACL,CAAC;SACF;QAED,OAAO,EAAE;YACP,IAAI,CAAC,KAAa;gBAChB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,CACJ,KAAa,EACb,IAA8E,EAC9E,cAAuB;gBAEvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,UAAU;oBAC/C,IAAI;oBACJ,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YACD,6GAA6G;YAC7G,MAAM,CACJ,KAAa,EACb,QAAgB,EAChB,IAA8D;gBAE9D,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,YAAY,IAAA,aAAG,EAAC,QAAQ,CAAC,SAAS;oBACvE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,qHAAqH;YACrH,qBAAqB,CACnB,KAAa,EACb,QAAgB,EAChB,OAA4F,EAAE;gBAE9F,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,YAAY,IAAA,aAAG,EAAC,QAAQ,CAAC,qBAAqB;oBACnF,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,KAAa,EACb,QAAgB;gBAEhB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,YAAY,IAAA,aAAG,EAAC,QAAQ,CAAC,EAAE;iBACjE,CAAC,CAAC;YACL,CAAC;SACF;QAED,4FAA4F;QAC5F,QAAQ,EAAE;YACR,0DAA0D;YAC1D,GAAG,CAAC,KAAa;gBACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACtF,CAAC;YACD,iFAAiF;YACjF,OAAO,CACL,KAAa,EACb,MAA+B,EAC/B,cAAuB;gBAEvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,WAAW;oBAChD,IAAI,EAAE,EAAE,MAAM,EAAE;oBAChB,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YACD;;;eAGG;YACH,MAAM,CACJ,KAAa,EACb,MAA+B,EAC/B,cAAuB;gBAEvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,WAAW;oBAChD,IAAI,EAAE,EAAE,MAAM,EAAE;oBAChB,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;SACF;QAED,yFAAyF;QACzF,YAAY,EAAE;YACZ,IAAI,CAAC,KAAa;gBAChB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,CACJ,KAAa,EACb,IAAuC,EACvC,cAAuB;gBAEvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB;oBACrD,IAAI;oBACJ,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,KAAa,EACb,QAAgB;gBAEhB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,kBAAkB,IAAA,aAAG,EAAC,QAAQ,CAAC,EAAE;iBACvE,CAAC,CAAC;YACL,CAAC;SACF;QAED;;;;WAIG;QACH,gBAAgB,EAAE;YAChB,IAAI,CAAC,KAAa;gBAChB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,GAAG,CAAC,KAAa,EAAE,UAAkB;gBACnC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,sBAAsB,IAAA,aAAG,EAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YAClH,CAAC;YACD,mDAAmD;YACnD,MAAM,CACJ,KAAa,EACb,IAAuD,EACvD,cAAuB;gBAEvB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YACtH,CAAC;YACD,MAAM,CAAC,KAAa,EAAE,UAAkB,EAAE,IAAqC;gBAC7E,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,sBAAsB,IAAA,aAAG,EAAC,UAAU,CAAC,EAAE;oBAC5E,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,KAAa,EAAE,UAAkB;gBACtC,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,sBAAsB,IAAA,aAAG,EAAC,UAAU,CAAC,EAAE;iBAC7E,CAAC,CAAC;YACL,CAAC;YACD,gFAAgF;YAChF,YAAY,CACV,KAAa,EACb,UAAkB;gBAElB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,sBAAsB,IAAA,aAAG,EAAC,UAAU,CAAC,gBAAgB;iBAC3F,CAAC,CAAC;YACL,CAAC;YACD,UAAU,CAAC,KAAa,EAAE,UAAkB,EAAE,QAAqD,EAAE;gBACnG,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,sBAAsB,IAAA,aAAG,EAAC,UAAU,CAAC,aAAa;oBACvF,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;SACF;QAED,uDAAuD;QACvD,QAAQ,EAAE;YACR,GAAG,CAAC,KAAa;gBACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACtF,CAAC;YACD,yFAAyF;YACzF,MAAM,CAAC,KAAa,EAAE,IAAoC;gBACxD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5F,CAAC;SACF;QAED,qFAAqF;QACrF,QAAQ,EAAE;YACR,IAAI,CACF,KAAa,EACb,SAAyC,EAAE;gBAE3C,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,YAAY;oBACjD,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,2FAA2F;YAC3F,GAAG,CACD,KAAa,EACb,IAAgC,EAChC,cAAuB;gBAEvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,YAAY;oBACjD,IAAI;oBACJ,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YACD,8DAA8D;YAC9D,MAAM,CACJ,KAAa,EACb,MAAc,EACd,IAA2C;gBAE3C,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,cAAc,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE;oBAChE,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,KAAa,EACb,MAAc;gBAEd,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,cAAc,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE;iBACjE,CAAC,CAAC;YACL,CAAC;SACF;QAED,wEAAwE;QACxE,YAAY,EAAE;YACZ,IAAI,CAAC,KAAa;gBAChB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,mFAAmF;YACnF,MAAM,CACJ,KAAa,EACb,IAAsB,EACtB,cAAuB;gBAEvB,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB;oBACrD,IAAI;oBACJ,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,KAAa;gBAClB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC9F,CAAC;SACF;QAED,uEAAuE;QACvE,UAAU,EAAE;YACV,KAAK,CACH,KAAa,EACb,OAAe,EACf,MAAc;gBAQd,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,WAAW,IAAA,aAAG,EAAC,OAAO,CAAC,UAAU,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE;iBACpF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,KAAa,EACb,OAAe,EACf,MAAc;gBAQd,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,KAAK,CAAC,WAAW,IAAA,aAAG,EAAC,OAAO,CAAC,UAAU,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE;iBACpF,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|