@finueva/auth 0.18.1 → 0.19.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/README.md +48 -25
- package/dist/device.d.ts +22 -2
- package/dist/device.js +379 -23
- package/dist/index.d.ts +2 -2
- package/dist/index.js +882 -31
- package/dist/server.d.ts +6 -2
- package/dist/server.js +88 -1
- package/dist/types-BEgD_Js1.d.ts +591 -0
- package/package.json +1 -1
- package/dist/types-CrdIcEJ3.d.ts +0 -351
package/dist/server.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { At as AuthError, B as OrganizationMember, C as DeclineInvitationInput, D as DriveCredential, Dt as UpdateOrganizationTeamDisplayInput, Et as UpdateOrganizationDisplayInput, G as OrganizationTeam, H as OrganizationMemberPage, I as OrganizationDeparture, J as OrganizationTeamPage, K as OrganizationTeamDisplay, L as OrganizationDisplay, M as InvitationDecline, Mt as AuthErrorStatus, Nt as UserApiCredential, O as DriveCredentialInput, Pt as UserApiCredentialInput, Q as PersonalWorkspaceSelection, R as OrganizationInvitation, S as CreatedOrganizationTeam, U as OrganizationPage, V as OrganizationMemberAuthority, W as OrganizationPageInput, Y as OrganizationWorkspaceSelection, b as CreatedOrganization, d as AuthUser, dt as ResentOrganizationInvitation, f as CanceledOrganizationInvitation, i as AuthOrganization, j as InvitationAcceptance, jt as AuthErrorCode, kt as WorkspaceSelection, lt as RemovedOrganizationMember, n as AddedOrganizationTeamMember, ot as ReceivedOrganizationInvitation, q as OrganizationTeamMemberPage, s as AuthSession, st as ReceivedOrganizationInvitationPage, t as AcceptInvitationInput, ut as RemovedOrganizationTeamMember, vt as SocialIdTokenInput, w as DeletedOrganizationTeam, x as CreatedOrganizationMemberInvitation, y as CreateOrganizationMemberInvitationInput, yt as SocialIdTokenProvider, z as OrganizationInvitationPage } from "./types-BEgD_Js1.js";
|
|
2
2
|
//#region src/user-api/verifier.d.ts
|
|
3
3
|
interface UserApiIdentity {
|
|
4
4
|
userId: string;
|
|
@@ -125,6 +125,7 @@ interface ServerSocialIdTokenSession extends AuthSession {
|
|
|
125
125
|
}
|
|
126
126
|
interface FinuevaServerAuth {
|
|
127
127
|
acceptInvitation(input: AcceptInvitationInput): Promise<ServerInvitationAcceptance>;
|
|
128
|
+
declineInvitation(input: DeclineInvitationInput): Promise<InvitationDecline>;
|
|
128
129
|
getSession(): Promise<AuthSession | null>;
|
|
129
130
|
listOrganizations(input?: OrganizationPageInput): Promise<OrganizationPage>;
|
|
130
131
|
getOrganization(organizationId: string): Promise<AuthOrganization>;
|
|
@@ -136,6 +137,9 @@ interface FinuevaServerAuth {
|
|
|
136
137
|
cancelOrganizationInvitation(organizationId: string, invitationId: string, idempotencyKey: string): Promise<CanceledOrganizationInvitation>;
|
|
137
138
|
removeOrganizationMember(organizationId: string, memberId: string, idempotencyKey: string): Promise<RemovedOrganizationMember>;
|
|
138
139
|
leaveOrganization(organizationId: string, idempotencyKey: string): Promise<OrganizationDeparture>;
|
|
140
|
+
addOrganizationTeamMember(organizationId: string, teamId: string, memberId: string, idempotencyKey: string): Promise<AddedOrganizationTeamMember>;
|
|
141
|
+
removeOrganizationTeamMember(organizationId: string, teamId: string, memberId: string, idempotencyKey: string): Promise<RemovedOrganizationTeamMember>;
|
|
142
|
+
deleteOrganizationTeam(organizationId: string, teamId: string, idempotencyKey: string): Promise<DeletedOrganizationTeam>;
|
|
139
143
|
updateOrganizationDisplay(organizationId: string, input: UpdateOrganizationDisplayInput): Promise<OrganizationDisplay>;
|
|
140
144
|
updateOrganizationTeamDisplay(organizationId: string, teamId: string, input: UpdateOrganizationTeamDisplayInput): Promise<OrganizationTeamDisplay>;
|
|
141
145
|
listOrganizationMembers(organizationId: string, input?: OrganizationPageInput): Promise<OrganizationMemberPage>;
|
|
@@ -152,4 +156,4 @@ interface FinuevaServerAuth {
|
|
|
152
156
|
}
|
|
153
157
|
declare function createServerAuth(options: ServerAuthOptions): FinuevaServerAuth;
|
|
154
158
|
//#endregion
|
|
155
|
-
export { type AcceptInvitationInput, AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type AuthSession, type AuthUser, type CanceledOrganizationInvitation, type CreateOrganizationMemberInvitationInput, type CreatedOrganization, type CreatedOrganizationMemberInvitation, type CreatedOrganizationTeam, type DriveCredential, type DriveCredentialInput, type DriveProvisioningAuthOptions, type DriveProvisioningCredential, type DriveRecipient, type DriveRecipientAuthOptions, type FinuevaDriveProvisioningAuth, type FinuevaDriveRecipientAuth, type FinuevaIdentityResolverAuth, type FinuevaMembershipResolverAuth, FinuevaServerAuth, type IdentityResolverAuthOptions, type InvitationAcceptance, type MembershipResolverAuthOptions, type OrganizationDeparture, type OrganizationDisplay, type OrganizationInvitation, type OrganizationInvitationPage, type OrganizationMember, type OrganizationMemberAuthority, type OrganizationMemberPage, type OrganizationPage, type OrganizationPageInput, type OrganizationTeam, type OrganizationTeamDisplay, type OrganizationTeamMemberPage, type OrganizationTeamPage, type OrganizationWorkspaceSelection, type PersonalWorkspaceSelection, type ReceivedOrganizationInvitation, type ReceivedOrganizationInvitationPage, type RemovedOrganizationMember, type ResentOrganizationInvitation, type ResolveDriveRecipientInput, type ResolveIdentityInput, type ResolveMembershipInput, type ResolvedIdentity, type ResolvedMembership, type ResolvedMembershipRole, ServerAuthOptions, ServerInvitationAcceptance, ServerSignOutResult, ServerSocialIdTokenSession, type SocialIdTokenInput, type SocialIdTokenProvider, type UpdateOrganizationDisplayInput, type UpdateOrganizationTeamDisplayInput, type UserApiCredential, type UserApiCredentialInput, type UserApiIdentity, type UserApiVerifierOptions, type WorkspaceSelection, createDriveProvisioningAuth, createDriveRecipientAuth, createIdentityResolverAuth, createMembershipResolverAuth, createServerAuth, createUserApiVerifier };
|
|
159
|
+
export { type AcceptInvitationInput, type AddedOrganizationTeamMember, AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type AuthSession, type AuthUser, type CanceledOrganizationInvitation, type CreateOrganizationMemberInvitationInput, type CreatedOrganization, type CreatedOrganizationMemberInvitation, type CreatedOrganizationTeam, type DeclineInvitationInput, type DeletedOrganizationTeam, type DriveCredential, type DriveCredentialInput, type DriveProvisioningAuthOptions, type DriveProvisioningCredential, type DriveRecipient, type DriveRecipientAuthOptions, type FinuevaDriveProvisioningAuth, type FinuevaDriveRecipientAuth, type FinuevaIdentityResolverAuth, type FinuevaMembershipResolverAuth, FinuevaServerAuth, type IdentityResolverAuthOptions, type InvitationAcceptance, type InvitationDecline, type MembershipResolverAuthOptions, type OrganizationDeparture, type OrganizationDisplay, type OrganizationInvitation, type OrganizationInvitationPage, type OrganizationMember, type OrganizationMemberAuthority, type OrganizationMemberPage, type OrganizationPage, type OrganizationPageInput, type OrganizationTeam, type OrganizationTeamDisplay, type OrganizationTeamMemberPage, type OrganizationTeamPage, type OrganizationWorkspaceSelection, type PersonalWorkspaceSelection, type ReceivedOrganizationInvitation, type ReceivedOrganizationInvitationPage, type RemovedOrganizationMember, type RemovedOrganizationTeamMember, type ResentOrganizationInvitation, type ResolveDriveRecipientInput, type ResolveIdentityInput, type ResolveMembershipInput, type ResolvedIdentity, type ResolvedMembership, type ResolvedMembershipRole, ServerAuthOptions, ServerInvitationAcceptance, ServerSignOutResult, ServerSocialIdTokenSession, type SocialIdTokenInput, type SocialIdTokenProvider, type UpdateOrganizationDisplayInput, type UpdateOrganizationTeamDisplayInput, type UserApiCredential, type UserApiCredentialInput, type UserApiIdentity, type UserApiVerifierOptions, type WorkspaceSelection, createDriveProvisioningAuth, createDriveRecipientAuth, createIdentityResolverAuth, createMembershipResolverAuth, createServerAuth, createUserApiVerifier };
|
package/dist/server.js
CHANGED
|
@@ -198,7 +198,18 @@ const messages = {
|
|
|
198
198
|
platform_target_unavailable: "The platform administration target is unavailable.",
|
|
199
199
|
platform_quorum_unavailable: "Platform administration quorum is unavailable.",
|
|
200
200
|
platform_recovery_required: "Platform administration requires separate recovery.",
|
|
201
|
-
identity_authority_unavailable: "Authentication is temporarily unavailable."
|
|
201
|
+
identity_authority_unavailable: "Authentication is temporarily unavailable.",
|
|
202
|
+
two_factor_required: "A second authentication factor is required.",
|
|
203
|
+
two_factor_code_invalid: "The verification code is invalid.",
|
|
204
|
+
two_factor_challenge_expired: "The second-factor challenge has ended. Sign in again.",
|
|
205
|
+
two_factor_locked: "Second-factor verification is temporarily locked.",
|
|
206
|
+
recent_sign_in_required: "A recent sign-in is required.",
|
|
207
|
+
enterprise_recovery_required: "Enterprise administration evidence requires operator recovery.",
|
|
208
|
+
recent_authentication_required: "A ready recent-authentication action is required.",
|
|
209
|
+
organization_closure_confirmation_mismatch: "The confirmation does not match the organization.",
|
|
210
|
+
organization_closure_cancellation_ended: "The closure cancellation period has ended.",
|
|
211
|
+
ceremony_return_refused: "The return address is not registered for this application.",
|
|
212
|
+
password_sign_in_required: "A password sign-in method is required for this passkey change."
|
|
202
213
|
};
|
|
203
214
|
var AuthError = class extends Error {
|
|
204
215
|
code;
|
|
@@ -462,6 +473,25 @@ function normalizeOrganizationDeparture(value) {
|
|
|
462
473
|
if (value.status !== "left") throw authorityUnavailable();
|
|
463
474
|
return { status: "left" };
|
|
464
475
|
}
|
|
476
|
+
function normalizeOrganizationTeamMembershipInput(idempotencyKey) {
|
|
477
|
+
if (!boundedString(idempotencyKey, 255)) throw new AuthError("invalid_request", 400);
|
|
478
|
+
return { idempotencyKey };
|
|
479
|
+
}
|
|
480
|
+
function normalizeAddedOrganizationTeamMember(value) {
|
|
481
|
+
exact$3(value, ["status"]);
|
|
482
|
+
if (value.status !== "added") throw authorityUnavailable();
|
|
483
|
+
return { status: "added" };
|
|
484
|
+
}
|
|
485
|
+
function normalizeRemovedOrganizationTeamMember(value) {
|
|
486
|
+
exact$3(value, ["status"]);
|
|
487
|
+
if (value.status !== "removed") throw authorityUnavailable();
|
|
488
|
+
return { status: "removed" };
|
|
489
|
+
}
|
|
490
|
+
function normalizeDeletedOrganizationTeam(value) {
|
|
491
|
+
exact$3(value, ["status"]);
|
|
492
|
+
if (value.status !== "deleted") throw authorityUnavailable();
|
|
493
|
+
return { status: "deleted" };
|
|
494
|
+
}
|
|
465
495
|
function normalizeOrganizations(value) {
|
|
466
496
|
exact$3(value, ["nextCursor", "organizations"]);
|
|
467
497
|
if (!Array.isArray(value.organizations) || value.organizations.length > 100) throw authorityUnavailable();
|
|
@@ -623,6 +653,10 @@ function normalizeInvitationAcceptance(value, invitationId) {
|
|
|
623
653
|
if (!isObject$1(value) || !isObject$1(value.invitation) || !isObject$1(value.member) || value.invitation.id !== invitationId || value.invitation.status !== "accepted" || !isId(value.invitation.organizationId) || value.member.organizationId !== value.invitation.organizationId) throw authorityUnavailable();
|
|
624
654
|
return { organizationId: value.invitation.organizationId };
|
|
625
655
|
}
|
|
656
|
+
function normalizeInvitationDecline(value, invitationId) {
|
|
657
|
+
if (!isObject$1(value) || !isObject$1(value.invitation) || value.invitation.id !== invitationId || value.invitation.status !== "rejected" || value.member !== null) throw authorityUnavailable();
|
|
658
|
+
return { status: "declined" };
|
|
659
|
+
}
|
|
626
660
|
function normalizeWorkspaceSelection(value) {
|
|
627
661
|
if (!isObject$1(value)) throw new AuthError("invalid_workspace_selection", 422);
|
|
628
662
|
const keys = Object.keys(value);
|
|
@@ -2907,6 +2941,23 @@ function createServerAuth(options) {
|
|
|
2907
2941
|
...authorization ? { authorization } : { cookie },
|
|
2908
2942
|
...includeOrigin ? { origin: appOrigin } : {}
|
|
2909
2943
|
});
|
|
2944
|
+
async function teamMembershipMutation(ids, idempotencyKey, action) {
|
|
2945
|
+
if (authorization) throw new AuthError("authentication_required", 401);
|
|
2946
|
+
const [organization, team, member] = ids.map(normalizeIdInput);
|
|
2947
|
+
const body = normalizeOrganizationTeamMembershipInput(idempotencyKey);
|
|
2948
|
+
return requestJson(action === "delete" ? joinURL(authOrigin, "api/v1/auth/organizations", organization, "teams", team, "delete") : joinURL(authOrigin, "api/v1/auth/organizations", organization, "teams", team, "members", member, action), {
|
|
2949
|
+
fetch: fetchImpl,
|
|
2950
|
+
timeoutMs,
|
|
2951
|
+
method: "POST",
|
|
2952
|
+
credentials,
|
|
2953
|
+
headers: {
|
|
2954
|
+
...authHeaders(),
|
|
2955
|
+
"content-type": "application/json"
|
|
2956
|
+
},
|
|
2957
|
+
body,
|
|
2958
|
+
mapError: fromOrganizationMutationAuthorityError
|
|
2959
|
+
});
|
|
2960
|
+
}
|
|
2910
2961
|
async function organizationRead(path, input, normalize) {
|
|
2911
2962
|
const query = normalizeOrganizationPageInput(input);
|
|
2912
2963
|
return normalize(await requestJson(`${joinURL(authOrigin, "api/v1/auth/organizations", path)}${query.size ? `?${query}` : ""}`, {
|
|
@@ -2947,6 +2998,25 @@ function createServerAuth(options) {
|
|
|
2947
2998
|
throw fromInvitationError(error);
|
|
2948
2999
|
}
|
|
2949
3000
|
},
|
|
3001
|
+
async declineInvitation(input) {
|
|
3002
|
+
const invitation = normalizeInvitationInput(input);
|
|
3003
|
+
try {
|
|
3004
|
+
return normalizeInvitationDecline(await requestJson(joinURL(authOrigin, "api/v1/auth/organization/reject-invitation"), {
|
|
3005
|
+
fetch: fetchImpl,
|
|
3006
|
+
timeoutMs,
|
|
3007
|
+
method: "POST",
|
|
3008
|
+
credentials,
|
|
3009
|
+
headers: {
|
|
3010
|
+
...authHeaders(),
|
|
3011
|
+
"content-type": "application/json; charset=utf-8"
|
|
3012
|
+
},
|
|
3013
|
+
body: invitation,
|
|
3014
|
+
mapError: fromInvitationAuthorityError
|
|
3015
|
+
}), invitation.invitationId);
|
|
3016
|
+
} catch (error) {
|
|
3017
|
+
throw fromInvitationError(error);
|
|
3018
|
+
}
|
|
3019
|
+
},
|
|
2950
3020
|
async getSession() {
|
|
2951
3021
|
return normalizeSession(await requestJson(joinURL(authOrigin, "api/v1/auth/get-session"), {
|
|
2952
3022
|
fetch: fetchImpl,
|
|
@@ -3089,6 +3159,23 @@ function createServerAuth(options) {
|
|
|
3089
3159
|
mapError: fromOrganizationMembershipRemovalError
|
|
3090
3160
|
}));
|
|
3091
3161
|
},
|
|
3162
|
+
async addOrganizationTeamMember(organizationId, teamId, memberId, idempotencyKey) {
|
|
3163
|
+
return normalizeAddedOrganizationTeamMember(await teamMembershipMutation([
|
|
3164
|
+
organizationId,
|
|
3165
|
+
teamId,
|
|
3166
|
+
memberId
|
|
3167
|
+
], idempotencyKey, "add"));
|
|
3168
|
+
},
|
|
3169
|
+
async removeOrganizationTeamMember(organizationId, teamId, memberId, idempotencyKey) {
|
|
3170
|
+
return normalizeRemovedOrganizationTeamMember(await teamMembershipMutation([
|
|
3171
|
+
organizationId,
|
|
3172
|
+
teamId,
|
|
3173
|
+
memberId
|
|
3174
|
+
], idempotencyKey, "remove"));
|
|
3175
|
+
},
|
|
3176
|
+
async deleteOrganizationTeam(organizationId, teamId, idempotencyKey) {
|
|
3177
|
+
return normalizeDeletedOrganizationTeam(await teamMembershipMutation([organizationId, teamId], idempotencyKey, "delete"));
|
|
3178
|
+
},
|
|
3092
3179
|
async updateOrganizationDisplay(organizationId, input) {
|
|
3093
3180
|
const id = normalizeIdInput(organizationId);
|
|
3094
3181
|
const desired = normalizeOrganizationDisplayInput(input);
|