@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.
Files changed (259) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/api-extractor.json +1 -1
  3. package/api-report/odsp-driver.api.md +306 -0
  4. package/dist/ReadBufferUtils.js +3 -3
  5. package/dist/ReadBufferUtils.js.map +1 -1
  6. package/dist/checkUrl.d.ts +1 -0
  7. package/dist/checkUrl.d.ts.map +1 -1
  8. package/dist/checkUrl.js +1 -0
  9. package/dist/checkUrl.js.map +1 -1
  10. package/dist/compactSnapshotParser.d.ts +2 -0
  11. package/dist/compactSnapshotParser.d.ts.map +1 -1
  12. package/dist/compactSnapshotParser.js +1 -0
  13. package/dist/compactSnapshotParser.js.map +1 -1
  14. package/dist/constants.d.ts +6 -0
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/constants.js +6 -0
  17. package/dist/constants.js.map +1 -1
  18. package/dist/contracts.d.ts +3 -3
  19. package/dist/contracts.d.ts.map +1 -1
  20. package/dist/contractsPublic.d.ts +15 -0
  21. package/dist/contractsPublic.d.ts.map +1 -1
  22. package/dist/contractsPublic.js +8 -2
  23. package/dist/contractsPublic.js.map +1 -1
  24. package/dist/createOdspCreateContainerRequest.d.ts +1 -0
  25. package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
  26. package/dist/createOdspCreateContainerRequest.js +1 -0
  27. package/dist/createOdspCreateContainerRequest.js.map +1 -1
  28. package/dist/createOdspUrl.d.ts +1 -0
  29. package/dist/createOdspUrl.d.ts.map +1 -1
  30. package/dist/createOdspUrl.js +1 -0
  31. package/dist/createOdspUrl.js.map +1 -1
  32. package/dist/epochTracker.d.ts +12 -2
  33. package/dist/epochTracker.d.ts.map +1 -1
  34. package/dist/epochTracker.js +1 -0
  35. package/dist/epochTracker.js.map +1 -1
  36. package/dist/fetch.d.ts +1 -1
  37. package/dist/fetch.d.ts.map +1 -1
  38. package/dist/fetchSnapshot.d.ts +1 -0
  39. package/dist/fetchSnapshot.d.ts.map +1 -1
  40. package/dist/fetchSnapshot.js +15 -11
  41. package/dist/fetchSnapshot.js.map +1 -1
  42. package/dist/index.d.ts +5 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/odsp-driver-alpha.d.ts +558 -0
  47. package/dist/odsp-driver-beta.d.ts +558 -0
  48. package/dist/odsp-driver-public.d.ts +558 -0
  49. package/dist/odsp-driver-untrimmed.d.ts +558 -0
  50. package/dist/odspCache.d.ts +6 -0
  51. package/dist/odspCache.d.ts.map +1 -1
  52. package/dist/odspCache.js.map +1 -1
  53. package/dist/odspDocumentDeltaConnection.d.ts +1 -1
  54. package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
  55. package/dist/odspDocumentDeltaConnection.js +78 -69
  56. package/dist/odspDocumentDeltaConnection.js.map +1 -1
  57. package/dist/odspDocumentService.js +23 -19
  58. package/dist/odspDocumentService.js.map +1 -1
  59. package/dist/odspDocumentServiceFactory.d.ts +4 -0
  60. package/dist/odspDocumentServiceFactory.d.ts.map +1 -1
  61. package/dist/odspDocumentServiceFactory.js +4 -0
  62. package/dist/odspDocumentServiceFactory.js.map +1 -1
  63. package/dist/odspDocumentServiceFactoryCore.d.ts +1 -0
  64. package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
  65. package/dist/odspDocumentServiceFactoryCore.js +32 -27
  66. package/dist/odspDocumentServiceFactoryCore.js.map +1 -1
  67. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts +2 -1
  68. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
  69. package/dist/odspDocumentServiceFactoryWithCodeSplit.js +2 -1
  70. package/dist/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -1
  71. package/dist/odspDocumentStorageManager.js +5 -1
  72. package/dist/odspDocumentStorageManager.js.map +1 -1
  73. package/dist/odspDocumentStorageServiceBase.d.ts +1 -1
  74. package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
  75. package/dist/odspDocumentStorageServiceBase.js +1 -14
  76. package/dist/odspDocumentStorageServiceBase.js.map +1 -1
  77. package/dist/odspDriverUrlResolver.d.ts +1 -0
  78. package/dist/odspDriverUrlResolver.d.ts.map +1 -1
  79. package/dist/odspDriverUrlResolver.js +2 -0
  80. package/dist/odspDriverUrlResolver.js.map +1 -1
  81. package/dist/odspDriverUrlResolverForShareLink.d.ts +2 -0
  82. package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
  83. package/dist/odspDriverUrlResolverForShareLink.js +1 -0
  84. package/dist/odspDriverUrlResolverForShareLink.js.map +1 -1
  85. package/dist/odspFluidFileLink.d.ts +10 -1
  86. package/dist/odspFluidFileLink.d.ts.map +1 -1
  87. package/dist/odspFluidFileLink.js +14 -6
  88. package/dist/odspFluidFileLink.js.map +1 -1
  89. package/dist/odspPublicUtils.d.ts +6 -0
  90. package/dist/odspPublicUtils.d.ts.map +1 -1
  91. package/dist/odspPublicUtils.js +3 -0
  92. package/dist/odspPublicUtils.js.map +1 -1
  93. package/dist/odspSummaryUploadManager.js +5 -1
  94. package/dist/odspSummaryUploadManager.js.map +1 -1
  95. package/dist/odspUrlHelper.d.ts +5 -0
  96. package/dist/odspUrlHelper.d.ts.map +1 -1
  97. package/dist/odspUrlHelper.js +5 -0
  98. package/dist/odspUrlHelper.js.map +1 -1
  99. package/dist/odspUtils.d.ts +4 -1
  100. package/dist/odspUtils.d.ts.map +1 -1
  101. package/dist/odspUtils.js +1 -0
  102. package/dist/odspUtils.js.map +1 -1
  103. package/dist/opsCaching.d.ts +1 -1
  104. package/dist/opsCaching.d.ts.map +1 -1
  105. package/dist/opsCaching.js +13 -1
  106. package/dist/opsCaching.js.map +1 -1
  107. package/dist/packageVersion.d.ts +1 -1
  108. package/dist/packageVersion.js +1 -1
  109. package/dist/packageVersion.js.map +1 -1
  110. package/dist/prefetchLatestSnapshot.d.ts +2 -0
  111. package/dist/prefetchLatestSnapshot.d.ts.map +1 -1
  112. package/dist/prefetchLatestSnapshot.js +2 -0
  113. package/dist/prefetchLatestSnapshot.js.map +1 -1
  114. package/dist/socketModule.d.ts +7 -0
  115. package/dist/socketModule.d.ts.map +1 -0
  116. package/dist/socketModule.js +10 -0
  117. package/dist/socketModule.js.map +1 -0
  118. package/dist/tsdoc-metadata.json +1 -1
  119. package/dist/zipItDataRepresentationUtils.d.ts +2 -2
  120. package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
  121. package/dist/zipItDataRepresentationUtils.js +6 -6
  122. package/dist/zipItDataRepresentationUtils.js.map +1 -1
  123. package/lib/ReadBufferUtils.js +3 -3
  124. package/lib/ReadBufferUtils.js.map +1 -1
  125. package/lib/checkUrl.d.ts +1 -0
  126. package/lib/checkUrl.d.ts.map +1 -1
  127. package/lib/checkUrl.js +1 -0
  128. package/lib/checkUrl.js.map +1 -1
  129. package/lib/compactSnapshotParser.d.ts +2 -0
  130. package/lib/compactSnapshotParser.d.ts.map +1 -1
  131. package/lib/compactSnapshotParser.js +1 -0
  132. package/lib/compactSnapshotParser.js.map +1 -1
  133. package/lib/constants.d.ts +6 -0
  134. package/lib/constants.d.ts.map +1 -1
  135. package/lib/constants.js +6 -0
  136. package/lib/constants.js.map +1 -1
  137. package/lib/contracts.d.ts +3 -3
  138. package/lib/contracts.d.ts.map +1 -1
  139. package/lib/contractsPublic.d.ts +15 -0
  140. package/lib/contractsPublic.d.ts.map +1 -1
  141. package/lib/contractsPublic.js +6 -0
  142. package/lib/contractsPublic.js.map +1 -1
  143. package/lib/createOdspCreateContainerRequest.d.ts +1 -0
  144. package/lib/createOdspCreateContainerRequest.d.ts.map +1 -1
  145. package/lib/createOdspCreateContainerRequest.js +1 -0
  146. package/lib/createOdspCreateContainerRequest.js.map +1 -1
  147. package/lib/createOdspUrl.d.ts +1 -0
  148. package/lib/createOdspUrl.d.ts.map +1 -1
  149. package/lib/createOdspUrl.js +1 -0
  150. package/lib/createOdspUrl.js.map +1 -1
  151. package/lib/epochTracker.d.ts +12 -2
  152. package/lib/epochTracker.d.ts.map +1 -1
  153. package/lib/epochTracker.js +1 -0
  154. package/lib/epochTracker.js.map +1 -1
  155. package/lib/fetch.d.ts +1 -1
  156. package/lib/fetch.d.ts.map +1 -1
  157. package/lib/fetchSnapshot.d.ts +1 -0
  158. package/lib/fetchSnapshot.d.ts.map +1 -1
  159. package/lib/fetchSnapshot.js +14 -10
  160. package/lib/fetchSnapshot.js.map +1 -1
  161. package/lib/index.d.ts +5 -1
  162. package/lib/index.d.ts.map +1 -1
  163. package/lib/index.js +1 -0
  164. package/lib/index.js.map +1 -1
  165. package/lib/odspCache.d.ts +6 -0
  166. package/lib/odspCache.d.ts.map +1 -1
  167. package/lib/odspCache.js.map +1 -1
  168. package/lib/odspDocumentDeltaConnection.d.ts +1 -1
  169. package/lib/odspDocumentDeltaConnection.d.ts.map +1 -1
  170. package/lib/odspDocumentDeltaConnection.js +77 -68
  171. package/lib/odspDocumentDeltaConnection.js.map +1 -1
  172. package/lib/odspDocumentService.js +18 -18
  173. package/lib/odspDocumentService.js.map +1 -1
  174. package/lib/odspDocumentServiceFactory.d.ts +4 -0
  175. package/lib/odspDocumentServiceFactory.d.ts.map +1 -1
  176. package/lib/odspDocumentServiceFactory.js +4 -0
  177. package/lib/odspDocumentServiceFactory.js.map +1 -1
  178. package/lib/odspDocumentServiceFactoryCore.d.ts +1 -0
  179. package/lib/odspDocumentServiceFactoryCore.d.ts.map +1 -1
  180. package/lib/odspDocumentServiceFactoryCore.js +27 -26
  181. package/lib/odspDocumentServiceFactoryCore.js.map +1 -1
  182. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts +2 -1
  183. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
  184. package/lib/odspDocumentServiceFactoryWithCodeSplit.js +2 -1
  185. package/lib/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -1
  186. package/lib/odspDocumentStorageServiceBase.d.ts +1 -1
  187. package/lib/odspDocumentStorageServiceBase.d.ts.map +1 -1
  188. package/lib/odspDocumentStorageServiceBase.js +1 -14
  189. package/lib/odspDocumentStorageServiceBase.js.map +1 -1
  190. package/lib/odspDriverUrlResolver.d.ts +1 -0
  191. package/lib/odspDriverUrlResolver.d.ts.map +1 -1
  192. package/lib/odspDriverUrlResolver.js +2 -0
  193. package/lib/odspDriverUrlResolver.js.map +1 -1
  194. package/lib/odspDriverUrlResolverForShareLink.d.ts +2 -0
  195. package/lib/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
  196. package/lib/odspDriverUrlResolverForShareLink.js +1 -0
  197. package/lib/odspDriverUrlResolverForShareLink.js.map +1 -1
  198. package/lib/odspFluidFileLink.d.ts +10 -1
  199. package/lib/odspFluidFileLink.d.ts.map +1 -1
  200. package/lib/odspFluidFileLink.js +14 -6
  201. package/lib/odspFluidFileLink.js.map +1 -1
  202. package/lib/odspPublicUtils.d.ts +6 -0
  203. package/lib/odspPublicUtils.d.ts.map +1 -1
  204. package/lib/odspPublicUtils.js +3 -0
  205. package/lib/odspPublicUtils.js.map +1 -1
  206. package/lib/odspUrlHelper.d.ts +5 -0
  207. package/lib/odspUrlHelper.d.ts.map +1 -1
  208. package/lib/odspUrlHelper.js +5 -0
  209. package/lib/odspUrlHelper.js.map +1 -1
  210. package/lib/odspUtils.d.ts +4 -1
  211. package/lib/odspUtils.d.ts.map +1 -1
  212. package/lib/odspUtils.js +1 -0
  213. package/lib/odspUtils.js.map +1 -1
  214. package/lib/opsCaching.d.ts +1 -1
  215. package/lib/opsCaching.d.ts.map +1 -1
  216. package/lib/opsCaching.js +13 -1
  217. package/lib/opsCaching.js.map +1 -1
  218. package/lib/packageVersion.d.ts +1 -1
  219. package/lib/packageVersion.js +1 -1
  220. package/lib/packageVersion.js.map +1 -1
  221. package/lib/prefetchLatestSnapshot.d.ts +2 -0
  222. package/lib/prefetchLatestSnapshot.d.ts.map +1 -1
  223. package/lib/prefetchLatestSnapshot.js +2 -0
  224. package/lib/prefetchLatestSnapshot.js.map +1 -1
  225. package/lib/socketModule.d.ts +7 -0
  226. package/lib/socketModule.d.ts.map +1 -0
  227. package/lib/socketModule.js +7 -0
  228. package/lib/socketModule.js.map +1 -0
  229. package/lib/zipItDataRepresentationUtils.d.ts +2 -2
  230. package/lib/zipItDataRepresentationUtils.d.ts.map +1 -1
  231. package/lib/zipItDataRepresentationUtils.js +3 -3
  232. package/lib/zipItDataRepresentationUtils.js.map +1 -1
  233. package/package.json +24 -26
  234. package/src/checkUrl.ts +1 -0
  235. package/src/compactSnapshotParser.ts +2 -0
  236. package/src/constants.ts +7 -0
  237. package/src/contractsPublic.ts +15 -1
  238. package/src/createOdspCreateContainerRequest.ts +1 -0
  239. package/src/createOdspUrl.ts +1 -0
  240. package/src/epochTracker.ts +10 -0
  241. package/src/fetchSnapshot.ts +16 -15
  242. package/src/index.ts +10 -1
  243. package/src/odspCache.ts +6 -0
  244. package/src/odspDocumentDeltaConnection.ts +56 -32
  245. package/src/odspDocumentServiceFactory.ts +4 -0
  246. package/src/odspDocumentServiceFactoryCore.ts +1 -0
  247. package/src/odspDocumentServiceFactoryWithCodeSplit.ts +2 -1
  248. package/src/odspDocumentStorageServiceBase.ts +1 -15
  249. package/src/odspDriverUrlResolver.ts +2 -0
  250. package/src/odspDriverUrlResolverForShareLink.ts +2 -0
  251. package/src/odspFluidFileLink.ts +21 -5
  252. package/src/odspPublicUtils.ts +6 -0
  253. package/src/odspUrlHelper.ts +5 -0
  254. package/src/odspUtils.ts +4 -0
  255. package/src/opsCaching.ts +15 -1
  256. package/src/packageVersion.ts +1 -1
  257. package/src/prefetchLatestSnapshot.ts +2 -0
  258. package/src/socketModule.ts +8 -0
  259. 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 { }
@@ -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;
@@ -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;;GAEG;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;;GAEG;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;;GAEG;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,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC1B"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"odspCache.js","sourceRoot":"","sources":["../src/odspCache.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,2DAA0D;AAC1D,qFAQiD;AAYjD;;;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;AAoCD,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 */\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 */\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 */\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\nexport interface IPrefetchSnapshotContents extends ISnapshotContents {\n\tfluidEpoch: string;\n\tprefetchStartTime: number;\n}\n"]}
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 | undefined) => void;
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;AAQ9C,MAAM,WAAW,WAAW;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAqLD;;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,yCAc/D;cAEc,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IA+FpE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IA0D9E,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"}
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"}