@finueva/auth 0.23.0 → 0.26.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 CHANGED
@@ -450,3 +450,7 @@ Long-form task guides are maintained with the Auth source:
450
450
  - [Errors and recovery](https://github.com/Ifkafin/auth/blob/main/apps/developer/docs/sdk/errors-and-recovery.md)
451
451
 
452
452
  These links track current source and can describe a newer SDK version. Check the version at the start of the guide. Repository access is required until these guides have a public, versioned documentation deployment.
453
+
454
+ ### Organization presence authorization candidate
455
+
456
+ The request-scoped server method `authorizeOrganizationPresence(organizationId, { applicationId, userIds }, serviceAssertion, { applicationCredential })` forwards fresh actor, application and registered service proofs. The exact ordered selection contains 1 to 50 Auth User IDs. The supplied application credential remains untrusted proof. Auth checks its signature and exact current actor session. The result binds the actor, organization, application and selected IDs; its observation time is not an authority lease. Your application must enforce its own disclosure and visibility policies. Browser and device clients have no direct service facade. This source candidate requires release and registration qualification before use.
package/dist/device.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as PasskeyInventory, At as UpdateOrganizationDisplayInput, B as OrganizationDisplay, C as CreatedOrganizationTeam, Dt as TwoFactorStatus, Ft as AuthErrorCode, G as OrganizationMemberPage, H as OrganizationInvitationPage, It as AuthErrorStatus, J as OrganizationTeam, K as OrganizationPage, Lt as UserApiCredential, Mt as UpdateProfileInput, O as DriveCredential, Pt as AuthError, Rt as UserApiCredentialInput, S as CreatedOrganizationMemberInvitation, St as SocialIdTokenProvider, U as OrganizationMember, V as OrganizationInvitation, W as OrganizationMemberAuthority, X as OrganizationTeamMemberPage, Y as OrganizationTeamDisplay, Z as OrganizationTeamPage, b as CreateOrganizationMemberInvitationInput, c as AuthSessionInventory, i as AuthOrganization, jt as UpdateOrganizationTeamDisplayInput, k as DriveCredentialInput, lt as ReceivedOrganizationInvitation, m as CeremonyHandoffInput, p as CeremonyHandoff, q as OrganizationPageInput, s as AuthSession, ut as ReceivedOrganizationInvitationPage, x as CreatedOrganization, xt as SocialIdTokenInput } from "./types-CgtPkDeO.js";
1
+ import { B as OrganizationDisplay, C as CreatedOrganizationTeam, Ct as SocialIdTokenProvider, Ft as AuthError, G as OrganizationMemberPage, H as OrganizationInvitationPage, It as AuthErrorCode, J as OrganizationPageInput, K as OrganizationMemberPageInput, Lt as AuthErrorStatus, Mt as UpdateOrganizationTeamDisplayInput, Nt as UpdateProfileInput, O as DriveCredential, Ot as TwoFactorStatus, Q as OrganizationTeamPage, Rt as UserApiCredential, S as CreatedOrganizationMemberInvitation, St as SocialIdTokenInput, U as OrganizationMember, V as OrganizationInvitation, W as OrganizationMemberAuthority, X as OrganizationTeamDisplay, Y as OrganizationTeam, Z as OrganizationTeamMemberPage, b as CreateOrganizationMemberInvitationInput, c as AuthSessionInventory, dt as ReceivedOrganizationInvitationPage, et as PasskeyInventory, i as AuthOrganization, jt as UpdateOrganizationDisplayInput, k as DriveCredentialInput, m as CeremonyHandoffInput, p as CeremonyHandoff, q as OrganizationPage, s as AuthSession, ut as ReceivedOrganizationInvitation, x as CreatedOrganization, zt as UserApiCredentialInput } from "./types-rx4YxsoH.js";
2
2
  //#region src/device.d.ts
3
3
  type DeviceAuthorizationErrorCode = "device_access_denied" | "device_authorization_cancelled" | "device_code_expired" | "invalid_device_authorization" | "identity_authority_unavailable";
4
4
  declare class DeviceAuthorizationError extends Error {
@@ -51,7 +51,7 @@ interface DeviceAuthClient {
51
51
  createOrganizationMemberInvitation(organizationId: string, input: CreateOrganizationMemberInvitationInput): Promise<CreatedOrganizationMemberInvitation>;
52
52
  updateOrganizationDisplay(organizationId: string, input: UpdateOrganizationDisplayInput): Promise<OrganizationDisplay>;
53
53
  updateOrganizationTeamDisplay(organizationId: string, teamId: string, input: UpdateOrganizationTeamDisplayInput): Promise<OrganizationTeamDisplay>;
54
- listOrganizationMembers(organizationId: string, input?: OrganizationPageInput): Promise<OrganizationMemberPage>;
54
+ listOrganizationMembers(organizationId: string, input?: OrganizationMemberPageInput): Promise<OrganizationMemberPage>;
55
55
  listOrganizationTeams(organizationId: string, input?: OrganizationPageInput): Promise<OrganizationTeamPage>;
56
56
  listOrganizationTeamMembers(organizationId: string, teamId: string, input?: OrganizationPageInput): Promise<OrganizationTeamMemberPage>;
57
57
  listOrganizationInvitations(organizationId: string, input?: OrganizationPageInput): Promise<OrganizationInvitationPage>;
@@ -91,4 +91,4 @@ interface DeviceAuthClient {
91
91
  }
92
92
  declare function createDeviceAuth(options: DeviceAuthOptions): DeviceAuthClient;
93
93
  //#endregion
94
- export { AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type CreateOrganizationMemberInvitationInput, type CreatedOrganization, type CreatedOrganizationMemberInvitation, type CreatedOrganizationTeam, DeviceAuthClient, DeviceAuthOptions, DeviceAuthorization, DeviceAuthorizationError, DeviceAuthorizationErrorCode, DeviceToken, DeviceTokenPersistence, type OrganizationDisplay, type OrganizationInvitation, type OrganizationInvitationPage, type OrganizationMember, type OrganizationMemberAuthority, type OrganizationMemberPage, type OrganizationPage, type OrganizationPageInput, type OrganizationTeam, type OrganizationTeamDisplay, type OrganizationTeamMemberPage, type OrganizationTeamPage, PollDeviceOptions, type ReceivedOrganizationInvitation, type ReceivedOrganizationInvitationPage, type SocialIdTokenInput, type SocialIdTokenProvider, type TwoFactorStatus, type UpdateOrganizationDisplayInput, type UpdateOrganizationTeamDisplayInput, type UserApiCredential, type UserApiCredentialInput, createDeviceAuth };
94
+ export { AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type CreateOrganizationMemberInvitationInput, type CreatedOrganization, type CreatedOrganizationMemberInvitation, type CreatedOrganizationTeam, DeviceAuthClient, DeviceAuthOptions, DeviceAuthorization, DeviceAuthorizationError, DeviceAuthorizationErrorCode, DeviceToken, DeviceTokenPersistence, type OrganizationDisplay, type OrganizationInvitation, type OrganizationInvitationPage, type OrganizationMember, type OrganizationMemberAuthority, type OrganizationMemberPage, type OrganizationMemberPageInput, type OrganizationPage, type OrganizationPageInput, type OrganizationTeam, type OrganizationTeamDisplay, type OrganizationTeamMemberPage, type OrganizationTeamPage, PollDeviceOptions, type ReceivedOrganizationInvitation, type ReceivedOrganizationInvitationPage, type SocialIdTokenInput, type SocialIdTokenProvider, type TwoFactorStatus, type UpdateOrganizationDisplayInput, type UpdateOrganizationTeamDisplayInput, type UserApiCredential, type UserApiCredentialInput, createDeviceAuth };
package/dist/device.js CHANGED
@@ -340,6 +340,23 @@ function normalizeOrganizationPageInput(value) {
340
340
  }
341
341
  return query;
342
342
  }
343
+ function normalizeOrganizationMemberPageInput(value) {
344
+ if (value === void 0) return new URLSearchParams();
345
+ if (!isObject(value) || Object.keys(value).some((key) => ![
346
+ "limit",
347
+ "cursor",
348
+ "search"
349
+ ].includes(key))) throw new AuthError("invalid_request", 400);
350
+ const { search, ...page } = value;
351
+ const query = normalizeOrganizationPageInput(page);
352
+ if (search !== void 0) {
353
+ if (typeof search !== "string") throw new AuthError("invalid_request", 400);
354
+ const prefix = search.trim().replace(/[A-Z]/g, (character) => character.toLowerCase());
355
+ if (!prefix || prefix.length > 128 || Array.from(prefix).some((character) => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127)) throw new AuthError("invalid_request", 400);
356
+ query.set("search", prefix);
357
+ }
358
+ return query;
359
+ }
343
360
  function normalizeIdInput(value) {
344
361
  if (!isId(value)) throw new AuthError("invalid_request", 400);
345
362
  return value;
@@ -1231,6 +1248,7 @@ async function requestJsonResponse(url, options) {
1231
1248
  headers: options.headers,
1232
1249
  body: options.body,
1233
1250
  credentials: options.credentials ?? "include",
1251
+ cache: options.cache,
1234
1252
  retry: 0,
1235
1253
  timeout: options.timeoutMs,
1236
1254
  redirect: "manual",
@@ -1243,37 +1261,47 @@ async function requestJsonResponse(url, options) {
1243
1261
  }
1244
1262
  const contentType = response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase();
1245
1263
  if (response.status >= 300 || response.status < 200 || contentType !== "application/json") {
1246
- const body = contentType === "application/json" ? await readJson(response, options.maxResponseBytes) : void 0;
1247
- await response.body?.cancel();
1264
+ const body = contentType === "application/json" ? await readJson(response, options.maxResponseBytes, options.signal) : void 0;
1265
+ response.body?.cancel().catch(() => void 0);
1248
1266
  throw (options.mapError ?? fromAuthorityError)(body, response.status, response.headers.get("retry-after"));
1249
1267
  }
1250
1268
  return {
1251
- value: await readJson(response, options.maxResponseBytes),
1269
+ value: await readJson(response, options.maxResponseBytes, options.signal),
1252
1270
  headers: response.headers
1253
1271
  };
1254
1272
  }
1255
- async function readJson(response, maximum = MAX_RESPONSE_BYTES) {
1273
+ async function readJson(response, maximum = MAX_RESPONSE_BYTES, signal) {
1256
1274
  const length = response.headers.get("content-length");
1257
1275
  if (length && (!/^\d+$/.test(length) || Number(length) > maximum)) {
1258
- await response.body?.cancel();
1276
+ response.body?.cancel().catch(() => void 0);
1259
1277
  throw authorityUnavailable();
1260
1278
  }
1261
1279
  if (!response.body) throw authorityUnavailable();
1280
+ if (signal?.aborted) {
1281
+ response.body.cancel().catch(() => void 0);
1282
+ throw authorityUnavailable();
1283
+ }
1262
1284
  const reader = response.body.getReader();
1285
+ const cancel = () => {
1286
+ reader.cancel().catch(() => void 0);
1287
+ };
1288
+ signal?.addEventListener("abort", cancel, { once: true });
1263
1289
  const chunks = [];
1264
1290
  let size = 0;
1265
1291
  try {
1266
1292
  while (true) {
1267
1293
  const { done, value } = await reader.read();
1294
+ if (signal?.aborted) throw authorityUnavailable();
1268
1295
  if (done) break;
1269
1296
  size += value.byteLength;
1270
1297
  if (size > maximum) throw authorityUnavailable();
1271
1298
  chunks.push(value);
1272
1299
  }
1273
1300
  } catch (error) {
1274
- await reader.cancel();
1301
+ reader.cancel().catch(() => void 0);
1275
1302
  throw error;
1276
1303
  } finally {
1304
+ signal?.removeEventListener("abort", cancel);
1277
1305
  reader.releaseLock();
1278
1306
  }
1279
1307
  const bytes = new Uint8Array(size);
@@ -1905,8 +1933,8 @@ function createDeviceAuth(options) {
1905
1933
  }
1906
1934
  return session;
1907
1935
  }
1908
- async function organizationRead(path, input, normalize) {
1909
- const query = normalizeOrganizationPageInput(input);
1936
+ async function organizationRead(path, input, normalize, queryInput = normalizeOrganizationPageInput) {
1937
+ const query = queryInput(input);
1910
1938
  const current = await readToken();
1911
1939
  if (!current) throw new AuthError("authentication_required", 401);
1912
1940
  return normalize((await requestJsonResponse(`${joinURL(authOrigin, "api/v1/auth/organizations", path)}${query.size ? `?${query}` : ""}`, {
@@ -2089,7 +2117,7 @@ function createDeviceAuth(options) {
2089
2117
  },
2090
2118
  listOrganizationMembers(organizationId, input) {
2091
2119
  try {
2092
- return serializeAuthority(() => organizationRead(`${normalizeIdInput(organizationId)}/members`, input, normalizeOrganizationMembers));
2120
+ return serializeAuthority(() => organizationRead(`${normalizeIdInput(organizationId)}/members`, input, normalizeOrganizationMembers, normalizeOrganizationMemberPageInput));
2093
2121
  } catch (error) {
2094
2122
  return Promise.reject(error);
2095
2123
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as PasskeyInventory, A as EnterpriseConnection, At as UpdateOrganizationDisplayInput, B as OrganizationDisplay, C as CreatedOrganizationTeam, Ct as SuspendedOrganizationMember, D as DepartedOrganizationMemberPage, Dt as TwoFactorStatus, E as DepartedOrganizationMember, Et as TwoFactorEnrollment, F as InvitationDecline, Ft as AuthErrorCode, G as OrganizationMemberPage, H as OrganizationInvitationPage, I as OrganizationClosure, It as AuthErrorStatus, J as OrganizationTeam, K as OrganizationPage, L as OrganizationClosureCancelInput, Lt as UserApiCredential, M as EnterpriseConnectionSetup, Mt as UpdateProfileInput, N as FinuevaAuthClient, Nt as WorkspaceSelection, O as DriveCredential, Ot as TwoFactorStepUpInput, P as InvitationAcceptance, Pt as AuthError, Q as OrganizationWorkspaceSelection, R as OrganizationClosureStartInput, Rt as UserApiCredentialInput, S as CreatedOrganizationMemberInvitation, St as SocialIdTokenProvider, T as DeletedOrganizationTeam, Tt as SuspendedOrganizationMemberStatus, U as OrganizationMember, V as OrganizationInvitation, W as OrganizationMemberAuthority, X as OrganizationTeamMemberPage, Y as OrganizationTeamDisplay, Z as OrganizationTeamPage, _ as ClosingOrganization, _t as ScimCredentialIssuance, a as AuthPersistence, at as PlatformRoleApproval, b as CreateOrganizationMemberInvitationInput, bt as SignInInput, c as AuthSessionInventory, ct as PlatformStatus, d as AuthUser, dt as RecentAuthenticationStatus, et as PasskeySummary, f as CanceledOrganizationInvitation, ft as RemovedOrganizationMember, g as CeremonyReturnInput, gt as RotateScimCredentialInput, h as CeremonyRecentAuthenticationRequest, ht as RestoredOrganizationMember, i as AuthOrganization, it as PlatformRoleApplied, j as EnterpriseConnectionAction, jt as UpdateOrganizationTeamDisplayInput, k as DriveCredentialInput, kt as UpdateEnterpriseConnectionInput, l as AuthSessionSummary, lt as ReceivedOrganizationInvitation, m as CeremonyHandoffInput, mt as ResentOrganizationInvitation, n as AddedOrganizationTeamMember, nt as PlatformBootstrapRoleChangeInput, o as AuthPersistenceDriver, ot as PlatformRoleChangeRecentAuthenticationInput, p as CeremonyHandoff, pt as RemovedOrganizationTeamMember, q as OrganizationPageInput, r as AuthClientOptions, rt as PlatformRole, s as AuthSession, st as PlatformRoleFirstApproval, t as AcceptInvitationInput, tt as PersonalWorkspaceSelection, u as AuthState, ut as ReceivedOrganizationInvitationPage, v as ClosingOrganizationList, vt as ScimCredentialState, w as DeclineInvitationInput, wt as SuspendedOrganizationMemberPage, x as CreatedOrganization, xt as SocialIdTokenInput, y as CreateEnterpriseConnectionInput, yt as SendVerificationEmailInput, z as OrganizationDeparture } from "./types-CgtPkDeO.js";
1
+ import { $ as OrganizationWorkspaceSelection, A as EnterpriseConnection, At as UpdateEnterpriseConnectionInput, B as OrganizationDisplay, C as CreatedOrganizationTeam, Ct as SocialIdTokenProvider, D as DepartedOrganizationMemberPage, Dt as TwoFactorEnrollment, E as DepartedOrganizationMember, Et as SuspendedOrganizationMemberStatus, F as InvitationDecline, Ft as AuthError, G as OrganizationMemberPage, H as OrganizationInvitationPage, I as OrganizationClosure, It as AuthErrorCode, J as OrganizationPageInput, K as OrganizationMemberPageInput, L as OrganizationClosureCancelInput, Lt as AuthErrorStatus, M as EnterpriseConnectionSetup, Mt as UpdateOrganizationTeamDisplayInput, N as FinuevaAuthClient, Nt as UpdateProfileInput, O as DriveCredential, Ot as TwoFactorStatus, P as InvitationAcceptance, Pt as WorkspaceSelection, Q as OrganizationTeamPage, R as OrganizationClosureStartInput, Rt as UserApiCredential, S as CreatedOrganizationMemberInvitation, St as SocialIdTokenInput, T as DeletedOrganizationTeam, Tt as SuspendedOrganizationMemberPage, U as OrganizationMember, V as OrganizationInvitation, W as OrganizationMemberAuthority, X as OrganizationTeamDisplay, Y as OrganizationTeam, Z as OrganizationTeamMemberPage, _ as ClosingOrganization, _t as RotateScimCredentialInput, a as AuthPersistence, at as PlatformRoleApplied, b as CreateOrganizationMemberInvitationInput, bt as SendVerificationEmailInput, c as AuthSessionInventory, ct as PlatformRoleFirstApproval, d as AuthUser, dt as ReceivedOrganizationInvitationPage, et as PasskeyInventory, f as CanceledOrganizationInvitation, ft as RecentAuthenticationStatus, g as CeremonyReturnInput, gt as RestoredOrganizationMember, h as CeremonyRecentAuthenticationRequest, ht as ResentOrganizationInvitation, i as AuthOrganization, it as PlatformRole, j as EnterpriseConnectionAction, jt as UpdateOrganizationDisplayInput, k as DriveCredentialInput, kt as TwoFactorStepUpInput, l as AuthSessionSummary, lt as PlatformStatus, m as CeremonyHandoffInput, mt as RemovedOrganizationTeamMember, n as AddedOrganizationTeamMember, nt as PersonalWorkspaceSelection, o as AuthPersistenceDriver, ot as PlatformRoleApproval, p as CeremonyHandoff, pt as RemovedOrganizationMember, q as OrganizationPage, r as AuthClientOptions, rt as PlatformBootstrapRoleChangeInput, s as AuthSession, st as PlatformRoleChangeRecentAuthenticationInput, t as AcceptInvitationInput, tt as PasskeySummary, u as AuthState, ut as ReceivedOrganizationInvitation, v as ClosingOrganizationList, vt as ScimCredentialIssuance, w as DeclineInvitationInput, wt as SuspendedOrganizationMember, x as CreatedOrganization, xt as SignInInput, y as CreateEnterpriseConnectionInput, yt as ScimCredentialState, z as OrganizationDeparture, zt as UserApiCredentialInput } from "./types-rx4YxsoH.js";
2
2
  //#region src/client.d.ts
3
3
  declare function createAuthClient(options: AuthClientOptions): FinuevaAuthClient;
4
4
  //#endregion
5
- export { type AcceptInvitationInput, type AddedOrganizationTeamMember, type AuthClientOptions, AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type AuthPersistence, type AuthPersistenceDriver, type AuthSession, type AuthSessionInventory, type AuthSessionSummary, type AuthState, type AuthUser, type CanceledOrganizationInvitation, type CeremonyHandoff, type CeremonyHandoffInput, type CeremonyRecentAuthenticationRequest, type CeremonyReturnInput, type ClosingOrganization, type ClosingOrganizationList, type CreateEnterpriseConnectionInput, type CreateOrganizationMemberInvitationInput, type CreatedOrganization, type CreatedOrganizationMemberInvitation, type CreatedOrganizationTeam, type DeclineInvitationInput, type DeletedOrganizationTeam, type DepartedOrganizationMember, type DepartedOrganizationMemberPage, type DriveCredential, type DriveCredentialInput, type EnterpriseConnection, type EnterpriseConnectionAction, type EnterpriseConnectionSetup, type FinuevaAuthClient, type InvitationAcceptance, type InvitationDecline, type OrganizationClosure, type OrganizationClosureCancelInput, type OrganizationClosureStartInput, 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 PasskeyInventory, type PasskeySummary, type PersonalWorkspaceSelection, type PlatformBootstrapRoleChangeInput, type PlatformRole, type PlatformRoleApplied, type PlatformRoleApproval, type PlatformRoleChangeRecentAuthenticationInput, type PlatformRoleFirstApproval, type PlatformStatus, type ReceivedOrganizationInvitation, type ReceivedOrganizationInvitationPage, type RecentAuthenticationStatus, type RemovedOrganizationMember, type RemovedOrganizationTeamMember, type ResentOrganizationInvitation, type RestoredOrganizationMember, type RotateScimCredentialInput, type ScimCredentialIssuance, type ScimCredentialState, type SendVerificationEmailInput, type SignInInput, type SocialIdTokenInput, type SocialIdTokenProvider, type SuspendedOrganizationMember, type SuspendedOrganizationMemberPage, type SuspendedOrganizationMemberStatus, type TwoFactorEnrollment, type TwoFactorStatus, type TwoFactorStepUpInput, type UpdateEnterpriseConnectionInput, type UpdateOrganizationDisplayInput, type UpdateOrganizationTeamDisplayInput, type UpdateProfileInput, type UserApiCredential, type UserApiCredentialInput, type WorkspaceSelection, createAuthClient };
5
+ export { type AcceptInvitationInput, type AddedOrganizationTeamMember, type AuthClientOptions, AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type AuthPersistence, type AuthPersistenceDriver, type AuthSession, type AuthSessionInventory, type AuthSessionSummary, type AuthState, type AuthUser, type CanceledOrganizationInvitation, type CeremonyHandoff, type CeremonyHandoffInput, type CeremonyRecentAuthenticationRequest, type CeremonyReturnInput, type ClosingOrganization, type ClosingOrganizationList, type CreateEnterpriseConnectionInput, type CreateOrganizationMemberInvitationInput, type CreatedOrganization, type CreatedOrganizationMemberInvitation, type CreatedOrganizationTeam, type DeclineInvitationInput, type DeletedOrganizationTeam, type DepartedOrganizationMember, type DepartedOrganizationMemberPage, type DriveCredential, type DriveCredentialInput, type EnterpriseConnection, type EnterpriseConnectionAction, type EnterpriseConnectionSetup, type FinuevaAuthClient, type InvitationAcceptance, type InvitationDecline, type OrganizationClosure, type OrganizationClosureCancelInput, type OrganizationClosureStartInput, type OrganizationDeparture, type OrganizationDisplay, type OrganizationInvitation, type OrganizationInvitationPage, type OrganizationMember, type OrganizationMemberAuthority, type OrganizationMemberPage, type OrganizationMemberPageInput, type OrganizationPage, type OrganizationPageInput, type OrganizationTeam, type OrganizationTeamDisplay, type OrganizationTeamMemberPage, type OrganizationTeamPage, type OrganizationWorkspaceSelection, type PasskeyInventory, type PasskeySummary, type PersonalWorkspaceSelection, type PlatformBootstrapRoleChangeInput, type PlatformRole, type PlatformRoleApplied, type PlatformRoleApproval, type PlatformRoleChangeRecentAuthenticationInput, type PlatformRoleFirstApproval, type PlatformStatus, type ReceivedOrganizationInvitation, type ReceivedOrganizationInvitationPage, type RecentAuthenticationStatus, type RemovedOrganizationMember, type RemovedOrganizationTeamMember, type ResentOrganizationInvitation, type RestoredOrganizationMember, type RotateScimCredentialInput, type ScimCredentialIssuance, type ScimCredentialState, type SendVerificationEmailInput, type SignInInput, type SocialIdTokenInput, type SocialIdTokenProvider, type SuspendedOrganizationMember, type SuspendedOrganizationMemberPage, type SuspendedOrganizationMemberStatus, type TwoFactorEnrollment, type TwoFactorStatus, type TwoFactorStepUpInput, type UpdateEnterpriseConnectionInput, type UpdateOrganizationDisplayInput, type UpdateOrganizationTeamDisplayInput, type UpdateProfileInput, type UserApiCredential, type UserApiCredentialInput, type WorkspaceSelection, createAuthClient };
package/dist/index.js CHANGED
@@ -2978,6 +2978,23 @@ function normalizeOrganizationPageInput(value) {
2978
2978
  }
2979
2979
  return query;
2980
2980
  }
2981
+ function normalizeOrganizationMemberPageInput(value) {
2982
+ if (value === void 0) return new URLSearchParams();
2983
+ if (!isObject(value) || Object.keys(value).some((key) => ![
2984
+ "limit",
2985
+ "cursor",
2986
+ "search"
2987
+ ].includes(key))) throw new AuthError("invalid_request", 400);
2988
+ const { search, ...page } = value;
2989
+ const query = normalizeOrganizationPageInput(page);
2990
+ if (search !== void 0) {
2991
+ if (typeof search !== "string") throw new AuthError("invalid_request", 400);
2992
+ const prefix = search.trim().replace(/[A-Z]/g, (character) => character.toLowerCase());
2993
+ if (!prefix || prefix.length > 128 || Array.from(prefix).some((character) => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127)) throw new AuthError("invalid_request", 400);
2994
+ query.set("search", prefix);
2995
+ }
2996
+ return query;
2997
+ }
2981
2998
  function normalizeIdInput(value) {
2982
2999
  if (!isId(value)) throw new AuthError("invalid_request", 400);
2983
3000
  return value;
@@ -3896,6 +3913,7 @@ async function requestJsonResponse(url, options) {
3896
3913
  headers: options.headers,
3897
3914
  body: options.body,
3898
3915
  credentials: options.credentials ?? "include",
3916
+ cache: options.cache,
3899
3917
  retry: 0,
3900
3918
  timeout: options.timeoutMs,
3901
3919
  redirect: "manual",
@@ -3908,37 +3926,47 @@ async function requestJsonResponse(url, options) {
3908
3926
  }
3909
3927
  const contentType = response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase();
3910
3928
  if (response.status >= 300 || response.status < 200 || contentType !== "application/json") {
3911
- const body = contentType === "application/json" ? await readJson(response, options.maxResponseBytes) : void 0;
3912
- await response.body?.cancel();
3929
+ const body = contentType === "application/json" ? await readJson(response, options.maxResponseBytes, options.signal) : void 0;
3930
+ response.body?.cancel().catch(() => void 0);
3913
3931
  throw (options.mapError ?? fromAuthorityError)(body, response.status, response.headers.get("retry-after"));
3914
3932
  }
3915
3933
  return {
3916
- value: await readJson(response, options.maxResponseBytes),
3934
+ value: await readJson(response, options.maxResponseBytes, options.signal),
3917
3935
  headers: response.headers
3918
3936
  };
3919
3937
  }
3920
- async function readJson(response, maximum = MAX_RESPONSE_BYTES) {
3938
+ async function readJson(response, maximum = MAX_RESPONSE_BYTES, signal) {
3921
3939
  const length = response.headers.get("content-length");
3922
3940
  if (length && (!/^\d+$/.test(length) || Number(length) > maximum)) {
3923
- await response.body?.cancel();
3941
+ response.body?.cancel().catch(() => void 0);
3924
3942
  throw authorityUnavailable();
3925
3943
  }
3926
3944
  if (!response.body) throw authorityUnavailable();
3945
+ if (signal?.aborted) {
3946
+ response.body.cancel().catch(() => void 0);
3947
+ throw authorityUnavailable();
3948
+ }
3927
3949
  const reader = response.body.getReader();
3950
+ const cancel = () => {
3951
+ reader.cancel().catch(() => void 0);
3952
+ };
3953
+ signal?.addEventListener("abort", cancel, { once: true });
3928
3954
  const chunks = [];
3929
3955
  let size = 0;
3930
3956
  try {
3931
3957
  while (true) {
3932
3958
  const { done, value } = await reader.read();
3959
+ if (signal?.aborted) throw authorityUnavailable();
3933
3960
  if (done) break;
3934
3961
  size += value.byteLength;
3935
3962
  if (size > maximum) throw authorityUnavailable();
3936
3963
  chunks.push(value);
3937
3964
  }
3938
3965
  } catch (error) {
3939
- await reader.cancel();
3966
+ reader.cancel().catch(() => void 0);
3940
3967
  throw error;
3941
3968
  } finally {
3969
+ signal?.removeEventListener("abort", cancel);
3942
3970
  reader.releaseLock();
3943
3971
  }
3944
3972
  const bytes = new Uint8Array(size);
@@ -5098,6 +5126,9 @@ const setupKeys = [
5098
5126
  "clientId",
5099
5127
  "enabled",
5100
5128
  "memberJit",
5129
+ "requireVerifiedEmail",
5130
+ "capability",
5131
+ "groupsSync",
5101
5132
  "domain",
5102
5133
  "domainVerified",
5103
5134
  "validatedAt",
@@ -5108,7 +5139,7 @@ const setupKeys = [
5108
5139
  "redirectUri"
5109
5140
  ];
5110
5141
  function normalizeEnterpriseConnectionSetup(value) {
5111
- if (!exact(value, setupKeys) || typeof value.id !== "string" || !idPattern.test(value.id) || typeof value.issuer !== "string" || value.issuer.length > 2048 || !value.issuer.startsWith("https://") || typeof value.clientId !== "string" || value.clientId.length < 1 || value.clientId.length > 256 || typeof value.domain !== "string" || !/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/.test(value.domain) || value.domain.length > 253 || value.dnsRecordName !== `_finueva-sso.${value.domain}` || typeof value.dnsRecordValue !== "string" || !/^finueva-sso=[A-Za-z0-9_-]{43}$/.test(value.dnsRecordValue) || typeof value.redirectUri !== "string" || value.redirectUri.length > 2048 || !Number.isSafeInteger(value.revision) || value.revision < 0) throw authorityUnavailable();
5142
+ if (!exact(value, setupKeys) || value.capability !== "federated_sign_in" && value.capability !== "managed_lifecycle" || typeof value.id !== "string" || !idPattern.test(value.id) || typeof value.issuer !== "string" || value.issuer.length > 2048 || !value.issuer.startsWith("https://") || typeof value.clientId !== "string" || value.clientId.length < 1 || value.clientId.length > 256 || typeof value.domain !== "string" || !/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/.test(value.domain) || value.domain.length > 253 || value.dnsRecordName !== `_finueva-sso.${value.domain}` || typeof value.dnsRecordValue !== "string" || !/^finueva-sso=[A-Za-z0-9_-]{43}$/.test(value.dnsRecordValue) || typeof value.redirectUri !== "string" || value.redirectUri.length > 2048 || !Number.isSafeInteger(value.revision) || value.revision < 0) throw authorityUnavailable();
5112
5143
  let redirect;
5113
5144
  try {
5114
5145
  redirect = new URL(value.redirectUri);
@@ -5123,6 +5154,9 @@ function normalizeEnterpriseConnectionSetup(value) {
5123
5154
  clientId: value.clientId,
5124
5155
  enabled: bool(value.enabled),
5125
5156
  memberJit: bool(value.memberJit),
5157
+ requireVerifiedEmail: bool(value.requireVerifiedEmail),
5158
+ capability: value.capability,
5159
+ groupsSync: bool(value.groupsSync),
5126
5160
  domain: value.domain,
5127
5161
  domainVerified: bool(value.domainVerified),
5128
5162
  validatedAt: date(value.validatedAt, true),
@@ -5595,10 +5629,10 @@ function createAuthClient(options) {
5595
5629
  if (generation !== authorityGeneration) throw new AuthError("state_conflict", 409);
5596
5630
  return value;
5597
5631
  }
5598
- async function organizationRead(path, input, normalize) {
5632
+ async function organizationRead(path, input, normalize, queryInput = normalizeOrganizationPageInput) {
5599
5633
  if (signOutRequest || activeAccountMutationGeneration !== void 0 || invitationRequest) throw new AuthError("state_conflict", 409);
5600
5634
  const generation = authorityGeneration;
5601
- const query = normalizeOrganizationPageInput(input);
5635
+ const query = queryInput(input);
5602
5636
  const value = await requestJson(`${joinURL(authOrigin, "api/v1/auth/organizations", path)}${query.size ? `?${query}` : ""}`, {
5603
5637
  fetch: fetchImpl,
5604
5638
  timeoutMs,
@@ -5656,10 +5690,11 @@ function createAuthClient(options) {
5656
5690
  fetch: fetchImpl,
5657
5691
  timeoutMs,
5658
5692
  method,
5659
- ...body ? {
5660
- headers: { "content-type": "application/json" },
5661
- body
5662
- } : {},
5693
+ headers: {
5694
+ ...body ? { "content-type": "application/json" } : {},
5695
+ ...path.includes("/connection-setup") ? { "x-finueva-connection-setup": "policy" } : {}
5696
+ },
5697
+ ...body ? { body } : {},
5663
5698
  mapError: fromEnterpriseAdministrationError
5664
5699
  });
5665
5700
  if (generation !== authorityGeneration) throw new AuthError("state_conflict", 409);
@@ -6138,7 +6173,7 @@ function createAuthClient(options) {
6138
6173
  return organizationRead("closing", void 0, normalizeClosingOrganizations);
6139
6174
  },
6140
6175
  async listOrganizationMembers(organizationId, input) {
6141
- return organizationRead(`${normalizeIdInput(organizationId)}/members`, input, normalizeOrganizationMembers);
6176
+ return organizationRead(`${normalizeIdInput(organizationId)}/members`, input, normalizeOrganizationMembers, normalizeOrganizationMemberPageInput);
6142
6177
  },
6143
6178
  async listOrganizationTeams(organizationId, input) {
6144
6179
  return organizationRead(`${normalizeIdInput(organizationId)}/teams`, input, normalizeOrganizationTeams);
@@ -6191,7 +6226,10 @@ function createAuthClient(options) {
6191
6226
  clientId: enterpriseInputString(input?.clientId, 256),
6192
6227
  clientSecret: enterpriseInputString(input?.clientSecret, 512),
6193
6228
  domain: enterpriseInputString(input?.domain, 253),
6194
- memberJit: enterpriseInputBoolean(input?.memberJit)
6229
+ memberJit: enterpriseInputBoolean(input?.memberJit),
6230
+ ...input?.requireVerifiedEmail === void 0 ? {} : { requireVerifiedEmail: enterpriseInputBoolean(input.requireVerifiedEmail) },
6231
+ ...input?.provisioning === void 0 ? {} : { provisioning: enterpriseInputBoolean(input.provisioning) },
6232
+ ...input?.groupsSync === void 0 ? {} : { groupsSync: enterpriseInputBoolean(input.groupsSync) }
6195
6233
  };
6196
6234
  return enterpriseRequest("POST", `${normalizeIdInput(organizationId)}/connection-setup`, body, normalizeEnterpriseConnectionSetup);
6197
6235
  },
@@ -6201,6 +6239,9 @@ function createAuthClient(options) {
6201
6239
  issuer: enterpriseInputString(input?.issuer, 2048),
6202
6240
  clientId: enterpriseInputString(input?.clientId, 256),
6203
6241
  memberJit: enterpriseInputBoolean(input?.memberJit),
6242
+ ...input?.requireVerifiedEmail === void 0 ? {} : { requireVerifiedEmail: enterpriseInputBoolean(input.requireVerifiedEmail) },
6243
+ ...input?.provisioning === void 0 ? {} : { provisioning: enterpriseInputBoolean(input.provisioning) },
6244
+ ...input?.groupsSync === void 0 ? {} : { groupsSync: enterpriseInputBoolean(input.groupsSync) },
6204
6245
  ...input?.clientSecret === void 0 ? {} : { clientSecret: enterpriseInputString(input.clientSecret, 512) }
6205
6246
  };
6206
6247
  return enterpriseRequest("POST", `${normalizeIdInput(organizationId)}/connection-setup/${normalizeIdInput(connectionId)}`, body, normalizeEnterpriseConnectionSetup);
@@ -6212,7 +6253,9 @@ function createAuthClient(options) {
6212
6253
  "validate",
6213
6254
  "enable",
6214
6255
  "disable",
6215
- "archive"
6256
+ "archive",
6257
+ "enable-groups",
6258
+ "disable-groups"
6216
6259
  ].includes(input?.action)) throw new TypeError("Enterprise action is invalid");
6217
6260
  const body = {
6218
6261
  expectedRevision: normalizeRevision(input?.expectedRevision),
package/dist/server.d.ts CHANGED
@@ -1,4 +1,94 @@
1
- import { At as UpdateOrganizationDisplayInput, B as OrganizationDisplay, C as CreatedOrganizationTeam, F as InvitationDecline, Ft as AuthErrorCode, G as OrganizationMemberPage, H as OrganizationInvitationPage, It as AuthErrorStatus, J as OrganizationTeam, K as OrganizationPage, Lt as UserApiCredential, Nt as WorkspaceSelection, O as DriveCredential, P as InvitationAcceptance, Pt as AuthError, Q as OrganizationWorkspaceSelection, Rt as UserApiCredentialInput, S as CreatedOrganizationMemberInvitation, St as SocialIdTokenProvider, T as DeletedOrganizationTeam, U as OrganizationMember, V as OrganizationInvitation, W as OrganizationMemberAuthority, X as OrganizationTeamMemberPage, Y as OrganizationTeamDisplay, Z as OrganizationTeamPage, b as CreateOrganizationMemberInvitationInput, d as AuthUser, f as CanceledOrganizationInvitation, ft as RemovedOrganizationMember, i as AuthOrganization, jt as UpdateOrganizationTeamDisplayInput, k as DriveCredentialInput, lt as ReceivedOrganizationInvitation, mt as ResentOrganizationInvitation, n as AddedOrganizationTeamMember, pt as RemovedOrganizationTeamMember, q as OrganizationPageInput, s as AuthSession, t as AcceptInvitationInput, tt as PersonalWorkspaceSelection, ut as ReceivedOrganizationInvitationPage, w as DeclineInvitationInput, x as CreatedOrganization, xt as SocialIdTokenInput, z as OrganizationDeparture } from "./types-CgtPkDeO.js";
1
+ import { $ as OrganizationWorkspaceSelection, B as OrganizationDisplay, C as CreatedOrganizationTeam, Ct as SocialIdTokenProvider, F as InvitationDecline, Ft as AuthError, G as OrganizationMemberPage, H as OrganizationInvitationPage, It as AuthErrorCode, J as OrganizationPageInput, K as OrganizationMemberPageInput, Lt as AuthErrorStatus, Mt as UpdateOrganizationTeamDisplayInput, O as DriveCredential, P as InvitationAcceptance, Pt as WorkspaceSelection, Q as OrganizationTeamPage, Rt as UserApiCredential, S as CreatedOrganizationMemberInvitation, St as SocialIdTokenInput, T as DeletedOrganizationTeam, U as OrganizationMember, V as OrganizationInvitation, W as OrganizationMemberAuthority, X as OrganizationTeamDisplay, Y as OrganizationTeam, Z as OrganizationTeamMemberPage, b as CreateOrganizationMemberInvitationInput, d as AuthUser, dt as ReceivedOrganizationInvitationPage, f as CanceledOrganizationInvitation, ht as ResentOrganizationInvitation, i as AuthOrganization, jt as UpdateOrganizationDisplayInput, k as DriveCredentialInput, mt as RemovedOrganizationTeamMember, n as AddedOrganizationTeamMember, nt as PersonalWorkspaceSelection, pt as RemovedOrganizationMember, q as OrganizationPage, s as AuthSession, t as AcceptInvitationInput, ut as ReceivedOrganizationInvitation, w as DeclineInvitationInput, x as CreatedOrganization, z as OrganizationDeparture, zt as UserApiCredentialInput } from "./types-rx4YxsoH.js";
2
+ //#region src/product-operations/types.d.ts
3
+ type AccountProductOperationPhase = "snapshot" | "consume" | "receipt";
4
+ interface AccountProductOperationProof {
5
+ applicationCredential: string;
6
+ serviceAssertion: string;
7
+ /** Expected verified product identity and registered service; these fields are never sent as authority. */
8
+ actorUserId: string;
9
+ actorSessionId: string;
10
+ serviceId: string;
11
+ environment: "local" | "development" | "staging" | "production";
12
+ }
13
+ interface AccountProductOperationSnapshotInput {
14
+ applicationId: string;
15
+ participantUserUids: string[];
16
+ }
17
+ interface AccountProductOperationInput {
18
+ applicationId: string;
19
+ snapshotId: string;
20
+ operationHash: string;
21
+ nonce: string;
22
+ }
23
+ interface AccountProductOperationSnapshot {
24
+ snapshotId: string;
25
+ actorUserId: string;
26
+ actorSessionId: string;
27
+ issuedAt: number;
28
+ expiresAt: number;
29
+ }
30
+ /** Immutable historical decision. Its original expiry never grants permission for a new commit. */
31
+ interface AccountProductOperationReceipt extends AccountProductOperationSnapshot {
32
+ serviceId: string;
33
+ applicationId: string;
34
+ actorAccountCreatedAt: number;
35
+ environment: "local" | "development" | "staging" | "production";
36
+ scopeKind: "account";
37
+ organizationId: null;
38
+ nonce: string;
39
+ operationHash: string;
40
+ consumedAt: number;
41
+ }
42
+ interface AccountProductOperationConsumer {
43
+ captureAccountOperation(input: AccountProductOperationSnapshotInput, proof: AccountProductOperationProof): Promise<AccountProductOperationSnapshot>;
44
+ consumeAccountOperation(input: AccountProductOperationInput, proof: AccountProductOperationProof): Promise<{
45
+ receipt: AccountProductOperationReceipt;
46
+ replayed: boolean;
47
+ }>;
48
+ retrieveAccountOperationReceipt(input: AccountProductOperationInput, proof: AccountProductOperationProof): Promise<AccountProductOperationReceipt>;
49
+ }
50
+ //#endregion
51
+ //#region src/product-operations/index.d.ts
52
+ interface AccountProductOperationAuthOptions {
53
+ authOrigin: string;
54
+ fetch?: typeof globalThis.fetch;
55
+ timeoutMs?: number;
56
+ }
57
+ /** Server-only. Every call needs a fresh assertion for its exact phase audience. No call retries automatically. */
58
+ declare function createAccountProductOperationAuth(options: AccountProductOperationAuthOptions): AccountProductOperationConsumer & {
59
+ audience(phase: AccountProductOperationPhase): string;
60
+ };
61
+ //#endregion
62
+ //#region src/organization-presence.d.ts
63
+ interface OrganizationPresenceInput {
64
+ applicationId: string;
65
+ userIds: string[];
66
+ }
67
+ interface OrganizationPresenceAuthorization {
68
+ organizationId: string;
69
+ applicationId: string;
70
+ actor: {
71
+ userId: string;
72
+ sessionId: string;
73
+ };
74
+ userIds: string[];
75
+ /** Observation time only. This is not an authority lease or application privacy decision. */
76
+ checkedAt: Date;
77
+ }
78
+ //#endregion
79
+ //#region src/application-access.d.ts
80
+ interface OrganizationMemberApplicationAccessInput {
81
+ applicationId: string;
82
+ userIds: string[];
83
+ }
84
+ interface OrganizationMemberApplicationAccess {
85
+ members: Array<{
86
+ userId: string;
87
+ latestAppSessionAdmittedAt: string | null;
88
+ activeAppSessionCount: number;
89
+ }>;
90
+ }
91
+ //#endregion
2
92
  //#region src/google-recovery.d.ts
3
93
  interface GoogleAccountRecoveryInput {
4
94
  idToken: {
@@ -159,6 +249,12 @@ interface FinuevaServerAuth {
159
249
  getSession(): Promise<AuthSession | null>;
160
250
  listOrganizations(input?: OrganizationPageInput): Promise<OrganizationPage>;
161
251
  getOrganization(organizationId: string): Promise<AuthOrganization>;
252
+ authorizeOrganizationPresence(organizationId: string, input: OrganizationPresenceInput, serviceAssertion: string, options?: {
253
+ applicationCredential: string;
254
+ }): Promise<OrganizationPresenceAuthorization>;
255
+ getOrganizationMemberApplicationAccess(organizationId: string, input: OrganizationMemberApplicationAccessInput, serviceAssertion: string, options?: {
256
+ applicationCredential: string;
257
+ }): Promise<OrganizationMemberApplicationAccess>;
162
258
  getOrganizationMemberAuthority(organizationId: string, memberId: string): Promise<OrganizationMemberAuthority>;
163
259
  createOrganization(name: string, slug: string, idempotencyKey: string): Promise<CreatedOrganization>;
164
260
  createOrganizationTeam(organizationId: string, name: string, idempotencyKey: string): Promise<CreatedOrganizationTeam>;
@@ -172,7 +268,7 @@ interface FinuevaServerAuth {
172
268
  deleteOrganizationTeam(organizationId: string, teamId: string, idempotencyKey: string): Promise<DeletedOrganizationTeam>;
173
269
  updateOrganizationDisplay(organizationId: string, input: UpdateOrganizationDisplayInput): Promise<OrganizationDisplay>;
174
270
  updateOrganizationTeamDisplay(organizationId: string, teamId: string, input: UpdateOrganizationTeamDisplayInput): Promise<OrganizationTeamDisplay>;
175
- listOrganizationMembers(organizationId: string, input?: OrganizationPageInput): Promise<OrganizationMemberPage>;
271
+ listOrganizationMembers(organizationId: string, input?: OrganizationMemberPageInput): Promise<OrganizationMemberPage>;
176
272
  listOrganizationTeams(organizationId: string, input?: OrganizationPageInput): Promise<OrganizationTeamPage>;
177
273
  listOrganizationTeamMembers(organizationId: string, teamId: string, input?: OrganizationPageInput): Promise<OrganizationTeamMemberPage>;
178
274
  listOrganizationInvitations(organizationId: string, input?: OrganizationPageInput): Promise<OrganizationInvitationPage>;
@@ -190,4 +286,4 @@ interface FinuevaServerAuth {
190
286
  }
191
287
  declare function createServerAuth(options: ServerAuthOptions): FinuevaServerAuth;
192
288
  //#endregion
193
- export { type AcceptInvitationInput, type AddedOrganizationTeamMember, AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type AuthSession, type AuthUser, type CanceledOrganizationInvitation, type CompleteGoogleAccountRecoveryInput, 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 GoogleAccountRecovery, type GoogleAccountRecoveryInput, 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 ResolveMembershipBatchInput, type ResolveMembershipInput, type ResolvedIdentity, type ResolvedMembership, type ResolvedMembershipBatch, 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 };
289
+ export { type AcceptInvitationInput, type AccountProductOperationAuthOptions, type AccountProductOperationConsumer, type AccountProductOperationInput, type AccountProductOperationPhase, type AccountProductOperationProof, type AccountProductOperationReceipt, type AccountProductOperationSnapshot, type AccountProductOperationSnapshotInput, type AddedOrganizationTeamMember, AuthError, type AuthErrorCode, type AuthErrorStatus, type AuthOrganization, type AuthSession, type AuthUser, type CanceledOrganizationInvitation, type CompleteGoogleAccountRecoveryInput, 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 GoogleAccountRecovery, type GoogleAccountRecoveryInput, type IdentityResolverAuthOptions, type InvitationAcceptance, type InvitationDecline, type MembershipResolverAuthOptions, type OrganizationDeparture, type OrganizationDisplay, type OrganizationInvitation, type OrganizationInvitationPage, type OrganizationMember, type OrganizationMemberApplicationAccess, type OrganizationMemberApplicationAccessInput, type OrganizationMemberAuthority, type OrganizationMemberPage, type OrganizationMemberPageInput, type OrganizationPage, type OrganizationPageInput, type OrganizationPresenceAuthorization, type OrganizationPresenceInput, 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 ResolveMembershipBatchInput, type ResolveMembershipInput, type ResolvedIdentity, type ResolvedMembership, type ResolvedMembershipBatch, type ResolvedMembershipRole, ServerAuthOptions, ServerInvitationAcceptance, ServerSignOutResult, ServerSocialIdTokenSession, type SocialIdTokenInput, type SocialIdTokenProvider, type UpdateOrganizationDisplayInput, type UpdateOrganizationTeamDisplayInput, type UserApiCredential, type UserApiCredentialInput, type UserApiIdentity, type UserApiVerifierOptions, type WorkspaceSelection, createAccountProductOperationAuth, createDriveProvisioningAuth, createDriveRecipientAuth, createIdentityResolverAuth, createMembershipResolverAuth, createServerAuth, createUserApiVerifier };