UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

168 lines (166 loc) 6.39 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { CancellationToken } from '@sussudio/base/common/cancellation.mjs'; import { Event } from '@sussudio/base/common/event.mjs'; import { Disposable } from '@sussudio/base/common/lifecycle.mjs'; import { ConfigurationSyncStore } from '@sussudio/base/common/product.mjs'; import { URI } from '@sussudio/base/common/uri.mjs'; import { IHeaders, IRequestContext, IRequestOptions } from '@sussudio/base/parts/request/common/request.mjs'; import { IConfigurationService } from '../../configuration/common/configuration.mjs'; import { IEnvironmentService } from '../../environment/common/environment.mjs'; import { IFileService } from '../../files/common/files.mjs'; import { IProductService } from '../../product/common/productService.mjs'; import { IRequestService } from '../../request/common/request.mjs'; import { IStorageService } from '../../storage/common/storage.mjs'; import { IResourceRefHandle, IUserData, IUserDataManifest, IUserDataSyncLogService, IUserDataSyncStore, IUserDataSyncStoreManagementService, IUserDataSyncStoreService, ServerResource, UserDataSyncStoreType, } from './userDataSync.mjs'; type UserDataSyncStore = IUserDataSyncStore & { defaultType: UserDataSyncStoreType; }; export declare abstract class AbstractUserDataSyncStoreManagementService extends Disposable implements IUserDataSyncStoreManagementService { protected readonly productService: IProductService; protected readonly configurationService: IConfigurationService; protected readonly storageService: IStorageService; _serviceBrand: any; private readonly _onDidChangeUserDataSyncStore; readonly onDidChangeUserDataSyncStore: Event<void>; private _userDataSyncStore; get userDataSyncStore(): UserDataSyncStore | undefined; protected get userDataSyncStoreType(): UserDataSyncStoreType | undefined; protected set userDataSyncStoreType(type: UserDataSyncStoreType | undefined); constructor( productService: IProductService, configurationService: IConfigurationService, storageService: IStorageService, ); protected updateUserDataSyncStore(): void; protected toUserDataSyncStore( productStore: | (ConfigurationSyncStore & { web?: ConfigurationSyncStore; }) | undefined, configuredStore?: ConfigurationSyncStore, ): UserDataSyncStore | undefined; abstract switch(type: UserDataSyncStoreType): Promise<void>; abstract getPreviousUserDataSyncStore(): Promise<IUserDataSyncStore | undefined>; } export declare class UserDataSyncStoreManagementService extends AbstractUserDataSyncStoreManagementService implements IUserDataSyncStoreManagementService { private readonly previousConfigurationSyncStore; constructor( productService: IProductService, configurationService: IConfigurationService, storageService: IStorageService, ); switch(type: UserDataSyncStoreType): Promise<void>; getPreviousUserDataSyncStore(): Promise<IUserDataSyncStore | undefined>; } export declare class UserDataSyncStoreClient extends Disposable { private readonly requestService; private readonly logService; private readonly storageService; private userDataSyncStoreUrl; private authToken; private readonly commonHeadersPromise; private readonly session; private _onTokenFailed; readonly onTokenFailed: Event<void>; private _onTokenSucceed; readonly onTokenSucceed: Event<void>; private _donotMakeRequestsUntil; get donotMakeRequestsUntil(): Date | undefined; private _onDidChangeDonotMakeRequestsUntil; readonly onDidChangeDonotMakeRequestsUntil: Event<void>; constructor( userDataSyncStoreUrl: URI | undefined, productService: IProductService, requestService: IRequestService, logService: IUserDataSyncLogService, environmentService: IEnvironmentService, fileService: IFileService, storageService: IStorageService, ); setAuthToken(token: string, type: string): void; protected updateUserDataSyncStoreUrl(userDataSyncStoreUrl: URI | undefined): void; private initDonotMakeRequestsUntil; private resetDonotMakeRequestsUntilPromise; private setDonotMakeRequestsUntil; getAllCollections(headers?: IHeaders): Promise<string[]>; createCollection(headers?: IHeaders): Promise<string>; deleteCollection(collection?: string, headers?: IHeaders): Promise<void>; getAllResourceRefs(resource: ServerResource, collection?: string): Promise<IResourceRefHandle[]>; resolveResourceContent( resource: ServerResource, ref: string, collection?: string, headers?: IHeaders, ): Promise<string | null>; deleteResource(resource: ServerResource, ref: string | null, collection?: string): Promise<void>; deleteResources(): Promise<void>; readResource( resource: ServerResource, oldValue: IUserData | null, collection?: string, headers?: IHeaders, ): Promise<IUserData>; writeResource( resource: ServerResource, data: string, ref: string | null, collection?: string, headers?: IHeaders, ): Promise<string>; manifest(oldValue: IUserDataManifest | null, headers?: IHeaders): Promise<IUserDataManifest | null>; clear(): Promise<void>; private getResourceUrl; private clearSession; private request; private addSessionHeaders; } export declare class UserDataSyncStoreService extends UserDataSyncStoreClient implements IUserDataSyncStoreService { _serviceBrand: any; constructor( userDataSyncStoreManagementService: IUserDataSyncStoreManagementService, productService: IProductService, requestService: IRequestService, logService: IUserDataSyncLogService, environmentService: IEnvironmentService, fileService: IFileService, storageService: IStorageService, ); } export declare class RequestsSession { private readonly limit; private readonly interval; private readonly requestService; private readonly logService; private requests; private startTime; constructor( limit: number, interval: number, /* in ms */ requestService: IRequestService, logService: IUserDataSyncLogService, ); request(url: string, options: IRequestOptions, token: CancellationToken): Promise<IRequestContext>; private isExpired; private reset; } export {};