@fluidframework/routerlicious-driver 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 (365) hide show
  1. package/.eslintrc.js +10 -12
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +156 -0
  4. package/README.md +39 -1
  5. package/api-extractor-lint.json +4 -0
  6. package/api-extractor.json +2 -2
  7. package/api-report/routerlicious-driver.api.md +108 -0
  8. package/dist/cache.cjs +30 -0
  9. package/dist/cache.cjs.map +1 -0
  10. package/dist/cache.d.ts +7 -0
  11. package/dist/cache.d.ts.map +1 -1
  12. package/dist/{definitions.js → contracts.cjs} +1 -1
  13. package/dist/contracts.cjs.map +1 -0
  14. package/dist/contracts.d.ts +42 -0
  15. package/dist/contracts.d.ts.map +1 -0
  16. package/dist/{createNewUtils.js → createNewUtils.cjs} +7 -5
  17. package/dist/createNewUtils.cjs.map +1 -0
  18. package/dist/createNewUtils.d.ts +1 -1
  19. package/dist/createNewUtils.d.ts.map +1 -1
  20. package/dist/{defaultTokenProvider.js → defaultTokenProvider.cjs} +2 -1
  21. package/dist/defaultTokenProvider.cjs.map +1 -0
  22. package/dist/defaultTokenProvider.d.ts +1 -0
  23. package/dist/defaultTokenProvider.d.ts.map +1 -1
  24. package/dist/definitions.cjs +7 -0
  25. package/dist/definitions.cjs.map +1 -0
  26. package/dist/definitions.d.ts.map +1 -1
  27. package/dist/deltaStorageService.cjs +122 -0
  28. package/dist/deltaStorageService.cjs.map +1 -0
  29. package/dist/deltaStorageService.d.ts +7 -6
  30. package/dist/deltaStorageService.d.ts.map +1 -1
  31. package/dist/{documentDeltaConnection.js → documentDeltaConnection.cjs} +8 -13
  32. package/dist/documentDeltaConnection.cjs.map +1 -0
  33. package/dist/documentDeltaConnection.d.ts +3 -4
  34. package/dist/documentDeltaConnection.d.ts.map +1 -1
  35. package/dist/{documentService.js → documentService.cjs} +61 -64
  36. package/dist/documentService.cjs.map +1 -0
  37. package/dist/documentService.d.ts +12 -4
  38. package/dist/documentService.d.ts.map +1 -1
  39. package/dist/{documentServiceFactory.js → documentServiceFactory.cjs} +87 -33
  40. package/dist/documentServiceFactory.cjs.map +1 -0
  41. package/dist/documentServiceFactory.d.ts +5 -3
  42. package/dist/documentServiceFactory.d.ts.map +1 -1
  43. package/dist/{documentStorageService.js → documentStorageService.cjs} +18 -16
  44. package/dist/documentStorageService.cjs.map +1 -0
  45. package/dist/documentStorageService.d.ts +4 -3
  46. package/dist/documentStorageService.d.ts.map +1 -1
  47. package/dist/errorUtils.cjs +87 -0
  48. package/dist/errorUtils.cjs.map +1 -0
  49. package/dist/errorUtils.d.ts +56 -10
  50. package/dist/errorUtils.d.ts.map +1 -1
  51. package/dist/gitManager.cjs +46 -0
  52. package/dist/gitManager.cjs.map +1 -0
  53. package/dist/gitManager.d.ts +27 -0
  54. package/dist/gitManager.d.ts.map +1 -0
  55. package/dist/historian.cjs +72 -0
  56. package/dist/historian.cjs.map +1 -0
  57. package/dist/historian.d.ts +34 -0
  58. package/dist/historian.d.ts.map +1 -0
  59. package/dist/index.cjs +19 -0
  60. package/dist/index.cjs.map +1 -0
  61. package/dist/index.d.ts +5 -8
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/mapWithExpiration.cjs +105 -0
  64. package/dist/mapWithExpiration.cjs.map +1 -0
  65. package/dist/mapWithExpiration.d.ts +34 -0
  66. package/dist/mapWithExpiration.d.ts.map +1 -0
  67. package/dist/{nullBlobStorageService.js → nullBlobStorageService.cjs} +5 -5
  68. package/dist/nullBlobStorageService.cjs.map +1 -0
  69. package/dist/nullBlobStorageService.d.ts.map +1 -1
  70. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  71. package/dist/packageVersion.cjs.map +1 -0
  72. package/dist/packageVersion.d.ts +1 -1
  73. package/dist/packageVersion.d.ts.map +1 -1
  74. package/dist/{policies.js → policies.cjs} +1 -1
  75. package/dist/policies.cjs.map +1 -0
  76. package/dist/policies.d.ts +22 -9
  77. package/dist/policies.d.ts.map +1 -1
  78. package/dist/r11sSnapshotParser.cjs +73 -0
  79. package/dist/r11sSnapshotParser.cjs.map +1 -0
  80. package/dist/r11sSnapshotParser.d.ts +14 -0
  81. package/dist/r11sSnapshotParser.d.ts.map +1 -0
  82. package/dist/restWrapper.cjs +249 -0
  83. package/dist/restWrapper.cjs.map +1 -0
  84. package/dist/restWrapper.d.ts +32 -12
  85. package/dist/restWrapper.d.ts.map +1 -1
  86. package/dist/restWrapperBase.cjs +89 -0
  87. package/dist/restWrapperBase.cjs.map +1 -0
  88. package/dist/restWrapperBase.d.ts +26 -0
  89. package/dist/restWrapperBase.d.ts.map +1 -0
  90. package/dist/retriableGitManager.cjs +40 -0
  91. package/dist/retriableGitManager.cjs.map +1 -0
  92. package/dist/retriableGitManager.d.ts +13 -23
  93. package/dist/retriableGitManager.d.ts.map +1 -1
  94. package/dist/routerlicious-driver-alpha.d.ts +92 -0
  95. package/dist/routerlicious-driver-beta.d.ts +98 -0
  96. package/dist/routerlicious-driver-public.d.ts +98 -0
  97. package/dist/routerlicious-driver-untrimmed.d.ts +261 -0
  98. package/dist/{shreddedSummaryDocumentStorageService.js → shreddedSummaryDocumentStorageService.cjs} +41 -34
  99. package/dist/shreddedSummaryDocumentStorageService.cjs.map +1 -0
  100. package/dist/shreddedSummaryDocumentStorageService.d.ts +6 -5
  101. package/dist/shreddedSummaryDocumentStorageService.d.ts.map +1 -1
  102. package/dist/storageContracts.cjs +7 -0
  103. package/dist/storageContracts.cjs.map +1 -0
  104. package/dist/storageContracts.d.ts +45 -0
  105. package/dist/storageContracts.d.ts.map +1 -0
  106. package/dist/summaryTreeUploadManager.cjs +110 -0
  107. package/dist/summaryTreeUploadManager.cjs.map +1 -0
  108. package/dist/summaryTreeUploadManager.d.ts +23 -0
  109. package/dist/summaryTreeUploadManager.d.ts.map +1 -0
  110. package/dist/{tokens.js → tokens.cjs} +1 -1
  111. package/dist/tokens.cjs.map +1 -0
  112. package/dist/tokens.d.ts +34 -5
  113. package/dist/tokens.d.ts.map +1 -1
  114. package/dist/treeUtils.cjs +107 -0
  115. package/dist/treeUtils.cjs.map +1 -0
  116. package/dist/treeUtils.d.ts +58 -0
  117. package/dist/treeUtils.d.ts.map +1 -0
  118. package/dist/tsdoc-metadata.json +11 -0
  119. package/dist/{urlUtils.js → urlUtils.cjs} +21 -25
  120. package/dist/urlUtils.cjs.map +1 -0
  121. package/dist/urlUtils.d.ts +2 -2
  122. package/dist/urlUtils.d.ts.map +1 -1
  123. package/dist/wholeSummaryDocumentStorageService.cjs +253 -0
  124. package/dist/wholeSummaryDocumentStorageService.cjs.map +1 -0
  125. package/dist/wholeSummaryDocumentStorageService.d.ts +10 -8
  126. package/dist/wholeSummaryDocumentStorageService.d.ts.map +1 -1
  127. package/dist/wholeSummaryUploadManager.cjs +37 -0
  128. package/dist/wholeSummaryUploadManager.cjs.map +1 -0
  129. package/dist/wholeSummaryUploadManager.d.ts +16 -0
  130. package/dist/wholeSummaryUploadManager.d.ts.map +1 -0
  131. package/lib/{cache.d.ts → cache.d.mts} +7 -0
  132. package/lib/cache.d.mts.map +1 -0
  133. package/lib/cache.mjs +25 -0
  134. package/lib/cache.mjs.map +1 -0
  135. package/lib/contracts.d.mts +42 -0
  136. package/lib/contracts.d.mts.map +1 -0
  137. package/lib/{definitions.js → contracts.mjs} +1 -1
  138. package/lib/contracts.mjs.map +1 -0
  139. package/lib/{createNewUtils.d.ts → createNewUtils.d.mts} +1 -1
  140. package/lib/{createNewUtils.d.ts.map → createNewUtils.d.mts.map} +1 -1
  141. package/lib/{createNewUtils.js → createNewUtils.mjs} +7 -5
  142. package/lib/createNewUtils.mjs.map +1 -0
  143. package/lib/{defaultTokenProvider.d.ts → defaultTokenProvider.d.mts} +2 -1
  144. package/lib/defaultTokenProvider.d.mts.map +1 -0
  145. package/lib/{defaultTokenProvider.js → defaultTokenProvider.mjs} +2 -1
  146. package/lib/defaultTokenProvider.mjs.map +1 -0
  147. package/lib/definitions.d.mts.map +1 -0
  148. package/lib/definitions.mjs +6 -0
  149. package/{dist/definitions.js.map → lib/definitions.mjs.map} +1 -1
  150. package/lib/{deltaStorageService.d.ts → deltaStorageService.d.mts} +8 -7
  151. package/lib/deltaStorageService.d.mts.map +1 -0
  152. package/lib/deltaStorageService.mjs +117 -0
  153. package/lib/deltaStorageService.mjs.map +1 -0
  154. package/lib/{documentDeltaConnection.d.ts → documentDeltaConnection.d.mts} +3 -4
  155. package/lib/documentDeltaConnection.d.mts.map +1 -0
  156. package/lib/{documentDeltaConnection.js → documentDeltaConnection.mjs} +8 -13
  157. package/lib/documentDeltaConnection.mjs.map +1 -0
  158. package/lib/{documentService.d.ts → documentService.d.mts} +16 -8
  159. package/lib/documentService.d.mts.map +1 -0
  160. package/lib/{documentService.js → documentService.mjs} +60 -44
  161. package/lib/documentService.mjs.map +1 -0
  162. package/lib/{documentServiceFactory.d.ts → documentServiceFactory.d.mts} +7 -5
  163. package/lib/documentServiceFactory.d.mts.map +1 -0
  164. package/lib/{documentServiceFactory.js → documentServiceFactory.mjs} +88 -34
  165. package/lib/documentServiceFactory.mjs.map +1 -0
  166. package/lib/{documentStorageService.d.ts → documentStorageService.d.mts} +7 -6
  167. package/lib/documentStorageService.d.mts.map +1 -0
  168. package/lib/{documentStorageService.js → documentStorageService.mjs} +19 -17
  169. package/lib/documentStorageService.mjs.map +1 -0
  170. package/lib/errorUtils.d.mts +93 -0
  171. package/lib/errorUtils.d.mts.map +1 -0
  172. package/lib/errorUtils.mjs +81 -0
  173. package/lib/errorUtils.mjs.map +1 -0
  174. package/lib/gitManager.d.mts +27 -0
  175. package/lib/gitManager.d.mts.map +1 -0
  176. package/lib/gitManager.mjs +42 -0
  177. package/lib/gitManager.mjs.map +1 -0
  178. package/lib/historian.d.mts +34 -0
  179. package/lib/historian.d.mts.map +1 -0
  180. package/lib/historian.mjs +67 -0
  181. package/lib/historian.mjs.map +1 -0
  182. package/lib/index.d.mts +10 -0
  183. package/lib/index.d.mts.map +1 -0
  184. package/lib/index.mjs +8 -0
  185. package/lib/index.mjs.map +1 -0
  186. package/lib/mapWithExpiration.d.mts +34 -0
  187. package/lib/mapWithExpiration.d.mts.map +1 -0
  188. package/lib/mapWithExpiration.mjs +101 -0
  189. package/lib/mapWithExpiration.mjs.map +1 -0
  190. package/lib/nullBlobStorageService.d.mts.map +1 -0
  191. package/lib/{nullBlobStorageService.js → nullBlobStorageService.mjs} +5 -5
  192. package/lib/nullBlobStorageService.mjs.map +1 -0
  193. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
  194. package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +1 -1
  195. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  196. package/lib/packageVersion.mjs.map +1 -0
  197. package/lib/{policies.d.ts → policies.d.mts} +22 -9
  198. package/lib/policies.d.mts.map +1 -0
  199. package/lib/{policies.js → policies.mjs} +1 -1
  200. package/lib/policies.mjs.map +1 -0
  201. package/lib/r11sSnapshotParser.d.mts +14 -0
  202. package/lib/r11sSnapshotParser.d.mts.map +1 -0
  203. package/lib/r11sSnapshotParser.mjs +69 -0
  204. package/lib/r11sSnapshotParser.mjs.map +1 -0
  205. package/lib/restWrapper.d.mts +53 -0
  206. package/lib/restWrapper.d.mts.map +1 -0
  207. package/lib/restWrapper.mjs +236 -0
  208. package/lib/restWrapper.mjs.map +1 -0
  209. package/lib/restWrapperBase.d.mts +26 -0
  210. package/lib/restWrapperBase.d.mts.map +1 -0
  211. package/lib/restWrapperBase.mjs +84 -0
  212. package/lib/restWrapperBase.mjs.map +1 -0
  213. package/lib/retriableGitManager.d.mts +24 -0
  214. package/lib/retriableGitManager.d.mts.map +1 -0
  215. package/lib/retriableGitManager.mjs +36 -0
  216. package/lib/retriableGitManager.mjs.map +1 -0
  217. package/lib/routerlicious-driver-alpha.d.mts +92 -0
  218. package/lib/routerlicious-driver-beta.d.mts +98 -0
  219. package/lib/routerlicious-driver-public.d.mts +98 -0
  220. package/lib/routerlicious-driver-untrimmed.d.mts +261 -0
  221. package/lib/{shreddedSummaryDocumentStorageService.d.ts → shreddedSummaryDocumentStorageService.d.mts} +9 -8
  222. package/lib/shreddedSummaryDocumentStorageService.d.mts.map +1 -0
  223. package/lib/{shreddedSummaryDocumentStorageService.js → shreddedSummaryDocumentStorageService.mjs} +41 -34
  224. package/lib/shreddedSummaryDocumentStorageService.mjs.map +1 -0
  225. package/lib/storageContracts.d.mts +45 -0
  226. package/lib/storageContracts.d.mts.map +1 -0
  227. package/lib/storageContracts.mjs +6 -0
  228. package/lib/storageContracts.mjs.map +1 -0
  229. package/lib/summaryTreeUploadManager.d.mts +23 -0
  230. package/lib/summaryTreeUploadManager.d.mts.map +1 -0
  231. package/lib/summaryTreeUploadManager.mjs +106 -0
  232. package/lib/summaryTreeUploadManager.mjs.map +1 -0
  233. package/lib/{tokens.d.ts → tokens.d.mts} +34 -5
  234. package/lib/tokens.d.mts.map +1 -0
  235. package/lib/{tokens.js → tokens.mjs} +1 -1
  236. package/lib/tokens.mjs.map +1 -0
  237. package/lib/treeUtils.d.mts +58 -0
  238. package/lib/treeUtils.d.mts.map +1 -0
  239. package/lib/treeUtils.mjs +100 -0
  240. package/lib/treeUtils.mjs.map +1 -0
  241. package/lib/{urlUtils.d.ts → urlUtils.d.mts} +2 -2
  242. package/lib/urlUtils.d.mts.map +1 -0
  243. package/lib/urlUtils.mjs +38 -0
  244. package/lib/urlUtils.mjs.map +1 -0
  245. package/lib/{wholeSummaryDocumentStorageService.d.ts → wholeSummaryDocumentStorageService.d.mts} +12 -10
  246. package/lib/wholeSummaryDocumentStorageService.d.mts.map +1 -0
  247. package/lib/wholeSummaryDocumentStorageService.mjs +249 -0
  248. package/lib/wholeSummaryDocumentStorageService.mjs.map +1 -0
  249. package/lib/wholeSummaryUploadManager.d.mts +16 -0
  250. package/lib/wholeSummaryUploadManager.d.mts.map +1 -0
  251. package/lib/wholeSummaryUploadManager.mjs +33 -0
  252. package/lib/wholeSummaryUploadManager.mjs.map +1 -0
  253. package/package.json +104 -68
  254. package/prettier.config.cjs +8 -0
  255. package/src/cache.ts +25 -9
  256. package/src/contracts.ts +60 -0
  257. package/src/createNewUtils.ts +26 -24
  258. package/src/defaultTokenProvider.ts +14 -15
  259. package/src/definitions.ts +2 -2
  260. package/src/deltaStorageService.ts +145 -91
  261. package/src/documentDeltaConnection.ts +54 -52
  262. package/src/documentService.ts +272 -242
  263. package/src/documentServiceFactory.ts +338 -237
  264. package/src/documentStorageService.ts +92 -84
  265. package/src/errorUtils.ts +117 -79
  266. package/src/gitManager.ts +67 -0
  267. package/src/historian.ts +121 -0
  268. package/src/index.ts +15 -8
  269. package/src/mapWithExpiration.ts +124 -0
  270. package/src/nullBlobStorageService.ts +24 -21
  271. package/src/packageVersion.ts +1 -1
  272. package/src/policies.ts +51 -38
  273. package/src/r11sSnapshotParser.ts +82 -0
  274. package/src/restWrapper.ts +400 -216
  275. package/src/restWrapperBase.ts +146 -0
  276. package/src/retriableGitManager.ts +76 -153
  277. package/src/shreddedSummaryDocumentStorageService.ts +214 -195
  278. package/src/storageContracts.ts +63 -0
  279. package/src/summaryTreeUploadManager.ts +155 -0
  280. package/src/tokens.ts +74 -39
  281. package/src/treeUtils.ts +138 -0
  282. package/src/urlUtils.ts +27 -28
  283. package/src/wholeSummaryDocumentStorageService.ts +352 -252
  284. package/src/wholeSummaryUploadManager.ts +64 -0
  285. package/tsc-multi.test.json +4 -0
  286. package/tsconfig.json +10 -13
  287. package/dist/cache.js +0 -20
  288. package/dist/cache.js.map +0 -1
  289. package/dist/createNewUtils.js.map +0 -1
  290. package/dist/defaultTokenProvider.js.map +0 -1
  291. package/dist/deltaStorageService.js +0 -82
  292. package/dist/deltaStorageService.js.map +0 -1
  293. package/dist/documentDeltaConnection.js.map +0 -1
  294. package/dist/documentService.js.map +0 -1
  295. package/dist/documentServiceFactory.js.map +0 -1
  296. package/dist/documentStorageService.js.map +0 -1
  297. package/dist/errorUtils.js +0 -56
  298. package/dist/errorUtils.js.map +0 -1
  299. package/dist/index.js +0 -25
  300. package/dist/index.js.map +0 -1
  301. package/dist/nullBlobStorageService.js.map +0 -1
  302. package/dist/packageVersion.js.map +0 -1
  303. package/dist/policies.js.map +0 -1
  304. package/dist/restWrapper.js +0 -153
  305. package/dist/restWrapper.js.map +0 -1
  306. package/dist/retriableGitManager.js +0 -76
  307. package/dist/retriableGitManager.js.map +0 -1
  308. package/dist/shreddedSummaryDocumentStorageService.js.map +0 -1
  309. package/dist/tokens.js.map +0 -1
  310. package/dist/urlUtils.js.map +0 -1
  311. package/dist/wholeSummaryDocumentStorageService.js +0 -191
  312. package/dist/wholeSummaryDocumentStorageService.js.map +0 -1
  313. package/lib/cache.d.ts.map +0 -1
  314. package/lib/cache.js +0 -16
  315. package/lib/cache.js.map +0 -1
  316. package/lib/createNewUtils.js.map +0 -1
  317. package/lib/defaultTokenProvider.d.ts.map +0 -1
  318. package/lib/defaultTokenProvider.js.map +0 -1
  319. package/lib/definitions.d.ts.map +0 -1
  320. package/lib/definitions.js.map +0 -1
  321. package/lib/deltaStorageService.d.ts.map +0 -1
  322. package/lib/deltaStorageService.js +0 -77
  323. package/lib/deltaStorageService.js.map +0 -1
  324. package/lib/documentDeltaConnection.d.ts.map +0 -1
  325. package/lib/documentDeltaConnection.js.map +0 -1
  326. package/lib/documentService.d.ts.map +0 -1
  327. package/lib/documentService.js.map +0 -1
  328. package/lib/documentServiceFactory.d.ts.map +0 -1
  329. package/lib/documentServiceFactory.js.map +0 -1
  330. package/lib/documentStorageService.d.ts.map +0 -1
  331. package/lib/documentStorageService.js.map +0 -1
  332. package/lib/errorUtils.d.ts +0 -47
  333. package/lib/errorUtils.d.ts.map +0 -1
  334. package/lib/errorUtils.js +0 -50
  335. package/lib/errorUtils.js.map +0 -1
  336. package/lib/index.d.ts +0 -13
  337. package/lib/index.d.ts.map +0 -1
  338. package/lib/index.js +0 -13
  339. package/lib/index.js.map +0 -1
  340. package/lib/nullBlobStorageService.d.ts.map +0 -1
  341. package/lib/nullBlobStorageService.js.map +0 -1
  342. package/lib/packageVersion.js.map +0 -1
  343. package/lib/policies.d.ts.map +0 -1
  344. package/lib/policies.js.map +0 -1
  345. package/lib/restWrapper.d.ts +0 -33
  346. package/lib/restWrapper.d.ts.map +0 -1
  347. package/lib/restWrapper.js +0 -144
  348. package/lib/restWrapper.js.map +0 -1
  349. package/lib/retriableGitManager.d.ts +0 -34
  350. package/lib/retriableGitManager.d.ts.map +0 -1
  351. package/lib/retriableGitManager.js +0 -72
  352. package/lib/retriableGitManager.js.map +0 -1
  353. package/lib/shreddedSummaryDocumentStorageService.d.ts.map +0 -1
  354. package/lib/shreddedSummaryDocumentStorageService.js.map +0 -1
  355. package/lib/tokens.d.ts.map +0 -1
  356. package/lib/tokens.js.map +0 -1
  357. package/lib/urlUtils.d.ts.map +0 -1
  358. package/lib/urlUtils.js +0 -42
  359. package/lib/urlUtils.js.map +0 -1
  360. package/lib/wholeSummaryDocumentStorageService.d.ts.map +0 -1
  361. package/lib/wholeSummaryDocumentStorageService.js +0 -187
  362. package/lib/wholeSummaryDocumentStorageService.js.map +0 -1
  363. package/tsconfig.esnext.json +0 -7
  364. /package/lib/{definitions.d.ts → definitions.d.mts} +0 -0
  365. /package/lib/{nullBlobStorageService.d.ts → nullBlobStorageService.d.mts} +0 -0
@@ -0,0 +1,40 @@
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.RetriableGitManager = void 0;
8
+ const driver_utils_1 = require("@fluidframework/driver-utils");
9
+ class RetriableGitManager {
10
+ constructor(internalGitManager, logger) {
11
+ this.internalGitManager = internalGitManager;
12
+ this.logger = logger;
13
+ }
14
+ async getCommits(sha, count) {
15
+ return this.runWithRetry(async () => this.internalGitManager.getCommits(sha, count), "gitManager_getCommits");
16
+ }
17
+ async getTree(root, recursive) {
18
+ return this.runWithRetry(async () => this.internalGitManager.getTree(root, recursive), "gitManager_getTree");
19
+ }
20
+ async getBlob(sha) {
21
+ return this.runWithRetry(async () => this.internalGitManager.getBlob(sha), "gitManager_getBlob");
22
+ }
23
+ async createBlob(content, encoding) {
24
+ return this.runWithRetry(async () => this.internalGitManager.createBlob(content, encoding), "gitManager_createBlob");
25
+ }
26
+ async createGitTree(params) {
27
+ return this.runWithRetry(async () => this.internalGitManager.createGitTree(params), "gitManager_createGitTree");
28
+ }
29
+ async createSummary(summary) {
30
+ return this.runWithRetry(async () => this.internalGitManager.createSummary(summary), "gitManager_createSummary");
31
+ }
32
+ async getSnapshot(sha) {
33
+ return this.runWithRetry(async () => this.internalGitManager.getSnapshot(sha), "gitManager_getSummary");
34
+ }
35
+ async runWithRetry(api, callName) {
36
+ return (0, driver_utils_1.runWithRetry)(api, callName, this.logger, {});
37
+ }
38
+ }
39
+ exports.RetriableGitManager = RetriableGitManager;
40
+ //# sourceMappingURL=retriableGitManager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retriableGitManager.cjs","sourceRoot":"","sources":["../src/retriableGitManager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAOH,+DAA4D;AAM5D,MAAa,mBAAmB;IAC/B,YACkB,kBAA+B,EAC/B,MAA2B;QAD3B,uBAAkB,GAAlB,kBAAkB,CAAa;QAC/B,WAAM,GAAN,MAAM,CAAqB;IAC1C,CAAC;IAEG,KAAK,CAAC,UAAU,CACtB,GAAW,EACX,KAAa;QAEb,OAAO,IAAI,CAAC,YAAY,CACvB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,EAC1D,uBAAuB,CACvB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,SAAkB;QACpD,OAAO,IAAI,CAAC,YAAY,CACvB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAC5D,oBAAoB,CACpB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,YAAY,CACvB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAChD,oBAAoB,CACpB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU,CACtB,OAAe,EACf,QAAgB;QAEhB,OAAO,IAAI,CAAC,YAAY,CACvB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EACjE,uBAAuB,CACvB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAA6B;QACvD,OAAO,IAAI,CAAC,YAAY,CACvB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,EACzD,0BAA0B,CAC1B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CACzB,OAA6B;QAE7B,OAAO,IAAI,CAAC,YAAY,CACvB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,EAC1D,0BAA0B,CAC1B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,GAAW;QACnC,OAAO,IAAI,CAAC,YAAY,CACvB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,EACpD,uBAAuB,CACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAI,GAAqB,EAAE,QAAgB;QACpE,OAAO,IAAA,2BAAY,EAClB,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,MAAM,EACX,EAAE,CACF,CAAC;IACH,CAAC;CACD;AAvED,kDAuEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type * as git from \"@fluidframework/gitresources\";\nimport {\n\tIWholeSummaryPayload,\n\tIWriteSummaryResponse,\n} from \"@fluidframework/server-services-client\";\nimport { runWithRetry } from \"@fluidframework/driver-utils\";\nimport { ITelemetryLoggerExt } from \"@fluidframework/telemetry-utils\";\nimport { IGitManager } from \"./storageContracts\";\nimport { IR11sResponse } from \"./restWrapper\";\nimport { IWholeFlatSnapshot } from \"./contracts\";\n\nexport class RetriableGitManager implements IGitManager {\n\tconstructor(\n\t\tprivate readonly internalGitManager: IGitManager,\n\t\tprivate readonly logger: ITelemetryLoggerExt,\n\t) {}\n\n\tpublic async getCommits(\n\t\tsha: string,\n\t\tcount: number,\n\t): Promise<IR11sResponse<git.ICommitDetails[]>> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getCommits(sha, count),\n\t\t\t\"gitManager_getCommits\",\n\t\t);\n\t}\n\n\tpublic async getTree(root: string, recursive: boolean): Promise<IR11sResponse<git.ITree>> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getTree(root, recursive),\n\t\t\t\"gitManager_getTree\",\n\t\t);\n\t}\n\n\tpublic async getBlob(sha: string): Promise<IR11sResponse<git.IBlob>> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getBlob(sha),\n\t\t\t\"gitManager_getBlob\",\n\t\t);\n\t}\n\n\tpublic async createBlob(\n\t\tcontent: string,\n\t\tencoding: string,\n\t): Promise<IR11sResponse<git.ICreateBlobResponse>> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.createBlob(content, encoding),\n\t\t\t\"gitManager_createBlob\",\n\t\t);\n\t}\n\n\tpublic async createGitTree(params: git.ICreateTreeParams): Promise<IR11sResponse<git.ITree>> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.createGitTree(params),\n\t\t\t\"gitManager_createGitTree\",\n\t\t);\n\t}\n\n\tpublic async createSummary(\n\t\tsummary: IWholeSummaryPayload,\n\t): Promise<IR11sResponse<IWriteSummaryResponse>> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.createSummary(summary),\n\t\t\t\"gitManager_createSummary\",\n\t\t);\n\t}\n\n\tpublic async getSnapshot(sha: string): Promise<IR11sResponse<IWholeFlatSnapshot>> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getSnapshot(sha),\n\t\t\t\"gitManager_getSummary\",\n\t\t);\n\t}\n\n\tprivate async runWithRetry<T>(api: () => Promise<T>, callName: string): Promise<T> {\n\t\treturn runWithRetry(\n\t\t\tapi,\n\t\t\tcallName,\n\t\t\tthis.logger,\n\t\t\t{}, // progress\n\t\t);\n\t}\n}\n"]}
@@ -3,32 +3,22 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import type * as git from "@fluidframework/gitresources";
6
- import type * as protocol from "@fluidframework/protocol-definitions";
7
- import { IGitManager, IWholeFlatSummary, IWholeSummaryPayload, IWriteSummaryResponse } from "@fluidframework/server-services-client";
8
- import { ITelemetryLogger } from "@fluidframework/common-definitions";
6
+ import { IWholeSummaryPayload, IWriteSummaryResponse } from "@fluidframework/server-services-client";
7
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
8
+ import { IGitManager } from "./storageContracts";
9
+ import { IR11sResponse } from "./restWrapper";
10
+ import { IWholeFlatSnapshot } from "./contracts";
9
11
  export declare class RetriableGitManager implements IGitManager {
10
12
  private readonly internalGitManager;
11
13
  private readonly logger;
12
- constructor(internalGitManager: IGitManager, logger: ITelemetryLogger);
13
- getHeader(id: string, sha: string): Promise<protocol.ISnapshotTree>;
14
- getFullTree(sha: string): Promise<any>;
15
- getCommit(sha: string): Promise<git.ICommit>;
16
- getCommits(sha: string, count: number): Promise<git.ICommitDetails[]>;
17
- getTree(root: string, recursive: boolean): Promise<git.ITree>;
18
- getBlob(sha: string): Promise<git.IBlob>;
19
- getRawUrl(sha: string): string;
20
- getContent(commit: string, path: string): Promise<git.IBlob>;
21
- createBlob(content: string, encoding: string): Promise<git.ICreateBlobResponse>;
22
- createGitTree(params: git.ICreateTreeParams): Promise<git.ITree>;
23
- createTree(files: protocol.ITree): Promise<git.ITree>;
24
- createCommit(commit: git.ICreateCommitParams): Promise<git.ICommit>;
25
- getRef(ref: string): Promise<git.IRef>;
26
- createRef(branch: string, sha: string): Promise<git.IRef>;
27
- upsertRef(branch: string, commitSha: string): Promise<git.IRef>;
28
- write(branch: string, inputTree: protocol.ITree, parents: string[], message: string): Promise<git.ICommit>;
29
- createSummary(summary: IWholeSummaryPayload): Promise<IWriteSummaryResponse>;
30
- deleteSummary(softDelete: boolean): Promise<void>;
31
- getSummary(sha: string): Promise<IWholeFlatSummary>;
14
+ constructor(internalGitManager: IGitManager, logger: ITelemetryLoggerExt);
15
+ getCommits(sha: string, count: number): Promise<IR11sResponse<git.ICommitDetails[]>>;
16
+ getTree(root: string, recursive: boolean): Promise<IR11sResponse<git.ITree>>;
17
+ getBlob(sha: string): Promise<IR11sResponse<git.IBlob>>;
18
+ createBlob(content: string, encoding: string): Promise<IR11sResponse<git.ICreateBlobResponse>>;
19
+ createGitTree(params: git.ICreateTreeParams): Promise<IR11sResponse<git.ITree>>;
20
+ createSummary(summary: IWholeSummaryPayload): Promise<IR11sResponse<IWriteSummaryResponse>>;
21
+ getSnapshot(sha: string): Promise<IR11sResponse<IWholeFlatSnapshot>>;
32
22
  private runWithRetry;
33
23
  }
34
24
  //# sourceMappingURL=retriableGitManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retriableGitManager.d.ts","sourceRoot":"","sources":["../src/retriableGitManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACtE,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,qBAAa,mBAAoB,YAAW,WAAW;IAE/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,kBAAkB,EAAE,WAAW,EAC/B,MAAM,EAAE,gBAAgB;IAIhC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAOnE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAOtC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAO5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAOrE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAO7D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAO9C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAO5D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAO/E,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAOhE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAOrD,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAOnE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAOtC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAOzD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAO/D,KAAK,CAAC,MAAM,EAAE,MAAM,EAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK,EACzB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAO7B,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAO5E,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAOlD,YAAY;CAQ7B"}
1
+ {"version":3,"file":"retriableGitManager.d.ts","sourceRoot":"","sources":["../src/retriableGitManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,mBAAoB,YAAW,WAAW;IAErD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,kBAAkB,EAAE,WAAW,EAC/B,MAAM,EAAE,mBAAmB;IAGhC,UAAU,CACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAOlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAO5E,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAOvD,UAAU,CACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAOrC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAO/E,aAAa,CACzB,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAOnC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAOnE,YAAY;CAQ1B"}
@@ -0,0 +1,92 @@
1
+ import { IDocumentService } from '@fluidframework/driver-definitions';
2
+ import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
3
+ import { IResolvedUrl } from '@fluidframework/driver-definitions';
4
+ import { ISession } from '@fluidframework/server-services-client';
5
+ import { ISummaryTree } from '@fluidframework/protocol-definitions';
6
+ import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
7
+ import { ITokenClaims } from '@fluidframework/protocol-definitions';
8
+
9
+ /* Excluded from this release type: DefaultTokenProvider */
10
+
11
+ /* Excluded from this release type: DocumentPostCreateError */
12
+
13
+ /* Excluded from this release type: IRouterliciousDriverPolicies */
14
+
15
+ /**
16
+ * Abstracts the token fetching mechanism for a hosting application.
17
+ * The hosting application is responsible for providing an implementation.
18
+ * @public
19
+ */
20
+ export declare interface ITokenProvider {
21
+ /**
22
+ * Fetches the orderer token from host.
23
+ *
24
+ * @param tenantId - Tenant ID.
25
+ * @param documentId - Optional. Document ID is only required for document-scoped requests.
26
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
27
+ * This likely indicates that some previous request failed authorization due to an expired token,
28
+ * and so a fresh token is required.
29
+ *
30
+ * Default: `false`.
31
+ *
32
+ * NOTE: This parameter will be made required in the future.
33
+ */
34
+ fetchOrdererToken(tenantId: string, documentId?: string, refresh?: boolean): Promise<ITokenResponse>;
35
+ /**
36
+ * Fetches the storage token from host.
37
+ *
38
+ * @param tenantId - Tenant ID.
39
+ * @param documentId - Document ID.
40
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
41
+ * This likely indicates that some previous request failed authorization due to an expired token,
42
+ * and so a fresh token is required.
43
+ *
44
+ * Default: `false`.
45
+ *
46
+ * NOTE: This parameter will be made required in the future.
47
+ */
48
+ fetchStorageToken(tenantId: string, documentId: string, refresh?: boolean): Promise<ITokenResponse>;
49
+ /**
50
+ * A callback triggered directly after creating the document. In this callback the client has the opportunity, to
51
+ * verify against an authorization service, if the user who claims to create the document is the same user who
52
+ * created it.
53
+ *
54
+ * @remarks Notes:
55
+ *
56
+ * * Using the callback may have performance impact on the document creation process.
57
+ *
58
+ * * Any exceptions thrown in the callback would fail the creation workflow
59
+ * (see {@link RouterliciousDocumentServiceFactory.createContainer} for more details).
60
+ *
61
+ * @param documentId - Document ID.
62
+ * @param creationToken - A special token that doesn't provide any kind of access, but it has the user's payload
63
+ * and document id. It can be used to validate the identity of the document creator.
64
+ */
65
+ documentPostCreateCallback?(documentId: string, creationToken: string): Promise<void>;
66
+ }
67
+
68
+ /**
69
+ * @public
70
+ */
71
+ export declare interface ITokenResponse {
72
+ /**
73
+ * {@link https://jwt.io/introduction/ | JSON Web Token (JWT)} value.
74
+ */
75
+ jwt: string;
76
+ /**
77
+ * A flag indicating whether token was obtained from local cache.
78
+ *
79
+ * @remarks `undefined` indicates that the source of the token could not be determined.
80
+ */
81
+ fromCache?: boolean;
82
+ }
83
+
84
+ /* Excluded from this release type: ITokenService */
85
+
86
+ /* Excluded from this release type: RouterliciousDocumentServiceFactory */
87
+
88
+ /* Excluded from this release type: RouterliciousErrorType */
89
+
90
+ /* Excluded from this release type: RouterliciousErrorTypes */
91
+
92
+ export { }
@@ -0,0 +1,98 @@
1
+ import { IDocumentService } from '@fluidframework/driver-definitions';
2
+ import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
3
+ import { IResolvedUrl } from '@fluidframework/driver-definitions';
4
+ import { ISession } from '@fluidframework/server-services-client';
5
+ import { ISummaryTree } from '@fluidframework/protocol-definitions';
6
+ import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
7
+ import { ITokenClaims } from '@fluidframework/protocol-definitions';
8
+
9
+ /* Excluded from this release type: DefaultTokenProvider */
10
+
11
+ /* Excluded from this release type: DocumentPostCreateError */
12
+
13
+ /* Excluded from this release type: IDocumentService */
14
+
15
+ /* Excluded from this release type: IDocumentServiceFactory */
16
+
17
+ /* Excluded from this release type: IResolvedUrl */
18
+
19
+ /* Excluded from this release type: IRouterliciousDriverPolicies */
20
+
21
+ /**
22
+ * Abstracts the token fetching mechanism for a hosting application.
23
+ * The hosting application is responsible for providing an implementation.
24
+ * @public
25
+ */
26
+ export declare interface ITokenProvider {
27
+ /**
28
+ * Fetches the orderer token from host.
29
+ *
30
+ * @param tenantId - Tenant ID.
31
+ * @param documentId - Optional. Document ID is only required for document-scoped requests.
32
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
33
+ * This likely indicates that some previous request failed authorization due to an expired token,
34
+ * and so a fresh token is required.
35
+ *
36
+ * Default: `false`.
37
+ *
38
+ * NOTE: This parameter will be made required in the future.
39
+ */
40
+ fetchOrdererToken(tenantId: string, documentId?: string, refresh?: boolean): Promise<ITokenResponse>;
41
+ /**
42
+ * Fetches the storage token from host.
43
+ *
44
+ * @param tenantId - Tenant ID.
45
+ * @param documentId - Document ID.
46
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
47
+ * This likely indicates that some previous request failed authorization due to an expired token,
48
+ * and so a fresh token is required.
49
+ *
50
+ * Default: `false`.
51
+ *
52
+ * NOTE: This parameter will be made required in the future.
53
+ */
54
+ fetchStorageToken(tenantId: string, documentId: string, refresh?: boolean): Promise<ITokenResponse>;
55
+ /**
56
+ * A callback triggered directly after creating the document. In this callback the client has the opportunity, to
57
+ * verify against an authorization service, if the user who claims to create the document is the same user who
58
+ * created it.
59
+ *
60
+ * @remarks Notes:
61
+ *
62
+ * * Using the callback may have performance impact on the document creation process.
63
+ *
64
+ * * Any exceptions thrown in the callback would fail the creation workflow
65
+ * (see {@link RouterliciousDocumentServiceFactory.createContainer} for more details).
66
+ *
67
+ * @param documentId - Document ID.
68
+ * @param creationToken - A special token that doesn't provide any kind of access, but it has the user's payload
69
+ * and document id. It can be used to validate the identity of the document creator.
70
+ */
71
+ documentPostCreateCallback?(documentId: string, creationToken: string): Promise<void>;
72
+ }
73
+
74
+ /**
75
+ * @public
76
+ */
77
+ export declare interface ITokenResponse {
78
+ /**
79
+ * {@link https://jwt.io/introduction/ | JSON Web Token (JWT)} value.
80
+ */
81
+ jwt: string;
82
+ /**
83
+ * A flag indicating whether token was obtained from local cache.
84
+ *
85
+ * @remarks `undefined` indicates that the source of the token could not be determined.
86
+ */
87
+ fromCache?: boolean;
88
+ }
89
+
90
+ /* Excluded from this release type: ITokenService */
91
+
92
+ /* Excluded from this release type: RouterliciousDocumentServiceFactory */
93
+
94
+ /* Excluded from this release type: RouterliciousErrorType */
95
+
96
+ /* Excluded from this release type: RouterliciousErrorTypes */
97
+
98
+ export { }
@@ -0,0 +1,98 @@
1
+ import { IDocumentService } from '@fluidframework/driver-definitions';
2
+ import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
3
+ import { IResolvedUrl } from '@fluidframework/driver-definitions';
4
+ import { ISession } from '@fluidframework/server-services-client';
5
+ import { ISummaryTree } from '@fluidframework/protocol-definitions';
6
+ import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
7
+ import { ITokenClaims } from '@fluidframework/protocol-definitions';
8
+
9
+ /* Excluded from this release type: DefaultTokenProvider */
10
+
11
+ /* Excluded from this release type: DocumentPostCreateError */
12
+
13
+ /* Excluded from this release type: IDocumentService */
14
+
15
+ /* Excluded from this release type: IDocumentServiceFactory */
16
+
17
+ /* Excluded from this release type: IResolvedUrl */
18
+
19
+ /* Excluded from this release type: IRouterliciousDriverPolicies */
20
+
21
+ /**
22
+ * Abstracts the token fetching mechanism for a hosting application.
23
+ * The hosting application is responsible for providing an implementation.
24
+ * @public
25
+ */
26
+ export declare interface ITokenProvider {
27
+ /**
28
+ * Fetches the orderer token from host.
29
+ *
30
+ * @param tenantId - Tenant ID.
31
+ * @param documentId - Optional. Document ID is only required for document-scoped requests.
32
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
33
+ * This likely indicates that some previous request failed authorization due to an expired token,
34
+ * and so a fresh token is required.
35
+ *
36
+ * Default: `false`.
37
+ *
38
+ * NOTE: This parameter will be made required in the future.
39
+ */
40
+ fetchOrdererToken(tenantId: string, documentId?: string, refresh?: boolean): Promise<ITokenResponse>;
41
+ /**
42
+ * Fetches the storage token from host.
43
+ *
44
+ * @param tenantId - Tenant ID.
45
+ * @param documentId - Document ID.
46
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
47
+ * This likely indicates that some previous request failed authorization due to an expired token,
48
+ * and so a fresh token is required.
49
+ *
50
+ * Default: `false`.
51
+ *
52
+ * NOTE: This parameter will be made required in the future.
53
+ */
54
+ fetchStorageToken(tenantId: string, documentId: string, refresh?: boolean): Promise<ITokenResponse>;
55
+ /**
56
+ * A callback triggered directly after creating the document. In this callback the client has the opportunity, to
57
+ * verify against an authorization service, if the user who claims to create the document is the same user who
58
+ * created it.
59
+ *
60
+ * @remarks Notes:
61
+ *
62
+ * * Using the callback may have performance impact on the document creation process.
63
+ *
64
+ * * Any exceptions thrown in the callback would fail the creation workflow
65
+ * (see {@link RouterliciousDocumentServiceFactory.createContainer} for more details).
66
+ *
67
+ * @param documentId - Document ID.
68
+ * @param creationToken - A special token that doesn't provide any kind of access, but it has the user's payload
69
+ * and document id. It can be used to validate the identity of the document creator.
70
+ */
71
+ documentPostCreateCallback?(documentId: string, creationToken: string): Promise<void>;
72
+ }
73
+
74
+ /**
75
+ * @public
76
+ */
77
+ export declare interface ITokenResponse {
78
+ /**
79
+ * {@link https://jwt.io/introduction/ | JSON Web Token (JWT)} value.
80
+ */
81
+ jwt: string;
82
+ /**
83
+ * A flag indicating whether token was obtained from local cache.
84
+ *
85
+ * @remarks `undefined` indicates that the source of the token could not be determined.
86
+ */
87
+ fromCache?: boolean;
88
+ }
89
+
90
+ /* Excluded from this release type: ITokenService */
91
+
92
+ /* Excluded from this release type: RouterliciousDocumentServiceFactory */
93
+
94
+ /* Excluded from this release type: RouterliciousErrorType */
95
+
96
+ /* Excluded from this release type: RouterliciousErrorTypes */
97
+
98
+ export { }
@@ -0,0 +1,261 @@
1
+ import { IDocumentService } from '@fluidframework/driver-definitions';
2
+ import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
3
+ import { IResolvedUrl } from '@fluidframework/driver-definitions';
4
+ import { ISession } from '@fluidframework/server-services-client';
5
+ import { ISummaryTree } from '@fluidframework/protocol-definitions';
6
+ import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
7
+ import { ITokenClaims } from '@fluidframework/protocol-definitions';
8
+
9
+ /**
10
+ * Default token provider in case the host does not provide one. It simply caches the provided jwt and returns it back.
11
+ * @internal
12
+ */
13
+ export declare class DefaultTokenProvider implements ITokenProvider {
14
+ private readonly jwt;
15
+ constructor(jwt: string);
16
+ fetchOrdererToken(): Promise<ITokenResponse>;
17
+ fetchStorageToken(): Promise<ITokenResponse>;
18
+ }
19
+
20
+ /**
21
+ * Error returned by {@link RouterliciousDocumentServiceFactory.createContainer} when an error is thrown
22
+ * in {@link ITokenProvider.documentPostCreateCallback}.
23
+ * It is the consumer's responsibility to ensure that any state related to container creation is appropriately
24
+ * cleaned up in the event of failure.
25
+ * This includes the document itself, which will have been created by the time this error was thrown.
26
+ *
27
+ * @remarks TODO: examples of suggested actions for recovery.
28
+ * - How would a user delete the created document?
29
+ * - What would a retry pattern look like here?
30
+ * @internal
31
+ */
32
+ export declare class DocumentPostCreateError extends Error {
33
+ /**
34
+ * Inner error being wrapped.
35
+ */
36
+ private readonly innerError;
37
+ constructor(
38
+ /**
39
+ * Inner error being wrapped.
40
+ */
41
+ innerError: Error);
42
+ readonly name = "DocumentPostCreateError";
43
+ get stack(): string | undefined;
44
+ }
45
+
46
+ /**
47
+ * @internal
48
+ */
49
+ export declare interface IRouterliciousDriverPolicies {
50
+ /**
51
+ * Enable prefetching entire snapshot tree into memory before it is loaded by the runtime.
52
+ * Default: true
53
+ */
54
+ enablePrefetch: boolean;
55
+ /**
56
+ * Rate limit concurrent storage requests.
57
+ * Default: 100
58
+ */
59
+ maxConcurrentStorageRequests: number;
60
+ /**
61
+ * Rate limit concurrent orderer requests.
62
+ * Default: 100
63
+ */
64
+ maxConcurrentOrdererRequests: number;
65
+ /**
66
+ * Enable uploading entire summary tree as a IWholeSummaryPayload to storage.
67
+ * Default: false
68
+ */
69
+ enableWholeSummaryUpload: boolean;
70
+ /**
71
+ * Enable service endpoint discovery when creating or joining a session.
72
+ * Default: false
73
+ */
74
+ enableDiscovery: boolean;
75
+ /**
76
+ * Enable using RestLess which avoids CORS preflight requests.
77
+ * Default: true
78
+ */
79
+ enableRestLess: boolean;
80
+ /**
81
+ * Enable internal cache of summaries/snapshots.
82
+ * Reduces Summarizer boot time and reduces server load in E2E tests.
83
+ * Default: true
84
+ */
85
+ enableInternalSummaryCaching: boolean;
86
+ /**
87
+ * Enable downgrading socket connection to long-polling
88
+ * when websocket connection cannot be established.
89
+ * Default: true
90
+ */
91
+ enableLongPollingDowngrade: boolean;
92
+ /**
93
+ * Indicates that the container is ephemeral.
94
+ * Artifacts relates to the container are limited to container lifetime.
95
+ * Default: false
96
+ */
97
+ isEphemeralContainer: boolean;
98
+ }
99
+
100
+ /**
101
+ * Abstracts the token fetching mechanism for a hosting application.
102
+ * The hosting application is responsible for providing an implementation.
103
+ * @public
104
+ */
105
+ export declare interface ITokenProvider {
106
+ /**
107
+ * Fetches the orderer token from host.
108
+ *
109
+ * @param tenantId - Tenant ID.
110
+ * @param documentId - Optional. Document ID is only required for document-scoped requests.
111
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
112
+ * This likely indicates that some previous request failed authorization due to an expired token,
113
+ * and so a fresh token is required.
114
+ *
115
+ * Default: `false`.
116
+ *
117
+ * NOTE: This parameter will be made required in the future.
118
+ */
119
+ fetchOrdererToken(tenantId: string, documentId?: string, refresh?: boolean): Promise<ITokenResponse>;
120
+ /**
121
+ * Fetches the storage token from host.
122
+ *
123
+ * @param tenantId - Tenant ID.
124
+ * @param documentId - Document ID.
125
+ * @param refresh - Optional flag indicating whether token fetch must bypass local cache.
126
+ * This likely indicates that some previous request failed authorization due to an expired token,
127
+ * and so a fresh token is required.
128
+ *
129
+ * Default: `false`.
130
+ *
131
+ * NOTE: This parameter will be made required in the future.
132
+ */
133
+ fetchStorageToken(tenantId: string, documentId: string, refresh?: boolean): Promise<ITokenResponse>;
134
+ /**
135
+ * A callback triggered directly after creating the document. In this callback the client has the opportunity, to
136
+ * verify against an authorization service, if the user who claims to create the document is the same user who
137
+ * created it.
138
+ *
139
+ * @remarks Notes:
140
+ *
141
+ * * Using the callback may have performance impact on the document creation process.
142
+ *
143
+ * * Any exceptions thrown in the callback would fail the creation workflow
144
+ * (see {@link RouterliciousDocumentServiceFactory.createContainer} for more details).
145
+ *
146
+ * @param documentId - Document ID.
147
+ * @param creationToken - A special token that doesn't provide any kind of access, but it has the user's payload
148
+ * and document id. It can be used to validate the identity of the document creator.
149
+ */
150
+ documentPostCreateCallback?(documentId: string, creationToken: string): Promise<void>;
151
+ }
152
+
153
+ /**
154
+ * @public
155
+ */
156
+ export declare interface ITokenResponse {
157
+ /**
158
+ * {@link https://jwt.io/introduction/ | JSON Web Token (JWT)} value.
159
+ */
160
+ jwt: string;
161
+ /**
162
+ * A flag indicating whether token was obtained from local cache.
163
+ *
164
+ * @remarks `undefined` indicates that the source of the token could not be determined.
165
+ */
166
+ fromCache?: boolean;
167
+ }
168
+
169
+ /**
170
+ * Abstracts the discovery of claims contained within a token.
171
+ * @internal
172
+ */
173
+ export declare interface ITokenService {
174
+ /**
175
+ * Extracts the {@link @fluidframework/protocol-definitions#ITokenClaims | token claims} from the provided
176
+ * {@link https://jwt.io/introduction/ | JSON Web Token (JWT)} string representation.
177
+ */
178
+ extractClaims(token: string): ITokenClaims;
179
+ }
180
+
181
+ /**
182
+ * Factory for creating the routerlicious document service. Use this if you want to
183
+ * use the routerlicious implementation.
184
+ * @internal
185
+ */
186
+ export declare class RouterliciousDocumentServiceFactory implements IDocumentServiceFactory {
187
+ private readonly tokenProvider;
188
+ private readonly driverPolicies;
189
+ private readonly blobCache;
190
+ private readonly wholeSnapshotTreeCache;
191
+ private readonly shreddedSummaryTreeCache;
192
+ constructor(tokenProvider: ITokenProvider, driverPolicies?: Partial<IRouterliciousDriverPolicies>);
193
+ /**
194
+ * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer}
195
+ *
196
+ * @throws {@link DocumentPostCreateError}
197
+ * If an exception is thrown while invoking the provided {@link ITokenProvider.documentPostCreateCallback}.
198
+ */
199
+ createContainer(createNewSummary: ISummaryTree | undefined, resolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
200
+ /**
201
+ * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createDocumentService}
202
+ *
203
+ * @returns Routerlicious document service.
204
+ */
205
+ createDocumentService(resolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean, session?: ISession): Promise<IDocumentService>;
206
+ }
207
+
208
+ /**
209
+ * Routerlicious Error types
210
+ * Different error types that may be thrown by the routerlicious driver
211
+ *
212
+ * @deprecated Use {@link (RouterliciousErrorTypes:variable)} instead.
213
+ * @internal
214
+ */
215
+ export declare enum RouterliciousErrorType {
216
+ /**
217
+ * File not found, or file deleted during session
218
+ */
219
+ fileNotFoundOrAccessDeniedError = "fileNotFoundOrAccessDeniedError",
220
+ /**
221
+ * SSL Certificate Error.
222
+ */
223
+ sslCertError = "sslCertError"
224
+ }
225
+
226
+ /**
227
+ * Routerlicious Error types
228
+ * Different error types that may be thrown by the routerlicious driver
229
+ * @internal
230
+ */
231
+ export declare const RouterliciousErrorTypes: {
232
+ /**
233
+ * SSL Certificate Error.
234
+ */
235
+ readonly sslCertError: "sslCertError";
236
+ readonly genericNetworkError: "genericNetworkError";
237
+ readonly authorizationError: "authorizationError";
238
+ readonly fileNotFoundOrAccessDeniedError: "fileNotFoundOrAccessDeniedError";
239
+ readonly offlineError: "offlineError";
240
+ readonly unsupportedClientProtocolVersion: "unsupportedClientProtocolVersion";
241
+ readonly writeError: "writeError";
242
+ readonly fetchFailure: "fetchFailure";
243
+ readonly fetchTokenError: "fetchTokenError";
244
+ readonly incorrectServerResponse: "incorrectServerResponse";
245
+ readonly fileOverwrittenInStorage: "fileOverwrittenInStorage";
246
+ readonly deltaStreamConnectionForbidden: "deltaStreamConnectionForbidden";
247
+ readonly locationRedirection: "locationRedirection";
248
+ readonly fluidInvalidSchema: "fluidInvalidSchema";
249
+ readonly fileIsLocked: "fileIsLocked";
250
+ readonly outOfStorageError: "outOfStorageError";
251
+ readonly genericError: "genericError";
252
+ readonly throttlingError: "throttlingError";
253
+ readonly usageError: "usageError";
254
+ };
255
+
256
+ /**
257
+ * @internal
258
+ */
259
+ export declare type RouterliciousErrorTypes = (typeof RouterliciousErrorTypes)[keyof typeof RouterliciousErrorTypes];
260
+
261
+ export { }