@fluidframework/driver-utils 1.4.0-121020 → 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/dist/index.cjs ADDED
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.blobHeadersBlobName = exports.SummaryCompressionAlgorithm = exports.applyStorageCompression = exports.convertSummaryTreeToSnapshotITree = exports.isCombinedAppAndProtocolSummary = exports.getQuorumValuesFromProtocolSummary = exports.getDocAttributesFromProtocolSummary = exports.runWithRetry = exports.calculateMaxWaitTime = exports.readAndParse = exports.RateLimiter = exports.PrefetchDocumentStorageService = exports.streamObserver = exports.streamFromMessages = exports.requestOps = exports.Queue = exports.ParallelRequests = exports.emptyMessageStream = exports.logNetworkFailure = exports.ThrottlingError = exports.RetryableError = exports.OnlineStatus = exports.NonRetryableError = exports.NetworkErrorBasic = exports.LocationRedirectionError = exports.isOnline = exports.getRetryDelaySecondsFromError = exports.getRetryDelayFromError = exports.GenericNetworkError = exports.FluidInvalidSchemaError = exports.DeltaStreamConnectionForbiddenError = exports.createWriteError = exports.createGenericNetworkError = exports.canRetryOnError = exports.AuthorizationError = exports.MessageType2 = exports.isRuntimeMessage = exports.canBeCoalescedByService = exports.InsecureUrlResolver = exports.UsageError = exports.DocumentStorageServiceProxy = exports.AttachmentTreeEntry = exports.TreeTreeEntry = exports.BlobTreeEntry = exports.buildSnapshotTree = void 0;
8
+ var buildSnapshotTree_1 = require("./buildSnapshotTree.cjs");
9
+ Object.defineProperty(exports, "buildSnapshotTree", { enumerable: true, get: function () { return buildSnapshotTree_1.buildSnapshotTree; } });
10
+ var blob_1 = require("./blob.cjs");
11
+ Object.defineProperty(exports, "BlobTreeEntry", { enumerable: true, get: function () { return blob_1.BlobTreeEntry; } });
12
+ Object.defineProperty(exports, "TreeTreeEntry", { enumerable: true, get: function () { return blob_1.TreeTreeEntry; } });
13
+ Object.defineProperty(exports, "AttachmentTreeEntry", { enumerable: true, get: function () { return blob_1.AttachmentTreeEntry; } });
14
+ var documentStorageServiceProxy_1 = require("./documentStorageServiceProxy.cjs");
15
+ Object.defineProperty(exports, "DocumentStorageServiceProxy", { enumerable: true, get: function () { return documentStorageServiceProxy_1.DocumentStorageServiceProxy; } });
16
+ var error_1 = require("./error.cjs");
17
+ Object.defineProperty(exports, "UsageError", { enumerable: true, get: function () { return error_1.UsageError; } });
18
+ var insecureUrlResolver_1 = require("./insecureUrlResolver.cjs");
19
+ Object.defineProperty(exports, "InsecureUrlResolver", { enumerable: true, get: function () { return insecureUrlResolver_1.InsecureUrlResolver; } });
20
+ var messageRecognition_1 = require("./messageRecognition.cjs");
21
+ Object.defineProperty(exports, "canBeCoalescedByService", { enumerable: true, get: function () { return messageRecognition_1.canBeCoalescedByService; } });
22
+ Object.defineProperty(exports, "isRuntimeMessage", { enumerable: true, get: function () { return messageRecognition_1.isRuntimeMessage; } });
23
+ Object.defineProperty(exports, "MessageType2", { enumerable: true, get: function () { return messageRecognition_1.MessageType2; } });
24
+ var network_1 = require("./network.cjs");
25
+ Object.defineProperty(exports, "AuthorizationError", { enumerable: true, get: function () { return network_1.AuthorizationError; } });
26
+ Object.defineProperty(exports, "canRetryOnError", { enumerable: true, get: function () { return network_1.canRetryOnError; } });
27
+ Object.defineProperty(exports, "createGenericNetworkError", { enumerable: true, get: function () { return network_1.createGenericNetworkError; } });
28
+ Object.defineProperty(exports, "createWriteError", { enumerable: true, get: function () { return network_1.createWriteError; } });
29
+ Object.defineProperty(exports, "DeltaStreamConnectionForbiddenError", { enumerable: true, get: function () { return network_1.DeltaStreamConnectionForbiddenError; } });
30
+ Object.defineProperty(exports, "FluidInvalidSchemaError", { enumerable: true, get: function () { return network_1.FluidInvalidSchemaError; } });
31
+ Object.defineProperty(exports, "GenericNetworkError", { enumerable: true, get: function () { return network_1.GenericNetworkError; } });
32
+ Object.defineProperty(exports, "getRetryDelayFromError", { enumerable: true, get: function () { return network_1.getRetryDelayFromError; } });
33
+ Object.defineProperty(exports, "getRetryDelaySecondsFromError", { enumerable: true, get: function () { return network_1.getRetryDelaySecondsFromError; } });
34
+ Object.defineProperty(exports, "isOnline", { enumerable: true, get: function () { return network_1.isOnline; } });
35
+ Object.defineProperty(exports, "LocationRedirectionError", { enumerable: true, get: function () { return network_1.LocationRedirectionError; } });
36
+ Object.defineProperty(exports, "NetworkErrorBasic", { enumerable: true, get: function () { return network_1.NetworkErrorBasic; } });
37
+ Object.defineProperty(exports, "NonRetryableError", { enumerable: true, get: function () { return network_1.NonRetryableError; } });
38
+ Object.defineProperty(exports, "OnlineStatus", { enumerable: true, get: function () { return network_1.OnlineStatus; } });
39
+ Object.defineProperty(exports, "RetryableError", { enumerable: true, get: function () { return network_1.RetryableError; } });
40
+ Object.defineProperty(exports, "ThrottlingError", { enumerable: true, get: function () { return network_1.ThrottlingError; } });
41
+ var networkUtils_1 = require("./networkUtils.cjs");
42
+ Object.defineProperty(exports, "logNetworkFailure", { enumerable: true, get: function () { return networkUtils_1.logNetworkFailure; } });
43
+ var parallelRequests_1 = require("./parallelRequests.cjs");
44
+ Object.defineProperty(exports, "emptyMessageStream", { enumerable: true, get: function () { return parallelRequests_1.emptyMessageStream; } });
45
+ Object.defineProperty(exports, "ParallelRequests", { enumerable: true, get: function () { return parallelRequests_1.ParallelRequests; } });
46
+ Object.defineProperty(exports, "Queue", { enumerable: true, get: function () { return parallelRequests_1.Queue; } });
47
+ Object.defineProperty(exports, "requestOps", { enumerable: true, get: function () { return parallelRequests_1.requestOps; } });
48
+ Object.defineProperty(exports, "streamFromMessages", { enumerable: true, get: function () { return parallelRequests_1.streamFromMessages; } });
49
+ Object.defineProperty(exports, "streamObserver", { enumerable: true, get: function () { return parallelRequests_1.streamObserver; } });
50
+ var prefetchDocumentStorageService_1 = require("./prefetchDocumentStorageService.cjs");
51
+ Object.defineProperty(exports, "PrefetchDocumentStorageService", { enumerable: true, get: function () { return prefetchDocumentStorageService_1.PrefetchDocumentStorageService; } });
52
+ var rateLimiter_1 = require("./rateLimiter.cjs");
53
+ Object.defineProperty(exports, "RateLimiter", { enumerable: true, get: function () { return rateLimiter_1.RateLimiter; } });
54
+ var readAndParse_1 = require("./readAndParse.cjs");
55
+ Object.defineProperty(exports, "readAndParse", { enumerable: true, get: function () { return readAndParse_1.readAndParse; } });
56
+ var runWithRetry_1 = require("./runWithRetry.cjs");
57
+ Object.defineProperty(exports, "calculateMaxWaitTime", { enumerable: true, get: function () { return runWithRetry_1.calculateMaxWaitTime; } });
58
+ Object.defineProperty(exports, "runWithRetry", { enumerable: true, get: function () { return runWithRetry_1.runWithRetry; } });
59
+ var summaryForCreateNew_1 = require("./summaryForCreateNew.cjs");
60
+ Object.defineProperty(exports, "getDocAttributesFromProtocolSummary", { enumerable: true, get: function () { return summaryForCreateNew_1.getDocAttributesFromProtocolSummary; } });
61
+ Object.defineProperty(exports, "getQuorumValuesFromProtocolSummary", { enumerable: true, get: function () { return summaryForCreateNew_1.getQuorumValuesFromProtocolSummary; } });
62
+ Object.defineProperty(exports, "isCombinedAppAndProtocolSummary", { enumerable: true, get: function () { return summaryForCreateNew_1.isCombinedAppAndProtocolSummary; } });
63
+ var treeConversions_1 = require("./treeConversions.cjs");
64
+ Object.defineProperty(exports, "convertSummaryTreeToSnapshotITree", { enumerable: true, get: function () { return treeConversions_1.convertSummaryTreeToSnapshotITree; } });
65
+ var adapters_1 = require("./adapters/index.cjs");
66
+ Object.defineProperty(exports, "applyStorageCompression", { enumerable: true, get: function () { return adapters_1.applyStorageCompression; } });
67
+ Object.defineProperty(exports, "SummaryCompressionAlgorithm", { enumerable: true, get: function () { return adapters_1.SummaryCompressionAlgorithm; } });
68
+ Object.defineProperty(exports, "blobHeadersBlobName", { enumerable: true, get: function () { return adapters_1.blobHeadersBlobName; } });
69
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6DAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,mCAA2E;AAAlE,qGAAA,aAAa,OAAA;AAAE,qGAAA,aAAa,OAAA;AAAE,2GAAA,mBAAmB,OAAA;AAC1D,iFAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,qCAAqC;AAA5B,mGAAA,UAAU,OAAA;AACnB,iEAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,+DAA+F;AAAtF,6HAAA,uBAAuB,OAAA;AAAE,sHAAA,gBAAgB,OAAA;AAAE,kHAAA,YAAY,OAAA;AAChE,yCAkBmB;AAjBlB,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,oHAAA,yBAAyB,OAAA;AACzB,2GAAA,gBAAgB,OAAA;AAChB,8HAAA,mCAAmC,OAAA;AAEnC,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AACnB,iHAAA,sBAAsB,OAAA;AACtB,wHAAA,6BAA6B,OAAA;AAC7B,mGAAA,QAAQ,OAAA;AACR,mHAAA,wBAAwB,OAAA;AACxB,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AACjB,uGAAA,YAAY,OAAA;AACZ,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AAEhB,mDAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAC1B,2DAO4B;AAN3B,sHAAA,kBAAkB,OAAA;AAClB,oHAAA,gBAAgB,OAAA;AAChB,yGAAA,KAAK,OAAA;AACL,8GAAA,UAAU,OAAA;AACV,sHAAA,kBAAkB,OAAA;AAClB,kHAAA,cAAc,OAAA;AAEf,uFAAkF;AAAzE,gJAAA,8BAA8B,OAAA;AACvC,iDAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mDAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAA+E;AAAtE,oHAAA,oBAAoB,OAAA;AAAa,4GAAA,YAAY,OAAA;AACtD,iEAK+B;AAH9B,0IAAA,mCAAmC,OAAA;AACnC,yIAAA,kCAAkC,OAAA;AAClC,sIAAA,+BAA+B,OAAA;AAEhC,yDAAsE;AAA7D,oIAAA,iCAAiC,OAAA;AAC1C,iDAKoB;AAJnB,mHAAA,uBAAuB,OAAA;AAEvB,uHAAA,2BAA2B,OAAA;AAC3B,+GAAA,mBAAmB,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { buildSnapshotTree } from \"./buildSnapshotTree\";\nexport { BlobTreeEntry, TreeTreeEntry, AttachmentTreeEntry } from \"./blob\";\nexport { DocumentStorageServiceProxy } from \"./documentStorageServiceProxy\";\nexport { UsageError } from \"./error\";\nexport { InsecureUrlResolver } from \"./insecureUrlResolver\";\nexport { canBeCoalescedByService, isRuntimeMessage, MessageType2 } from \"./messageRecognition\";\nexport {\n\tAuthorizationError,\n\tcanRetryOnError,\n\tcreateGenericNetworkError,\n\tcreateWriteError,\n\tDeltaStreamConnectionForbiddenError,\n\tDriverErrorTelemetryProps,\n\tFluidInvalidSchemaError,\n\tGenericNetworkError,\n\tgetRetryDelayFromError,\n\tgetRetryDelaySecondsFromError,\n\tisOnline,\n\tLocationRedirectionError,\n\tNetworkErrorBasic,\n\tNonRetryableError,\n\tOnlineStatus,\n\tRetryableError,\n\tThrottlingError,\n} from \"./network\";\nexport { logNetworkFailure } from \"./networkUtils\";\nexport {\n\temptyMessageStream,\n\tParallelRequests,\n\tQueue,\n\trequestOps,\n\tstreamFromMessages,\n\tstreamObserver,\n} from \"./parallelRequests\";\nexport { PrefetchDocumentStorageService } from \"./prefetchDocumentStorageService\";\nexport { RateLimiter } from \"./rateLimiter\";\nexport { readAndParse } from \"./readAndParse\";\nexport { calculateMaxWaitTime, IProgress, runWithRetry } from \"./runWithRetry\";\nexport {\n\tCombinedAppAndProtocolSummary,\n\tgetDocAttributesFromProtocolSummary,\n\tgetQuorumValuesFromProtocolSummary,\n\tisCombinedAppAndProtocolSummary,\n} from \"./summaryForCreateNew\";\nexport { convertSummaryTreeToSnapshotITree } from \"./treeConversions\";\nexport {\n\tapplyStorageCompression,\n\tICompressionStorageConfig,\n\tSummaryCompressionAlgorithm,\n\tblobHeadersBlobName,\n} from \"./adapters\";\n"]}
package/dist/index.d.ts CHANGED
@@ -2,25 +2,20 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- export * from "./blobCacheStorageService";
6
- export * from "./blobAggregationStorage";
7
- export * from "./buildSnapshotTree";
8
- export * from "./documentStorageServiceProxy";
9
- export * from "./insecureUrlResolver";
10
- export * from "./multiDocumentServiceFactory";
11
- export * from "./multiUrlResolver";
12
- export * from "./network";
13
- export * from "./readAndParse";
14
- export * from "./fluidResolvedUrl";
15
- export * from "./summaryForCreateNew";
16
- export * from "./parallelRequests";
17
- export * from "./prefetchDocumentStorageService";
18
- export * from "./networkUtils";
19
- export * from "./rateLimiter";
20
- export * from "./runWithRetry";
21
- export * from "./treeConversions";
22
- export * from "./treeUtils";
23
- export * from "./messageRecognition";
24
- export * from "./error";
25
- export * from "./emptyDocumentDeltaStorageService";
5
+ export { buildSnapshotTree } from "./buildSnapshotTree";
6
+ export { BlobTreeEntry, TreeTreeEntry, AttachmentTreeEntry } from "./blob";
7
+ export { DocumentStorageServiceProxy } from "./documentStorageServiceProxy";
8
+ export { UsageError } from "./error";
9
+ export { InsecureUrlResolver } from "./insecureUrlResolver";
10
+ export { canBeCoalescedByService, isRuntimeMessage, MessageType2 } from "./messageRecognition";
11
+ export { AuthorizationError, canRetryOnError, createGenericNetworkError, createWriteError, DeltaStreamConnectionForbiddenError, DriverErrorTelemetryProps, FluidInvalidSchemaError, GenericNetworkError, getRetryDelayFromError, getRetryDelaySecondsFromError, isOnline, LocationRedirectionError, NetworkErrorBasic, NonRetryableError, OnlineStatus, RetryableError, ThrottlingError, } from "./network";
12
+ export { logNetworkFailure } from "./networkUtils";
13
+ export { emptyMessageStream, ParallelRequests, Queue, requestOps, streamFromMessages, streamObserver, } from "./parallelRequests";
14
+ export { PrefetchDocumentStorageService } from "./prefetchDocumentStorageService";
15
+ export { RateLimiter } from "./rateLimiter";
16
+ export { readAndParse } from "./readAndParse";
17
+ export { calculateMaxWaitTime, IProgress, runWithRetry } from "./runWithRetry";
18
+ export { CombinedAppAndProtocolSummary, getDocAttributesFromProtocolSummary, getQuorumValuesFromProtocolSummary, isCombinedAppAndProtocolSummary, } from "./summaryForCreateNew";
19
+ export { convertSummaryTreeToSnapshotITree } from "./treeConversions";
20
+ export { applyStorageCompression, ICompressionStorageConfig, SummaryCompressionAlgorithm, blobHeadersBlobName, } from "./adapters";
26
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,mCAAmC,EACnC,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,6BAA6B,EAC7B,QAAQ,EACR,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EACN,6BAA6B,EAC7B,mCAAmC,EACnC,kCAAkC,EAClC,+BAA+B,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACN,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,GACnB,MAAM,YAAY,CAAC"}
@@ -9,7 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.InsecureUrlResolver = void 0;
11
11
  const url_1 = require("url");
12
- const common_utils_1 = require("@fluidframework/common-utils");
12
+ const core_utils_1 = require("@fluidframework/core-utils");
13
13
  const driver_definitions_1 = require("@fluidframework/driver-definitions");
14
14
  const axios_1 = __importDefault(require("axios"));
15
15
  /**
@@ -25,6 +25,7 @@ const axios_1 = __importDefault(require("axios"));
25
25
  * The tenantId/documentId pair defines the 'full' document ID the service makes use of. The path is then an optional
26
26
  * part of the URL that the document interprets and maps to a data store. It's exactly similar to how a web service
27
27
  * works or a router inside of a single page app framework.
28
+ * @internal
28
29
  */
29
30
  class InsecureUrlResolver {
30
31
  constructor(hostUrl, ordererUrl, storageUrl, tenantId, bearer, isForNodeTest = false) {
@@ -37,9 +38,8 @@ class InsecureUrlResolver {
37
38
  this.cache = new Map();
38
39
  }
39
40
  async resolve(request) {
40
- var _a;
41
41
  // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
42
- if ((_a = request.headers) === null || _a === void 0 ? void 0 : _a[driver_definitions_1.DriverHeader.createNew]) {
42
+ if (request.headers?.[driver_definitions_1.DriverHeader.createNew]) {
43
43
  const [, queryString] = request.url.split("?");
44
44
  const searchParams = new URLSearchParams(queryString);
45
45
  const fileName = searchParams.get("fileName");
@@ -50,7 +50,7 @@ class InsecureUrlResolver {
50
50
  // service using our bearer token.
51
51
  if (this.isForNodeTest) {
52
52
  const [, documentId, tmpRelativePath] = parsedUrl.pathname.substr(1).split("/");
53
- const relativePath = tmpRelativePath === undefined ? "" : tmpRelativePath;
53
+ const relativePath = tmpRelativePath ?? "";
54
54
  return this.resolveHelper(documentId, relativePath, parsedUrl.search);
55
55
  }
56
56
  else if (parsedUrl.host === window.location.host) {
@@ -99,7 +99,8 @@ class InsecureUrlResolver {
99
99
  }
100
100
  const encodedDocId = encodeURIComponent(documentId);
101
101
  const relativePath = !documentRelativePath || documentRelativePath.startsWith("/")
102
- ? documentRelativePath : `/${documentRelativePath}`;
102
+ ? documentRelativePath
103
+ : `/${documentRelativePath}`;
103
104
  const documentUrl = `fluid://${host}/${encodedTenantId}/${encodedDocId}${relativePath}${queryParams}`;
104
105
  const deltaStorageUrl = `${this.ordererUrl}/deltas/${encodedTenantId}/${encodedDocId}`;
105
106
  const storageUrl = `${this.storageUrl}/repos/${encodedTenantId}`;
@@ -117,12 +118,10 @@ class InsecureUrlResolver {
117
118
  return response;
118
119
  }
119
120
  async getAbsoluteUrl(resolvedUrl, relativeUrl) {
120
- var _a, _b;
121
- const fluidResolvedUrl = resolvedUrl;
122
- const parsedUrl = (0, url_1.parse)(fluidResolvedUrl.url);
123
- const [, , documentId] = (_b = (_a = parsedUrl.pathname) === null || _a === void 0 ? void 0 : _a.split("/")) !== null && _b !== void 0 ? _b : [];
121
+ const parsedUrl = (0, url_1.parse)(resolvedUrl.url);
122
+ const [, , documentId] = parsedUrl.pathname?.split("/") ?? [];
124
123
  // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
125
- (0, common_utils_1.assert)(!!documentId, 0x273 /* "Invalid document id from parsed URL" */);
124
+ (0, core_utils_1.assert)(!!documentId, 0x273 /* "Invalid document id from parsed URL" */);
126
125
  let url = relativeUrl;
127
126
  if (url.startsWith("/")) {
128
127
  url = url.substr(1);
@@ -141,4 +140,4 @@ class InsecureUrlResolver {
141
140
  }
142
141
  }
143
142
  exports.InsecureUrlResolver = InsecureUrlResolver;
144
- //# sourceMappingURL=insecureUrlResolver.js.map
143
+ //# sourceMappingURL=insecureUrlResolver.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insecureUrlResolver.cjs","sourceRoot":"","sources":["../src/insecureUrlResolver.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { parse } from \"url\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport { IRequest } from \"@fluidframework/core-interfaces\";\nimport { IResolvedUrl, IUrlResolver, DriverHeader } from \"@fluidframework/driver-definitions\";\nimport Axios from \"axios\";\n\n/**\n * As the name implies this is not secure and should not be used in production. It simply makes the example easier\n * to get up and running.\n *\n * In our example we run a simple web server via webpack-dev-server. This defines a URL format of the form\n * http://localhost:8080/<documentId>/<path>.\n *\n * We then need to map that to a Fluid based URL. These are of the form\n * fluid://orderingUrl/<tenantId>/<documentId>/<path>.\n *\n * The tenantId/documentId pair defines the 'full' document ID the service makes use of. The path is then an optional\n * part of the URL that the document interprets and maps to a data store. It's exactly similar to how a web service\n * works or a router inside of a single page app framework.\n * @internal\n */\nexport class InsecureUrlResolver implements IUrlResolver {\n\tprivate readonly cache = new Map<string, Promise<IResolvedUrl>>();\n\n\tconstructor(\n\t\tprivate readonly hostUrl: string,\n\t\tprivate readonly ordererUrl: string,\n\t\tprivate readonly storageUrl: string,\n\t\tprivate readonly tenantId: string,\n\t\tprivate readonly bearer: string,\n\t\tprivate readonly isForNodeTest: boolean = false,\n\t) {}\n\n\tpublic async resolve(request: IRequest): Promise<IResolvedUrl | undefined> {\n\t\t// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n\t\tif (request.headers?.[DriverHeader.createNew]) {\n\t\t\tconst [, queryString] = request.url.split(\"?\");\n\t\t\tconst searchParams = new URLSearchParams(queryString);\n\t\t\tconst fileName = searchParams.get(\"fileName\");\n\t\t\treturn this.resolveHelper(fileName);\n\t\t}\n\t\tconst parsedUrl = new URL(request.url);\n\t\t// If hosts match then we use the local tenant information. Otherwise we make a REST call out to the hosting\n\t\t// service using our bearer token.\n\t\tif (this.isForNodeTest) {\n\t\t\tconst [, documentId, tmpRelativePath] = parsedUrl.pathname.substr(1).split(\"/\");\n\t\t\tconst relativePath = tmpRelativePath ?? \"\";\n\t\t\treturn this.resolveHelper(documentId, relativePath, parsedUrl.search);\n\t\t} else if (parsedUrl.host === window.location.host) {\n\t\t\tconst fullPath = parsedUrl.pathname.substr(1);\n\t\t\tconst documentId = fullPath.split(\"/\")[0];\n\t\t\tconst documentRelativePath = fullPath.slice(documentId.length);\n\t\t\treturn this.resolveHelper(documentId, documentRelativePath);\n\t\t} else {\n\t\t\tconst maybeResolvedUrl = this.cache.get(request.url);\n\t\t\tif (maybeResolvedUrl) {\n\t\t\t\treturn maybeResolvedUrl;\n\t\t\t}\n\n\t\t\tconst headers = {\n\t\t\t\tAuthorization: `Bearer ${this.bearer}`,\n\t\t\t};\n\t\t\tconst resolvedP = Axios.post<IResolvedUrl>(\n\t\t\t\t`${this.hostUrl}/api/v1/load`,\n\t\t\t\t{\n\t\t\t\t\turl: request.url,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theaders,\n\t\t\t\t},\n\t\t\t);\n\t\t\tthis.cache.set(\n\t\t\t\trequest.url,\n\t\t\t\tresolvedP.then((resolved) => resolved.data),\n\t\t\t);\n\n\t\t\treturn this.cache.get(request.url);\n\t\t}\n\t}\n\n\tprivate resolveHelper(\n\t\tdocumentId: string | null,\n\t\tdocumentRelativePath: string = \"\",\n\t\tqueryParams: string = \"\",\n\t) {\n\t\tconst encodedTenantId = encodeURIComponent(this.tenantId);\n\t\tconst host = new URL(this.ordererUrl).host;\n\t\t// when the document ID is not provided we need to resolve a special create new document URL.\n\t\t// the actual container ID will be generated by the driver.\n\t\t// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n\t\tif (!documentId) {\n\t\t\tconst createNewResponse: IResolvedUrl = {\n\t\t\t\tendpoints: {\n\t\t\t\t\tdeltaStorageUrl: `${this.ordererUrl}/deltas/${encodedTenantId}/new`,\n\t\t\t\t\tordererUrl: this.ordererUrl,\n\t\t\t\t\tstorageUrl: `${this.storageUrl}/repos/${encodedTenantId}`,\n\t\t\t\t},\n\t\t\t\t// document ID is ignored by the driver for new container requests\n\t\t\t\tid: \"\",\n\t\t\t\ttokens: {},\n\t\t\t\ttype: \"fluid\",\n\t\t\t\turl: `fluid://${host}/${encodedTenantId}/new`,\n\t\t\t};\n\t\t\treturn createNewResponse;\n\t\t}\n\t\tconst encodedDocId = encodeURIComponent(documentId);\n\t\tconst relativePath =\n\t\t\t!documentRelativePath || documentRelativePath.startsWith(\"/\")\n\t\t\t\t? documentRelativePath\n\t\t\t\t: `/${documentRelativePath}`;\n\t\tconst documentUrl = `fluid://${host}/${encodedTenantId}/${encodedDocId}${relativePath}${queryParams}`;\n\n\t\tconst deltaStorageUrl = `${this.ordererUrl}/deltas/${encodedTenantId}/${encodedDocId}`;\n\t\tconst storageUrl = `${this.storageUrl}/repos/${encodedTenantId}`;\n\n\t\tconst response: IResolvedUrl = {\n\t\t\tendpoints: {\n\t\t\t\tdeltaStorageUrl,\n\t\t\t\tordererUrl: this.ordererUrl,\n\t\t\t\tstorageUrl,\n\t\t\t},\n\t\t\tid: documentId,\n\t\t\ttokens: {},\n\t\t\ttype: \"fluid\",\n\t\t\turl: documentUrl,\n\t\t};\n\t\treturn response;\n\t}\n\n\tpublic async getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string): Promise<string> {\n\t\tconst parsedUrl = parse(resolvedUrl.url);\n\t\tconst [, , documentId] = parsedUrl.pathname?.split(\"/\") ?? [];\n\t\t// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n\t\tassert(!!documentId, 0x273 /* \"Invalid document id from parsed URL\" */);\n\n\t\tlet url = relativeUrl;\n\t\tif (url.startsWith(\"/\")) {\n\t\t\turl = url.substr(1);\n\t\t}\n\n\t\treturn `${this.hostUrl}/${encodeURIComponent(this.tenantId)}/${encodeURIComponent(\n\t\t\tdocumentId,\n\t\t)}/${url}`;\n\t}\n\n\tpublic createCreateNewRequest(fileName?: string): IRequest {\n\t\tconst createNewRequest: IRequest = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n\t\t\turl: fileName ? `${this.hostUrl}?fileName=${fileName}` : this.hostUrl,\n\t\t\theaders: {\n\t\t\t\t[DriverHeader.createNew]: true,\n\t\t\t},\n\t\t};\n\t\treturn createNewRequest;\n\t}\n}\n"]}
@@ -17,6 +17,7 @@ import { IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions";
17
17
  * The tenantId/documentId pair defines the 'full' document ID the service makes use of. The path is then an optional
18
18
  * part of the URL that the document interprets and maps to a data store. It's exactly similar to how a web service
19
19
  * works or a router inside of a single page app framework.
20
+ * @internal
20
21
  */
21
22
  export declare class InsecureUrlResolver implements IUrlResolver {
22
23
  private readonly hostUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"insecureUrlResolver.d.ts","sourceRoot":"","sources":["../src/insecureUrlResolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAEH,YAAY,EACZ,YAAY,EAEf,MAAM,oCAAoC,CAAC;AAG5C;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IAIhD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IARlC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4C;gBAG7C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,OAAe;IAGtC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA2C1E,OAAO,CAAC,aAAa;IA2CR,cAAc,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBrF,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ;CAU7D"}
1
+ {"version":3,"file":"insecureUrlResolver.d.ts","sourceRoot":"","sources":["../src/insecureUrlResolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,oCAAoC,CAAC;AAG9F;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IAItD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAR/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4C;gBAGhD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,OAAe;IAGnC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA+C1E,OAAO,CAAC,aAAa;IAiDR,cAAc,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBrF,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ;CAU1D"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canBeCoalescedByService = exports.MessageType2 = exports.isRuntimeMessage = void 0;
4
+ /*!
5
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
6
+ * Licensed under the MIT License.
7
+ */
8
+ const protocol_definitions_1 = require("@fluidframework/protocol-definitions");
9
+ /**
10
+ * Tells if message was sent by container runtime
11
+ * @privateRemarks ADO #1385: To be moved to container-definitions
12
+ * @returns whether the message is a runtime message
13
+ * @internal
14
+ */
15
+ function isRuntimeMessage(message) {
16
+ return message.type === protocol_definitions_1.MessageType.Operation;
17
+ }
18
+ exports.isRuntimeMessage = isRuntimeMessage;
19
+ /**
20
+ * @privateRemarks ADO #1385: staging code changes across layers.
21
+ * Eventually to be replaced by MessageType.accept
22
+ * @internal
23
+ */
24
+ var MessageType2;
25
+ (function (MessageType2) {
26
+ MessageType2["Accept"] = "accept";
27
+ })(MessageType2 || (exports.MessageType2 = MessageType2 = {}));
28
+ /**
29
+ * @privateRemarks ADO #1385: To be moved to packages/protocol-base/src/protocol.ts
30
+ * @internal
31
+ */
32
+ function canBeCoalescedByService(message) {
33
+ // This assumes that in the future relay service may implement coalescing of accept messages,
34
+ // same way it was doing coalescing of immediate noops in the past.
35
+ return message.type === protocol_definitions_1.MessageType.NoOp || message.type === MessageType2.Accept;
36
+ }
37
+ exports.canBeCoalescedByService = canBeCoalescedByService;
38
+ //# sourceMappingURL=messageRecognition.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageRecognition.cjs","sourceRoot":"","sources":["../src/messageRecognition.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+EAI8C;AAE9C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAyB;IACzD,OAAO,OAAO,CAAC,IAAI,KAAK,kCAAW,CAAC,SAAS,CAAC;AAC/C,CAAC;AAFD,4CAEC;AAED;;;;GAIG;AACH,IAAY,YAEX;AAFD,WAAY,YAAY;IACvB,iCAAiB,CAAA;AAClB,CAAC,EAFW,YAAY,4BAAZ,YAAY,QAEvB;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CACtC,OAAqD;IAErD,6FAA6F;IAC7F,mEAAmE;IACnE,OAAO,OAAO,CAAC,IAAI,KAAK,kCAAW,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC;AAClF,CAAC;AAND,0DAMC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport {\n\tIDocumentMessage,\n\tISequencedDocumentMessage,\n\tMessageType,\n} from \"@fluidframework/protocol-definitions\";\n\n/**\n * Tells if message was sent by container runtime\n * @privateRemarks ADO #1385: To be moved to container-definitions\n * @returns whether the message is a runtime message\n * @internal\n */\nexport function isRuntimeMessage(message: { type: string }): boolean {\n\treturn message.type === MessageType.Operation;\n}\n\n/**\n * @privateRemarks ADO #1385: staging code changes across layers.\n * Eventually to be replaced by MessageType.accept\n * @internal\n */\nexport enum MessageType2 {\n\tAccept = \"accept\",\n}\n\n/**\n * @privateRemarks ADO #1385: To be moved to packages/protocol-base/src/protocol.ts\n * @internal\n */\nexport function canBeCoalescedByService(\n\tmessage: ISequencedDocumentMessage | IDocumentMessage,\n): boolean {\n\t// This assumes that in the future relay service may implement coalescing of accept messages,\n\t// same way it was doing coalescing of immediate noops in the past.\n\treturn message.type === MessageType.NoOp || message.type === MessageType2.Accept;\n}\n"]}
@@ -4,35 +4,25 @@
4
4
  */
5
5
  import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
6
6
  /**
7
- *
8
- * @param message-message
9
- * @returns whether or not the message type is one listed below
10
- * "op"
11
- * "summarize"
12
- * "propose"
13
- * "reject"
14
- * "noop"
7
+ * Tells if message was sent by container runtime
8
+ * @privateRemarks ADO #1385: To be moved to container-definitions
9
+ * @returns whether the message is a runtime message
10
+ * @internal
15
11
  */
16
- export declare function isClientMessage(message: ISequencedDocumentMessage | IDocumentMessage): boolean;
12
+ export declare function isRuntimeMessage(message: {
13
+ type: string;
14
+ }): boolean;
17
15
  /**
18
- *
19
- * @param message-message
20
- * @returns whether or not the message type is one listed below
21
- * "op"
22
- * "summarize"
16
+ * @privateRemarks ADO #1385: staging code changes across layers.
17
+ * Eventually to be replaced by MessageType.accept
18
+ * @internal
23
19
  */
24
- export declare function isRuntimeMessage(message: ISequencedDocumentMessage | IDocumentMessage): boolean;
20
+ export declare enum MessageType2 {
21
+ Accept = "accept"
22
+ }
25
23
  /**
26
- *
27
- * @param message-message
28
- * @returns whether or not the message type is one listed below (legacy)
29
- * "component"
30
- * "attach"
31
- * "chunkedOp"
32
- * "blobAttach"
33
- * "rejoin"
34
- * "alias"
35
- * "op"
24
+ * @privateRemarks ADO #1385: To be moved to packages/protocol-base/src/protocol.ts
25
+ * @internal
36
26
  */
37
- export declare function isUnpackedRuntimeMessage(message: ISequencedDocumentMessage): boolean;
27
+ export declare function canBeCoalescedByService(message: ISequencedDocumentMessage | IDocumentMessage): boolean;
38
28
  //# sourceMappingURL=messageRecognition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messageRecognition.d.ts","sourceRoot":"","sources":["../src/messageRecognition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAe,MAAM,sCAAsC,CAAC;AAEhH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,yBAAyB,GAAG,gBAAgB,GAAG,OAAO,CAY9F;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,yBAAyB,GAAG,gBAAgB,GAAG,OAAO,CAE/F;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAKpF"}
1
+ {"version":3,"file":"messageRecognition.d.ts","sourceRoot":"","sources":["../src/messageRecognition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACN,gBAAgB,EAChB,yBAAyB,EAEzB,MAAM,sCAAsC,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAEnE;AAED;;;;GAIG;AACH,oBAAY,YAAY;IACvB,MAAM,WAAW;CACjB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,yBAAyB,GAAG,gBAAgB,GACnD,OAAO,CAIT"}
@@ -3,22 +3,29 @@
3
3
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var _a;
7
6
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.getRetryDelayFromError = exports.getRetryDelaySecondsFromError = exports.canRetryOnError = exports.createGenericNetworkError = exports.createWriteError = exports.ThrottlingError = exports.RetryableError = exports.NonRetryableError = exports.NetworkErrorBasic = exports.AuthorizationError = exports.DeltaStreamConnectionForbiddenError = exports.GenericNetworkError = exports.isOnline = exports.OnlineStatus = void 0;
7
+ exports.getRetryDelayFromError = exports.getRetryDelaySecondsFromError = exports.canRetryOnError = exports.createGenericNetworkError = exports.createWriteError = exports.ThrottlingError = exports.RetryableError = exports.NonRetryableError = exports.NetworkErrorBasic = exports.LocationRedirectionError = exports.AuthorizationError = exports.DeltaStreamConnectionForbiddenError = exports.FluidInvalidSchemaError = exports.GenericNetworkError = exports.isOnline = exports.OnlineStatus = void 0;
9
8
  const driver_definitions_1 = require("@fluidframework/driver-definitions");
10
9
  const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
10
+ /**
11
+ * @internal
12
+ */
11
13
  var OnlineStatus;
12
14
  (function (OnlineStatus) {
13
15
  OnlineStatus[OnlineStatus["Offline"] = 0] = "Offline";
14
16
  OnlineStatus[OnlineStatus["Online"] = 1] = "Online";
15
17
  OnlineStatus[OnlineStatus["Unknown"] = 2] = "Unknown";
16
- })(OnlineStatus = exports.OnlineStatus || (exports.OnlineStatus = {}));
17
- // It tells if we have local connection only - we might not have connection to web.
18
- // No solution for node.js (other than resolve dns names / ping specific sites)
19
- // Can also use window.addEventListener("online" / "offline")
18
+ })(OnlineStatus || (exports.OnlineStatus = OnlineStatus = {}));
19
+ /**
20
+ * It tells if we have local connection only - we might not have connection to web.
21
+ * No solution for node.js (other than resolve dns names / ping specific sites)
22
+ * Can also use window.addEventListener("online" / "offline")
23
+ * @internal
24
+ */
20
25
  function isOnline() {
21
- if (typeof navigator === "object" && navigator !== null && typeof navigator.onLine === "boolean") {
26
+ if (typeof navigator === "object" &&
27
+ navigator !== null &&
28
+ typeof navigator.onLine === "boolean") {
22
29
  return navigator.onLine ? OnlineStatus.Online : OnlineStatus.Offline;
23
30
  }
24
31
  return OnlineStatus.Unknown;
@@ -26,41 +33,76 @@ function isOnline() {
26
33
  exports.isOnline = isOnline;
27
34
  /**
28
35
  * Generic network error class.
36
+ * @internal
29
37
  */
30
38
  class GenericNetworkError extends telemetry_utils_1.LoggingError {
31
39
  constructor(message, canRetry, props) {
32
40
  super(message, props);
33
41
  this.canRetry = canRetry;
42
+ // eslint-disable-next-line import/no-deprecated
34
43
  this.errorType = driver_definitions_1.DriverErrorType.genericNetworkError;
35
44
  }
36
45
  }
37
46
  exports.GenericNetworkError = GenericNetworkError;
38
- // Todo GH #6214: Remove after next drive def bump. This is necessary as there is no
39
- // compatible way to augment an enum, as it can't be optional. So for now
40
- // we need to duplicate the value here. We likely need to rethink our
41
- // DriverErrorType strategy so that it supports extension with optional
42
- // value.
43
- const deltaStreamConnectionForbiddenStr = "deltaStreamConnectionForbidden";
44
- class DeltaStreamConnectionForbiddenError extends telemetry_utils_1.LoggingError {
47
+ /**
48
+ * FluidInvalidSchema error class.
49
+ * @internal
50
+ */
51
+ class FluidInvalidSchemaError extends telemetry_utils_1.LoggingError {
45
52
  constructor(message, props) {
46
- super(message, Object.assign(Object.assign({}, props), { statusCode: 400 }));
53
+ super(message, props);
54
+ // eslint-disable-next-line import/no-deprecated
55
+ this.errorType = driver_definitions_1.DriverErrorType.fluidInvalidSchema;
56
+ this.canRetry = false;
57
+ }
58
+ }
59
+ exports.FluidInvalidSchemaError = FluidInvalidSchemaError;
60
+ /**
61
+ * @internal
62
+ */
63
+ class DeltaStreamConnectionForbiddenError extends telemetry_utils_1.LoggingError {
64
+ constructor(message, props, storageOnlyReason) {
65
+ super(message, { ...props, statusCode: 400 });
47
66
  this.errorType = DeltaStreamConnectionForbiddenError.errorType;
48
67
  this.canRetry = false;
68
+ this.storageOnlyReason = storageOnlyReason;
49
69
  }
50
70
  }
51
71
  exports.DeltaStreamConnectionForbiddenError = DeltaStreamConnectionForbiddenError;
52
- DeltaStreamConnectionForbiddenError.errorType = (_a = driver_definitions_1.DriverErrorType[deltaStreamConnectionForbiddenStr]) !== null && _a !== void 0 ? _a : deltaStreamConnectionForbiddenStr;
72
+ // eslint-disable-next-line import/no-deprecated
73
+ DeltaStreamConnectionForbiddenError.errorType = driver_definitions_1.DriverErrorType.deltaStreamConnectionForbidden;
74
+ /**
75
+ * @internal
76
+ */
53
77
  class AuthorizationError extends telemetry_utils_1.LoggingError {
54
78
  constructor(message, claims, tenantId, props) {
55
79
  // don't log claims or tenantId
56
80
  super(message, props, new Set(["claims", "tenantId"]));
57
81
  this.claims = claims;
58
82
  this.tenantId = tenantId;
83
+ // eslint-disable-next-line import/no-deprecated
59
84
  this.errorType = driver_definitions_1.DriverErrorType.authorizationError;
60
85
  this.canRetry = false;
61
86
  }
62
87
  }
63
88
  exports.AuthorizationError = AuthorizationError;
89
+ /**
90
+ * @internal
91
+ */
92
+ class LocationRedirectionError extends telemetry_utils_1.LoggingError {
93
+ constructor(message, redirectUrl, props) {
94
+ // do not log redirectURL
95
+ super(message, props, new Set(["redirectUrl"]));
96
+ this.redirectUrl = redirectUrl;
97
+ // eslint-disable-next-line import/no-deprecated
98
+ this.errorType = driver_definitions_1.DriverErrorType.locationRedirection;
99
+ this.canRetry = false;
100
+ }
101
+ }
102
+ exports.LocationRedirectionError = LocationRedirectionError;
103
+ /**
104
+ * @internal
105
+ */
64
106
  class NetworkErrorBasic extends telemetry_utils_1.LoggingError {
65
107
  constructor(message, errorType, canRetry, props) {
66
108
  super(message, props);
@@ -69,6 +111,9 @@ class NetworkErrorBasic extends telemetry_utils_1.LoggingError {
69
111
  }
70
112
  }
71
113
  exports.NetworkErrorBasic = NetworkErrorBasic;
114
+ /**
115
+ * @internal
116
+ */
72
117
  class NonRetryableError extends NetworkErrorBasic {
73
118
  constructor(message, errorType, props) {
74
119
  super(message, errorType, false, props);
@@ -76,6 +121,9 @@ class NonRetryableError extends NetworkErrorBasic {
76
121
  }
77
122
  }
78
123
  exports.NonRetryableError = NonRetryableError;
124
+ /**
125
+ * @internal
126
+ */
79
127
  class RetryableError extends NetworkErrorBasic {
80
128
  constructor(message, errorType, props) {
81
129
  super(message, errorType, true, props);
@@ -85,18 +133,26 @@ class RetryableError extends NetworkErrorBasic {
85
133
  exports.RetryableError = RetryableError;
86
134
  /**
87
135
  * Throttling error class - used to communicate all throttling errors
136
+ * @internal
88
137
  */
89
138
  class ThrottlingError extends telemetry_utils_1.LoggingError {
90
139
  constructor(message, retryAfterSeconds, props) {
91
140
  super(message, props);
92
141
  this.retryAfterSeconds = retryAfterSeconds;
142
+ // eslint-disable-next-line import/no-deprecated
93
143
  this.errorType = driver_definitions_1.DriverErrorType.throttlingError;
94
144
  this.canRetry = true;
95
145
  }
96
146
  }
97
147
  exports.ThrottlingError = ThrottlingError;
98
- const createWriteError = (message, props) => new NonRetryableError(message, driver_definitions_1.DriverErrorType.writeError, props);
148
+ /**
149
+ * @internal
150
+ */
151
+ const createWriteError = (message, props) => new NonRetryableError(message, driver_definitions_1.DriverErrorTypes.writeError, props);
99
152
  exports.createWriteError = createWriteError;
153
+ /**
154
+ * @internal
155
+ */
100
156
  function createGenericNetworkError(message, retryInfo, props) {
101
157
  if (retryInfo.retryAfterMs !== undefined && retryInfo.canRetry) {
102
158
  return new ThrottlingError(message, retryInfo.retryAfterMs / 1000, props);
@@ -108,14 +164,20 @@ exports.createGenericNetworkError = createGenericNetworkError;
108
164
  * Check if a connection error can be retried. Unless explicitly allowed, retry is disallowed.
109
165
  * I.e. asserts or unexpected exceptions in our code result in container failure.
110
166
  * @param error - The error to inspect for ability to retry
167
+ * @internal
111
168
  */
112
- const canRetryOnError = (error) => (error === null || error === void 0 ? void 0 : error.canRetry) === true;
169
+ const canRetryOnError = (error) => error?.canRetry === true;
113
170
  exports.canRetryOnError = canRetryOnError;
114
- /** Check retryAfterSeconds property on error */
115
- const getRetryDelaySecondsFromError = (error) => error === null || error === void 0 ? void 0 : error.retryAfterSeconds;
171
+ /**
172
+ * Check retryAfterSeconds property on error
173
+ * @internal
174
+ */
175
+ const getRetryDelaySecondsFromError = (error) => error?.retryAfterSeconds;
116
176
  exports.getRetryDelaySecondsFromError = getRetryDelaySecondsFromError;
117
- /** Check retryAfterSeconds property on error and convert to ms */
118
- const getRetryDelayFromError = (error) => (error === null || error === void 0 ? void 0 : error.retryAfterSeconds) !== undefined ?
119
- error.retryAfterSeconds * 1000 : undefined;
177
+ /**
178
+ * Check retryAfterSeconds property on error and convert to ms
179
+ * @internal
180
+ */
181
+ const getRetryDelayFromError = (error) => error?.retryAfterSeconds !== undefined ? error.retryAfterSeconds * 1000 : undefined;
120
182
  exports.getRetryDelayFromError = getRetryDelayFromError;
121
- //# sourceMappingURL=network.js.map
183
+ //# sourceMappingURL=network.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.cjs","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIThrottlingWarning,\n\tIDriverErrorBase,\n\tIAuthorizationError,\n\t// eslint-disable-next-line import/no-deprecated\n\tDriverErrorType,\n\tILocationRedirectionError,\n\tIResolvedUrl,\n\tDriverErrorTypes,\n} from \"@fluidframework/driver-definitions\";\nimport { ITelemetryProperties } from \"@fluidframework/core-interfaces\";\nimport { IFluidErrorBase, LoggingError } from \"@fluidframework/telemetry-utils\";\n\n/**\n * @internal\n */\nexport enum OnlineStatus {\n\tOffline,\n\tOnline,\n\tUnknown,\n}\n\n/**\n * It tells if we have local connection only - we might not have connection to web.\n * No solution for node.js (other than resolve dns names / ping specific sites)\n * Can also use window.addEventListener(\"online\" / \"offline\")\n * @internal\n */\nexport function isOnline(): OnlineStatus {\n\tif (\n\t\ttypeof navigator === \"object\" &&\n\t\tnavigator !== null &&\n\t\ttypeof navigator.onLine === \"boolean\"\n\t) {\n\t\treturn navigator.onLine ? OnlineStatus.Online : OnlineStatus.Offline;\n\t}\n\treturn OnlineStatus.Unknown;\n}\n\n/**\n * Telemetry props with driver-specific required properties\n * @internal\n */\nexport type DriverErrorTelemetryProps = ITelemetryProperties & {\n\tdriverVersion: string | undefined;\n};\n\n/**\n * Generic network error class.\n * @internal\n */\nexport class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.genericNetworkError;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly canRetry: boolean,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\n/**\n * FluidInvalidSchema error class.\n * @internal\n */\nexport class FluidInvalidSchemaError\n\textends LoggingError\n\timplements IDriverErrorBase, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.fluidInvalidSchema;\n\treadonly canRetry = false;\n\n\tconstructor(message: string, props: DriverErrorTelemetryProps) {\n\t\tsuper(message, props);\n\t}\n}\n\n/**\n * @internal\n */\nexport class DeltaStreamConnectionForbiddenError\n\textends LoggingError\n\timplements IDriverErrorBase, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\tstatic readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;\n\treadonly errorType = DeltaStreamConnectionForbiddenError.errorType;\n\treadonly canRetry = false;\n\treadonly storageOnlyReason: string | undefined;\n\n\tconstructor(message: string, props: DriverErrorTelemetryProps, storageOnlyReason?: string) {\n\t\tsuper(message, { ...props, statusCode: 400 });\n\t\tthis.storageOnlyReason = storageOnlyReason;\n\t}\n}\n\n/**\n * @internal\n */\nexport class AuthorizationError\n\textends LoggingError\n\timplements IAuthorizationError, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.authorizationError;\n\treadonly canRetry = false;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly claims: string | undefined,\n\t\treadonly tenantId: string | undefined,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\t// don't log claims or tenantId\n\t\tsuper(message, props, new Set([\"claims\", \"tenantId\"]));\n\t}\n}\n\n/**\n * @internal\n */\nexport class LocationRedirectionError\n\textends LoggingError\n\timplements ILocationRedirectionError, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.locationRedirection;\n\treadonly canRetry = false;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly redirectUrl: IResolvedUrl,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\t// do not log redirectURL\n\t\tsuper(message, props, new Set([\"redirectUrl\"]));\n\t}\n}\n\n/**\n * @internal\n */\nexport class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly errorType: T,\n\t\treadonly canRetry: boolean,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\n/**\n * @internal\n */\nexport class NonRetryableError<T extends string> extends NetworkErrorBasic<T> {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly errorType: T,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, errorType, false, props);\n\t}\n}\n\n/**\n * @internal\n */\nexport class RetryableError<T extends string> extends NetworkErrorBasic<T> {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly errorType: T,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, errorType, true, props);\n\t}\n}\n\n/**\n * Throttling error class - used to communicate all throttling errors\n * @internal\n */\nexport class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.throttlingError;\n\treadonly canRetry = true;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly retryAfterSeconds: number,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\n/**\n * @internal\n */\nexport const createWriteError = (message: string, props: DriverErrorTelemetryProps) =>\n\tnew NonRetryableError(message, DriverErrorTypes.writeError, props);\n\n/**\n * @internal\n */\nexport function createGenericNetworkError(\n\tmessage: string,\n\tretryInfo: { canRetry: boolean; retryAfterMs?: number },\n\tprops: DriverErrorTelemetryProps,\n): ThrottlingError | GenericNetworkError {\n\tif (retryInfo.retryAfterMs !== undefined && retryInfo.canRetry) {\n\t\treturn new ThrottlingError(message, retryInfo.retryAfterMs / 1000, props);\n\t}\n\treturn new GenericNetworkError(message, retryInfo.canRetry, props);\n}\n\n/**\n * Check if a connection error can be retried. Unless explicitly allowed, retry is disallowed.\n * I.e. asserts or unexpected exceptions in our code result in container failure.\n * @param error - The error to inspect for ability to retry\n * @internal\n */\nexport const canRetryOnError = (error: any): boolean => error?.canRetry === true;\n\n/**\n * Check retryAfterSeconds property on error\n * @internal\n */\nexport const getRetryDelaySecondsFromError = (error: any): number | undefined =>\n\terror?.retryAfterSeconds as number | undefined;\n\n/**\n * Check retryAfterSeconds property on error and convert to ms\n * @internal\n */\nexport const getRetryDelayFromError = (error: any): number | undefined =>\n\terror?.retryAfterSeconds !== undefined ? error.retryAfterSeconds * 1000 : undefined;\n"]}