@meistrari/auth-core 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +79 -5
- package/dist/index.d.ts +79 -5
- package/dist/index.mjs +93 -5
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -651,12 +651,22 @@ type ListCandidateOrganizationsResponse = Array<FullOrganization & {
|
|
|
651
651
|
*/
|
|
652
652
|
lastUsed?: boolean;
|
|
653
653
|
}>;
|
|
654
|
+
/**
|
|
655
|
+
* Whether an application refuses sign-ins, and the notice shown to users who
|
|
656
|
+
* try to sign in through it.
|
|
657
|
+
*/
|
|
658
|
+
type ApplicationDeprecation = {
|
|
659
|
+
/** Whether the application is disabled. A disabled application refuses every sign-in. */
|
|
660
|
+
disabled: boolean;
|
|
661
|
+
/** Plain-text notice written by an admin, or `null` when the application is enabled or has none. */
|
|
662
|
+
deprecationNotice: string | null;
|
|
663
|
+
};
|
|
654
664
|
/**
|
|
655
665
|
* Public application context used to preserve continuity during auth redirects.
|
|
656
666
|
*/
|
|
657
667
|
type ApplicationAuthContextResponse = {
|
|
658
668
|
/** Minimal application identity shown in the hosted auth flow. */
|
|
659
|
-
application: Pick<Application, 'id' | 'name' | 'config'
|
|
669
|
+
application: Pick<Application, 'id' | 'name' | 'config'> & ApplicationDeprecation;
|
|
660
670
|
/**
|
|
661
671
|
* Login methods usable for this application: the environment allowlist
|
|
662
672
|
* intersected with the application's accepted AMRs.
|
|
@@ -757,7 +767,7 @@ type DeviceContextApplication = {
|
|
|
757
767
|
name: string;
|
|
758
768
|
/** Human-readable description, or `null` if not set. */
|
|
759
769
|
description: string | null;
|
|
760
|
-
};
|
|
770
|
+
} & ApplicationDeprecation;
|
|
761
771
|
/**
|
|
762
772
|
* Context information for a pending device authorization request.
|
|
763
773
|
*/
|
|
@@ -768,7 +778,7 @@ type DeviceAuthorizationContextResponse = {
|
|
|
768
778
|
};
|
|
769
779
|
/** The target application the requester wants access to. */
|
|
770
780
|
target: DeviceContextApplication;
|
|
771
|
-
/** Organizations the user can authorize the device for. */
|
|
781
|
+
/** Organizations the user can authorize the device for. Empty when the requester or the target is disabled. */
|
|
772
782
|
organizations: FullOrganization[];
|
|
773
783
|
/** Organization pre-selected by the requester, if any. */
|
|
774
784
|
preselectedOrganizationId: string | null;
|
|
@@ -842,6 +852,37 @@ declare class ApplicationSessionAssuranceError extends ApplicationError {
|
|
|
842
852
|
readonly validStepUps: SessionAssuranceRequiredPayload['validStepUps'];
|
|
843
853
|
constructor(payload?: SessionAssuranceRequiredPayload | null, options?: ErrorOptions);
|
|
844
854
|
}
|
|
855
|
+
/**
|
|
856
|
+
* Payload the API attaches to an `application_disabled` error.
|
|
857
|
+
*/
|
|
858
|
+
type ApplicationDisabledPayload = {
|
|
859
|
+
applicationId: string;
|
|
860
|
+
applicationName: string;
|
|
861
|
+
deprecationNotice: string | null;
|
|
862
|
+
};
|
|
863
|
+
/**
|
|
864
|
+
* Reads the {@link ApplicationDisabledPayload} from an error returned by the
|
|
865
|
+
* API, following `cause` chains. Returns `null` when the error is not an
|
|
866
|
+
* `application_disabled` error.
|
|
867
|
+
*
|
|
868
|
+
* @param error - The caught error value
|
|
869
|
+
*/
|
|
870
|
+
declare function parseApplicationDisabledPayload(error: unknown): ApplicationDisabledPayload | null;
|
|
871
|
+
/**
|
|
872
|
+
* Thrown when the application was disabled by an admin. Every sign-in, token
|
|
873
|
+
* exchange and refresh through it fails until it is enabled again, so clients
|
|
874
|
+
* must not retry or start a new flow.
|
|
875
|
+
*
|
|
876
|
+
* The message is the application's deprecation notice when it has one.
|
|
877
|
+
*/
|
|
878
|
+
declare class ApplicationDisabledError extends ApplicationError {
|
|
879
|
+
readonly applicationId: string | null;
|
|
880
|
+
readonly applicationName: string | null;
|
|
881
|
+
readonly deprecationNotice: string | null;
|
|
882
|
+
constructor(payload?: ApplicationDisabledPayload | null, options?: ErrorOptions & {
|
|
883
|
+
status?: number;
|
|
884
|
+
});
|
|
885
|
+
}
|
|
845
886
|
/**
|
|
846
887
|
* Thrown when an operation requires an authenticated user but no session exists.
|
|
847
888
|
*/
|
|
@@ -993,6 +1034,7 @@ declare class ApplicationService {
|
|
|
993
1034
|
* @throws {DeviceCodeExpiredError} The device code has expired
|
|
994
1035
|
* @throws {DeviceTransientServerError} Transient server error — safe to retry
|
|
995
1036
|
* @throws {ApplicationSessionAssuranceError} Assurance policy changed or is no longer met — start a new flow
|
|
1037
|
+
* @throws {ApplicationDisabledError} The requester or target application is disabled — stop polling
|
|
996
1038
|
*/
|
|
997
1039
|
exchangeDeviceCodeForTokens(deviceCode: string): Promise<CompleteAuthorizationFlowResponse>;
|
|
998
1040
|
/**
|
|
@@ -1017,6 +1059,7 @@ declare class ApplicationService {
|
|
|
1017
1059
|
*
|
|
1018
1060
|
* @param refreshToken - The refresh token to use for the authentication token refresh
|
|
1019
1061
|
* @throws {RefreshTokenExpiredError} When the refresh token has expired or is invalid
|
|
1062
|
+
* @throws {ApplicationDisabledError} When the application has been disabled
|
|
1020
1063
|
* @throws {ApplicationError} For other API errors
|
|
1021
1064
|
*/
|
|
1022
1065
|
refreshAccessToken(refreshToken: string): Promise<CompleteAuthorizationFlowResponse>;
|
|
@@ -4516,6 +4559,13 @@ type CreateAdminApplicationSecretOptions = {
|
|
|
4516
4559
|
/** Optional display name for the secret. */
|
|
4517
4560
|
name?: string;
|
|
4518
4561
|
};
|
|
4562
|
+
/**
|
|
4563
|
+
* Options accepted when disabling an application.
|
|
4564
|
+
*/
|
|
4565
|
+
type DisableAdminApplicationOptions = {
|
|
4566
|
+
/** Plain-text notice shown to users who try to sign in through the application. Blank or `null` clears it. */
|
|
4567
|
+
deprecationNotice?: string | null;
|
|
4568
|
+
};
|
|
4519
4569
|
/**
|
|
4520
4570
|
* Client secret metadata returned by application management endpoints.
|
|
4521
4571
|
*/
|
|
@@ -5044,6 +5094,12 @@ type AdminApplication = {
|
|
|
5044
5094
|
config: ApplicationConfig | null;
|
|
5045
5095
|
serviceAccountUserId: string | null;
|
|
5046
5096
|
serviceAccountUser?: AdminApplicationIdentity | null;
|
|
5097
|
+
/** When the application was disabled, or `null` while it is enabled. A disabled application refuses every sign-in. */
|
|
5098
|
+
disabledAt: string | null;
|
|
5099
|
+
/** ID of the admin who disabled the application, or `null`. */
|
|
5100
|
+
disabledBy: string | null;
|
|
5101
|
+
/** Plain-text notice shown to users who try to sign in through the disabled application. */
|
|
5102
|
+
deprecationNotice: string | null;
|
|
5047
5103
|
createdBy: string;
|
|
5048
5104
|
updatedBy: string;
|
|
5049
5105
|
createdAt: string;
|
|
@@ -5216,6 +5272,24 @@ declare class AdminService {
|
|
|
5216
5272
|
* @returns The updated application
|
|
5217
5273
|
*/
|
|
5218
5274
|
updateApplication(applicationId: string, options: CreateAdminApplicationOptions): Promise<AdminApplicationRecord>;
|
|
5275
|
+
/**
|
|
5276
|
+
* Disables an application. Sign-ins, token exchanges, refreshes and
|
|
5277
|
+
* client-credentials exchanges through it fail with `application_disabled`,
|
|
5278
|
+
* which carries the deprecation notice. Disabling an already disabled
|
|
5279
|
+
* application replaces its notice.
|
|
5280
|
+
*
|
|
5281
|
+
* @param applicationId - ID of the application to disable
|
|
5282
|
+
* @param options - Optional deprecation notice
|
|
5283
|
+
* @returns The updated application
|
|
5284
|
+
*/
|
|
5285
|
+
disableApplication(applicationId: string, options?: DisableAdminApplicationOptions): Promise<AdminApplicationRecord>;
|
|
5286
|
+
/**
|
|
5287
|
+
* Enables a disabled application and clears its deprecation notice.
|
|
5288
|
+
*
|
|
5289
|
+
* @param applicationId - ID of the application to enable
|
|
5290
|
+
* @returns The updated application
|
|
5291
|
+
*/
|
|
5292
|
+
enableApplication(applicationId: string): Promise<AdminApplicationRecord>;
|
|
5219
5293
|
/** Lists the role catalog for an application. */
|
|
5220
5294
|
listApplicationRoles(applicationId: string): Promise<AdminApplicationRole[]>;
|
|
5221
5295
|
/** Creates an application-scoped role definition. */
|
|
@@ -6602,5 +6676,5 @@ declare function validateToken(token: string, apiUrl: string): Promise<boolean>;
|
|
|
6602
6676
|
*/
|
|
6603
6677
|
declare function extractTokenPayload(token: string): DecodedJWTPayload;
|
|
6604
6678
|
|
|
6605
|
-
export { AAL, AALBrand, AALs, ACR, ACRBrand, ACRs, AMR, AMRBrand, AMRs, ApiKeyMetadata, ApplicationConfig, ApplicationError, ApplicationSessionAssuranceConfig, ApplicationSessionAssuranceError, ApplicationTokenStorage, AuthClient, AuthMethod, AuthMethodBrand, AuthMethods, AuthorizationFlowError, DEFAULT_APPLICATION_CONFIG, DEFAULT_JWT_ASSURANCE, DEFAULT_SESSION_ASSURANCE_CONFIG, DeviceAccessDeniedError, DeviceAuthorizationPendingError, DeviceAuthorizationSlowDownError, DeviceCodeExpiredError, DeviceTransientServerError, EmailOTPService, EmailRequired, InvalidCallbackURL, InvalidSocialProvider, JWTPayload, JWTPayloadAssurance, JWTPayloadUser, JWTPayloadWorkspace, LOGIN_METHODS, OAuthBeginStepUpResponse, OAuthCompleteStepUpResponse, OAuthStepUpProvider, RefreshTokenExpiredError, Roles, SENSITIVE_ACTION_ASSURANCE_POLICY, STEP_UP_MAX_AGE_SECONDS, SendOtpResponse, SessionAssurancePolicy, SessionAssuranceRequiredError, SessionAssuranceRequiredPayload, SessionAssuranceResponse, SessionAssuranceService, StepUpOption, UserNotLoggedInError, ac, assuranceFields, canStepUpWithAmr, createAPIClient, extractTokenPayload, getAalRank, invitationAdditionalFields, isAssuranceSufficientForPolicy, isSessionAssuranceSufficient, isTokenExpired, memberAdditionalFields, mergeStepUpAssurance, normalizeAmr, organizationAdditionalFields, parseSessionAssuranceRequiredPayload, rolesAccessControl, sessionAssurancePluginClient, userAdditionalFields, validateToken };
|
|
6606
|
-
export type { APIClient, AcceptInvitationResult, AdminApplication, AdminApplicationEntitlement, AdminApplicationEntitlementRecord, AdminApplicationIdentity, AdminApplicationMember, AdminApplicationMemberOrganization, AdminApplicationMemberRecord, AdminApplicationOrganization, AdminApplicationRecord, AdminApplicationRole, AdminApplicationSecret, AdminEntitlementRule, AdminEntitlementRuleType, AdminEntitlementWithRules, AdminMember, AdminOrganization, AdminOrganizationApplication, AdminOrganizationMember, AdminOrganizationMemberApplication, AdminOrganizationMemberRecord, AdminOrganizationMemberTeam, AdminOrganizationSummary, AdminOrganizationTeam, AdminOrganizationTeamRecord, AdminUser, AdminUserAccess, AdminUserAccessApplication, AdminUserAccessOrganization, AdminUserAccessTeam, AdminUserInvitation, AdminUserOrganization, ApiKey, ApiKeyWithoutSecret, Application, ApplicationAuthContextResponse, ApplicationRole, ApplicationScopedMember, ApplicationTokenStorageOptions, AssuranceFields, BaseOrganization, BeginOAuthStepUpParams, BillingMode, ClientCredentialsGrant, ClientCredentialsTokenResponse, CompleteAuthorizationFlowResponse, CreateAdminApplicationEntitlementOptions, CreateAdminApplicationOptions, CreateAdminApplicationRoleOptions, CreateAdminApplicationSecretOptions, CreateAdminOrganizationOptions, CreateAdminOrganizationTeamOptions, CreateApiKeyPayload, CreateTeamPayload, CreatedAdminApplicationSecret, DecodedJWTPayload, DeleteAdminOrganizationTeamOptions, DeviceAuthorizationActionResponse, DeviceAuthorizationContextResponse, DeviceAuthorizationResponse, DeviceContextApplication, EmailOTPSignInOptions, FullOrganization, FullOrganizationMember, GetAdminOrganizationOptions, GetAdminOrganizationsSummaryOptions, GetTokenOptions, Invitation, InvitationPasswordSetupResult, InvitationSignupStatus, InviteAdminOrganizationUsersOptions, InviteAdminOrganizationUsersResult, InviteUserToOrganizationOptions, JWTPayloadData, ListAdminApplicationMembersOptions, ListAdminApplicationMembersResult, ListAdminApplicationsOptions, ListAdminApplicationsResult, ListAdminOrganizationMembersOptions, ListAdminOrganizationMembersResult, ListAdminOrganizationTeamsOptions, ListAdminOrganizationTeamsResult, ListAdminOrganizationsOptions, ListAdminOrganizationsResult, ListAdminUsersOptions, ListAdminUsersResult, ListCandidateOrganizationsInclude, ListCandidateOrganizationsOptions, ListCandidateOrganizationsResponse, ListMembersOptions, ListOrganizationsOptions, ListOrganizationsWithRoleOptions, LoginMethod, LoginMethodsResponse, Member, ExtendedOrganization as Organization, OrganizationSettings, OrganizationWithRole, RemoveAdminMemberOptions, RemoveUserFromOrganizationOptions, Role, SendVerificationOTPOptions, Session, SessionAssuranceActions, SessionData, SetAdminEntitlementRulesOptions, SetAdminUserApplicationRoleOptions, SetAdminUserPasswordOptions, SetAdminUserTeamOptions, SignInWithEmailAndPasswordOptions, SignInWithSsoOptions, SocialSignInOptions, StartAuthorizationFlowResponse, Strict, Team, TeamMember, TeamMembersResponse, UpdateAdminApplicationRoleOptions, UpdateAdminEntitlementOptions, UpdateAdminMemberRoleOptions, UpdateAdminOrganizationOptions, UpdateAdminOrganizationTeamOptions, UpdateApiKeyPayload, UpdateMemberRoleOptions, UpdateOrganizationPayload, UpdateTeamPayload, User, UserProfile, WhoAmIInclude, WhoAmIOptions, WhoAmIOrganization, WhoAmIResponse };
|
|
6679
|
+
export { AAL, AALBrand, AALs, ACR, ACRBrand, ACRs, AMR, AMRBrand, AMRs, ApiKeyMetadata, ApplicationConfig, ApplicationDisabledError, ApplicationError, ApplicationSessionAssuranceConfig, ApplicationSessionAssuranceError, ApplicationTokenStorage, AuthClient, AuthMethod, AuthMethodBrand, AuthMethods, AuthorizationFlowError, DEFAULT_APPLICATION_CONFIG, DEFAULT_JWT_ASSURANCE, DEFAULT_SESSION_ASSURANCE_CONFIG, DeviceAccessDeniedError, DeviceAuthorizationPendingError, DeviceAuthorizationSlowDownError, DeviceCodeExpiredError, DeviceTransientServerError, EmailOTPService, EmailRequired, InvalidCallbackURL, InvalidSocialProvider, JWTPayload, JWTPayloadAssurance, JWTPayloadUser, JWTPayloadWorkspace, LOGIN_METHODS, OAuthBeginStepUpResponse, OAuthCompleteStepUpResponse, OAuthStepUpProvider, RefreshTokenExpiredError, Roles, SENSITIVE_ACTION_ASSURANCE_POLICY, STEP_UP_MAX_AGE_SECONDS, SendOtpResponse, SessionAssurancePolicy, SessionAssuranceRequiredError, SessionAssuranceRequiredPayload, SessionAssuranceResponse, SessionAssuranceService, StepUpOption, UserNotLoggedInError, ac, assuranceFields, canStepUpWithAmr, createAPIClient, extractTokenPayload, getAalRank, invitationAdditionalFields, isAssuranceSufficientForPolicy, isSessionAssuranceSufficient, isTokenExpired, memberAdditionalFields, mergeStepUpAssurance, normalizeAmr, organizationAdditionalFields, parseApplicationDisabledPayload, parseSessionAssuranceRequiredPayload, rolesAccessControl, sessionAssurancePluginClient, userAdditionalFields, validateToken };
|
|
6680
|
+
export type { APIClient, AcceptInvitationResult, AdminApplication, AdminApplicationEntitlement, AdminApplicationEntitlementRecord, AdminApplicationIdentity, AdminApplicationMember, AdminApplicationMemberOrganization, AdminApplicationMemberRecord, AdminApplicationOrganization, AdminApplicationRecord, AdminApplicationRole, AdminApplicationSecret, AdminEntitlementRule, AdminEntitlementRuleType, AdminEntitlementWithRules, AdminMember, AdminOrganization, AdminOrganizationApplication, AdminOrganizationMember, AdminOrganizationMemberApplication, AdminOrganizationMemberRecord, AdminOrganizationMemberTeam, AdminOrganizationSummary, AdminOrganizationTeam, AdminOrganizationTeamRecord, AdminUser, AdminUserAccess, AdminUserAccessApplication, AdminUserAccessOrganization, AdminUserAccessTeam, AdminUserInvitation, AdminUserOrganization, ApiKey, ApiKeyWithoutSecret, Application, ApplicationAuthContextResponse, ApplicationDeprecation, ApplicationDisabledPayload, ApplicationRole, ApplicationScopedMember, ApplicationTokenStorageOptions, AssuranceFields, BaseOrganization, BeginOAuthStepUpParams, BillingMode, ClientCredentialsGrant, ClientCredentialsTokenResponse, CompleteAuthorizationFlowResponse, CreateAdminApplicationEntitlementOptions, CreateAdminApplicationOptions, CreateAdminApplicationRoleOptions, CreateAdminApplicationSecretOptions, CreateAdminOrganizationOptions, CreateAdminOrganizationTeamOptions, CreateApiKeyPayload, CreateTeamPayload, CreatedAdminApplicationSecret, DecodedJWTPayload, DeleteAdminOrganizationTeamOptions, DeviceAuthorizationActionResponse, DeviceAuthorizationContextResponse, DeviceAuthorizationResponse, DeviceContextApplication, DisableAdminApplicationOptions, EmailOTPSignInOptions, FullOrganization, FullOrganizationMember, GetAdminOrganizationOptions, GetAdminOrganizationsSummaryOptions, GetTokenOptions, Invitation, InvitationPasswordSetupResult, InvitationSignupStatus, InviteAdminOrganizationUsersOptions, InviteAdminOrganizationUsersResult, InviteUserToOrganizationOptions, JWTPayloadData, ListAdminApplicationMembersOptions, ListAdminApplicationMembersResult, ListAdminApplicationsOptions, ListAdminApplicationsResult, ListAdminOrganizationMembersOptions, ListAdminOrganizationMembersResult, ListAdminOrganizationTeamsOptions, ListAdminOrganizationTeamsResult, ListAdminOrganizationsOptions, ListAdminOrganizationsResult, ListAdminUsersOptions, ListAdminUsersResult, ListCandidateOrganizationsInclude, ListCandidateOrganizationsOptions, ListCandidateOrganizationsResponse, ListMembersOptions, ListOrganizationsOptions, ListOrganizationsWithRoleOptions, LoginMethod, LoginMethodsResponse, Member, ExtendedOrganization as Organization, OrganizationSettings, OrganizationWithRole, RemoveAdminMemberOptions, RemoveUserFromOrganizationOptions, Role, SendVerificationOTPOptions, Session, SessionAssuranceActions, SessionData, SetAdminEntitlementRulesOptions, SetAdminUserApplicationRoleOptions, SetAdminUserPasswordOptions, SetAdminUserTeamOptions, SignInWithEmailAndPasswordOptions, SignInWithSsoOptions, SocialSignInOptions, StartAuthorizationFlowResponse, Strict, Team, TeamMember, TeamMembersResponse, UpdateAdminApplicationRoleOptions, UpdateAdminEntitlementOptions, UpdateAdminMemberRoleOptions, UpdateAdminOrganizationOptions, UpdateAdminOrganizationTeamOptions, UpdateApiKeyPayload, UpdateMemberRoleOptions, UpdateOrganizationPayload, UpdateTeamPayload, User, UserProfile, WhoAmIInclude, WhoAmIOptions, WhoAmIOrganization, WhoAmIResponse };
|
package/dist/index.d.ts
CHANGED
|
@@ -651,12 +651,22 @@ type ListCandidateOrganizationsResponse = Array<FullOrganization & {
|
|
|
651
651
|
*/
|
|
652
652
|
lastUsed?: boolean;
|
|
653
653
|
}>;
|
|
654
|
+
/**
|
|
655
|
+
* Whether an application refuses sign-ins, and the notice shown to users who
|
|
656
|
+
* try to sign in through it.
|
|
657
|
+
*/
|
|
658
|
+
type ApplicationDeprecation = {
|
|
659
|
+
/** Whether the application is disabled. A disabled application refuses every sign-in. */
|
|
660
|
+
disabled: boolean;
|
|
661
|
+
/** Plain-text notice written by an admin, or `null` when the application is enabled or has none. */
|
|
662
|
+
deprecationNotice: string | null;
|
|
663
|
+
};
|
|
654
664
|
/**
|
|
655
665
|
* Public application context used to preserve continuity during auth redirects.
|
|
656
666
|
*/
|
|
657
667
|
type ApplicationAuthContextResponse = {
|
|
658
668
|
/** Minimal application identity shown in the hosted auth flow. */
|
|
659
|
-
application: Pick<Application, 'id' | 'name' | 'config'
|
|
669
|
+
application: Pick<Application, 'id' | 'name' | 'config'> & ApplicationDeprecation;
|
|
660
670
|
/**
|
|
661
671
|
* Login methods usable for this application: the environment allowlist
|
|
662
672
|
* intersected with the application's accepted AMRs.
|
|
@@ -757,7 +767,7 @@ type DeviceContextApplication = {
|
|
|
757
767
|
name: string;
|
|
758
768
|
/** Human-readable description, or `null` if not set. */
|
|
759
769
|
description: string | null;
|
|
760
|
-
};
|
|
770
|
+
} & ApplicationDeprecation;
|
|
761
771
|
/**
|
|
762
772
|
* Context information for a pending device authorization request.
|
|
763
773
|
*/
|
|
@@ -768,7 +778,7 @@ type DeviceAuthorizationContextResponse = {
|
|
|
768
778
|
};
|
|
769
779
|
/** The target application the requester wants access to. */
|
|
770
780
|
target: DeviceContextApplication;
|
|
771
|
-
/** Organizations the user can authorize the device for. */
|
|
781
|
+
/** Organizations the user can authorize the device for. Empty when the requester or the target is disabled. */
|
|
772
782
|
organizations: FullOrganization[];
|
|
773
783
|
/** Organization pre-selected by the requester, if any. */
|
|
774
784
|
preselectedOrganizationId: string | null;
|
|
@@ -842,6 +852,37 @@ declare class ApplicationSessionAssuranceError extends ApplicationError {
|
|
|
842
852
|
readonly validStepUps: SessionAssuranceRequiredPayload['validStepUps'];
|
|
843
853
|
constructor(payload?: SessionAssuranceRequiredPayload | null, options?: ErrorOptions);
|
|
844
854
|
}
|
|
855
|
+
/**
|
|
856
|
+
* Payload the API attaches to an `application_disabled` error.
|
|
857
|
+
*/
|
|
858
|
+
type ApplicationDisabledPayload = {
|
|
859
|
+
applicationId: string;
|
|
860
|
+
applicationName: string;
|
|
861
|
+
deprecationNotice: string | null;
|
|
862
|
+
};
|
|
863
|
+
/**
|
|
864
|
+
* Reads the {@link ApplicationDisabledPayload} from an error returned by the
|
|
865
|
+
* API, following `cause` chains. Returns `null` when the error is not an
|
|
866
|
+
* `application_disabled` error.
|
|
867
|
+
*
|
|
868
|
+
* @param error - The caught error value
|
|
869
|
+
*/
|
|
870
|
+
declare function parseApplicationDisabledPayload(error: unknown): ApplicationDisabledPayload | null;
|
|
871
|
+
/**
|
|
872
|
+
* Thrown when the application was disabled by an admin. Every sign-in, token
|
|
873
|
+
* exchange and refresh through it fails until it is enabled again, so clients
|
|
874
|
+
* must not retry or start a new flow.
|
|
875
|
+
*
|
|
876
|
+
* The message is the application's deprecation notice when it has one.
|
|
877
|
+
*/
|
|
878
|
+
declare class ApplicationDisabledError extends ApplicationError {
|
|
879
|
+
readonly applicationId: string | null;
|
|
880
|
+
readonly applicationName: string | null;
|
|
881
|
+
readonly deprecationNotice: string | null;
|
|
882
|
+
constructor(payload?: ApplicationDisabledPayload | null, options?: ErrorOptions & {
|
|
883
|
+
status?: number;
|
|
884
|
+
});
|
|
885
|
+
}
|
|
845
886
|
/**
|
|
846
887
|
* Thrown when an operation requires an authenticated user but no session exists.
|
|
847
888
|
*/
|
|
@@ -993,6 +1034,7 @@ declare class ApplicationService {
|
|
|
993
1034
|
* @throws {DeviceCodeExpiredError} The device code has expired
|
|
994
1035
|
* @throws {DeviceTransientServerError} Transient server error — safe to retry
|
|
995
1036
|
* @throws {ApplicationSessionAssuranceError} Assurance policy changed or is no longer met — start a new flow
|
|
1037
|
+
* @throws {ApplicationDisabledError} The requester or target application is disabled — stop polling
|
|
996
1038
|
*/
|
|
997
1039
|
exchangeDeviceCodeForTokens(deviceCode: string): Promise<CompleteAuthorizationFlowResponse>;
|
|
998
1040
|
/**
|
|
@@ -1017,6 +1059,7 @@ declare class ApplicationService {
|
|
|
1017
1059
|
*
|
|
1018
1060
|
* @param refreshToken - The refresh token to use for the authentication token refresh
|
|
1019
1061
|
* @throws {RefreshTokenExpiredError} When the refresh token has expired or is invalid
|
|
1062
|
+
* @throws {ApplicationDisabledError} When the application has been disabled
|
|
1020
1063
|
* @throws {ApplicationError} For other API errors
|
|
1021
1064
|
*/
|
|
1022
1065
|
refreshAccessToken(refreshToken: string): Promise<CompleteAuthorizationFlowResponse>;
|
|
@@ -4516,6 +4559,13 @@ type CreateAdminApplicationSecretOptions = {
|
|
|
4516
4559
|
/** Optional display name for the secret. */
|
|
4517
4560
|
name?: string;
|
|
4518
4561
|
};
|
|
4562
|
+
/**
|
|
4563
|
+
* Options accepted when disabling an application.
|
|
4564
|
+
*/
|
|
4565
|
+
type DisableAdminApplicationOptions = {
|
|
4566
|
+
/** Plain-text notice shown to users who try to sign in through the application. Blank or `null` clears it. */
|
|
4567
|
+
deprecationNotice?: string | null;
|
|
4568
|
+
};
|
|
4519
4569
|
/**
|
|
4520
4570
|
* Client secret metadata returned by application management endpoints.
|
|
4521
4571
|
*/
|
|
@@ -5044,6 +5094,12 @@ type AdminApplication = {
|
|
|
5044
5094
|
config: ApplicationConfig | null;
|
|
5045
5095
|
serviceAccountUserId: string | null;
|
|
5046
5096
|
serviceAccountUser?: AdminApplicationIdentity | null;
|
|
5097
|
+
/** When the application was disabled, or `null` while it is enabled. A disabled application refuses every sign-in. */
|
|
5098
|
+
disabledAt: string | null;
|
|
5099
|
+
/** ID of the admin who disabled the application, or `null`. */
|
|
5100
|
+
disabledBy: string | null;
|
|
5101
|
+
/** Plain-text notice shown to users who try to sign in through the disabled application. */
|
|
5102
|
+
deprecationNotice: string | null;
|
|
5047
5103
|
createdBy: string;
|
|
5048
5104
|
updatedBy: string;
|
|
5049
5105
|
createdAt: string;
|
|
@@ -5216,6 +5272,24 @@ declare class AdminService {
|
|
|
5216
5272
|
* @returns The updated application
|
|
5217
5273
|
*/
|
|
5218
5274
|
updateApplication(applicationId: string, options: CreateAdminApplicationOptions): Promise<AdminApplicationRecord>;
|
|
5275
|
+
/**
|
|
5276
|
+
* Disables an application. Sign-ins, token exchanges, refreshes and
|
|
5277
|
+
* client-credentials exchanges through it fail with `application_disabled`,
|
|
5278
|
+
* which carries the deprecation notice. Disabling an already disabled
|
|
5279
|
+
* application replaces its notice.
|
|
5280
|
+
*
|
|
5281
|
+
* @param applicationId - ID of the application to disable
|
|
5282
|
+
* @param options - Optional deprecation notice
|
|
5283
|
+
* @returns The updated application
|
|
5284
|
+
*/
|
|
5285
|
+
disableApplication(applicationId: string, options?: DisableAdminApplicationOptions): Promise<AdminApplicationRecord>;
|
|
5286
|
+
/**
|
|
5287
|
+
* Enables a disabled application and clears its deprecation notice.
|
|
5288
|
+
*
|
|
5289
|
+
* @param applicationId - ID of the application to enable
|
|
5290
|
+
* @returns The updated application
|
|
5291
|
+
*/
|
|
5292
|
+
enableApplication(applicationId: string): Promise<AdminApplicationRecord>;
|
|
5219
5293
|
/** Lists the role catalog for an application. */
|
|
5220
5294
|
listApplicationRoles(applicationId: string): Promise<AdminApplicationRole[]>;
|
|
5221
5295
|
/** Creates an application-scoped role definition. */
|
|
@@ -6602,5 +6676,5 @@ declare function validateToken(token: string, apiUrl: string): Promise<boolean>;
|
|
|
6602
6676
|
*/
|
|
6603
6677
|
declare function extractTokenPayload(token: string): DecodedJWTPayload;
|
|
6604
6678
|
|
|
6605
|
-
export { AAL, AALBrand, AALs, ACR, ACRBrand, ACRs, AMR, AMRBrand, AMRs, ApiKeyMetadata, ApplicationConfig, ApplicationError, ApplicationSessionAssuranceConfig, ApplicationSessionAssuranceError, ApplicationTokenStorage, AuthClient, AuthMethod, AuthMethodBrand, AuthMethods, AuthorizationFlowError, DEFAULT_APPLICATION_CONFIG, DEFAULT_JWT_ASSURANCE, DEFAULT_SESSION_ASSURANCE_CONFIG, DeviceAccessDeniedError, DeviceAuthorizationPendingError, DeviceAuthorizationSlowDownError, DeviceCodeExpiredError, DeviceTransientServerError, EmailOTPService, EmailRequired, InvalidCallbackURL, InvalidSocialProvider, JWTPayload, JWTPayloadAssurance, JWTPayloadUser, JWTPayloadWorkspace, LOGIN_METHODS, OAuthBeginStepUpResponse, OAuthCompleteStepUpResponse, OAuthStepUpProvider, RefreshTokenExpiredError, Roles, SENSITIVE_ACTION_ASSURANCE_POLICY, STEP_UP_MAX_AGE_SECONDS, SendOtpResponse, SessionAssurancePolicy, SessionAssuranceRequiredError, SessionAssuranceRequiredPayload, SessionAssuranceResponse, SessionAssuranceService, StepUpOption, UserNotLoggedInError, ac, assuranceFields, canStepUpWithAmr, createAPIClient, extractTokenPayload, getAalRank, invitationAdditionalFields, isAssuranceSufficientForPolicy, isSessionAssuranceSufficient, isTokenExpired, memberAdditionalFields, mergeStepUpAssurance, normalizeAmr, organizationAdditionalFields, parseSessionAssuranceRequiredPayload, rolesAccessControl, sessionAssurancePluginClient, userAdditionalFields, validateToken };
|
|
6606
|
-
export type { APIClient, AcceptInvitationResult, AdminApplication, AdminApplicationEntitlement, AdminApplicationEntitlementRecord, AdminApplicationIdentity, AdminApplicationMember, AdminApplicationMemberOrganization, AdminApplicationMemberRecord, AdminApplicationOrganization, AdminApplicationRecord, AdminApplicationRole, AdminApplicationSecret, AdminEntitlementRule, AdminEntitlementRuleType, AdminEntitlementWithRules, AdminMember, AdminOrganization, AdminOrganizationApplication, AdminOrganizationMember, AdminOrganizationMemberApplication, AdminOrganizationMemberRecord, AdminOrganizationMemberTeam, AdminOrganizationSummary, AdminOrganizationTeam, AdminOrganizationTeamRecord, AdminUser, AdminUserAccess, AdminUserAccessApplication, AdminUserAccessOrganization, AdminUserAccessTeam, AdminUserInvitation, AdminUserOrganization, ApiKey, ApiKeyWithoutSecret, Application, ApplicationAuthContextResponse, ApplicationRole, ApplicationScopedMember, ApplicationTokenStorageOptions, AssuranceFields, BaseOrganization, BeginOAuthStepUpParams, BillingMode, ClientCredentialsGrant, ClientCredentialsTokenResponse, CompleteAuthorizationFlowResponse, CreateAdminApplicationEntitlementOptions, CreateAdminApplicationOptions, CreateAdminApplicationRoleOptions, CreateAdminApplicationSecretOptions, CreateAdminOrganizationOptions, CreateAdminOrganizationTeamOptions, CreateApiKeyPayload, CreateTeamPayload, CreatedAdminApplicationSecret, DecodedJWTPayload, DeleteAdminOrganizationTeamOptions, DeviceAuthorizationActionResponse, DeviceAuthorizationContextResponse, DeviceAuthorizationResponse, DeviceContextApplication, EmailOTPSignInOptions, FullOrganization, FullOrganizationMember, GetAdminOrganizationOptions, GetAdminOrganizationsSummaryOptions, GetTokenOptions, Invitation, InvitationPasswordSetupResult, InvitationSignupStatus, InviteAdminOrganizationUsersOptions, InviteAdminOrganizationUsersResult, InviteUserToOrganizationOptions, JWTPayloadData, ListAdminApplicationMembersOptions, ListAdminApplicationMembersResult, ListAdminApplicationsOptions, ListAdminApplicationsResult, ListAdminOrganizationMembersOptions, ListAdminOrganizationMembersResult, ListAdminOrganizationTeamsOptions, ListAdminOrganizationTeamsResult, ListAdminOrganizationsOptions, ListAdminOrganizationsResult, ListAdminUsersOptions, ListAdminUsersResult, ListCandidateOrganizationsInclude, ListCandidateOrganizationsOptions, ListCandidateOrganizationsResponse, ListMembersOptions, ListOrganizationsOptions, ListOrganizationsWithRoleOptions, LoginMethod, LoginMethodsResponse, Member, ExtendedOrganization as Organization, OrganizationSettings, OrganizationWithRole, RemoveAdminMemberOptions, RemoveUserFromOrganizationOptions, Role, SendVerificationOTPOptions, Session, SessionAssuranceActions, SessionData, SetAdminEntitlementRulesOptions, SetAdminUserApplicationRoleOptions, SetAdminUserPasswordOptions, SetAdminUserTeamOptions, SignInWithEmailAndPasswordOptions, SignInWithSsoOptions, SocialSignInOptions, StartAuthorizationFlowResponse, Strict, Team, TeamMember, TeamMembersResponse, UpdateAdminApplicationRoleOptions, UpdateAdminEntitlementOptions, UpdateAdminMemberRoleOptions, UpdateAdminOrganizationOptions, UpdateAdminOrganizationTeamOptions, UpdateApiKeyPayload, UpdateMemberRoleOptions, UpdateOrganizationPayload, UpdateTeamPayload, User, UserProfile, WhoAmIInclude, WhoAmIOptions, WhoAmIOrganization, WhoAmIResponse };
|
|
6679
|
+
export { AAL, AALBrand, AALs, ACR, ACRBrand, ACRs, AMR, AMRBrand, AMRs, ApiKeyMetadata, ApplicationConfig, ApplicationDisabledError, ApplicationError, ApplicationSessionAssuranceConfig, ApplicationSessionAssuranceError, ApplicationTokenStorage, AuthClient, AuthMethod, AuthMethodBrand, AuthMethods, AuthorizationFlowError, DEFAULT_APPLICATION_CONFIG, DEFAULT_JWT_ASSURANCE, DEFAULT_SESSION_ASSURANCE_CONFIG, DeviceAccessDeniedError, DeviceAuthorizationPendingError, DeviceAuthorizationSlowDownError, DeviceCodeExpiredError, DeviceTransientServerError, EmailOTPService, EmailRequired, InvalidCallbackURL, InvalidSocialProvider, JWTPayload, JWTPayloadAssurance, JWTPayloadUser, JWTPayloadWorkspace, LOGIN_METHODS, OAuthBeginStepUpResponse, OAuthCompleteStepUpResponse, OAuthStepUpProvider, RefreshTokenExpiredError, Roles, SENSITIVE_ACTION_ASSURANCE_POLICY, STEP_UP_MAX_AGE_SECONDS, SendOtpResponse, SessionAssurancePolicy, SessionAssuranceRequiredError, SessionAssuranceRequiredPayload, SessionAssuranceResponse, SessionAssuranceService, StepUpOption, UserNotLoggedInError, ac, assuranceFields, canStepUpWithAmr, createAPIClient, extractTokenPayload, getAalRank, invitationAdditionalFields, isAssuranceSufficientForPolicy, isSessionAssuranceSufficient, isTokenExpired, memberAdditionalFields, mergeStepUpAssurance, normalizeAmr, organizationAdditionalFields, parseApplicationDisabledPayload, parseSessionAssuranceRequiredPayload, rolesAccessControl, sessionAssurancePluginClient, userAdditionalFields, validateToken };
|
|
6680
|
+
export type { APIClient, AcceptInvitationResult, AdminApplication, AdminApplicationEntitlement, AdminApplicationEntitlementRecord, AdminApplicationIdentity, AdminApplicationMember, AdminApplicationMemberOrganization, AdminApplicationMemberRecord, AdminApplicationOrganization, AdminApplicationRecord, AdminApplicationRole, AdminApplicationSecret, AdminEntitlementRule, AdminEntitlementRuleType, AdminEntitlementWithRules, AdminMember, AdminOrganization, AdminOrganizationApplication, AdminOrganizationMember, AdminOrganizationMemberApplication, AdminOrganizationMemberRecord, AdminOrganizationMemberTeam, AdminOrganizationSummary, AdminOrganizationTeam, AdminOrganizationTeamRecord, AdminUser, AdminUserAccess, AdminUserAccessApplication, AdminUserAccessOrganization, AdminUserAccessTeam, AdminUserInvitation, AdminUserOrganization, ApiKey, ApiKeyWithoutSecret, Application, ApplicationAuthContextResponse, ApplicationDeprecation, ApplicationDisabledPayload, ApplicationRole, ApplicationScopedMember, ApplicationTokenStorageOptions, AssuranceFields, BaseOrganization, BeginOAuthStepUpParams, BillingMode, ClientCredentialsGrant, ClientCredentialsTokenResponse, CompleteAuthorizationFlowResponse, CreateAdminApplicationEntitlementOptions, CreateAdminApplicationOptions, CreateAdminApplicationRoleOptions, CreateAdminApplicationSecretOptions, CreateAdminOrganizationOptions, CreateAdminOrganizationTeamOptions, CreateApiKeyPayload, CreateTeamPayload, CreatedAdminApplicationSecret, DecodedJWTPayload, DeleteAdminOrganizationTeamOptions, DeviceAuthorizationActionResponse, DeviceAuthorizationContextResponse, DeviceAuthorizationResponse, DeviceContextApplication, DisableAdminApplicationOptions, EmailOTPSignInOptions, FullOrganization, FullOrganizationMember, GetAdminOrganizationOptions, GetAdminOrganizationsSummaryOptions, GetTokenOptions, Invitation, InvitationPasswordSetupResult, InvitationSignupStatus, InviteAdminOrganizationUsersOptions, InviteAdminOrganizationUsersResult, InviteUserToOrganizationOptions, JWTPayloadData, ListAdminApplicationMembersOptions, ListAdminApplicationMembersResult, ListAdminApplicationsOptions, ListAdminApplicationsResult, ListAdminOrganizationMembersOptions, ListAdminOrganizationMembersResult, ListAdminOrganizationTeamsOptions, ListAdminOrganizationTeamsResult, ListAdminOrganizationsOptions, ListAdminOrganizationsResult, ListAdminUsersOptions, ListAdminUsersResult, ListCandidateOrganizationsInclude, ListCandidateOrganizationsOptions, ListCandidateOrganizationsResponse, ListMembersOptions, ListOrganizationsOptions, ListOrganizationsWithRoleOptions, LoginMethod, LoginMethodsResponse, Member, ExtendedOrganization as Organization, OrganizationSettings, OrganizationWithRole, RemoveAdminMemberOptions, RemoveUserFromOrganizationOptions, Role, SendVerificationOTPOptions, Session, SessionAssuranceActions, SessionData, SetAdminEntitlementRulesOptions, SetAdminUserApplicationRoleOptions, SetAdminUserPasswordOptions, SetAdminUserTeamOptions, SignInWithEmailAndPasswordOptions, SignInWithSsoOptions, SocialSignInOptions, StartAuthorizationFlowResponse, Strict, Team, TeamMember, TeamMembersResponse, UpdateAdminApplicationRoleOptions, UpdateAdminEntitlementOptions, UpdateAdminMemberRoleOptions, UpdateAdminOrganizationOptions, UpdateAdminOrganizationTeamOptions, UpdateApiKeyPayload, UpdateMemberRoleOptions, UpdateOrganizationPayload, UpdateTeamPayload, User, UserProfile, WhoAmIInclude, WhoAmIOptions, WhoAmIOrganization, WhoAmIResponse };
|
package/dist/index.mjs
CHANGED
|
@@ -21,7 +21,7 @@ function isTokenExpired(token, expiresInMs) {
|
|
|
21
21
|
return nowInSeconds > expirationTime;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
const version = "3.
|
|
24
|
+
const version = "3.2.0";
|
|
25
25
|
|
|
26
26
|
function parsedEnumValues(schema) {
|
|
27
27
|
return Object.fromEntries(
|
|
@@ -610,6 +610,35 @@ class AdminService {
|
|
|
610
610
|
body: options
|
|
611
611
|
});
|
|
612
612
|
}
|
|
613
|
+
/**
|
|
614
|
+
* Disables an application. Sign-ins, token exchanges, refreshes and
|
|
615
|
+
* client-credentials exchanges through it fail with `application_disabled`,
|
|
616
|
+
* which carries the deprecation notice. Disabling an already disabled
|
|
617
|
+
* application replaces its notice.
|
|
618
|
+
*
|
|
619
|
+
* @param applicationId - ID of the application to disable
|
|
620
|
+
* @param options - Optional deprecation notice
|
|
621
|
+
* @returns The updated application
|
|
622
|
+
*/
|
|
623
|
+
async disableApplication(applicationId, options = {}) {
|
|
624
|
+
return await this.requestApplicationRoute("applications/:applicationId/disable", {
|
|
625
|
+
params: { applicationId },
|
|
626
|
+
method: "POST",
|
|
627
|
+
body: options
|
|
628
|
+
});
|
|
629
|
+
}
|
|
630
|
+
/**
|
|
631
|
+
* Enables a disabled application and clears its deprecation notice.
|
|
632
|
+
*
|
|
633
|
+
* @param applicationId - ID of the application to enable
|
|
634
|
+
* @returns The updated application
|
|
635
|
+
*/
|
|
636
|
+
async enableApplication(applicationId) {
|
|
637
|
+
return await this.requestApplicationRoute("applications/:applicationId/enable", {
|
|
638
|
+
params: { applicationId },
|
|
639
|
+
method: "POST"
|
|
640
|
+
});
|
|
641
|
+
}
|
|
613
642
|
/** Lists the role catalog for an application. */
|
|
614
643
|
async listApplicationRoles(applicationId) {
|
|
615
644
|
return await this.requestApplicationRoute(
|
|
@@ -1202,6 +1231,41 @@ class ApplicationSessionAssuranceError extends ApplicationError {
|
|
|
1202
1231
|
this.validStepUps = payload?.validStepUps ?? [];
|
|
1203
1232
|
}
|
|
1204
1233
|
}
|
|
1234
|
+
function parseApplicationDisabledPayload(error) {
|
|
1235
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1236
|
+
let current = error;
|
|
1237
|
+
while (current && typeof current === "object" && !seen.has(current)) {
|
|
1238
|
+
seen.add(current);
|
|
1239
|
+
const candidate = current;
|
|
1240
|
+
for (const details of [candidate.details, candidate.error?.details]) {
|
|
1241
|
+
if (!details || typeof details !== "object") {
|
|
1242
|
+
continue;
|
|
1243
|
+
}
|
|
1244
|
+
const payload = details;
|
|
1245
|
+
if (payload.code === "application_disabled" && typeof payload.applicationId === "string") {
|
|
1246
|
+
return {
|
|
1247
|
+
applicationId: payload.applicationId,
|
|
1248
|
+
applicationName: typeof payload.applicationName === "string" ? payload.applicationName : "",
|
|
1249
|
+
deprecationNotice: typeof payload.deprecationNotice === "string" ? payload.deprecationNotice : null
|
|
1250
|
+
};
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
current = candidate.cause;
|
|
1254
|
+
}
|
|
1255
|
+
return null;
|
|
1256
|
+
}
|
|
1257
|
+
class ApplicationDisabledError extends ApplicationError {
|
|
1258
|
+
applicationId;
|
|
1259
|
+
applicationName;
|
|
1260
|
+
deprecationNotice;
|
|
1261
|
+
constructor(payload = null, options) {
|
|
1262
|
+
super(payload?.deprecationNotice || `${payload?.applicationName || "The application"} has been disabled`, options);
|
|
1263
|
+
this.code = "APPLICATION_DISABLED";
|
|
1264
|
+
this.applicationId = payload?.applicationId ?? null;
|
|
1265
|
+
this.applicationName = payload?.applicationName || null;
|
|
1266
|
+
this.deprecationNotice = payload?.deprecationNotice ?? null;
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1205
1269
|
class UserNotLoggedInError extends ApplicationError {
|
|
1206
1270
|
constructor(message, options) {
|
|
1207
1271
|
super(message, options);
|
|
@@ -1433,8 +1497,17 @@ function parseErrorMessage(error) {
|
|
|
1433
1497
|
const nested = typeof candidateError.error === "string" ? candidateError.error : candidateError.error?.message;
|
|
1434
1498
|
return candidateError.message ?? nested ?? "Failed to exchange device code for tokens";
|
|
1435
1499
|
}
|
|
1500
|
+
function throwIfApplicationDisabled(error) {
|
|
1501
|
+
const payload = parseApplicationDisabledPayload(error);
|
|
1502
|
+
if (payload) {
|
|
1503
|
+
throw new ApplicationDisabledError(payload, { cause: error });
|
|
1504
|
+
}
|
|
1505
|
+
}
|
|
1436
1506
|
function throwDeviceGrantError(error) {
|
|
1437
1507
|
const code = parseErrorCode(error);
|
|
1508
|
+
if (code === "application_disabled") {
|
|
1509
|
+
throw new ApplicationDisabledError(parseApplicationDisabledPayload(error), { cause: error });
|
|
1510
|
+
}
|
|
1438
1511
|
if (code === "authorization_pending") {
|
|
1439
1512
|
throw new DeviceAuthorizationPendingError({ cause: error });
|
|
1440
1513
|
}
|
|
@@ -1512,6 +1585,7 @@ class ApplicationService {
|
|
|
1512
1585
|
try {
|
|
1513
1586
|
const response = await this.client.applications.startAuthorizationFlow(applicationId, redirectUri, codeChallenge, organizationId);
|
|
1514
1587
|
if (!response.data) {
|
|
1588
|
+
throwIfApplicationDisabled(response.error);
|
|
1515
1589
|
const payload = parseSessionAssuranceRequiredPayload(response.error);
|
|
1516
1590
|
if (payload) {
|
|
1517
1591
|
throw new SessionAssuranceRequiredError(payload, { cause: response.error });
|
|
@@ -1520,9 +1594,10 @@ class ApplicationService {
|
|
|
1520
1594
|
}
|
|
1521
1595
|
return response.data;
|
|
1522
1596
|
} catch (error) {
|
|
1523
|
-
if (error instanceof SessionAssuranceRequiredError) {
|
|
1597
|
+
if (error instanceof SessionAssuranceRequiredError || error instanceof ApplicationDisabledError) {
|
|
1524
1598
|
throw error;
|
|
1525
1599
|
}
|
|
1600
|
+
throwIfApplicationDisabled(error);
|
|
1526
1601
|
const payload = parseSessionAssuranceRequiredPayload(error);
|
|
1527
1602
|
if (payload) {
|
|
1528
1603
|
throw new SessionAssuranceRequiredError(payload, { cause: error });
|
|
@@ -1605,6 +1680,7 @@ class ApplicationService {
|
|
|
1605
1680
|
* @throws {DeviceCodeExpiredError} The device code has expired
|
|
1606
1681
|
* @throws {DeviceTransientServerError} Transient server error — safe to retry
|
|
1607
1682
|
* @throws {ApplicationSessionAssuranceError} Assurance policy changed or is no longer met — start a new flow
|
|
1683
|
+
* @throws {ApplicationDisabledError} The requester or target application is disabled — stop polling
|
|
1608
1684
|
*/
|
|
1609
1685
|
async exchangeDeviceCodeForTokens(deviceCode) {
|
|
1610
1686
|
try {
|
|
@@ -1629,8 +1705,12 @@ class ApplicationService {
|
|
|
1629
1705
|
* @returns A short-lived access token with service-account and organization details
|
|
1630
1706
|
*/
|
|
1631
1707
|
async exchangeClientCredentialsForToken(credentials) {
|
|
1632
|
-
const response = await this.client.applications.exchangeClientCredentialsForToken(credentials)
|
|
1708
|
+
const response = await this.client.applications.exchangeClientCredentialsForToken(credentials).catch((error) => {
|
|
1709
|
+
throwIfApplicationDisabled(error);
|
|
1710
|
+
throw error;
|
|
1711
|
+
});
|
|
1633
1712
|
if (!response.data) {
|
|
1713
|
+
throwIfApplicationDisabled(response.error);
|
|
1634
1714
|
throw new Error("No data returned from the API", { cause: response.error });
|
|
1635
1715
|
}
|
|
1636
1716
|
return response.data;
|
|
@@ -1642,8 +1722,12 @@ class ApplicationService {
|
|
|
1642
1722
|
* @param codeVerifier - The code verifier to use for the authorization flow
|
|
1643
1723
|
*/
|
|
1644
1724
|
async completeAuthorizationFlow(code, codeVerifier) {
|
|
1645
|
-
const response = await this.client.applications.completeAuthorizationFlow(code, codeVerifier)
|
|
1725
|
+
const response = await this.client.applications.completeAuthorizationFlow(code, codeVerifier).catch((error) => {
|
|
1726
|
+
throwIfApplicationDisabled(error);
|
|
1727
|
+
throw error;
|
|
1728
|
+
});
|
|
1646
1729
|
if (!response.data) {
|
|
1730
|
+
throwIfApplicationDisabled(response.error);
|
|
1647
1731
|
throw new Error("No data returned from the API", { cause: response.error });
|
|
1648
1732
|
}
|
|
1649
1733
|
return response.data;
|
|
@@ -1653,11 +1737,15 @@ class ApplicationService {
|
|
|
1653
1737
|
*
|
|
1654
1738
|
* @param refreshToken - The refresh token to use for the authentication token refresh
|
|
1655
1739
|
* @throws {RefreshTokenExpiredError} When the refresh token has expired or is invalid
|
|
1740
|
+
* @throws {ApplicationDisabledError} When the application has been disabled
|
|
1656
1741
|
* @throws {ApplicationError} For other API errors
|
|
1657
1742
|
*/
|
|
1658
1743
|
async refreshAccessToken(refreshToken) {
|
|
1659
1744
|
const handleRefreshError = (error) => {
|
|
1660
1745
|
const status = error?.status;
|
|
1746
|
+
if (parseErrorCode(error) === "application_disabled") {
|
|
1747
|
+
throw new ApplicationDisabledError(parseApplicationDisabledPayload(error), { cause: error, status });
|
|
1748
|
+
}
|
|
1661
1749
|
if (status === 401 || status === 404) {
|
|
1662
1750
|
throw new RefreshTokenExpiredError({ cause: error, status });
|
|
1663
1751
|
}
|
|
@@ -2643,4 +2731,4 @@ function extractTokenPayload(token) {
|
|
|
2643
2731
|
return payload;
|
|
2644
2732
|
}
|
|
2645
2733
|
|
|
2646
|
-
export { AAL, AALBrand, AALs, ACR, ACRBrand, ACRs, AMR, AMRBrand, AMRs, ApiKeyMetadata, ApplicationConfig, ApplicationError, ApplicationSessionAssuranceConfig, ApplicationSessionAssuranceError, ApplicationTokenStorage, AuthClient, AuthMethod, AuthMethodBrand, AuthMethods, AuthorizationFlowError, DEFAULT_APPLICATION_CONFIG, DEFAULT_JWT_ASSURANCE, DEFAULT_SESSION_ASSURANCE_CONFIG, DeviceAccessDeniedError, DeviceAuthorizationPendingError, DeviceAuthorizationSlowDownError, DeviceCodeExpiredError, DeviceTransientServerError, EmailOTPService, EmailRequired, InvalidCallbackURL, InvalidSocialProvider, JWTPayload, JWTPayloadAssurance, JWTPayloadUser, JWTPayloadWorkspace, LOGIN_METHODS, OAuthStepUpProvider, RefreshTokenExpiredError, Roles, SENSITIVE_ACTION_ASSURANCE_POLICY, STEP_UP_MAX_AGE_SECONDS, SessionAssurancePolicy, SessionAssuranceRequiredError, SessionAssuranceRequiredPayload, SessionAssuranceService, StepUpOption, UserNotLoggedInError, ac, assuranceFields, canStepUpWithAmr, extractTokenPayload, getAalRank, invitationAdditionalFields, isAssuranceSufficientForPolicy, isSessionAssuranceSufficient, isTokenExpired, memberAdditionalFields, mergeStepUpAssurance, normalizeAmr, organizationAdditionalFields, parseSessionAssuranceRequiredPayload, rolesAccessControl, sessionAssurancePluginClient, userAdditionalFields, validateToken };
|
|
2734
|
+
export { AAL, AALBrand, AALs, ACR, ACRBrand, ACRs, AMR, AMRBrand, AMRs, ApiKeyMetadata, ApplicationConfig, ApplicationDisabledError, ApplicationError, ApplicationSessionAssuranceConfig, ApplicationSessionAssuranceError, ApplicationTokenStorage, AuthClient, AuthMethod, AuthMethodBrand, AuthMethods, AuthorizationFlowError, DEFAULT_APPLICATION_CONFIG, DEFAULT_JWT_ASSURANCE, DEFAULT_SESSION_ASSURANCE_CONFIG, DeviceAccessDeniedError, DeviceAuthorizationPendingError, DeviceAuthorizationSlowDownError, DeviceCodeExpiredError, DeviceTransientServerError, EmailOTPService, EmailRequired, InvalidCallbackURL, InvalidSocialProvider, JWTPayload, JWTPayloadAssurance, JWTPayloadUser, JWTPayloadWorkspace, LOGIN_METHODS, OAuthStepUpProvider, RefreshTokenExpiredError, Roles, SENSITIVE_ACTION_ASSURANCE_POLICY, STEP_UP_MAX_AGE_SECONDS, SessionAssurancePolicy, SessionAssuranceRequiredError, SessionAssuranceRequiredPayload, SessionAssuranceService, StepUpOption, UserNotLoggedInError, ac, assuranceFields, canStepUpWithAmr, extractTokenPayload, getAalRank, invitationAdditionalFields, isAssuranceSufficientForPolicy, isSessionAssuranceSufficient, isTokenExpired, memberAdditionalFields, mergeStepUpAssurance, normalizeAmr, organizationAdditionalFields, parseApplicationDisabledPayload, parseSessionAssuranceRequiredPayload, rolesAccessControl, sessionAssurancePluginClient, userAdditionalFields, validateToken };
|