sussudio
Version:
An unofficial VS Code Internal API
101 lines (100 loc) • 6.45 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* 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 "../../../base/common/cancellation.mjs";
import { Event } from "../../../base/common/event.mjs";
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { ConfigurationSyncStore } from "../../../base/common/product.mjs";
import { URI } from "../../../base/common/uri.mjs";
import { IHeaders, IRequestContext, IRequestOptions } from "../../../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 {};