From 882e2c537e514d8aa93b666de95ab812d257565a Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 04:02:18 +0000 Subject: [PATCH] SDK regeneration --- reference.md | 170 +++++++++- src/management/api/requests/requests.ts | 45 ++- .../resources/clientGrants/client/Client.ts | 5 +- .../directoryProvisioning/client/Client.ts | 205 +++++++++++ .../resources/eventStreams/client/Client.ts | 2 +- src/management/api/types/types.ts | 247 ++++++++++++-- .../tests/wire/clientGrants.test.ts | 5 + src/management/tests/wire/clients.test.ts | 46 +++ .../connections/directoryProvisioning.test.ts | 318 ++++++++++++++++++ .../tests/wire/eventStreams.test.ts | 18 +- .../wire/eventStreams/deliveries.test.ts | 4 +- .../wire/eventStreams/redeliveries.test.ts | 2 +- src/management/tests/wire/networkAcls.test.ts | 6 - .../tests/wire/tenants/settings.test.ts | 4 + .../wire/users/connectedAccounts.test.ts | 1 + yarn.lock | 221 ++++++------ 16 files changed, 1131 insertions(+), 168 deletions(-) diff --git a/reference.md b/reference.md index 9a2f725970..7dd0521016 100644 --- a/reference.md +++ b/reference.md @@ -663,6 +663,7 @@ const pageableResponse = await client.clientGrants.list({ client_id: "client_id", allow_any_organization: true, subject_type: "client", + default_for: "third_party_clients", }); for await (const item of pageableResponse) { console.log(item); @@ -676,6 +677,7 @@ let page = await client.clientGrants.list({ client_id: "client_id", allow_any_organization: true, subject_type: "client", + default_for: "third_party_clients", }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -3962,7 +3964,7 @@ await client.eventStreams.update("id"); ```typescript await client.eventStreams.test("id", { - event_type: "user.created", + event_type: "group.created", }); ``` @@ -15929,6 +15931,172 @@ await client.connections.directoryProvisioning.getDefaultMapping("id"); +
client.connections.directoryProvisioning.listSynchronizedGroups(id, { ...params }) -> core.Page<Management.SynchronizedGroupPayload, Management.ListSynchronizedGroupsResponseContent> +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Retrieve the configured synchronized groups for a connection directory provisioning configuration. + +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +const pageableResponse = await client.connections.directoryProvisioning.listSynchronizedGroups("id", { + from: "from", + take: 1, +}); +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.connections.directoryProvisioning.listSynchronizedGroups("id", { + from: "from", + take: 1, +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `string` — The id of the connection to list synchronized groups for. + +
+
+ +
+
+ +**request:** `Management.ListSynchronizedGroupsRequestParameters` + +
+
+ +
+
+ +**requestOptions:** `DirectoryProvisioningClient.RequestOptions` + +
+
+
+
+ +
+
+
+ +
client.connections.directoryProvisioning.set(id, { ...params }) -> void +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Create or replace the selected groups for a connection directory provisioning configuration. + +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "id", + }, + ], +}); +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `string` — The id of the connection to create or replace synchronized groups for + +
+
+ +
+
+ +**request:** `Management.ReplaceSynchronizedGroupsRequestContent` + +
+
+ +
+
+ +**requestOptions:** `DirectoryProvisioningClient.RequestOptions` + +
+
+
+
+ +
+
+
+ ## Connections ScimConfiguration
client.connections.scimConfiguration.list({ ...params }) -> core.Page<Management.ScimConfiguration, Management.ListScimConfigurationsResponseContent> diff --git a/src/management/api/requests/requests.ts b/src/management/api/requests/requests.ts index e4159ea6ee..1a723a0288 100644 --- a/src/management/api/requests/requests.ts +++ b/src/management/api/requests/requests.ts @@ -123,7 +123,8 @@ export interface UpdateBrandingRequestContent { * audience: "audience", * client_id: "client_id", * allow_any_organization: true, - * subject_type: "client" + * subject_type: "client", + * default_for: "third_party_clients" * } */ export interface ListClientGrantsRequestParameters { @@ -139,6 +140,8 @@ export interface ListClientGrantsRequestParameters { allow_any_organization?: Management.ClientGrantAllowAnyOrganizationEnum | null; /** The type of application access the client grant allows. */ subject_type?: Management.ClientGrantSubjectTypeEnum | null; + /** Used to filter the returned client grants to include only default client grants for the specified group of clients. */ + default_for?: Management.ClientGrantDefaultForEnum | null; } /** @@ -152,6 +155,8 @@ export interface CreateClientGrantRequestContent { client_id?: string; /** The audience (API identifier) of this client grant */ audience: string; + /** Applies this client grant as the default for all clients in the specified group. The only accepted value is `third_party_clients`, which applies the grant to all third-party clients. Per-client grants for the same audience take precedence. Mutually exclusive with `client_id`. If specified, a value for `client_id` must not be specified. */ + default_for?: Management.ClientGrantDefaultForEnum; organization_usage?: Management.ClientGrantOrganizationUsageEnum; /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ allow_any_organization?: boolean; @@ -306,7 +311,10 @@ export interface CreateClientRequestContent { token_quota?: Management.CreateTokenQuota; /** The identifier of the resource server that this client is linked to. */ resource_server_identifier?: string; + third_party_security_mode?: Management.ClientThirdPartySecurityModeEnum; + redirection_policy?: Management.ClientRedirectionPolicyEnum; express_configuration?: Management.ExpressConfiguration; + my_organization_configuration?: Management.ClientMyOrganizationPostConfiguration; async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPostConfiguration; } @@ -435,9 +443,12 @@ export interface UpdateClientRequestContent { /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ par_request_expiry?: number | null; express_configuration?: Management.ExpressConfigurationOrNull | null; + my_organization_configuration?: Management.ClientMyOrganizationPatchConfiguration | null; async_approval_notification_channels?: | (Management.ClientAsyncApprovalNotificationsChannelsApiPatchConfiguration | undefined) | null; + third_party_security_mode?: Management.ClientThirdPartySecurityModeEnum; + redirection_policy?: Management.ClientRedirectionPolicyEnum; } /** @@ -791,7 +802,7 @@ export interface UpdateEventStreamRequestContent { /** * @example * { - * event_type: "user.created" + * event_type: "group.created" * } */ export interface CreateEventStreamTestEventRequestContent { @@ -2484,6 +2495,33 @@ export interface ListDirectoryProvisioningsRequestParameters { take?: number | null; } +/** + * @example + * { + * from: "from", + * take: 1 + * } + */ +export interface ListSynchronizedGroupsRequestParameters { + /** Optional Id from which to start selection. */ + from?: string | null; + /** Number of results per page. Defaults to 50. */ + take?: number | null; +} + +/** + * @example + * { + * groups: [{ + * id: "id" + * }] + * } + */ +export interface ReplaceSynchronizedGroupsRequestContent { + /** Array of Google Workspace Directory group objects to synchronize. */ + groups: Management.SynchronizedGroupPayload[]; +} + /** * @example * { @@ -3616,10 +3654,13 @@ export interface UpdateTenantSettingsRequestContent { */ skip_non_verifiable_callback_uri_confirmation_prompt?: boolean | null; resource_parameter_profile?: Management.TenantSettingsResourceParameterProfile; + /** Whether the authorization server supports retrieving client metadata from a client_id URL. */ + client_id_metadata_document_supported?: boolean; /** Whether Auth0 Guide (AI-powered assistance) is enabled for this tenant. */ enable_ai_guide?: boolean; /** Whether Phone Consolidated Experience is enabled for this tenant. */ phone_consolidated_experience?: boolean; + dynamic_client_registration_security_mode?: Management.TenantSettingsDynamicClientRegistrationSecurityMode; } /** diff --git a/src/management/api/resources/clientGrants/client/Client.ts b/src/management/api/resources/clientGrants/client/Client.ts index b01fd109b3..0670b812c7 100644 --- a/src/management/api/resources/clientGrants/client/Client.ts +++ b/src/management/api/resources/clientGrants/client/Client.ts @@ -45,7 +45,8 @@ export class ClientGrantsClient { * audience: "audience", * client_id: "client_id", * allow_any_organization: true, - * subject_type: "client" + * subject_type: "client", + * default_for: "third_party_clients" * }) */ public async list( @@ -63,6 +64,7 @@ export class ClientGrantsClient { client_id: clientId, allow_any_organization: allowAnyOrganization, subject_type: subjectType, + default_for: defaultFor, } = request; const _queryParams: Record = { from: from_, @@ -71,6 +73,7 @@ export class ClientGrantsClient { client_id: clientId, allow_any_organization: allowAnyOrganization, subject_type: subjectType !== undefined ? subjectType : undefined, + default_for: defaultFor !== undefined ? defaultFor : undefined, }; const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); let _headers: core.Fetcher.Args["headers"] = mergeHeaders( diff --git a/src/management/api/resources/connections/resources/directoryProvisioning/client/Client.ts b/src/management/api/resources/connections/resources/directoryProvisioning/client/Client.ts index 9e867fe959..9e074b940e 100644 --- a/src/management/api/resources/connections/resources/directoryProvisioning/client/Client.ts +++ b/src/management/api/resources/connections/resources/directoryProvisioning/client/Client.ts @@ -565,4 +565,209 @@ export class DirectoryProvisioningClient { "/connections/{id}/directory-provisioning/default-mapping", ); } + + /** + * Retrieve the configured synchronized groups for a connection directory provisioning configuration. + * + * @param {string} id - The id of the connection to list synchronized groups for. + * @param {Management.ListSynchronizedGroupsRequestParameters} request + * @param {DirectoryProvisioningClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Management.BadRequestError} + * @throws {@link Management.UnauthorizedError} + * @throws {@link Management.ForbiddenError} + * @throws {@link Management.NotFoundError} + * @throws {@link Management.TooManyRequestsError} + * + * @example + * await client.connections.directoryProvisioning.listSynchronizedGroups("id", { + * from: "from", + * take: 1 + * }) + */ + public async listSynchronizedGroups( + id: string, + request: Management.ListSynchronizedGroupsRequestParameters = {}, + requestOptions?: DirectoryProvisioningClient.RequestOptions, + ): Promise> { + const list = core.HttpResponsePromise.interceptFunction( + async ( + request: Management.ListSynchronizedGroupsRequestParameters, + ): Promise> => { + const { from: from_, take = 50 } = request; + const _queryParams: Record = { + from: from_, + take, + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.ManagementEnvironment.Default, + `connections/${core.url.encodePathParam(id)}/directory-provisioning/synchronized-groups`, + ), + method: "GET", + headers: _headers, + queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: _response.body as Management.ListSynchronizedGroupsResponseContent, + rawResponse: _response.rawResponse, + }; + } + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Management.BadRequestError( + _response.error.body as unknown, + _response.rawResponse, + ); + case 401: + throw new Management.UnauthorizedError( + _response.error.body as unknown, + _response.rawResponse, + ); + case 403: + throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); + case 404: + throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); + case 429: + throw new Management.TooManyRequestsError( + _response.error.body as unknown, + _response.rawResponse, + ); + default: + throw new errors.ManagementError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/connections/{id}/directory-provisioning/synchronized-groups", + ); + }, + ); + const dataWithRawResponse = await list(request).withRawResponse(); + return new core.Page({ + response: dataWithRawResponse.data, + rawResponse: dataWithRawResponse.rawResponse, + hasNextPage: (response) => + response?.next != null && !(typeof response?.next === "string" && response?.next === ""), + getItems: (response) => response?.groups ?? [], + loadPage: (response) => { + return list(core.setObjectProperty(request, "from", response?.next)); + }, + }); + } + + /** + * Create or replace the selected groups for a connection directory provisioning configuration. + * + * @param {string} id - The id of the connection to create or replace synchronized groups for + * @param {Management.ReplaceSynchronizedGroupsRequestContent} request + * @param {DirectoryProvisioningClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Management.BadRequestError} + * @throws {@link Management.UnauthorizedError} + * @throws {@link Management.ForbiddenError} + * @throws {@link Management.NotFoundError} + * @throws {@link Management.ConflictError} + * @throws {@link Management.TooManyRequestsError} + * + * @example + * await client.connections.directoryProvisioning.set("id", { + * groups: [{ + * id: "id" + * }] + * }) + */ + public set( + id: string, + request: Management.ReplaceSynchronizedGroupsRequestContent, + requestOptions?: DirectoryProvisioningClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__set(id, request, requestOptions)); + } + + private async __set( + id: string, + request: Management.ReplaceSynchronizedGroupsRequestContent, + requestOptions?: DirectoryProvisioningClient.RequestOptions, + ): Promise> { + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.ManagementEnvironment.Default, + `connections/${core.url.encodePathParam(id)}/directory-provisioning/synchronized-groups`, + ), + method: "PUT", + headers: _headers, + contentType: "application/json", + queryParameters: requestOptions?.queryParams, + requestType: "json", + body: request, + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { data: undefined, rawResponse: _response.rawResponse }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); + case 401: + throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); + case 403: + throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); + case 404: + throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); + case 409: + throw new Management.ConflictError(_response.error.body as unknown, _response.rawResponse); + case 429: + throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); + default: + throw new errors.ManagementError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/connections/{id}/directory-provisioning/synchronized-groups", + ); + } } diff --git a/src/management/api/resources/eventStreams/client/Client.ts b/src/management/api/resources/eventStreams/client/Client.ts index e5b8029e75..0744bd2121 100644 --- a/src/management/api/resources/eventStreams/client/Client.ts +++ b/src/management/api/resources/eventStreams/client/Client.ts @@ -457,7 +457,7 @@ export class EventStreamsClient { * * @example * await client.eventStreams.test("id", { - * event_type: "user.created" + * event_type: "group.created" * }) */ public test( diff --git a/src/management/api/types/types.ts b/src/management/api/types/types.ts index dab06d269f..41670be5c1 100644 --- a/src/management/api/types/types.ts +++ b/src/management/api/types/types.ts @@ -2027,6 +2027,9 @@ export interface Client { par_request_expiry?: (number | null) | undefined; token_quota?: Management.TokenQuota | undefined; express_configuration?: Management.ExpressConfiguration | undefined; + my_organization_configuration?: Management.ClientMyOrganizationResponseConfiguration | undefined; + third_party_security_mode?: Management.ClientThirdPartySecurityModeEnum | undefined; + redirection_policy?: Management.ClientRedirectionPolicyEnum | undefined; /** The identifier of the resource server that this client is linked to. */ resource_server_identifier?: string | undefined; async_approval_notification_channels?: @@ -2668,6 +2671,12 @@ export type ClientExternalMetadataTypeEnum = */ export type ClientGrantAllowAnyOrganizationEnum = boolean; +/** Used to filter the returned client grants to include only default client grants for the specified group of clients. */ +export const ClientGrantDefaultForEnum = { + ThirdPartyClients: "third_party_clients", +} as const; +export type ClientGrantDefaultForEnum = (typeof ClientGrantDefaultForEnum)[keyof typeof ClientGrantDefaultForEnum]; + /** Controls how organizations may be used with this grant */ export const ClientGrantOrganizationNullableUsageEnum = { Deny: "deny", @@ -2698,6 +2707,8 @@ export interface ClientGrantResponseContent { organization_usage?: Management.ClientGrantOrganizationUsageEnum | undefined; /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ allow_any_organization?: boolean | undefined; + /** Applies this client grant as the default for all clients in the specified group. The only accepted value is `third_party_clients`, which applies the grant to all third-party clients. Per-client grants for the same audience take precedence. Mutually exclusive with `client_id`. */ + default_for?: Management.ClientGrantDefaultForEnum | undefined; /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ is_system?: boolean | undefined; subject_type?: Management.ClientGrantSubjectTypeEnum | undefined; @@ -2772,6 +2783,78 @@ export interface ClientMobileiOs { [key: string]: any; } +/** The allowed connection strategy values for the My Organization Configuration. */ +export const ClientMyOrganizationConfigurationAllowedStrategiesEnum = { + Pingfederate: "pingfederate", + Adfs: "adfs", + Waad: "waad", + GoogleApps: "google-apps", + Okta: "okta", + Oidc: "oidc", + Samlp: "samlp", +} as const; +export type ClientMyOrganizationConfigurationAllowedStrategiesEnum = + (typeof ClientMyOrganizationConfigurationAllowedStrategiesEnum)[keyof typeof ClientMyOrganizationConfigurationAllowedStrategiesEnum]; + +/** The deletion behavior for this client. */ +export const ClientMyOrganizationDeletionBehaviorEnum = { + Allow: "allow", + AllowIfEmpty: "allow_if_empty", +} as const; +export type ClientMyOrganizationDeletionBehaviorEnum = + (typeof ClientMyOrganizationDeletionBehaviorEnum)[keyof typeof ClientMyOrganizationDeletionBehaviorEnum]; + +/** + * Configuration related to the My Organization Configuration for the client. + */ +export interface ClientMyOrganizationPatchConfiguration { + /** The connection profile ID that this client should validate against. */ + connection_profile_id?: string | undefined; + /** The user attribute profile ID that this client should validate against. */ + user_attribute_profile_id?: string | undefined; + /** The allowed connection strategies for the My Organization Configuration. */ + allowed_strategies: Management.ClientMyOrganizationConfigurationAllowedStrategiesEnum[]; + connection_deletion_behavior: Management.ClientMyOrganizationDeletionBehaviorEnum; + /** The client ID this client uses while creating invitations through My Organization API. */ + invitation_landing_client_id?: string | undefined; + /** List of role IDs allowed when inviting users through the My Organization API. */ + allowed_roles?: string[] | undefined; +} + +/** + * Configuration related to the My Organization Configuration for the client. + */ +export interface ClientMyOrganizationPostConfiguration { + /** The connection profile ID that this client should validate against. */ + connection_profile_id?: string | undefined; + /** The user attribute profile ID that this client should validate against. */ + user_attribute_profile_id?: string | undefined; + /** The allowed connection strategies for the My Organization Configuration. */ + allowed_strategies: Management.ClientMyOrganizationConfigurationAllowedStrategiesEnum[]; + connection_deletion_behavior: Management.ClientMyOrganizationDeletionBehaviorEnum; + /** The client ID this client uses while creating invitations through My Organization API. */ + invitation_landing_client_id?: string | undefined; + /** List of role IDs allowed when inviting users through the My Organization API. */ + allowed_roles?: string[] | undefined; +} + +/** + * Configuration related to the My Organization Configuration for the client. + */ +export interface ClientMyOrganizationResponseConfiguration { + /** The connection profile ID that this client should validate against. */ + connection_profile_id?: string | undefined; + /** The user attribute profile ID that this client should validate against. */ + user_attribute_profile_id?: string | undefined; + /** The allowed connection strategies for the My Organization Configuration. */ + allowed_strategies: Management.ClientMyOrganizationConfigurationAllowedStrategiesEnum[]; + connection_deletion_behavior: Management.ClientMyOrganizationDeletionBehaviorEnum; + /** The client ID this client uses while creating invitations through My Organization API. */ + invitation_landing_client_id?: string | undefined; + /** List of role IDs allowed when inviting users through the My Organization API. */ + allowed_roles?: string[] | undefined; +} + /** * Configuration for OIDC backchannel logout initiators */ @@ -2871,6 +2954,14 @@ export const ClientOrganizationUsagePatchEnum = { export type ClientOrganizationUsagePatchEnum = (typeof ClientOrganizationUsagePatchEnum)[keyof typeof ClientOrganizationUsagePatchEnum]; +/** Controls whether Auth0 redirects users to the application's callback URL on authentication errors or in email verification flows. `open_redirect_protection` shows an error page instead of redirecting, and hides the callback domain from email templates. `allow_always` enables standard redirect behavior. Defaults to `open_redirect_protection` for third-party clients. Only applies when `is_first_party` is `false` and `third_party_security_mode` is `strict`. */ +export const ClientRedirectionPolicyEnum = { + AllowAlways: "allow_always", + OpenRedirectProtection: "open_redirect_protection", +} as const; +export type ClientRedirectionPolicyEnum = + (typeof ClientRedirectionPolicyEnum)[keyof typeof ClientRedirectionPolicyEnum]; + /** * Refresh token configuration */ @@ -2967,6 +3058,14 @@ export interface ClientSigningKey { */ export type ClientSigningKeys = (Management.ClientSigningKey[] | null) | undefined; +/** Security mode for third-party clients. `strict` enforces enhanced security controls: OAuth 2.1 alignment, explicit API authorization, and a curated set of supported features. `permissive` preserves pre-existing behavior and is only available to tenants with prior third-party client usage. Set on creation and cannot be modified. */ +export const ClientThirdPartySecurityModeEnum = { + Strict: "strict", + Permissive: "permissive", +} as const; +export type ClientThirdPartySecurityModeEnum = + (typeof ClientThirdPartySecurityModeEnum)[keyof typeof ClientThirdPartySecurityModeEnum]; + /** Defines the requested authentication method for the token endpoint. Can be `none` (public client without a client secret), `client_secret_post` (client uses HTTP POST parameters), or `client_secret_basic` (client uses HTTP Basic). */ export const ClientTokenEndpointAuthMethodEnum = { None: "none", @@ -3001,6 +3100,7 @@ export interface ClientTokenExchangeConfigurationOrNull { allow_any_profile_of_type?: Management.ClientTokenExchangeTypeEnum[] | undefined; } +/** Token exchange type. `on_behalf_of_token_exchange`: enables On-Behalf-Of token exchange (Generally Available). `custom_authentication`: enables custom token exchange profiles (Early Access, requires entitlement). */ export const ClientTokenExchangeTypeEnum = { CustomAuthentication: "custom_authentication", OnBehalfOfTokenExchange: "on_behalf_of_token_exchange", @@ -3024,6 +3124,8 @@ export interface ConnectedAccount { created_at: string; /** ISO 8601 timestamp when the connected account expires. */ expires_at?: string | undefined; + /** The identifier of the organization associated with the connected account. */ + organization_id?: string | undefined; } /** The access type for the connected account. */ @@ -3538,6 +3640,14 @@ export type ConnectionDomainGoogleApps = string; */ export type ConnectionDomainOkta = string; +/** Algorithm used for DPoP proof JWT signing. */ +export const ConnectionDpopSigningAlgEnum = { + Es256: "ES256", + Ed25519: "Ed25519", +} as const; +export type ConnectionDpopSigningAlgEnum = + (typeof ConnectionDpopSigningAlgEnum)[keyof typeof ConnectionDpopSigningAlgEnum]; + /** * JSON array containing a list of the JWS signing algorithms (alg values) supported for DPoP proof JWT signing. */ @@ -4465,6 +4575,7 @@ export interface ConnectionOptionsCommonOidc { client_secret?: Management.ConnectionClientSecretOidc | undefined; connection_settings?: Management.ConnectionConnectionSettings | undefined; domain_aliases?: Management.ConnectionDomainAliases | undefined; + dpop_signing_alg?: Management.ConnectionDpopSigningAlgEnum | undefined; federated_connections_access_tokens?: (Management.ConnectionFederatedConnectionsAccessTokens | null) | undefined; icon_url?: Management.ConnectionIconUrl | undefined; id_token_signed_response_algs?: ((Management.ConnectionIdTokenSignedResponseAlgs | undefined) | null) | undefined; @@ -5819,6 +5930,7 @@ export interface ConnectionPropertiesOptions { password_no_personal_info?: (Management.ConnectionPasswordNoPersonalInfoOptions | null) | undefined; password_dictionary?: (Management.ConnectionPasswordDictionaryOptions | null) | undefined; api_enable_users?: boolean | undefined; + api_enable_groups?: boolean | undefined; basic_profile?: boolean | undefined; ext_admin?: boolean | undefined; ext_is_suspended?: boolean | undefined; @@ -7538,6 +7650,8 @@ export interface CreateClientGrantResponseContent { organization_usage?: Management.ClientGrantOrganizationUsageEnum | undefined; /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ allow_any_organization?: boolean | undefined; + /** Applies this client grant as the default for all clients in the specified group. The only accepted value is `third_party_clients`, which applies the grant to all third-party clients. Per-client grants for the same audience take precedence. Mutually exclusive with `client_id`. */ + default_for?: Management.ClientGrantDefaultForEnum | undefined; /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ is_system?: boolean | undefined; subject_type?: Management.ClientGrantSubjectTypeEnum | undefined; @@ -7634,6 +7748,9 @@ export interface CreateClientResponseContent { par_request_expiry?: (number | null) | undefined; token_quota?: Management.TokenQuota | undefined; express_configuration?: Management.ExpressConfiguration | undefined; + my_organization_configuration?: Management.ClientMyOrganizationResponseConfiguration | undefined; + third_party_security_mode?: Management.ClientThirdPartySecurityModeEnum | undefined; + redirection_policy?: Management.ClientRedirectionPolicyEnum | undefined; /** The identifier of the resource server that this client is linked to. */ resource_server_identifier?: string | undefined; async_approval_notification_channels?: @@ -10477,24 +10594,28 @@ export interface EventStreamDeliveryAttempt { /** Type of event */ export const EventStreamDeliveryEventTypeEnum = { - UserCreated: "user.created", - UserDeleted: "user.deleted", - UserUpdated: "user.updated", + GroupCreated: "group.created", + GroupDeleted: "group.deleted", + GroupMemberAdded: "group.member.added", + GroupMemberDeleted: "group.member.deleted", + GroupRoleAssigned: "group.role.assigned", + GroupRoleDeleted: "group.role.deleted", + GroupUpdated: "group.updated", + OrganizationConnectionAdded: "organization.connection.added", + OrganizationConnectionRemoved: "organization.connection.removed", + OrganizationConnectionUpdated: "organization.connection.updated", OrganizationCreated: "organization.created", - OrganizationUpdated: "organization.updated", OrganizationDeleted: "organization.deleted", + OrganizationGroupRoleAssigned: "organization.group.role.assigned", + OrganizationGroupRoleDeleted: "organization.group.role.deleted", OrganizationMemberAdded: "organization.member.added", OrganizationMemberDeleted: "organization.member.deleted", OrganizationMemberRoleAssigned: "organization.member.role.assigned", OrganizationMemberRoleDeleted: "organization.member.role.deleted", - OrganizationConnectionAdded: "organization.connection.added", - OrganizationConnectionUpdated: "organization.connection.updated", - OrganizationConnectionRemoved: "organization.connection.removed", - GroupCreated: "group.created", - GroupUpdated: "group.updated", - GroupDeleted: "group.deleted", - GroupMemberAdded: "group.member.added", - GroupMemberDeleted: "group.member.deleted", + OrganizationUpdated: "organization.updated", + UserCreated: "user.created", + UserDeleted: "user.deleted", + UserUpdated: "user.updated", } as const; export type EventStreamDeliveryEventTypeEnum = (typeof EventStreamDeliveryEventTypeEnum)[keyof typeof EventStreamDeliveryEventTypeEnum]; @@ -10590,24 +10711,28 @@ export interface EventStreamEventBridgeResponseContent { } export const EventStreamEventTypeEnum = { - UserCreated: "user.created", - UserDeleted: "user.deleted", - UserUpdated: "user.updated", + GroupCreated: "group.created", + GroupDeleted: "group.deleted", + GroupMemberAdded: "group.member.added", + GroupMemberDeleted: "group.member.deleted", + GroupRoleAssigned: "group.role.assigned", + GroupRoleDeleted: "group.role.deleted", + GroupUpdated: "group.updated", + OrganizationConnectionAdded: "organization.connection.added", + OrganizationConnectionRemoved: "organization.connection.removed", + OrganizationConnectionUpdated: "organization.connection.updated", OrganizationCreated: "organization.created", - OrganizationUpdated: "organization.updated", OrganizationDeleted: "organization.deleted", + OrganizationGroupRoleAssigned: "organization.group.role.assigned", + OrganizationGroupRoleDeleted: "organization.group.role.deleted", OrganizationMemberAdded: "organization.member.added", OrganizationMemberDeleted: "organization.member.deleted", OrganizationMemberRoleAssigned: "organization.member.role.assigned", OrganizationMemberRoleDeleted: "organization.member.role.deleted", - OrganizationConnectionAdded: "organization.connection.added", - OrganizationConnectionUpdated: "organization.connection.updated", - OrganizationConnectionRemoved: "organization.connection.removed", - GroupCreated: "group.created", - GroupUpdated: "group.updated", - GroupDeleted: "group.deleted", - GroupMemberAdded: "group.member.added", - GroupMemberDeleted: "group.member.deleted", + OrganizationUpdated: "organization.updated", + UserCreated: "user.created", + UserDeleted: "user.deleted", + UserUpdated: "user.updated", } as const; export type EventStreamEventTypeEnum = (typeof EventStreamEventTypeEnum)[keyof typeof EventStreamEventTypeEnum]; @@ -10632,24 +10757,28 @@ export interface EventStreamSubscription { /** The type of event this test event represents. */ export const EventStreamTestEventTypeEnum = { - UserCreated: "user.created", - UserDeleted: "user.deleted", - UserUpdated: "user.updated", + GroupCreated: "group.created", + GroupDeleted: "group.deleted", + GroupMemberAdded: "group.member.added", + GroupMemberDeleted: "group.member.deleted", + GroupRoleAssigned: "group.role.assigned", + GroupRoleDeleted: "group.role.deleted", + GroupUpdated: "group.updated", + OrganizationConnectionAdded: "organization.connection.added", + OrganizationConnectionRemoved: "organization.connection.removed", + OrganizationConnectionUpdated: "organization.connection.updated", OrganizationCreated: "organization.created", - OrganizationUpdated: "organization.updated", OrganizationDeleted: "organization.deleted", + OrganizationGroupRoleAssigned: "organization.group.role.assigned", + OrganizationGroupRoleDeleted: "organization.group.role.deleted", OrganizationMemberAdded: "organization.member.added", OrganizationMemberDeleted: "organization.member.deleted", OrganizationMemberRoleAssigned: "organization.member.role.assigned", OrganizationMemberRoleDeleted: "organization.member.role.deleted", - OrganizationConnectionAdded: "organization.connection.added", - OrganizationConnectionUpdated: "organization.connection.updated", - OrganizationConnectionRemoved: "organization.connection.removed", - GroupCreated: "group.created", - GroupUpdated: "group.updated", - GroupDeleted: "group.deleted", - GroupMemberAdded: "group.member.added", - GroupMemberDeleted: "group.member.deleted", + OrganizationUpdated: "organization.updated", + UserCreated: "user.created", + UserDeleted: "user.deleted", + UserUpdated: "user.updated", } as const; export type EventStreamTestEventTypeEnum = (typeof EventStreamTestEventTypeEnum)[keyof typeof EventStreamTestEventTypeEnum]; @@ -14543,6 +14672,8 @@ export interface GetClientGrantResponseContent { organization_usage?: Management.ClientGrantOrganizationUsageEnum | undefined; /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ allow_any_organization?: boolean | undefined; + /** Applies this client grant as the default for all clients in the specified group. The only accepted value is `third_party_clients`, which applies the grant to all third-party clients. Per-client grants for the same audience take precedence. Mutually exclusive with `client_id`. */ + default_for?: Management.ClientGrantDefaultForEnum | undefined; /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ is_system?: boolean | undefined; subject_type?: Management.ClientGrantSubjectTypeEnum | undefined; @@ -14639,6 +14770,9 @@ export interface GetClientResponseContent { par_request_expiry?: (number | null) | undefined; token_quota?: Management.TokenQuota | undefined; express_configuration?: Management.ExpressConfiguration | undefined; + my_organization_configuration?: Management.ClientMyOrganizationResponseConfiguration | undefined; + third_party_security_mode?: Management.ClientThirdPartySecurityModeEnum | undefined; + redirection_policy?: Management.ClientRedirectionPolicyEnum | undefined; /** The identifier of the resource server that this client is linked to. */ resource_server_identifier?: string | undefined; async_approval_notification_channels?: @@ -15642,10 +15776,15 @@ export interface GetTenantSettingsResponseContent { */ skip_non_verifiable_callback_uri_confirmation_prompt?: (boolean | null) | undefined; resource_parameter_profile?: Management.TenantSettingsResourceParameterProfile | undefined; + /** Whether the authorization server supports retrieving client metadata from a client_id URL. */ + client_id_metadata_document_supported?: boolean | undefined; /** Whether Phone Consolidated Experience is enabled for this tenant. */ phone_consolidated_experience?: boolean | undefined; /** Whether Auth0 Guide (AI-powered assistance) is enabled for this tenant. */ enable_ai_guide?: boolean | undefined; + dynamic_client_registration_security_mode?: + | Management.TenantSettingsDynamicClientRegistrationSecurityMode + | undefined; } export interface GetTokenExchangeProfileResponseContent { @@ -16528,6 +16667,13 @@ export interface ListSelfServiceProfilesPaginatedResponseContent { self_service_profiles?: Management.SelfServiceProfile[] | undefined; } +export interface ListSynchronizedGroupsResponseContent { + /** Array of Google Workspace group ids configured for synchronization. */ + groups: Management.SynchronizedGroupPayload[]; + /** The cursor to be used as the "from" query parameter for the next page of results. */ + next?: string | undefined; +} + export interface ListTokenExchangeProfileResponseContent { /** Opaque identifier for use with the from query parameter for the next page of results.
This identifier is valid for 24 hours. */ next?: string | undefined; @@ -17310,7 +17456,6 @@ export type NetworkAclActionRedirectEnum = boolean; export interface NetworkAclMatch { asns?: number[] | undefined; - auth0_managed?: string[] | undefined; geo_country_codes?: string[] | undefined; geo_subdivision_codes?: string[] | undefined; ipv4_cidrs?: Management.NetworkAclMatchIpv4Cidr[] | undefined; @@ -18447,6 +18592,9 @@ export interface RotateClientSecretResponseContent { par_request_expiry?: (number | null) | undefined; token_quota?: Management.TokenQuota | undefined; express_configuration?: Management.ExpressConfiguration | undefined; + my_organization_configuration?: Management.ClientMyOrganizationResponseConfiguration | undefined; + third_party_security_mode?: Management.ClientThirdPartySecurityModeEnum | undefined; + redirection_policy?: Management.ClientRedirectionPolicyEnum | undefined; /** The identifier of the resource server that this client is linked to. */ resource_server_identifier?: string | undefined; async_approval_notification_channels?: @@ -19382,9 +19530,15 @@ export interface SuspiciousIpThrottlingStage { export const SynchronizeGroupsEnum = { All: "all", Off: "off", + Selected: "selected", } as const; export type SynchronizeGroupsEnum = (typeof SynchronizeGroupsEnum)[keyof typeof SynchronizeGroupsEnum]; +export interface SynchronizedGroupPayload { + /** Google Workspace Directory group ID. */ + id: string; +} + /** * Settings related to OIDC RP-initiated Logout */ @@ -19410,6 +19564,14 @@ export const TenantSettingsDeviceFlowCharset = { export type TenantSettingsDeviceFlowCharset = (typeof TenantSettingsDeviceFlowCharset)[keyof typeof TenantSettingsDeviceFlowCharset]; +/** Sets the `third_party_security_mode` assigned to clients created via Dynamic Client Registration. `strict` applies enhanced security controls. `permissive` preserves pre-existing behavior and is only available to tenants with prior third-party client usage. */ +export const TenantSettingsDynamicClientRegistrationSecurityMode = { + Strict: "strict", + Permissive: "permissive", +} as const; +export type TenantSettingsDynamicClientRegistrationSecurityMode = + (typeof TenantSettingsDynamicClientRegistrationSecurityMode)[keyof typeof TenantSettingsDynamicClientRegistrationSecurityMode]; + /** * Error page customization. */ @@ -19932,6 +20094,8 @@ export interface UpdateClientGrantResponseContent { organization_usage?: Management.ClientGrantOrganizationUsageEnum | undefined; /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ allow_any_organization?: boolean | undefined; + /** Applies this client grant as the default for all clients in the specified group. The only accepted value is `third_party_clients`, which applies the grant to all third-party clients. Per-client grants for the same audience take precedence. Mutually exclusive with `client_id`. */ + default_for?: Management.ClientGrantDefaultForEnum | undefined; /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ is_system?: boolean | undefined; subject_type?: Management.ClientGrantSubjectTypeEnum | undefined; @@ -20028,6 +20192,9 @@ export interface UpdateClientResponseContent { par_request_expiry?: (number | null) | undefined; token_quota?: Management.TokenQuota | undefined; express_configuration?: Management.ExpressConfiguration | undefined; + my_organization_configuration?: Management.ClientMyOrganizationResponseConfiguration | undefined; + third_party_security_mode?: Management.ClientThirdPartySecurityModeEnum | undefined; + redirection_policy?: Management.ClientRedirectionPolicyEnum | undefined; /** The identifier of the resource server that this client is linked to. */ resource_server_identifier?: string | undefined; async_approval_notification_channels?: @@ -20070,6 +20237,7 @@ export interface UpdateConnectionOptions { password_no_personal_info?: (Management.ConnectionPasswordNoPersonalInfoOptions | null) | undefined; password_dictionary?: (Management.ConnectionPasswordDictionaryOptions | null) | undefined; api_enable_users?: boolean | undefined; + api_enable_groups?: boolean | undefined; basic_profile?: boolean | undefined; ext_admin?: boolean | undefined; ext_is_suspended?: boolean | undefined; @@ -21091,10 +21259,15 @@ export interface UpdateTenantSettingsResponseContent { */ skip_non_verifiable_callback_uri_confirmation_prompt?: (boolean | null) | undefined; resource_parameter_profile?: Management.TenantSettingsResourceParameterProfile | undefined; + /** Whether the authorization server supports retrieving client metadata from a client_id URL. */ + client_id_metadata_document_supported?: boolean | undefined; /** Whether Phone Consolidated Experience is enabled for this tenant. */ phone_consolidated_experience?: boolean | undefined; /** Whether Auth0 Guide (AI-powered assistance) is enabled for this tenant. */ enable_ai_guide?: boolean | undefined; + dynamic_client_registration_security_mode?: + | Management.TenantSettingsDynamicClientRegistrationSecurityMode + | undefined; } export interface UpdateTokenQuota { diff --git a/src/management/tests/wire/clientGrants.test.ts b/src/management/tests/wire/clientGrants.test.ts index b6a844ea2e..7f86bb9710 100644 --- a/src/management/tests/wire/clientGrants.test.ts +++ b/src/management/tests/wire/clientGrants.test.ts @@ -19,6 +19,7 @@ describe("ClientGrantsClient", () => { scope: ["scope"], organization_usage: "deny", allow_any_organization: true, + default_for: "third_party_clients", is_system: true, subject_type: "client", authorization_details_types: ["authorization_details_types"], @@ -43,6 +44,7 @@ describe("ClientGrantsClient", () => { client_id: "client_id", allow_any_organization: true, subject_type: "client", + default_for: "third_party_clients", }); expect(expected.client_grants).toEqual(page.data); @@ -101,6 +103,7 @@ describe("ClientGrantsClient", () => { scope: ["scope"], organization_usage: "deny", allow_any_organization: true, + default_for: "third_party_clients", is_system: true, subject_type: "client", authorization_details_types: ["authorization_details_types"], @@ -265,6 +268,7 @@ describe("ClientGrantsClient", () => { scope: ["scope"], organization_usage: "deny", allow_any_organization: true, + default_for: "third_party_clients", is_system: true, subject_type: "client", authorization_details_types: ["authorization_details_types"], @@ -426,6 +430,7 @@ describe("ClientGrantsClient", () => { scope: ["scope"], organization_usage: "deny", allow_any_organization: true, + default_for: "third_party_clients", is_system: true, subject_type: "client", authorization_details_types: ["authorization_details_types"], diff --git a/src/management/tests/wire/clients.test.ts b/src/management/tests/wire/clients.test.ts index 28f51811b9..7794093e45 100644 --- a/src/management/tests/wire/clients.test.ts +++ b/src/management/tests/wire/clients.test.ts @@ -65,6 +65,12 @@ describe("ClientsClient", () => { okta_oin_client_id: "okta_oin_client_id", admin_login_domain: "admin_login_domain", }, + my_organization_configuration: { + allowed_strategies: ["pingfederate"], + connection_deletion_behavior: "allow", + }, + third_party_security_mode: "strict", + redirection_policy: "allow_always", resource_server_identifier: "resource_server_identifier", async_approval_notification_channels: ["guardian-push"], external_metadata_type: "cimd", @@ -371,6 +377,16 @@ describe("ClientsClient", () => { admin_login_domain: "admin_login_domain", oin_submission_id: "oin_submission_id", }, + my_organization_configuration: { + connection_profile_id: "connection_profile_id", + user_attribute_profile_id: "user_attribute_profile_id", + allowed_strategies: ["pingfederate"], + connection_deletion_behavior: "allow", + invitation_landing_client_id: "invitation_landing_client_id", + allowed_roles: ["allowed_roles"], + }, + third_party_security_mode: "strict", + redirection_policy: "allow_always", resource_server_identifier: "resource_server_identifier", async_approval_notification_channels: ["guardian-push"], external_metadata_type: "cimd", @@ -993,6 +1009,16 @@ describe("ClientsClient", () => { admin_login_domain: "admin_login_domain", oin_submission_id: "oin_submission_id", }, + my_organization_configuration: { + connection_profile_id: "connection_profile_id", + user_attribute_profile_id: "user_attribute_profile_id", + allowed_strategies: ["pingfederate"], + connection_deletion_behavior: "allow", + invitation_landing_client_id: "invitation_landing_client_id", + allowed_roles: ["allowed_roles"], + }, + third_party_security_mode: "strict", + redirection_policy: "allow_always", resource_server_identifier: "resource_server_identifier", async_approval_notification_channels: ["guardian-push"], external_metadata_type: "cimd", @@ -1329,6 +1355,16 @@ describe("ClientsClient", () => { admin_login_domain: "admin_login_domain", oin_submission_id: "oin_submission_id", }, + my_organization_configuration: { + connection_profile_id: "connection_profile_id", + user_attribute_profile_id: "user_attribute_profile_id", + allowed_strategies: ["pingfederate"], + connection_deletion_behavior: "allow", + invitation_landing_client_id: "invitation_landing_client_id", + allowed_roles: ["allowed_roles"], + }, + third_party_security_mode: "strict", + redirection_policy: "allow_always", resource_server_identifier: "resource_server_identifier", async_approval_notification_channels: ["guardian-push"], external_metadata_type: "cimd", @@ -1642,6 +1678,16 @@ describe("ClientsClient", () => { admin_login_domain: "admin_login_domain", oin_submission_id: "oin_submission_id", }, + my_organization_configuration: { + connection_profile_id: "connection_profile_id", + user_attribute_profile_id: "user_attribute_profile_id", + allowed_strategies: ["pingfederate"], + connection_deletion_behavior: "allow", + invitation_landing_client_id: "invitation_landing_client_id", + allowed_roles: ["allowed_roles"], + }, + third_party_security_mode: "strict", + redirection_policy: "allow_always", resource_server_identifier: "resource_server_identifier", async_approval_notification_channels: ["guardian-push"], external_metadata_type: "cimd", diff --git a/src/management/tests/wire/connections/directoryProvisioning.test.ts b/src/management/tests/wire/connections/directoryProvisioning.test.ts index d8095fa163..341362252d 100644 --- a/src/management/tests/wire/connections/directoryProvisioning.test.ts +++ b/src/management/tests/wire/connections/directoryProvisioning.test.ts @@ -735,4 +735,322 @@ describe("DirectoryProvisioningClient", () => { return await client.connections.directoryProvisioning.getDefaultMapping("id"); }).rejects.toThrow(Management.TooManyRequestsError); }); + + test("listSynchronizedGroups (1)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { groups: [{ id: "id" }], next: "next" }; + + server + .mockEndpoint({ once: false }) + .get("/connections/id/directory-provisioning/synchronized-groups") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const expected = rawResponseBody; + const page = await client.connections.directoryProvisioning.listSynchronizedGroups("id", { + from: "from", + take: 1, + }); + + expect(expected.groups).toEqual(page.data); + expect(page.hasNextPage()).toBe(true); + const nextPage = await page.getNextPage(); + expect(expected.groups).toEqual(nextPage.data); + }); + + test("listSynchronizedGroups (2)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .get("/connections/id/directory-provisioning/synchronized-groups") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.listSynchronizedGroups("id"); + }).rejects.toThrow(Management.BadRequestError); + }); + + test("listSynchronizedGroups (3)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .get("/connections/id/directory-provisioning/synchronized-groups") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.listSynchronizedGroups("id"); + }).rejects.toThrow(Management.UnauthorizedError); + }); + + test("listSynchronizedGroups (4)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .get("/connections/id/directory-provisioning/synchronized-groups") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.listSynchronizedGroups("id"); + }).rejects.toThrow(Management.ForbiddenError); + }); + + test("listSynchronizedGroups (5)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .get("/connections/id/directory-provisioning/synchronized-groups") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.listSynchronizedGroups("id"); + }).rejects.toThrow(Management.NotFoundError); + }); + + test("listSynchronizedGroups (6)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .get("/connections/id/directory-provisioning/synchronized-groups") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.listSynchronizedGroups("id"); + }).rejects.toThrow(Management.TooManyRequestsError); + }); + + test("set (1)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { groups: [{ id: "id" }] }; + + server + .mockEndpoint() + .put("/connections/id/directory-provisioning/synchronized-groups") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .build(); + + const response = await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "id", + }, + ], + }); + expect(response).toEqual(undefined); + }); + + test("set (2)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { groups: [{ id: "x" }, { id: "x" }] }; + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .put("/connections/id/directory-provisioning/synchronized-groups") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "x", + }, + { + id: "x", + }, + ], + }); + }).rejects.toThrow(Management.BadRequestError); + }); + + test("set (3)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { groups: [{ id: "x" }, { id: "x" }] }; + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .put("/connections/id/directory-provisioning/synchronized-groups") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "x", + }, + { + id: "x", + }, + ], + }); + }).rejects.toThrow(Management.UnauthorizedError); + }); + + test("set (4)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { groups: [{ id: "x" }, { id: "x" }] }; + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .put("/connections/id/directory-provisioning/synchronized-groups") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "x", + }, + { + id: "x", + }, + ], + }); + }).rejects.toThrow(Management.ForbiddenError); + }); + + test("set (5)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { groups: [{ id: "x" }, { id: "x" }] }; + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .put("/connections/id/directory-provisioning/synchronized-groups") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "x", + }, + { + id: "x", + }, + ], + }); + }).rejects.toThrow(Management.NotFoundError); + }); + + test("set (6)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { groups: [{ id: "x" }, { id: "x" }] }; + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .put("/connections/id/directory-provisioning/synchronized-groups") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(409) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "x", + }, + { + id: "x", + }, + ], + }); + }).rejects.toThrow(Management.ConflictError); + }); + + test("set (7)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { groups: [{ id: "x" }, { id: "x" }] }; + const rawResponseBody = { key: "value" }; + + server + .mockEndpoint() + .put("/connections/id/directory-provisioning/synchronized-groups") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.connections.directoryProvisioning.set("id", { + groups: [ + { + id: "x", + }, + { + id: "x", + }, + ], + }); + }).rejects.toThrow(Management.TooManyRequestsError); + }); }); diff --git a/src/management/tests/wire/eventStreams.test.ts b/src/management/tests/wire/eventStreams.test.ts index 7158402c93..1749eb1464 100644 --- a/src/management/tests/wire/eventStreams.test.ts +++ b/src/management/tests/wire/eventStreams.test.ts @@ -629,12 +629,12 @@ describe("EventStreamsClient", () => { test("test (1)", async () => { const server = mockServerPool.createServer(); const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); - const rawRequestBody = { event_type: "user.created" }; + const rawRequestBody = { event_type: "group.created" }; const rawResponseBody = { id: "id", event_stream_id: "event_stream_id", status: "failed", - event_type: "user.created", + event_type: "group.created", attempts: [{ status: "failed", timestamp: "2024-01-15T09:30:00Z", error_message: "error_message" }], event: { id: "id", @@ -656,7 +656,7 @@ describe("EventStreamsClient", () => { .build(); const response = await client.eventStreams.test("id", { - event_type: "user.created", + event_type: "group.created", }); expect(response).toEqual(rawResponseBody); }); @@ -664,7 +664,7 @@ describe("EventStreamsClient", () => { test("test (2)", async () => { const server = mockServerPool.createServer(); const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); - const rawRequestBody = { event_type: "user.created" }; + const rawRequestBody = { event_type: "group.created" }; const rawResponseBody = { key: "value" }; server @@ -678,7 +678,7 @@ describe("EventStreamsClient", () => { await expect(async () => { return await client.eventStreams.test("id", { - event_type: "user.created", + event_type: "group.created", }); }).rejects.toThrow(Management.UnauthorizedError); }); @@ -686,7 +686,7 @@ describe("EventStreamsClient", () => { test("test (3)", async () => { const server = mockServerPool.createServer(); const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); - const rawRequestBody = { event_type: "user.created" }; + const rawRequestBody = { event_type: "group.created" }; const rawResponseBody = { key: "value" }; server @@ -700,7 +700,7 @@ describe("EventStreamsClient", () => { await expect(async () => { return await client.eventStreams.test("id", { - event_type: "user.created", + event_type: "group.created", }); }).rejects.toThrow(Management.ForbiddenError); }); @@ -708,7 +708,7 @@ describe("EventStreamsClient", () => { test("test (4)", async () => { const server = mockServerPool.createServer(); const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); - const rawRequestBody = { event_type: "user.created" }; + const rawRequestBody = { event_type: "group.created" }; const rawResponseBody = { key: "value" }; server @@ -722,7 +722,7 @@ describe("EventStreamsClient", () => { await expect(async () => { return await client.eventStreams.test("id", { - event_type: "user.created", + event_type: "group.created", }); }).rejects.toThrow(Management.TooManyRequestsError); }); diff --git a/src/management/tests/wire/eventStreams/deliveries.test.ts b/src/management/tests/wire/eventStreams/deliveries.test.ts index 8df4675ba2..18192f09fe 100644 --- a/src/management/tests/wire/eventStreams/deliveries.test.ts +++ b/src/management/tests/wire/eventStreams/deliveries.test.ts @@ -14,7 +14,7 @@ describe("DeliveriesClient", () => { id: "id", event_stream_id: "event_stream_id", status: "failed", - event_type: "user.created", + event_type: "group.created", attempts: [{ status: "failed", timestamp: "2024-01-15T09:30:00Z" }], event: { id: "id", @@ -149,7 +149,7 @@ describe("DeliveriesClient", () => { id: "id", event_stream_id: "event_stream_id", status: "failed", - event_type: "user.created", + event_type: "group.created", attempts: [{ status: "failed", timestamp: "2024-01-15T09:30:00Z", error_message: "error_message" }], event: { id: "id", diff --git a/src/management/tests/wire/eventStreams/redeliveries.test.ts b/src/management/tests/wire/eventStreams/redeliveries.test.ts index 426ca48a7c..7beac42c10 100644 --- a/src/management/tests/wire/eventStreams/redeliveries.test.ts +++ b/src/management/tests/wire/eventStreams/redeliveries.test.ts @@ -13,7 +13,7 @@ describe("RedeliveriesClient", () => { date_from: "2024-01-15T09:30:00Z", date_to: "2024-01-15T09:30:00Z", statuses: ["failed"], - event_types: ["user.created"], + event_types: ["group.created"], }; server diff --git a/src/management/tests/wire/networkAcls.test.ts b/src/management/tests/wire/networkAcls.test.ts index 7718e3c5fe..08217a078e 100644 --- a/src/management/tests/wire/networkAcls.test.ts +++ b/src/management/tests/wire/networkAcls.test.ts @@ -316,7 +316,6 @@ describe("NetworkAclsClient", () => { action: { block: true, allow: true, log: true, redirect: true, redirect_uri: "redirect_uri" }, match: { asns: [1], - auth0_managed: ["auth0_managed"], geo_country_codes: ["geo_country_codes"], geo_subdivision_codes: ["geo_subdivision_codes"], ipv4_cidrs: ["ipv4_cidrs"], @@ -330,7 +329,6 @@ describe("NetworkAclsClient", () => { }, not_match: { asns: [1], - auth0_managed: ["auth0_managed"], geo_country_codes: ["geo_country_codes"], geo_subdivision_codes: ["geo_subdivision_codes"], ipv4_cidrs: ["ipv4_cidrs"], @@ -419,7 +417,6 @@ describe("NetworkAclsClient", () => { action: { block: true, allow: true, log: true, redirect: true, redirect_uri: "redirect_uri" }, match: { asns: [1], - auth0_managed: ["auth0_managed"], geo_country_codes: ["geo_country_codes"], geo_subdivision_codes: ["geo_subdivision_codes"], ipv4_cidrs: ["ipv4_cidrs"], @@ -433,7 +430,6 @@ describe("NetworkAclsClient", () => { }, not_match: { asns: [1], - auth0_managed: ["auth0_managed"], geo_country_codes: ["geo_country_codes"], geo_subdivision_codes: ["geo_subdivision_codes"], ipv4_cidrs: ["ipv4_cidrs"], @@ -724,7 +720,6 @@ describe("NetworkAclsClient", () => { action: { block: true, allow: true, log: true, redirect: true, redirect_uri: "redirect_uri" }, match: { asns: [1], - auth0_managed: ["auth0_managed"], geo_country_codes: ["geo_country_codes"], geo_subdivision_codes: ["geo_subdivision_codes"], ipv4_cidrs: ["ipv4_cidrs"], @@ -738,7 +733,6 @@ describe("NetworkAclsClient", () => { }, not_match: { asns: [1], - auth0_managed: ["auth0_managed"], geo_country_codes: ["geo_country_codes"], geo_subdivision_codes: ["geo_subdivision_codes"], ipv4_cidrs: ["ipv4_cidrs"], diff --git a/src/management/tests/wire/tenants/settings.test.ts b/src/management/tests/wire/tenants/settings.test.ts index cbb568d6ec..1688a63954 100644 --- a/src/management/tests/wire/tenants/settings.test.ts +++ b/src/management/tests/wire/tenants/settings.test.ts @@ -73,8 +73,10 @@ describe("SettingsClient", () => { authorization_response_iss_parameter_supported: true, skip_non_verifiable_callback_uri_confirmation_prompt: true, resource_parameter_profile: "audience", + client_id_metadata_document_supported: true, phone_consolidated_experience: true, enable_ai_guide: true, + dynamic_client_registration_security_mode: "strict", }; server.mockEndpoint().get("/tenants/settings").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -206,8 +208,10 @@ describe("SettingsClient", () => { authorization_response_iss_parameter_supported: true, skip_non_verifiable_callback_uri_confirmation_prompt: true, resource_parameter_profile: "audience", + client_id_metadata_document_supported: true, phone_consolidated_experience: true, enable_ai_guide: true, + dynamic_client_registration_security_mode: "strict", }; server diff --git a/src/management/tests/wire/users/connectedAccounts.test.ts b/src/management/tests/wire/users/connectedAccounts.test.ts index 3311fbc63e..238138ab1c 100644 --- a/src/management/tests/wire/users/connectedAccounts.test.ts +++ b/src/management/tests/wire/users/connectedAccounts.test.ts @@ -20,6 +20,7 @@ describe("ConnectedAccountsClient", () => { scopes: ["scopes"], created_at: "2024-01-15T09:30:00Z", expires_at: "2024-01-15T09:30:00Z", + organization_id: "organization_id", }, ], next: "next", diff --git a/yarn.lock b/yarn.lock index 7b7531135b..40ab19d764 100644 --- a/yarn.lock +++ b/yarn.lock @@ -435,9 +435,9 @@ resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + version "0.1.6" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.6.tgz#8dc9afa2ac1506cb1a58f89940f1c124446c8df3" + integrity sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw== "@jest/console@^29.7.0": version "29.7.0" @@ -899,11 +899,11 @@ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/node@*": - version "25.5.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.5.2.tgz#94861e32f9ffd8de10b52bbec403465c84fff762" - integrity sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg== + version "25.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.6.0.tgz#4e09bad9b469871f2d0f68140198cbd714f4edca" + integrity sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ== dependencies: - undici-types "~7.18.0" + undici-types "~7.19.0" "@types/node@^18.19.70": version "18.19.130" @@ -945,99 +945,99 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^8.38.0": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.1.tgz#cb53038b83d165ca0ef96d67d875efbd56c50fa8" - integrity sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ== + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.2.tgz#a6882a6a328e1259cff259fdb03184245ef06191" + integrity sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw== dependencies: "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.58.1" - "@typescript-eslint/type-utils" "8.58.1" - "@typescript-eslint/utils" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" + "@typescript-eslint/scope-manager" "8.58.2" + "@typescript-eslint/type-utils" "8.58.2" + "@typescript-eslint/utils" "8.58.2" + "@typescript-eslint/visitor-keys" "8.58.2" ignore "^7.0.5" natural-compare "^1.4.0" ts-api-utils "^2.5.0" "@typescript-eslint/parser@^8.38.0": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.58.1.tgz#0943eca522ac408bcdd649882c3d95b10ff00f62" - integrity sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw== - dependencies: - "@typescript-eslint/scope-manager" "8.58.1" - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/typescript-estree" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.58.2.tgz#b267545e4bd515d896fe1f3a5b6f334fa6aa0026" + integrity sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg== + dependencies: + "@typescript-eslint/scope-manager" "8.58.2" + "@typescript-eslint/types" "8.58.2" + "@typescript-eslint/typescript-estree" "8.58.2" + "@typescript-eslint/visitor-keys" "8.58.2" debug "^4.4.3" -"@typescript-eslint/project-service@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.58.1.tgz#c78781b1ca1ec1e7bc6522efba89318c6d249feb" - integrity sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g== +"@typescript-eslint/project-service@8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.58.2.tgz#8c980249100e21b87baba0ca10880fdf893e0a8e" + integrity sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.58.1" - "@typescript-eslint/types" "^8.58.1" + "@typescript-eslint/tsconfig-utils" "^8.58.2" + "@typescript-eslint/types" "^8.58.2" debug "^4.4.3" -"@typescript-eslint/scope-manager@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.58.1.tgz#35168f561bab4e3fd10dd6b03e8b83c157479211" - integrity sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w== +"@typescript-eslint/scope-manager@8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.58.2.tgz#aa73784d78f117940e83f71705af07ba695cd60c" + integrity sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q== dependencies: - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" + "@typescript-eslint/types" "8.58.2" + "@typescript-eslint/visitor-keys" "8.58.2" -"@typescript-eslint/tsconfig-utils@8.58.1", "@typescript-eslint/tsconfig-utils@^8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.1.tgz#eb16792c579300c7bfb3c74b0f5e1dfbb0a2454d" - integrity sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw== +"@typescript-eslint/tsconfig-utils@8.58.2", "@typescript-eslint/tsconfig-utils@^8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.2.tgz#fa13f96432c9348bf87f6f44826def585fad7bca" + integrity sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A== -"@typescript-eslint/type-utils@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.58.1.tgz#b21085a233087bde94c92ba6f5b4dfb77ca56730" - integrity sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w== +"@typescript-eslint/type-utils@8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.58.2.tgz#024eb1dd597f8a34cb22d8d9ab32da857bc9a817" + integrity sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg== dependencies: - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/typescript-estree" "8.58.1" - "@typescript-eslint/utils" "8.58.1" + "@typescript-eslint/types" "8.58.2" + "@typescript-eslint/typescript-estree" "8.58.2" + "@typescript-eslint/utils" "8.58.2" debug "^4.4.3" ts-api-utils "^2.5.0" -"@typescript-eslint/types@8.58.1", "@typescript-eslint/types@^8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.58.1.tgz#9dfb4723fcd2b13737d8b03d941354cf73190313" - integrity sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw== +"@typescript-eslint/types@8.58.2", "@typescript-eslint/types@^8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.58.2.tgz#3ab8051de0f19a46ddefb0749d0f7d82974bd57c" + integrity sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ== -"@typescript-eslint/typescript-estree@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.1.tgz#8230cc9628d2cffef101e298c62807c4b9bf2fe9" - integrity sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg== +"@typescript-eslint/typescript-estree@8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.2.tgz#b1beb1f959385b341cc76f0aebbf028e23dfdb8b" + integrity sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw== dependencies: - "@typescript-eslint/project-service" "8.58.1" - "@typescript-eslint/tsconfig-utils" "8.58.1" - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" + "@typescript-eslint/project-service" "8.58.2" + "@typescript-eslint/tsconfig-utils" "8.58.2" + "@typescript-eslint/types" "8.58.2" + "@typescript-eslint/visitor-keys" "8.58.2" debug "^4.4.3" minimatch "^10.2.2" semver "^7.7.3" tinyglobby "^0.2.15" ts-api-utils "^2.5.0" -"@typescript-eslint/utils@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.58.1.tgz#099a327b04ed921e6ee3988cde9ef34bc4b5435a" - integrity sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ== +"@typescript-eslint/utils@8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.58.2.tgz#27165554a02d1ff57d98262fa92060498dabc8b3" + integrity sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA== dependencies: "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.58.1" - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/typescript-estree" "8.58.1" + "@typescript-eslint/scope-manager" "8.58.2" + "@typescript-eslint/types" "8.58.2" + "@typescript-eslint/typescript-estree" "8.58.2" -"@typescript-eslint/visitor-keys@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.1.tgz#7c197533177f1ba9b8249f55f7f685e32bb6f204" - integrity sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ== +"@typescript-eslint/visitor-keys@8.58.2": + version "8.58.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.2.tgz#9ed699eaa9b5720b6b6b6f9c16e6c7d4cd32b276" + integrity sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA== dependencies: - "@typescript-eslint/types" "8.58.1" + "@typescript-eslint/types" "8.58.2" eslint-visitor-keys "^5.0.0" "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": @@ -1396,14 +1396,14 @@ balanced-match@^4.0.2: integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== baseline-browser-mapping@^2.10.12: - version "2.10.16" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.16.tgz#ef80cf218a53f165689a6e32ffffdca1f35d979c" - integrity sha512-Lyf3aK28zpsD1yQMiiHD4RvVb6UdMoo8xzG2XzFIfR9luPzOpcBlAsT/qfB1XWS1bxWT+UtE4WmQgsp297FYOA== + version "2.10.19" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz#7697721c22f94f66195d0c34299b1a91e3299493" + integrity sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g== brace-expansion@^1.1.7: - version "1.1.13" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.13.tgz#d37875c01dc9eff988dd49d112a57cb67b54efe6" - integrity sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w== + version "1.1.14" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.14.tgz#d9de602370d91347cd9ddad1224d4fd701eb348b" + integrity sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -1476,9 +1476,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001782: - version "1.0.30001787" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001787.tgz#fd25c5e42e2d35df5c75eddda00d15d9c0c68f81" - integrity sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg== + version "1.0.30001788" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz#31e97d1bfec332b3f2d7eea7781460c97629b3bf" + integrity sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ== chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" @@ -1703,9 +1703,9 @@ dunder-proto@^1.0.1: gopd "^1.2.0" electron-to-chromium@^1.5.328: - version "1.5.334" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.334.tgz#1e3fdd8d014852104eb8e632e760fb364db7dd0e" - integrity sha512-mgjZAz7Jyx1SRCwEpy9wefDS7GvNPazLthHg8eQMJ76wBdGQQDW33TCrUTvQ4wzpmOrv2zrFoD3oNufMdyMpog== + version "1.5.339" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.339.tgz#d797bf5f222a7f6241a42b43a97bf52ff43947f1" + integrity sha512-Is+0BBHJ4NrdpAYiperrmp53pLywG/yV/6lIMTAnhxvzj/Cmn5Q/ogSHC6AKe7X+8kPLxxFk0cs5oc/3j/fxIg== emittery@^0.13.1: version "0.13.1" @@ -2875,7 +2875,7 @@ json-buffer@3.0.1: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -3077,7 +3077,12 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27: +mime-db@^1.54.0: + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-types@^2.1.12: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -3094,7 +3099,7 @@ mimic-function@^5.0.0: resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== -minimatch@^10.2.2, minimatch@^10.2.4: +minimatch@^10.2.2, minimatch@^10.2.5: version "10.2.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== @@ -3470,10 +3475,11 @@ resolve.exports@^2.0.0: integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== resolve@^1.20.0: - version "1.22.11" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" - integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== + version "1.22.12" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" + integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== dependencies: + es-errors "^1.3.0" is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -3884,15 +3890,15 @@ typedoc-plugin-missing-exports@^4.0.0: integrity sha512-tgrlnwzXbqMP2/3BaZk0atddPsD7UnpCoeQ0cUCtk624gODT1bLYOLBEJLXQyVmbnP8HZCMhHpRiR+rxSdZqhg== typedoc@^0.28.7: - version "0.28.18" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.28.18.tgz#f7578fd9aa3ace83db8cce9bf1e8d41b88ec0b94" - integrity sha512-NTWTUOFRQ9+SGKKTuWKUioUkjxNwtS3JDRPVKZAXGHZy2wCA8bdv2iJiyeePn0xkmK+TCCqZFT0X7+2+FLjngA== + version "0.28.19" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.28.19.tgz#0940c6b98eafae27cba71e57855d593f88a80649" + integrity sha512-wKh+lhdmMFivMlc6vRRcMGXeGEHGU2g8a2CkPTJjJlwRf1iXbimWIPcFolCqe4E0d/FRtGszpIrsp3WLpDB8Pw== dependencies: "@gerrit0/mini-shiki" "^3.23.0" lunr "^2.3.9" markdown-it "^14.1.1" - minimatch "^10.2.4" - yaml "^2.8.2" + minimatch "^10.2.5" + yaml "^2.8.3" typescript@~5.9.3: version "5.9.3" @@ -3910,24 +3916,24 @@ uglify-js@^3.1.4: integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== undici-types@^6.15.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.24.1.tgz#dd6f30c5ec79f810dcb8d9731ada045afe4b9a6f" - integrity sha512-JT8B3M7LYQCRZVfB1OZZIqzi1OMeDHcTpRJpHPNvHFmye4wT03uBM8vw73NqXKfihrpGzSsWlBfUcOglX3oBeA== + version "6.25.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.25.0.tgz#c877d2a67eaae8e588ac93e4f31fa25d16975df9" + integrity sha512-vOw74RVVYFtnooUkZPxsY1GuuNNupSrCcANIAaDekpZ/Dp1sBuLLl5n2UCKpzxgmOwD66S4Jj24MrhmcDG+0vw== undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~7.18.0: - version "7.18.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" - integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== +undici-types@~7.19.0: + version "7.19.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.19.2.tgz#1b67fc26d0f157a0cba3a58a5b5c1e2276b8ba2a" + integrity sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg== undici@^7.12.0: - version "7.24.7" - resolved "https://registry.yarnpkg.com/undici/-/undici-7.24.7.tgz#af9535341bbe80625ca403a02418477a5c6a8760" - integrity sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ== + version "7.25.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-7.25.0.tgz#7d72fc429a0421769ca2966fd07cac875c85b781" + integrity sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ== universalify@^0.2.0: version "0.2.0" @@ -4009,9 +4015,9 @@ webpack-sources@^3.3.4: integrity sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q== webpack@^5.105.4: - version "5.106.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.106.0.tgz#ee374da5573eef1e47b2650d6be8e40fb928d697" - integrity sha512-Pkx5joZ9RrdgO5LBkyX1L2ZAJeK/Taz3vqZ9CbcP0wS5LEMx5QkKsEwLl29QJfihZ+DKRBFldzy1O30pJ1MDpA== + version "5.106.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.106.2.tgz#ca8174b4fd80f055cc5a45fcc5577d6db76c8ac5" + integrity sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" @@ -4029,9 +4035,8 @@ webpack@^5.105.4: events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" loader-runner "^4.3.1" - mime-types "^2.1.27" + mime-db "^1.54.0" neo-async "^2.6.2" schema-utils "^4.3.3" tapable "^2.3.0" @@ -4141,7 +4146,7 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yaml@^2.8.2: +yaml@^2.8.2, yaml@^2.8.3: version "2.8.3" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.3.tgz#a0d6bd2efb3dd03c59370223701834e60409bd7d" integrity sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==