internal: incomplete vault systems behind feature flag (#2340)
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
import { ErrorMessage } from '../../Error/ErrorMessage'
|
||||
import { ApiCallError } from '../../Error/ApiCallError'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
import { ApiEndpointParam } from '../../Request/ApiEndpointParam'
|
||||
|
||||
import { SubscriptionServerInterface } from '../../Server/Subscription/SubscriptionServerInterface'
|
||||
import { AppleIAPConfirmResponseBody } from './../../Response/Subscription/AppleIAPConfirmResponseBody'
|
||||
import { SubscriptionInviteAcceptResponseBody } from '../../Response/Subscription/SubscriptionInviteAcceptResponseBody'
|
||||
import { SubscriptionInviteCancelResponseBody } from '../../Response/Subscription/SubscriptionInviteCancelResponseBody'
|
||||
import { SubscriptionInviteListResponseBody } from '../../Response/Subscription/SubscriptionInviteListResponseBody'
|
||||
import { SubscriptionInviteResponseBody } from '../../Response/Subscription/SubscriptionInviteResponseBody'
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { HttpResponse, ApiEndpointParam } from '@standardnotes/responses'
|
||||
|
||||
import { SubscriptionApiServiceInterface } from './SubscriptionApiServiceInterface'
|
||||
import { SubscriptionApiOperations } from './SubscriptionApiOperations'
|
||||
|
||||
@@ -2,4 +2,5 @@ export enum UserApiOperations {
|
||||
Registering,
|
||||
SubmittingRequest,
|
||||
DeletingAccount,
|
||||
UpdatingUser,
|
||||
}
|
||||
|
||||
@@ -5,8 +5,7 @@ import { ErrorMessage } from '../../Error/ErrorMessage'
|
||||
import { ApiCallError } from '../../Error/ApiCallError'
|
||||
import { UserServerInterface } from '../../Server/User/UserServerInterface'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
import { ApiEndpointParam } from '../../Request/ApiEndpointParam'
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { HttpResponse, ApiEndpointParam } from '@standardnotes/responses'
|
||||
|
||||
import { UserDeletionResponseBody } from '../../Response/User/UserDeletionResponseBody'
|
||||
import { UserRegistrationResponseBody } from '../../Response/User/UserRegistrationResponseBody'
|
||||
@@ -15,6 +14,7 @@ import { UserRequestServerInterface } from '../../Server/UserRequest/UserRequest
|
||||
|
||||
import { UserApiOperations } from './UserApiOperations'
|
||||
import { UserApiServiceInterface } from './UserApiServiceInterface'
|
||||
import { UserUpdateResponse } from '../../Response/User/UserUpdateResponse'
|
||||
|
||||
export class UserApiService implements UserApiServiceInterface {
|
||||
private operationsInProgress: Map<UserApiOperations, boolean>
|
||||
@@ -35,7 +35,7 @@ export class UserApiService implements UserApiServiceInterface {
|
||||
|
||||
return response
|
||||
} catch (error) {
|
||||
throw new ApiCallError(ErrorMessage.GenericRegistrationFail)
|
||||
throw new ApiCallError(ErrorMessage.GenericFail)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +84,23 @@ export class UserApiService implements UserApiServiceInterface {
|
||||
}
|
||||
}
|
||||
|
||||
async updateUser(updateDTO: { userUuid: string }): Promise<HttpResponse<UserUpdateResponse>> {
|
||||
this.lockOperation(UserApiOperations.UpdatingUser)
|
||||
|
||||
try {
|
||||
const response = await this.userServer.update({
|
||||
[ApiEndpointParam.ApiVersion]: ApiVersion.v0,
|
||||
user_uuid: updateDTO.userUuid,
|
||||
})
|
||||
|
||||
this.unlockOperation(UserApiOperations.UpdatingUser)
|
||||
|
||||
return response
|
||||
} catch (error) {
|
||||
throw new ApiCallError(ErrorMessage.GenericFail)
|
||||
}
|
||||
}
|
||||
|
||||
private lockOperation(operation: UserApiOperations): void {
|
||||
if (this.operationsInProgress.get(operation)) {
|
||||
throw new ApiCallError(ErrorMessage.GenericInProgress)
|
||||
|
||||
@@ -5,6 +5,7 @@ import { HttpResponse } from '@standardnotes/responses'
|
||||
import { UserDeletionResponseBody } from '../../Response/User/UserDeletionResponseBody'
|
||||
import { UserRegistrationResponseBody } from '../../Response/User/UserRegistrationResponseBody'
|
||||
import { UserRequestResponseBody } from '../../Response/UserRequest/UserRequestResponseBody'
|
||||
import { UserUpdateResponse } from '../../Response/User/UserUpdateResponse'
|
||||
|
||||
export interface UserApiServiceInterface {
|
||||
register(registerDTO: {
|
||||
@@ -13,9 +14,12 @@ export interface UserApiServiceInterface {
|
||||
keyParams: RootKeyParamsInterface
|
||||
ephemeral: boolean
|
||||
}): Promise<HttpResponse<UserRegistrationResponseBody>>
|
||||
updateUser(updateDTO: { userUuid: string }): Promise<HttpResponse<UserUpdateResponse>>
|
||||
|
||||
submitUserRequest(dto: {
|
||||
userUuid: string
|
||||
requestType: UserRequestType
|
||||
}): Promise<HttpResponse<UserRequestResponseBody>>
|
||||
|
||||
deleteAccount(userUuid: string): Promise<HttpResponse<UserDeletionResponseBody>>
|
||||
}
|
||||
|
||||
@@ -53,7 +53,15 @@ export class HttpService implements HttpServiceInterface {
|
||||
this.host = host
|
||||
}
|
||||
|
||||
getHost(): string {
|
||||
return this.host
|
||||
}
|
||||
|
||||
async get<T>(path: string, params?: HttpRequestParams, authentication?: string): Promise<HttpResponse<T>> {
|
||||
if (!this.host) {
|
||||
throw new Error('Attempting to make network request before host is set')
|
||||
}
|
||||
|
||||
return this.runHttp({
|
||||
url: joinPaths(this.host, path),
|
||||
params,
|
||||
@@ -62,7 +70,20 @@ export class HttpService implements HttpServiceInterface {
|
||||
})
|
||||
}
|
||||
|
||||
async getExternal<T>(url: string, params?: HttpRequestParams): Promise<HttpResponse<T>> {
|
||||
return this.runHttp({
|
||||
url,
|
||||
params,
|
||||
verb: HttpVerb.Get,
|
||||
external: true,
|
||||
})
|
||||
}
|
||||
|
||||
async post<T>(path: string, params?: HttpRequestParams, authentication?: string): Promise<HttpResponse<T>> {
|
||||
if (!this.host) {
|
||||
throw new Error('Attempting to make network request before host is set')
|
||||
}
|
||||
|
||||
return this.runHttp({
|
||||
url: joinPaths(this.host, path),
|
||||
params,
|
||||
|
||||
@@ -3,8 +3,10 @@ import { HttpRequest, HttpRequestParams, HttpResponse, HttpResponseMeta } from '
|
||||
|
||||
export interface HttpServiceInterface {
|
||||
setHost(host: string): void
|
||||
getHost(): string
|
||||
setSession(session: Session): void
|
||||
get<T>(path: string, params?: HttpRequestParams, authentication?: string): Promise<HttpResponse<T>>
|
||||
getExternal<T>(url: string, params?: HttpRequestParams): Promise<HttpResponse<T>>
|
||||
post<T>(path: string, params?: HttpRequestParams, authentication?: string): Promise<HttpResponse<T>>
|
||||
put<T>(path: string, params?: HttpRequestParams, authentication?: string): Promise<HttpResponse<T>>
|
||||
patch<T>(path: string, params: HttpRequestParams, authentication?: string): Promise<HttpResponse<T>>
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
export enum ApiEndpointParam {
|
||||
LastSyncToken = 'sync_token',
|
||||
PaginationToken = 'cursor_token',
|
||||
SyncDlLimit = 'limit',
|
||||
SyncPayloads = 'items',
|
||||
ApiVersion = 'api',
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export type CreateAsymmetricMessageParams = {
|
||||
recipientUuid: string
|
||||
encryptedMessage: string
|
||||
replaceabilityIdentifier?: string
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type DeleteAsymmetricMessageRequestParams = {
|
||||
messageUuid: string
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
export type GetOutboundAsymmetricMessagesRequestParams = {}
|
||||
@@ -0,0 +1,2 @@
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
export type GetUserAsymmetricMessagesRequestParams = {}
|
||||
@@ -0,0 +1,4 @@
|
||||
export type UpdateAsymmetricMessageParams = {
|
||||
messageUuid: string
|
||||
encryptedMessage: string
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { ValetTokenOperation } from '@standardnotes/responses'
|
||||
import { SharedVaultMoveType } from './SharedVaultMoveType'
|
||||
|
||||
export type CreateSharedVaultValetTokenParams = {
|
||||
sharedVaultUuid: string
|
||||
fileUuid?: string
|
||||
remoteIdentifier: string
|
||||
operation: ValetTokenOperation
|
||||
unencryptedFileSize?: number
|
||||
moveOperationType?: SharedVaultMoveType
|
||||
sharedVaultToSharedVaultMoveTargetUuid?: string
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export type SharedVaultMoveType = 'shared-vault-to-user' | 'user-to-shared-vault' | 'shared-vault-to-shared-vault'
|
||||
@@ -0,0 +1,4 @@
|
||||
export type AcceptInviteRequestParams = {
|
||||
sharedVaultUuid: string
|
||||
inviteUuid: string
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { SharedVaultPermission } from '@standardnotes/responses'
|
||||
|
||||
export type CreateSharedVaultInviteParams = {
|
||||
sharedVaultUuid: string
|
||||
recipientUuid: string
|
||||
encryptedMessage: string
|
||||
permissions: SharedVaultPermission
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export type DeclineInviteRequestParams = {
|
||||
sharedVaultUuid: string
|
||||
inviteUuid: string
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type DeleteAllSharedVaultInvitesRequestParams = {
|
||||
sharedVaultUuid: string
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export type DeleteInviteRequestParams = {
|
||||
sharedVaultUuid: string
|
||||
inviteUuid: string
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
export type GetOutboundUserInvitesRequestParams = {}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type GetSharedVaultInvitesRequestParams = {
|
||||
sharedVaultUuid: string
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
export type GetUserInvitesRequestParams = {}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { SharedVaultPermission } from '@standardnotes/responses'
|
||||
|
||||
export type UpdateSharedVaultInviteParams = {
|
||||
sharedVaultUuid: string
|
||||
inviteUuid: string
|
||||
encryptedMessage: string
|
||||
permissions?: SharedVaultPermission
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export type DeleteSharedVaultUserRequestParams = {
|
||||
sharedVaultUuid: string
|
||||
userUuid: string
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type GetSharedVaultUsersRequestParams = {
|
||||
sharedVaultUuid: string
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApiEndpointParam } from '../ApiEndpointParam'
|
||||
import { ApiEndpointParam } from '@standardnotes/responses'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
|
||||
export type SubscriptionInviteCancelRequestParams = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApiEndpointParam } from '../ApiEndpointParam'
|
||||
import { ApiEndpointParam } from '@standardnotes/responses'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
|
||||
export type SubscriptionInviteDeclineRequestParams = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApiEndpointParam } from '../ApiEndpointParam'
|
||||
import { ApiEndpointParam } from '@standardnotes/responses'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
|
||||
export type SubscriptionInviteListRequestParams = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApiEndpointParam } from '../ApiEndpointParam'
|
||||
import { ApiEndpointParam } from '@standardnotes/responses'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
|
||||
export type SubscriptionInviteRequestParams = {
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
import { AnyKeyParamsContent } from '@standardnotes/common'
|
||||
import { ApiEndpointParam } from '../ApiEndpointParam'
|
||||
import { ApiEndpointParam } from '@standardnotes/responses'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
|
||||
export type UserRegistrationRequestParams = AnyKeyParamsContent & {
|
||||
[ApiEndpointParam.ApiVersion]: ApiVersion.v0
|
||||
[additionalParam: string]: unknown
|
||||
password: string
|
||||
email: string
|
||||
ephemeral: boolean
|
||||
[additionalParam: string]: unknown
|
||||
pkcPublicKey?: string
|
||||
pkcEncryptedPrivateKey?: string
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import { ApiEndpointParam } from '@standardnotes/responses'
|
||||
import { ApiVersion } from '../../Api/ApiVersion'
|
||||
|
||||
export type UserUpdateRequestParams = {
|
||||
[ApiEndpointParam.ApiVersion]: ApiVersion.v0
|
||||
user_uuid: string
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
export * from './ApiEndpointParam'
|
||||
export * from './Authenticator/DeleteAuthenticatorRequestParams'
|
||||
export * from './Authenticator/GenerateAuthenticatorAuthenticationOptionsRequestParams'
|
||||
export * from './Authenticator/ListAuthenticatorsRequestParams'
|
||||
@@ -17,3 +16,4 @@ export * from './Subscription/SubscriptionInviteRequestParams'
|
||||
export * from './User/UserRegistrationRequestParams'
|
||||
export * from './UserRequest/UserRequestRequestParams'
|
||||
export * from './WebSocket/WebSocketConnectionTokenRequestParams'
|
||||
export * from './SharedVault/SharedVaultMoveType'
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AsymmetricMessageServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type CreateAsymmetricMessageResponse = {
|
||||
message: AsymmetricMessageServerHash
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type DeleteAsymmetricMessageResponse = {
|
||||
success: boolean
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AsymmetricMessageServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type GetOutboundAsymmetricMessagesResponse = {
|
||||
messages: AsymmetricMessageServerHash[]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AsymmetricMessageServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type GetUserAsymmetricMessagesResponse = {
|
||||
messages: AsymmetricMessageServerHash[]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AsymmetricMessageServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type UpdateAsymmetricMessageResponse = {
|
||||
message: AsymmetricMessageServerHash
|
||||
}
|
||||
@@ -7,6 +7,9 @@ export interface GetRevisionResponseBody {
|
||||
items_key_id: string | null
|
||||
enc_item_key: string | null
|
||||
auth_hash: string | null
|
||||
user_uuid: string
|
||||
key_system_identifier: string | null
|
||||
shared_vault_uuid: string | null
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
import { SharedVaultUserServerHash, SharedVaultServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type CreateSharedVaultResponse = {
|
||||
sharedVault: SharedVaultServerHash
|
||||
sharedVaultUser: SharedVaultUserServerHash
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type CreateSharedVaultValetTokenResponse = {
|
||||
valetToken: string
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { SharedVaultServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type GetSharedVaultsResponse = {
|
||||
sharedVaults: SharedVaultServerHash[]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type AcceptInviteResponse = {
|
||||
success: boolean
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { SharedVaultInviteServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type CreateSharedVaultInviteResponse = {
|
||||
invite: SharedVaultInviteServerHash
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type DeclineInviteResponse = {
|
||||
success: boolean
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type DeleteAllSharedVaultInvitesResponse = {
|
||||
success: boolean
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type DeleteInviteResponse = {
|
||||
success: boolean
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { SharedVaultInviteServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type GetOutboundUserInvitesResponse = {
|
||||
invites: SharedVaultInviteServerHash[]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { SharedVaultInviteServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type GetSharedVaultInvitesResponse = {
|
||||
invites: SharedVaultInviteServerHash[]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { SharedVaultInviteServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type GetUserInvitesResponse = {
|
||||
invites: SharedVaultInviteServerHash[]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { SharedVaultInviteServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type UpdateSharedVaultInviteResponse = {
|
||||
invite: SharedVaultInviteServerHash
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export type DeleteSharedVaultUserResponse = {
|
||||
success: boolean
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { SharedVaultUserServerHash } from '@standardnotes/responses'
|
||||
|
||||
export type GetSharedVaultUsersResponse = {
|
||||
users: SharedVaultUserServerHash[]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export type UserUpdateResponse = {
|
||||
user: {
|
||||
uuid: string
|
||||
email: string
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,9 @@ export * from './Subscription/SubscriptionInviteCancelResponseBody'
|
||||
export * from './Subscription/SubscriptionInviteDeclineResponseBody'
|
||||
export * from './Subscription/SubscriptionInviteListResponseBody'
|
||||
export * from './Subscription/SubscriptionInviteResponseBody'
|
||||
|
||||
export * from './User/UserDeletionResponseBody'
|
||||
export * from './User/UserRegistrationResponseBody'
|
||||
|
||||
export * from './UserRequest/UserRequestResponseBody'
|
||||
export * from './WebSocket/WebSocketConnectionTokenResponseBody'
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { HttpServiceInterface } from '../../Http'
|
||||
import { CreateAsymmetricMessageParams } from '../../Request/AsymmetricMessage/CreateAsymmetricMessageParams'
|
||||
import { CreateAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/CreateAsymmetricMessageResponse'
|
||||
import { AsymmetricMessagesPaths } from './Paths'
|
||||
import { GetUserAsymmetricMessagesResponse } from '../../Response/AsymmetricMessage/GetUserAsymmetricMessagesResponse'
|
||||
import { AsymmetricMessageServerInterface } from './AsymmetricMessageServerInterface'
|
||||
import { DeleteAsymmetricMessageRequestParams } from '../../Request/AsymmetricMessage/DeleteAsymmetricMessageRequestParams'
|
||||
import { DeleteAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/DeleteAsymmetricMessageResponse'
|
||||
|
||||
export class AsymmetricMessageServer implements AsymmetricMessageServerInterface {
|
||||
constructor(private httpService: HttpServiceInterface) {}
|
||||
|
||||
createMessage(params: CreateAsymmetricMessageParams): Promise<HttpResponse<CreateAsymmetricMessageResponse>> {
|
||||
return this.httpService.post(AsymmetricMessagesPaths.createMessage, {
|
||||
recipient_uuid: params.recipientUuid,
|
||||
encrypted_message: params.encryptedMessage,
|
||||
replaceability_identifier: params.replaceabilityIdentifier,
|
||||
})
|
||||
}
|
||||
|
||||
getInboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>> {
|
||||
return this.httpService.get(AsymmetricMessagesPaths.getInboundUserMessages())
|
||||
}
|
||||
|
||||
getOutboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>> {
|
||||
return this.httpService.get(AsymmetricMessagesPaths.getOutboundUserMessages())
|
||||
}
|
||||
|
||||
getMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>> {
|
||||
return this.httpService.get(AsymmetricMessagesPaths.getMessages)
|
||||
}
|
||||
|
||||
deleteMessage(params: DeleteAsymmetricMessageRequestParams): Promise<HttpResponse<DeleteAsymmetricMessageResponse>> {
|
||||
return this.httpService.delete(AsymmetricMessagesPaths.deleteMessage(params.messageUuid))
|
||||
}
|
||||
|
||||
deleteAllInboundMessages(): Promise<HttpResponse<{ success: boolean }>> {
|
||||
return this.httpService.delete(AsymmetricMessagesPaths.deleteAllInboundMessages)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { CreateAsymmetricMessageParams } from '../../Request/AsymmetricMessage/CreateAsymmetricMessageParams'
|
||||
import { CreateAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/CreateAsymmetricMessageResponse'
|
||||
import { GetUserAsymmetricMessagesResponse } from '../../Response/AsymmetricMessage/GetUserAsymmetricMessagesResponse'
|
||||
import { DeleteAsymmetricMessageRequestParams } from '../../Request/AsymmetricMessage/DeleteAsymmetricMessageRequestParams'
|
||||
import { DeleteAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/DeleteAsymmetricMessageResponse'
|
||||
|
||||
export interface AsymmetricMessageServerInterface {
|
||||
createMessage(params: CreateAsymmetricMessageParams): Promise<HttpResponse<CreateAsymmetricMessageResponse>>
|
||||
|
||||
getInboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>>
|
||||
getOutboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>>
|
||||
getMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>>
|
||||
|
||||
deleteMessage(params: DeleteAsymmetricMessageRequestParams): Promise<HttpResponse<DeleteAsymmetricMessageResponse>>
|
||||
deleteAllInboundMessages(): Promise<HttpResponse<{ success: boolean }>>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
export const AsymmetricMessagesPaths = {
|
||||
createMessage: '/v1/asymmetric-messages',
|
||||
getMessages: '/v1/asymmetric-messages',
|
||||
updateMessage: (messageUuid: string) => `/v1/asymmetric-messages/${messageUuid}`,
|
||||
getInboundUserMessages: () => '/v1/asymmetric-messages',
|
||||
getOutboundUserMessages: () => '/v1/asymmetric-messages/outbound',
|
||||
deleteMessage: (messageUuid: string) => `/v1/asymmetric-messages/${messageUuid}`,
|
||||
deleteAllInboundMessages: '/v1/asymmetric-messages/inbound',
|
||||
}
|
||||
7
packages/api/src/Domain/Server/SharedVault/Paths.ts
Normal file
7
packages/api/src/Domain/Server/SharedVault/Paths.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export const SharedVaultsPaths = {
|
||||
getSharedVaults: '/v1/shared-vaults',
|
||||
createSharedVault: '/v1/shared-vaults',
|
||||
deleteSharedVault: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}`,
|
||||
updateSharedVault: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}`,
|
||||
createSharedVaultFileValetToken: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/valet-tokens`,
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { HttpServiceInterface } from '../../Http'
|
||||
import { SharedVaultServerInterface } from './SharedVaultServerInterface'
|
||||
import { SharedVaultsPaths } from './Paths'
|
||||
import { CreateSharedVaultResponse } from '../../Response/SharedVault/CreateSharedVaultResponse'
|
||||
import { GetSharedVaultsResponse } from '../../Response/SharedVault/GetSharedVaultsResponse'
|
||||
import { CreateSharedVaultValetTokenResponse } from '../../Response/SharedVault/CreateSharedVaultValetTokenResponse'
|
||||
import { CreateSharedVaultValetTokenParams } from '../../Request/SharedVault/CreateSharedVaultValetTokenParams'
|
||||
|
||||
export class SharedVaultServer implements SharedVaultServerInterface {
|
||||
constructor(private httpService: HttpServiceInterface) {}
|
||||
|
||||
getSharedVaults(): Promise<HttpResponse<GetSharedVaultsResponse>> {
|
||||
return this.httpService.get(SharedVaultsPaths.getSharedVaults)
|
||||
}
|
||||
|
||||
createSharedVault(): Promise<HttpResponse<CreateSharedVaultResponse>> {
|
||||
return this.httpService.post(SharedVaultsPaths.createSharedVault)
|
||||
}
|
||||
|
||||
deleteSharedVault(params: { sharedVaultUuid: string }): Promise<HttpResponse<boolean>> {
|
||||
return this.httpService.delete(SharedVaultsPaths.deleteSharedVault(params.sharedVaultUuid))
|
||||
}
|
||||
|
||||
createSharedVaultFileValetToken(
|
||||
params: CreateSharedVaultValetTokenParams,
|
||||
): Promise<HttpResponse<CreateSharedVaultValetTokenResponse>> {
|
||||
return this.httpService.post(SharedVaultsPaths.createSharedVaultFileValetToken(params.sharedVaultUuid), {
|
||||
file_uuid: params.fileUuid,
|
||||
remote_identifier: params.remoteIdentifier,
|
||||
operation: params.operation,
|
||||
unencrypted_file_size: params.unencryptedFileSize,
|
||||
move_operation_type: params.moveOperationType,
|
||||
shared_vault_to_shared_vault_move_target_uuid: params.sharedVaultToSharedVaultMoveTargetUuid,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { CreateSharedVaultResponse } from '../../Response/SharedVault/CreateSharedVaultResponse'
|
||||
|
||||
import { GetSharedVaultsResponse } from '../../Response/SharedVault/GetSharedVaultsResponse'
|
||||
import { CreateSharedVaultValetTokenResponse } from '../../Response/SharedVault/CreateSharedVaultValetTokenResponse'
|
||||
import { CreateSharedVaultValetTokenParams } from '../../Request/SharedVault/CreateSharedVaultValetTokenParams'
|
||||
|
||||
export interface SharedVaultServerInterface {
|
||||
getSharedVaults(): Promise<HttpResponse<GetSharedVaultsResponse>>
|
||||
|
||||
createSharedVault(): Promise<HttpResponse<CreateSharedVaultResponse>>
|
||||
deleteSharedVault(params: { sharedVaultUuid: string }): Promise<HttpResponse<boolean>>
|
||||
|
||||
createSharedVaultFileValetToken(
|
||||
params: CreateSharedVaultValetTokenParams,
|
||||
): Promise<HttpResponse<CreateSharedVaultValetTokenResponse>>
|
||||
}
|
||||
16
packages/api/src/Domain/Server/SharedVaultInvites/Paths.ts
Normal file
16
packages/api/src/Domain/Server/SharedVaultInvites/Paths.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
export const SharedVaultInvitesPaths = {
|
||||
createInvite: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/invites`,
|
||||
updateInvite: (sharedVaultUuid: string, inviteUuid: string) =>
|
||||
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}`,
|
||||
acceptInvite: (sharedVaultUuid: string, inviteUuid: string) =>
|
||||
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}/accept`,
|
||||
declineInvite: (sharedVaultUuid: string, inviteUuid: string) =>
|
||||
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}/decline`,
|
||||
getInboundUserInvites: () => '/v1/shared-vaults/invites',
|
||||
getOutboundUserInvites: () => '/v1/shared-vaults/invites/outbound',
|
||||
getSharedVaultInvites: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/invites`,
|
||||
deleteInvite: (sharedVaultUuid: string, inviteUuid: string) =>
|
||||
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}`,
|
||||
deleteAllSharedVaultInvites: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/invites`,
|
||||
deleteAllInboundInvites: '/v1/shared-vaults/invites/inbound',
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { HttpServiceInterface } from '../../Http'
|
||||
|
||||
import { AcceptInviteRequestParams } from '../../Request/SharedVaultInvites/AcceptInviteRequestParams'
|
||||
import { AcceptInviteResponse } from '../../Response/SharedVaultInvites/AcceptInviteResponse'
|
||||
import { CreateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/CreateSharedVaultInviteParams'
|
||||
import { CreateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/CreateSharedVaultInviteResponse'
|
||||
import { DeclineInviteRequestParams } from '../../Request/SharedVaultInvites/DeclineInviteRequestParams'
|
||||
import { DeclineInviteResponse } from '../../Response/SharedVaultInvites/DeclineInviteResponse'
|
||||
import { DeleteInviteRequestParams } from '../../Request/SharedVaultInvites/DeleteInviteRequestParams'
|
||||
import { DeleteInviteResponse } from '../../Response/SharedVaultInvites/DeleteInviteResponse'
|
||||
import { GetSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/GetSharedVaultInvitesRequestParams'
|
||||
import { GetSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/GetSharedVaultInvitesResponse'
|
||||
import { GetUserInvitesResponse } from '../../Response/SharedVaultInvites/GetUserInvitesResponse'
|
||||
import { SharedVaultInvitesPaths } from './Paths'
|
||||
import { SharedVaultInvitesServerInterface } from './SharedVaultInvitesServerInterface'
|
||||
import { UpdateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/UpdateSharedVaultInviteParams'
|
||||
import { UpdateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/UpdateSharedVaultInviteResponse'
|
||||
import { DeleteAllSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/DeleteAllSharedVaultInvitesRequestParams'
|
||||
import { DeleteAllSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/DeleteAllSharedVaultInvitesResponse'
|
||||
|
||||
export class SharedVaultInvitesServer implements SharedVaultInvitesServerInterface {
|
||||
constructor(private httpService: HttpServiceInterface) {}
|
||||
|
||||
createInvite(params: CreateSharedVaultInviteParams): Promise<HttpResponse<CreateSharedVaultInviteResponse>> {
|
||||
return this.httpService.post(SharedVaultInvitesPaths.createInvite(params.sharedVaultUuid), {
|
||||
recipient_uuid: params.recipientUuid,
|
||||
encrypted_message: params.encryptedMessage,
|
||||
permissions: params.permissions,
|
||||
})
|
||||
}
|
||||
|
||||
updateInvite(params: UpdateSharedVaultInviteParams): Promise<HttpResponse<UpdateSharedVaultInviteResponse>> {
|
||||
return this.httpService.patch(SharedVaultInvitesPaths.updateInvite(params.sharedVaultUuid, params.inviteUuid), {
|
||||
encrypted_message: params.encryptedMessage,
|
||||
permissions: params.permissions,
|
||||
})
|
||||
}
|
||||
|
||||
acceptInvite(params: AcceptInviteRequestParams): Promise<HttpResponse<AcceptInviteResponse>> {
|
||||
return this.httpService.post(SharedVaultInvitesPaths.acceptInvite(params.sharedVaultUuid, params.inviteUuid))
|
||||
}
|
||||
|
||||
declineInvite(params: DeclineInviteRequestParams): Promise<HttpResponse<DeclineInviteResponse>> {
|
||||
return this.httpService.post(SharedVaultInvitesPaths.declineInvite(params.sharedVaultUuid, params.inviteUuid))
|
||||
}
|
||||
|
||||
getInboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>> {
|
||||
return this.httpService.get(SharedVaultInvitesPaths.getInboundUserInvites())
|
||||
}
|
||||
|
||||
getOutboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>> {
|
||||
return this.httpService.get(SharedVaultInvitesPaths.getOutboundUserInvites())
|
||||
}
|
||||
|
||||
getSharedVaultInvites(
|
||||
params: GetSharedVaultInvitesRequestParams,
|
||||
): Promise<HttpResponse<GetSharedVaultInvitesResponse>> {
|
||||
return this.httpService.get(SharedVaultInvitesPaths.getSharedVaultInvites(params.sharedVaultUuid))
|
||||
}
|
||||
|
||||
deleteInvite(params: DeleteInviteRequestParams): Promise<HttpResponse<DeleteInviteResponse>> {
|
||||
return this.httpService.delete(SharedVaultInvitesPaths.deleteInvite(params.sharedVaultUuid, params.inviteUuid))
|
||||
}
|
||||
|
||||
deleteAllSharedVaultInvites(
|
||||
params: DeleteAllSharedVaultInvitesRequestParams,
|
||||
): Promise<HttpResponse<DeleteAllSharedVaultInvitesResponse>> {
|
||||
return this.httpService.delete(SharedVaultInvitesPaths.deleteAllSharedVaultInvites(params.sharedVaultUuid))
|
||||
}
|
||||
|
||||
deleteAllInboundInvites(): Promise<HttpResponse<{ success: boolean }>> {
|
||||
return this.httpService.delete(SharedVaultInvitesPaths.deleteAllInboundInvites)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { AcceptInviteRequestParams } from '../../Request/SharedVaultInvites/AcceptInviteRequestParams'
|
||||
import { AcceptInviteResponse } from '../../Response/SharedVaultInvites/AcceptInviteResponse'
|
||||
import { CreateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/CreateSharedVaultInviteParams'
|
||||
import { CreateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/CreateSharedVaultInviteResponse'
|
||||
import { DeclineInviteRequestParams } from '../../Request/SharedVaultInvites/DeclineInviteRequestParams'
|
||||
import { DeclineInviteResponse } from '../../Response/SharedVaultInvites/DeclineInviteResponse'
|
||||
import { DeleteInviteRequestParams } from '../../Request/SharedVaultInvites/DeleteInviteRequestParams'
|
||||
import { DeleteInviteResponse } from '../../Response/SharedVaultInvites/DeleteInviteResponse'
|
||||
import { GetSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/GetSharedVaultInvitesRequestParams'
|
||||
import { GetSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/GetSharedVaultInvitesResponse'
|
||||
import { GetUserInvitesResponse } from '../../Response/SharedVaultInvites/GetUserInvitesResponse'
|
||||
import { UpdateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/UpdateSharedVaultInviteParams'
|
||||
import { UpdateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/UpdateSharedVaultInviteResponse'
|
||||
import { DeleteAllSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/DeleteAllSharedVaultInvitesRequestParams'
|
||||
import { DeleteAllSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/DeleteAllSharedVaultInvitesResponse'
|
||||
|
||||
export interface SharedVaultInvitesServerInterface {
|
||||
createInvite(params: CreateSharedVaultInviteParams): Promise<HttpResponse<CreateSharedVaultInviteResponse>>
|
||||
updateInvite(params: UpdateSharedVaultInviteParams): Promise<HttpResponse<UpdateSharedVaultInviteResponse>>
|
||||
acceptInvite(params: AcceptInviteRequestParams): Promise<HttpResponse<AcceptInviteResponse>>
|
||||
declineInvite(params: DeclineInviteRequestParams): Promise<HttpResponse<DeclineInviteResponse>>
|
||||
|
||||
getInboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>>
|
||||
getOutboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>>
|
||||
getSharedVaultInvites(
|
||||
params: GetSharedVaultInvitesRequestParams,
|
||||
): Promise<HttpResponse<GetSharedVaultInvitesResponse>>
|
||||
|
||||
deleteAllSharedVaultInvites(
|
||||
params: DeleteAllSharedVaultInvitesRequestParams,
|
||||
): Promise<HttpResponse<DeleteAllSharedVaultInvitesResponse>>
|
||||
deleteInvite(params: DeleteInviteRequestParams): Promise<HttpResponse<DeleteInviteResponse>>
|
||||
deleteAllInboundInvites(): Promise<HttpResponse<{ success: boolean }>>
|
||||
}
|
||||
5
packages/api/src/Domain/Server/SharedVaultUsers/Paths.ts
Normal file
5
packages/api/src/Domain/Server/SharedVaultUsers/Paths.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export const SharedVaultUsersPaths = {
|
||||
getSharedVaultUsers: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/users`,
|
||||
deleteSharedVaultUser: (sharedVaultUuid: string, userUuid: string) =>
|
||||
`/v1/shared-vaults/${sharedVaultUuid}/users/${userUuid}`,
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { HttpServiceInterface } from '../../Http'
|
||||
import { GetSharedVaultUsersRequestParams } from '../../Request/SharedVaultUser/GetSharedVaultUsersRequestParams'
|
||||
import { DeleteSharedVaultUserRequestParams } from '../../Request/SharedVaultUser/DeleteSharedVaultUserRequestParams'
|
||||
import { DeleteSharedVaultUserResponse } from '../../Response/SharedVaultUsers/DeleteSharedVaultUserResponse'
|
||||
import { SharedVaultUsersServerInterface } from './SharedVaultUsersServerInterface'
|
||||
import { SharedVaultUsersPaths } from './Paths'
|
||||
import { GetSharedVaultUsersResponse } from '../../Response/SharedVaultUsers/GetSharedVaultUsersResponse'
|
||||
|
||||
export class SharedVaultUsersServer implements SharedVaultUsersServerInterface {
|
||||
constructor(private httpService: HttpServiceInterface) {}
|
||||
|
||||
getSharedVaultUsers(params: GetSharedVaultUsersRequestParams): Promise<HttpResponse<GetSharedVaultUsersResponse>> {
|
||||
return this.httpService.get(SharedVaultUsersPaths.getSharedVaultUsers(params.sharedVaultUuid))
|
||||
}
|
||||
|
||||
deleteSharedVaultUser(
|
||||
params: DeleteSharedVaultUserRequestParams,
|
||||
): Promise<HttpResponse<DeleteSharedVaultUserResponse>> {
|
||||
return this.httpService.delete(SharedVaultUsersPaths.deleteSharedVaultUser(params.sharedVaultUuid, params.userUuid))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { HttpResponse } from '@standardnotes/responses'
|
||||
import { GetSharedVaultUsersRequestParams } from '../../Request/SharedVaultUser/GetSharedVaultUsersRequestParams'
|
||||
import { DeleteSharedVaultUserRequestParams } from '../../Request/SharedVaultUser/DeleteSharedVaultUserRequestParams'
|
||||
import { DeleteSharedVaultUserResponse } from '../../Response/SharedVaultUsers/DeleteSharedVaultUserResponse'
|
||||
import { GetSharedVaultUsersResponse } from '../../Response/SharedVaultUsers/GetSharedVaultUsersResponse'
|
||||
|
||||
export interface SharedVaultUsersServerInterface {
|
||||
getSharedVaultUsers(params: GetSharedVaultUsersRequestParams): Promise<HttpResponse<GetSharedVaultUsersResponse>>
|
||||
|
||||
deleteSharedVaultUser(
|
||||
params: DeleteSharedVaultUserRequestParams,
|
||||
): Promise<HttpResponse<DeleteSharedVaultUserResponse>>
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
const UserPaths = {
|
||||
register: '/v1/users',
|
||||
updateAccount: (userUuid: string) => `/v1/users/${userUuid}`,
|
||||
deleteAccount: (userUuid: string) => `/v1/users/${userUuid}`,
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { UserUpdateResponse } from './../../Response/User/UserUpdateResponse'
|
||||
import { HttpServiceInterface } from '../../Http/HttpServiceInterface'
|
||||
import { UserDeletionRequestParams } from '../../Request/User/UserDeletionRequestParams'
|
||||
import { UserRegistrationRequestParams } from '../../Request/User/UserRegistrationRequestParams'
|
||||
@@ -6,6 +7,7 @@ import { UserDeletionResponseBody } from '../../Response/User/UserDeletionRespon
|
||||
import { UserRegistrationResponseBody } from '../../Response/User/UserRegistrationResponseBody'
|
||||
import { Paths } from './Paths'
|
||||
import { UserServerInterface } from './UserServerInterface'
|
||||
import { UserUpdateRequestParams } from '../../Request/User/UserUpdateRequestParams'
|
||||
|
||||
export class UserServer implements UserServerInterface {
|
||||
constructor(private httpService: HttpServiceInterface) {}
|
||||
@@ -17,4 +19,8 @@ export class UserServer implements UserServerInterface {
|
||||
async register(params: UserRegistrationRequestParams): Promise<HttpResponse<UserRegistrationResponseBody>> {
|
||||
return this.httpService.post(Paths.v1.register, params)
|
||||
}
|
||||
|
||||
async update(params: UserUpdateRequestParams): Promise<HttpResponse<UserUpdateResponse>> {
|
||||
return this.httpService.patch(Paths.v1.updateAccount(params.user_uuid), params)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,11 @@ import { UserDeletionRequestParams } from '../../Request/User/UserDeletionReques
|
||||
import { UserRegistrationRequestParams } from '../../Request/User/UserRegistrationRequestParams'
|
||||
import { UserDeletionResponseBody } from '../../Response/User/UserDeletionResponseBody'
|
||||
import { UserRegistrationResponseBody } from '../../Response/User/UserRegistrationResponseBody'
|
||||
import { UserUpdateResponse } from '../../Response/User/UserUpdateResponse'
|
||||
import { UserUpdateRequestParams } from '../../Request/User/UserUpdateRequestParams'
|
||||
|
||||
export interface UserServerInterface {
|
||||
register(params: UserRegistrationRequestParams): Promise<HttpResponse<UserRegistrationResponseBody>>
|
||||
deleteAccount(params: UserDeletionRequestParams): Promise<HttpResponse<UserDeletionResponseBody>>
|
||||
update(params: UserUpdateRequestParams): Promise<HttpResponse<UserUpdateResponse>>
|
||||
}
|
||||
|
||||
@@ -1,14 +1,32 @@
|
||||
export * from './Auth/AuthServer'
|
||||
export * from './Auth/AuthServerInterface'
|
||||
|
||||
export * from './Authenticator/AuthenticatorServer'
|
||||
export * from './Authenticator/AuthenticatorServerInterface'
|
||||
|
||||
export * from './Revision/RevisionServer'
|
||||
export * from './Revision/RevisionServerInterface'
|
||||
|
||||
export * from './AsymmetricMessage/AsymmetricMessageServer'
|
||||
export * from './AsymmetricMessage/AsymmetricMessageServerInterface'
|
||||
|
||||
export * from './SharedVault/SharedVaultServer'
|
||||
export * from './SharedVault/SharedVaultServerInterface'
|
||||
|
||||
export * from './SharedVaultUsers/SharedVaultUsersServer'
|
||||
export * from './SharedVaultUsers/SharedVaultUsersServerInterface'
|
||||
|
||||
export * from './Subscription/SubscriptionServer'
|
||||
export * from './Subscription/SubscriptionServerInterface'
|
||||
|
||||
export * from './SharedVaultInvites/SharedVaultInvitesServer'
|
||||
export * from './SharedVaultInvites/SharedVaultInvitesServerInterface'
|
||||
|
||||
export * from './User/UserServer'
|
||||
export * from './User/UserServerInterface'
|
||||
|
||||
export * from './UserRequest/UserRequestServer'
|
||||
export * from './UserRequest/UserRequestServerInterface'
|
||||
|
||||
export * from './WebSocket/WebSocketServer'
|
||||
export * from './WebSocket/WebSocketServerInterface'
|
||||
|
||||
Reference in New Issue
Block a user