@arbidocs/client 0.5.19 → 0.5.21

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.ts CHANGED
@@ -8225,6 +8225,160 @@ interface paths {
8225
8225
  patch?: never;
8226
8226
  trace?: never;
8227
8227
  };
8228
+ '/v1/file-shares': {
8229
+ parameters: {
8230
+ query?: never;
8231
+ header?: never;
8232
+ path?: never;
8233
+ cookie?: never;
8234
+ };
8235
+ /** List Shares */
8236
+ get: operations['list_shares_v1_file_shares_get'];
8237
+ put?: never;
8238
+ post?: never;
8239
+ delete?: never;
8240
+ options?: never;
8241
+ head?: never;
8242
+ patch?: never;
8243
+ trace?: never;
8244
+ };
8245
+ '/v1/file-shares/{share_id}': {
8246
+ parameters: {
8247
+ query?: never;
8248
+ header?: never;
8249
+ path?: never;
8250
+ cookie?: never;
8251
+ };
8252
+ /** Get Share */
8253
+ get: operations['get_share_v1_file_shares__share_id__get'];
8254
+ put?: never;
8255
+ post?: never;
8256
+ /** Revoke */
8257
+ delete: operations['revoke_v1_file_shares__share_id__delete'];
8258
+ options?: never;
8259
+ head?: never;
8260
+ patch?: never;
8261
+ trace?: never;
8262
+ };
8263
+ '/v1/file-shares/{share_id}/file': {
8264
+ parameters: {
8265
+ query?: never;
8266
+ header?: never;
8267
+ path?: never;
8268
+ cookie?: never;
8269
+ };
8270
+ /** Get File */
8271
+ get: operations['get_file_v1_file_shares__share_id__file_get'];
8272
+ put?: never;
8273
+ post?: never;
8274
+ delete?: never;
8275
+ options?: never;
8276
+ head?: never;
8277
+ patch?: never;
8278
+ trace?: never;
8279
+ };
8280
+ '/v1/file-shares/{share_id}/sign/prepare': {
8281
+ parameters: {
8282
+ query?: never;
8283
+ header?: never;
8284
+ path?: never;
8285
+ cookie?: never;
8286
+ };
8287
+ get?: never;
8288
+ put?: never;
8289
+ /** Prepare Sign */
8290
+ post: operations['prepare_sign_v1_file_shares__share_id__sign_prepare_post'];
8291
+ delete?: never;
8292
+ options?: never;
8293
+ head?: never;
8294
+ patch?: never;
8295
+ trace?: never;
8296
+ };
8297
+ '/v1/file-shares/{share_id}/sign': {
8298
+ parameters: {
8299
+ query?: never;
8300
+ header?: never;
8301
+ path?: never;
8302
+ cookie?: never;
8303
+ };
8304
+ get?: never;
8305
+ put?: never;
8306
+ /** Sign File */
8307
+ post: operations['sign_file_v1_file_shares__share_id__sign_post'];
8308
+ delete?: never;
8309
+ options?: never;
8310
+ head?: never;
8311
+ patch?: never;
8312
+ trace?: never;
8313
+ };
8314
+ '/v1/file-shares/{share_id}/decline': {
8315
+ parameters: {
8316
+ query?: never;
8317
+ header?: never;
8318
+ path?: never;
8319
+ cookie?: never;
8320
+ };
8321
+ get?: never;
8322
+ put?: never;
8323
+ /** Decline */
8324
+ post: operations['decline_v1_file_shares__share_id__decline_post'];
8325
+ delete?: never;
8326
+ options?: never;
8327
+ head?: never;
8328
+ patch?: never;
8329
+ trace?: never;
8330
+ };
8331
+ '/v1/file-shares/{share_id}/resend': {
8332
+ parameters: {
8333
+ query?: never;
8334
+ header?: never;
8335
+ path?: never;
8336
+ cookie?: never;
8337
+ };
8338
+ get?: never;
8339
+ put?: never;
8340
+ /** Resend */
8341
+ post: operations['resend_v1_file_shares__share_id__resend_post'];
8342
+ delete?: never;
8343
+ options?: never;
8344
+ head?: never;
8345
+ patch?: never;
8346
+ trace?: never;
8347
+ };
8348
+ '/v1/document/{document_ext_id}/file-shares': {
8349
+ parameters: {
8350
+ query?: never;
8351
+ header?: never;
8352
+ path?: never;
8353
+ cookie?: never;
8354
+ };
8355
+ get?: never;
8356
+ put?: never;
8357
+ /** Create Share */
8358
+ post: operations['create_share_v1_document__document_ext_id__file_shares_post'];
8359
+ delete?: never;
8360
+ options?: never;
8361
+ head?: never;
8362
+ patch?: never;
8363
+ trace?: never;
8364
+ };
8365
+ '/v1/document/{document_ext_id}/file-shares/{share_id}/publish': {
8366
+ parameters: {
8367
+ query?: never;
8368
+ header?: never;
8369
+ path?: never;
8370
+ cookie?: never;
8371
+ };
8372
+ get?: never;
8373
+ put?: never;
8374
+ /** Publish */
8375
+ post: operations['publish_v1_document__document_ext_id__file_shares__share_id__publish_post'];
8376
+ delete?: never;
8377
+ options?: never;
8378
+ head?: never;
8379
+ patch?: never;
8380
+ trace?: never;
8381
+ };
8228
8382
  }
8229
8383
  type webhooks = Record<string, never>;
8230
8384
  interface components {
@@ -17726,7 +17880,7 @@ interface components {
17726
17880
  * Type is self-descriptive, no need to parse content field.
17727
17881
  * @enum {string}
17728
17882
  */
17729
- NotificationType: 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'signup_reward' | 'referral_reward' | 'box_seat_refused' | 'deployment_user_invited' | 'deployment_user_registered' | 'native_mail_received' | 'mail_draft_ready' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100' | 'storage_quota_exceeded' | 'doc_shared' | 'docx_mention' | 'signature_requested' | 'signature_completed' | 'signature_declined' | 'workspace_access_request' | 'conversation_ready' | 'conversation_done' | 'conversation_notified' | 'workflow_failed' | 'agent_input_requested' | 'workflow_completed' | 'workflow_signal' | 'step_ready' | 'task_started' | 'task_completed' | 'mailbox_sync_complete' | 'drive_sync_complete' | 'activity' | 'mention' | 'thread_reply' | 'document_activity' | 'document_processed' | 'call_missed' | 'calendar_invite' | 'calendar_update' | 'calendar_cancel' | 'calendar_reply' | 'calendar_counter' | 'calendar_reminder' | 'calendar_share';
17883
+ NotificationType: 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'signup_reward' | 'referral_reward' | 'box_seat_refused' | 'deployment_user_invited' | 'deployment_user_registered' | 'native_mail_received' | 'mail_draft_ready' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100' | 'storage_quota_exceeded' | 'doc_shared' | 'docx_mention' | 'file_shared' | 'signature_requested' | 'signature_completed' | 'signature_declined' | 'workspace_access_request' | 'conversation_ready' | 'conversation_done' | 'conversation_notified' | 'workflow_failed' | 'agent_input_requested' | 'workflow_completed' | 'workflow_signal' | 'step_ready' | 'task_started' | 'task_completed' | 'mailbox_sync_complete' | 'drive_sync_complete' | 'activity' | 'mention' | 'thread_reply' | 'document_activity' | 'document_processed' | 'call_missed' | 'calendar_invite' | 'calendar_update' | 'calendar_cancel' | 'calendar_reply' | 'calendar_counter' | 'calendar_reminder' | 'calendar_share';
17730
17884
  /**
17731
17885
  * NotificationUpdate
17732
17886
  * @description Single notification update for bulk PATCH.
@@ -24922,6 +25076,78 @@ interface components {
24922
25076
  * @enum {string}
24923
25077
  */
24924
25078
  src__models__workflow__AuthMode: 'run_now_temp' | 'scheduled_require_auth' | 'scheduled_permanent';
25079
+ CreateFileShare: {
25080
+ /** Version */
25081
+ version: number;
25082
+ /** Recipients */
25083
+ recipients: components['schemas']['FileShareRecipientInput'][];
25084
+ /** Fields */
25085
+ fields?: components['schemas']['SignatureField'][];
25086
+ /**
25087
+ * Message
25088
+ * @default
25089
+ */
25090
+ message: string;
25091
+ /** Expires In Hours */
25092
+ expires_in_hours?: number | null;
25093
+ };
25094
+ FileShareRecipientInput: {
25095
+ /**
25096
+ * Email
25097
+ * Format: email
25098
+ */
25099
+ email: string;
25100
+ /**
25101
+ * Permission
25102
+ * @default view
25103
+ * @enum {string}
25104
+ */
25105
+ permission: 'view' | 'sign';
25106
+ };
25107
+ FileShareRecipientResponse: {
25108
+ /** Email */
25109
+ email: string;
25110
+ /** Permission */
25111
+ permission: string;
25112
+ /** Status */
25113
+ status: string;
25114
+ /** Expires At */
25115
+ expires_at: string | null;
25116
+ /** Delivery Status */
25117
+ delivery_status: string;
25118
+ /** Reference */
25119
+ reference?: string | null;
25120
+ };
25121
+ FileShareResponse: {
25122
+ /** External Id */
25123
+ external_id: string;
25124
+ /** Document Ext Id */
25125
+ document_ext_id: string;
25126
+ /** Version */
25127
+ version: number;
25128
+ /** File Name */
25129
+ file_name: string;
25130
+ /** Status */
25131
+ status: string;
25132
+ /** Source Sha256 */
25133
+ source_sha256: string;
25134
+ /** Fields */
25135
+ fields: components['schemas']['SignatureField'][];
25136
+ /** Message */
25137
+ message: string;
25138
+ /** Owner */
25139
+ owner: boolean;
25140
+ /** Can Sign */
25141
+ can_sign: boolean;
25142
+ /** Can Preview */
25143
+ can_preview: boolean;
25144
+ /** Recipients */
25145
+ recipients: components['schemas']['FileShareRecipientResponse'][];
25146
+ /** Published Version */
25147
+ published_version?: number | null;
25148
+ /** Owner Workspace Ext Id */
25149
+ owner_workspace_ext_id?: string | null;
25150
+ };
24925
25151
  };
24926
25152
  responses: never;
24927
25153
  parameters: never;
@@ -38637,6 +38863,318 @@ interface operations {
38637
38863
  };
38638
38864
  };
38639
38865
  };
38866
+ list_shares_v1_file_shares_get: {
38867
+ parameters: {
38868
+ query?: never;
38869
+ header?: never;
38870
+ path?: never;
38871
+ cookie?: never;
38872
+ };
38873
+ requestBody?: never;
38874
+ responses: {
38875
+ /** @description Successful Response */
38876
+ 200: {
38877
+ headers: {
38878
+ [name: string]: unknown;
38879
+ };
38880
+ content: {
38881
+ 'application/json': components['schemas']['FileShareResponse'][];
38882
+ };
38883
+ };
38884
+ };
38885
+ };
38886
+ get_share_v1_file_shares__share_id__get: {
38887
+ parameters: {
38888
+ query?: never;
38889
+ header?: never;
38890
+ path: {
38891
+ share_id: string;
38892
+ };
38893
+ cookie?: never;
38894
+ };
38895
+ requestBody?: never;
38896
+ responses: {
38897
+ /** @description Successful Response */
38898
+ 200: {
38899
+ headers: {
38900
+ [name: string]: unknown;
38901
+ };
38902
+ content: {
38903
+ 'application/json': components['schemas']['FileShareResponse'];
38904
+ };
38905
+ };
38906
+ /** @description Validation Error */
38907
+ 422: {
38908
+ headers: {
38909
+ [name: string]: unknown;
38910
+ };
38911
+ content: {
38912
+ 'application/json': components['schemas']['HTTPValidationError'];
38913
+ };
38914
+ };
38915
+ };
38916
+ };
38917
+ revoke_v1_file_shares__share_id__delete: {
38918
+ parameters: {
38919
+ query?: never;
38920
+ header?: never;
38921
+ path: {
38922
+ share_id: string;
38923
+ };
38924
+ cookie?: never;
38925
+ };
38926
+ requestBody?: never;
38927
+ responses: {
38928
+ /** @description Successful Response */
38929
+ 204: {
38930
+ headers: {
38931
+ [name: string]: unknown;
38932
+ };
38933
+ content?: never;
38934
+ };
38935
+ /** @description Validation Error */
38936
+ 422: {
38937
+ headers: {
38938
+ [name: string]: unknown;
38939
+ };
38940
+ content: {
38941
+ 'application/json': components['schemas']['HTTPValidationError'];
38942
+ };
38943
+ };
38944
+ };
38945
+ };
38946
+ get_file_v1_file_shares__share_id__file_get: {
38947
+ parameters: {
38948
+ query?: {
38949
+ kind?: string;
38950
+ };
38951
+ header?: never;
38952
+ path: {
38953
+ share_id: string;
38954
+ };
38955
+ cookie?: never;
38956
+ };
38957
+ requestBody?: never;
38958
+ responses: {
38959
+ /** @description Successful Response */
38960
+ 200: {
38961
+ headers: {
38962
+ [name: string]: unknown;
38963
+ };
38964
+ content: {
38965
+ 'application/json': unknown;
38966
+ };
38967
+ };
38968
+ /** @description Validation Error */
38969
+ 422: {
38970
+ headers: {
38971
+ [name: string]: unknown;
38972
+ };
38973
+ content: {
38974
+ 'application/json': components['schemas']['HTTPValidationError'];
38975
+ };
38976
+ };
38977
+ };
38978
+ };
38979
+ prepare_sign_v1_file_shares__share_id__sign_prepare_post: {
38980
+ parameters: {
38981
+ query?: never;
38982
+ header?: never;
38983
+ path: {
38984
+ share_id: string;
38985
+ };
38986
+ cookie?: never;
38987
+ };
38988
+ requestBody: {
38989
+ content: {
38990
+ 'application/json': components['schemas']['SignRequestPrepare'];
38991
+ };
38992
+ };
38993
+ responses: {
38994
+ /** @description Successful Response */
38995
+ 200: {
38996
+ headers: {
38997
+ [name: string]: unknown;
38998
+ };
38999
+ content: {
39000
+ 'application/json': components['schemas']['SignRequestPrepareResponse'];
39001
+ };
39002
+ };
39003
+ /** @description Validation Error */
39004
+ 422: {
39005
+ headers: {
39006
+ [name: string]: unknown;
39007
+ };
39008
+ content: {
39009
+ 'application/json': components['schemas']['HTTPValidationError'];
39010
+ };
39011
+ };
39012
+ };
39013
+ };
39014
+ sign_file_v1_file_shares__share_id__sign_post: {
39015
+ parameters: {
39016
+ query?: never;
39017
+ header?: never;
39018
+ path: {
39019
+ share_id: string;
39020
+ };
39021
+ cookie?: never;
39022
+ };
39023
+ requestBody: {
39024
+ content: {
39025
+ 'application/json': components['schemas']['SignRequestSign'];
39026
+ };
39027
+ };
39028
+ responses: {
39029
+ /** @description Successful Response */
39030
+ 200: {
39031
+ headers: {
39032
+ [name: string]: unknown;
39033
+ };
39034
+ content: {
39035
+ 'application/json': components['schemas']['FileShareResponse'];
39036
+ };
39037
+ };
39038
+ /** @description Validation Error */
39039
+ 422: {
39040
+ headers: {
39041
+ [name: string]: unknown;
39042
+ };
39043
+ content: {
39044
+ 'application/json': components['schemas']['HTTPValidationError'];
39045
+ };
39046
+ };
39047
+ };
39048
+ };
39049
+ decline_v1_file_shares__share_id__decline_post: {
39050
+ parameters: {
39051
+ query?: never;
39052
+ header?: never;
39053
+ path: {
39054
+ share_id: string;
39055
+ };
39056
+ cookie?: never;
39057
+ };
39058
+ requestBody?: never;
39059
+ responses: {
39060
+ /** @description Successful Response */
39061
+ 200: {
39062
+ headers: {
39063
+ [name: string]: unknown;
39064
+ };
39065
+ content: {
39066
+ 'application/json': components['schemas']['FileShareResponse'];
39067
+ };
39068
+ };
39069
+ /** @description Validation Error */
39070
+ 422: {
39071
+ headers: {
39072
+ [name: string]: unknown;
39073
+ };
39074
+ content: {
39075
+ 'application/json': components['schemas']['HTTPValidationError'];
39076
+ };
39077
+ };
39078
+ };
39079
+ };
39080
+ resend_v1_file_shares__share_id__resend_post: {
39081
+ parameters: {
39082
+ query?: never;
39083
+ header?: never;
39084
+ path: {
39085
+ share_id: string;
39086
+ };
39087
+ cookie?: never;
39088
+ };
39089
+ requestBody?: never;
39090
+ responses: {
39091
+ /** @description Successful Response */
39092
+ 200: {
39093
+ headers: {
39094
+ [name: string]: unknown;
39095
+ };
39096
+ content: {
39097
+ 'application/json': components['schemas']['FileShareResponse'];
39098
+ };
39099
+ };
39100
+ /** @description Validation Error */
39101
+ 422: {
39102
+ headers: {
39103
+ [name: string]: unknown;
39104
+ };
39105
+ content: {
39106
+ 'application/json': components['schemas']['HTTPValidationError'];
39107
+ };
39108
+ };
39109
+ };
39110
+ };
39111
+ create_share_v1_document__document_ext_id__file_shares_post: {
39112
+ parameters: {
39113
+ query?: never;
39114
+ header?: never;
39115
+ path: {
39116
+ document_ext_id: string;
39117
+ };
39118
+ cookie?: never;
39119
+ };
39120
+ requestBody: {
39121
+ content: {
39122
+ 'application/json': components['schemas']['CreateFileShare'];
39123
+ };
39124
+ };
39125
+ responses: {
39126
+ /** @description Successful Response */
39127
+ 200: {
39128
+ headers: {
39129
+ [name: string]: unknown;
39130
+ };
39131
+ content: {
39132
+ 'application/json': components['schemas']['FileShareResponse'];
39133
+ };
39134
+ };
39135
+ /** @description Validation Error */
39136
+ 422: {
39137
+ headers: {
39138
+ [name: string]: unknown;
39139
+ };
39140
+ content: {
39141
+ 'application/json': components['schemas']['HTTPValidationError'];
39142
+ };
39143
+ };
39144
+ };
39145
+ };
39146
+ publish_v1_document__document_ext_id__file_shares__share_id__publish_post: {
39147
+ parameters: {
39148
+ query?: never;
39149
+ header?: never;
39150
+ path: {
39151
+ document_ext_id: string;
39152
+ share_id: string;
39153
+ };
39154
+ cookie?: never;
39155
+ };
39156
+ requestBody?: never;
39157
+ responses: {
39158
+ /** @description Successful Response */
39159
+ 200: {
39160
+ headers: {
39161
+ [name: string]: unknown;
39162
+ };
39163
+ content: {
39164
+ 'application/json': components['schemas']['FileShareResponse'];
39165
+ };
39166
+ };
39167
+ /** @description Validation Error */
39168
+ 422: {
39169
+ headers: {
39170
+ [name: string]: unknown;
39171
+ };
39172
+ content: {
39173
+ 'application/json': components['schemas']['HTTPValidationError'];
39174
+ };
39175
+ };
39176
+ };
39177
+ };
38640
39178
  }
38641
39179
 
38642
39180
  /**
@@ -39766,6 +40304,26 @@ interface SessionClaims {
39766
40304
  /** A JWT's claims, or `null` for a missing, opaque or malformed token. */
39767
40305
  declare function readSessionClaims(token: string | null | undefined): SessionClaims | null;
39768
40306
 
40307
+ /** Password-verified SSO disconnect. The identity stays fixed; only its password wrap and email change. */
40308
+
40309
+ interface DisconnectSsoParams {
40310
+ email: string;
40311
+ userExtId: string;
40312
+ newEmail: string;
40313
+ password: string;
40314
+ code?: string;
40315
+ }
40316
+ type DisconnectSsoDeps = {
40317
+ fetchClient: ReturnType<typeof createFetchClient<paths>>;
40318
+ deploymentDomain: string;
40319
+ };
40320
+ /** Verify a replacement email. Sending a code never changes the account or sign-in method. */
40321
+ declare function requestSsoDisconnectCode(newEmail: string, deps: Pick<DisconnectSsoDeps, 'fetchClient'>): Promise<void>;
40322
+ /** Confirm the master password, sign the exact change and preserve the same identity under the new email. */
40323
+ declare function disconnectSso(params: DisconnectSsoParams, deps: DisconnectSsoDeps): Promise<{
40324
+ email: string;
40325
+ }>;
40326
+
39769
40327
  /**
39770
40328
  * createArbiClient() — SDK entry point
39771
40329
  *
@@ -40071,4 +40629,4 @@ interface OpenAllDeps {
40071
40629
  */
40072
40630
  declare function createAllWorkspacesOpener(deps: OpenAllDeps): () => Promise<void>;
40073
40631
 
40074
- export { type $defs, ACCESS_TOKEN_STORAGE_KEY, API_PREFIX, type ArbiClient, type ArbiClientOptions, type AuthStateProvider, type AutoReloginMiddlewareConfig, type BearerAuthMiddlewareConfig, CALL_KEY_BYTES, CHAT_KEY_BYTES, type CallPeer, type ChangePasswordParams, type ChangePasswordRequest, type ChangePasswordResult, type CryptoProvider, ENCRYPTED_RECOVERY_KEY_SIZE, type KeyLoginCredentials, type KeyPair, type ListedWorkspaceKey, type LoginCredentials, type LoginParams, type LoginProfile, type LoginProvider, type LoginRequest, type LoginResponse, type LoginResult, type LoginWithKeyParams, type OfflineSealer, type OfflineSealerOptions, type OnReloginSuccess, type OpenAllDeps, type ParsedRecoveryUrl, type PasswordChangeCredentials, RECOVERY_KEY_ERRORS, type RecoveryKeyParams, type RecoveryKeyValidationResult, type RegisterParams, type RegisterRequest, type RegisterResult, type RegistrationCredentials, type ReloginDeps, type ReloginFailure, type ReloginHandler, type ReopenDeps, SECURE_MAIL_KEY_BYTES, type SealedSecureMail, type SecureMailCiphertexts, type SecureMailClaim, type SessionClaims, type SessionData, type SessionKeys, type SessionManager, type SessionManagerOptions, type SessionPersistence, type SessionSignIn, type SessionState, type SessionStateStorage, type SessionUser, type SignInHooks, type SsoTokenSource, type StoredSessionState, type TokenProvider, UNENCRYPTED_RECOVERY_KEY_SIZE, type UserKeypairs, type WebSocketClientMessage, type WebSocketServerMessage, type WorkspaceKeyRefreshProvider, type WorkspaceKeys, type WorkspaceOpenProvider, type WorkspaceOpens, type WsAgentDmStatusMessage, type WsAuthMessage, type WsAuthResultMessage, type WsBatchCompleteMessage, type WsChatMessageMessage, type WsChatReadMessage, type WsChatUpdatedMessage, type WsConnectionClosedMessage, type WsConversationMessagePostedMessage, type WsErrorMessage, type WsNotificationResponse, type WsPresenceUpdateMessage, type WsResponseCompleteMessage, type WsTaskUpdateMessage, authRequestError, base64Decode, base64Encode, base64ToBytes, base64UrlToBytes, browserSessionStateStorage, buildCallFragment, buildCallLink, buildWebSocketUrl, bytesToBase64, bytesToBase64Url, canPersistSession, changePassword, clearAllData, clearSession, type components, computeSharedSecret, createAllWorkspacesOpener, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createOfflineSealer, createRecoveryFile, createRecoveryUrl, createReloginHandler, createSessionManager, createWorkspaceKeys, createWorkspaceOpens, createWorkspaceReopener, decodeCallKey, decodeSecureMailKey, decryptCallTitle, decryptFile, decryptMessage, decryptMessageWithSharedSecret, decryptRecoveryKey, decryptWithChatKey, deriveDirectChatKey, deriveEncryptionKeypairFromSigning, derivePublicKey, encodeCallKey, encryptCallTitle, encryptFile, encryptMessage, encryptMessageWithSharedSecret, encryptRecoveryKey, encryptWithChatKey, encryptionKeypairFromSigningKey, generateCallKey, generateChatKey, generateIdentityKeypair, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRegistrationCredentials, generateUserKeypairs, getRecoveryKeyFilename, getSession, getUserEncryptionKeypair, hasSession, identityFromLoginResponse, initSodium, initializeDatabase, isEncryptedRecoveryKey, isMessageType, openCallKeyOf, openSealedCallKey, openSealedChatKey, openSecureMail, type operations, parseCallFragment, parseRecoveryUrl, parseServerMessage, passwordChangeErrorMessage, type paths, prewarmKeyPairs, readSessionClaims, saveSession, sealCallKey, sealCallKeyForPeers, sealChatKey, sealKeyForSession, sealSecureMail, sealedBoxDecrypt, sealedBoxEncrypt, secureMailClaim, signMessage, unlockIdentityWithPassword, unwrapIdentityKey, unwrapWorkspaceKey, updateWrappedIdentityKey, validateRecoveryKeyFile, type webhooks, workspaceKeyRequiredOf, wrapIdentityKey };
40632
+ export { type $defs, ACCESS_TOKEN_STORAGE_KEY, API_PREFIX, type ArbiClient, type ArbiClientOptions, type AuthStateProvider, type AutoReloginMiddlewareConfig, type BearerAuthMiddlewareConfig, CALL_KEY_BYTES, CHAT_KEY_BYTES, type CallPeer, type ChangePasswordParams, type ChangePasswordRequest, type ChangePasswordResult, type CryptoProvider, type DisconnectSsoParams, ENCRYPTED_RECOVERY_KEY_SIZE, type KeyLoginCredentials, type KeyPair, type ListedWorkspaceKey, type LoginCredentials, type LoginParams, type LoginProfile, type LoginProvider, type LoginRequest, type LoginResponse, type LoginResult, type LoginWithKeyParams, type OfflineSealer, type OfflineSealerOptions, type OnReloginSuccess, type OpenAllDeps, type ParsedRecoveryUrl, type PasswordChangeCredentials, RECOVERY_KEY_ERRORS, type RecoveryKeyParams, type RecoveryKeyValidationResult, type RegisterParams, type RegisterRequest, type RegisterResult, type RegistrationCredentials, type ReloginDeps, type ReloginFailure, type ReloginHandler, type ReopenDeps, SECURE_MAIL_KEY_BYTES, type SealedSecureMail, type SecureMailCiphertexts, type SecureMailClaim, type SessionClaims, type SessionData, type SessionKeys, type SessionManager, type SessionManagerOptions, type SessionPersistence, type SessionSignIn, type SessionState, type SessionStateStorage, type SessionUser, type SignInHooks, type SsoTokenSource, type StoredSessionState, type TokenProvider, UNENCRYPTED_RECOVERY_KEY_SIZE, type UserKeypairs, type WebSocketClientMessage, type WebSocketServerMessage, type WorkspaceKeyRefreshProvider, type WorkspaceKeys, type WorkspaceOpenProvider, type WorkspaceOpens, type WsAgentDmStatusMessage, type WsAuthMessage, type WsAuthResultMessage, type WsBatchCompleteMessage, type WsChatMessageMessage, type WsChatReadMessage, type WsChatUpdatedMessage, type WsConnectionClosedMessage, type WsConversationMessagePostedMessage, type WsErrorMessage, type WsNotificationResponse, type WsPresenceUpdateMessage, type WsResponseCompleteMessage, type WsTaskUpdateMessage, authRequestError, base64Decode, base64Encode, base64ToBytes, base64UrlToBytes, browserSessionStateStorage, buildCallFragment, buildCallLink, buildWebSocketUrl, bytesToBase64, bytesToBase64Url, canPersistSession, changePassword, clearAllData, clearSession, type components, computeSharedSecret, createAllWorkspacesOpener, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createOfflineSealer, createRecoveryFile, createRecoveryUrl, createReloginHandler, createSessionManager, createWorkspaceKeys, createWorkspaceOpens, createWorkspaceReopener, decodeCallKey, decodeSecureMailKey, decryptCallTitle, decryptFile, decryptMessage, decryptMessageWithSharedSecret, decryptRecoveryKey, decryptWithChatKey, deriveDirectChatKey, deriveEncryptionKeypairFromSigning, derivePublicKey, disconnectSso, encodeCallKey, encryptCallTitle, encryptFile, encryptMessage, encryptMessageWithSharedSecret, encryptRecoveryKey, encryptWithChatKey, encryptionKeypairFromSigningKey, generateCallKey, generateChatKey, generateIdentityKeypair, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRegistrationCredentials, generateUserKeypairs, getRecoveryKeyFilename, getSession, getUserEncryptionKeypair, hasSession, identityFromLoginResponse, initSodium, initializeDatabase, isEncryptedRecoveryKey, isMessageType, openCallKeyOf, openSealedCallKey, openSealedChatKey, openSecureMail, type operations, parseCallFragment, parseRecoveryUrl, parseServerMessage, passwordChangeErrorMessage, type paths, prewarmKeyPairs, readSessionClaims, requestSsoDisconnectCode, saveSession, sealCallKey, sealCallKeyForPeers, sealChatKey, sealKeyForSession, sealSecureMail, sealedBoxDecrypt, sealedBoxEncrypt, secureMailClaim, signMessage, unlockIdentityWithPassword, unwrapIdentityKey, unwrapWorkspaceKey, updateWrappedIdentityKey, validateRecoveryKeyFile, type webhooks, workspaceKeyRequiredOf, wrapIdentityKey };
package/dist/index.js CHANGED
@@ -1756,6 +1756,45 @@ async function changePassword(params, deps) {
1756
1756
  return { wrappedIdentityKey: request.wrapped_identity_key };
1757
1757
  }
1758
1758
 
1759
+ // src/auth/disconnect-sso.ts
1760
+ var endpointClient = (client) => client;
1761
+ async function requestSsoDisconnectCode(newEmail, deps) {
1762
+ const response = await endpointClient(deps.fetchClient).POST("/v1/user/sso-disconnect-code", {
1763
+ body: { new_email: newEmail.trim().toLowerCase() }
1764
+ });
1765
+ if (response.error) throw new Error(passwordChangeErrorMessage(response.error));
1766
+ }
1767
+ async function disconnectSso(params, deps) {
1768
+ const email = params.newEmail.trim().toLowerCase();
1769
+ const identity = await unlockIdentityWithPassword(
1770
+ params.email,
1771
+ params.password,
1772
+ deps.deploymentDomain
1773
+ );
1774
+ const current = await generateUserKeypairs(params.email, params.password, deps.deploymentDomain);
1775
+ const replacement = await generateUserKeypairs(email, params.password, deps.deploymentDomain);
1776
+ const timestamp = Math.floor(Date.now() / 1e3);
1777
+ const newLoginKey = bytesToBase64(replacement.signingKeyPair.publicKey);
1778
+ const wrappedIdentityKey = wrapIdentityKey(identity, replacement.signingKeyPair.secretKey);
1779
+ const signature = signMessage(
1780
+ `disconnect-sso|${params.userExtId}|${email}|${timestamp}|${newLoginKey}|${wrappedIdentityKey}`,
1781
+ current.signingKeyPair.secretKey
1782
+ );
1783
+ const response = await endpointClient(deps.fetchClient).POST("/v1/user/disconnect-sso", {
1784
+ body: {
1785
+ new_email: email,
1786
+ verification_code: params.code || void 0,
1787
+ timestamp,
1788
+ signature,
1789
+ new_login_key: newLoginKey,
1790
+ wrapped_identity_key: wrappedIdentityKey
1791
+ }
1792
+ });
1793
+ if (response.error) throw new Error(passwordChangeErrorMessage(response.error));
1794
+ await updateWrappedIdentityKey(wrappedIdentityKey);
1795
+ return { email };
1796
+ }
1797
+
1759
1798
  // src/client.ts
1760
1799
  var API_PREFIX = "/v1";
1761
1800
  var RETRYABLE_CODES = /* @__PURE__ */ new Set([
@@ -2173,6 +2212,6 @@ function isMessageType(msg, type) {
2173
2212
  return msg.type === type;
2174
2213
  }
2175
2214
 
2176
- export { ACCESS_TOKEN_STORAGE_KEY, API_PREFIX, CALL_KEY_BYTES, CHAT_KEY_BYTES, ENCRYPTED_RECOVERY_KEY_SIZE, RECOVERY_KEY_ERRORS, SECURE_MAIL_KEY_BYTES, UNENCRYPTED_RECOVERY_KEY_SIZE, authRequestError, base64Decode, base64Encode, base64ToBytes, base64UrlToBytes, browserSessionStateStorage, buildCallFragment, buildCallLink, buildWebSocketUrl, bytesToBase64, bytesToBase64Url, canPersistSession, changePassword, clearAllData, clearSession, computeSharedSecret, createAllWorkspacesOpener, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createOfflineSealer, createRecoveryFile, createRecoveryUrl, createReloginHandler, createSessionManager, createWorkspaceKeys, createWorkspaceOpens, createWorkspaceReopener, decodeCallKey, decodeSecureMailKey, decryptCallTitle, decryptFile, decryptMessage, decryptMessageWithSharedSecret, decryptRecoveryKey, decryptWithChatKey, deriveDirectChatKey, deriveEncryptionKeypairFromSigning, derivePublicKey, encodeCallKey, encryptCallTitle, encryptFile, encryptMessage, encryptMessageWithSharedSecret, encryptRecoveryKey, encryptWithChatKey, encryptionKeypairFromSigningKey, generateCallKey, generateChatKey, generateIdentityKeypair, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRegistrationCredentials, generateUserKeypairs, getRecoveryKeyFilename, getSession, getUserEncryptionKeypair, hasSession, identityFromLoginResponse, initSodium, initializeDatabase, isEncryptedRecoveryKey, isMessageType, openCallKeyOf, openSealedCallKey, openSealedChatKey, openSecureMail, parseCallFragment, parseRecoveryUrl, parseServerMessage, passwordChangeErrorMessage, prewarmKeyPairs, readSessionClaims, saveSession, sealCallKey, sealCallKeyForPeers, sealChatKey, sealKeyForSession, sealSecureMail, sealedBoxDecrypt, sealedBoxEncrypt, secureMailClaim, signMessage, unlockIdentityWithPassword, unwrapIdentityKey, unwrapWorkspaceKey, updateWrappedIdentityKey, validateRecoveryKeyFile, workspaceKeyRequiredOf, wrapIdentityKey };
2215
+ export { ACCESS_TOKEN_STORAGE_KEY, API_PREFIX, CALL_KEY_BYTES, CHAT_KEY_BYTES, ENCRYPTED_RECOVERY_KEY_SIZE, RECOVERY_KEY_ERRORS, SECURE_MAIL_KEY_BYTES, UNENCRYPTED_RECOVERY_KEY_SIZE, authRequestError, base64Decode, base64Encode, base64ToBytes, base64UrlToBytes, browserSessionStateStorage, buildCallFragment, buildCallLink, buildWebSocketUrl, bytesToBase64, bytesToBase64Url, canPersistSession, changePassword, clearAllData, clearSession, computeSharedSecret, createAllWorkspacesOpener, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createOfflineSealer, createRecoveryFile, createRecoveryUrl, createReloginHandler, createSessionManager, createWorkspaceKeys, createWorkspaceOpens, createWorkspaceReopener, decodeCallKey, decodeSecureMailKey, decryptCallTitle, decryptFile, decryptMessage, decryptMessageWithSharedSecret, decryptRecoveryKey, decryptWithChatKey, deriveDirectChatKey, deriveEncryptionKeypairFromSigning, derivePublicKey, disconnectSso, encodeCallKey, encryptCallTitle, encryptFile, encryptMessage, encryptMessageWithSharedSecret, encryptRecoveryKey, encryptWithChatKey, encryptionKeypairFromSigningKey, generateCallKey, generateChatKey, generateIdentityKeypair, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRegistrationCredentials, generateUserKeypairs, getRecoveryKeyFilename, getSession, getUserEncryptionKeypair, hasSession, identityFromLoginResponse, initSodium, initializeDatabase, isEncryptedRecoveryKey, isMessageType, openCallKeyOf, openSealedCallKey, openSealedChatKey, openSecureMail, parseCallFragment, parseRecoveryUrl, parseServerMessage, passwordChangeErrorMessage, prewarmKeyPairs, readSessionClaims, requestSsoDisconnectCode, saveSession, sealCallKey, sealCallKeyForPeers, sealChatKey, sealKeyForSession, sealSecureMail, sealedBoxDecrypt, sealedBoxEncrypt, secureMailClaim, signMessage, unlockIdentityWithPassword, unwrapIdentityKey, unwrapWorkspaceKey, updateWrappedIdentityKey, validateRecoveryKeyFile, workspaceKeyRequiredOf, wrapIdentityKey };
2177
2216
  //# sourceMappingURL=index.js.map
2178
2217
  //# sourceMappingURL=index.js.map