@fluidframework/driver-utils 1.4.0-115997 → 2.0.0-dev-rc.1.0.0.224419

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 (390) hide show
  1. package/.eslintrc.js +17 -7
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +141 -0
  4. package/README.md +68 -1
  5. package/api-extractor-lint.json +4 -0
  6. package/api-extractor.json +2 -2
  7. package/api-report/driver-utils.api.md +401 -0
  8. package/dist/adapters/compression/compressionTypes.cjs +20 -0
  9. package/dist/adapters/compression/compressionTypes.cjs.map +1 -0
  10. package/dist/adapters/compression/compressionTypes.d.ts +23 -0
  11. package/dist/adapters/compression/compressionTypes.d.ts.map +1 -0
  12. package/dist/adapters/compression/documentServiceCompressionAdapter.cjs +23 -0
  13. package/dist/adapters/compression/documentServiceCompressionAdapter.cjs.map +1 -0
  14. package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts +13 -0
  15. package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -0
  16. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.cjs +31 -0
  17. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.cjs.map +1 -0
  18. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts +16 -0
  19. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -0
  20. package/dist/adapters/compression/index.cjs +15 -0
  21. package/dist/adapters/compression/index.cjs.map +1 -0
  22. package/dist/adapters/compression/index.d.ts +8 -0
  23. package/dist/adapters/compression/index.d.ts.map +1 -0
  24. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.cjs +370 -0
  25. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.cjs.map +1 -0
  26. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +165 -0
  27. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts.map +1 -0
  28. package/dist/adapters/compression/summaryblob/index.cjs +11 -0
  29. package/dist/adapters/compression/summaryblob/index.cjs.map +1 -0
  30. package/dist/adapters/compression/summaryblob/index.d.ts +6 -0
  31. package/dist/adapters/compression/summaryblob/index.d.ts.map +1 -0
  32. package/dist/adapters/index.cjs +14 -0
  33. package/dist/adapters/index.cjs.map +1 -0
  34. package/dist/adapters/index.d.ts +7 -0
  35. package/dist/adapters/index.d.ts.map +1 -0
  36. package/dist/adapters/predefinedAdapters.cjs +52 -0
  37. package/dist/adapters/predefinedAdapters.cjs.map +1 -0
  38. package/dist/adapters/predefinedAdapters.d.ts +21 -0
  39. package/dist/adapters/predefinedAdapters.d.ts.map +1 -0
  40. package/dist/blob.cjs +65 -0
  41. package/dist/blob.cjs.map +1 -0
  42. package/dist/blob.d.ts +56 -0
  43. package/dist/blob.d.ts.map +1 -0
  44. package/dist/{buildSnapshotTree.js → buildSnapshotTree.cjs} +7 -5
  45. package/dist/buildSnapshotTree.cjs.map +1 -0
  46. package/dist/buildSnapshotTree.d.ts +1 -0
  47. package/dist/buildSnapshotTree.d.ts.map +1 -1
  48. package/dist/documentServiceFactoryProxy.cjs +27 -0
  49. package/dist/documentServiceFactoryProxy.cjs.map +1 -0
  50. package/dist/documentServiceFactoryProxy.d.ts +19 -0
  51. package/dist/documentServiceFactoryProxy.d.ts.map +1 -0
  52. package/dist/documentServiceProxy.cjs +36 -0
  53. package/dist/documentServiceProxy.cjs.map +1 -0
  54. package/dist/documentServiceProxy.d.ts +21 -0
  55. package/dist/documentServiceProxy.d.ts.map +1 -0
  56. package/dist/{documentStorageServiceProxy.js → documentStorageServiceProxy.cjs} +10 -8
  57. package/dist/documentStorageServiceProxy.cjs.map +1 -0
  58. package/dist/documentStorageServiceProxy.d.ts +5 -2
  59. package/dist/documentStorageServiceProxy.d.ts.map +1 -1
  60. package/dist/driver-utils-alpha.d.ts +163 -0
  61. package/dist/driver-utils-beta.d.ts +178 -0
  62. package/dist/driver-utils-public.d.ts +178 -0
  63. package/dist/driver-utils-untrimmed.d.ts +590 -0
  64. package/dist/{error.js → error.cjs} +10 -3
  65. package/dist/error.cjs.map +1 -0
  66. package/dist/error.d.ts +8 -3
  67. package/dist/error.d.ts.map +1 -1
  68. package/dist/index.cjs +69 -0
  69. package/dist/index.cjs.map +1 -0
  70. package/dist/index.d.ts +16 -21
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/{insecureUrlResolver.js → insecureUrlResolver.cjs} +10 -11
  73. package/dist/insecureUrlResolver.cjs.map +1 -0
  74. package/dist/insecureUrlResolver.d.ts +1 -0
  75. package/dist/insecureUrlResolver.d.ts.map +1 -1
  76. package/dist/messageRecognition.cjs +38 -0
  77. package/dist/messageRecognition.cjs.map +1 -0
  78. package/dist/messageRecognition.d.ts +16 -26
  79. package/dist/messageRecognition.d.ts.map +1 -1
  80. package/dist/{network.js → network.cjs} +86 -24
  81. package/dist/network.cjs.map +1 -0
  82. package/dist/network.d.ts +69 -20
  83. package/dist/network.d.ts.map +1 -1
  84. package/dist/networkUtils.cjs +29 -0
  85. package/dist/networkUtils.cjs.map +1 -0
  86. package/dist/networkUtils.d.ts +4 -10
  87. package/dist/networkUtils.d.ts.map +1 -1
  88. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  89. package/dist/packageVersion.cjs.map +1 -0
  90. package/dist/packageVersion.d.ts +1 -1
  91. package/dist/packageVersion.d.ts.map +1 -1
  92. package/dist/{parallelRequests.js → parallelRequests.cjs} +146 -74
  93. package/dist/parallelRequests.cjs.map +1 -0
  94. package/dist/parallelRequests.d.ts +19 -6
  95. package/dist/parallelRequests.d.ts.map +1 -1
  96. package/dist/{prefetchDocumentStorageService.js → prefetchDocumentStorageService.cjs} +7 -4
  97. package/dist/prefetchDocumentStorageService.cjs.map +1 -0
  98. package/dist/prefetchDocumentStorageService.d.ts +4 -2
  99. package/dist/prefetchDocumentStorageService.d.ts.map +1 -1
  100. package/dist/{rateLimiter.js → rateLimiter.cjs} +6 -3
  101. package/dist/rateLimiter.cjs.map +1 -0
  102. package/dist/rateLimiter.d.ts +3 -0
  103. package/dist/rateLimiter.d.ts.map +1 -1
  104. package/dist/readAndParse.cjs +28 -0
  105. package/dist/readAndParse.cjs.map +1 -0
  106. package/dist/readAndParse.d.ts +10 -4
  107. package/dist/readAndParse.d.ts.map +1 -1
  108. package/dist/runWithRetry.cjs +108 -0
  109. package/dist/runWithRetry.cjs.map +1 -0
  110. package/dist/runWithRetry.d.ts +26 -7
  111. package/dist/runWithRetry.d.ts.map +1 -1
  112. package/dist/{summaryForCreateNew.js → summaryForCreateNew.cjs} +20 -19
  113. package/dist/summaryForCreateNew.cjs.map +1 -0
  114. package/dist/summaryForCreateNew.d.ts +17 -4
  115. package/dist/summaryForCreateNew.d.ts.map +1 -1
  116. package/dist/{treeConversions.js → treeConversions.cjs} +16 -18
  117. package/dist/treeConversions.cjs.map +1 -0
  118. package/dist/treeConversions.d.ts +1 -0
  119. package/dist/treeConversions.d.ts.map +1 -1
  120. package/dist/tsdoc-metadata.json +11 -0
  121. package/lib/adapters/compression/compressionTypes.d.mts +23 -0
  122. package/lib/adapters/compression/compressionTypes.d.mts.map +1 -0
  123. package/lib/adapters/compression/compressionTypes.mjs +17 -0
  124. package/lib/adapters/compression/compressionTypes.mjs.map +1 -0
  125. package/lib/adapters/compression/documentServiceCompressionAdapter.d.mts +13 -0
  126. package/lib/adapters/compression/documentServiceCompressionAdapter.d.mts.map +1 -0
  127. package/lib/adapters/compression/documentServiceCompressionAdapter.mjs +19 -0
  128. package/lib/adapters/compression/documentServiceCompressionAdapter.mjs.map +1 -0
  129. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.mts +16 -0
  130. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.mts.map +1 -0
  131. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.mjs +27 -0
  132. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.mjs.map +1 -0
  133. package/lib/adapters/compression/index.d.mts +8 -0
  134. package/lib/adapters/compression/index.d.mts.map +1 -0
  135. package/lib/adapters/compression/index.mjs +8 -0
  136. package/lib/adapters/compression/index.mjs.map +1 -0
  137. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.mts +165 -0
  138. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.mts.map +1 -0
  139. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.mjs +366 -0
  140. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.mjs.map +1 -0
  141. package/lib/adapters/compression/summaryblob/index.d.mts +6 -0
  142. package/lib/adapters/compression/summaryblob/index.d.mts.map +1 -0
  143. package/lib/adapters/compression/summaryblob/index.mjs +6 -0
  144. package/lib/adapters/compression/summaryblob/index.mjs.map +1 -0
  145. package/lib/adapters/index.d.mts +7 -0
  146. package/lib/adapters/index.d.mts.map +1 -0
  147. package/lib/adapters/index.mjs +7 -0
  148. package/lib/adapters/index.mjs.map +1 -0
  149. package/lib/adapters/predefinedAdapters.d.mts +21 -0
  150. package/lib/adapters/predefinedAdapters.d.mts.map +1 -0
  151. package/lib/adapters/predefinedAdapters.mjs +47 -0
  152. package/lib/adapters/predefinedAdapters.mjs.map +1 -0
  153. package/lib/blob.d.mts +56 -0
  154. package/lib/blob.d.mts.map +1 -0
  155. package/lib/blob.mjs +59 -0
  156. package/lib/blob.mjs.map +1 -0
  157. package/lib/{buildSnapshotTree.d.ts → buildSnapshotTree.d.mts} +1 -0
  158. package/lib/buildSnapshotTree.d.mts.map +1 -0
  159. package/lib/{buildSnapshotTree.js → buildSnapshotTree.mjs} +6 -4
  160. package/lib/buildSnapshotTree.mjs.map +1 -0
  161. package/lib/documentServiceFactoryProxy.d.mts +19 -0
  162. package/lib/documentServiceFactoryProxy.d.mts.map +1 -0
  163. package/lib/documentServiceFactoryProxy.mjs +23 -0
  164. package/lib/documentServiceFactoryProxy.mjs.map +1 -0
  165. package/lib/documentServiceProxy.d.mts +21 -0
  166. package/lib/documentServiceProxy.d.mts.map +1 -0
  167. package/lib/documentServiceProxy.mjs +32 -0
  168. package/lib/documentServiceProxy.mjs.map +1 -0
  169. package/lib/{documentStorageServiceProxy.d.ts → documentStorageServiceProxy.d.mts} +5 -2
  170. package/lib/documentStorageServiceProxy.d.mts.map +1 -0
  171. package/lib/{documentStorageServiceProxy.js → documentStorageServiceProxy.mjs} +10 -8
  172. package/lib/documentStorageServiceProxy.mjs.map +1 -0
  173. package/lib/driver-utils-alpha.d.mts +163 -0
  174. package/lib/driver-utils-beta.d.mts +178 -0
  175. package/lib/driver-utils-public.d.mts +178 -0
  176. package/lib/driver-utils-untrimmed.d.mts +590 -0
  177. package/lib/error.d.mts +16 -0
  178. package/lib/error.d.mts.map +1 -0
  179. package/lib/error.mjs +19 -0
  180. package/lib/error.mjs.map +1 -0
  181. package/lib/index.d.mts +21 -0
  182. package/lib/index.d.mts.map +1 -0
  183. package/lib/index.mjs +21 -0
  184. package/lib/index.mjs.map +1 -0
  185. package/lib/{insecureUrlResolver.d.ts → insecureUrlResolver.d.mts} +1 -0
  186. package/lib/insecureUrlResolver.d.mts.map +1 -0
  187. package/lib/{insecureUrlResolver.js → insecureUrlResolver.mjs} +10 -11
  188. package/lib/insecureUrlResolver.mjs.map +1 -0
  189. package/lib/messageRecognition.d.mts +24 -0
  190. package/lib/messageRecognition.d.mts.map +1 -0
  191. package/lib/messageRecognition.mjs +29 -0
  192. package/lib/messageRecognition.mjs.map +1 -0
  193. package/lib/{network.d.ts → network.d.mts} +69 -20
  194. package/lib/network.d.mts.map +1 -0
  195. package/lib/{network.js → network.mjs} +85 -23
  196. package/lib/network.mjs.map +1 -0
  197. package/lib/networkUtils.d.mts +11 -0
  198. package/lib/networkUtils.d.mts.map +1 -0
  199. package/lib/networkUtils.mjs +25 -0
  200. package/lib/networkUtils.mjs.map +1 -0
  201. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
  202. package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +1 -1
  203. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  204. package/lib/packageVersion.mjs.map +1 -0
  205. package/lib/{parallelRequests.d.ts → parallelRequests.d.mts} +19 -6
  206. package/lib/parallelRequests.d.mts.map +1 -0
  207. package/lib/{parallelRequests.js → parallelRequests.mjs} +119 -52
  208. package/lib/parallelRequests.mjs.map +1 -0
  209. package/lib/{prefetchDocumentStorageService.d.ts → prefetchDocumentStorageService.d.mts} +5 -7
  210. package/lib/prefetchDocumentStorageService.d.mts.map +1 -0
  211. package/lib/{prefetchDocumentStorageService.js → prefetchDocumentStorageService.mjs} +7 -8
  212. package/lib/prefetchDocumentStorageService.mjs.map +1 -0
  213. package/lib/{rateLimiter.d.ts → rateLimiter.d.mts} +3 -0
  214. package/lib/rateLimiter.d.mts.map +1 -0
  215. package/lib/{rateLimiter.js → rateLimiter.mjs} +5 -2
  216. package/lib/rateLimiter.mjs.map +1 -0
  217. package/lib/readAndParse.d.mts +20 -0
  218. package/lib/readAndParse.d.mts.map +1 -0
  219. package/lib/readAndParse.mjs +24 -0
  220. package/lib/readAndParse.mjs.map +1 -0
  221. package/lib/{runWithRetry.d.ts → runWithRetry.d.mts} +26 -7
  222. package/lib/runWithRetry.d.mts.map +1 -0
  223. package/lib/runWithRetry.mjs +103 -0
  224. package/lib/runWithRetry.mjs.map +1 -0
  225. package/lib/{summaryForCreateNew.d.ts → summaryForCreateNew.d.mts} +17 -4
  226. package/lib/summaryForCreateNew.d.mts.map +1 -0
  227. package/lib/{summaryForCreateNew.js → summaryForCreateNew.mjs} +18 -17
  228. package/lib/summaryForCreateNew.mjs.map +1 -0
  229. package/lib/{treeConversions.d.ts → treeConversions.d.mts} +1 -0
  230. package/lib/treeConversions.d.mts.map +1 -0
  231. package/lib/{treeConversions.js → treeConversions.mjs} +12 -14
  232. package/lib/treeConversions.mjs.map +1 -0
  233. package/package.json +88 -64
  234. package/prettier.config.cjs +8 -0
  235. package/src/adapters/compression/compressionTypes.ts +25 -0
  236. package/src/adapters/compression/documentServiceCompressionAdapter.ts +28 -0
  237. package/src/adapters/compression/documentServiceFactoryCompressionAdapter.ts +54 -0
  238. package/src/adapters/compression/index.ts +12 -0
  239. package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +451 -0
  240. package/src/adapters/compression/summaryblob/index.ts +9 -0
  241. package/src/adapters/index.ts +13 -0
  242. package/src/adapters/predefinedAdapters.ts +74 -0
  243. package/src/blob.ts +77 -0
  244. package/src/buildSnapshotTree.ts +58 -53
  245. package/src/documentServiceFactoryProxy.ts +47 -0
  246. package/src/documentServiceProxy.ts +46 -0
  247. package/src/documentStorageServiceProxy.ts +52 -37
  248. package/src/error.ts +13 -8
  249. package/src/index.ts +51 -21
  250. package/src/insecureUrlResolver.ts +125 -120
  251. package/src/messageRecognition.ts +24 -53
  252. package/src/network.ts +189 -111
  253. package/src/networkUtils.ts +24 -49
  254. package/src/packageVersion.ts +1 -1
  255. package/src/parallelRequests.ts +630 -519
  256. package/src/prefetchDocumentStorageService.ts +79 -74
  257. package/src/rateLimiter.ts +33 -30
  258. package/src/readAndParse.ts +18 -9
  259. package/src/runWithRetry.ts +145 -85
  260. package/src/summaryForCreateNew.ts +48 -29
  261. package/src/treeConversions.ts +49 -70
  262. package/tsc-multi.test.json +4 -0
  263. package/tsconfig.json +10 -12
  264. package/dist/blobAggregationStorage.d.ts +0 -43
  265. package/dist/blobAggregationStorage.d.ts.map +0 -1
  266. package/dist/blobAggregationStorage.js +0 -318
  267. package/dist/blobAggregationStorage.js.map +0 -1
  268. package/dist/blobCacheStorageService.d.ts +0 -16
  269. package/dist/blobCacheStorageService.d.ts.map +0 -1
  270. package/dist/blobCacheStorageService.js +0 -29
  271. package/dist/blobCacheStorageService.js.map +0 -1
  272. package/dist/buildSnapshotTree.js.map +0 -1
  273. package/dist/documentStorageServiceProxy.js.map +0 -1
  274. package/dist/emptyDocumentDeltaStorageService.d.ts +0 -13
  275. package/dist/emptyDocumentDeltaStorageService.d.ts.map +0 -1
  276. package/dist/emptyDocumentDeltaStorageService.js +0 -20
  277. package/dist/emptyDocumentDeltaStorageService.js.map +0 -1
  278. package/dist/error.js.map +0 -1
  279. package/dist/fluidResolvedUrl.d.ts +0 -8
  280. package/dist/fluidResolvedUrl.d.ts.map +0 -1
  281. package/dist/fluidResolvedUrl.js +0 -16
  282. package/dist/fluidResolvedUrl.js.map +0 -1
  283. package/dist/index.js +0 -38
  284. package/dist/index.js.map +0 -1
  285. package/dist/insecureUrlResolver.js.map +0 -1
  286. package/dist/messageRecognition.js +0 -73
  287. package/dist/messageRecognition.js.map +0 -1
  288. package/dist/multiDocumentServiceFactory.d.ts +0 -16
  289. package/dist/multiDocumentServiceFactory.d.ts.map +0 -1
  290. package/dist/multiDocumentServiceFactory.js +0 -63
  291. package/dist/multiDocumentServiceFactory.js.map +0 -1
  292. package/dist/multiUrlResolver.d.ts +0 -20
  293. package/dist/multiUrlResolver.d.ts.map +0 -1
  294. package/dist/multiUrlResolver.js +0 -45
  295. package/dist/multiUrlResolver.js.map +0 -1
  296. package/dist/network.js.map +0 -1
  297. package/dist/networkUtils.js +0 -59
  298. package/dist/networkUtils.js.map +0 -1
  299. package/dist/packageVersion.js.map +0 -1
  300. package/dist/parallelRequests.js.map +0 -1
  301. package/dist/prefetchDocumentStorageService.js.map +0 -1
  302. package/dist/rateLimiter.js.map +0 -1
  303. package/dist/readAndParse.js +0 -22
  304. package/dist/readAndParse.js.map +0 -1
  305. package/dist/runWithRetry.js +0 -69
  306. package/dist/runWithRetry.js.map +0 -1
  307. package/dist/summaryForCreateNew.js.map +0 -1
  308. package/dist/treeConversions.js.map +0 -1
  309. package/dist/treeUtils.d.ts +0 -51
  310. package/dist/treeUtils.d.ts.map +0 -1
  311. package/dist/treeUtils.js +0 -85
  312. package/dist/treeUtils.js.map +0 -1
  313. package/lib/blobAggregationStorage.d.ts +0 -43
  314. package/lib/blobAggregationStorage.d.ts.map +0 -1
  315. package/lib/blobAggregationStorage.js +0 -313
  316. package/lib/blobAggregationStorage.js.map +0 -1
  317. package/lib/blobCacheStorageService.d.ts +0 -16
  318. package/lib/blobCacheStorageService.d.ts.map +0 -1
  319. package/lib/blobCacheStorageService.js +0 -25
  320. package/lib/blobCacheStorageService.js.map +0 -1
  321. package/lib/buildSnapshotTree.d.ts.map +0 -1
  322. package/lib/buildSnapshotTree.js.map +0 -1
  323. package/lib/documentStorageServiceProxy.d.ts.map +0 -1
  324. package/lib/documentStorageServiceProxy.js.map +0 -1
  325. package/lib/emptyDocumentDeltaStorageService.d.ts +0 -13
  326. package/lib/emptyDocumentDeltaStorageService.d.ts.map +0 -1
  327. package/lib/emptyDocumentDeltaStorageService.js +0 -16
  328. package/lib/emptyDocumentDeltaStorageService.js.map +0 -1
  329. package/lib/error.d.ts +0 -11
  330. package/lib/error.d.ts.map +0 -1
  331. package/lib/error.js +0 -13
  332. package/lib/error.js.map +0 -1
  333. package/lib/fluidResolvedUrl.d.ts +0 -8
  334. package/lib/fluidResolvedUrl.d.ts.map +0 -1
  335. package/lib/fluidResolvedUrl.js +0 -11
  336. package/lib/fluidResolvedUrl.js.map +0 -1
  337. package/lib/index.d.ts +0 -26
  338. package/lib/index.d.ts.map +0 -1
  339. package/lib/index.js +0 -26
  340. package/lib/index.js.map +0 -1
  341. package/lib/insecureUrlResolver.d.ts.map +0 -1
  342. package/lib/insecureUrlResolver.js.map +0 -1
  343. package/lib/messageRecognition.d.ts +0 -38
  344. package/lib/messageRecognition.d.ts.map +0 -1
  345. package/lib/messageRecognition.js +0 -67
  346. package/lib/messageRecognition.js.map +0 -1
  347. package/lib/multiDocumentServiceFactory.d.ts +0 -16
  348. package/lib/multiDocumentServiceFactory.d.ts.map +0 -1
  349. package/lib/multiDocumentServiceFactory.js +0 -59
  350. package/lib/multiDocumentServiceFactory.js.map +0 -1
  351. package/lib/multiUrlResolver.d.ts +0 -20
  352. package/lib/multiUrlResolver.d.ts.map +0 -1
  353. package/lib/multiUrlResolver.js +0 -40
  354. package/lib/multiUrlResolver.js.map +0 -1
  355. package/lib/network.d.ts.map +0 -1
  356. package/lib/network.js.map +0 -1
  357. package/lib/networkUtils.d.ts +0 -17
  358. package/lib/networkUtils.d.ts.map +0 -1
  359. package/lib/networkUtils.js +0 -54
  360. package/lib/networkUtils.js.map +0 -1
  361. package/lib/packageVersion.js.map +0 -1
  362. package/lib/parallelRequests.d.ts.map +0 -1
  363. package/lib/parallelRequests.js.map +0 -1
  364. package/lib/prefetchDocumentStorageService.d.ts.map +0 -1
  365. package/lib/prefetchDocumentStorageService.js.map +0 -1
  366. package/lib/rateLimiter.d.ts.map +0 -1
  367. package/lib/rateLimiter.js.map +0 -1
  368. package/lib/readAndParse.d.ts +0 -14
  369. package/lib/readAndParse.d.ts.map +0 -1
  370. package/lib/readAndParse.js +0 -18
  371. package/lib/readAndParse.js.map +0 -1
  372. package/lib/runWithRetry.d.ts.map +0 -1
  373. package/lib/runWithRetry.js +0 -65
  374. package/lib/runWithRetry.js.map +0 -1
  375. package/lib/summaryForCreateNew.d.ts.map +0 -1
  376. package/lib/summaryForCreateNew.js.map +0 -1
  377. package/lib/treeConversions.d.ts.map +0 -1
  378. package/lib/treeConversions.js.map +0 -1
  379. package/lib/treeUtils.d.ts +0 -51
  380. package/lib/treeUtils.d.ts.map +0 -1
  381. package/lib/treeUtils.js +0 -80
  382. package/lib/treeUtils.js.map +0 -1
  383. package/src/blobAggregationStorage.ts +0 -374
  384. package/src/blobCacheStorageService.ts +0 -32
  385. package/src/emptyDocumentDeltaStorageService.ts +0 -24
  386. package/src/fluidResolvedUrl.ts +0 -15
  387. package/src/multiDocumentServiceFactory.ts +0 -80
  388. package/src/multiUrlResolver.ts +0 -51
  389. package/src/treeUtils.ts +0 -111
  390. package/tsconfig.esnext.json +0 -7
package/src/network.ts CHANGED
@@ -4,166 +4,244 @@
4
4
  */
5
5
 
6
6
  import {
7
- IThrottlingWarning,
8
- IDriverErrorBase,
9
- IAuthorizationError,
10
- DriverErrorType,
7
+ IThrottlingWarning,
8
+ IDriverErrorBase,
9
+ IAuthorizationError,
10
+ // eslint-disable-next-line import/no-deprecated
11
+ DriverErrorType,
12
+ ILocationRedirectionError,
13
+ IResolvedUrl,
14
+ DriverErrorTypes,
11
15
  } from "@fluidframework/driver-definitions";
12
- import { ITelemetryProperties } from "@fluidframework/common-definitions";
16
+ import { ITelemetryProperties } from "@fluidframework/core-interfaces";
13
17
  import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
14
18
 
19
+ /**
20
+ * @internal
21
+ */
15
22
  export enum OnlineStatus {
16
- Offline,
17
- Online,
18
- Unknown,
23
+ Offline,
24
+ Online,
25
+ Unknown,
19
26
  }
20
27
 
21
- // It tells if we have local connection only - we might not have connection to web.
22
- // No solution for node.js (other than resolve dns names / ping specific sites)
23
- // Can also use window.addEventListener("online" / "offline")
28
+ /**
29
+ * It tells if we have local connection only - we might not have connection to web.
30
+ * No solution for node.js (other than resolve dns names / ping specific sites)
31
+ * Can also use window.addEventListener("online" / "offline")
32
+ * @internal
33
+ */
24
34
  export function isOnline(): OnlineStatus {
25
- if (typeof navigator === "object" && navigator !== null && typeof navigator.onLine === "boolean") {
26
- return navigator.onLine ? OnlineStatus.Online : OnlineStatus.Offline;
27
- }
28
- return OnlineStatus.Unknown;
35
+ if (
36
+ typeof navigator === "object" &&
37
+ navigator !== null &&
38
+ typeof navigator.onLine === "boolean"
39
+ ) {
40
+ return navigator.onLine ? OnlineStatus.Online : OnlineStatus.Offline;
41
+ }
42
+ return OnlineStatus.Unknown;
29
43
  }
30
44
 
31
45
  /**
32
- * Interface describing errors and warnings raised by any driver code.
33
- * Not expected to be implemented by a class or an object literal, but rather used in place of
34
- * any or unknown in various function signatures that pass errors around.
35
- *
36
- * "Any" in the interface name is a nod to the fact that errorType has lost its type constraint.
37
- * It will be either DriverErrorType or the specific driver's specialized error type enum,
38
- * but we can't reference a specific driver's error type enum in this code.
46
+ * Telemetry props with driver-specific required properties
47
+ * @internal
39
48
  */
40
- export interface IAnyDriverError extends Omit<IDriverErrorBase, "errorType"> {
41
- readonly errorType: string;
42
- }
43
-
44
- /** Telemetry props with driver-specific required properties */
45
- export type DriverErrorTelemetryProps = ITelemetryProperties & { driverVersion: string | undefined; };
49
+ export type DriverErrorTelemetryProps = ITelemetryProperties & {
50
+ driverVersion: string | undefined;
51
+ };
46
52
 
47
53
  /**
48
54
  * Generic network error class.
55
+ * @internal
49
56
  */
50
57
  export class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
51
- readonly errorType = DriverErrorType.genericNetworkError;
52
-
53
- constructor(
54
- message: string,
55
- readonly canRetry: boolean,
56
- props: DriverErrorTelemetryProps,
57
- ) {
58
- super(message, props);
59
- }
58
+ // eslint-disable-next-line import/no-deprecated
59
+ readonly errorType = DriverErrorType.genericNetworkError;
60
+
61
+ constructor(
62
+ message: string,
63
+ readonly canRetry: boolean,
64
+ props: DriverErrorTelemetryProps,
65
+ ) {
66
+ super(message, props);
67
+ }
68
+ }
69
+
70
+ /**
71
+ * FluidInvalidSchema error class.
72
+ * @internal
73
+ */
74
+ export class FluidInvalidSchemaError
75
+ extends LoggingError
76
+ implements IDriverErrorBase, IFluidErrorBase
77
+ {
78
+ // eslint-disable-next-line import/no-deprecated
79
+ readonly errorType = DriverErrorType.fluidInvalidSchema;
80
+ readonly canRetry = false;
81
+
82
+ constructor(message: string, props: DriverErrorTelemetryProps) {
83
+ super(message, props);
84
+ }
85
+ }
86
+
87
+ /**
88
+ * @internal
89
+ */
90
+ export class DeltaStreamConnectionForbiddenError
91
+ extends LoggingError
92
+ implements IDriverErrorBase, IFluidErrorBase
93
+ {
94
+ // eslint-disable-next-line import/no-deprecated
95
+ static readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;
96
+ readonly errorType = DeltaStreamConnectionForbiddenError.errorType;
97
+ readonly canRetry = false;
98
+ readonly storageOnlyReason: string | undefined;
99
+
100
+ constructor(message: string, props: DriverErrorTelemetryProps, storageOnlyReason?: string) {
101
+ super(message, { ...props, statusCode: 400 });
102
+ this.storageOnlyReason = storageOnlyReason;
103
+ }
60
104
  }
61
105
 
62
- // Todo GH #6214: Remove after next drive def bump. This is necessary as there is no
63
- // compatible way to augment an enum, as it can't be optional. So for now
64
- // we need to duplicate the value here. We likely need to rethink our
65
- // DriverErrorType strategy so that it supports extension with optional
66
- // value.
67
- const deltaStreamConnectionForbiddenStr = "deltaStreamConnectionForbidden";
68
- export class DeltaStreamConnectionForbiddenError extends LoggingError implements IFluidErrorBase {
69
- static readonly errorType: string =
70
- DriverErrorType[deltaStreamConnectionForbiddenStr] ?? deltaStreamConnectionForbiddenStr;
71
- readonly errorType: string = DeltaStreamConnectionForbiddenError.errorType;
72
- readonly canRetry = false;
73
-
74
- constructor(message: string, props: DriverErrorTelemetryProps) {
75
- super(message, { ...props, statusCode: 400 });
76
- }
106
+ /**
107
+ * @internal
108
+ */
109
+ export class AuthorizationError
110
+ extends LoggingError
111
+ implements IAuthorizationError, IFluidErrorBase
112
+ {
113
+ // eslint-disable-next-line import/no-deprecated
114
+ readonly errorType = DriverErrorType.authorizationError;
115
+ readonly canRetry = false;
116
+
117
+ constructor(
118
+ message: string,
119
+ readonly claims: string | undefined,
120
+ readonly tenantId: string | undefined,
121
+ props: DriverErrorTelemetryProps,
122
+ ) {
123
+ // don't log claims or tenantId
124
+ super(message, props, new Set(["claims", "tenantId"]));
125
+ }
77
126
  }
78
127
 
79
- export class AuthorizationError extends LoggingError implements IAuthorizationError, IFluidErrorBase {
80
- readonly errorType = DriverErrorType.authorizationError;
81
- readonly canRetry = false;
82
-
83
- constructor(
84
- message: string,
85
- readonly claims: string | undefined,
86
- readonly tenantId: string | undefined,
87
- props: DriverErrorTelemetryProps,
88
- ) {
89
- // don't log claims or tenantId
90
- super(message, props, new Set(["claims", "tenantId"]));
91
- }
128
+ /**
129
+ * @internal
130
+ */
131
+ export class LocationRedirectionError
132
+ extends LoggingError
133
+ implements ILocationRedirectionError, IFluidErrorBase
134
+ {
135
+ // eslint-disable-next-line import/no-deprecated
136
+ readonly errorType = DriverErrorType.locationRedirection;
137
+ readonly canRetry = false;
138
+
139
+ constructor(
140
+ message: string,
141
+ readonly redirectUrl: IResolvedUrl,
142
+ props: DriverErrorTelemetryProps,
143
+ ) {
144
+ // do not log redirectURL
145
+ super(message, props, new Set(["redirectUrl"]));
146
+ }
92
147
  }
93
148
 
149
+ /**
150
+ * @internal
151
+ */
94
152
  export class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {
95
- constructor(
96
- message: string,
97
- readonly errorType: T,
98
- readonly canRetry: boolean,
99
- props: DriverErrorTelemetryProps,
100
- ) {
101
- super(message, props);
102
- }
153
+ constructor(
154
+ message: string,
155
+ readonly errorType: T,
156
+ readonly canRetry: boolean,
157
+ props: DriverErrorTelemetryProps,
158
+ ) {
159
+ super(message, props);
160
+ }
103
161
  }
104
162
 
163
+ /**
164
+ * @internal
165
+ */
105
166
  export class NonRetryableError<T extends string> extends NetworkErrorBasic<T> {
106
- constructor(
107
- message: string,
108
- readonly errorType: T,
109
- props: DriverErrorTelemetryProps,
110
- ) {
111
- super(message, errorType, false, props);
112
- }
167
+ constructor(
168
+ message: string,
169
+ readonly errorType: T,
170
+ props: DriverErrorTelemetryProps,
171
+ ) {
172
+ super(message, errorType, false, props);
173
+ }
113
174
  }
114
175
 
176
+ /**
177
+ * @internal
178
+ */
115
179
  export class RetryableError<T extends string> extends NetworkErrorBasic<T> {
116
- constructor(
117
- message: string,
118
- readonly errorType: T,
119
- props: DriverErrorTelemetryProps,
120
- ) {
121
- super(message, errorType, true, props);
122
- }
180
+ constructor(
181
+ message: string,
182
+ readonly errorType: T,
183
+ props: DriverErrorTelemetryProps,
184
+ ) {
185
+ super(message, errorType, true, props);
186
+ }
123
187
  }
124
188
 
125
189
  /**
126
190
  * Throttling error class - used to communicate all throttling errors
191
+ * @internal
127
192
  */
128
193
  export class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {
129
- readonly errorType = DriverErrorType.throttlingError;
130
- readonly canRetry = true;
131
-
132
- constructor(
133
- message: string,
134
- readonly retryAfterSeconds: number,
135
- props: DriverErrorTelemetryProps,
136
- ) {
137
- super(message, props);
138
- }
194
+ // eslint-disable-next-line import/no-deprecated
195
+ readonly errorType = DriverErrorType.throttlingError;
196
+ readonly canRetry = true;
197
+
198
+ constructor(
199
+ message: string,
200
+ readonly retryAfterSeconds: number,
201
+ props: DriverErrorTelemetryProps,
202
+ ) {
203
+ super(message, props);
204
+ }
139
205
  }
140
206
 
207
+ /**
208
+ * @internal
209
+ */
141
210
  export const createWriteError = (message: string, props: DriverErrorTelemetryProps) =>
142
- new NonRetryableError(message, DriverErrorType.writeError, props);
211
+ new NonRetryableError(message, DriverErrorTypes.writeError, props);
143
212
 
213
+ /**
214
+ * @internal
215
+ */
144
216
  export function createGenericNetworkError(
145
- message: string,
146
- retryInfo: { canRetry: boolean; retryAfterMs?: number; },
147
- props: DriverErrorTelemetryProps,
217
+ message: string,
218
+ retryInfo: { canRetry: boolean; retryAfterMs?: number },
219
+ props: DriverErrorTelemetryProps,
148
220
  ): ThrottlingError | GenericNetworkError {
149
- if (retryInfo.retryAfterMs !== undefined && retryInfo.canRetry) {
150
- return new ThrottlingError(
151
- message, retryInfo.retryAfterMs / 1000, props);
152
- }
153
- return new GenericNetworkError(message, retryInfo.canRetry, props);
221
+ if (retryInfo.retryAfterMs !== undefined && retryInfo.canRetry) {
222
+ return new ThrottlingError(message, retryInfo.retryAfterMs / 1000, props);
223
+ }
224
+ return new GenericNetworkError(message, retryInfo.canRetry, props);
154
225
  }
155
226
 
156
227
  /**
157
228
  * Check if a connection error can be retried. Unless explicitly allowed, retry is disallowed.
158
229
  * I.e. asserts or unexpected exceptions in our code result in container failure.
159
230
  * @param error - The error to inspect for ability to retry
231
+ * @internal
160
232
  */
161
233
  export const canRetryOnError = (error: any): boolean => error?.canRetry === true;
162
234
 
163
- /** Check retryAfterSeconds property on error */
235
+ /**
236
+ * Check retryAfterSeconds property on error
237
+ * @internal
238
+ */
164
239
  export const getRetryDelaySecondsFromError = (error: any): number | undefined =>
165
- error?.retryAfterSeconds as number | undefined;
240
+ error?.retryAfterSeconds as number | undefined;
166
241
 
167
- /** Check retryAfterSeconds property on error and convert to ms */
168
- export const getRetryDelayFromError = (error: any): number | undefined => error?.retryAfterSeconds !== undefined ?
169
- error.retryAfterSeconds * 1000 : undefined;
242
+ /**
243
+ * Check retryAfterSeconds property on error and convert to ms
244
+ * @internal
245
+ */
246
+ export const getRetryDelayFromError = (error: any): number | undefined =>
247
+ error?.retryAfterSeconds !== undefined ? error.retryAfterSeconds * 1000 : undefined;
@@ -3,58 +3,33 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryErrorEvent, ITelemetryLogger } from "@fluidframework/common-definitions";
6
+ import { ITelemetryErrorEvent } from "@fluidframework/core-interfaces";
7
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
7
8
  import { isOnline, OnlineStatus, canRetryOnError } from "./network";
8
9
 
9
- export function logNetworkFailure(logger: ITelemetryLogger, event: ITelemetryErrorEvent, error?: any) {
10
- const newEvent = { ...event };
11
-
12
- const errorOnlineProp = error.online;
13
- newEvent.online = typeof errorOnlineProp === "string"
14
- ? errorOnlineProp
15
- : OnlineStatus[isOnline()];
16
-
17
- if (typeof navigator === "object" && navigator !== null) {
18
- const nav = navigator as any;
19
- const connection = nav.connection ?? nav.mozConnection ?? nav.webkitConnection;
20
- if (connection !== null && typeof connection === "object") {
21
- newEvent.connectionType = connection.type;
22
- }
23
- }
24
-
25
- // non-retryable errors are fatal and should be logged as errors
26
- newEvent.category = canRetryOnError(error) ? "generic" : "error";
27
- logger.sendTelemetryEvent(newEvent, error);
28
- }
29
-
30
10
  /**
31
- * Wait for browser to get to connected state.
32
- * If connected, waits minimum of minDelay anyway (between network retries)
33
- * If disconnected, polls every 30 seconds anyway, to make sure we are not getting stuck because of wrong signal
34
- * Note that browsers will have false positives (like having Hyper-V adapter on machine,
35
- * or machine connected to router that is not connected to internet)
36
- * But there should be no false negatives.
37
- * The only exception - Opera returns false when user enters "Work Offline" mode, regardless of actual connectivity.
11
+ * @internal
38
12
  */
39
- // eslint-disable-next-line @typescript-eslint/promise-function-async
40
- export function waitForConnectedState(minDelay: number): Promise<void> {
41
- // Use this frequency to poll even when we are offline and able to setup online/offline listener
42
- // This is mostly safety net
43
- const offlinePollFrequency = 30000;
13
+ export function logNetworkFailure(
14
+ logger: ITelemetryLoggerExt,
15
+ event: ITelemetryErrorEvent,
16
+ error?: any,
17
+ ) {
18
+ const newEvent = { ...event };
19
+
20
+ const errorOnlineProp = error?.online;
21
+ newEvent.online =
22
+ typeof errorOnlineProp === "string" ? errorOnlineProp : OnlineStatus[isOnline()];
23
+
24
+ if (typeof navigator === "object" && navigator !== null) {
25
+ const nav = navigator as any;
26
+ const connection = nav.connection ?? nav.mozConnection ?? nav.webkitConnection;
27
+ if (connection !== null && typeof connection === "object") {
28
+ newEvent.connectionType = connection.type;
29
+ }
30
+ }
44
31
 
45
- return new Promise((resolve) => {
46
- let listener: () => void = resolve;
47
- let delay = minDelay;
48
- if (isOnline() === OnlineStatus.Offline) {
49
- if (window?.addEventListener !== undefined) {
50
- listener = () => {
51
- resolve();
52
- window.removeEventListener("online", listener);
53
- };
54
- window.addEventListener("online", listener, false);
55
- delay = Math.max(minDelay, offlinePollFrequency);
56
- }
57
- }
58
- setTimeout(listener, delay);
59
- });
32
+ // non-retryable errors are fatal and should be logged as errors
33
+ newEvent.category = canRetryOnError(error) ? "generic" : "error";
34
+ logger.sendTelemetryEvent(newEvent, error);
60
35
  }
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/driver-utils";
9
- export const pkgVersion = "1.4.0-115997";
9
+ export const pkgVersion = "2.0.0-dev-rc.1.0.0.224419";