@fluidframework/odsp-driver 2.0.0-dev.6.4.0.192049 → 2.0.0-dev.7.2.0.203917
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/CHANGELOG.md +66 -0
- package/api-extractor.json +1 -1
- package/api-report/odsp-driver.api.md +306 -0
- package/dist/ReadBufferUtils.js +3 -3
- package/dist/ReadBufferUtils.js.map +1 -1
- package/dist/checkUrl.d.ts +1 -0
- package/dist/checkUrl.d.ts.map +1 -1
- package/dist/checkUrl.js +1 -0
- package/dist/checkUrl.js.map +1 -1
- package/dist/compactSnapshotParser.d.ts +2 -0
- package/dist/compactSnapshotParser.d.ts.map +1 -1
- package/dist/compactSnapshotParser.js +1 -0
- package/dist/compactSnapshotParser.js.map +1 -1
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -1
- package/dist/contracts.d.ts +3 -3
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contractsPublic.d.ts +15 -0
- package/dist/contractsPublic.d.ts.map +1 -1
- package/dist/contractsPublic.js +8 -2
- package/dist/contractsPublic.js.map +1 -1
- package/dist/createOdspCreateContainerRequest.d.ts +1 -0
- package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
- package/dist/createOdspCreateContainerRequest.js +1 -0
- package/dist/createOdspCreateContainerRequest.js.map +1 -1
- package/dist/createOdspUrl.d.ts +1 -0
- package/dist/createOdspUrl.d.ts.map +1 -1
- package/dist/createOdspUrl.js +1 -0
- package/dist/createOdspUrl.js.map +1 -1
- package/dist/epochTracker.d.ts +12 -2
- package/dist/epochTracker.d.ts.map +1 -1
- package/dist/epochTracker.js +1 -0
- package/dist/epochTracker.js.map +1 -1
- package/dist/fetch.d.ts +1 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetchSnapshot.d.ts +1 -0
- package/dist/fetchSnapshot.d.ts.map +1 -1
- package/dist/fetchSnapshot.js +15 -11
- package/dist/fetchSnapshot.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/odsp-driver-alpha.d.ts +558 -0
- package/dist/odsp-driver-beta.d.ts +558 -0
- package/dist/odsp-driver-public.d.ts +558 -0
- package/dist/odsp-driver-untrimmed.d.ts +558 -0
- package/dist/odspCache.d.ts +6 -0
- package/dist/odspCache.d.ts.map +1 -1
- package/dist/odspCache.js.map +1 -1
- package/dist/odspDocumentDeltaConnection.d.ts +1 -1
- package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
- package/dist/odspDocumentDeltaConnection.js +78 -69
- package/dist/odspDocumentDeltaConnection.js.map +1 -1
- package/dist/odspDocumentService.js +23 -19
- package/dist/odspDocumentService.js.map +1 -1
- package/dist/odspDocumentServiceFactory.d.ts +4 -0
- package/dist/odspDocumentServiceFactory.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactory.js +4 -0
- package/dist/odspDocumentServiceFactory.js.map +1 -1
- package/dist/odspDocumentServiceFactoryCore.d.ts +1 -0
- package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactoryCore.js +32 -27
- package/dist/odspDocumentServiceFactoryCore.js.map +1 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts +2 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.js +2 -1
- package/dist/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -1
- package/dist/odspDocumentStorageManager.js +5 -1
- package/dist/odspDocumentStorageManager.js.map +1 -1
- package/dist/odspDocumentStorageServiceBase.d.ts +1 -1
- package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
- package/dist/odspDocumentStorageServiceBase.js +1 -14
- package/dist/odspDocumentStorageServiceBase.js.map +1 -1
- package/dist/odspDriverUrlResolver.d.ts +1 -0
- package/dist/odspDriverUrlResolver.d.ts.map +1 -1
- package/dist/odspDriverUrlResolver.js +2 -0
- package/dist/odspDriverUrlResolver.js.map +1 -1
- package/dist/odspDriverUrlResolverForShareLink.d.ts +2 -0
- package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
- package/dist/odspDriverUrlResolverForShareLink.js +1 -0
- package/dist/odspDriverUrlResolverForShareLink.js.map +1 -1
- package/dist/odspFluidFileLink.d.ts +10 -1
- package/dist/odspFluidFileLink.d.ts.map +1 -1
- package/dist/odspFluidFileLink.js +14 -6
- package/dist/odspFluidFileLink.js.map +1 -1
- package/dist/odspPublicUtils.d.ts +6 -0
- package/dist/odspPublicUtils.d.ts.map +1 -1
- package/dist/odspPublicUtils.js +3 -0
- package/dist/odspPublicUtils.js.map +1 -1
- package/dist/odspSummaryUploadManager.js +5 -1
- package/dist/odspSummaryUploadManager.js.map +1 -1
- package/dist/odspUrlHelper.d.ts +5 -0
- package/dist/odspUrlHelper.d.ts.map +1 -1
- package/dist/odspUrlHelper.js +5 -0
- package/dist/odspUrlHelper.js.map +1 -1
- package/dist/odspUtils.d.ts +4 -1
- package/dist/odspUtils.d.ts.map +1 -1
- package/dist/odspUtils.js +1 -0
- package/dist/odspUtils.js.map +1 -1
- package/dist/opsCaching.d.ts +1 -1
- package/dist/opsCaching.d.ts.map +1 -1
- package/dist/opsCaching.js +13 -1
- package/dist/opsCaching.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/prefetchLatestSnapshot.d.ts +2 -0
- package/dist/prefetchLatestSnapshot.d.ts.map +1 -1
- package/dist/prefetchLatestSnapshot.js +2 -0
- package/dist/prefetchLatestSnapshot.js.map +1 -1
- package/dist/socketModule.d.ts +7 -0
- package/dist/socketModule.d.ts.map +1 -0
- package/dist/socketModule.js +10 -0
- package/dist/socketModule.js.map +1 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/zipItDataRepresentationUtils.d.ts +2 -2
- package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
- package/dist/zipItDataRepresentationUtils.js +6 -6
- package/dist/zipItDataRepresentationUtils.js.map +1 -1
- package/lib/ReadBufferUtils.js +3 -3
- package/lib/ReadBufferUtils.js.map +1 -1
- package/lib/checkUrl.d.ts +1 -0
- package/lib/checkUrl.d.ts.map +1 -1
- package/lib/checkUrl.js +1 -0
- package/lib/checkUrl.js.map +1 -1
- package/lib/compactSnapshotParser.d.ts +2 -0
- package/lib/compactSnapshotParser.d.ts.map +1 -1
- package/lib/compactSnapshotParser.js +1 -0
- package/lib/compactSnapshotParser.js.map +1 -1
- package/lib/constants.d.ts +6 -0
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +6 -0
- package/lib/constants.js.map +1 -1
- package/lib/contracts.d.ts +3 -3
- package/lib/contracts.d.ts.map +1 -1
- package/lib/contractsPublic.d.ts +15 -0
- package/lib/contractsPublic.d.ts.map +1 -1
- package/lib/contractsPublic.js +6 -0
- package/lib/contractsPublic.js.map +1 -1
- package/lib/createOdspCreateContainerRequest.d.ts +1 -0
- package/lib/createOdspCreateContainerRequest.d.ts.map +1 -1
- package/lib/createOdspCreateContainerRequest.js +1 -0
- package/lib/createOdspCreateContainerRequest.js.map +1 -1
- package/lib/createOdspUrl.d.ts +1 -0
- package/lib/createOdspUrl.d.ts.map +1 -1
- package/lib/createOdspUrl.js +1 -0
- package/lib/createOdspUrl.js.map +1 -1
- package/lib/epochTracker.d.ts +12 -2
- package/lib/epochTracker.d.ts.map +1 -1
- package/lib/epochTracker.js +1 -0
- package/lib/epochTracker.js.map +1 -1
- package/lib/fetch.d.ts +1 -1
- package/lib/fetch.d.ts.map +1 -1
- package/lib/fetchSnapshot.d.ts +1 -0
- package/lib/fetchSnapshot.d.ts.map +1 -1
- package/lib/fetchSnapshot.js +14 -10
- package/lib/fetchSnapshot.js.map +1 -1
- package/lib/index.d.ts +5 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/odspCache.d.ts +6 -0
- package/lib/odspCache.d.ts.map +1 -1
- package/lib/odspCache.js.map +1 -1
- package/lib/odspDocumentDeltaConnection.d.ts +1 -1
- package/lib/odspDocumentDeltaConnection.d.ts.map +1 -1
- package/lib/odspDocumentDeltaConnection.js +77 -68
- package/lib/odspDocumentDeltaConnection.js.map +1 -1
- package/lib/odspDocumentService.js +18 -18
- package/lib/odspDocumentService.js.map +1 -1
- package/lib/odspDocumentServiceFactory.d.ts +4 -0
- package/lib/odspDocumentServiceFactory.d.ts.map +1 -1
- package/lib/odspDocumentServiceFactory.js +4 -0
- package/lib/odspDocumentServiceFactory.js.map +1 -1
- package/lib/odspDocumentServiceFactoryCore.d.ts +1 -0
- package/lib/odspDocumentServiceFactoryCore.d.ts.map +1 -1
- package/lib/odspDocumentServiceFactoryCore.js +27 -26
- package/lib/odspDocumentServiceFactoryCore.js.map +1 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts +2 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.js +2 -1
- package/lib/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -1
- package/lib/odspDocumentStorageServiceBase.d.ts +1 -1
- package/lib/odspDocumentStorageServiceBase.d.ts.map +1 -1
- package/lib/odspDocumentStorageServiceBase.js +1 -14
- package/lib/odspDocumentStorageServiceBase.js.map +1 -1
- package/lib/odspDriverUrlResolver.d.ts +1 -0
- package/lib/odspDriverUrlResolver.d.ts.map +1 -1
- package/lib/odspDriverUrlResolver.js +2 -0
- package/lib/odspDriverUrlResolver.js.map +1 -1
- package/lib/odspDriverUrlResolverForShareLink.d.ts +2 -0
- package/lib/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
- package/lib/odspDriverUrlResolverForShareLink.js +1 -0
- package/lib/odspDriverUrlResolverForShareLink.js.map +1 -1
- package/lib/odspFluidFileLink.d.ts +10 -1
- package/lib/odspFluidFileLink.d.ts.map +1 -1
- package/lib/odspFluidFileLink.js +14 -6
- package/lib/odspFluidFileLink.js.map +1 -1
- package/lib/odspPublicUtils.d.ts +6 -0
- package/lib/odspPublicUtils.d.ts.map +1 -1
- package/lib/odspPublicUtils.js +3 -0
- package/lib/odspPublicUtils.js.map +1 -1
- package/lib/odspUrlHelper.d.ts +5 -0
- package/lib/odspUrlHelper.d.ts.map +1 -1
- package/lib/odspUrlHelper.js +5 -0
- package/lib/odspUrlHelper.js.map +1 -1
- package/lib/odspUtils.d.ts +4 -1
- package/lib/odspUtils.d.ts.map +1 -1
- package/lib/odspUtils.js +1 -0
- package/lib/odspUtils.js.map +1 -1
- package/lib/opsCaching.d.ts +1 -1
- package/lib/opsCaching.d.ts.map +1 -1
- package/lib/opsCaching.js +13 -1
- package/lib/opsCaching.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/prefetchLatestSnapshot.d.ts +2 -0
- package/lib/prefetchLatestSnapshot.d.ts.map +1 -1
- package/lib/prefetchLatestSnapshot.js +2 -0
- package/lib/prefetchLatestSnapshot.js.map +1 -1
- package/lib/socketModule.d.ts +7 -0
- package/lib/socketModule.d.ts.map +1 -0
- package/lib/socketModule.js +7 -0
- package/lib/socketModule.js.map +1 -0
- package/lib/zipItDataRepresentationUtils.d.ts +2 -2
- package/lib/zipItDataRepresentationUtils.d.ts.map +1 -1
- package/lib/zipItDataRepresentationUtils.js +3 -3
- package/lib/zipItDataRepresentationUtils.js.map +1 -1
- package/package.json +24 -26
- package/src/checkUrl.ts +1 -0
- package/src/compactSnapshotParser.ts +2 -0
- package/src/constants.ts +7 -0
- package/src/contractsPublic.ts +15 -1
- package/src/createOdspCreateContainerRequest.ts +1 -0
- package/src/createOdspUrl.ts +1 -0
- package/src/epochTracker.ts +10 -0
- package/src/fetchSnapshot.ts +16 -15
- package/src/index.ts +10 -1
- package/src/odspCache.ts +6 -0
- package/src/odspDocumentDeltaConnection.ts +56 -32
- package/src/odspDocumentServiceFactory.ts +4 -0
- package/src/odspDocumentServiceFactoryCore.ts +1 -0
- package/src/odspDocumentServiceFactoryWithCodeSplit.ts +2 -1
- package/src/odspDocumentStorageServiceBase.ts +1 -15
- package/src/odspDriverUrlResolver.ts +2 -0
- package/src/odspDriverUrlResolverForShareLink.ts +2 -0
- package/src/odspFluidFileLink.ts +21 -5
- package/src/odspPublicUtils.ts +6 -0
- package/src/odspUrlHelper.ts +5 -0
- package/src/odspUtils.ts +4 -0
- package/src/opsCaching.ts +15 -1
- package/src/packageVersion.ts +1 -1
- package/src/prefetchLatestSnapshot.ts +2 -0
- package/src/socketModule.ts +8 -0
- package/src/zipItDataRepresentationUtils.ts +5 -1
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
import { DriverPreCheckInfo } from '@fluidframework/driver-definitions';
|
|
2
|
+
import { HostStoragePolicy } from '@fluidframework/odsp-driver-definitions';
|
|
3
|
+
import { IContainerPackageInfo } from '@fluidframework/driver-definitions';
|
|
4
|
+
import { IdentityType } from '@fluidframework/odsp-driver-definitions';
|
|
5
|
+
import { IDocumentService } from '@fluidframework/driver-definitions';
|
|
6
|
+
import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
|
|
7
|
+
import { IEntry } from '@fluidframework/odsp-driver-definitions';
|
|
8
|
+
import { IFileEntry } from '@fluidframework/odsp-driver-definitions';
|
|
9
|
+
import { IOdspResolvedUrl } from '@fluidframework/odsp-driver-definitions';
|
|
10
|
+
import { IOdspUrlParts } from '@fluidframework/odsp-driver-definitions';
|
|
11
|
+
import { IPersistedCache } from '@fluidframework/odsp-driver-definitions';
|
|
12
|
+
import { IRelaySessionAwareDriverFactory } from '@fluidframework/odsp-driver-definitions';
|
|
13
|
+
import { IRequest } from '@fluidframework/core-interfaces';
|
|
14
|
+
import { IResolvedUrl } from '@fluidframework/driver-definitions';
|
|
15
|
+
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
16
|
+
import { ISharingLinkKind } from '@fluidframework/odsp-driver-definitions';
|
|
17
|
+
import { ISnapshotOptions } from '@fluidframework/odsp-driver-definitions';
|
|
18
|
+
import { ISnapshotTree } from '@fluidframework/protocol-definitions';
|
|
19
|
+
import { ISocketStorageDiscovery } from '@fluidframework/odsp-driver-definitions';
|
|
20
|
+
import { ISummaryTree } from '@fluidframework/protocol-definitions';
|
|
21
|
+
import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
22
|
+
import { ITelemetryLogger } from '@fluidframework/core-interfaces';
|
|
23
|
+
import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
|
|
24
|
+
import { ITelemetryProperties } from '@fluidframework/core-interfaces';
|
|
25
|
+
import { IUrlResolver } from '@fluidframework/driver-definitions';
|
|
26
|
+
import { OdspResourceTokenFetchOptions } from '@fluidframework/odsp-driver-definitions';
|
|
27
|
+
import { PromiseCache } from '@fluidframework/core-utils';
|
|
28
|
+
import { RateLimiter } from '@fluidframework/driver-utils';
|
|
29
|
+
import { ShareLinkTypes } from '@fluidframework/odsp-driver-definitions';
|
|
30
|
+
import { TokenFetcher } from '@fluidframework/odsp-driver-definitions';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A check that returns DriverPreCheckInfo if the URL format is likely supported by this driver.
|
|
34
|
+
* Note that returning information here is NOT a full guarantee that resolve will ultimately be successful.
|
|
35
|
+
* Instead, this should be used as a lightweight check that can filter out easily detectable unsupported URLs
|
|
36
|
+
* before the entire Fluid loading process needs to be kicked off.
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
export declare function checkUrl(documentUrl: URL): DriverPreCheckInfo | undefined;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
44
|
+
export declare enum ClpCompliantAppHeader {
|
|
45
|
+
isClpCompliantApp = "X-CLP-Compliant-App"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
export declare function createLocalOdspDocumentServiceFactory(localSnapshot: Uint8Array | string): IDocumentServiceFactory;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Create the request object with url and headers for creating a new file on OneDrive Sharepoint
|
|
55
|
+
* @param siteUrl - Base url for OneDrive
|
|
56
|
+
* @param driveId - drive identifier
|
|
57
|
+
* @param filePath - path where file needs to be created
|
|
58
|
+
* @param fileName - name of the new file to be created
|
|
59
|
+
* @param createShareLinkType - type of sharing link you would like to create for this file. ShareLinkTypes
|
|
60
|
+
* will be deprecated soon, so for any new implementation please provide createShareLinkType of type ShareLink
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
export declare function createOdspCreateContainerRequest(siteUrl: string, driveId: string, filePath: string, fileName: string, createShareLinkType?: ShareLinkTypes | ISharingLinkKind): IRequest;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Encodes ODC/SPO information into a URL format that can be handled by the Loader
|
|
67
|
+
* @param l -The property bag of necessary properties to locate a Fluid data store and craft a url for it
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
export declare function createOdspUrl(l: OdspFluidDataStoreLocator): string;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Transforms given Fluid data store locator into string that can be embedded into url
|
|
74
|
+
* @param locator - describes Fluid data store locator info to be encoded
|
|
75
|
+
* @returns string representing encoded Fluid data store locator info
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
export declare function encodeOdspFluidDataStoreLocator(locator: OdspFluidDataStoreLocator): string;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* In ODSP, the concept of "epoch" refers to binary updates to files. For example, this might include using
|
|
82
|
+
* version restore, or if the user downloads a Fluid file and then uploads it again. These result in the epoch
|
|
83
|
+
* value being incremented.
|
|
84
|
+
*
|
|
85
|
+
* The implications of these binary updates is that the Fluid state is disrupted: the sequence number might
|
|
86
|
+
* go backwards, the data might be inconsistent with the latest state of collaboration, etc. As a result, it's
|
|
87
|
+
* not safe to continue collaboration across an epoch change. We need to detect these epoch changes and
|
|
88
|
+
* error out from the collaboration.
|
|
89
|
+
*
|
|
90
|
+
* This class is a wrapper around fetch calls. It adds epoch to the request made so that the
|
|
91
|
+
* server can match it with its epoch value in order to match the version.
|
|
92
|
+
* It also validates the epoch value received in response of fetch calls. If the epoch does not match,
|
|
93
|
+
* then it also clears all the cached entries for the given container.
|
|
94
|
+
* @public
|
|
95
|
+
*/
|
|
96
|
+
export declare class EpochTracker implements IPersistedFileCache {
|
|
97
|
+
protected readonly cache: IPersistedCache;
|
|
98
|
+
protected readonly fileEntry: IFileEntry;
|
|
99
|
+
protected readonly logger: ITelemetryLoggerExt;
|
|
100
|
+
protected readonly clientIsSummarizer?: boolean | undefined;
|
|
101
|
+
private _fluidEpoch;
|
|
102
|
+
private readonly snapshotCacheExpiryTimeoutMs;
|
|
103
|
+
readonly rateLimiter: RateLimiter;
|
|
104
|
+
private readonly driverId;
|
|
105
|
+
private networkCallNumber;
|
|
106
|
+
constructor(cache: IPersistedCache, fileEntry: IFileEntry, logger: ITelemetryLoggerExt, clientIsSummarizer?: boolean | undefined);
|
|
107
|
+
setEpoch(epoch: string, fromCache: boolean, fetchType: FetchTypeInternal): void;
|
|
108
|
+
get(entry: IEntry): Promise<any>;
|
|
109
|
+
put(entry: IEntry, value: any): Promise<void>;
|
|
110
|
+
removeEntries(): Promise<void>;
|
|
111
|
+
get fluidEpoch(): string | undefined;
|
|
112
|
+
validateEpoch(epoch: string | undefined, fetchType: FetchType): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Api to fetch the response for given request and parse it as json.
|
|
115
|
+
* @param url - url of the request
|
|
116
|
+
* @param fetchOptions - fetch options for request containing body, headers etc.
|
|
117
|
+
* @param fetchType - method for which fetch is called.
|
|
118
|
+
* @param addInBody - Pass True if caller wants to add epoch in post body.
|
|
119
|
+
* @param fetchReason - fetch reason to add to the request.
|
|
120
|
+
*/
|
|
121
|
+
fetchAndParseAsJSON<T>(url: string, fetchOptions: RequestInit, fetchType: FetchType, addInBody?: boolean, fetchReason?: string): Promise<IOdspResponse<T>>;
|
|
122
|
+
/**
|
|
123
|
+
* Api to fetch the response for given request and parse it as json.
|
|
124
|
+
* @param url - url of the request
|
|
125
|
+
* @param fetchOptions - fetch options for request containing body, headers etc.
|
|
126
|
+
* @param fetchType - method for which fetch is called.
|
|
127
|
+
* @param addInBody - Pass True if caller wants to add epoch in post body.
|
|
128
|
+
* @param fetchReason - fetch reason to add to the request.
|
|
129
|
+
*/
|
|
130
|
+
fetch(url: string, fetchOptions: RequestInit, fetchType: FetchType, addInBody?: boolean, fetchReason?: string): Promise<IOdspResponse<Response>>;
|
|
131
|
+
private fetchCore;
|
|
132
|
+
/**
|
|
133
|
+
* Api to fetch the response as it is for given request.
|
|
134
|
+
* @param url - url of the request
|
|
135
|
+
* @param fetchOptions - fetch options for request containing body, headers etc.
|
|
136
|
+
* @param fetchType - method for which fetch is called.
|
|
137
|
+
* @param addInBody - Pass True if caller wants to add epoch in post body.
|
|
138
|
+
* @param fetchReason - fetch reason to add to the request.
|
|
139
|
+
*/
|
|
140
|
+
fetchArray(url: string, fetchOptions: {
|
|
141
|
+
[index: string]: any;
|
|
142
|
+
}, fetchType: FetchType, addInBody?: boolean, fetchReason?: string): Promise<IOdspResponse<ArrayBuffer>>;
|
|
143
|
+
private addEpochInRequest;
|
|
144
|
+
private addParamInBody;
|
|
145
|
+
private formatClientCorrelationId;
|
|
146
|
+
protected validateEpochFromResponse(epochFromResponse: string | undefined, fetchType: FetchTypeInternal, fromCache?: boolean): void;
|
|
147
|
+
private checkForEpochError;
|
|
148
|
+
private checkForEpochErrorCore;
|
|
149
|
+
private fileEntryFromEntry;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
export declare type FetchType = "blob" | "createBlob" | "createFile" | "joinSession" | "ops" | "test" | "snapshotTree" | "treesLatest" | "uploadSummary" | "push" | "versions";
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* @public
|
|
159
|
+
*/
|
|
160
|
+
export declare type FetchTypeInternal = FetchType | "cache";
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Gets the correct API root for the given ODSP url, e.g. 'https://foo-my.sharepoint.com/_api/v2.1'
|
|
164
|
+
* @param origin - The URL origin
|
|
165
|
+
* @public
|
|
166
|
+
*/
|
|
167
|
+
export declare function getApiRoot(origin: string): string;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
172
|
+
export declare function getHashedDocumentId(driveId: string, itemId: string): Promise<string>;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Extract ODSP Fluid data store locator object from given ODSP url. This extracts things like
|
|
176
|
+
* driveId, ItemId, siteUrl etc from a url where these are encoded in nav query param.
|
|
177
|
+
* @param url - ODSP url representing Fluid file link
|
|
178
|
+
* @param requireFluidSignature - flag representing if the Fluid signature is expected in the url, default true
|
|
179
|
+
* @returns object representing Fluid data store location in ODSP terms
|
|
180
|
+
* @public
|
|
181
|
+
*/
|
|
182
|
+
export declare function getLocatorFromOdspUrl(url: URL, requireFluidSignature?: boolean): OdspFluidDataStoreLocator | undefined;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Breaks an ODSP URL into its parts, extracting the site, drive ID, and item ID.
|
|
186
|
+
* Returns undefined for invalid/malformed URLs.
|
|
187
|
+
* @param url - The (raw) URL to parse
|
|
188
|
+
* @public
|
|
189
|
+
*/
|
|
190
|
+
export declare function getOdspUrlParts(url: URL): Promise<IOdspUrlParts | undefined>;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* @public
|
|
194
|
+
*/
|
|
195
|
+
export declare interface ICacheAndTracker {
|
|
196
|
+
cache: IOdspCache;
|
|
197
|
+
epochTracker: EpochTracker;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* @public
|
|
202
|
+
*/
|
|
203
|
+
export declare interface IClpCompliantAppHeader {
|
|
204
|
+
[ClpCompliantAppHeader.isClpCompliantApp]: boolean;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Internal cache interface used within driver only
|
|
209
|
+
* @public
|
|
210
|
+
*/
|
|
211
|
+
export declare interface INonPersistentCache {
|
|
212
|
+
/**
|
|
213
|
+
* Cache of joined/joining session info
|
|
214
|
+
*/
|
|
215
|
+
readonly sessionJoinCache: PromiseCache<string, {
|
|
216
|
+
entryTime: number;
|
|
217
|
+
joinSessionResponse: ISocketStorageDiscovery;
|
|
218
|
+
}>;
|
|
219
|
+
/**
|
|
220
|
+
* Cache of resolved/resolving file URLs
|
|
221
|
+
*/
|
|
222
|
+
readonly fileUrlCache: PromiseCache<string, IOdspResolvedUrl>;
|
|
223
|
+
/**
|
|
224
|
+
* Used to store the snapshot fetch promise if the prefetch has been made using the prefetchLatestSnapshot api.
|
|
225
|
+
* This is then used later to look for the promise during the container load.
|
|
226
|
+
*/
|
|
227
|
+
readonly snapshotPrefetchResultCache: PromiseCache<string, IPrefetchSnapshotContents>;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Internal cache interface used within driver only
|
|
232
|
+
* @public
|
|
233
|
+
*/
|
|
234
|
+
export declare interface IOdspCache extends INonPersistentCache {
|
|
235
|
+
/**
|
|
236
|
+
* Persisted cache - only serializable content is allowed
|
|
237
|
+
*/
|
|
238
|
+
readonly persistedCache: IPersistedFileCache;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* @public
|
|
243
|
+
*/
|
|
244
|
+
export declare interface IOdspResponse<T> {
|
|
245
|
+
content: T;
|
|
246
|
+
headers: Map<string, string>;
|
|
247
|
+
propsToLog: ITelemetryProperties;
|
|
248
|
+
duration: number;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Similar to IPersistedCache, but exposes cache interface for single file
|
|
253
|
+
* @public
|
|
254
|
+
*/
|
|
255
|
+
export declare interface IPersistedFileCache {
|
|
256
|
+
get(entry: IEntry): Promise<any>;
|
|
257
|
+
put(entry: IEntry, value: any): Promise<void>;
|
|
258
|
+
removeEntries(): Promise<void>;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* @public
|
|
263
|
+
*/
|
|
264
|
+
export declare interface IPrefetchSnapshotContents extends ISnapshotContents {
|
|
265
|
+
fluidEpoch: string;
|
|
266
|
+
prefetchStartTime: number;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* @public
|
|
271
|
+
*/
|
|
272
|
+
export declare interface ISharingLinkHeader {
|
|
273
|
+
[SharingLinkHeader.isSharingLinkToRedeem]: boolean;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* @public
|
|
278
|
+
*/
|
|
279
|
+
export declare interface ISnapshotContents {
|
|
280
|
+
snapshotTree: ISnapshotTree;
|
|
281
|
+
blobs: Map<string, ArrayBuffer>;
|
|
282
|
+
ops: ISequencedDocumentMessage[];
|
|
283
|
+
/**
|
|
284
|
+
* Sequence number of the snapshot
|
|
285
|
+
*/
|
|
286
|
+
sequenceNumber: number | undefined;
|
|
287
|
+
/**
|
|
288
|
+
* Sequence number for the latest op/snapshot for the file in ODSP
|
|
289
|
+
*/
|
|
290
|
+
latestSequenceNumber: number | undefined;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* The parsing is significantly faster if the position of props is well known instead of dynamic. So these variables
|
|
295
|
+
* represents how many times slower parsing path is executed. This will be then logged into telemetry.
|
|
296
|
+
* @public
|
|
297
|
+
*/
|
|
298
|
+
export declare interface ISnapshotContentsWithProps extends ISnapshotContents {
|
|
299
|
+
telemetryProps: Record<string, number>;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Checks whether or not the given URL origin is an ODC origin
|
|
304
|
+
* @param origin - The URL origin to check
|
|
305
|
+
* @public
|
|
306
|
+
*/
|
|
307
|
+
export declare function isOdcOrigin(origin: string): boolean;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Whether or not the given URL is a valid ODC URL
|
|
311
|
+
* @param url - The URL to check
|
|
312
|
+
* @public
|
|
313
|
+
*/
|
|
314
|
+
export declare function isOdcUrl(url: string | URL): boolean;
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Whether or not the given URL is a valid SPO/ODB URL
|
|
318
|
+
* @param url - The URL to check
|
|
319
|
+
* @public
|
|
320
|
+
*/
|
|
321
|
+
export declare function isSpoUrl(url: string): boolean;
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* This parameter is provided by host in the resolve request and it contains information about the file
|
|
325
|
+
* like driveId, itemId, siteUrl, datastorePath, packageName etc.
|
|
326
|
+
* @public
|
|
327
|
+
*/
|
|
328
|
+
export declare const locatorQueryParamName = "nav";
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* @public
|
|
332
|
+
*/
|
|
333
|
+
export declare const OdcApiSiteOrigin = "https://my.microsoftpersonalcontent.com";
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* @public
|
|
337
|
+
*/
|
|
338
|
+
export declare const OdcFileSiteOrigin = "https://1drv.ms";
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Factory for creating the sharepoint document service. Use this if you want to
|
|
342
|
+
* use the sharepoint implementation.
|
|
343
|
+
* @public
|
|
344
|
+
*/
|
|
345
|
+
export declare class OdspDocumentServiceFactory extends OdspDocumentServiceFactoryCore {
|
|
346
|
+
constructor(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* Factory for creating the sharepoint document service. Use this if you want to
|
|
351
|
+
* use the sharepoint implementation.
|
|
352
|
+
*
|
|
353
|
+
* This constructor should be used by environments that support dynamic imports and that wish
|
|
354
|
+
* to leverage code splitting as a means to keep bundles as small as possible.
|
|
355
|
+
* @public
|
|
356
|
+
*/
|
|
357
|
+
export declare class OdspDocumentServiceFactoryCore implements IDocumentServiceFactory, IRelaySessionAwareDriverFactory {
|
|
358
|
+
private readonly getStorageToken;
|
|
359
|
+
private readonly getWebsocketToken;
|
|
360
|
+
protected persistedCache: IPersistedCache;
|
|
361
|
+
private readonly hostPolicy;
|
|
362
|
+
private readonly nonPersistentCache;
|
|
363
|
+
private readonly socketReferenceKeyPrefix?;
|
|
364
|
+
get snapshotPrefetchResultCache(): PromiseCache<string, IPrefetchSnapshotContents>;
|
|
365
|
+
get IRelaySessionAwareDriverFactory(): this;
|
|
366
|
+
/**
|
|
367
|
+
* This function would return info about relay service session only if this factory established (or attempted to
|
|
368
|
+
* establish) connection very recently. Otherwise, it will return undefined.
|
|
369
|
+
* @param resolvedUrl - resolved url for container
|
|
370
|
+
* @returns The current join session response stored in cache. `undefined` if not present.
|
|
371
|
+
*/
|
|
372
|
+
getRelayServiceSessionInfo(resolvedUrl: IResolvedUrl): Promise<ISocketStorageDiscovery | undefined>;
|
|
373
|
+
createContainer(createNewSummary: ISummaryTree | undefined, createNewResolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
374
|
+
/**
|
|
375
|
+
* @param getStorageToken - function that can provide the storage token for a given site. This is
|
|
376
|
+
* is also referred to as the "Vroom" token in SPO.
|
|
377
|
+
* @param getWebsocketToken - function that can provide a token for accessing the web socket. This is also
|
|
378
|
+
* to as the "Push" token in SPO. If undefined then websocket token is expected to be returned with joinSession
|
|
379
|
+
* response payload.
|
|
380
|
+
* @param persistedCache - PersistedCache provided by host for use in this session.
|
|
381
|
+
* @param hostPolicy - Policy for storage provided by host.
|
|
382
|
+
*/
|
|
383
|
+
constructor(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy);
|
|
384
|
+
createDocumentService(resolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
385
|
+
protected createDocumentServiceCore(resolvedUrl: IResolvedUrl, odspLogger: ITelemetryLogger, cacheAndTrackerArg?: ICacheAndTracker, clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* @deprecated This is deprecated in favour of OdspDocumentServiceFactory as the socket io is now loaded inside the
|
|
390
|
+
* other dynamically imported module.
|
|
391
|
+
* @public
|
|
392
|
+
*/
|
|
393
|
+
export declare class OdspDocumentServiceFactoryWithCodeSplit extends OdspDocumentServiceFactoryCore implements IDocumentServiceFactory {
|
|
394
|
+
constructor(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Resolver to resolve urls like the ones created by createOdspUrl which is driver inner
|
|
399
|
+
* url format. Ex: `${siteUrl}?driveId=${driveId}&itemId=${itemId}&path=${path}`
|
|
400
|
+
* @public
|
|
401
|
+
*/
|
|
402
|
+
export declare class OdspDriverUrlResolver implements IUrlResolver {
|
|
403
|
+
constructor();
|
|
404
|
+
resolve(request: IRequest): Promise<IOdspResolvedUrl>;
|
|
405
|
+
/**
|
|
406
|
+
* Requests a driver + data store storage URL.
|
|
407
|
+
* @param resolvedUrl - The driver resolved URL.
|
|
408
|
+
* @param relativeUrl - The relative data store path URL.
|
|
409
|
+
* For requesting a driver URL, this value should always be '/'. If an empty string is passed, then dataStorePath
|
|
410
|
+
* will be extracted from the resolved url if present.
|
|
411
|
+
* @param packageInfoSource - optional, represents container package information to be included in url.
|
|
412
|
+
*/
|
|
413
|
+
getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string, packageInfoSource?: IContainerPackageInfo): Promise<string>;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Resolver to resolve urls like the ones created by createOdspUrl which is driver inner
|
|
418
|
+
* url format and the ones which have things like driveId, siteId, itemId etc encoded in nav param.
|
|
419
|
+
* This resolver also handles share links and try to generate one for the use by the app.
|
|
420
|
+
* @public
|
|
421
|
+
*/
|
|
422
|
+
export declare class OdspDriverUrlResolverForShareLink implements IUrlResolver {
|
|
423
|
+
private readonly appName?;
|
|
424
|
+
private readonly getContext?;
|
|
425
|
+
private readonly logger;
|
|
426
|
+
private readonly sharingLinkCache;
|
|
427
|
+
private readonly shareLinkFetcherProps;
|
|
428
|
+
/**
|
|
429
|
+
* Creates url resolver instance
|
|
430
|
+
* @param shareLinkFetcherProps - properties used when fetching share link.
|
|
431
|
+
* Can be set as 'undefined' for cases where share link is not needed. Currently, only
|
|
432
|
+
* getAbsoluteUrl() method requires share link.
|
|
433
|
+
* @param logger - logger object that is used as telemetry sink
|
|
434
|
+
* @param appName - application name hint that is encoded with url produced by getAbsoluteUrl() method.
|
|
435
|
+
* This hint is used by link handling logic which determines which app to redirect to when user
|
|
436
|
+
* navigates directly to the link.
|
|
437
|
+
* @param getContext - callback function which is used to get context for given resolved url. If context
|
|
438
|
+
* is returned then it will be embedded into url returned by getAbsoluteUrl() method.
|
|
439
|
+
*/
|
|
440
|
+
constructor(shareLinkFetcherProps?: ShareLinkFetcherProps | undefined, logger?: ITelemetryBaseLogger, appName?: string | undefined, getContext?: ((resolvedUrl: IOdspResolvedUrl, dataStorePath: string) => Promise<string | undefined>) | undefined);
|
|
441
|
+
/**
|
|
442
|
+
* Takes an already generated data store url (from requestUrl) and appends a path to the
|
|
443
|
+
* existing data store information.
|
|
444
|
+
*/
|
|
445
|
+
appendDataStorePath(requestUrl: URL, pathToAppend: string): string | undefined;
|
|
446
|
+
private getKey;
|
|
447
|
+
/**
|
|
448
|
+
* Resolves request URL into driver details
|
|
449
|
+
*/
|
|
450
|
+
resolve(request: IRequest): Promise<IOdspResolvedUrl>;
|
|
451
|
+
private removeNavParam;
|
|
452
|
+
private getShareLinkPromise;
|
|
453
|
+
/**
|
|
454
|
+
* Requests a driver + data store storage URL. Note that this method requires share link to be fetched
|
|
455
|
+
* and it will throw in case share link fetcher props were not specified when instance was created.
|
|
456
|
+
* @param resolvedUrl - The driver resolved URL
|
|
457
|
+
* @param dataStorePath - The relative data store path URL.
|
|
458
|
+
* For requesting a driver URL, this value should always be '/'. If an empty string is passed, then dataStorePath
|
|
459
|
+
* will be extracted from the resolved url if present.
|
|
460
|
+
* @param packageInfoSource - optional, represents container package information to be included in url.
|
|
461
|
+
*/
|
|
462
|
+
getAbsoluteUrl(resolvedUrl: IResolvedUrl, dataStorePath: string, packageInfoSource?: IContainerPackageInfo): Promise<string>;
|
|
463
|
+
/**
|
|
464
|
+
* Crafts a supported document/driver URL
|
|
465
|
+
*/
|
|
466
|
+
static createDocumentUrl(baseUrl: string, driverInfo: OdspFluidDataStoreLocator): string;
|
|
467
|
+
/**
|
|
468
|
+
* Crafts a supported data store nav param
|
|
469
|
+
* @deprecated encodeOdspFluidDataStoreLocator should be used instead
|
|
470
|
+
*/
|
|
471
|
+
static createNavParam(locator: OdspFluidDataStoreLocator): string;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* @public
|
|
476
|
+
*/
|
|
477
|
+
export declare interface OdspFluidDataStoreLocator extends IOdspUrlParts {
|
|
478
|
+
dataStorePath: string;
|
|
479
|
+
appName?: string;
|
|
480
|
+
containerPackageName?: string;
|
|
481
|
+
fileVersion?: string;
|
|
482
|
+
context?: string;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Converts snapshot from binary compact representation to tree/blobs/ops.
|
|
487
|
+
* @param buffer - Compact snapshot to be parsed into tree/blobs/ops.
|
|
488
|
+
* @returns Tree, blobs and ops from the snapshot.
|
|
489
|
+
* @public
|
|
490
|
+
*/
|
|
491
|
+
export declare function parseCompactSnapshotResponse(buffer: Uint8Array, logger: ITelemetryLoggerExt): ISnapshotContentsWithProps;
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Function to prefetch the snapshot and cached it in the persistant cache, so that when the container is loaded
|
|
495
|
+
* the cached latest snapshot could be used and removes the network call from the critical path.
|
|
496
|
+
*
|
|
497
|
+
* @param resolvedUrl - Resolved url to fetch the snapshot.
|
|
498
|
+
* @param getStorageToken - function that can provide the storage token for a given site. This is
|
|
499
|
+
* is also referred to as the "VROOM" token in SPO.
|
|
500
|
+
* @param persistedCache - Cache to store the fetched snapshot.
|
|
501
|
+
* @param forceAccessTokenViaAuthorizationHeader - whether to force passing given token via authorization header.
|
|
502
|
+
* @param logger - Logger to have telemetry events.
|
|
503
|
+
* @param hostSnapshotFetchOptions - Options to fetch the snapshot if any. Otherwise default will be used.
|
|
504
|
+
* @param enableRedeemFallback - True to have the sharing link redeem fallback in case the Trees Latest/Redeem
|
|
505
|
+
* 1RT call fails with redeem error. During fallback it will first redeem the sharing link and then make
|
|
506
|
+
* the Trees latest call.
|
|
507
|
+
* Note: this can be considered deprecated - it will be replaced with `snapshotFormatFetchType`.
|
|
508
|
+
* @param fetchBinarySnapshotFormat - Control if we want to fetch binary format snapshot.
|
|
509
|
+
* @param snapshotFormatFetchType - Snapshot format to fetch.
|
|
510
|
+
* @param odspDocumentServiceFactory - factory to access the non persistent cache and store the prefetch promise.
|
|
511
|
+
*
|
|
512
|
+
* @returns `true` if the snapshot is cached, `false` otherwise.
|
|
513
|
+
*
|
|
514
|
+
* @public
|
|
515
|
+
*/
|
|
516
|
+
export declare function prefetchLatestSnapshot(resolvedUrl: IResolvedUrl, getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, persistedCache: IPersistedCache, forceAccessTokenViaAuthorizationHeader: boolean, logger: ITelemetryBaseLogger, hostSnapshotFetchOptions: ISnapshotOptions | undefined, enableRedeemFallback?: boolean, fetchBinarySnapshotFormat?: boolean, snapshotFormatFetchType?: SnapshotFormatSupportType, odspDocumentServiceFactory?: OdspDocumentServiceFactory): Promise<boolean>;
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
* Properties passed to the code responsible for fetching share link for a file.
|
|
520
|
+
* @public
|
|
521
|
+
*/
|
|
522
|
+
export declare interface ShareLinkFetcherProps {
|
|
523
|
+
/**
|
|
524
|
+
* Callback method that is used to fetch access token necessary to call API that produces share link
|
|
525
|
+
*/
|
|
526
|
+
tokenFetcher: TokenFetcher<OdspResourceTokenFetchOptions>;
|
|
527
|
+
/**
|
|
528
|
+
* Identity type determining the shape of share link as it differs for Enterprise and Consumer users.
|
|
529
|
+
*/
|
|
530
|
+
identityType: IdentityType;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* @public
|
|
535
|
+
*/
|
|
536
|
+
export declare enum SharingLinkHeader {
|
|
537
|
+
isSharingLinkToRedeem = "isSharingLinkToRedeem"
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Enum to support different types of snapshot formats.
|
|
542
|
+
* @public
|
|
543
|
+
*/
|
|
544
|
+
export declare enum SnapshotFormatSupportType {
|
|
545
|
+
Json = 0,
|
|
546
|
+
Binary = 1,
|
|
547
|
+
JsonAndBinary = 2
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
/**
|
|
551
|
+
* Embeds Fluid data store locator data into given ODSP url
|
|
552
|
+
* @param url - file url in ODSP format (can be either canonical or share link)
|
|
553
|
+
* @param locator - object representing Fluid data store location in ODSP terms
|
|
554
|
+
* @public
|
|
555
|
+
*/
|
|
556
|
+
export declare function storeLocatorInOdspUrl(url: URL, locator: OdspFluidDataStoreLocator): void;
|
|
557
|
+
|
|
558
|
+
export { }
|
package/dist/odspCache.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { IOdspResolvedUrl, IFileEntry, IEntry, IPersistedCache, ICacheEntry, ISo
|
|
|
7
7
|
import { ISnapshotContents } from "./odspPublicUtils";
|
|
8
8
|
/**
|
|
9
9
|
* Similar to IPersistedCache, but exposes cache interface for single file
|
|
10
|
+
* @public
|
|
10
11
|
*/
|
|
11
12
|
export interface IPersistedFileCache {
|
|
12
13
|
get(entry: IEntry): Promise<any>;
|
|
@@ -34,6 +35,7 @@ export declare class PromiseCacheWithOneHourSlidingExpiry<T> extends PromiseCach
|
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
36
37
|
* Internal cache interface used within driver only
|
|
38
|
+
* @public
|
|
37
39
|
*/
|
|
38
40
|
export interface INonPersistentCache {
|
|
39
41
|
/**
|
|
@@ -55,6 +57,7 @@ export interface INonPersistentCache {
|
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
59
|
* Internal cache interface used within driver only
|
|
60
|
+
* @public
|
|
58
61
|
*/
|
|
59
62
|
export interface IOdspCache extends INonPersistentCache {
|
|
60
63
|
/**
|
|
@@ -70,6 +73,9 @@ export declare class NonPersistentCache implements INonPersistentCache {
|
|
|
70
73
|
readonly fileUrlCache: PromiseCache<string, IOdspResolvedUrl>;
|
|
71
74
|
readonly snapshotPrefetchResultCache: PromiseCache<string, IPrefetchSnapshotContents>;
|
|
72
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
73
79
|
export interface IPrefetchSnapshotContents extends ISnapshotContents {
|
|
74
80
|
fluidEpoch: string;
|
|
75
81
|
prefetchStartTime: number;
|
package/dist/odspCache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odspCache.d.ts","sourceRoot":"","sources":["../src/odspCache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACN,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,eAAe,EACf,WAAW,EACX,uBAAuB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"odspCache.d.ts","sourceRoot":"","sources":["../src/odspCache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACN,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,eAAe,EACf,WAAW,EACX,uBAAuB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAKxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAJxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoD;gBAEnD,oBAAoB,SAAc;IAEhE,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAMrC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG;IAMlC,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,OAAO,CAAC,2BAA2B;IAcnC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,qBAAqB;CAS7B;AACD,qBAAa,oCAAoC,CAAC,CAAC,CAAE,SAAQ,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO;CAG/C;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CACtC,MAAM,EACN;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,uBAAuB,CAAA;KAAE,CACnE,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE9D;;;OAGG;IACH,QAAQ,CAAC,2BAA2B,EAAE,YAAY,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CACtF;AAED;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,mBAAmB;IACtD;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;CAC7C;AAED,qBAAa,kBAAmB,YAAW,mBAAmB;IAC7D,SAAgB,gBAAgB;mBAElB,MAAM;6BAAuB,uBAAuB;OAC9D;IAEJ,SAAgB,YAAY,yCAAgD;IAE5E,SAAgB,2BAA2B,kDAGvC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC1B"}
|
package/dist/odspCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odspCache.js","sourceRoot":"","sources":["../src/odspCache.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,2DAA0D;AAC1D,qFAQiD;
|
|
1
|
+
{"version":3,"file":"odspCache.js","sourceRoot":"","sources":["../src/odspCache.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,2DAA0D;AAC1D,qFAQiD;AAajD;;;GAGG;AACH,MAAa,oBAAoB;IAKhC,YAAoC,uBAAuB,IAAI,GAAG,IAAI;QAAlC,yBAAoB,GAApB,oBAAoB,CAAc;QAJrD,UAAK,GAAG,IAAI,GAAG,EAAe,CAAC;QAChD,wGAAwG;QACvF,uBAAkB,GAAG,IAAI,GAAG,EAAyC,CAAC;IAEd,CAAC;IAE1E,KAAK,CAAC,GAAG,CAAC,KAAkB;QAC3B,MAAM,GAAG,GAAG,IAAA,6CAAmB,EAAC,KAAK,CAAC,CAAC;QACvC,+DAA+D;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAkB,EAAE,KAAU;QACvC,MAAM,GAAG,GAAG,IAAA,6CAAmB,EAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAgB;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEO,2BAA2B,CAAC,KAAa;QAChD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;YACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;gBAC9B,OAAO,IAAI,CAAC;aACZ;QACF,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAa;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,SAAS,EAAE;YAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;IACF,CAAC;IAEO,qBAAqB,CAAC,KAAa;QAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAC1B,KAAK,EACL,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAC7B,CAAC;IACH,CAAC;CACD;AAtDD,oDAsDC;AACD,MAAa,oCAAwC,SAAQ,yBAAuB;IACnF,YAAY,aAAmC;QAC9C,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9E,CAAC;CACD;AAJD,oFAIC;AAsCD,MAAa,kBAAkB;IAA/B;QACiB,qBAAgB,GAAG,IAAI,yBAAY,EAGhD,CAAC;QAEY,iBAAY,GAAG,IAAI,yBAAY,EAA4B,CAAC;QAE5D,gCAA2B,GAAG,IAAI,yBAAY,EAG3D,CAAC;IACL,CAAC;CAAA;AAZD,gDAYC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { PromiseCache } from \"@fluidframework/core-utils\";\nimport {\n\tIOdspResolvedUrl,\n\tIFileEntry,\n\tIEntry,\n\tIPersistedCache,\n\tICacheEntry,\n\tISocketStorageDiscovery,\n\tgetKeyForCacheEntry,\n} from \"@fluidframework/odsp-driver-definitions\";\nimport { ISnapshotContents } from \"./odspPublicUtils\";\n\n/**\n * Similar to IPersistedCache, but exposes cache interface for single file\n * @public\n */\nexport interface IPersistedFileCache {\n\tget(entry: IEntry): Promise<any>;\n\tput(entry: IEntry, value: any): Promise<void>;\n\tremoveEntries(): Promise<void>;\n}\n\n/**\n * Default local-only implementation of IPersistedCache,\n * used if no persisted cache is provided by the host\n */\nexport class LocalPersistentCache implements IPersistedCache {\n\tprivate readonly cache = new Map<string, any>();\n\t// For every document id there will be a single expiration entry inspite of the number of cache entries.\n\tprivate readonly docIdExpirationMap = new Map<string, ReturnType<typeof setTimeout>>();\n\n\tpublic constructor(private readonly snapshotExpiryPolicy = 3600 * 1000) {}\n\n\tasync get(entry: ICacheEntry): Promise<any> {\n\t\tconst key = getKeyForCacheEntry(entry);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn this.cache.get(key);\n\t}\n\n\tasync put(entry: ICacheEntry, value: any) {\n\t\tconst key = getKeyForCacheEntry(entry);\n\t\tthis.cache.set(key, value);\n\t\tthis.updateExpirationEntry(entry.file.docId);\n\t}\n\n\tasync removeEntries(file: IFileEntry): Promise<void> {\n\t\tthis.removeDocIdEntriesFromCache(file.docId);\n\t}\n\n\tprivate removeDocIdEntriesFromCache(docId: string) {\n\t\tthis.removeExpirationEntry(docId);\n\t\treturn Array.from(this.cache)\n\t\t\t.filter(([cachekey]) => {\n\t\t\t\tconst docIdFromKey = cachekey.split(\"_\");\n\t\t\t\tif (docIdFromKey[0] === docId) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.map(([cachekey]) => {\n\t\t\t\tthis.cache.delete(cachekey);\n\t\t\t});\n\t}\n\n\tprivate removeExpirationEntry(docId: string) {\n\t\tconst timeout = this.docIdExpirationMap.get(docId);\n\t\tif (timeout !== undefined) {\n\t\t\tclearTimeout(timeout);\n\t\t\tthis.docIdExpirationMap.delete(docId);\n\t\t}\n\t}\n\n\tprivate updateExpirationEntry(docId: string) {\n\t\tthis.removeExpirationEntry(docId);\n\t\tthis.docIdExpirationMap.set(\n\t\t\tdocId,\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.removeDocIdEntriesFromCache(docId);\n\t\t\t}, this.snapshotExpiryPolicy),\n\t\t);\n\t}\n}\nexport class PromiseCacheWithOneHourSlidingExpiry<T> extends PromiseCache<string, T> {\n\tconstructor(removeOnError?: (e: any) => boolean) {\n\t\tsuper({ expiry: { policy: \"sliding\", durationMs: 3600000 }, removeOnError });\n\t}\n}\n\n/**\n * Internal cache interface used within driver only\n * @public\n */\nexport interface INonPersistentCache {\n\t/**\n\t * Cache of joined/joining session info\n\t */\n\treadonly sessionJoinCache: PromiseCache<\n\t\tstring,\n\t\t{ entryTime: number; joinSessionResponse: ISocketStorageDiscovery }\n\t>;\n\n\t/**\n\t * Cache of resolved/resolving file URLs\n\t */\n\treadonly fileUrlCache: PromiseCache<string, IOdspResolvedUrl>;\n\n\t/**\n\t * Used to store the snapshot fetch promise if the prefetch has been made using the prefetchLatestSnapshot api.\n\t * This is then used later to look for the promise during the container load.\n\t */\n\treadonly snapshotPrefetchResultCache: PromiseCache<string, IPrefetchSnapshotContents>;\n}\n\n/**\n * Internal cache interface used within driver only\n * @public\n */\nexport interface IOdspCache extends INonPersistentCache {\n\t/**\n\t * Persisted cache - only serializable content is allowed\n\t */\n\treadonly persistedCache: IPersistedFileCache;\n}\n\nexport class NonPersistentCache implements INonPersistentCache {\n\tpublic readonly sessionJoinCache = new PromiseCache<\n\t\tstring,\n\t\t{ entryTime: number; joinSessionResponse: ISocketStorageDiscovery }\n\t>();\n\n\tpublic readonly fileUrlCache = new PromiseCache<string, IOdspResolvedUrl>();\n\n\tpublic readonly snapshotPrefetchResultCache = new PromiseCache<\n\t\tstring,\n\t\tIPrefetchSnapshotContents\n\t>();\n}\n\n/**\n * @public\n */\nexport interface IPrefetchSnapshotContents extends ISnapshotContents {\n\tfluidEpoch: string;\n\tprefetchStartTime: number;\n}\n"]}
|
|
@@ -64,7 +64,7 @@ export declare class OdspDocumentDeltaConnection extends DocumentDeltaConnection
|
|
|
64
64
|
*/
|
|
65
65
|
requestOps(from: number, to: number): void;
|
|
66
66
|
flush(): Promise<FlushResult>;
|
|
67
|
-
protected disconnectHandler: (error: IFluidErrorBase & OdspError, clientId?: string
|
|
67
|
+
protected disconnectHandler: (error: IFluidErrorBase & OdspError, clientId?: string) => void;
|
|
68
68
|
protected initialize(connectMessage: IConnect, timeout: number): Promise<void>;
|
|
69
69
|
protected addTrackedListener(event: string, listener: (...args: any[]) => void): void;
|
|
70
70
|
get disposed(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odspDocumentDeltaConnection.d.ts","sourceRoot":"","sources":["../src/odspDocumentDeltaConnection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,mBAAmB,EACnB,eAAe,EAEf,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACN,OAAO,EACP,QAAQ,EACR,gBAAgB,EAIhB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"odspDocumentDeltaConnection.d.ts","sourceRoot":"","sources":["../src/odspDocumentDeltaConnection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,mBAAmB,EACnB,eAAe,EAEf,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACN,OAAO,EACP,QAAQ,EACR,gBAAgB,EAIhB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,WAAW,WAAW;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AA8LD;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IA4KtE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IA3KrC;;;;;;;;;;;;;;OAcG;WACiB,MAAM,CACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAElB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,mBAAmB,EACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,wBAAwB,EAAE,MAAM,GAAG,SAAS,GAC1C,OAAO,CAAC,2BAA2B,CAAC;IAiFvC,OAAO,CAAC,eAAe,CAA8B;IAErD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CACf;IACX,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,+BAA+B,CAA4C;IAEnF;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,UAAO,GAAG,eAAe;IAS3F;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA2B3C;;;;;;OAMG;IACH,OAAO;IAaP;;;;;OAKG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAuD7B,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAkC1C,SAAS,CAAC,iBAAiB,UAAW,eAAe,GAAG,SAAS,aAAa,MAAM,UAclF;cAEc,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IAsGpE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAiE9E,IAAW,QAAQ,YAkBlB;IAED;;;;OAIG;IACH,OAAO,KAAK,SAAS,GAEpB;IAED,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE;IAOnE;;;OAGG;IACI,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAIjD;;;;OAIG;IACI,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAIpD;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe;IAUhD;;OAEG;IACH,SAAS,CAAC,cAAc;CAaxB"}
|