@fluidframework/odsp-driver 2.113.1 → 2.115.0
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 +8 -0
- package/api-extractor/api-extractor-lint-legacyAlpha.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-legacyAlpha.esm.json +5 -0
- package/api-extractor/api-extractor.legacy.json +5 -1
- package/api-report/odsp-driver.legacy.alpha.api.md +232 -0
- package/dist/getUrlAndHeadersWithAuth.d.ts +4 -0
- package/dist/getUrlAndHeadersWithAuth.d.ts.map +1 -1
- package/dist/getUrlAndHeadersWithAuth.js +4 -0
- package/dist/getUrlAndHeadersWithAuth.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +1 -1
- package/dist/legacyAlpha.d.ts +49 -0
- package/dist/odspVersionManager/odspFileVersionFetcher.d.ts +40 -1
- package/dist/odspVersionManager/odspFileVersionFetcher.d.ts.map +1 -1
- package/dist/odspVersionManager/odspFileVersionFetcher.js +52 -14
- package/dist/odspVersionManager/odspFileVersionFetcher.js.map +1 -1
- package/dist/odspVersionManager/odspVersionManager.d.ts +23 -45
- package/dist/odspVersionManager/odspVersionManager.d.ts.map +1 -1
- package/dist/odspVersionManager/odspVersionManager.js +68 -33
- package/dist/odspVersionManager/odspVersionManager.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/pointInTimeDriver/odspPointInTimeDocumentService.d.ts +5 -0
- package/dist/pointInTimeDriver/odspPointInTimeDocumentService.d.ts.map +1 -1
- package/dist/pointInTimeDriver/odspPointInTimeDocumentService.js +6 -3
- package/dist/pointInTimeDriver/odspPointInTimeDocumentService.js.map +1 -1
- package/dist/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.d.ts +25 -33
- package/dist/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.d.ts.map +1 -1
- package/dist/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.js +62 -38
- package/dist/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.js.map +1 -1
- package/dist/public.d.ts +1 -1
- package/internal.d.ts +1 -1
- package/legacy/alpha.d.ts +11 -0
- package/legacy.d.ts +1 -1
- package/lib/getUrlAndHeadersWithAuth.d.ts +4 -0
- package/lib/getUrlAndHeadersWithAuth.d.ts.map +1 -1
- package/lib/getUrlAndHeadersWithAuth.js +4 -0
- package/lib/getUrlAndHeadersWithAuth.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -3
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/legacyAlpha.d.ts +49 -0
- package/lib/odspVersionManager/odspFileVersionFetcher.d.ts +40 -1
- package/lib/odspVersionManager/odspFileVersionFetcher.d.ts.map +1 -1
- package/lib/odspVersionManager/odspFileVersionFetcher.js +53 -15
- package/lib/odspVersionManager/odspFileVersionFetcher.js.map +1 -1
- package/lib/odspVersionManager/odspVersionManager.d.ts +23 -45
- package/lib/odspVersionManager/odspVersionManager.d.ts.map +1 -1
- package/lib/odspVersionManager/odspVersionManager.js +68 -33
- package/lib/odspVersionManager/odspVersionManager.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/pointInTimeDriver/odspPointInTimeDocumentService.d.ts +5 -0
- package/lib/pointInTimeDriver/odspPointInTimeDocumentService.d.ts.map +1 -1
- package/lib/pointInTimeDriver/odspPointInTimeDocumentService.js +6 -3
- package/lib/pointInTimeDriver/odspPointInTimeDocumentService.js.map +1 -1
- package/lib/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.d.ts +25 -33
- package/lib/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.d.ts.map +1 -1
- package/lib/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.js +62 -38
- package/lib/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.js.map +1 -1
- package/lib/public.d.ts +1 -1
- package/package.json +29 -17
- package/src/getUrlAndHeadersWithAuth.ts +4 -0
- package/src/index.ts +8 -3
- package/src/odspVersionManager/DEV.md +376 -54
- package/src/odspVersionManager/odspFileVersionFetcher.ts +111 -16
- package/src/odspVersionManager/odspVersionManager.ts +106 -68
- package/src/packageVersion.ts +1 -1
- package/src/pointInTimeDriver/odspPointInTimeDocumentService.ts +8 -4
- package/src/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.ts +123 -48
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
+
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-lint.entrypoint.json",
|
|
4
|
+
"mainEntryPointFilePath": "<projectFolder>/dist/legacyAlpha.d.ts"
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
+
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-lint.entrypoint.json",
|
|
4
|
+
"mainEntryPointFilePath": "<projectFolder>/lib/legacyAlpha.d.ts"
|
|
5
|
+
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
-
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-report.esm.legacy.json"
|
|
3
|
+
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-report.esm.legacy.json",
|
|
4
|
+
"mainEntryPointFilePath": "<projectFolder>/lib/legacyAlpha.d.ts",
|
|
5
|
+
"apiReport": {
|
|
6
|
+
"reportVariants": ["public", "beta", "alpha"]
|
|
7
|
+
}
|
|
4
8
|
}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
## Alpha API Report File for "@fluidframework/odsp-driver"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
|
|
7
|
+
// @beta @legacy
|
|
8
|
+
export function checkUrl(documentUrl: URL): DriverPreCheckInfo | undefined;
|
|
9
|
+
|
|
10
|
+
// @beta @legacy
|
|
11
|
+
export function createLocalOdspDocumentServiceFactory(localSnapshot: Uint8Array | string): IDocumentServiceFactory;
|
|
12
|
+
|
|
13
|
+
// @beta @legacy
|
|
14
|
+
export function createOdspCreateContainerRequest(siteUrl: string, driveId: string, filePath: string, fileName: string, createShareLinkType?: ISharingLinkKind, containerPackageInfo?: IContainerPackageInfo | undefined): IRequest;
|
|
15
|
+
|
|
16
|
+
// @beta @legacy
|
|
17
|
+
export function createOdspUrl(l: OdspFluidDataStoreLocator): string;
|
|
18
|
+
|
|
19
|
+
// @beta @legacy
|
|
20
|
+
export function encodeOdspFluidDataStoreLocator(locator: OdspFluidDataStoreLocator): string;
|
|
21
|
+
|
|
22
|
+
// @beta @legacy
|
|
23
|
+
export class EpochTracker implements IPersistedFileCache {
|
|
24
|
+
constructor(cache: IPersistedCache, fileEntry: IFileEntry, logger: ITelemetryLoggerExt, clientIsSummarizer?: boolean | undefined);
|
|
25
|
+
// (undocumented)
|
|
26
|
+
protected readonly cache: IPersistedCache;
|
|
27
|
+
// (undocumented)
|
|
28
|
+
protected readonly clientIsSummarizer?: boolean | undefined;
|
|
29
|
+
fetch(url: string, fetchOptions: RequestInit, fetchType: FetchType, addInBody?: boolean, fetchReason?: string): Promise<IOdspResponse<Response>>;
|
|
30
|
+
fetchAndParseAsJSON<T>(url: string, fetchOptions: RequestInit, fetchType: FetchType, addInBody?: boolean, fetchReason?: string): Promise<IOdspResponse<T>>;
|
|
31
|
+
fetchArray(url: string, fetchOptions: {
|
|
32
|
+
[index: string]: RequestInit;
|
|
33
|
+
}, fetchType: FetchType, addInBody?: boolean, fetchReason?: string): Promise<IOdspResponse<ArrayBuffer>>;
|
|
34
|
+
// (undocumented)
|
|
35
|
+
protected readonly fileEntry: IFileEntry;
|
|
36
|
+
// (undocumented)
|
|
37
|
+
get fluidEpoch(): string | undefined;
|
|
38
|
+
// (undocumented)
|
|
39
|
+
get(entry: IEntry): Promise<any>;
|
|
40
|
+
// (undocumented)
|
|
41
|
+
protected readonly logger: ITelemetryLoggerExt;
|
|
42
|
+
// (undocumented)
|
|
43
|
+
put(entry: IEntry, value: any): Promise<void>;
|
|
44
|
+
// (undocumented)
|
|
45
|
+
readonly rateLimiter: RateLimiter;
|
|
46
|
+
// (undocumented)
|
|
47
|
+
removeEntries(): Promise<void>;
|
|
48
|
+
// (undocumented)
|
|
49
|
+
setEpoch(epoch: string, fromCache: boolean, fetchType: FetchTypeInternal): void;
|
|
50
|
+
// (undocumented)
|
|
51
|
+
validateEpoch(epoch: string | undefined, fetchType: FetchType): Promise<void>;
|
|
52
|
+
// (undocumented)
|
|
53
|
+
protected validateEpochFromResponse(epochFromResponse: string | undefined, fetchType: FetchTypeInternal, fromCache?: boolean): void;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// @beta @legacy (undocumented)
|
|
57
|
+
export type FetchType = "blob" | "createBlob" | "createFile" | "joinSession" | "ops" | "test" | "snapshotTree" | "treesLatest" | "uploadSummary" | "push" | "versions" | "renameFile";
|
|
58
|
+
|
|
59
|
+
// @beta @legacy (undocumented)
|
|
60
|
+
export type FetchTypeInternal = FetchType | "cache";
|
|
61
|
+
|
|
62
|
+
// @beta @legacy
|
|
63
|
+
export function getHashedDocumentId(driveId: string, itemId: string): Promise<string>;
|
|
64
|
+
|
|
65
|
+
// @beta @legacy
|
|
66
|
+
export function getLocatorFromOdspUrl(url: URL, requireFluidSignature?: boolean): OdspFluidDataStoreLocator | undefined;
|
|
67
|
+
|
|
68
|
+
// @alpha @legacy
|
|
69
|
+
export function getOdspPointInTimeDocumentServiceFactory(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy): IPointInTimeDocumentServiceFactory;
|
|
70
|
+
|
|
71
|
+
// @beta @legacy (undocumented)
|
|
72
|
+
export interface ICacheAndTracker {
|
|
73
|
+
// (undocumented)
|
|
74
|
+
cache: IOdspCache;
|
|
75
|
+
// (undocumented)
|
|
76
|
+
epochTracker: EpochTracker;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// @beta @legacy
|
|
80
|
+
export interface INonPersistentCache {
|
|
81
|
+
readonly fileUrlCache: PromiseCache<string, IOdspResolvedUrl>;
|
|
82
|
+
readonly sessionJoinCache: PromiseCache<string, {
|
|
83
|
+
entryTime: number;
|
|
84
|
+
joinSessionResponse: ISocketStorageDiscovery;
|
|
85
|
+
}>;
|
|
86
|
+
readonly snapshotPrefetchResultCache: PromiseCache<string, IPrefetchSnapshotContents>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// @beta @legacy
|
|
90
|
+
export interface IOdspCache extends INonPersistentCache {
|
|
91
|
+
readonly persistedCache: IPersistedFileCache;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// @beta @legacy (undocumented)
|
|
95
|
+
export interface IOdspResponse<T> {
|
|
96
|
+
// (undocumented)
|
|
97
|
+
content: T;
|
|
98
|
+
// (undocumented)
|
|
99
|
+
duration: number;
|
|
100
|
+
// (undocumented)
|
|
101
|
+
headers: Map<string, string>;
|
|
102
|
+
// (undocumented)
|
|
103
|
+
propsToLog: ITelemetryBaseProperties;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// @beta @legacy
|
|
107
|
+
export interface IPersistedFileCache {
|
|
108
|
+
// (undocumented)
|
|
109
|
+
get(entry: IEntry): Promise<any>;
|
|
110
|
+
// (undocumented)
|
|
111
|
+
put(entry: IEntry, value: any): Promise<void>;
|
|
112
|
+
// (undocumented)
|
|
113
|
+
removeEntries(): Promise<void>;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// @alpha @legacy
|
|
117
|
+
export interface IPointInTimeDocumentServiceFactory extends IDocumentServiceFactory {
|
|
118
|
+
createPointInTimeDocumentService(resolvedUrl: IResolvedUrl, targetSequenceNumber: number, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// @beta @legacy (undocumented)
|
|
122
|
+
export interface IPrefetchSnapshotContents extends ISnapshot {
|
|
123
|
+
// (undocumented)
|
|
124
|
+
fluidEpoch: string;
|
|
125
|
+
// (undocumented)
|
|
126
|
+
prefetchStartTime: number;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// @beta @deprecated @legacy (undocumented)
|
|
130
|
+
export interface ISnapshotContents {
|
|
131
|
+
// (undocumented)
|
|
132
|
+
blobs: Map<string, ArrayBuffer>;
|
|
133
|
+
latestSequenceNumber: number | undefined;
|
|
134
|
+
// (undocumented)
|
|
135
|
+
ops: ISequencedDocumentMessage[];
|
|
136
|
+
sequenceNumber: number | undefined;
|
|
137
|
+
// (undocumented)
|
|
138
|
+
snapshotTree: ISnapshotTree;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// @beta @legacy
|
|
142
|
+
export function isOdspResolvedUrl(resolvedUrl: IResolvedUrl): resolvedUrl is IOdspResolvedUrl;
|
|
143
|
+
|
|
144
|
+
// @beta @legacy
|
|
145
|
+
export const locatorQueryParamName = "nav";
|
|
146
|
+
|
|
147
|
+
// @beta @legacy (undocumented)
|
|
148
|
+
export const OdcApiSiteOrigin = "https://my.microsoftpersonalcontent.com";
|
|
149
|
+
|
|
150
|
+
// @beta @legacy (undocumented)
|
|
151
|
+
export const OdcFileSiteOrigin = "https://1drv.ms";
|
|
152
|
+
|
|
153
|
+
// @beta @legacy
|
|
154
|
+
export class OdspDocumentServiceFactory extends OdspDocumentServiceFactoryCore {
|
|
155
|
+
constructor(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// @beta @legacy
|
|
159
|
+
export class OdspDocumentServiceFactoryCore implements IDocumentServiceFactory, IRelaySessionAwareDriverFactory {
|
|
160
|
+
constructor(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy);
|
|
161
|
+
// (undocumented)
|
|
162
|
+
createContainer(createNewSummary: ISummaryTree | undefined, createNewResolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
163
|
+
// (undocumented)
|
|
164
|
+
createDocumentService(resolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
165
|
+
// (undocumented)
|
|
166
|
+
protected createDocumentServiceCore(resolvedUrl: IResolvedUrl, odspLogger: ITelemetryBaseLogger, cacheAndTrackerArg?: ICacheAndTracker, clientIsSummarizer?: boolean): Promise<IDocumentService>;
|
|
167
|
+
getRelayServiceSessionInfo(resolvedUrl: IResolvedUrl): Promise<ISocketStorageDiscovery | undefined>;
|
|
168
|
+
readonly ILayerCompatDetails?: unknown;
|
|
169
|
+
// (undocumented)
|
|
170
|
+
get IRelaySessionAwareDriverFactory(): this;
|
|
171
|
+
// (undocumented)
|
|
172
|
+
protected persistedCache: IPersistedCache;
|
|
173
|
+
// (undocumented)
|
|
174
|
+
get snapshotPrefetchResultCache(): PromiseCache<string, IPrefetchSnapshotContents>;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// @beta @legacy
|
|
178
|
+
export class OdspDriverUrlResolver implements IUrlResolver {
|
|
179
|
+
constructor();
|
|
180
|
+
getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string, packageInfoSource?: IContainerPackageInfo): Promise<string>;
|
|
181
|
+
resolve(request: IRequest): Promise<IOdspResolvedUrl>;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// @beta @legacy
|
|
185
|
+
export class OdspDriverUrlResolverForShareLink implements IUrlResolver {
|
|
186
|
+
constructor(shareLinkFetcherProps?: ShareLinkFetcherProps | undefined, logger?: ITelemetryBaseLogger, appName?: string | undefined, getContext?: ((resolvedUrl: IOdspResolvedUrl, dataStorePath: string) => Promise<string | undefined>) | undefined, containerPackageInfo?: IContainerPackageInfo | undefined);
|
|
187
|
+
appendDataStorePath(requestUrl: URL, pathToAppend: string): string | undefined;
|
|
188
|
+
appendLocatorParams(baseUrl: string, resolvedUrl: IResolvedUrl, dataStorePath: string, packageInfoSource?: IContainerPackageInfo): Promise<string>;
|
|
189
|
+
static createDocumentUrl(baseUrl: string, driverInfo: OdspFluidDataStoreLocator): string;
|
|
190
|
+
getAbsoluteUrl(resolvedUrl: IResolvedUrl, dataStorePath: string, packageInfoSource?: IContainerPackageInfo): Promise<string>;
|
|
191
|
+
resolve(request: IRequest): Promise<IOdspResolvedUrl>;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// @beta @legacy (undocumented)
|
|
195
|
+
export interface OdspFluidDataStoreLocator extends IOdspUrlParts {
|
|
196
|
+
// (undocumented)
|
|
197
|
+
appName?: string | undefined;
|
|
198
|
+
// (undocumented)
|
|
199
|
+
containerPackageName?: string | undefined;
|
|
200
|
+
// (undocumented)
|
|
201
|
+
context?: string | undefined;
|
|
202
|
+
// (undocumented)
|
|
203
|
+
dataStorePath: string;
|
|
204
|
+
// (undocumented)
|
|
205
|
+
fileVersion?: string | undefined;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// @beta @legacy
|
|
209
|
+
export 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>;
|
|
210
|
+
|
|
211
|
+
// @beta @legacy
|
|
212
|
+
export interface ShareLinkFetcherProps {
|
|
213
|
+
identityType: IdentityType;
|
|
214
|
+
tokenFetcher: TokenFetcher<OdspResourceTokenFetchOptions>;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// @beta @legacy
|
|
218
|
+
export enum SnapshotFormatSupportType {
|
|
219
|
+
// (undocumented)
|
|
220
|
+
Binary = 1,
|
|
221
|
+
// (undocumented)
|
|
222
|
+
Json = 0,
|
|
223
|
+
// (undocumented)
|
|
224
|
+
JsonAndBinary = 2
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// @beta @legacy
|
|
228
|
+
export function storeLocatorInOdspUrl(url: URL, locator: OdspFluidDataStoreLocator): void;
|
|
229
|
+
|
|
230
|
+
// (No @packageDocumentation comment for this package)
|
|
231
|
+
|
|
232
|
+
```
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Builds the request headers carrying the given Authorization header value.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
5
9
|
export declare function getHeadersWithAuth(authHeader: string | null): {
|
|
6
10
|
[index: string]: string;
|
|
7
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUrlAndHeadersWithAuth.d.ts","sourceRoot":"","sources":["../src/getUrlAndHeadersWithAuth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,kBAAkB,CAEjC,UAAU,EAAE,MAAM,GAAG,IAAI,GACvB;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAM7B"}
|
|
1
|
+
{"version":3,"file":"getUrlAndHeadersWithAuth.d.ts","sourceRoot":"","sources":["../src/getUrlAndHeadersWithAuth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,wBAAgB,kBAAkB,CAEjC,UAAU,EAAE,MAAM,GAAG,IAAI,GACvB;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAM7B"}
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.getHeadersWithAuth = void 0;
|
|
8
8
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
|
+
/**
|
|
10
|
+
* Builds the request headers carrying the given Authorization header value.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
9
13
|
function getHeadersWithAuth(
|
|
10
14
|
// eslint-disable-next-line @rushstack/no-new-null
|
|
11
15
|
authHeader) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUrlAndHeadersWithAuth.js","sourceRoot":"","sources":["../src/getUrlAndHeadersWithAuth.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA6D;AAE7D,SAAgB,kBAAkB;AACjC,kDAAkD;AAClD,UAAyB;IAEzB,IAAA,iBAAM,EAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAEzE,OAAO;QACN,aAAa,EAAE,UAAU;KACzB,CAAC;AACH,CAAC;AATD,gDASC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nexport function getHeadersWithAuth(\n\t// eslint-disable-next-line @rushstack/no-new-null\n\tauthHeader: string | null,\n): { [index: string]: string } {\n\tassert(!!authHeader, 0x936 /* authHeader should not be null or empty */);\n\n\treturn {\n\t\tAuthorization: authHeader,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getUrlAndHeadersWithAuth.js","sourceRoot":"","sources":["../src/getUrlAndHeadersWithAuth.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA6D;AAE7D;;;GAGG;AACH,SAAgB,kBAAkB;AACjC,kDAAkD;AAClD,UAAyB;IAEzB,IAAA,iBAAM,EAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAEzE,OAAO;QACN,aAAa,EAAE,UAAU;KACzB,CAAC;AACH,CAAC;AATD,gDASC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\n/**\n * Builds the request headers carrying the given Authorization header value.\n * @internal\n */\nexport function getHeadersWithAuth(\n\t// eslint-disable-next-line @rushstack/no-new-null\n\tauthHeader: string | null,\n): { [index: string]: string } {\n\tassert(!!authHeader, 0x936 /* authHeader should not be null or empty */);\n\n\treturn {\n\t\tAuthorization: authHeader,\n\t};\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,12 @@ export { ClpCompliantAppHeader, type IClpCompliantAppHeader, type ISharingLinkHe
|
|
|
7
7
|
export { checkUrl } from "./checkUrl.js";
|
|
8
8
|
export { createOdspUrl } from "./createOdspUrl.js";
|
|
9
9
|
export { getHashedDocumentId, type ISnapshotContents } from "./odspPublicUtils.js";
|
|
10
|
-
export { getOdspUrlParts, isOdcUrl, isSpoUrl } from "./odspUrlHelper.js";
|
|
10
|
+
export { getApiRoot, getOdspUrlParts, isOdcUrl, isSpoUrl } from "./odspUrlHelper.js";
|
|
11
|
+
export { getHeadersWithAuth } from "./getUrlAndHeadersWithAuth.js";
|
|
11
12
|
export { prefetchLatestSnapshot } from "./prefetchLatestSnapshot.js";
|
|
12
13
|
export { createLocalOdspDocumentServiceFactory, OdspDocumentServiceFactory, } from "./odspDocumentServiceFactory.js";
|
|
13
14
|
export { OdspDocumentServiceFactoryCore } from "./odspDocumentServiceFactoryCore.js";
|
|
14
|
-
export {
|
|
15
|
+
export { getOdspPointInTimeDocumentServiceFactory, type IPointInTimeDocumentServiceFactory, } from "./pointInTimeDriver/odspPointInTimeDocumentServiceFactory.js";
|
|
15
16
|
export { createOdspCreateContainerRequest } from "./createOdspCreateContainerRequest.js";
|
|
16
17
|
export { OdspDriverUrlResolver } from "./odspDriverUrlResolver.js";
|
|
17
18
|
export { OdspDriverUrlResolverForShareLink, type ShareLinkFetcherProps, } from "./odspDriverUrlResolverForShareLink.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EACN,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EACN,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EACN,qCAAqC,EACrC,0BAA0B,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,OAAO,EACN,wCAAwC,EACxC,KAAK,kCAAkC,GACvC,MAAM,8DAA8D,CAAC;AAItE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAGzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACN,iCAAiC,EACjC,KAAK,qBAAqB,GAC1B,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EACN,+BAA+B,EAC/B,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACX,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACN,KAAK,0BAA0B,EAC/B,4BAA4B,GAC5B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.odspDriverCompatDetailsForLoader = exports.parseCompactSnapshotResponse = exports.SnapshotFormatSupportType = exports.isOdspResolvedUrl = exports.storeLocatorInOdspUrl = exports.locatorQueryParamName = exports.getLocatorFromOdspUrl = exports.encodeOdspFluidDataStoreLocator = exports.OdspDriverUrlResolverForShareLink = exports.OdspDriverUrlResolver = exports.createOdspCreateContainerRequest = exports.
|
|
7
|
+
exports.odspDriverCompatDetailsForLoader = exports.parseCompactSnapshotResponse = exports.SnapshotFormatSupportType = exports.isOdspResolvedUrl = exports.storeLocatorInOdspUrl = exports.locatorQueryParamName = exports.getLocatorFromOdspUrl = exports.encodeOdspFluidDataStoreLocator = exports.OdspDriverUrlResolverForShareLink = exports.OdspDriverUrlResolver = exports.createOdspCreateContainerRequest = exports.getOdspPointInTimeDocumentServiceFactory = exports.OdspDocumentServiceFactoryCore = exports.OdspDocumentServiceFactory = exports.createLocalOdspDocumentServiceFactory = exports.prefetchLatestSnapshot = exports.getHeadersWithAuth = exports.isSpoUrl = exports.isOdcUrl = exports.getOdspUrlParts = exports.getApiRoot = exports.getHashedDocumentId = exports.createOdspUrl = exports.checkUrl = exports.SharingLinkHeader = exports.ClpCompliantAppHeader = exports.OdcFileSiteOrigin = exports.OdcApiSiteOrigin = void 0;
|
|
8
8
|
// Constants
|
|
9
9
|
var constants_js_1 = require("./constants.js");
|
|
10
10
|
Object.defineProperty(exports, "OdcApiSiteOrigin", { enumerable: true, get: function () { return constants_js_1.OdcApiSiteOrigin; } });
|
|
@@ -20,9 +20,12 @@ Object.defineProperty(exports, "createOdspUrl", { enumerable: true, get: functio
|
|
|
20
20
|
var odspPublicUtils_js_1 = require("./odspPublicUtils.js");
|
|
21
21
|
Object.defineProperty(exports, "getHashedDocumentId", { enumerable: true, get: function () { return odspPublicUtils_js_1.getHashedDocumentId; } });
|
|
22
22
|
var odspUrlHelper_js_1 = require("./odspUrlHelper.js");
|
|
23
|
+
Object.defineProperty(exports, "getApiRoot", { enumerable: true, get: function () { return odspUrlHelper_js_1.getApiRoot; } });
|
|
23
24
|
Object.defineProperty(exports, "getOdspUrlParts", { enumerable: true, get: function () { return odspUrlHelper_js_1.getOdspUrlParts; } });
|
|
24
25
|
Object.defineProperty(exports, "isOdcUrl", { enumerable: true, get: function () { return odspUrlHelper_js_1.isOdcUrl; } });
|
|
25
26
|
Object.defineProperty(exports, "isSpoUrl", { enumerable: true, get: function () { return odspUrlHelper_js_1.isSpoUrl; } });
|
|
27
|
+
var getUrlAndHeadersWithAuth_js_1 = require("./getUrlAndHeadersWithAuth.js");
|
|
28
|
+
Object.defineProperty(exports, "getHeadersWithAuth", { enumerable: true, get: function () { return getUrlAndHeadersWithAuth_js_1.getHeadersWithAuth; } });
|
|
26
29
|
// prefetch latest snapshot before container load
|
|
27
30
|
var prefetchLatestSnapshot_js_1 = require("./prefetchLatestSnapshot.js");
|
|
28
31
|
Object.defineProperty(exports, "prefetchLatestSnapshot", { enumerable: true, get: function () { return prefetchLatestSnapshot_js_1.prefetchLatestSnapshot; } });
|
|
@@ -32,9 +35,10 @@ Object.defineProperty(exports, "createLocalOdspDocumentServiceFactory", { enumer
|
|
|
32
35
|
Object.defineProperty(exports, "OdspDocumentServiceFactory", { enumerable: true, get: function () { return odspDocumentServiceFactory_js_1.OdspDocumentServiceFactory; } });
|
|
33
36
|
var odspDocumentServiceFactoryCore_js_1 = require("./odspDocumentServiceFactoryCore.js");
|
|
34
37
|
Object.defineProperty(exports, "OdspDocumentServiceFactoryCore", { enumerable: true, get: function () { return odspDocumentServiceFactoryCore_js_1.OdspDocumentServiceFactoryCore; } });
|
|
35
|
-
|
|
38
|
+
/* eslint-disable import-x/no-internal-modules */
|
|
36
39
|
var odspPointInTimeDocumentServiceFactory_js_1 = require("./pointInTimeDriver/odspPointInTimeDocumentServiceFactory.js");
|
|
37
|
-
Object.defineProperty(exports, "
|
|
40
|
+
Object.defineProperty(exports, "getOdspPointInTimeDocumentServiceFactory", { enumerable: true, get: function () { return odspPointInTimeDocumentServiceFactory_js_1.getOdspPointInTimeDocumentServiceFactory; } });
|
|
41
|
+
/* eslint-enable import-x/no-internal-modules */
|
|
38
42
|
// File creation
|
|
39
43
|
var createOdspCreateContainerRequest_js_1 = require("./createOdspCreateContainerRequest.js");
|
|
40
44
|
Object.defineProperty(exports, "createOdspCreateContainerRequest", { enumerable: true, get: function () { return createOdspCreateContainerRequest_js_1.createOdspCreateContainerRequest; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,YAAY;AACZ,+CAAqE;AAA5D,gHAAA,gBAAgB,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAE5C,2DAM8B;AAL7B,2HAAA,qBAAqB,OAAA;AAIrB,uHAAA,iBAAiB,OAAA;AAGlB,eAAe;AACf,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,2DAAmF;AAA1E,yHAAA,mBAAmB,OAAA;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,YAAY;AACZ,+CAAqE;AAA5D,gHAAA,gBAAgB,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAE5C,2DAM8B;AAL7B,2HAAA,qBAAqB,OAAA;AAIrB,uHAAA,iBAAiB,OAAA;AAGlB,eAAe;AACf,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,2DAAmF;AAA1E,yHAAA,mBAAmB,OAAA;AAC5B,uDAAqF;AAA5E,8GAAA,UAAU,OAAA;AAAE,mHAAA,eAAe,OAAA;AAAE,4GAAA,QAAQ,OAAA;AAAE,4GAAA,QAAQ,OAAA;AACxD,6EAAmE;AAA1D,iIAAA,kBAAkB,OAAA;AAE3B,iDAAiD;AACjD,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAE/B,UAAU;AACV,iFAGyC;AAFxC,sJAAA,qCAAqC,OAAA;AACrC,2IAAA,0BAA0B,OAAA;AAE3B,yFAAqF;AAA5E,mJAAA,8BAA8B,OAAA;AACvC,iDAAiD;AACjD,yHAGsE;AAFrE,oKAAA,wCAAwC,OAAA;AAGzC,gDAAgD;AAEhD,gBAAgB;AAChB,6FAAyF;AAAhF,uJAAA,gCAAgC,OAAA;AAEzC,6CAA6C;AAC7C,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,+FAGgD;AAF/C,yJAAA,iCAAiC,OAAA;AAIlC,oEAAoE;AACpE,+DAKgC;AAJ/B,uIAAA,+BAA+B,OAAA;AAC/B,6HAAA,qBAAqB,OAAA;AACrB,6HAAA,qBAAqB,OAAA;AACrB,6HAAA,qBAAqB,OAAA;AAetB,+CAAuE;AAA1C,iHAAA,iBAAiB,OAAA;AAC9C,uDAA+D;AAAtD,6HAAA,yBAAyB,OAAA;AAClC,uEAGoC;AADnC,wIAAA,4BAA4B,OAAA;AAG7B,uBAAuB;AACvB,qEAA6E;AAApE,2IAAA,gCAAgC,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// Constants\nexport { OdcApiSiteOrigin, OdcFileSiteOrigin } from \"./constants.js\";\n\nexport {\n\tClpCompliantAppHeader,\n\ttype IClpCompliantAppHeader,\n\ttype ISharingLinkHeader,\n\ttype OdspFluidDataStoreLocator,\n\tSharingLinkHeader,\n} from \"./contractsPublic.js\";\n\n// public utils\nexport { checkUrl } from \"./checkUrl.js\";\nexport { createOdspUrl } from \"./createOdspUrl.js\";\nexport { getHashedDocumentId, type ISnapshotContents } from \"./odspPublicUtils.js\";\nexport { getApiRoot, getOdspUrlParts, isOdcUrl, isSpoUrl } from \"./odspUrlHelper.js\";\nexport { getHeadersWithAuth } from \"./getUrlAndHeadersWithAuth.js\";\n\n// prefetch latest snapshot before container load\nexport { prefetchLatestSnapshot } from \"./prefetchLatestSnapshot.js\";\n\n// Factory\nexport {\n\tcreateLocalOdspDocumentServiceFactory,\n\tOdspDocumentServiceFactory,\n} from \"./odspDocumentServiceFactory.js\";\nexport { OdspDocumentServiceFactoryCore } from \"./odspDocumentServiceFactoryCore.js\";\n/* eslint-disable import-x/no-internal-modules */\nexport {\n\tgetOdspPointInTimeDocumentServiceFactory,\n\ttype IPointInTimeDocumentServiceFactory,\n} from \"./pointInTimeDriver/odspPointInTimeDocumentServiceFactory.js\";\n/* eslint-enable import-x/no-internal-modules */\n\n// File creation\nexport { createOdspCreateContainerRequest } from \"./createOdspCreateContainerRequest.js\";\n\n// URI Resolver functionality, URI management\nexport { OdspDriverUrlResolver } from \"./odspDriverUrlResolver.js\";\nexport {\n\tOdspDriverUrlResolverForShareLink,\n\ttype ShareLinkFetcherProps,\n} from \"./odspDriverUrlResolverForShareLink.js\";\n\n// It's used by URL resolve code, but also has some public functions\nexport {\n\tencodeOdspFluidDataStoreLocator,\n\tgetLocatorFromOdspUrl,\n\tlocatorQueryParamName,\n\tstoreLocatorInOdspUrl,\n} from \"./odspFluidFileLink.js\";\n\nexport type {\n\tIOdspCache,\n\tIPersistedFileCache,\n\tINonPersistentCache,\n\tIPrefetchSnapshotContents,\n} from \"./odspCache.js\";\nexport type {\n\tICacheAndTracker,\n\tEpochTracker,\n\tFetchType,\n\tFetchTypeInternal,\n} from \"./epochTracker.js\";\nexport { type IOdspResponse, isOdspResolvedUrl } from \"./odspUtils.js\";\nexport { SnapshotFormatSupportType } from \"./fetchSnapshot.js\";\nexport {\n\ttype ISnapshotContentsWithProps,\n\tparseCompactSnapshotResponse,\n} from \"./compactSnapshotParser.js\";\n\n// Layer Compat details\nexport { odspDriverCompatDetailsForLoader } from \"./odspLayerCompatState.js\";\n"]}
|
package/dist/legacy.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
/*
|
|
7
7
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
8
|
-
* Generated by "flub generate entrypoints --resolutionConditions require --outFileLegacyBeta legacy --outDir ./dist" in @fluid-tools/build-cli.
|
|
8
|
+
* Generated by "flub generate entrypoints --resolutionConditions require --outFileLegacyBeta legacy --outFileLegacyAlpha legacyAlpha --outDir ./dist" in @fluid-tools/build-cli.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
export {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
8
|
+
* Generated by "flub generate entrypoints --resolutionConditions require --outFileLegacyBeta legacy --outFileLegacyAlpha legacyAlpha --outDir ./dist" in @fluid-tools/build-cli.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
// #region @legacyBeta APIs
|
|
13
|
+
EpochTracker,
|
|
14
|
+
FetchType,
|
|
15
|
+
FetchTypeInternal,
|
|
16
|
+
ICacheAndTracker,
|
|
17
|
+
INonPersistentCache,
|
|
18
|
+
IOdspCache,
|
|
19
|
+
IOdspResponse,
|
|
20
|
+
IPersistedFileCache,
|
|
21
|
+
IPrefetchSnapshotContents,
|
|
22
|
+
ISnapshotContents,
|
|
23
|
+
OdcApiSiteOrigin,
|
|
24
|
+
OdcFileSiteOrigin,
|
|
25
|
+
OdspDocumentServiceFactory,
|
|
26
|
+
OdspDocumentServiceFactoryCore,
|
|
27
|
+
OdspDriverUrlResolver,
|
|
28
|
+
OdspDriverUrlResolverForShareLink,
|
|
29
|
+
OdspFluidDataStoreLocator,
|
|
30
|
+
ShareLinkFetcherProps,
|
|
31
|
+
SnapshotFormatSupportType,
|
|
32
|
+
checkUrl,
|
|
33
|
+
createLocalOdspDocumentServiceFactory,
|
|
34
|
+
createOdspCreateContainerRequest,
|
|
35
|
+
createOdspUrl,
|
|
36
|
+
encodeOdspFluidDataStoreLocator,
|
|
37
|
+
getHashedDocumentId,
|
|
38
|
+
getLocatorFromOdspUrl,
|
|
39
|
+
isOdspResolvedUrl,
|
|
40
|
+
locatorQueryParamName,
|
|
41
|
+
prefetchLatestSnapshot,
|
|
42
|
+
storeLocatorInOdspUrl,
|
|
43
|
+
// #endregion
|
|
44
|
+
|
|
45
|
+
// #region @legacyAlpha APIs
|
|
46
|
+
IPointInTimeDocumentServiceFactory,
|
|
47
|
+
getOdspPointInTimeDocumentServiceFactory
|
|
48
|
+
// #endregion
|
|
49
|
+
} from "./index.js";
|
|
@@ -5,7 +5,46 @@
|
|
|
5
5
|
import type { IOdspUrlParts, InstrumentedStorageTokenFetcher } from "@fluidframework/odsp-driver-definitions/internal";
|
|
6
6
|
import type { TelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
|
|
7
7
|
import type { EpochTracker } from "../epochTracker.js";
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* A single ODSP file version, as listed by the file's version history.
|
|
10
|
+
*/
|
|
11
|
+
export interface OdspFileVersionRef {
|
|
12
|
+
/**
|
|
13
|
+
* The version's label (e.g. `"42.0"`), used to address the version when fetching it.
|
|
14
|
+
*/
|
|
15
|
+
readonly versionId: string;
|
|
16
|
+
/**
|
|
17
|
+
* Last-modified timestamp of this version, ISO-8601.
|
|
18
|
+
*/
|
|
19
|
+
readonly lastModifiedDateTime: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Provides a file's versions and resolves each version's Fluid sequence number. Injected into
|
|
23
|
+
* the version manager so the selection logic does not depend on how versions are fetched.
|
|
24
|
+
*/
|
|
25
|
+
export interface IOdspFileVersionFetcher {
|
|
26
|
+
/**
|
|
27
|
+
* Enumerate the file's versions, newest-first.
|
|
28
|
+
*/
|
|
29
|
+
listFileVersions(): Promise<OdspFileVersionRef[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a single version's Fluid sequence number. Throws on failure rather than returning a
|
|
32
|
+
* wrong value.
|
|
33
|
+
*/
|
|
34
|
+
resolveSequenceNumber(versionId: string): Promise<number>;
|
|
35
|
+
/**
|
|
36
|
+
* Read the live document's current ODSP epoch (`x-fluid-epoch`), or `undefined`. Epoch identifies
|
|
37
|
+
* the file's binary lineage and changes on a version restore or download-then-reupload; compared
|
|
38
|
+
* with {@link IOdspFileVersionFetcher.getRecoverableVersionEpoch} to confirm a base is on the live
|
|
39
|
+
* document's lineage.
|
|
40
|
+
*/
|
|
41
|
+
getLiveDocumentEpoch(): Promise<string | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Read the ODSP epoch of a specific file version, or `undefined`. See
|
|
44
|
+
* {@link IOdspFileVersionFetcher.getLiveDocumentEpoch}.
|
|
45
|
+
*/
|
|
46
|
+
getRecoverableVersionEpoch(versionId: string): Promise<string | undefined>;
|
|
47
|
+
}
|
|
9
48
|
/**
|
|
10
49
|
* Inputs needed to make authenticated requests against a specific ODSP file.
|
|
11
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odspFileVersionFetcher.d.ts","sourceRoot":"","sources":["../../src/odspVersionManager/odspFileVersionFetcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"odspFileVersionFetcher.d.ts","sourceRoot":"","sources":["../../src/odspVersionManager/odspFileVersionFetcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EACX,aAAa,EACb,+BAA+B,EAC/B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAInF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClD;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpD;;;OAGG;IACH,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC3E;AAmBD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,+BAA+B,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC3C,KAAK,EAAE,2BAA2B,GAChC,uBAAuB,CA+HzB"}
|
|
@@ -5,11 +5,22 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createOdspFileVersionFetcher = void 0;
|
|
8
|
+
/*
|
|
9
|
+
* An {@link IOdspFileVersionFetcher} backed by the ODSP REST APIs:
|
|
10
|
+
* - GET /_api/v2.1/.../versions -- enumerate the file's versions.
|
|
11
|
+
* - GET /_api/v2.1/.../versions/{label}/opStream/snapshots/trees/latest?blobs=2 -- fetch a version's
|
|
12
|
+
* snapshot and read its sequence number, parsed with the driver's snapshot parser.
|
|
13
|
+
* - GET /_api/v2.1/.../[versions/{label}/]opStream/snapshots/trees/latest?blobs=0 -- read a version's
|
|
14
|
+
* or the live document's ODSP epoch (`x-fluid-epoch`) to compare their lineage.
|
|
15
|
+
*/
|
|
16
|
+
const internal_1 = require("@fluidframework/driver-utils/internal");
|
|
17
|
+
const internal_2 = require("@fluidframework/odsp-driver-definitions/internal");
|
|
8
18
|
const compactSnapshotParser_js_1 = require("../compactSnapshotParser.js");
|
|
9
19
|
const getUrlAndHeadersWithAuth_js_1 = require("../getUrlAndHeadersWithAuth.js");
|
|
10
20
|
const odspSnapshotParser_js_1 = require("../odspSnapshotParser.js");
|
|
11
21
|
const odspUrlHelper_js_1 = require("../odspUrlHelper.js");
|
|
12
22
|
const odspUtils_js_1 = require("../odspUtils.js");
|
|
23
|
+
const packageVersion_js_1 = require("../packageVersion.js");
|
|
13
24
|
/**
|
|
14
25
|
* Create an {@link IOdspFileVersionFetcher} that talks to a specific ODSP file.
|
|
15
26
|
*/
|
|
@@ -41,18 +52,14 @@ function createOdspFileVersionFetcher(props) {
|
|
|
41
52
|
return versions;
|
|
42
53
|
});
|
|
43
54
|
const resolveSequenceNumber = async (versionId) => (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
// blob (which carries the sequence number) is included; `deltas=1` is intentionally omitted, as
|
|
47
|
-
// it would bundle the op stream and its op-level sequence numbers.
|
|
55
|
+
// The sequence number lives in the version snapshot's `.protocol/attributes` blob, so fetch the
|
|
56
|
+
// version-scoped snapshot with `blobs=2` to inline it. No op stream needed.
|
|
48
57
|
const url = `${(0, odspUrlHelper_js_1.getApiRoot)(new URL(siteUrl))}/drives/${driveId}/items/${itemId}/versions/${encodeURIComponent(versionId)}/opStream/snapshots/trees/latest?blobs=2`;
|
|
49
58
|
const method = "GET";
|
|
50
59
|
const token = await getAuthHeader({ ...options, request: { url, method } }, "FileVersionSnapshot");
|
|
51
60
|
const headers = (0, getUrlAndHeadersWithAuth_js_1.getHeadersWithAuth)(token);
|
|
52
|
-
// The
|
|
53
|
-
//
|
|
54
|
-
// binary format version (as the driver's own snapshot fetch does) so the server cannot hand back
|
|
55
|
-
// a binary version this code's parser does not understand.
|
|
61
|
+
// The snapshot comes back as JSON or "ms-fluid" (ODSP's compact binary form). Accept both and
|
|
62
|
+
// pin the binary version (as the driver's snapshot fetch does) so the parser can read it.
|
|
56
63
|
headers.accept = `application/json, application/ms-fluid; v=${compactSnapshotParser_js_1.currentReadVersion}`;
|
|
57
64
|
const response = await epochTracker.fetch(url, { method, headers }, "treesLatest");
|
|
58
65
|
const contentType = response.headers.get("content-type") ?? "";
|
|
@@ -63,19 +70,50 @@ function createOdspFileVersionFetcher(props) {
|
|
|
63
70
|
sequenceNumber =
|
|
64
71
|
(0, odspSnapshotParser_js_1.convertOdspSnapshotToSnapshotTreeAndBlobs)(snapshotJson).sequenceNumber;
|
|
65
72
|
}
|
|
66
|
-
else {
|
|
73
|
+
else if (contentType.includes("application/ms-fluid")) {
|
|
67
74
|
// ms-fluid framing: the compact binary form; read it with the driver's compact-snapshot parser.
|
|
68
75
|
const bytes = new Uint8Array(await response.content.arrayBuffer());
|
|
69
76
|
sequenceNumber = (0, compactSnapshotParser_js_1.parseCompactSnapshotResponse)(bytes, logger).sequenceNumber;
|
|
70
77
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
78
|
+
else {
|
|
79
|
+
// Neither framing (e.g. an HTML error page). Throw the driver's typed bad-response error
|
|
80
|
+
// (like fetchSnapshot.ts): canRetry=false stops the loader re-driving, while the
|
|
81
|
+
// incorrectServerResponse errorType still earns one wire-retry from getWithRetryForTokenRefresh.
|
|
82
|
+
throw new internal_1.NonRetryableError(`ODSP file version ${versionId} snapshot returned an unexpected content-type`, internal_2.OdspErrorTypes.incorrectServerResponse, { driverVersion: packageVersion_js_1.pkgVersion, contentType, accept: headers.accept });
|
|
83
|
+
}
|
|
84
|
+
// The sequence number must be a non-negative integer; a missing or malformed one throws the same
|
|
85
|
+
// typed error as above rather than feeding a wrong value into base selection.
|
|
86
|
+
if (!(typeof sequenceNumber === "number" &&
|
|
87
|
+
Number.isInteger(sequenceNumber) &&
|
|
88
|
+
sequenceNumber >= 0)) {
|
|
89
|
+
throw new internal_1.NonRetryableError(`ODSP file version ${versionId} snapshot has a missing or invalid sequenceNumber (${String(sequenceNumber)})`, internal_2.OdspErrorTypes.incorrectServerResponse, { driverVersion: packageVersion_js_1.pkgVersion, contentType, accept: headers.accept });
|
|
75
90
|
}
|
|
76
91
|
return sequenceNumber;
|
|
77
92
|
});
|
|
78
|
-
|
|
93
|
+
const itemRoot = `${(0, odspUrlHelper_js_1.getApiRoot)(new URL(siteUrl))}/drives/${driveId}/items/${itemId}`;
|
|
94
|
+
// Reads the `x-fluid-epoch` header from `url`. Deliberately uses the raw fetch helper instead of
|
|
95
|
+
// `epochTracker.fetch`: the whole point is to COMPARE the base version's epoch against the live
|
|
96
|
+
// document's epoch, but the shared EpochTracker pins to the first epoch it sees and throws on the
|
|
97
|
+
// second (divergent) read - so it could never yield two epochs to compare. `fetchArray` also lets
|
|
98
|
+
// the body (JSON or ms-fluid binary) be consumed and discarded; only the header is needed.
|
|
99
|
+
const readEpoch = async (url, scenarioName) => (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
|
|
100
|
+
const method = "GET";
|
|
101
|
+
const token = await getAuthHeader({ ...options, request: { url, method } }, scenarioName);
|
|
102
|
+
const headers = (0, getUrlAndHeadersWithAuth_js_1.getHeadersWithAuth)(token);
|
|
103
|
+
const response = await (0, odspUtils_js_1.fetchArray)(url, { method, headers });
|
|
104
|
+
return response.headers.get("x-fluid-epoch") ?? undefined;
|
|
105
|
+
});
|
|
106
|
+
const getLiveDocumentEpoch = async () =>
|
|
107
|
+
// The (unversioned) live snapshot endpoint is a current-file read, so its epoch is the live
|
|
108
|
+
// document's epoch. `blobs=0` keeps the response to the tree metadata.
|
|
109
|
+
readEpoch(`${itemRoot}/opStream/snapshots/trees/latest?blobs=0`, "LiveEpoch");
|
|
110
|
+
const getRecoverableVersionEpoch = async (versionId) => readEpoch(`${itemRoot}/versions/${encodeURIComponent(versionId)}/opStream/snapshots/trees/latest?blobs=0`, "FileVersionEpoch");
|
|
111
|
+
return {
|
|
112
|
+
listFileVersions,
|
|
113
|
+
resolveSequenceNumber,
|
|
114
|
+
getLiveDocumentEpoch,
|
|
115
|
+
getRecoverableVersionEpoch,
|
|
116
|
+
};
|
|
79
117
|
}
|
|
80
118
|
exports.createOdspFileVersionFetcher = createOdspFileVersionFetcher;
|
|
81
119
|
//# sourceMappingURL=odspFileVersionFetcher.js.map
|